Les bases de données relationnelles Valérie Bellynck Maître de conférences en Informatique INPG-EFPG mailto:Valerie.Bellynck@efpg.inpg.fr
Plan Les différents types de SGBD Les méthodes de conception et les modèles de données Les modèles entités-associations : MCD Passage automatique du MCD au MLD
Différents types de bases de données… Les bases hiérarchiques schéma de la base -> arborescent technique -> bases navigationnelles (gestion de pointeurs entre les enregistrements). Les bases réseaux : + rapides, années 70 technique -> bases navigationnelles schéma de la base -> graphe (arbres, treillis, … ). Les bases relationnelles : + utilisées schéma de la base -> relations entre tables technique -> algèbre relationnelle + langage déclaratif (SQL)
... (suite) différents types de bases de données Les bases déductives. schéma de la base -> tables et prédicats technique -> calcul des prédicats et logique du premier ordre + langage d’interrogation Les bases objets. schéma de la base -> instances de classes hiérarchisées, champ = objet technique -> méthodes d’interrogation et d’affectation = partie des objects, la notion d’héritage permet de factoriser la connaissance
Répartition des types de SGBD
Exemples de SGBD
Méthodes de conception Evolution de l’approche : passage d’une approche analytique à une approche systémique -> primauté de la conception sur l’analyse Principe fondamental : Tout modèle systémique s’organise par la mise en correspondance entre un système opérant et un système de décision par l’intermédiaire d’un système d’information (Jean-Louis Lemoigne, La théorie du système général, PUF 1977) Outil : -> séparation des données et des traitements -> utilisation de modèles pour représenter les systèmes
Les modèles de données Objectif pour le concepteur : définir une présentation des données à partager entre les développeurs et les utilisateurs et leur organisation finale pour l’administrateur La conception d’une base de données s’appuie sur l’utilisation de méthodes d’analyse (AXIAL, OMT, merise…) pour la définition concertée de modèles des données. Une méthode est caractérisée par l’utilisation d’un langage de modélisation (essentiellement graphique) et d’un processus (façon d’envisager la marche à suivre lors de la conception)
Les modèles de données Le modèle Ansi/Sparc
Le modèle Ansi/Sparc Le niveau conceptuel Le niveau interne Il correspond à ce que l’on retrouve dans la méthode Merise avec les modèles de données MCD (modèle conceptuel de données) et MLD (modèle logique de données). Le niveau interne Il correspond à la structure de stockage des données : types de fichiers utilisés, caractéristiques des enregistrements (longueur, composants), chemin d’accès aux données (type d’index, chaînages, etc.). Le niveau externe Il est caractérisé par l’ensemble des vues externes qu’ont les groupes d’utilisateurs.
Les modèles MCD, MLD Modèle conceptuel des données modèle abstrait pour transcrire une description textuelle (en langage naturel) de l’organisation du système à modéliser (c-à-d des relations entre des ensembles de données) Modèle logique des données modèle utilisé pour la mise en œuvre informatique Le modèle conceptuel de données (MCD) est là pour faire le passage du réel perçu au modèle interne, et atteindre une base de données contenant des informations relatives à l'activité de l'organisation. Le modèle conceptuel de traitement (MCT) permet de mettre en évidence les liens sémantiques entre les traitements, il s'agit de dégager les actions qui mènent l'entreprise, indépendamment de leur organisation. Le modèle logique de données (MLD) est là pour qu'on puisse définir une organisation logique des traitements à partir du MCD validé Le modèle organisationnel de traitement (MOT) intègre dans la description des traitements la notion du temps, ressource, lieu, responsabilités et la nature de traitement (manuels ou automatiques)
Modèle entité-association : comment s’y prendre ? (-> afficher l’exemple de description textuelle - quelques diapos plus loin…) Modéliser des concepts définir des entités avec les concepts en jeu dans le système Trouver les attributs un attribut est une propriété d'une entité, une qualité de cet objet. Trouver les associations une association est la possibilité de relier plusieurs entités Déterminer les cardinalités des associations une cardinalité est le nombre de fois maximal et minimal qu’une entité peut être associé à d’autres dans une association
comment s’y prendre ? (1) Modéliser des concepts un concept est un élément fondamental du système à modéliser. Pour les représenter, on utilise des entités, schématisées par des boites : dans l’ancien monde, des boites/tiroirs collectaient des fiches support toutes identiques pour chaque boite
comment s’y prendre ? (2) Trouver les attributs un attribut est une propriété d'un concept, une qualité de cet objet. Ainsi, une chaîne de caractère ou une valeur numérique sont généralement des attributs. De même, toute propriété qui ne peut accomplir aucune action est probablement un attribut
comment s’y prendre ? (3) Trouver les associations Une association est une relation entre plusieurs entités. Par exemple, dans notre application du service de la bibliothèque, prenons les deux concepts ci contre. Ces concepts sont associés, car dans le système chaque livre est associé à un - ou plusieurs - auteurs. On peut mettre un nom sur les associations
comment s’y prendre ? (4) Trouver les cardinalités la cardinalité d’une association est le nombre d'instances permises pour chaque concept, c-à-d le nombre de fois minimal et maximal que chacun des concepts peut/doit être en relation avec un exemple de l’autre concept. Dans l'exemple, un livre est écrit par un ou plusieurs auteurs. En lisant l'association, on obtient une phrase complète qui fait sens.
Exemple : description textuelle d’un système d’information d’une petite société de services Cette société réalise des projets commandés pas des clients. Les projets sont composés de plusieurs tâches qui seront réalisées pas les salariés de l’entreprise. Chaque tâche a un coût qui lui est propre. Plusieurs salariés peuvent participer à une même tâche et, bien sûr, une tâche est en général réalisée par plusieurs salariés. En général, les salariés sont affectés à une tâche pour une durée déterminée par une date de début et de fin. On considère qu’un salarié ne peut participer qu’une seule fois à une tâche donnée. Pour effectuer ce travail, il utilise différents matériels référencés par l’entreprise. Un matériel peut être composé de plusieurs autres matériels de l’entreprise. Un projet est toujours coordonné par un chef de projet, salarié de l’entreprise. Un chef de projet encadre donc d’autres salariés. Le personnel est obligatoirement rattaché à une seule des divisions de l’entreprise mais peut, en revanche, être regroupé dans différentes équipes de l’entreprise.
Exemple : chercher l’erreur Il n’y en a pas…
TP-complet : But Réaliser une base de donnée complète combinant des difficultés caractéristiques rencontrables facilement dans la réalité Réaliser une BD liée à la formation, avec les « vraies » données, dans laquelle les enseignants puissent entre les notes les étudiants puissent consulter leur notes et imprimer leurs bulletins de notes et moyennes
TP-complet : description texutelle … le faire…
TP-complet : MCD Prof nom prénom adel n° prof 1,2 Etudiant nom prénom adel cursus profil n° Etu Prof nom prénom adel n° prof organisme de form. 1,n 0,n pourcentage note Cours n° cours sigle intitulé nb heures 0,n 0,1 0,1 1,n 1,n 0,n 0,2 1,1 0,3 0,n Stage -Projet d’entreprise sujet n° st 1,1 Projet turoré -transversal sujet responsable n° pt 1,1 0,n 0,n 1,1 Industrie id Ent. nom domaine type
TP-complet : exemple d’occurence 1,2 Etudiant nom prénom adel cursus profil n° Etu Prof nom prénom adel n° prof organisme de form. Bellynck Valérie bellynck@ef.. 33 7 , 11 1,n 0,n pourcentage note Cours n° cours sigle intitulé nb heures 0,n 0,1 0,1 1,n 1,n 0,n 0,2 1,1 0,3 0,n Stage -Projet d’entreprise sujet n° st 1,1 Projet turoré -transversal sujet responsable n° pt 1,1 0,n 0,n 1,1 Industrie id Ent. nom domaine type 7 EFPG->Pagora imprimerie formation
TP-complet : migration de clé étrangère 1,2 Etudiant nom prénom adel cursus profil n° Etu Prof nom prénom adel n° prof organisme de form. Bellynck Valérie bellynck@ef.. 33 7 1,n 0,n pourcentage note Cours n° cours sigle intitulé nb heures n°prof pourcentage 18 M1B2 b. don 15h 33 12% 0,n 0,1 1,n 0,1 1,n 0,n 0,2 1,1 0,3 Stage -Projet d’entreprise sujet n° st 1,1 Projet turoré -transversal sujet responsable n° pt 1,1 0,n 0,n 0,n Industrie id Ent. nom domaine type 1,1
TP-complet : table de correspondance 1,2 Etudiant nom prénom adel cursus profil n° Etu Prof nom prénom adel n° prof organisme de form. 1,n note 0,n 0,n pourcentage Cours n° cours sigle intitulé nb heures n°prof pourcentage Note n°Etu n° cours note 0,1 1,n 0,1 1,n 0,n 0,2 1,1 0,3 Stage -Projet d’entreprise sujet n° st 1,1 Projet turoré -transversal sujet responsable n° pt 1,1 0,n 0,n 0,n Industrie id Ind. nom domaine type 1,1
Introduction au « relationnel » Voir un système d’information comme un ensemble de données à organiser => Système d’information
Cadre mathématique : théorie des ensembles et algèbre relationnelle tout type de données est représentable dans un ensemble de tables et de relations Les systèmes de gestion de bases de données relationnelles organisent les données en tables (à la manière d’un tableur). Il est simple, facile à comprendre et fidèle à un cadre mathématique (l’algèbre relationnelle). Le concept mathématique sous-jacent est celui de relation de la théorie des ensembles, qui se définit comme un sous-ensembles du produit cartésien de plusieurs domaines
Produit cartésien et sous-ensemble Sous-ensemble du produit cartésien D1 D2 D1 x D2 A B C … Z 1 2 3 … 10 A B C … Z 1 2 3 … 10 volume maximal = 26*10 = 260 volume maximal = seuls les couples concernés
Domaines et tables relationnelles Table relationnelle Sous-ensemble de D1 x D2 Prof Nom Prénom Bellynck Bozzi Deriz Rousset Marhous Valérie Alain Eliane Mazen Lionel Bellynck Bozzi Deriz Rousset Marhous Valérie Alain Eliane Mazen Lionel D1 = Prof.Nom D2 = Prof.Prénom
Définitions Un domaine est un ensemble fini ou infini de valeurs possibles : le domaine des entiers, le domaine des couleurs du drapeau français {bleu, blanc, rouge }, etc… Le produit cartésien est une opération définie sur un ensemble de domaines D1, D2, …Dn que l’on écrit D1x D2 x … x Dn est un ensemble de n-uplets (ou tuples) < V1, V2, …Vn > tel queVi Di.. Une table relationnelle est un sous-ensemble du produit cartésien d’une liste de domaines. Elle est généralement caractérisée par un nom permettant de l’identifier clairement. Afin de rendre l’ordre des colonnes sans importance tout en permettant plusieurs colonnes de même domaine, on associe un nom à chaque colonne. Les différentes colonnes d’une table constituent ce que l’on appelle les attributs de la table relationnelle
Transformation du MCD en MLD (1) Traitement des entités chaque entité devient une table ; chaque propriété d’une entité devient une colonne de cette table ; l’identifiant d’une entité devient la clé primaire de la table correspondante (création d’un index).
Transformation du MCD en MLD (2-a) Traitement des associations Une association (0,n)–(0,1) (lien hiérarchique) provoque la migration d’une clé étrangère (l’identifiant côté (0,n)) vers la table de l’entité côté (0,1). Si des propriétés étaient sur l’association, elles migreraient côté (0,1).
Transformation du MCD en MLD (2-a) Traitement des associations Une association (0,n)–(0,1) (lien hiérarchique) devient :
Transformation du MCD en MLD (2-b) Traitement des associations Une association (0,n)–(0,n) (lien maillé) donne naissance à une nouvelle table. Les identifiants des entités auxquelles l’association est reliée migrent dans cette table. La clé primaire de cette nouvelle table est constituée de la réunion de ces identifiants (clé double). Si des propriétés étaient portées par l’association, elles migreraient dans la nouvelle table aussi côté (0,1) ;
Transformation du MCD en MLD (2-b) Traitement des associations Une association (0,n)–(0,n) (lien maillé) devient :
Transformation du MCD en MLD (2-c) Traitement des associations Les associations n-aires sont gérées, comme précédemment, avec la naissance d’une nouvelle table.
Relations Après les tables, le deuxième concept utilisé dans les bases de données relationnelles est la relation. Il existe trois types de relations : (1-n), (n-m), et (1,1). On parle de relation « un à plusieurs » notée (1-n) lorsqu’un enregistrement d’une table A peut-être en relation avec plusieurs enregistrements d’une table B et qu’un enregistrement de la table B ne peut pas être en relation avec plusieurs enregistrements de la table A. On parle de relation « plusieurs à plusieurs » notée (n-m) lorsqu’un enregistrement d’une table A peut être en relation avec plusieurs enregistrements d’une table B et qu’un enregistrement de la table B peut-être en relation avec plusieurs enregistrements de la table A. L’exemple typique d’une relation un-à-plusieurs est celui de la filiation.