Académique Documents
Professionnel Documents
Culture Documents
Formation Tact
I. Dfinition II. Concepts de base du modle relationnel. III. Les rgles de passage du modle entit / association au modle relationnel. IV.Normalisation
IV.1 But et principe IV.2 Dpendance fontionnelle IV.3 Les formes normales
IV.3.1 1re forme normale IV.3.2 2me forme normale IV.3.3 3me forme normale
Le modle relationnel a t propos par Edgar Frank. Codd en 1970 (IBM SAN-JOSE). Il est souvent considr comme le plus simple et le plus lgant des modles. Sa simplicit est due une vision tabulaire des donnes trs intuitive. Son lgance rsulte de bases formelles issues de la thorie mathmatique des ensembles.
Aujourd'hui utilis par beaucoup de SGBD relationnels commerciaux (Oracle, Informix, DB2, Ingres, Sybase, dBase, Access ).
Deux modles relationnels 1. Modle formel relation, attribut, tuple, identifiant normalisation algbre relationnelle 2. Modle logique, implment : SQL table, colonne, ligne, cl primaire SQL - dfinition et modification du schma SQL - requtes
Objectifs: Proposer un schma de donnes facile utiliser, Amliorer lindpendance logique et physique, Fournir des langages de haut niveau non informaticiens, Optimiser les accs la base, Amliorer lintgrit et la confidentialit, Fournir une approche mthodologique dans la construction des schmas.
Ensemble de concepts pour formaliser la description des objets du monde rel. Monde rel objet Relationnel relation
nom de la relation
Schma
nom
Ali Salah Tounsi
prnom
Mohamed Youssef Khaled
ddn
8/11/1984 11/8/1983 7/7/1984
Tuple/occurrence
34504
Domaine
Une BD = un ensemble de relations. Un schma d'une BD relationnelle (sert dcrire les relations): un ensemble de schmas de relations : R1, R2, , Rn Un schma d'une relation = nom de la relation, liste des couples (Attr:Domaine) et identifiant(s) Etudiant (N Etud : Dnum, Nom : Dnom, Prnom : Dnom, Age : Dge) Un domaine D est un ensemble de valeurs caractris par un nom type de donnes. Chaque valeur du domaine est atomique et donc indivisible.
Relation
Une relation (ou table) R correspond au sousensemble du produit cartsien de n domaines : R D1 x D2 x D3 x x Dn n : degr d'une relation ,nombre de domaines impliqu attribut : rle jou par un domaine dans une relation. Exemple: Pilote (NumPil, NomPil, adr, sal) Avion (NumAv, AvNom, loc, cap)
Etudiant
Age 20 19 20
<253,Ben Foulen, Ali, 19> constitue un tuple Cardinalit de Etudiant = Nombre de tuples
Cours NomC Horaire Prof
Algorithmique Systme
Suit
Mr X MelleY
NEtud
Une cl de relation est un sous-ensemble (minimal) d'attributs qui permet didentifier de manire unique chaque tuple de la relation. Il n'existe jamais 2 tuples ayant les mmes valeurs pour tous ces attributs Une cl n'admet jamais de valeurs nulles. Toute relation doit possder au moins une cl (identifiant). La cl choisie est appele cl primaire lors de la dfinition d'un schma cette cl doit tre mise en vidence (soulignement ou en gras). Exemple Etudiant ( NEtud , nom , prnom , age) Suit ( NEtud , NomC ) NEtud rfrence un Etudiant NomC rfrence un Cours
Relation, cl trangre dune relation Groupe dattributs devant apparatre comme cl primaire dans une autre relation Dcrit les liens binaires entre les relations Les cls trangres dfinissent les contraintes dintgrit rfrentielles. Lors d'une insertion, la valeur des attributs doit exister dans la relation rfrence, Lors d'une suppression dans la relation rfrence les tuples rfrenants doivent disparatre.
Relation, cl trangre dune relation Exemple: la relation Suit contient les cls de Etudiant et Cours Suit traduit un lien entre Etudiant et Cours La valeur de NEtud dans Suit est : celle de l'identifiant d'un tuple existant de Etudiant (intgrit rfrentielle) Mme contrainte pour NomC de Suit
Diagramme de lien
Etudiant NEtud Nom Prnom Age Cours NomC Horaire Prof
Suit
NEtud
NomC
Contrainte dintgrit
Une contrainte dintgrit (CI) est une expression boolenne associ une BD et qui doit toujours tre value VRAI une expression formelle dune certaine rgle de gestion . Exemple: la moyenne dun tudiant est situe dans lintervalle de 0 20 inclus. Une CI est une proprit du schma, invariante dans le temps ou chaque relation doit la (les) respecter. En gnral, une CI est une contrainte sur les valeurs quune variable, ou une combinaison de variables, est autorise prendre.
Un schma relationnel se compose : pour chaque relation de : nom de la relation attributs + domaines cl(s) ventuellement cl(s) trangre(s) contraintes d'intgrit associes
-CARAC_REF
-CA1 -CA2 ..
NomRelation= Nom_Classe_Entite
Exceptions: Les entits n'ayant que leur identifiant comme attribut ne deviennent pas des relations, mais des attributs dans les autres relations lies.
Rgle 2 : Toute association de type [1, n] se traduit par une cl trangre.La cl primaire correspondant l'entit mre(ct n) migre comme cl trangre dans la relation correspondant l'entit fille (ct 1).
NOM_CLASSE_ENTITE1 NOM_CLASSE_ENTITE2
-CARAC_REF1
-CA1 -CA2 ..
?,1
ASSOCIATION
?,n
-CARAC_REF2
-CB1 -CB2 ..
Relation1 ( Carac_ref1, Ca1, ........, Can, #Carac_ref2 ) Carac_ref2 Relation2 ( Carac_ref2, Cb1, ........, Cbm)
Rq. ? dsigne 0 ou 1 (cardinalit minimale)
Cl trangre
Rgle 3 : Toute association non hirarchique (de type [n, n] ou de dimension > 2) devient une relation. La cl primaire est forme par la concatnation de l'ensemble des identifiants des entits relies. Toutes les proprits ventuelles deviennent des attributs qui ne peuvent pas faire partie de la cl.
NOM_CLASSE_ENTITE1 NOM_CLASSE_ENTITE2
-CARAC_REF1
-CA1 -CA2 ..
?,n
ASSOCIATION CARAC_ASS
?,n
-CARAC_REF2
-CB1 -CB2 ..
Relation1 ( Carac_ref1, Ca1, ........, Can) Association ( Carac_ref1, Carac_ref2 ) ,Carac_assoc Relation2 ( Carac_ref2, Cb1, ........, Cbm) )
NOM_CLASSE_ENTITE2
-CARAC_REF2
NOM_CLASSE_ENTITE1
-CARAC_REF1
-CA1 -CA2 ..
?,n ?,n
ASSOCIATION CARAC_ASS
-CB1 ..
NOM_CLASSE_ENTITE3
?,n
-CARAC_REF3
-CC1 ..
Relation1 ( Carac_ref1, Ca1, ........, Can) Association ( Carac_ref1, Carac_ref2,Carac_ref3 ) ,Carac_assoc Relation2 ( Carac_ref2, Cb1, ..., Cbm) Relation3 ( Carac_ref3, Cc1,...., Ccp) )
Les associations rflexives suivent les rgles 2 ou 3 selon les cardinalits mais posent un problme particulier : une mme proprit va se retrouver deux fois en attribut dans la mme relation. Il faut alors donner un nom diffrent et significatif aux deux attributs correspondants. Dans les rflexives, il est conseill de nommer les branches par des rles pour pouvoir lire dans le bon sens l'association.
NOM_CLASSE_ENTITE1
-CARAC_REF1
-CA1 -CA2 ..
?, n
Carac_assoc
CLASSE_ENTITE
-CARAC_REF
-CA1 -CA2
CLASSE_ENTITE2
-CC1 -CC2 -CC3
Implantation avec rpartition horizontale (Avec 2 ou 3 tables) Relation ( Carac_ref, Ca1, Ca2)
Cl trangre Cl trangre
Relation1 ( Carac_ref, Ca1, Ca2, Cb1, Cb2) Relation2 ( Carac_ref, Ca1, Ca2, Cc1, Cc2, Cc3)
OU
Exemple
dentit:
DEPARTEMENT(Num_dpartement,nom_dpartement,localisation)
Exemple
dassociation
ACTEUR
1:n
JOUER Rle
1:n
JOUER(Num_film #,Num_Acteur#,Role)
o Exemple assocication 1 1
DEPARTEMENT Num_dpartement Nom_dpartement Localisation ENSEIGNANT
1:1
ETRE CHEF_DE
0:1
1:n
1:1
1:n
SINSCRIRE
1:n
ANNEE
1:n
SINSCRIRE
1:n
CIN Etudiant Nom Etudiant Prnom Etudiant Adresse Etudiant
Anne 1:n
MATIERE Num Matire Nom Matire Coefficient Matire
ENSEIGNANT(CIN_Enseignant,Nom_Enseignant,Prnom_Enseignant, Adresse_Enseignant) ETUDIANT(CIN_Etudiant,Nom_Etudiant,Prnom_Etudiant, Adresse_Etudiant) MATIERE (Num_Matire, Nom_Matire, Coefficient_Matire) SINSCRIRE(CIN_Enseignant#, CIN_Etudiant #, Num_Matire#, Anne)
BATIMENT
SALLE
0:n
Numro_Batiment Adresse
LOCALISER
1:1
Numro_Salle Capacit
Anomalies de modification : Si lon souhaite mettre jour ladresse dun fournisseur, il faut le faire pour tous les tuples concerns. Anomalies dinsertion : Pour ajouter un fournisseur nouveau, il faut obligatoirement fournir des valeurs pour NumProd et Quantit. Anomalies de suppression : ex. La suppression du produit 104 fait perdre toutes les informations concernant le fournisseur 902.
Normalisation
Il sagit dappliquer des rgles dans le but dviter toute sorte danomalie dans le modle relationnel et par consquent la base de donnes. Ces rgles permettent davoir :
Des requtes plus simple crire Des donnes plus facile accder Une meilleure intgrit des donnes Une diminution des erreurs lors de linsertion ou la suppression des donnes Une utilisation optimale des ressources
Soient R(A1, A2 An) un schma de relation, X et Y des sous-ensembles de A1, A2 An. On dit que X dtermine Y ou Y dpend fonctionnellement de X (XpY) ssi il existe une fonction qui partir de toute valeur de X dtermine une valeur unique de Y. Exemple1 : A B signifie A dtermine B . Si lon connait votre numro demploy, on peut dterminer votre salaire. Exemple2 : PRODUIT (NumProd, Dsi, PrixUni) NumProd pDsi, Dsi pPrixUni
Normaliser
une base de donnes consiste appliquer des rgles regroupes sous la dnomination de Formes normales forme normale est une mthode de classification des relations qui se reposent sur des dpendances fonctionnelles.
Une
relation est dite en 1re forme normale si et seulement si tout attribut contient une valeur atomique. (non multiple, non compos) Exemple : Mdicament(code,description,date_fabrication ,date_expriration)
Une
Le
Pre(cin,
nom ge fils
Solution
Enseignant(code,nom,matires_enseignes)
Code Code
nom matires_enseignes
Solution
1:
2:
Une
relation est en 2me forme normale si et seulement si: Elle est en 1re forme normale Lorsque tous ses attributs non cls sont totalement dpendants fonctionnellement de la totalit de la cl primaire. R (a,b,c,d,e)
A,b A,b A,b
c d e
Exemple 1 : Fournisseur (nom, adresse, article, prix) La cl est (nom, article) nom adresse : pas en 2FN Exemple 2 : Fournisseur2(NF, Pays,Ville) NF Ville Pays Redondance Dcomposition y Fourn(NF, Ville #) y Go(Ville, Pays) Sans perte dinformation, sans perte de DF.
Une
relation est en 3 forme normale si et seulement si: est dj en 2me forme normale
Elle
Il
nexiste aucun attribut non cl qui dpend fonctionnellement dun autre attribut non cl.
Exemple1 :
Pas en 3me forme ! Il est bon que les relations logiques soient en 3me forme :
Se dcompose en :