Base de Données Relationnelles CHAPITRE I : Introduction 1.0 A propos du cours A la fin de ce cours, l’étudiant sera capable d’analyser un problème et de concevoir un schéma relationnel. L’étudiant maîtrisera les grands principes du langage SQL. Il aura également une connaissance avancée d’un SGDB particulier. Un projet sera organisé, ainsi que des interrogations qui compteront pour 40% de la note finale. A la fin du module, se tiendra un examen écrit. Toute absence aux interros doit être justifiée, faute de quoi, l’étudiant sera sanctionné d’un 0. 1.1 Qu’est ce qu’une base de données ? Une base de données est un « gros » ensemble s sont mémorisées sur un support permanent afin d’en faciliter l’exploitation (ajout, mise à jour, recherche…). Nous exploitons tous des informations, chaque jour, et pour de depuis l’apparition de l’écriture, nous avons le pouvoir de les stocker et de les transmettre au-delà des générations, le stockage et la gestion de la connaissance est la base de la naissance de l’évolution culturelle qui a aujourd’hui emmagasiné sur Terre bien plus d’informations que la simple évolution biologique (via l’ADN). La gestion et l’exploitation de l’information sont un fondement essentiel du progrès scientifique. Les bases de données permettent d’automatiser cette gestion. Par leurs mécanismes, elles permettent de stocker des informations de façon organisée et de les retrouver en questionnant le système à travers des critères et des conditions particulières (des requêtes). Il est également possible, bien naturellement, d’ajouter, de modifier et de supprimer des données de la base de données. Exemple de base de données : · ses limites : Pas de gestion de la concurrence (plusieurs personnes sont sur le même fichier), pas de gestion de la sécurité, lourdeur d’accès (il faut écrire un programme pour explorer chaque type de fichier), redondance de l’information. Le langage COBOL est un parfait exemple de cette philosophie, Cobol est aujourd’hui un langage mort mais il existe encore énormément de lignes de code dans ce langage dans les industries, les anciennes données des banques sont souvent encodées dans des cœurs Cobol qu’il faudra, un jour ou l’autre, traduire dans un langage plus moderne et plus efficace. La conception système fichier a poussé progressivement les chercheurs à concevoir une couche d’abstraction supplémentaire à laquelle nous déléguons la manipulation et la sécurité des fichiers : c’est un logiciel spécialisé que l’on appelle le SGDB (Système de Gestion de Base de Données ; DBMS pour Data Base Management System en anglais). Access, DBase, DB2, Informix, Firebird, Oracle, Sybase, MySQL… sont des exemples célèbres de SGDB. Nous ne verrons pas dans ce cours le fonctionnement détaillé d’un SGDB, mais il faut savoir qu’il peut se baser sur plusieurs modèles et plusieurs techniques algorithmiques pour retrouver les données. Outre l’archaïque méthode par système de fichiers, voici les plus importantes du moment : Le Modèle Relationnel C’est le modèle le plus utilisé actuellement même s’il commence à tendre fin de vie. En 1970, Codd publia un article où il proposait de stocker des données hétérogènes dans des tables et d’établir des liens entre ces tables. Pour manipuler ces relations, il existe un modèle théorique que l’on appelle l’algèbre relationnelle. Par exemple, le langage SQL est une extension standardisée de l'algèbre relationnelle. C’est le modèle que nous étudierons dans ce cours d’introduction. Le Modèle Orienté-Objet Inspiré du paradigme de programmation du même nom, le modèle OO s données non plus sous forme de table mais sous forme d’objet. Un objet modélise une chose de la --> voiture C --> camion D \--> pneu A \--> marque Michelin --> pneu B --> vélo E O2 est un exemple de produit basé sur le modèle Orienté-Objet, mais n’est plus commercialisé, le succès n’ayant pas été au rendez-vous (les consommateurs commençaient juste à se familiariser avec le modèle relationnel). Le langage de requête se nommait OQL et on opérait le design des objets via un langage O2C qui servait de module à du C ou du C++. Le modèle OO refera sans doute son apparition prochainement dans le monde des SGBD, on le retrouve déjà dans Zope, framework d’architecture web de plus en plus populaire. Zope gère les DB en OO via le module Zope Object Database. Le Modèle Multi-dimensionnel L’idée est ici de stocker les données dans des hypercubes à n dimensions, on parle de cube de données, qui permettent d’analyser les données selon plusieurs critères. Ici un cube à 3 dimensions où on peut mesurer les données suivant le type de marché, le temps ou le type de produit… on peut faire des études d’une dimension par rapport à une autre, en pratique, il y a, bien entendu, beaucoup plus de dimensions : 1.2 Quelles en sont les utilisations ? Les bases de données servent généralem données brutes en informations utiles pour prendre des décisions, on parle alors de Data Mining. On parle aussi dans ce cas de Knowledge Management ou de Knowledge Discovery Data, les outils de data mining permettent d’extraire de la connaissance des données en découvrant des modèles, des règles dans le volume d’information (souvent très très important) présent dans les entreprises. Pour rappel, la loi de Moore nous dit que notre capacité de calcul double chaque 18 mois (cette loi a toujours été respectée depuis l’introduction des microprocesseurs). Notre capacité de stockage d’information, quant à elle, double chaque 9 mois. Nous nous dirigeons donc vers une surcharge d’information ingérable et encore plus chaotique par l’échange en réseau et par internet. Il faudra donc de plus en plus compter sur des agents automatiques pour trier, résumer, comprendre et interpréter l’information à notre place, voilà une des fonctions du Data Mining, l’on parle aussi de Text Mining pour les applications qui font des résumés d’articles de manière automatique et de Web Mining si on analyse les données sur les sites, les blogs et les forums. Considérons le suivi des statistiques et des tendances à long terme en prenant l’exemple d’une pu susceptibles de commander un produit plutôt qu’un autre. A l’aide des statistiques et des tendances des données positionnement des données 1960 1970 1980 1990 2000 D données Brèche de connaissance Potentiel d’analyse produits dans un rayon : les consommateurs qui achètent telle marque de bière, achètent généralement telle marque de chips, donc nous placerons ces chips et cette bière à proximité dans le rayon. Une base de données contribue à réduire ou à supprimer le volume de papier manipulé. Prenons l’exemple d’un service de ressources humaines qui gère des centaines de curriculum vitae. Le stockage de ces documents s’effectue de façon classique dans un classeur ; ils sont classés par nom de famille et par ordre alphabétique, ce qui permet de les retrouver facilement. Pour sélectionner le curriculum vitae de toutes les personnes qui possèdent telle ou telle aptitude, il est nécessaire de lire tous les documents, ce qui peut demander des heures. Quand les informations sont stockées dans une base de données, on obtient les mêmes résultats en quelques secondes. Il existe deux types de bases de données : les bases de données OLTP (Online Transactional Processing) et OLAP (OnLine Analytical Processing). Chaque type est associé à une utilisation particulière qui dépend de l’exploitation envisagée des données. Une base de données OLTP dite transactionnelle permet de traiter des données de façon régulière. La programmation de cours et les inscriptions d’étudiants constituent un bon exemple d’utilisation de base de données transactionnelle. Supposons qu’une université propose plusieurs centaines de formations. Elle en ajoute, en supprime, en modifie en fonction des besoins. Chaque formation est assurée par un professeur au moins et concerne entre dix et trois cents étudiants. Des inscriptions et des abandons sont enregistrés toute l’année. Les données sont donc dynamiques et exigent un gros volume de saisie. Une gestion sur papier nécessiterait un personnel important, d’où l’intérêt d’utiliser une base de données. Le rôle principal d’une base de données O des données en réponse aux demandes émises. En général, les chargements volumineux de données constituent la seule activité transactionnelle effectuée dans ce type de base. Les données OLAP (performances de l’entreprise, tendances…) servent de support à des décisions commerciales circonstanciées ou relatives au fonctionnement d collectées auprès de toutes les parties d’un organisme. Les entrepôts de données sont spécialeme apparentées et font généralement partie d’une base de données transactionnelle. Elles peuvent êtr pendant des années, il est généralement inutile de stocker en ligne toutes les données. Cela augmenterait la quantité globale de données à lire pour en récupérer ou en modifier une seule. Les informations d’historique sont généralement stockées hors ligne, le cas échéant sur un serveur dédié, un lecteur de disques ou un lecteur de bandes. Par exemple, les données des trois dernières années d’exercice d’une entreprise peuvent être enregistrées sur une bande. La question qui se pose concerne la durée de stockage en ligne ; seul le client peut y répondre. Notons le grand succès des ERP (Enterprise Resource Planning) qui sont des macro-packages modulaires orientés business et qui peuvent gérer des bases de données via SQL ou des langages propriétaires, en plus de pouvoir analyser ses données et faire du risk management. L'autre principe qui caractérise un ERP est l'usage systématique de ce qu'on appelle un moteur de workflow qui permet, lorsqu'une donnée est entrée dans le système d'information, de la propager dans tous les modules du système qui en ont besoin. Exemple d’application célèbre qui vont dans ce sens : SAP, PeopleSoft Enterprise (Oracle), Cognos, BO (Microsoft), SAS… et beaucoup d’autres. 1.3 Qui sont les utilisateurs ? Banquiers, avocats, comptables, saisie de données, etc., les utilisateurs potentiels de base de données se retrouvent dans pratiquement toutes les professions. Leurs besoins varient. Le banquier par exemple conserve les comptes de personnes et de sociétés, les lignes de crédits, les prêts personnels, les prêts d’entreprise etc. Lorsqu’un client souhaite clôturer son compte, le banquier contrôle les informations personnelles du client en question. Lorsque vous, utilisez votre carte de crédit pour retirer de l’argent dans une banque, vous vous connectez à une base de données. Au fur et à mesure que l’argent est retiré, le montant correspondant est déduit du solde de votre compte. Lorsque vous transférez de l’argent du compte d’épargne au compte courant, la somme est créditée sur le compte courant et débité du compte d’épargne. 1.4 Environnements des bases logiquement interdits d’accès aux données Il existe plusieurs environnements possibles d’une bas · l’environnement informatique Internet Environnement de mainframe L’environnement classique des premiers systèmes de bases de données est l’environnement de mainframe, essentiellement constitué d’un ordinateur central puissant (main-frame) qui prend en charge de nombreuses connexions d’utilisateurs. Plusieurs terminaux passifs sont connectés au mainframe et permettent aux utilisateurs de communiquer avec le superordinateur. Les terminaux sont des extensions du mainframe, non des ordinateurs indépendants ; ils ne « pensent » pas par eux-mêmes, mais comptent sur le mainframe pour effectuer tout le traitement. L’environnement mainframe pose de nombreux problèmes. En particulier, un terminal passif ne peut communiquer qu’avec l’ordinateur principal. Des tâches, notamment des processus manuels, l’utilisation d’un traitement de texte, ou un ordinateur personnel, ne s’interfacent pas toujours avec l’ordinateur principal. La plupart des entreprises actuelles ont fait migrer leurs systèmes vers l’environnement client/serveur pour des raisons que nous citerons dans le prochain chapitre Environnement client/serveur L’environnement client/serveur est probablement le plus larg serveur. L’application située sur le client transmet à la base des requêtes de données ou des transa beaucoup de temps. L’installation et la maintenance d’une application sur un poste client imposent un coût supplémentaire, mais présentent également de nombreux avantages. En particulier, grâce à leurs propres ressources (CPU, mémoire, stockage sur disque), les clients peuvent exécuter une partie du traitement de l’application et décharger d’autant le serveur qui n’a plus à assumer seul la totalité du travail. Les PC sont donc capables de « penser » par eux-mêmes et d’exécuter d’autres applications, ce qui rend les utilisateurs plus productifs. Par exemple, une personne peut être connectée à la base de données du serveur tout en travaillant sur un document et en lisant un email. La technologie client/serveur résout ainsi de nombreux problèmes inhérents à l’environnement de mainframe. La figure 1.2 présente l’environnement client/serveur. Environnement informatique Internet Les environnements informatique Internet et client/serv l’utilisation de logiciels adaptés supplémentaires. L’une des caractéristiques de l’informatique Intern le PC de l’utilisateur. Dans l’environnement informatique Internet, la configuration et la maintenance sens qu’ils nécessitent un serveur, un réseau et un ou plusieurs PC. L’informatique Internet se distingue toutefois par son ouverture sur Internet. Dans un environnement client/serveur, l’utilisateur a accès aux ressources disponibles sur l’intranet de l’entreprise, voire à des bases de données extérieures à l’intranet, mais cela suppose ATTENTION De nombreuses entreprises ont leurs bases de données sur Internet. Elles doivent donnée et ceux qui les exploitent etc. Les concepteurs de base de données doivent apprendre à c prendre desdonnées mesuressuivant de sécurité draconiennes pourModeling empêcher tout propriétaire la base de la norme UML (Unified Language). UML est le langage stand d’ordinateur disposant d’une connexion Internet d’accéder à leurs bases de données sans autorisations. Concrètement, il s’agit d’implémenter des fonctions telles que des pare-feu et des mécanismes de sécurité pour protéger les données des hackers et autres utilisateurs malintentionnés. De nombreux organismes qui adoptent l’environnement informa choisissent une architecture à N niveaux, comparable à l’architecture à un niveau intermédiaire ou à trois niveaux. Une architecture à trois niveaux compte une couche client, une couche application et une couche serveur ou base de données. Le "N" indique le nombre de niveaux nécessaires à l’aboutissement de la transaction ou de la requête. 1.5 Origine d’une base de données La modélisation d’une activité, qui est à l’orig à évaluer et à distinguer les tâches quotidiennes d’une activité. è il faut dialoguer avec les décid 1.6 Règles de gestion Les règles de gestion indiquent comment les données sont créées, modifiées et supprimées à l’intérieur d’un organisme. Elles imposent des restrictions et des limitations sur la façon de gérer les données et détermine la structure de la base de données ainsi que l’application utilisée pour y accéder. Chaque entreprise possède ses propres règles et a des besoins de stockage de données qui lui sont propres. On distingue deux types de règles de gestion : 1. Orientées base de données 2. Orientées application La première affecte la conception logique de la base de données. Elle conc façon de regrouper les données et de mettre en relation les tables internes de la base de données. Elles déterminent entre autre la fourchette de validité des valeurs de données et se concrétisent dans ce cas par des contraintes placées sur les colonnes La deuxième affecte le fonctionnement de l’application qui sert d’interface entre l’utilisateur et la base de données. Elles concernent plus particulièrement la façon de conduire les processus et les méthodes utilisées pour accéder aux données de la base de données. Processus opérationnels Les processus opérationnels concernent les activit soit manuellement par le personnel de l’entreprise, soit automatiquement. Les activités sont exercées, par l’intermédiaire de processus opérationnels. Exemple d’un client qui com processus opérationnels sont en jeu : · La commande du client est reçue · La disponibilité du prod conception de la base de données et de l’interface de l’application. 1.7 Informations et donné afin de satisfaire les besoins d’un organisme et lui permettre de prendre des décisions commerciales. Par exemple, les données d’une librairie en ligne sont les titres de livres, les auteurs, les clients, les commandes, les résumés de livres, les ventes, etc. Les données diffèrent naturellement d’une entreprise à l’autre. Toute base de données contient à la fois des données statiques (ou historiques) et des données dynamiques (ou transactionnelles). · Les données statiques sont rarement (ou jamais) modifiées après leur saisie dans la base de données ; elles ne sont consultées qu’en cas de besoin. On peut s’en servir pour suivre une tendance ou créer des statistiques commerciales, prendre des décisions. · Les données dynamiques ou transactionnelles sont fréquemment modifiées après leur stockage dans la base de données. La majorité des entreprises ont besoin d’enregistrer des données dynamiques et une combinaison de données dynamiques ou statiques. C’est le cas d’une librairie en ligne qui doit modifier un certain nombre de données au fur et à mesure qu’elle traite les commandes des clients et qui a besoin par ailleurs, d’enregistrer des statistiques (ex : les catégories de livres les plus vendus en Wallonie ces cinq dernières années). Entités Une entité est un objet qui représente un groupe ou une catégorie de données d’une activité. Par exemple, les titres des livres sont une catégorie d’informations tout comme les auteurs. Les entités servent à modéliser logiquement les données. Attributs Un attribut est un sous groupe d’informations à l’intérieur d’une entité. Prenons l’entité titre de livre ; elle possède plusieurs attributs : le titre du livre, l’éditeur, l’auteur, la date d’édition, etc. Les attributs permettent de ranger des données spécifiques au sein d’une entité. Eléments constitutifs d’une base de données le schéma d’un Schéma Un schéma est tout simplement un groupe d’objets d’une base de données qui sont apparentés et reliés entre eux. La table constitue l’élément le plus fondamental d’un schéma de base de données. D’autres types d’éléments peuvent résider dans un schéma de base de données : 1. des index 2. des contraintes 3. des vues 4. des procédures Trois modèles sont associés à u 1. Le modèle conceptuel (ou logique) : c’est le modèle fondamental de la base de données, il rend compte des structures d’organisation qui servent à définir les structures de la base de données, comme les tables et les contraintes. 2. Le modèle interne (OU physique) concerne le stockage physique de la base de données ainsi que l’accès aux données, par exemple à travers les tables et les index. Ce modèle distingue le modèle de données et les besoins physiques du matériel et du système d’exploitation. 3. Le modèle externe (ou interface application) concerne le méthodes d’accès à la base de données utilisées par les utilisateurs, par exemple les formulaires de saisie de données. II autorise la création de relations entre l’application de l’utilisateur et le modèle de données. La figure 1.4 présente un schéma de base de données relationnelle. T Généralement, c’est aux tables que font référence les utilisateurs pour accéder aux données. Une base de données peut être constituée de plusieurs tables reliées entre elles. La figure 1.5 présente les tables d’un schéma, chacune étant en relation avec au moins une de ses voisines, voire plusieurs On y trouve 4 types de tables étudiées : 1. Les tables de données : Elles stockent l’ess données provenant d’une table de données 4. Les tables de validation : Souvent baptisées table, d l’entité ; autrement dit, lorsqu’un modèle d’activité est converti en modèle de base de données, les données 2. Les tables jointes : Elles permettent de créer une liaison entre deux tables 3. Les tables de sous-ensemble : Elles contiennent un sous-ensemble de chaque ligne de la table. Dans la figure 1.6, chaque colonne de la table Customers représente une catégorie d’informations. Lignes Une ligne de données est une collection de valeurs inscrites dans les colonnes ligne de données d’une table Types de données Un type de donnée détermine l’ensemble de traitée comme un caractère, non comme un nombre, d’où l’impossibilité d’effectuer des opérations successives d’une table, l’ensemble formant un enregistrement unique. Par exemple, la table des titres des livres d’une librairie qui propose 25.000 ouvrages compte 25.000 enregistrement ou lignes de données. Le nombre de lignes augmente ou diminue en fonction des ajouts et suppressions de titres. La figure 17 présente une · Le type de donnée date et heure permet de stocker des valeurs de date et d’heure, lesquelles varient selon le système de gestion de base de données relationnelle utilisé Intégrité d’une base de données L’intégrité des données garantit que les données de la base sont exactes, en d’autres termes qu’elles vérifient des règles d’intégrité exprimées sous la forme de contraintes sur les colonnes Ces contraintes valident les valeurs des données placées dans la base de données, garantissent l’absence de données dupliquées ou le respect des règles de gestion après modification ou ajout de données. Elles peuvent être implémentées aussi bien an niveau colonne qu’au niveau table. Quand les tables entretiennent des relations parent/enfant, les valeurs d’une colonne dépendent des valeurs d’une colonne d’une autre table. L’intégrité référentielle garantit que les données de tables apparentées sont cohérentes ou synchronisées. Ces données doivent vérifier des règles exprimées sous la forme de contraintes référentielles. La représentation de ces contraintes nécessite la définition de clés. Une clé est une valeur de colonne d’une table ou une combinaison de valeurs de colonnes, qui permet d’identifier une ligne de cette table ou d’établir une relation avec une autre table. Il existe deux types de clés : primaires et étrangères Clés primaires Une clé primaire rend une ligne de données unique dans une table. ElIe sert généralement à joindre des tables apparentées ou à interdire la saisie d’enregistrements dupliqués. Par exemple, le numéro de Sécurité sociale d’un employé est considéré comme la clé primaire idéale car il est unique Clés étrangères Une clé ét Pour supprimer un auteur de la base de données, on retire en premier lieu toutes les références à cet auteur dans la table enfant Booklist ATTENTION : Il faut implémenter les contraintes d’intégrité référentielles avant l’admission de toute donnée dans la base pour éviter le stockage de données incohérentes ou sans relation, comme des enregistrements orphelins (enregistrements enfant sans aucune relation avec des enregistrements parents). Relations Les bases de données comportent généralement plusieurs tables, dont la plupart sont en relation les unes avec les autres. Dans les bases de données relationnelles, les relations sont souvent établies par l’intermédiaire de clés primaires et étrangères. On répartit les données dans des tables que l’on relie pour réduire la redondance des données. Le processus de réduction de la redondance de données dans une base de données relationnelle est baptisé normalisation. Les trois types de relations entre deux tables sont : · Un à un : Un enregistrement d’une table est enregistrement d’une autre table · Un à plusieurs : Un enregistrement d’une table peut être en plusieurs enregistrements d’une autre table · Plusieurs à plusieurs : Un enregistrement d’une avec un ou plusieurs enregistrements d’une table 2, et un ou plusieurs enregistrements de la table 2 peuvent être en relation avec un ou plusieurs enregistrements de la table 1. La Figure 1 9 présente les relations entre les tables d’une base de relationnelle. Dans le modèle relationnel, les tables parent peuvent avoir plusieurs tables enfant et les tables enfant plusieurs tables parent. La figure montre deux tables la Table 1 co plusieurs) Objets d’une base de données relationnelle Divers types d’objets participent à une base de données relationnelle, les plus assurer l’intégrité référentielle (relations des tables parent et enfant). Elles sont créées au niveau clients, comme un index de livre indique une page donnée. · Les triggers. Un trigger (déclenche courants étant : · Les tables. Une table sert au stockage d’informations dans une base de données relationnelle. En d’autres termes, elle contient les données auxquelles l’utilisateur accède. Elle est constituée de colonnes et de lignes. Une ligne de données compte une valeur dans chaque colonne de la table. · Les vues. Une vue est une table virtuelle en ce sens qu’elle ressemble à une table et fonctionne comme elle. Elle est définie d’après la structure et les données d’une table. On peut l’interroger et parfois la mettre à jour. · Les contraintes. Une con précisément à contrôler les données autorisées dans une colonne, et à Les procédures. une procédure est un programme stocké et exécuté au niveau de la base de donnée, qui sert essentiellement à gérer les données et à effectuer des traitements par lots. Les quatre premiers objets servent à la définition de la base de données, les deux · derniers à l’écriture des méthodes d’accès aux données. La représentation logique des données à partir de ces éléments rend immatériel l’emplacement physique des données.