Post on 16-Jan-2016
description
Page 1 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Synthèse
Modèle Relationnel (de Codd) et
SQL2
Professeur Serge MirandaDirecteur du Dess MBDS
serge.miranda@unice.fr
Page 2 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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)
SYSTEM-R prototype IBM-San JOSE
prouvant la faisabilité (d ’une partie)
du modèle relationnelle
SYNTEX au
CERT-DERI (France)
INGRES prototype
Univ. Calif BERKELEYORACLE 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
1972
1975
1976
1977
1979
1980
1981
Turing award pour Ted CODD
SQL-DS
DB2ORACLE V5
Création « CODD and DATE
Consulting Group »
DB2 V1
1982
1984
1985
1986 CAMPUS (France)
INGRES-STAR
Codd and Date
CAMPUS
ORACLE
ORACLE-STAR
ORACLE V6
ORACLE V7DB2 V2
1987
1989-1990
….. Release 41994
Page 3 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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)
Page 4 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Généralités
MODELE DE DONNEES ?
STRUCTURES
MODELE DE
DONNEES
OPERATEURS
REGLES D ’INTEGRITE
(+ théorie formelle)
Page 5 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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 »)
Page 6 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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 ?
Page 7 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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), ……………….}
Page 8 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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
AV# AVNOM CAP LOC
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
Page 9 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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)
Page 10 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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
Page 11 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
Attribut Domaine
PL# PLNOM ADRESSE
1 JEAN PARIS
2 PIERRE NICE
3 PAUL PARIS
: PINo : Pinom : Ville
AV# AVNOM CAP LOC 100 A300 300 NICE
101 B707 250 PARIS
102 A300 300 LYON
103 B727 700 LYON
: AvNo : AvNom : Capacité : Ville
VOL# PL# AV# VD VA HD HA
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
: VoINo : PINo : AvNo : Ville : Ville : Heure : Heure
L ’ATTRIBUT REPRESENTE LE ROLE JOUE PAR UN DOMAINE DANS
UNE RELATION
Pilote
Avion
VOL
Page 12 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
Noms
des
PILOTES
Noms
des
AVIONS
Page 13 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
X(12)
TYPE SYNTAXIQUE
(pas de « domaine »)
Page 14 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
X(12)
PILNOM AVNOM
DOMAINE (sémantique)
- Définition (semantical data type »)
- Manipulation (« domain constrained »)
Page 15 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
Exemple de « schéma relationnel »
1) DOMAINESNUMERO 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)
…
Page 16 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
LANGAGE ALGEBRIQUE
LANGAGE « FERME »
ARGUMENT (S)
RELATION (S)
OPERATEUR
ALGEBRIQUE
RESULTAT :
RELATION
REQUETE (Ensemble d ’opérateurs algébriques)
Page 17 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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)
PROJECTION
(découpage
vertical)
SELECTION
(découpage
horizontal)
JOIN
()
DIVISION
()
Page 18 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
Modèle Relationnel de CODD
LANGAGE ALGEBRIQUE
JOINTURE R1(A = A) R2
R1 A B C
() JOIN
R3 A B C A
R2 A D
D
Page 19 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
LANGAGE ALGEBRIQUE
DIVISION : R1 / R2
R1 A B R2 B
DIVISION B ()
R3 A
Modèle Relationnel de CODD
Division ? « Complémentaire du diviseur dans le dividende tel que le produit cartésien avec le diviseur soit inclus dans le dividende »
Dividende Diviseur
Page 20 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia AntipolisModè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 ? »
AV# AVNOM CAP LOCA
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 :
RPL#
1
Page 21 Copyright S. MIRANDA Données de bases en bases de données
DESSde l’Université de
Nice Sophia Antipolis
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#)•
•