1 / 21

Synthèse Modèle Relationnel (de Codd) et SQL2

Synthèse Modèle Relationnel (de Codd) et SQL2. Professeur Serge Miranda Directeur du Dess MBDS serge.miranda@unice.fr. Généralités. De 1970 à 1987 : un historique du relationnel et quelques produits. 1970 Article de T. CODD présentant le modèle relationnel (revue ACM). SYNTEX au

ossie
Download Presentation

Synthèse Modèle Relationnel (de Codd) et SQL2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Synthèse Modèle Relationnel (de Codd) et SQL2 Professeur Serge Miranda Directeur du Dess MBDS serge.miranda@unice.fr

  2. Généralités • De 1970 à 1987 : un historique du relationnel et quelques produits 1970 Article de T. CODD présentant le modèle relationnel (revue ACM) SYNTEX au CERT-DERI (France) SYSTEM-R prototype IBM-San JOSE prouvant la faisabilité (d ’une partie) du modèle relationnelle 1972 1975 INGRES prototype Univ. Calif BERKELEY 1976 1977 1979 1980 1981 ORACLE prototype en assembleur fils illégitime de System-R ORACLE V1 produit d ’ORACLE Corp. ORACLE V2 réécriture en C INGRES produit de RTI sur VAX Turing award pour Ted CODD SQL-DS DB2 ORACLE V5 1982 1984 INGRES-STAR Création « CODD and DATE Consulting Group » 1985 ORACLE ORACLE-STAR CAMPUS (France) DB2 V1 1986 1987 ORACLE V6 Codd and Date CAMPUS DB2 V2 1989-1990 ORACLE V7 ….. Release 4 1994

  3. Généralités • Intérêt du modèle relationnel • Vue simple des données - tables • (pouvant être non naturelle) • Langage de requête non procédural : SAT • (dont l ’opération fondamentale est la JOINTURE)

  4. Généralités • MODELE DE DONNEES ? STRUCTURES MODELE DE DONNEES OPERATEURS REGLES D ’INTEGRITE (+ théorie formelle)

  5. Modèle Relationnel de CODD (V1, 1970) • Les 10 Concepts du modèle relationnel de CODD • Structure s: • C1 – RELATION / CLE PRIMAIRE (C3) • C2 - DOmaine / Attribut • C3 - Clé Primaire • C4 - Clé Etrangère ou Domaine Primaire • Intégrité du Modèle : • C5 - Intégrité du Domaine (cf. C2) • C6 - Intégrité d ’entité / relation (cf. C1 et C3) • C7 - Intégrité de référence (cf. C4) • Opérateurs : Equivalence avec l ’algèbre relationnelle • C8 - Opérateurs ensemblistes • Union • Intersection • Différence • C9 - Opérateurs relationnels • Sélection • Projection • Jointure • Division • C10 - Opérateurs sémantiques (« domain constrained »)

  6. Modèle Relationnel de CODD • Définition : ENSEMBLE ? • G. Cantor : « Toute collection d ’objets bien DISTINCTS de notre perception ou de notre pensée » • Paradoxes de B. Russel : • Dans un village, le barbier rase toutes les personnes qui ne se rasent pas • elles-mêmes ! Se rase t-il lui même ? • Ensemble des membres d ’un conseil d ’administration qui n ’ayant pas • d ’opinion à eux suivent l ’opinion du président ? • Le président appartient-il à l ’ensemble ?

  7. Modèle Relationnel de CODD : « RELATION » ? • Définition ensembliste d ’une relation ? • ENSEMBLE (de « N-uplets » « TUPLES ») : sous ensemble du produit • cartésien de N ensembles • Les avions sont des quadruplets de la forme • (AVNO, AVNOM, CAP, LOC) • « RELATION » : sous ensemble du PRODUIT CARTESIEN de N • « DOMAINES » R  D1 x D2 x ……… x DN • Exemple 1 : AVION  AVNO x AVNOM x CAP x LOC AVION = {(10, Airbus, 320, Nice), (11, B707, 300, Paris), ……………….}

  8. Modèle Relationnel de CODD • Exemple de tables de valeurs PL# PLNOM ADRESSE P i 1 JEAN PARIS l o 2 PIERRE NICE t e 3 PAUL PARIS AVNOM CAP LOC AV# A v 100 A300 300 NICE i 101 B707 250 PARIS o 102 A300 300 LYON n 103 B727 700 LYON HA VOL# PL# AV# VD VA HD V IT100 1 100 NICE PARIS 7 8 o IT101 2 100 PARIS NICE 11 12 l IT102 1 103 LYON PARIS 14 15 IT103 1 102 NICE LYON 17 18

  9. Modèle Relationnel de CODD : RELATION ? • Définition prédicative d ’une relation ? • PREDICAT • « L ’avion de numéro AV# est de type AVNOM, de capacité CAP et est • localisé à LOC » • RELATION • prédicat écrit sous forme concise • AVION (AV#, AVNOM, CAP, LOC) • PROPOSITION • « L ’avion de numéro 10 est de type AIRBUS, de capacité 320 places et est • localisé à NICE » • TUPLE : proposition VRAIE écrite sous forme concise • AVION (10, AIRBUS, 320, NICE)

  10. Modèle Relationnel de CODD : « ATTRIBUT vs DOMAINE » PROBLEME Le même domaine peut être utilisé plusieurs fois dans la définition d ’une même relation ! Exemple 2 : VOL  VOLNO x VILLE x VILLE x HEURE x HEURE ATTRIBUT : ROLE joué par un domaine dans une relation DOMAINE VOL  VOLNO x VILLE x VILLE x HEURE x HEURE VOL ( VOL# V-D V-A H-D H-A ) ATTRIBUTS

  11. Modèle Relationnel de CODD • Attribut  Domaine : PINo : Pinom : Ville Pilote PL# PLNOM ADRESSE 1 JEAN PARIS 2 PIERRE NICE 3 PAUL PARIS : AvNo : AvNom : Capacité : Ville Avion AVNOM CAP LOC AV# 100 A300 300 NICE 101 B707 250 PARIS 102 A300 300 LYON 103 B727 700 LYON : VoINo : PINo : AvNo : Ville : Ville : Heure : Heure VOL# PL# AV# VD VA HD HA VOL IT100 1 100 NICE PARIS 7 8 IT101 2 100 PARIS NICE 11 12 IT102 1 103 LYON PARIS 14 15 IT103 1 102 NICE LYON 17 18 L ’ATTRIBUT REPRESENTE LE ROLE JOUE PAR UN DOMAINE DANS UNE RELATION

  12. Modèle Relationnel de CODD Noms des PILOTES Noms des AVIONS

  13. Modèle Relationnel de CODD X(12) TYPE SYNTAXIQUE (pas de « domaine »)

  14. Modèle Relationnel de CODD PILNOM AVNOM X(12) DOMAINE (sémantique) - Définition (semantical data type ») - Manipulation (« domain constrained »)

  15. Modèle Relationnel de CODD • Exemple de « schéma relationnel » • 1) DOMAINES • NUMERO NUMERIC (6) Primaire • AVNO NUMERIC (6) Primaire • PILNO NUMERIC (6) Primaire • NOMAV CHARACTER (20) • NOMPIL CHARACTER (6) • CAPACITE NUMERIC (3) • VILLE CHARACTER (10) • HEURE NUMERIC (4) • 2) RELATIONS • RELATION : AVION (AV#, AVNOM, CAP, LOC) AV# = Clé Primaire • ATTRIBUT : AV# (Défini) sur AVNO • AVNOM - sur NOMAV • CAP - sur CAPACITE • LOC - sur VILLE • RELATION : PILOTE(PL#, PLNOM, ADRE) PL# = Clé Primaire • ATTRIBUT : PL# (Défini) sur PILNO • PLNOM - sur NOMPL • ADR - sur VILLE • RELATION : VOL(VOL#, PL#, AV#, VD, VA, HD, HA) VOL# = Clé Primaire • ATTRIBUT : VOL# (Défini) sur NUMERO • PL# - sur PILNO • AV - sur AVNO • VD - sur VILLE • VA - sur VILLE • HD - sur HEURE • HA - sur HEURE • CONTRAINTES (1) • …

  16. Modèle Relationnel de CODD LANGAGE ALGEBRIQUE LANGAGE « FERME » ARGUMENT (S) RELATION (S) OPERATEUR ALGEBRIQUE RESULTAT : RELATION REQUETE (Ensemble d ’opérateurs algébriques)

  17. Modèle Relationnel de CODD OPERATEURS DU LANGAGE ALGEBRIQUE Opérateurs du langage algébrique Ensemblistes UNION INTERSECTION DIFFERENCE (PRODUIT CARTESIEN) Extension (binaire) Restriction (unaire) SELECTION (découpage horizontal) DIVISION () PROJECTION (découpage vertical) JOIN ()

  18. Modèle Relationnel de CODD LANGAGE ALGEBRIQUE JOINTURE R1(A = A) R2 A D R2 R1 B C A () JOIN B A D R3 A C

  19. Modèle Relationnel de CODD LANGAGE ALGEBRIQUE DIVISION : R1 / R2 Dividende Diviseur R2 R1 B B A DIVISION B () Division ? « Complémentaire du diviseur dans le dividende tel que le produit cartésien avec le diviseur soit inclus dans le dividende » R3 A

  20. Modèle Relationnel de CODD LANGAGE ALGEBRIQUE DIVISION • Requêtes faisant intervenir un quantificateur universel, dans une expression de la • forme « TOUS LES ». • Exemple : « Quels sont les numéros des pilotes qui conduisent TOUS LES avions • de type A300 qui sont en service ? » AVNOM CAP LOC AV# A v 100 A300 300 NICE i 101 B707 250 PARIS o 102 A300 300 LYON n 103 B727 700 LYON VOL# PL# AV# VD VA HD HA V IT100 1 100 NICE PARIS 7 8 o IT101 2 100 PARIS NICE 11 12 l IT102 1 103 LYON PARIS 14 15 IT103 1 102 NICE LYON 17 18 RESULTAT : PL# R 1

  21. Modèle Relationnel de CODD LANGAGE ALGEBRIQUE DIVISION • DIVIDENDE BINAIRE R1 = ( A , B ) Résultat Idem diviseur (même domaine) VOL1 = PROJECT VOL ( PL# , AV# ) • DIVISEUR UNAIRE ( « tous les » ) « tous les avions de type A300 » A1 = SELECT AVION (AVNOM =   " A300  ") A2 = PROJECT A1 (Av#) • • RESULTAT = VOL1 (PL# , AV#) A2 (AV#) •

More Related