Le Modèle Relationnel
Transcription
Le Modèle Relationnel
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 E.F. CODD 1970 CODD & C.J. DATE 1979 1981 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 1 LE MODÈLE RELATIONNEL Structure de Données ✔ Concept de Relation Relation R = sous ensemble du produit cartésien entre n domaines D1, D2,…, Dn R ⊆ D1 X D2 X … X Dn ( Domaine étant un ensemble de valeurs données) Exemple: D1 = { Ali, Amine, Amina…} D2 = { 24, 34, 45, 21…} D3 = { 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 ". Prédicat de la relation ou Schéma de relation ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 2 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 D1 D2 D3 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 3 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 ✗ Tuple Un élément de la relation <n, a, v> n-uplet ✗ Composant Un élément dans un tuple 'Ali', '24', … Notation: ✗ Clé t.nom, t.age, … 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) ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 4 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} 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 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 5 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? ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 6 LE MODÈLE RELATIONNEL Structure de Données (Exemple) Soient le réel perçu: S1 Ali Casa S2 Amine Rabat S3 … Aziz Rabat P1 Boulon 10 P2 Écrou 20 P3 … Vis 30 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 7 LE MODÈLE RELATIONNEL Structure de Données (Exemple) : F Numf Nomf Ville S1 S2 S3 S4 S5 Ali Amine Casa Rabat Rabat Fez Tanger Aziz Amina Karim P 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 Nump Nomp Prix P1 P2 P3 P4 P5 Boulon Écrou Vis Écrou Pince 10 20 30 30 15 Exercices : Quels sont les clés ? ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 8 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 : Relation Relation (unaire) Relation X Relation ➝ Relation (binaire) ➝ ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 9 LE MODÈLE RELATIONNEL Opérations ✔ Opération de Projection: Opérateur PROJECT PROJECT (Relation, Liste-Attributs ) PROJECT (F, Numf, Nomf) Numf Nomf S1 S2 S3 S4 S5 Ali Amine Aziz Amina Karim Rep graphique ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 10 LE MODÈLE RELATIONNEL Opérations ✔ 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: ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 11 LE MODÈLE RELATIONNEL Opérations ✔ 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 ». ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 12 LE MODÈLE RELATIONNEL Opérations ✔ Autre exemple d’expression relationnelle : "Le nom des fournisseurs qui fournissent la pièce 'P3' " PROJECT ( RESTRICT (FP, Nump = 'P3'),Numf) Numf S1 S2 S3 Exercice : Représentation graphique ? ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 13 LE MODÈLE RELATIONNEL Opérations ✔ Opération de Jointure: Opérateur binaire JOIN JOIN (Relation1, Relation2, Attribut1 = Attribut2 ) JOIN (F, FP, F.Numf = FP.Numf) Numf S1 S1 S1 S2 S3 S3 S4 Nomf Ville Nump Qte Ali Ali Ali Amine Aziz Aziz Amina Casa Casa Casa Rabat Rabat Rabat Fez P1 P2 P3 P3 P3 P4 P5 300 400 300 100 200 300 400 Rep graphique 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). ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 14 LE MODÈLE RELATIONNEL Opérations ✔ Exemple d'Expression Relationnelle "Le nom des fournisseurs qui fournissent la pièce 'P3' " PROJECT ( RESTRICT ( JOIN (F, FP ,F.Numf = FP.Numf), FP, Nump = 'P3'), Nomf) Nomf Ali Amine Aziz ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 15 ✔ Expression relationnelle équivalente (même résultat) PROJECT (JOIN (F, RESTRICT (FP, Nump = 'P3'),F.Numf = FP.Numf), Nomf) RESTRICT placé avant JOIN ✔ L’arbre Correspondant : ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 16 LE MODÈLE RELATIONNEL Opérations On peut introduire des relations temporaires ☞ T1 = RESTRICT (FP, Nump = 'P3') T2 = JOIN ( F, T1, F.Numf = T1.Numf) Res = PROJECT (T2, Nomf) ✗ Ces relations temporaires n’existent que le temps d’une session, ✗ Peuvent être interrogées comme si c’était des relations de base. ✗ Cf. SQL CREATE TABLE … AS SELECT ... ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 17 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') Définissent (ou permettent d’obtenir) une même table. Mais du point de vue « exécution » la première est plus optimum que la seconde. L’utilisateur n’a pas à s’en préoccuper, c’est le rôle du SGBD. ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 18 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) ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 19 Exercice: Tracer tous les arbres équivalents (même résultat) à l’arbre précédent (p16). Discuter. ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 20 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 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 21 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' SELECT Numf, Nomf FROM F, FP WHERE F.Numf = FP.Numf AND FP.Nump = 'P3' ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 22 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 ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 23 La requête précédente (les numéros et noms des fournisseurs de ‘P3’) s’écrit donc aussi: SELECT Numf, Nomf FROM F JOIN FP ON F.Numf = FP.Numf WHERE FP.Nump = 'P3' Correspondant à : PROJECT (JOIN (F, RESTRICT (FP, Nump = 'P3'), F.Numf = FP.Numf), Nomf) ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 24 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'. 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 ci-après. ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 25 MODÈLE RELATIONNEL L'Algèbre Relationnelle ✔ Autres Opérateurs • θ-JOIN R Jointure en général. A a b e d B e d g c θ ∈ { =, <, >, ≤, ≥, ≠ } C e f f g S C f g e b D d e c c JOIN (R, S, R.A ≥ S.C) A b e e d B d g g c C f f f g C b e b b D c c c c ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 26 MODÈLE RELATIONNEL L'Algèbre Relationnelle • Εqui-Join Jointure avec = JOIN (R, S, R.B = S.D) A a b d d • Natural-Join Exercice: C e f g c C g f e b D e d c c Jointure avec = sur colonne(s) commune(s) JOIN (R, S, R.C = S.C) JOIN(R,S) B e d c c R*S notée R*S A a b e d B e d g c C e f f g D c d d e Comparer PROJECT (R*S, A,B,C) avec R et PROJECT (R*S , C,D) avec S. Sous quelles conditions a-t-on égalité? ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 27 MODÈLE RELATIONNEL L'Algèbre Relationnelle • Opérateurs Ensemblistes Classiques Union (UNION), Intersection (INTER), Différence (DIFF) R A a d B b e C c f S A' a e B' b f C' c g Relations union-compatibles (même degré, mêmes domaines) A a d e B b e f C c f g A B C A B C a b c d e f ∩∪ − R UNION (R, S) INTER (R, S) S DIFF (R, S) ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 28 MODÈLE RELATIONNEL L'Algèbre Relationnelle • Opérateur de Division DIV R X x1 x1 x2 Y y1 y2 y1 schéma (R) S Y y1 y2 ⊃ schéma (S) DIV (R, S) X x1 Les éléments xi en relation dans R avec tous les éléments de S ∩∪ − R Schéma résultat = schéma (R) S − schéma (S) ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 29 • Application: Exemple "Les fournisseurs qui fournissent toutes les pièces" T1 = PROJECT (P, Nump); T2 = PROJECT (FP, Numf, Nump); /* On se ramène aux hypothèses */ Res = DIV (T2, T1); ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 30 MODÈLE RELATIONNEL L'Algèbre Relationnelle ✔ Exercices: Ecrire les expressions relationnelles correspondant aux requêtes 8. Quels sont les numéros des fournisseurs qui fournissent le produit 'P3'. 9. Quels sont les numéros et les noms de ces mêmes fournisseurs. 10. Quels sont les noms des produits fournis par 'S1'. 11. Quels sont les numéros des produits des prix < 30 et fournis par 'S1'. 12. Quels sont les noms des fournisseurs qui fournissent un produit, et le nom de ce produit. 13. Donner pour chaque fournisseur le nom et les noms des produits qu'il fournit. 14. Quels sont les produits fournis par tous les fournisseurs. Tracer l'arbre correspondant à chaque expression et matérialiser les résultats ______________________________________________________________________________________________________________________________________ © Najib TOUNSI 31