Vous êtes sur la page 1sur 10

Licence Informatique 2me anne Cours de SGBDR

Chapitre 4 Le modle Relationnel


Le modle relationnel est le modle le plus utilis par les SGBD actuels. Il nutilise que le concept de relation. Lintrt du concept unique est double : dune part, le modle parat simple et plus facile comprendre pour un non-spcialiste, dautre part, un cadre mathmatique, lalgbre relationnelle, a pu lui tre donn.

1- Dfinition dune relation


Une relation est un sous-ensemble du produit cartsien dune liste de domaines (ensembles de valeurs ou encore, types au sens des langages de programmation). Le nombre de domaines de la relation est son arit. Elle est reprsente sous la forme dune table, o les lignes sont constitues d'un ensemble de valeurs. Une valeur par domaine de la relation. Une ligne est aussi appele uplet ou n-uplet (s'il y a n domaines). Une colonne est l'ensemble des valeurs pour un mme domaine. Exemple : 136 253 101 147 Dupont Aubry Duval Dupont Jean Annie Andr Marc 19 20 20 21

Cet exemple reprsente une relation (ou table) dcrivant des tudiants. La premire et la dernire colonne ont pour domaine les entiers et les deux autres les chanes de caractres. On donne un nom diffrent chaque colonne, pour les distinguer. On appelle attribut dune relation un couple <nom, domaine>, et schma de la relation, le nom de la relation suivi de la liste de ses attributs.

36

Licence Informatique 2me anne Cours de SGBDR

Exemple : la relation ci-dessus a pour schma : Etudiants ( NEtud : entier; Nom : Chane(30); Prnom : Chane(20); Age : entier(0..120);) Pour simplifier, nous omettrons en gnral les domaines; ils sont dduits implicitement des noms des attributs. La relation est alors dcrite de la faon suivante : Etudiants (NEtud, Nom, Prnom, Age) Il est usuel de souligner lattribut, ou les attributs, qui constitue(nt) la cl de la relation. Si un attribut est une cl dune autre relation, il est appel cl externe.

2- Des schmas EA aux schmas relationnels


Partant dun schma entit association, on peut construire un ensemble de schmas de relations. Lide consiste reprsenter les types dentits et leurs attributs par une relation, chaque uplet de la relation tant associ une entit. Les types dassociations sont galement transforms en relations constitues, en gnral, des cls des types dentits associs, complts par les attributs de lassociation, si elle en a. Exemple : Etudiant NEtud 136 253 101 Cours Nom Dupont Aubry Duval Prnom Jean Annie Andr Age 19 20 20

NomC Horaire Algo Lundi 10-12 Systme Mardi 16-18

Prof Duval Carr Note 12

Suit NEtud NomC 253 Algo

37

Licence Informatique 2me anne Cours de SGBDR

136 Systme 08 253 Systme 15 On remarque que la relation Suit (qui traduit un type dassociation) a pour attributs les cls des deux prcdentes relations (qui traduisent des types dentits) et lattribut de lassociation. Quelques rgles pour la transformation dun modle EA en modle relationnel : Constitution des relations : Chaque TE est transform en une relation. La cl de la relation est la mme que celle du TE. Chaque TA est transform en une relation constitue des cls des TE associs, et de ses propres attributs. La cl de la relation est la mme que celle du TA. Si le TA a un rle de cardinalit max=1, on runi en une seule relation celle du TA et celle du ayant ce rle. La cl de la relation est la mme que celle du TA. C'est en particulier le cas d'un TE faible. Un attribut multivalu est transform en une relation constitue de lattribut et de la cl de son TE. Un attribut complexe est soit dcompos, soit transform de la mme faon quun attribut multivalu.

Exemple :
Etudiants Num_etu <pi> I <M> Nom VA30 Prenom VA20 Age I Num_etu <pi> 0,n Suit Note N5,2 0,n Cours NomC <pi> VA20 <M> Horaire VA20 Prof VA20 NomC <pi>

38

Licence Informatique 2me anne Cours de SGBDR


Etudiants Num_etu Nom Prenom Age INTEGER <pk > VARCHAR2(30) VARCHAR2(20) INTEGER FK1

Suit Num_etu INTEGER <pk,fk1> NomC VARCHAR2(20) <pk,fk2> Note NUMBER(5,2) FK2

Cours NomC VARCHAR2(20) <pk> Horaire VARCHAR2(20) Prof VARCHAR2(20)

3- La notion de schma de relation


Le schma dune relation donne la signification ou linterprtation de la relation. Elle est constitue dun ensemble de uplets vrifiant une certaine smantique. Les valeurs dun uplet doivent en gnral vrifier un certain nombre de contraintes. Un schma de relation est dfini par : - son nom - la liste de ses attributs : couples (nom:domaine) - sa (ses) cl(s) et ses cls externes - sa dfinition (phrase en franais) - la liste des contraintes Parmi les contraintes que peut imposer un schma relationnel, les dpendances fonctionnelles forment une catgorie importante, car elles sont lies la notion intuitive de cl. Dfinition : Soit R(A1, A2,...,An) un schma de relation, et X et Y deux sous ensembles de {A1, A2,...,An}, on dit quil a dpendance fonctionnelle de Y sur X, et on crit XY, si quel que soit un exemplaire acceptable r de R, tous les uplets u et v de r qui ont les mmes valeurs pour les attributs de X, ont aussi les mmes valeurs pour ceux de Y. Une dpendance fonctionnelle est une proprit impose priori, provenant du monde rel, et qui doit tre dfinie partir de la signification des attributs. Il ne faut pas tenir compte des dpendances constates sur un exemplaire particulier de la relation. Exemple : La relation Etudiant : NEtud (Nom, Prnom, Age)

39

Licence Informatique 2me anne Cours de SGBDR

La relation Cours : NomC(Horaire, Prof) La relation Suit : (NEtud, NomC) Note; un tudiant a une note par cours. Il est vident que la notion de cl dune relation entrane la dpendance de tous les attributs de la relation sur la cl. Inversement, la notion de dpendance permet de prciser cette notion de cl. Dfinition : Soit R(A1, A2,...,An) un schma de relation, et X un sous ensemble de {A1, A2,...,An}. On dit que X est une cl pour R si : 1- X A1A2...An; 2- YX, si Y A1A2...An, alors X=Y {X est minimal} Lorsquil y a plusieurs cls possibles pour une relation, on peut en choisir une, dite cl primaire, les autres tant des cls candidates. Si les dpendances lies aux cls sont naturelles, les autres conduisent quelques difficults. Pour les viter, il faut pouvoir transformer un ensemble de relations, tout en conservant les dpendances fonctionnelles, puisquil sagit de contraintes vrifies par le monde rel. On appellera schma relationnel, un ensemble de schmas de relations et son ensemble de contraintes dintgrit.

4- Cl externe
Certains attributs rfrencent des uplets dune autre relation, cest--dire que leur valeur est ncessairement gale celle de la cl dun uplet existant dans lautre relation. Par exemple, la relation Suit(NomC, NEtud, Note) possde une cl (NomC+NEtud), et deux cls externes : NomC et NEtud. En effet, NomC rfrence un Cours, cest dire que si une valeur NomC existe dans Suit, alors il doit ncessairement exister un cours de ce nom l dans la relation Cours. De mme, Netud rfrence un Etudiant.
40

Licence Informatique 2me anne Cours de SGBDR

Le schma dune relation comprend donc, en plus de la dfinition du nom de la relation et de ses attributs et domaines associs, la dfinition de sa (ses) cl(s), et celle de ses cls externes, sil en existe. Les cls externes sont dclares de la faon suivante : Suit(Netud ; Dnum, NomC : Dnom) Cls externes : NEtud rfrence un Etudiant NomC rfrence un Cours Dfinition : Soient deux relations R1(X, Y) et R2(V, W), o X, Y, V, W, dsignent des attributs ou des ensembles dattributs, et o X est la cl de R1, on dit que W est une cl externe sur R1 (ou que W rfrence R1) si pour tout uplet de R2, la valeur prise par W est ncessairement la valeur de X pour un uplet existant de R1. Autrement dit, tout instant, lensemble des valeurs prises par W est compris dans lensemble des valeurs prises par X. Cette vrification est automatiquement assure par le SGBD : une fois dclare la cl externe W de R2 sur R1, le SGBD vrifie toutes les insertions dans R2 (il vrifie que la valeur de W existe dans R1); il vrifie de la mme faon les modifications de W. Il vrifie toutes les suppressions de uplets de R1 (il vrifie quil nexiste pas de uplet dans R2 rfrenant ce uplet supprimer). Le SGBD assure ainsi, lintgrit de rfrence (ou intgrit rfrentielle) de la base de donnes.

41

Licence Informatique 2me anne Cours de SGBDR

5- Exemple de dclaration dun schma relationnel


A partir du schma EA suivant :
Personnes <M> NumeroP <pi> I NomP VA30 PrnomP VA30 Adresse VA100 Hritage 1 NumeroP <pi> Heritage 2

Etudiants NumeroE <pi> I <M> DateNais D NumeroE <pi> 0,n 0,n Est_Inscrit Note I Etudes_Suivies Anne D 0,n 0,n Diplmes NomD <pi> VA30 <M> Anne D Identifier_1 <pi> Cours NomC <pi> VA30 <M> NbHeures I NomC <pi> 0,n 0,n

Enseignants Statut VA30 Dpartement VA30

0,n Enseigne NbHeures I Anne D

0,n

est-prrequis

a-pour-prrequis PrRequis

Nous construisons le schma relationnel ci-dessous.

42

Licence Informatique 2me anne Cours de SGBDR


Personnes NumeroP NomP PrnomP Adresse int <pk> varchar(30) varchar(30) varchar(100)

FK_HERITAGE_1 Etudiants <pk ,fk> NumeroP int NumeroE int DateNais date

FK_HERITAGE_2 Enseignants NumeroP int <pk,fk> Statut varchar(30) Dpartement varchar(30)

FK_EST_INSCRIT FK_ETUDES_SUIVIES Est_Inscrit NumeroE NomC Anne Note int <pk,fk1> varchar(30) <pk,fk2> date <pk> int

FK_ENSEIGNE2

Enseigne NomC NumeroP Anne NbHeures varchar(30) <pk,fk1> int <pk,fk2> date <pk> int

Etudes_Suivies NumeroE int <pk,fk1> NomD varchar(30) <pk,fk2> Anne date <pk>

FK_ENSEIGNE FK_ETUDES_SUIVIES2 FK_EST_INSCRIT2 Cours Diplmes NomD varchar(30) <pk> Anne date NomC varchar(30) <pk> NbHeures int

est-prrequis

a-pour-prrequis

FK_est-prrequis FK_A_POUR_PREREQUIS

PrRequis NomC varchar(30) <pk,fk1> NomCPr varchar(30) <pk,fk2>

La description du schma relationnel correspondant est : Domaines : Dnom : chane de caractres de longueur infrieure 30; Dch100 : chane de caractres de longueur infrieure 100; Danne : [1970:1990]; Dnote : [0.0:20.0]; Ddate : [1:31]/[1:12]/[1920:2000]; Nous ne ferons apparatre que les DF non triviales.

43

Licence Informatique 2me anne Cours de SGBDR

Relation : Personnes Attributs : NumroP : entier sans valeur nulle; NomP : Dnom sans valeur nulle; PrnomP : Dnom sans valeur nulle; Adresse : Dch100 sans valeur nulle; Cl : (NumroP) Dfinition : Tout tudiant et tout enseignant de la composante. Relation : Etudiants Attributs : NumroP : entier sans valeur nulle; NumroE : entier sans valeur nulle; DateNais : Ddate sans valeur nulle; Cls : (NumroE), (NumroP); Cls externe : NumeroP rfrence une Personne; Dfinition : Tout individu qui est actuellement inscrit dans la composante, ou qui a dj pass avec succs un des cours de la composante; Relation : Enseignants Attributs : NumroP : entier sans valeur nulle; Statut : Dnom sans valeur nulle; Dpartement : Dnom sans valeur nulle; Cl : (NumroP) Cl externe : NumroP rfrence une Personne; Dfinition : tout individu assurant actuellement un ou plusieurs cours dans la composante; Relation : Diplmes Attributs : NomD (iplme) : Dnom sans valeur nulle Anne : DAnne sans valeur nulle ; Cl : (NomD); Dfinition : Diplmes proposs et ayant t par la composante Relation : Cours Attributs : NomC : Dnom sans valeur nulle NbHeures : Entier sans valeur nulle; Cl : (NomC); Dfinition : Diplmes proposs et ayant t par la composante

44

Licence Informatique 2me anne Cours de SGBDR

Relation : Etudes Suivies Attributs : NumroE : entier sans valeur nulle; Anne : Danne sans valeur nulle; NomD (iplme) : Dnom sans valeur nulle; Cl : (NE+NomD +Anne); Cl externe : NE rfrence un Etudiant; NomD rfrence un Diplme Dfinition : tudes antrieures dun tudiant; Relation : Enseigne Attributs : NumroP : Dnom sans valeur nulle; NomC : Dnom sans valeur nulle; Nbheures : Entier sans valeur nulle, Anne : DAnne sans valeur nulle Cl : (NumroP + NomC+Anne) Cls externes : NumroP rfrence une Personne NomC rfrence un Cours; Dfinition : les cours enseigns par un enseignant chaque anne. Relation : Est-Inscrit Attributs : NumroE : entier sans valeur nulle; NomC : Dnom sans valeur nulle; Anne : DAnne sans valeur nulle Note : Dnote; Cl : (NumroE+NomC+Anne) Cls externes : NumroE rfrence un Etudiant NomC rfrence un Cours; Dfinition : Les cours o est inscrit ltudiant chaque anne Relation : Prrequis Attributs : NomC : Dnom sans valeur nulle; NomCPr : Dnom sans valeur nulle; Cl : (NomC+NomCPr) Cls externes : NomC rfrence un Cours; NomCPr rfrence un Cours; Dfinition : le cours NomCPr est un prrequis pour le cours NomC.
45