Les bases de donnes relationnelles Valrie Bellynck Matre
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 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 – 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
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 : cher l’erreur
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 1, 2 Prof Etudiant nom prénom adel cursus profil n° Etu nom 0, n prénom adel pourcentage n° prof organisme de form. 1, n note 0, n 1, n 0, 3 n° cours sigle intitulé nb heures 0, n Projet turoré 0, 1 0, n 0, 2 1, 1 Stage -Projet d’entreprise -transversal sujet responsable n° pt Cours 1, 1 sujet n° st 1, n 1, 1 0, n Industrie id Ent. nom domaine type
TP-complet : exemple d’occurence 1, 2 Prof Etudiant nom prénom adel cursus profil n° Etu nom 0, n prénom Bellynck Valérie adel pourcentage n° prof bellynck@ef. . organisme 33 de form. 7 , 11 0, 1 1, n note 0, n 1, n 0, 3 n° cours sigle intitulé nb heures 0, n Projet turoré 0, 1 0, n 0, 2 1, 1 Stage -Projet d’entreprise -transversal sujet responsable n° pt Cours 1, 1 sujet n° st 1, 1 0, n Industrie id Ent. nom domaine type 7 EFPG->Pagora imprimerie formation
TP-complet : migration de clé étrangère 1, 2 Prof Etudiant nom prénom adel cursus profil n° Etu nom 0, n prénom Bellynck Valérie adel pourcentage n° prof bellynck@ef. . organisme 33 de form. 7 0, 1 1, n note 0, n 1, n 0, 3 n° cours sigle 18 0, 1 M 1 B 2 intitulé b. don 0, 2 nb heures 15 h n°prof 33 1, 1 pourcentage 12% -Projet 0, n Stage Projet turoré -transversal sujet responsable n° pt Cours d’entreprise sujet n° st 1, 1 0, n Industrie id Ent. nom domaine type
TP-complet : table de correspondance 1, 2 Etudiant Prof 1, n nom prénom adel cursus profil n° Etu nom 0, n prénom adel pourcentage n° prof organisme de form. note 0, n Note n° cours sigle intitulé nb heures n°prof pourcentage n°Etu n° cours note 1, n 0, 3 Projet turoré 0, n -transversal sujet responsable n° pt Cours 0, 1 0, n 1, 1 0, 2 Stage -Projet d’entreprise sujet n° st 1, 1 1, n 1, 1 0, n Industrie id Ind. nom domaine type
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 sousensembles du produit cartésien de plusieurs domaines
Produit cartésien et sous-ensemble Produit cartésien D 1 D 2 D 1 x D 2 A B C … Z volume maximal = 26*10 = 260 Sous-ensemble du produit cartésien 1 2 3 … 10 A B C … Z 1 2 3 … 10 volume maximal = seuls les couples concernés
Domaines et tables relationnelles Table relationnelle Sous-ensemble de D 1 x D 2 Bellynck Bozzi Deriz Rousset Marhous D 1 = Prof. Nom Valérie Alain Eliane Mazen Lionel D 2 = Prof. Prénom Prof Nom Prénom Bellynck Bozzi Deriz Rousset Marhous Valérie Alain Eliane Mazen Lionel
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 D 1, D 2, …Dn que l’on écrit D 1 x D 2 x … x Dn est un ensemble de n-uplets (ou tuples) < V 1, V 2, …Vn > tel que. Vi 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.
- Slides: 36