Le Mod¨le Relationnel (Chapitre 4) Bases de Donn©es Relationnelles

  • View
    113

  • Download
    6

Embed Size (px)

Text of Le Mod¨le Relationnel (Chapitre 4) Bases de Donn©es Relationnelles

  • Page 1
  • Le Modle Relationnel (Chapitre 4) Bases de Donnes Relationnelles
  • Page 2
  • 2 Le modle relationnel n modle de niveau logique, trs simple n dfini par Ted Codd en 1970; prix Turing en 1986. Dvelopp par IBM lab. n aujourd'hui utilis par beaucoup de SGBD commerciaux (Oracle, Informix, DB2, Ingres, Sybase, dBase, Access ) et GIS n modle deux concepts: u relation (table) u attribut (colonne)
  • Page 3
  • 3 Concepts de base Etudiant (NEtud, nom, prnom, age) nom de la relation noms des attributs NEtud nom prnom age 136 Dupont Jean 19 253 Aubry Annie 20 101 Duval Andr 21 147 Dupont Marc 21 Etudiant schma population tuple ou occurrence
  • Page 4
  • 4 Schma relationnel n une BD = ensemble de relations n schma d'une BD relationnelle = un ensemble de schmas de relation: R1, R2, , Rx n schma d'une relation = un ensemble d'attributs Ri = (A1/d1, A2/d2, , Ay/dy) ou, plus simplement, Ri = (A1, A2, , Ay)
  • Page 5
  • 5 Rgles de structuration n attributs: simples et monovalus (domaine de valeurs atomiques) n structure plate regulire tuple x: une et une seule valeur atomique par attribut x x x x x x wwww w w INTERDIT
  • Page 6
  • 6 Valeurs nulles n Un attribut peut ne pas tre valu pour un tuple: on dit alors qu'il a une valeur nulle u exemple: on ne connat ni l'age d'Annie ni le prnom de Duval 136 Dupont Jean 19 253 Aubry Annie NIL 101 Duval NIL 21 147 Dupont Marc 21
  • Page 7
  • 7 Rgles d'identification n Toute relation possde un identifiant (cl) u il ne peut y avoir deux tuples identiques dans la mme relation n L'identifiant n'admet pas de valeurs nulles NEtud nom prnom age 136 Dupont Jean 19 253 Aubry Annie 20 101 Duval Andr 21 147 Dupont Marc 21 Etudiant
  • Page 8
  • 8 Identifiant d'une relation n Une relation peut avoir plusieurs identifiants EtudPrnoms2 (NEtud, NPrnom, Prnom) n Dfinition: L'identifiant d'une relation est un ensemble minimum d'attributs de la relation, tel qu'il n'existe pas 2 tuples ayant mme valeur pour cet identifiant. n Rgle: tous les attributs de tout identifiant doivent toujours avoir une valeur connue (non nulle).
  • Page 9
  • 9 Domaines de valeurs n Un domaine est un ensemble de valeurs atomiques que peut prendre un attribut (cf. EA) n Exemples de domaines: u Dnom : chanes de caractres de longueur maximale 30 u Dnum : entiers compris entre 0 et 99999 u Dcouleur : {"bleu", "vert", "jaune"} u Dge : entiers compris entre 16 et 65
  • Page 10
  • 10 Dfinition d'une relation n Une relation est dfinie par : u son nom u sa liste de couples u son (ses) identifiant(s) u la dfinition de sa smantique (phrase en franais) n Exemple : u Etudiant (NEtud : Dnum, Nom : Dnom, Prnom : Dnom, Age : Dge) Identifiant: NEtud Dfinition: tout tudiant actuellement immatricul l'EPFL
  • Page 11
  • 11 Contraintes de modlisation n Les notions d'attribut multivalu ou complexe n'existent pas dans le modle relationnel. Il faut donc les modliser autrement. n Pour un attribut complexe, il faut choisir entre le compos ou les composants n Pour un attribut multivalu, il faut crer une autre relation (ceci pour chaque attribut multivalu)
  • Page 12
  • 12 Reprsentation d'attribut complexe n Soit Adresse : nom rue, n, ville, NPA n Solution 1: un attribut par composant: nom rue, n, ville, NPA "Rue de Bourg", "2", "Lausanne", "1003" u il est ventuellement possible de dfinir par ailleurs une vue restituant la notion globale d'adresse Solution 2: un attribut Adresse, domaine: chaine de caractres "Rue de Bourg 2 Lausanne 1003"
  • Page 13
  • 13 Reprsentation d'attribut multivalu Exemple: mmoriser les diffrents prnoms des tudiants u INCORRECTE: Plusieurs attributs : Prnom1, Prnom2, u CORRECTE: crer une relation supplmentaire: EtudPrnoms ( Num_Etud, Prnom ) 136 Jean 136 Marie 101 Andr 253 Annie 253 Claudine Ou liste ordonne: EtudPrnoms2 (NEtud, NPrnom, Prnom)
  • Page 14
  • 14 Identifiant externe n Cours (NomC, horaire, prof) BD Mercredi 15-17 Duval SE Mardi 16-19 Malin n Suit (NEtud, NomC) 253 SE 136 BD 253 BD 101 SE Suit traduit un TA entre Etudiant et Cours. Elle comporte les identifiants de Etudiant et de Cours. Suit.NomC est un identifiant externe sur Cours.
  • Page 15
  • 15 Identifiants externes n Dcrivent des liens entre relations n Suit (NEtud : Dnum, NomC : Dnom) NEtud rfrence un Etudiant NomC rfrence un Cours n Si la relation rfrence possde plusieurs identifiants, il faut prciser: NEtud rfrence un Etudiant.NEtud n Vrification de lintgrit rfrentielle assure par le SGBD: les identifiants externes dsignent ncessairement des tuples existants.
  • Page 16
  • 16 Rcapitulatif n Un schma relationnel se compose: u pour chaque relation de: F nom de la relation F dfinition F attributs + domaines F identifiant(s) F ventuellement identifiant(s) externe(s) F contraintes d'intgrit associes u et des autres contraintes d'intgrit qui portent sur plusieurs relations.
  • Page 17
  • 17 Exemple de schma relationnel (FormaPerm) n Domaines: u Dnom : chanes de caractres de longueur infrieure 30 u Dch100 : chanes de caractres de longueur infrieure 100 u Danne : [1970 : 1990 ] u Dnote : [0.0 : 20.0 ] u Ddate : [1 :31 ] / [1 :12 ] / [1920 :1990 ]
  • Page 18
  • 18 n Relation : Personne Attributs: nP : entier sans nul nom : Dnom sans nul adr : Dch100 sans nul Identifiant: (nP ) Dfinition: tout tudiant et tout enseignant de l'cole (tat actuel). n Relation : PersonnePrnoms Attributs: nP : entier sans nul prnom : Dnom sans nul Identifiant: (nP + prnom ) Identifiant externe: nP rfrence une Personne Dfinition: prnoms des personnes
  • Page 19
  • 19 n Relation : Etudiant Attributs: nP : entier sans nul nE : entier sans nul dateN : Ddate sans nul Identifiants: (nE ) (nP ) Identifiant externe : nP rfrence une Personne Dfinition: tout individu qui est actuellement inscrit l'cole, ou qui a dj pass avec succs un des cours de l'cole n Relation : EtudiantEtudes Attributs: nE : entier sans nul anne : Danne sans nul diplme : Dnom sans nul Identifiant: (nE + diplme ) Identifiant externe : nE rfrence un Etudiant.nE Dfinition: tudes antrieures des tudiants car possibilit d avoir plusieurs diplmes la mme anne
  • Page 20
  • 20 n Relation : Enseignant Attributs: nP : entier sans nul tel: : entier sans nul statut : Dnom sans nul banque : Dnom sans nul agence : Dnom sans nul compte : entier sans nul Identifiant: (nP ) Identifiant externe : nP rfrence une Personne Dfinition: tout individu assurant actuellement un ou plusieurs cours l'cole n Relation : Cours Attributs: nomC : Dnom sans nul cycle : entier sans nul nEns : entier sans nul Identifiant: (nomC ) Identifiant externe : nEns rfrence un Enseignant Dfinition: tout cours actuellement offert par l'cole
  • Page 21
  • 21 n Relation : Obtenu Attributs: nE : entier sans nul nomC : Dnom sans nul note : Dnote sans nul anne : Danne sans nul Identifiant: (nE + nomC ) Identifiants externes : nE rfrence un Etudiant.nE nomC rfrence un Cours Dfinition: l'tudiant nE a russi le cours nomC telle anne et a obtenu telle note n Relation : Inscrit Attributs: nE : entier sans nul nomC : Dnom sans nul Identifiant: (nE + nomC ) Identifiants externes : nE rfrence un Etudiant.nE nomC rfrence un Cours Dfinition: actuellement, l'tudiant nE est inscrit au cours nomC
  • Page 22
  • 22 n Relation : Prrequis Attributs: nomC : Dnom sans nul nomCprrequis : Dnom sans nul Identifiant: (nomC + nomCprrequis ) Identifiants externes : nomC rfrence un Cours nomCprrequis rfrence un Cours Dfinition: le cours nomCprrequis est un prrequis pour le cours nomC Contrainte d'intgrit: dans tout tuple, nomCprrequis doit tre diffrent de nomC
  • Page 23
  • 23 Contraintes d'intgrit n Pour tout tuple de Prrequis, le cycle de nomCprrequis dans Cours doit tre infrieur ou gal celui de nomC: u in Prrequis => x.cycle y.cycle n Pour tout tuple de EtudiantEtudes, soit dateN la date de naissance des tudiants dans la relation Etudiant, alors: dateN < anne: u in EtudiantEtudes, in Etudiant => d < y
  • Page 24
  • 24 Contraintes d'intgrit n Pour tout tuple de Etudiant: cette-anne - dateN 18, o cette-anne est une variable SGBD n Pour tout tuple de Obtenu, soit dateN la date de naissance de l'tudiant dans la relation Etudiant, alors: dateN + 18 anne n Pour tout tuple de Inscrit, le nE doit exister dans Obtenu associ tous les cours existant dans Prrequis associs nomC.