LE MODÈLE RELATIONNEL
Sommaire
✔ Structure de Données
Relation Attribut Domaine
✔ Opérateurs de Manipulation
Project Restrict Join Union Diff → SQL
✔ Contraintes
Clés Primaires / Etrangères Integrités d'Entité / Référentielle
✔ Règles de mise à Jour
Nullifier, Propager, Refuser
LE MODÈLE RELATIONNEL Structure de Données
✔ Concept de Relation
Relation R = sous ensemble du produit cartésien entre n domaines D 1 , D 2 ,…, D n
R ⊆ D 1 X D 2 X … X D n
( Domaine étant un ensemble de valeurs données) Exemple:
D 1 = { Ali, Amine, Amina…}
D 2 = { 24, 34, 45, 21…}
D 3 = { Rabat, Casa, …}
R = { <Ali, 34, Casa>, <Amina, 24, Rabat>, <Amine, 21, Rabat>, …}
t = <n, a, v> ∈ R ⇔ " n est âgé de a et habite v ".
Propriétés qui définit le sous ensemble
ou Schéma de relation
LE MODÈLE RELATIONNEL Structure de Données
â
Forme de représentation plus commode (simplifiée)
NOM AGE VILLE Ali
Amine Amina
34 24 21
Casa Rabat Rabat
Colonnes à valeur dans F D 1 D 2 D 3
A chaque colonne on donne un nom: NOM AGE et VILLE on dit attribut Les valeurs de chaque colonne sont issues du domaine correspondant.
Une ligne = un n-uplet
LE MODÈLE RELATIONNEL Structure de Données
✔ Définitions / Vocabulaire
✗ Relation / Domaine
✗ Attribut Nom donné à un domaine dans une relation. (e.g. son rôle) Doit être distinct!
Considérer la relation NOTES (Nom, noteCours, noteTp) définie sur Noms X Notes X Notes
deuxième et troisième domaines identiques, attributs différents
✗ Tuple Un élément de la relation <n, a, v> n-uplet
✗ Composant Un élément dans un tuple 'Ali', '24', …
Notation: t.nom, t.age, …
✗ Clé Attribut (ou collection d'attributs) dont la valeur est différente d'un tuple à un autre.
✔ Informel, commode
Table / Lignes / Colonnes (cf. aussi Fichier / Enregistrement / Champs)
LE MODÈLE RELATIONNEL Structure de Données
✗ Schéma de Relation { Nom de la relation, La liste des attributs/domaines, la Clé et le prédicat (propriété de définition)}
PERSONNE (NOM: noms, AGE: entiers, VILLE: villes) Clé NOM, " n est âgé de a et habite v "
Formes simplifiées
PERSONNE (NOM, AGE, VILLE)
PERSONNE NOM AGE VILLE Ou bien PERSONNE
NOM
AGE
VILLE
LE MODÈLE RELATIONNEL Structure de Données
✔ Propriétés
✗ Pas d'ordre dans les tuples
✗ Pas d'ordre dans les attributs
✗ Tous les tuples sont différents
✗ Il existe toujours une clé
✗ Relation Normalisée (Valeurs atomiques, indécomposables)
Exercice: Pourquoi 1 2 3 4?
LE MODÈLE RELATIONNEL Structure de Données (Exemple)
Soient le réel perçu suivant: (adapté de l’exemple classique de C. Date)
S1 Ali Casa S2 Amine Rabat S3 Aziz Rabat
…
Error!
P1 Boulon 10 P2 Écrou 20 P3 Vis 30
…
LE MODÈLE RELATIONNEL Structure de Données (Exemple)
:
F Numf Nomf Ville
S1
S2 S3 S4 S5
Ali Amine
Aziz Amina Karim
Casa Rabat Rabat Fez Tanger
P Nump Nomp Prix
P1 P2 P3 P4 P5
Boulon Écrou Vis Écrou Pince
10 20 30 30 15
FP Numf Nump Qte
S1 S1 S1 S2 S3 S3 S4
P1 P2 P3 P3 P3 P4 P5
300
400
300
100
200
300
400
Exercices : Quels sont les clés ?
LE MODÈLE RELATIONNEL Opérations
✔ Opérateurs Algébriques de Manipulation
Le modèle relationnel se distingue en cela des autres modèles.
Il définit les opérations possibles sur les relations. (Opérateurs Algébriques)
Opérateur : R elation ➝ R elation (unaire)
R elation X R elation ➝ R elation (binaire)
LE MODÈLE RELATIONNEL Opérations
1) Opération de projection: Opérateur PROJECT
PROJECT (Relation, Liste-Attributs )
PROJECT (F, Numf, Nomf)
Numf Nomf Rep graphique
S1 S2 S3 S4 S5
Ali
Amine
Aziz
Amina
Karim
LE MODÈLE RELATIONNEL Opérations
2) Opération de Restriction: Opérateur RESTRICT RESTRICT (Relation, Attribut = valeur )
RESTRICT (P, Prix = 30)
Nump Nomp Prix
P3 P4
Vis Écrou
30 30
Rep graphique:
Error!
LE MODÈLE RELATIONNEL Opérations
3) Combinaison des opérateurs: Expression Relationnelle
PROJECT ( RESTRICT (P, Prix = 30), Nump, Nomp)
Nump Nomp
P3 P4
Vis Écrou
Rep graphique:
Correspondant à la requête : « Les numéros et noms des pièces de prix égale à 30 ».
Idéalement : Une requête à Expression algébrique à relation résultat qui fournit la réponse
LE MODÈLE RELATIONNEL Opérations
4) Autre exemple d’expression relationnelle :
"Le numéro des fournisseurs qui fournissent la pièce 'P3' "
PROJECT ( RESTRICT (FP, Nump = 'P3'),Numf)
Numf S1
S2 S3
Exercice : Représentation graphique ?
LE MODÈLE RELATIONNEL Opérations
5) Opération de Jointure: Opérateur binaire JOIN
JOIN (Relation
1, Relation
2, Attribut
1= Attribut
2) JOIN (F, FP, F.Numf = FP.Numf)
Numf Nomf Ville Numf Nump Qte Rep graphique
S1 S1 S1 S2 S3 S3 S4
Ali Ali Ali Amine Aziz Aziz Amina
Casa Casa Casa Rabat Rabat Rabat Fez
S1 S1 S1 S2 S3 S3 S4
P1 P2 P3 P3 P3 P4 P5
300 400 300 100 200 300 400
Opération caractéristique:
Permet d'interroger plusieurs tables et associer les informations entre elles.
(Suivant la clé étrangère ou d’autres liens sémantiques).
LE MODÈLE RELATIONNEL Opérations
6) Exemple d'expression relationnelle. (cf. 4 ci-dessus)
"Le nom des fournisseurs qui fournissent la pièce 'P3' "
PROJECT ( RESTRICT ( JOIN (F, FP ,F.Numf = FP.Numf), Nump = 'P3'), Nomf)
Nomf
Ali Amine Aziz
Exercice : Représentation graphique ?
✔ Expression relationnelle équivalente (même résultat)
PROJECT (JOIN (F, RESTRICT (FP, Nump = 'P3'),F.Numf = FP.Numf), Nomf)
Où JOIN opère après RESTRICT
✔ L’arbre Correspondant :
LE MODÈLE RELATIONNEL Opérations
☞ On peut introduire des relations temporaires (résultat d’expression interne) T
1= RESTRICT (FP, Nump = 'P3')
T
2= JOIN ( F, T
1, F.Numf = T
1.Numf) Res = PROJECT (T
2, Nomf)
✗ Ces relations temporaires n’existent que le temps d’une session,
✗ Peuvent être interrogées comme si c’étaient des relations de base.
✗ cf. SQL CREATE TABLE … AS SELECT ...
LE MODÈLE RELATIONNEL Opérations
✔ Permutation des opérateurs JOIN et RESTRICT L’expression :
JOIN (F, RESTRICT (FP, Nump = 'P3'), F.Numf = FP.Numf) est équivalente à :
RESTRICT (JOIN (F, FP, F.Numf = FP.Numf), Nump = 'P3')
Deux expressions qui définissent (i.e. permettent d’obtenir) une même table.
Mais du point de vue « exécution » la première est plus optimum que la seconde.
Mais l’utilisateur n’a pas à s’en préoccuper, car c’est le rôle du SGBD.
LE MODÈLE RELATIONNEL Opérations
✔ Permutations avec l’opérateur PROJECT
L’expression :PROJECT (RESTRICT (P, Prix = 30), Nump, Nomp)
n’est pas équivalente à : RESTRICT (PROJECT (P, Nump, Nomp), Prix = 30) (Exercice : pourquoi ?)
L’expression : PROJECT (RESTRICT (P, Prix = 30), Nump, Nomp, Prix) Permet la permutation.
✔ Même raisonnement pour le JOIN .
JOIN (PROJECT ...) n’est pas toujours correcte. (Exercice : trouver un exemple)
Exercice:
Tracer tous les arbres équivalents (même résultat) à l’arbre précédent (p16).
Discuter.
LE MODÈLE RELATIONNEL Caractéristiques
• Modèle Simple
• Opérateurs de Manipulation
• Langage Déclaratif et de Haut niveau (le quoi)
• Traitement Ensembliste
• Base de Langages de 4e Génération
• Systèmes SQL
MODÈLE RELATIONNEL
✔ Langage SQL (Structured Query Language)
Origine: System_R (IBM 1975)
Langage SEQUEL (Equivalant Algébrique SQUARE)
SELECT Colonnes Projections FROM Tables Jointures WHERE Critères recherches Restrictions
✒ Le numéro et noms des fournisseurs de 'P3' (cf. expression 6) :
SELECT Numf, Nomf
FROM F JOIN FP ON F.Numf = FP.Numf
WHERE Nump = 'P3'
✒ Autre forme (plus courante) :
SELECT Numf, Nomf FROM F, FP
WHERE F.Numf = FP.Numf AND FP.Nump = 'P3'
Critère de jointure et de restriction dans la clause WHERE
MODÈLE RELATIONNEL
✔ Opérateurs simples
Opérateur relationnel Equivalent SQL
PROJECT (F, Numf, Nomf) SELECT Numf, Nomf FROM F
RESTRICT (P, Prix = 30) SELECT * FROM P
WHERE Prix = 30 JOIN (F, FP, F.Numf = FP.Numf) SELECT *
FROM F , FP
WHERE F.Numf = FP.Numf En « plus algébrique » SELECT *
FROM F JOIN FP ON F.Numf = FP.Numf
MODÈLE RELATIONNEL L'Algèbre Relationnelle
Exercices: Ecrire les expressions relationnelles correspondant aux requêtes
1. Quels sont les numéros des fournisseurs qui fournissent le produit 'P3'.
2. Quels sont les numéros et les noms de ces mêmes fournisseurs.
3. Quels sont les noms des produits fournis par 'S1'.
4. Quels sont les numéros des produits des prix < 30 et fournis par 'S1'.
Donner au moins une expression équivalente à cette requête.
5. Quels sont les noms des fournisseurs qui fournissent un produit, et le nom de ce produit.
6. Donner pour chaque fournisseur le nom et les noms des produits qu'il fournit.
7. Quels sont les produits fournis par tous les fournisseurs.
NB. Les requêtes 6 et 7 seront détaillées plus loin (Voir la fin du document) .
MODÈLE RELATIONNEL L'Algèbre Relationnelle
✔ Une expression relationnelle exprime la réponse à une requête.
MODÈLE RELATIONNEL L'Algèbre Relationnelle
✔ Autres Opérateurs
• θ - JOIN Jointure en général. θ ∈ { =, <, >, ≤, ≥, ≠ }
R A B C S C D
a b e d
e d g c
e f f g
f g e b
d e c c
JOIN (R, S, R.A ≥ S.C)
A B C C D
b e e d
d g g c
f f f g
b e b b
c
c
c
c
MODÈLE RELATIONNEL L'Algèbre Relationnelle
• Ε qui-Join Jointure avec =
JOIN (R, S, R.B = S.D)
A B C C D
a b d d
e d c c
e f g c
g f e b
e d c c
• Natural-Join Jointure avec = sur colonne(s) commune(s)
JOIN (R, S, R.C = S.C) notée R*S
A B C D
JOIN(R,S) R*S
a b e d
e d g c
e f f g
c d d e
Exercice: Comparer PROJECT (R*S, A,B,C) avec R et PROJECT (R*S , C,D) avec S.
Sous quelles conditions a-t-on égalité?
MODÈLE RELATIONNEL L'Algèbre Relationnelle
• Opérateurs Ensemblistes Classiques
Union (UNION), Intersection (INTER), Différence (DIFF)
R A B C S A' B' C'
a d
b e
c f
a e
b f
c g
Relations union-compatibles (même degré, mêmes domaines)
A B C A B C A B C
a d e
b e f
c f g
a b c d e f
Error! R S
∩ ∪ −
UNION (R, S) INTER (R, S) DIFF (R, S)
MODÈLE RELATIONNEL L'Algèbre Relationnelle
• Opérateur de Division DIV
R X Y S Y
x
1x
1x
2y
1y
2y
1y
1y
2schéma (R) ⊃ schéma (S)
DIV (R, S) X
R S
∩ ∪