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

21
Page 1 Copyright S. MIRANDA Données de bases en bases de don D ESS de l’Universitéde NiceSophiaA ntipolis Synthèse Modèle Relationnel (de Codd) et SQL2 Professeur Serge Miranda Directeur du Dess MBDS [email protected]

description

Synthèse Modèle Relationnel (de Codd) et SQL2. Professeur Serge Miranda Directeur du Dess MBDS [email protected]. 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 - PowerPoint PPT Presentation

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

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

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

[email protected]

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

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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: Synthèse  Modèle Relationnel (de Codd) et  SQL2

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#)•