Cours 2 de SGBD . Contenu

publicité
3.2
Calul Relationnel à Variables
n-uplets
C'est un langage de la logique des prédiats ave plusieurs
Une variable
x
aura un type
T
et on note
Les valeurs des variables sont des
n-uplets
Lien intuitif ave SQL ;
27
x : T.
de la base.
sortes ou types.
Relation CINEMA, dont deux des attributs sont nom_inema et adresse,
relation SEANCE, dont deux des attributs sont nom_inema et id_lm, et
relation FILM dont deux des attributs sont id_lm et nom_realisateur.
Quel inémas ne projettent auun lm réalisé par Tarantino ? Donner aussi les
adresses.
SELECT .nom_inema, .adresse
FROM inema WHERE NOT EXISTS (SELECT s.nom_inema
FROM seane s, film f
WHERE f.nom_realisateur = 'Tarantino'
AND
f.id_film = s.id_film
AND
s.nom_inema = .nom_inema);
Ii, est une variable dont les valeurs (suessives) sont les
n-uplets
(lignes) de la
table SEANCE.
NOT EXISTS (...) ode une formule logique qui s'évalue à Vrai ou Faux, selon
les valeurs de
c.
28
Deux diérenes ave la logique des prédiats du ours de logique du L2.
1) La valeur d'une variable n'est pas un individu indéomposable, mais un
n-uplet. Elle a don des omposantes :
si x : ABC vaut ha1 : A, b1 : B, c1 : Ci, alors on a une syntaxe permettant
d'aéder à la omposante a1, à la omposante b1 et à la omposante c1.
On peut voir le .Attribut omme un symbole de fontion qui assoie à un
individu, le triplet x,un autre individu du domaine de disours, sa omposante
x.Attribut (ours de logique du L2).
29
2) Les variables sont typées.
Utilité ?
{A, B, C, ..., Z}. Parmi les tables, on a r , de shéma
{A, B, C} (souvent on note juste ABC ). On veut exprimer, en logique : tous les
n-uplets de r ont une propriété Q.
Par ex. on a : univers =
Si on ne type pas :
∀x(si x ∈ r alors Q(x))
tous les n-uplets possibles :
Pour évaluer, on examine
ave une seule omposante, sur
A,
ave une seule omposante, sur
Z,
AB , sur AC ,.....,W Z
une seule omposante, sur
ave 2 omposantes, sur
.
.
.
ave 26 omposantes, sur
AB...Z
Mais on est intéressé seulement aux
n-uplets
sur
ABC
! Alors :
∀x : ABC(si x ∈ r alors Q(x))
30
B, · · ·
ave
Enore sur les prinipes du Calul Relationnel à variables
n-uplets
(CR à
n-uplets).
•
Une variable aura omme valeur un
n-uplet
qui PEUT apparaître dans la
base (bon type), mais qui n'y est pas forement.
•
Notation : si
x
est une variable (n-uplet) et
indique la valeur pour l'attribut
A
du
pour aéder aux omposantes).
31
A
n-uplet
un attribut, l'expression
qui est la valeur de
x
x.A
(syntaxe
Pour un shéma de base
S
donné sur un univers
U,
le voabulaire des formules
du alul relationnel est :
• V=
• C
•
ensemble inni de variables.
= ensemble de onstantes =
Symboles de prédiat : =,
On a aussi une fontion
de
type
S
Ai ∈U
Dom(Ai )
>, ≥, <, ≤,
et tout nom de relation dans
qui assoie à ertaines variables des sous-ensembles
U.
Pour
t∈V,
lire
type(t)
S.
omme le type de
32
t.
Syntaxe des
1.
Formules Atomiques (F.A.) :
Si :
t, t′ ∈ V , A
est un attribut
∈ type(t)
alors le mot t.A = t′ .B est une F.A.
2.
3.
et
B
est un attribut
Si t ∈ V , A est un attribut ∈ type(t), k ∈ C
alors le mot t.A = k est une F.A.
et
∈ type(t′ )
k ∈ Dom(A)
Si :
t ∈ V , R est
type(t) = S
alors
un nom de relation,
le mot
R(t)
S
est le shéma de relation assoié à
est une F.A.
33
R
et
Exemples de F.A..
P rojection un nom de relation, dont le shéma est
{N omF ilm, N omCinema, Horaire} et soit Aime une relation
{Spectateur, N omF ilm}.
′
Soient t et t des variables, ave
type(t) = type(t′ ) = {N omF ilm, N omCinema, Horaire}.
Soit
Les mots :
1.
t.N omCinema = t′ .N omCinema
2.
t.N omCinema
3.
P rojection(t)
= Gaumont Alésia
sont des F.A.
Le mot
Aime(t)
n'est pas une F.A. : erreur de typage !
34
de shéma
Signiation (sémantique) des F.A.
Soit
B
une base sur le shéma
variable
1.
t
et soit
n2
un
t.A = t′ .B est vraie
n1 est la même que
2.
t.A = k
est k .
3.
R(t)
S.
n-uplet
Soit
par rapport à
n-uplet
B
N.B. Si type(t) = E , où E
hoisi omme valeur de la
B
B
B
par
n
ssi la valeur assoiée à l'attribut
ssi la relation de nom
R
A
ontient
n1 .
n-uplet
sur
n'appartient à auune relation !
35
A
par
n2 .
est un ensemble d'attributs, tout
même si
t′ .
ssi la valeur assoiée à l'attribut
elle assoiée à l'attribut
est vraie par rapport à
t,
un
hoisi omme valeur de la variable
est vraie par rapport à
être une valeur de
n1
par
E
n1
peut
Exemple.
Base
B
:
AimeLivre
Personne
Livre
NomLivre
NomLivre
p1
l1
l1
p2
l2
l2
p1
l2
Donnons la valeur
hp1, l1i
à
t.N omLivre = t′ .N omLivre
t.N omLivre = l2 est fausse.
AimeLivre(t) est vraie.
Assoions
hp2, l1i
à
t
et
hl2i
t.N omLivre = t′ .N omLivre
t.N omLivre = l1 est vraie.
AimeLivre(t) est fausse.
t
et
hl1i
à
t′ .
est vraie par rapport à
à
t′ .
est fausse.
36
B.
Formules
E ⊆ U =ensemble
d'attributs
•
Toute F.A. est une formule.
•
Si
F
•
Si
F1
•
Si
est une formule alors
et
F2
(¬F )
sont des formules et
F est une formule et t ∈ V
(∀t : E F ) et (∃t : E F )
l'est aussi.
∗ ∈ {∧, ∨, →}
alors :
sont des formules.
37
alors
(F1 ∗ F2 )
est une formule.
Formules : suite
Leture intuitive de ∀t
pour
: quelque soit le
n-uplet t
de type
E, F
est vraie
t.
Leture intuitive de ∃t
F
: E FF
est vraie pour
: E F
: il existe au moins un
t.
38
n-uplet t
de type
E
tel que
Formules : suite
La même dénition de l'ensemble des formules par une grammaire :
F ormule := F.A. | (¬F ormule) | (F ormule ∗ F ormule)
| (∀t : E F ormule) | (∃t : E F ormule)
où
∗ ∈ {∧, ∨, →}.
Conventions :
F1 ∧ F2 ∧ F3
droit de ne pas érire les
à la plae de
()
(F1 ∧ F2 ) ∧ F3
le plus à l'extérieur. Autres droits :
ou
F1 ∧ (F2 ∧ F3 );
idem pour
∨.
Lien ave le ours de logique du L2 : syntaxe du alul des prédiats (mais types
en plus).
39
(∀t : E F ) et (∃t : E F )
portée de ∀t (resp. ∃t).
Pour
F=
:
Variables Libres d'une Formule F
d'un quantiateur (∀ ou
: elles qui ne sont pas dans la portée
∃).
Exemple.
F : ∃t : P ersonne, N omLivre
(AimeLivre(t) ∧ t.P ersonne =′′ Jean′′ ∧ t′ .N omLivre = t.N omLivre)
Ensemble des variables libres de F = {t′ }
F
va être vraie pour ertain valeurs de
t′ ,
40
fausse pour d'autres.
Signiation (Sémantique)des formules
F : formule, B : base. s : hoix de
t : variable n-uplet, type(t) = E .
Par rapport à B et s on a :
valeurs pour les variables libres de
•
Si
F
est une F.A. ,
•
Si
F
est
(¬F1 ) , F
•
Si
F
est
(F1 ∧ F2 ) , F
est vraie ssi
•
Si
F
est
(F1 ∨ F2 ) , F
est vraie si au moins une de
•
Si
F
est
(F1 → F2 ) , F
•
Si
F
∀t : E F1 , F est vraie
E ), F1 est vraie pour t.
type
•
Si
F
type
est
F
F.
est vraie ou fausse selon les ritères déjà vus.
est vraie ssi
F1
est fausse.
F1
est vraie et
est vraie ssi ou
F1
F2
aussi.
F1 , F2
est fausse ou
F2
est vraie.
est vraie.
ssi, quelle que soit la valeur de
∃t : E F1 , F est vraie ssi il existe
E ) telle que F1 est vraie pour t.
est
41
t
(ayant le
au moins une valeur de
t
(ayant le
Lien ave le ours de logique du L2 : ii
B
42
est une interprétation (partiulière) !
Révenons à la syntaxe et au typage.
Erreurs d'ériture possibles :
Non-Formules :
1.
(Aime(t) ∧ Livre(t′ )
Erreur de syntaxe, pas (forement) de typage.
2.
Aime(t) ∧ t.age = 40
où
type(t) = {N omP ersonne, N omLivre}
Erreur de typage!
3. (Rappel : le shéma de
Livre
est
{N omLivre})
∀t : P ersonne ¬Livre(t)
Erreur de typage!
43
Les exemples qui vont suivre utilisent le shéma de base du premier ours :
U=
{N omF ilm, Realizateur, Acteur, P roducteur, N omCinema, Horaire, Spectateur}
S=
{
F ilm(N omF ilm, Realizateur, Acteur, P roducteur),
P rojection(N omF ilm, N omCinema, Horaire), Aime(Spectateur, N omF ilm)
}
44
Formulation d'une requête dans le alul relationnel à variables
n-uplets.
•
Format :
{t : E | F (t)}
où
t
est une variable,
ayant
t
E
est le type délaré pour
t
et
F (t)
est une formule
omme seule variable libre.
•
Réponse : l'ensemble des des valeurs de
•
Exemple : Quels sont les (titres des) lms projetés au Gaumont Alésia ?
t
pour lesquelles
F (t)
est vraie.
{t : N omF ilm | ∃t′ : N omF ilm, N omCinema, Horaire (P rojection(t′ )
∧t′ .N omCinema = “GaumontAlesia′′ ∧ t.N omF ilm = t′ .N omF ilm)}
45
Un autre exemple.
Quels sont les titres et les ateurs des lms projetés au Gaumont Alésia ?
{t : N omF ilm, Acteur |
∃t′′ : N omF ilm, Acteur, Realisateur, P roducteur
∃t′ : N omF ilm, N omCinema, Horaire
(F ilm(t′′ ) ∧ (P rojection(t′ )
∧ t′ .N omCinema =′′ GaumontAlesia′′ ∧ t′′ .N omF ilm = t′ .N omF ilm ∧
t.N omF ilm = t′ .N omF ilm ∧ t.Acteur = t′′ .Acteur)}
NB : En algèbre on aurait érit :
πN omF ilm,Acteur σN omCinema=‘′′ GaumontAlesia′′ (F ilm 1 P rojection)
46
Question.
Même base
B,
mais domaines des attributs
6=.
A-t-on forement une réponse unique à une requête dans le alul ? NON.
Exemple :
shéma est
Shéma de la base ={R(A)}, .-à-d. on a une seule table,
dont le
{A}.
A
Trois Cas
1
1)
Dom(A) = {1, 2, 3}
2
2)
Dom(A) = {1, 2, 3, 4}
3
3)
Dom(A) = {1, 2, 3, 4, 5, 6, ...}
Requête :
R,
{t : A | ¬R(t)}
Réponses respetives dans les trois as :
∅, {4}, {n | n
est un entier positif et
n > 3}.
Dans le troisième as, la réponse n'est même pas une relation nie ! Pas de
orrespondane ave l'algèbre relationnelle.
Cette requête est dépendante du domaine. Not Good !
47
• ∃
restrition syntaxique sur la forme d'une requête
que
R
R
du alul qui assure
est indépendante du domaine et équivalente à une expression
algébrique : notion de requête
saine :
saine.
•
Dénition de
•
Mais : exemples de réériture d'une requête dépendante du domaine (D.D.)
tehniquement ompliquée, pas donnée ii.
de façon qu'elle soit indépendante du domaine (I.D.).
48
Exemples
{
F ilm(N omF ilm, Realizateur, Acteur, P roducteur),
P rojection(N omF ilm, N omCinema, Horaire), Aime(Spectateur, N omF ilm)
}
Shéma de la base :
Quels lms ne sont aimés par personne ?
{t : N omF ilm | ∀x : Spectateur, N omF ilm (x.N omF ilm =
t.N omF ilm → ¬Aime(x))}
D.D. :
Aime = {hs1, f 1i, hs2, f 2i}
Dom(N omF ilm) = {f 1, f 2, f 3, ...}.
Evaluer, par exemple, sur
ave
{t : N omF ilm | ∃t′ : N omF ilm, Realizateur, Acteur, P roducteur
[F ilm(t′ ) ∧
∀x : Spectateur, N omF ilm (x.N omF ilm = t′ .N omF ilm → ¬Aime(x))
∧ t′ .N omF ilm = t.N omF ilm]}
I.D. :
49
Exemples, suite
Quels lms ne sont pas projettés au Gaumont-Alésia ?
{t : N omF ilm | ¬∃t′′ : N omF ilm, N omCinema, Horaire
(P rojection(t′′ ) ∧ t′′ .N omCinema = “Gau.Al.′′ ∧ t′′ .N omF ilm = t.N omF ilm)}
D.D. :
P rojection = {hf 1, c1, h1i, hf 2, G.A., h22i}
Dom(N omF ilm) = {f 1, f 2, f 3, ...}.
Evaluer, par exemple, sur
ave
{t : N omF ilm | ∃t′ : N omF ilm, Realizateur, Acteur, P roducteur
[F ilm(t′ ) ∧
¬∃t′′ : N omF ilm, N omCinema, Horaire (P rojection(t′′ ) ∧ t′′ .N omCinema =
“Gau.Al.′′ ∧ t′′ .N omF ilm = t′ .N omF ilm) ∧ t′ .N omF ilm = t.N omF ilm]}
I.D. :
50
Exemples, suite
Enore :
Quels lms ne sont pas projettés au Gaumont-Alésia ?
Les deux formules suivantes sont I.D. et sont
équivalentes :
{t : N omF ilm | ∃t′ : N omF ilm, Realizateur, Acteur, P roducteur
[F ilm(t′ ) ∧
¬∃t′′ : N omF ilm, N omCinema, Horaire [P rojection(t′′ ) ∧ t′′ .N omCinema =
“Gau.Al.′′ ∧ t′′ .N omF ilm = t′ .N omF ilm] ∧ t′ .N omF ilm = t.N omF ilm)]}
(déjà vue).
{t : N omF ilm | ∃t′ : N omF ilm, Realizateur, Acteur, P roducteur
[F ilm(t′ ) ∧
∀t′′ : N omF ilm, N omCinema, Horaire ¬[P rojection(t′′ ) ∧ t′′ .N omCinema =
“Gau.Al.′′ ∧ t′′ .N omF ilm = t′ .N omF ilm] ∧ t′ .N omF ilm = t.N omF ilm)]}
Pourquoi ?
¬∃xF (x) ≡ ∀x¬F (x).
51
Et enore une autre ériture équivalente si on remarque que
¬(A ∧ B ∧ C) ≡ ((A ∧ B) → ¬C).
52
•
algèbre relationnelle et alul relationnel à variables
n-uplets
(requêtes I.D.) :
expression des mêmes requêtes.
•
Un langage ommerial est dit
relationnellement omplet ssi il
peut exprimer
toutes les requêtes que l'algèbre peut exprimer.
•
SQL est relationnellement omplet.
•
SQL utilise des opérateurs de l'algèbre, mais aussi des variables
53
n-uplets.
Téléchargement