Chapitre2 Part2
Chapitre2 Part2
Chapitre2 Part2
Enseignant
Mr Konaté
H. Ghazouani
E-mail: [email protected]
S.Konaté II2
LE RELATIONNEL
L'exemple suivant, relatif à la gestion simplifiée des étapes du Tour de France 97,
va nous servir à introduire le vocabulaire lié au modèle relationnel.
2
Comme nous pouvons le constater, le modèle
relationnel est un modèle d'organisation des
données sous forme de Tables (Tableaux de
valeurs) ou chaque Table représente une Relation,
au sens mathématique d'Ensemble. C'est ainsi que
dans l'exemple présenté, figurent l'ensemble des
Equipes, des Coureurs, des Etapes, des Temps
réalisés par les coureurs à chacune des étapes, et
enfin l'ensemble des pays.
3
Les colonnes des tables s'appellent des attributs et
les lignes des n-uplets (où n est le degré de la
relation, c'est à dire le nombre d'attributs de la
relation).
Un attribut ne prend qu'une seule valeur pour
chaque n-uplet.
L'ordre des lignes et des colonnes n'a pas
d'importance.
4
Chaque table doit avoir une clé primaire constituée par un
ensemble minimum d'attributs permettant de distinguer
chaque n-uplet de la Relation par rapport à tous les autres.
Chaque ensemble de valeurs formant la clé primaire d'un
n-uplet est donc unique au sein d'une table. C'est ainsi que
dans la table COUREURS, chaque coureur a un
NuméroCoureur différent.
5
Les liens sémantiques (ou règles de gestion sur les
données) existants entre les ensembles sont réalisés par
l'intermédiaire de clés étrangères faisant elles-mêmes
référence à des clés primaires d'autres tables.
C'est ainsi que dans la table COUREURS, la clé étrangère
CodeEquipe (faisant référence à la clé primaire de même
nom dans la table EQUIPES) traduit les deux règles de
gestion suivantes :
6
Il existe deux grands types de liens : Un - Plusieurs
(comme le précédent) et Plusieurs - Plusieurs. La
réalisation de ce dernier type de liens, un peu plus
complexe, passe par l'utilisation d'une table
intermédiaire dont la clé primaire est formée des clés
étrangères des tables qu'elle relie. C'est ainsi que la
table des TEMPS réalisés à chaque étape par
chacun des coureurs exprime les deux règles de
gestion suivantes :
Un COUREUR participe à plusieurs ETAPES
Une ETAPE fait participer plusieurs COUREURS
7
Le modèle relationnel est le plus souvent décrit sous la forme
suivante, les clés primaires étant soulignées et les clés
étrangères marquées par un signe distinctif (ici *).
8
LE RELATIONNEL
9
SCHEMA DE LA RELATION
(Description en intention)
10
SCHEMA DE LA BASE
CONTRAINTES D’INTEGRITE
– CLE PRIMAIRE
– VALEUR NULLE
– CLE ETRANGERE
– INTERVALLE
– LISTE
11
CONTRAINTES D’INTEGRITE :
Contrôles effectués lors de la saisie, modification ou suppression
des données
12
VALEUR NULLE :
Dans cette colonne certaines lignes peuvent ne pas contenir de
valeurs
13
CLE ETRANGERE :
Attribut clé primaire dans une autre table. Vérification de la contrainte
d’intégrité réferentielle
F012 Mozart Wolfgang
S234 Beethoven Ludvig
? G087
B555
Berlioz
Haydn
Hector
S234
F012
G087
A631 Valeur
G087 inexistante dans
B555 la table
S234
G087
A831
14
Récapitulatif
Un schéma relationnel se compose :
pour chaque relation de :
nom de la relation
définition
attributs + domaines (entiers, réels, chaines de caractères,
…)
clé(s)
éventuellement clé(s) étrangère(s)
contraintes d'intégrité associées
et des autres contraintes d'intégrité qui portent sur plusieurs
relations.
15
Problème de la redondance
[En dehors des clés étrangères]
ex. Soit la relation COMMANDE_PRODUIT.
16
Problème de la redondance (suite)
Anomalies de modification : Si l’on souhaite mettre à jour l’adresse d’un
17
Normalisation (1)
Objectifs de la normalisation :
18
CONSTRUCTION DU SCHEMA RELATIONNEL
DEFINITIONS
LES DEPENDANCES FONCTIONNELLES
Soit R (X, Y, Z)
19
CONSTRUCTION DU SCHEMA RELATIONNEL
DEFINITIONS
LES DEPENDANCES FONCTIONNELLES
Exemple
PRODUIT (NumProd, Dési, PrixUni)
NumProd Dési, Dési PrixUni
20
Propriétés des dépendances fonctionnelles :
Si Y X alors X Y
Augmentation :
Si X Y alors X, Z Y
Transitivité :
Si X Y et Y Z alors XZ
Union :
Si X Y et X Z alors X Y, Z
Pseudo transitivité :
Décomposition :
Si X Y et Z Y alors XZ 21
NIVEAUX DE NORMALISATION
R (A, B, C, D, E, F)
22
Première Forme Normale
Exemple
MARTIN Géomètre
23
Première Forme Normale -- Exemple
Soit une relation en 1FN:
Fournisseur(NF,NomProduit,Adr,Tel,Prix)
Problèmes
Redondances NomProduit
Mises à jour pour les insertions Prix
Suppressions
Mises à jours des tuples NF Adr
Décomposition Tél
Tel
Fournisseur1(NF,Adr,Tel)
Catalogue(NF,NomProduit,Prix)
Sans perte d’information, sans perte de DF
24
Deuxième Forme Normale
Définition
– une relation est en 2ème forme normale ssi :
• elle est en 1ère forme
• toutes les DFs entre la clé et les autres attributs sont
élémentaires
• tout attribut non clé primaire est dépendant de la clé primaire
entière
Schéma
R (A, B, C, D, E, F) NON 2 NF
Exemple :
– Fournisseur2(NF, Pays,Ville)
• Redondance
• Décomposition
– Fourn(NF, Ville) NF Ville Pays
– Géo(Ville, Pays)
– Sans perte d’information, sans perte de DF.
26
Troisième Forme Normale
Définition
– une relation est en 3ème forme normale ssi :
• elle est en 2ème forme
• tout attribut n'appartenant pas a une clé ne dépend pas d'un
autre attribut non clé
Schéma
R (A, B, C, D, E, F) NON 3 NF
29
Méthode de décomposition en 3ème forme
Sans perte d ’information
Sans perte de DF.
Créer pour chaque source de DF une relation comprenant comme
attributs la source et toutes les cibles de cette source.
Si aucun des identifiants de R n’est présent dans au moins une des
relations créées ajouter une relation supplémentaire, constituées des
attributs composant un des identifiants de R.
Génère parfois des décompositions redondantes.
30
Graphe des Dépendances Fonctionnelles
31
Graphe des Dépendances Fonctionnelles
Un seul chemin !
32
Graphe des Dépendances Fonctionnelles
33
Graphe des Dépendances Fonctionnelles
Exemple:
R(N°E, nom, prénom, adr, dateN, NomC, année, nbCrédits, prof, note)
L’étudiant (N°E) a obtenu telle année tel cours (nomC) avec telle note.
Cette année là le cours a été la responsabilité de tel prof et valait tant de
crédit (nbCrédits).
34
Graphe des Dépendances Fonctionnelles
Graphe des DF de R:
35
Algorithme de normalisation /DF
36
Algorithme de normalisation /DF
Exemple:
37
Méthode de décomposition en 3ème forme
Sans perte d ’information
Sans perte de DF.
Créer pour chaque source de DF une relation comprenant comme
attributs la source et toutes les cibles de cette source.
Si aucun des identifiants de R n’est présent dans au moins une des
relations créées ajouter une relation supplémentaire, constituées des
attributs composant un des identifiants de R.
Génère parfois des décompositions redondantes.
38
Comment concevoir un schéma
relationnel normalisé
Concevoir un schéma entité/association puis le traduire en relationnel.
39
A,B C, E
A F
F D, G, H
D I, J, K
R (A, B, C, D, E, F, G, H, I, J, K)
R1 (A, B, C, E) R2 (A, D, F, G, H, I, J, K)
NOM_CLASSE_ENTITE
-CARAC_REF
-CA1
-CA2
…..
NOM_CLASSE_ENTITE1 NOM_CLASSE_ENTITE2
-CARAC_REF1 -CARAC_REF2
10,1 ASSOCIATION
0,?
-CA1 -CB1
-CA2 -CB2
….. …..
NOM_CLASSE_ENTITE1 NOM_CLASSE_ENTITE2
-CARAC_REF1 -CARAC_REF2
0,1 0,n
-CA1 ASSOCIATION -CB1
CARAC_ASS
-CA2 -CB2
….. …..
NOM_CLASSE_ENTITE1 NOM_CLASSE_ENTITE2
-CARAC_REF1 -CARAC_REF2
0,n ASSOCIATION
0,n
-CA1 -CB1
-CA2 CARAC_ASS -CB2
….. …..
NOM_CLASSE_ENTITE2
-CARAC_REF2
NOM_CLASSE_ENTITE1 0,n -CB1
-CARAC_REF1 …..
0,n ASSOCIATION
-CA1
CARAC_ASS
-CA2
…..
NOM_CLASSE_ENTITE3
0,n -CARAC_REF3
-CC1
…..
Carac_assoc
0,n
46
Liens d ’héritage : spécialisation et généralisation
CLASSE_ENTITE
-CARAC_REF
-CA1
-CA2
CLASSE_ENTITE1 CLASSE_ENTITE2
-CB1 -CC1
-CB2 -CC2
-CC3
49
Solution:
50
LES OPERATIONS ALGEBRIQUES
R1 = (Prédicat) R
R
R1
52
Restriction (ou sélection) :
53
PROJECTION
R
R1
54
Projection :
Exemple:Nom et nationalité des coureurs ?
R = PROJECTION(COUREUR, NomCoureur,
Nationalité)
NOTATION : (NomCoureur,Nationalité)COUREURS
Si S1, S2 sont les schémas respectifs de R1, R2 le schéma de R est (S1, S2).
R =R1 X R2
R
R1
(4 n-uplets)
R2
(3 n-uplets)
(3x4 = 12 n-uplets)
56
UNION
R = UNION ( R1 , R2)
R contient les n-uplets de R1 et les n-uplets de R2 qui n’apparaîssent pas dans R1.
R = R1 R2
R1
R
R2
57
Union
– Les relations doivent avoir le même schéma
PROFESSEUR MAITRE DE CONFERENCE
N°Ens Nom Prénom Matière N°Ens Nom Prénom Matière
12 CHARPIN Françoise Economie 5 BEL Liliane Mathématiques
15 THERY Philippe Droit 8 TOPOR Lucienne Droit
16 VOGEL Louis Droit 58 SKALLI Ali Economie
17 BALLE Francis Politique 67 BERGER Maria Informatique
58
DIFFERENCE
R = DIFFERENCE (R1, R2)
R contient les n-uplets de R1 qui n’appartiennent pas à R2.
R =R1 - R2
R1
R
R2
59
DIFFERENCE
R = DIFFERENCE (R1, R2)
R contient les n-uplets de R1 qui n’appartiennent pas à R2.
R =R1 - R2
60
JOINTURE
R = JOINTURE (R1, R2, <Prédicat_de_Restriction>)
R contient les combinaisons des n-uplets de R1 avec les n-uplets de R2
qui vérifient le prédicat de jointure.
R
R1
R2
=
61
Jointure : R=R1R2(R1.code_pays = R2.code_pays)
Numéro Nom Coureur Code Code Code Nom Pays
coureur équipe pays pays
8 ULLRICH Jan TEL ALL ALL Allemagne
31 JALABERT ONC FRA FRA France
Laurent SUI Suisse
61 ROMINGER Tony COF SUI G-B Grande -
91 BOARDMAN Chris GAN G-B Bretagne
R = INTERSECT(R1, R2)
R contient les n-uplets de R1 qui appartiennent à R2
R = R1 R2
R1
R
R2
63
DIVISION
R2 = DIVISION ( R, R1)
Soient n1 un n-uplet de R1, n2 un n-uplet de R2, R2 contient les n-uplets tels que :
R2 = R / R1
R2
R1
64
DIVISION
R2 = DIVISION ( R, R1)
R2 = R / R1
R R1
Numéro Nom Coureur Code Code Code Code
coureur équipe pays équipe pays
8 ULLRICH Jan TEL ALL TEL ALL
31 JALABERT Laurent ONC FRA ONC FRA
61 ROMINGER Tony COF SUI
91 BOARDMAN Chris GAN G-B
R2
Numéro Nom Coureur
coureur
8 ULLRICH Jan
31 JALABERT Laurent 65
GRAPHE DES REQUETES
X
Prédicat de
Attributs Jointure
Prédicat
•LESACTEURS(TITRE,ACTEUR)
67
Exemple:
•LESACTEURS(TITRE,ACTEUR)
68
Exemple:
•LESACTEURS(TITRE,ACTEUR)
69
Exemple:
•LESACTEURS(TITRE,ACTEUR)
70
Exemple:
•LESACTEURS(TITRE,ACTEUR)
71
Exemple (Solution):
Q2: Donnez les années de sortie des films tournés par GABIN.
projection(année; jointure(LESFILMS.titre=LESACTEURS.titre,
LESFILMS;sélection(acteur='Gabin'; LESACTEURS)))
Q3: Trouver les acteurs qui ont tourné avec TRUFFAUT comme
réalisateur.
projection(acteur, jointure(LESFILMS.titre=LESACTEURS.titre;
LESACTEURS;sélection(réalisateur='Truffaut'; LESFILMS)))
72
Exemple (Solution):
73
Merci…
74