• Aucun résultat trouvé

LE MODÈLE RELATIONNEL Structure de Données Opérateurs de Manipulation Contraintes Règles de mise à Jour Sommaire →

N/A
N/A
Protected

Academic year: 2022

Partager "LE MODÈLE RELATIONNEL Structure de Données Opérateurs de Manipulation Contraintes Règles de mise à Jour Sommaire →"

Copied!
32
0
0

Texte intégral

(1)

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

(2)

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

(3)

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

(4)

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)

(5)

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

(6)

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?

(7)

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

(8)

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 ?

(9)

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)

(10)

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

(11)

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!

(12)

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

(13)

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 ?

(14)

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).

(15)

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 ?

(16)

✔ 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 :

(17)

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 ...

(18)

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.

(19)

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)

(20)

Exercice:

Tracer tous les arbres équivalents (même résultat) à l’arbre précédent (p16).

Discuter.

(21)

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

(22)

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'

(23)

✒ 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

(24)

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

(25)

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) .

(26)

MODÈLE RELATIONNEL L'Algèbre Relationnelle

Une expression relationnelle exprime la réponse à une requête.

(27)

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

(28)

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é?

(29)

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)

(30)

MODÈLE RELATIONNEL L'Algèbre Relationnelle

• Opérateur de Division DIV

R X Y S Y

x

1

x

1

x

2

y

1

y

2

y

1

y

1

y

2

schéma (R) ⊃ schéma (S)

DIV (R, S) X

R S

∩ ∪

x

1

Les éléments x i en relation dans R avec

tous les éléments de S

Schéma résultat = schéma (R) − schéma (S)

(31)

• Application:

Exemple

"Les fournisseurs qui fournissent toutes les pièces"

T

1

= PROJECT (P, Nump);

T

2

= PROJECT (FP, Numf, Nump); /* On se ramène aux hypothèses */

Res = DIV (T2, T1);

(32)

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'.

4-bis. 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.

Tracer l'arbre correspondant à chaque expression et matérialiser les résultats

Références

Documents relatifs

Le premier exemple de base de données incluse intègre le module LDAP, l'objectif étant d'authentifier un nom d'utilisateur et mot de passe avec une entrée valide dans un annuaire

Faire cuire le tofu : dans une poêle, verser une cuillère à café d’huile d’olive, une cuillère à soupe d’eau, et des épices : le tofu va cuire. en s‘imprégnant de

Cette note technique explique comment envoyer un email à partir d’un serveur de messagerie qui nécessite l’authentification.. Au lieu d’utiliser

Avec une perte de 6.7 décibels (dB) par 100 pieds (30 mètres [m]) pour le câble LL et 4.4 dB pour le câble ULL, ces câbles fournissent la flexibilité d'installation sans

s Lorsque vous n'utilisez pas le gril, mettez tous les boutons de réglage et la valve du réservoir de GPL en position d'arrêt.. s Ne déplacez jamais le gril lors de l'utilisation

H370 Risque avéré d'effets graves pour les organes (ou indiquer tous les organes affectés, s'ils sont connus) (indiquer la voie d'exposition s'il est

Il peut être appliqué sur un apprêt époxy ou utilisé pour recouvrir un plancher d’époxy ou d’uréthane existant.

CodeOnline vous permet de créer les codes GTIN permettant l’identification des produits dont vous détenez la marque commerciale ou de lots créés par vos soins. Vous devrez