Bases de données – Cours 2 Présenter par: Rouagat Wahab
Contenu Le modèle relationnel Passage du modèle E/A vers le modèle relationnel Exercices par: Rouagat Wahab
Le modèle relationnel Le modèle relationnel a été proposé par Codd à IBM-St-José en 1970. Au type d’entité du MCD correspond la notion de Relation, à ne pas confondre avec une association. Une relation est assimilée à une table. Les propriétés sont appelées des attributs. par: Rouagat Wahab
Relation Un Domaine est un ensemble de valeurs : ensemble des entiers, ensemble des couleurs (bleu, blanc, rouge), intervalle 0..1, etc. Le produit cartésien de plusieurs domaines D1, D2,...,Dn est constitué d’un ensemble de n-uplets encore appelés tuples : (v1, v2,. . ., vn), où chaque vi est une valeur d’un Di. par: Rouagat Wahab
Soit D1={rouge, vert, bleu} et D2={0,1}deux domaines Le produit cartésien de l’ensemble D1 des couleurs par celui D2 des valeurs binaires est D1 D2 rouge 1 vert bleu par: Rouagat Wahab
EMPLOYE(numero, nom, adresse, salaire, emploi, departement) Une relation est un sous ensemble du produit cartésien des domaines sur lesquels sont définis ses attributs. Elle peut donc être représentée par une table à 2 dimensions dont les colonnes correspondent aux différents domaines et dont les lignes représentent les tuples. Le schéma relationnel est constitué de l’ensemble des relations définies par leur nom suivi de la liste de leurs attributs. Exemple: EMPLOYE(numero, nom, adresse, salaire, emploi, departement) par: Rouagat Wahab
Clé d’une relation Une clé est une liste ordonnée d’attributs qui caractérise un tuple (n-uplet) de la relation. Une clé primaire caractérise un tuple de manière unique. par: Rouagat Wahab
Clé primaire Il n’y a pas d’identificateur de tuple. C’est un attribut particulier, la clé primaire (numero dans l’exemple précédent), qui permet d’identifier une rangée de la table parmi toutes les autres. Il arrive que plusieurs attributs soient capables de jouer le rôle de clé pour une relation. L’un d’eux est alors choisi pour constituer la clé primaire, les autres clés candidates deviennent alors des clés secondaires. par: Rouagat Wahab
Passage modèle E-A / modèle Relationnel Traduction d'une classe d'entité Toute classe d'entité se traduit par une table relationnelle, dont les attributs sont : l'identifiant de l'objet, qui forme la clé primaire du tuple correspondant. tous les attributs de la classe. par: Rouagat Wahab
Lien n:1 n : 1 EMPLOYES NE nom dateEntree salaire DEPARTEMENTS Nd nom ville 0: n 1: 1 Travaille par: Rouagat Wahab
Traduction des liens n:1 Tout lien n:1 se traduit par un attribut dans la table représentant la classe de départ. Cet attribut représente l'identifiant de l'entité d'arrivée et elle devient attribut clé étrangère dans la table de départ. Si le lien comporte des attributs, ceux-ci sont placés dans la table de départ. Exemple précédent se traduit: EMPLOYES(NE, nom, dateEntree, salaire, #ND) Remarque: On précède les clés étrangères par un # par: Rouagat Wahab
Lien 1:n 1 : n Auteurs NA Nom Prénom Ouvrages NO Titre 1 : 1 0: n Date de publication publie par: Rouagat Wahab
Traduction des liens 1:n Tout lien 1:n se traduit par un attribut dans la table représentant la classe d'arrivée. Cet attribut représente l'identifiant de l’entité de départ et elle devient attribut clé étrangère dans la table d’arrivée. Si le lien comporte des attributs, ceux-ci sont placés dans la table d'arrivée. Exemple précédent se traduit: Ouvrages(NO, Titre, Date de publication, #NA) par: Rouagat Wahab
Lien n:m n : m ADHERENTS NA nom adr LIVRES NL éditeur 0: n 0: n datEmp datRet EMPRUNTER par: Rouagat Wahab
Traduction des liens n:m Tout lien n:m se traduit par une table relationnelle, dont les attributs sont: l'identifiant de l'objet de départ. l'identifiant de l'objet d'arrivée. les attributs (éventuels) du lien. En général, la clé primaire de cette table est constituée de la concaténation des clés primaires des entités associées. Toutefois, il faut se demander si cette concaténation forme bien la clé primaire. Si ce n’est pas le cas, on peut essayer d’ajouter des attributs non-clés pour trouver la clé primaire. Ensuite, il faut se demander si on ne peut pas supprimer certains attributs clés étrangères de cette clé primaire. Exemple précédent se traduit: EMPRUNTER(#NA, #NL, datEmp, datRet) par: Rouagat Wahab
Règles d’intégrité Ces règles garantissent le bon fonctionnement du modèle et l’accès aux données élémentaires représentées par les lignes des tables qui traduisent les relations. par: Rouagat Wahab
L’intégrité d’unicité L’accès à une ligne particulière d’une table ne peut être réalisé directement que par l’intermédiaire de la valeur d’une clé qui joue le rôle d’un identifiant. Le modèle relationnel est un “modèle valeur” parce que ce sont des valeurs qui servent à l’identification ; une telle valeur doit obligatoirement être unique et définie. Lorsqu’aucune valeur ne peut convenir pour repérer la rangée d’une table, il faudra en créer une, même artificiellement, en lui attribuant par exemple un numéro qui n’aura qu’une signification interne au sein du système. par: Rouagat Wahab
L’intégrité de référence Cette contrainte traduit l’existence d’un lien fonctionnel entre deux relations. La relation qui est du côté de la cardinalité 1,1 dans l’association est la relation référençante, celle qui est racine de la hiérarchie (cardinalité 1,n) est la relation référencée. On doit trouver dans la relation référençante un attribut construit sur le même domaine que la clé de la relation référencée. Une ou plusieurs valeurs de cet attribut doivent correspondre à une valeur unique de la clé. Ce procédé permet d’associer par valeur plusieurs rangées de la relation référençante à une et une seule ligne de la relation référencée. par: Rouagat Wahab
L’intégrité de domaine Les valeurs d’un attribut doivent obligatoirement correspondre aux valeurs du domaine sur lequel il est défini. Un domaine est souvent associé à des critères logiques qui permettent de restreindre le type sur lequel il est construit (entiers positifs, caractères limités aux voyelles, etc). Le respect de l’intégrité de domaine permet donc de contrôler lors de l’insertion ou de la mise à jour d’une valeur que celle-ci est conforme au cahier des charges (un salaire ne peut être négatif, un mois doit être compris entre 1 et 12, un nom sera transformé indépendamment de sa saisie avec une initiale en capitale, etc . . .). Un schéma totalement relationnel est un schéma satisfaisant tous ces types d’intégrité. par: Rouagat Wahab
Exercice1 Une entreprise réalise des projets. Chaque projet a une date de début, une date de fin, un nom et un descriptif. Un ou plusieurs employés sont affectés à un projet, pour une durée variable. Les employés travaillent sur un ou plusieurs projets, soit en même temps, soit successivement dans le temps. L’entreprise est divisée en services. Chaque employé travaille dans un service et un seul. Les employés ont un numéro matricule, un nom, une adresse et une fonction. Les services ont un numéro, un nom et un chef de service employé de la société. Faire le MEA de la situation Proposer le MR correspondant par: Rouagat Wahab
Exercice2 Une école organise et gère les stages de ses étudiants. Chaque année, l’école recherche des stages pour les étudiants. Pour cela, l’école dispose d’une liste d’entreprises ayant déjà proposé des stages et d’autres susceptibles d’en proposer, et leur écrit pour les inciter à renouveler l’expérience. Au vu des réponses, les étudiants prennent contact avec les entreprises qui les intéressent. Quand les conventions de stage sont signées, chaque stagiaire se voit désigner un enseignant pour l’encadrer. Ce dernier doit veiller au bon déroulement du stage et aller rendre visite à l’étudiant dans son entreprise d’accueil. Une entreprise peut offrir plusieurs stages. Un enseignant peut encadrer plusieurs étudiants. Un stage est effectué dans une seule entreprise et est encadré par un seul enseignant. Pour ses archives, l’école conserve toutes les informations concernant les stages effectués par ses étudiants. Les stages ont une date de début et une date de fin. Faire le MEA de la situation Proposer le MR correspondant par: Rouagat Wahab