séries
-
Upload
toufikjalaleddine -
Category
Documents
-
view
220 -
download
5
description
Transcript of séries
Chapitre 5 Chapitre 5
1Sarah Cohen-Boulakia, Bases de données
1
Département Informatique
Algèbre RelationnelleAlgèbre Relationnelle
Langage de requêtes pour les BDs Langage de requêtes pour les BDs relationnelles (1/2)relationnelles (1/2)
•• Langage de requêtesLangage de requêtes : ils permettent de manipuler manipuler et de retrouverretrouver des données d’une base de données
• Le modèle relationnel supporte des requêtes
2Sarah Cohen-Boulakia, Bases de données
2
Département Informatique
• Le modèle relationnel supporte des requêtes simples et expressivessimples et expressives
• Les langages de requêtes pour les BDs relationnelles sont fondés sur des bases bases formelles solides formelles solides (logique du premier ordre)
Langage de requêtes pour les BDs Langage de requêtes pour les BDs relationnelles (2/2)relationnelles (2/2)
• Langage de requêtes ≠≠ langage de programmation
– Un langage de requêtes n’a pas pour but
3Sarah Cohen-Boulakia, Bases de données
3
Département Informatique
– Un langage de requêtes n’a pas pour but d’être utilisé pour faire des traitements traitements ou calculs complexescalculs complexes
– But : être facile d’utilisation facile d’utilisation et offrir un accès efficace accès efficace aux données
Langages de requêtes formelsLangages de requêtes formels
• 2 langages de requêtes formels formels existent (fondement de SQL)–– L’algèbre relationnelle L’algèbre relationnelle : langage opérationnelopérationnel,
une requête s’écrit comme une succession
4Sarah Cohen-Boulakia, Bases de données
4
Département Informatique
une requête s’écrit comme une succession d’opérations effectuées sur des relations
–– Calcul relationnel Calcul relationnel : langage déclaratifdéclaratif, une requête s’écrit comme la spécification du spécification du résultat résultat attendu (sous forme logique)
Préliminaire 1Préliminaire 1
• Une requête s’applique à des instances s’applique à des instances de relations et le résultat d’une requête résultat d’une requête est aussi une instance de relationinstance de relation
– Autrement dit : Une requête se pose sur des
tables qui ont un contenu (potentiellement
5Sarah Cohen-Boulakia, Bases de données
5
Département Informatique
vide) et renvoie une table avec un contenu
(potentiellement vide)
Requête Q prenant en
entrée R1 et R2
R1 : table R2 : tableRésultat de Q = une table
Préliminaire 2Préliminaire 2
• Le schéma du résultat schéma du résultat d’une requête sera toujours le même, quelque soit le contenu des relations– La table résultat d’une requête mettra toujours
6Sarah Cohen-Boulakia, Bases de données
6
Département Informatique
en jeu les mêmes attributs (quelque soit le
contenu !)
Préliminaire 3Préliminaire 3
• Les schémasschémas des relations des relations prises en entrées par une requête sont fixés sont fixés
– Une requête s’exprime grâce à des noms
d’attributs et de tables
• Mais une requête ne doit jamais jamais
7Sarah Cohen-Boulakia, Bases de données
7
Département Informatique
• Mais une requête ne doit jamais jamais dépendre des instances dépendre des instances des relations– Aucune connaissance du contenu des tables
ne doit être nécessaire pour bien comprendre
la requête
Algèbre relationnelleAlgèbre relationnelle
•• Opérateurs de baseOpérateurs de base
– Sélection (σ), Projection (π), Produit cartésien (X),
– Différence (\ ou -) et Union (U)
•• Autres opérateurs Autres opérateurs
– Intersection, jointure, division, renomage: très utiles
8Sarah Cohen-Boulakia, Bases de données
8
Département Informatique
– Intersection, jointure, division, renomage: très utiles aussi !
• Puisque chaque opérateur appliqué à une relation renvoie une relation, les opérateurs les opérateurs peuvent être imbriqués peuvent être imbriqués (clôture de l’Algèbre relationnelle)
Projection : introductionProjection : introduction
•• Notation Notation : πA1,…,Ap(R) avec r relation et
A1,…,Ap attributs de R
•• Supprime les attributs Supprime les attributs qui sont différents des attributs de la liste de projection (A ,…,A )
9Sarah Cohen-Boulakia, Bases de données
9
Département Informatique
attributs de la liste de projection (A1,…,Ap)
• Le schéma du résultat contient exactement les exactement les champs champs de la liste de projection (A1,…,Ap)
• NB : L’opérateur de projection élimine les redondances (ce n’est pas le cas en SQL)
Projection : exempleProjection : exemple
Q1= πNumClient, DateRes(Reservation)
ClasseDateRes
Reservation
NumClientNumRes
001
DateRes
Q1NumClient
10Sarah Cohen-Boulakia, Bases de données
10
Département Informatique
1 18/11/2007
2 19/11/2007
17902567
2780289
001
002
18/11/2007
19/11/2007
17902567
2780289
NB : la projection est un opérateur qui n’agit pas sur n’agit pas sur les lignes du résultatles lignes du résultat mais sur les colonnes (c’est-à-
dire sur le schémaschéma)
Projection : Définition formelleProjection : Définition formelle
Input Input – r une relation de schéma R– X un ensemble d’attributs tels que X⊆ R
OutputOutput πX(r)={t(X) / t ∈ r}
11Sarah Cohen-Boulakia, Bases de données
11
Département Informatique
Où t(X) est la restriction de t sur les attributs de X
�Ensemble des n-uplets de r restreints aux attributs de X
Le schéma de πX(r) est X
π
Sélection : introductionSélection : introduction
• Sélection des n-uplets (lignes) qui satisfont la condition de sélectioncondition de sélection
• Le schéma schéma du résultat est identique identique au
12Sarah Cohen-Boulakia, Bases de données
12
Département Informatique
• Le schéma schéma du résultat est identique identique au schéma pris en entrée
Sélection : exempleSélection : exemple
Q2=σ(DateRes<20-11-2007∧∧∧∧Classe=2)(Reservation)
ET
Condition de sélection
13Sarah Cohen-Boulakia, Bases de données
13
Département Informatique
ClasseDateRes
1 18/11/2007
2 19/11/2007
Réservation
NumClient
17902567
2780289
NumRes
001
002
Q2
2 20/11/2007 2780289003
Classe DateRes
2 19/11/2007
NumClient
2780289
NumRes
002
Sélection : Définition formelleSélection : Définition formelle
Input Input – r une relation de schéma R– ϕ une condition de sélection (définie ci-après)
OutputOutput
σϕ(r)={t / t ∈ r et ϕ (t)}
14Sarah Cohen-Boulakia, Bases de données
14
Département Informatique
� L’ensemble des n-uplets de la relation r pour lesquels la condition ϕ est vraie
Le schéma de σϕ(r) est R
σϕ(r)={t / t ∈ r et ϕ (t)}
Définition formelle de la condition Définition formelle de la condition ϕϕϕϕϕϕϕϕ
Définition récursive
•• Base Base : Soient 2 attributs A et B (non nécesairement différents), et a ∈ Dom(A)
ϕ peut prendre les formes suivantes
15Sarah Cohen-Boulakia, Bases de données
15
Département Informatique
A =B, A < B, A=a, A < aA =B, A < B, A=a, A < a (on utilisera aussi >, ≤, ≥ et ≠)
•• Si Si ϕϕϕϕϕϕϕϕ11 et et ϕϕϕϕϕϕϕϕ22 sont deux conditions alors
((ϕϕϕϕϕϕϕϕ11), ), ¬¬ϕϕϕϕϕϕϕϕ1 1 (négation)(négation), , ϕϕϕϕϕϕϕϕ11 ∧∧∧∧∧∧∧∧ ϕϕϕϕϕϕϕϕ2 2 (et)(et) et et ϕϕϕϕϕϕϕϕ11 ∨∨∨∨∨∨∨∨ ϕϕϕϕϕϕϕϕ2 2 (ou)(ou)
sont des conditions de sélection
Exemples de conditionsExemples de conditions
• DateRes ≥ 20-11-2007
• Classe = 2
• Nom = ‘Payen’
∨∨∨∨
16Sarah Cohen-Boulakia, Bases de données
16
Département Informatique
• (DateRes = 20-11-2007 ∨∨∨∨
DateRes = 21-11-2007)
∧∧∧∧ Classe = 2
• NumClient = NumSS
Exercice 1Exercice 1
• Quel est le résultat de la requête Q3 suivante en considérant l’instance de la relation R ci-dessous ?
Q3 =πNom(σPrénom = ‘Jean’ (Enseignant) )
17Sarah Cohen-Boulakia, Bases de données
17
Département Informatique
NumEns Nom Prénom
1 Voisin Jean
2 Benzaken Claudine
3 Jean
Enseignant
Forest
Correction (Exercice 1)Correction (Exercice 1)
• Quel est le résultat de la requête Q3 suivante en considérant l’instance de la relation R ci-dessous ?
Q3 =πNom(σPrénom = ‘Jean’ (Enseignant) )
18Sarah Cohen-Boulakia, Bases de données
18
Département Informatique
NumEns Nom Prénom
1 Voisin Jean
2 Benzaken Claudine
3 Jean
Enseignant
Forest
Produit cartésien : IntroductionProduit cartésien : Introduction
• Opérateur binairebinaire (prend deux relations entre entrée : r1 et r2)
•• Chacun Chacun des n-uplets de r1 est combiné combiné avec chacun chacun des n-uplets de r2
19Sarah Cohen-Boulakia, Bases de données
19
Département Informatique
• Le schéma du résultat a l’union des union des attributs des relationsattributs des relations
• NB : Si les deux relations ont un attribut de même nom, on renomme cet attribut
Produit cartésien : ExempleProduit cartésien : Exemple
R1 x R2A B
a1 b1
a2 b2
R1
C
c1
c2 A B C A’ D
a1 b1 c1 a2 d2
Renommage
20Sarah Cohen-Boulakia, Bases de données
20
Département Informatique
A D
a2 d2
a2
a3
R2
d3
d4
a1 b1 c1 a2 d3
a1 b1 c1 a3 d4
a2 b2 c2 a2 d2
a2a2
b2b2
c2c2
a2a3
d3d4
Produit cartésien : Définition formelleProduit cartésien : Définition formelle
Input Input
– r, s deux relations de schéma R et SOutputOutput
r x s = {t / t(R) r x s = {t / t(R) ∈∈∈∈∈∈∈∈ r et t(S) r et t(S) ∈∈∈∈∈∈∈∈ s}s}
21Sarah Cohen-Boulakia, Bases de données
21
Département Informatique
La restriction du produit aux attribut de R est r et
celle aux attributs de S est s
r x s a pour schéma R+S NB : R+S est l’union disjointe de R et S
{R.A / A∈R } U {S.B / B ∈ S}
SQL SQL par défaut par défaut fait un produit cartésien !fait un produit cartésien !
NumSS Nom Prénom
17902567 Payen Olivier
2780289 Payen Judith
29005579 Quoti Mathilde
Client
Classe DateRes
1 18/11/2007
2 19/11/2007
Reservation
NumClient
17902567
2780289
NumRes
1
2
22Sarah Cohen-Boulakia, Bases de données
22
Département Informatique
SELECT Nom, Prenom, Reservation.NumRes, DateResFROM Reservation, ClientWHERE DateRes < ‘2007-11-19’
Nom Prenom DateRes
Payen Olivier 18/11/2007
Payen Judith 18/11/2007
Quoti Mathilde 18/11/2007
1
1
1
NumRes
Ces deux lignes mélangent des informations qui n’ont Ces deux lignes mélangent des informations qui n’ont rien à voir !!rien à voir !!
Jointure naturelle : IntroductionJointure naturelle : Introduction
• Opération binaire fondamentale (optimisation) fondamentale (optimisation) !
• Utilise R1 et R2 qui ont des attributs communs attributs communs (appelons-les X)
• Le schémaschéma du résultat est
23Sarah Cohen-Boulakia, Bases de données
23
Département Informatique
– similaire au schéma du produit cartésien – modulo que les attributs X n’apparaissent qu’une fois
• Au niveau des lignes : on combine combine les lignes de R1 avec les lignes de R2 qui ont même valeur même valeur pour les attributs Xpour les attributs X
Jointure naturelle : ExempleJointure naturelle : Exemple
R1 R2A B
a1 b1
a2 b2
R1
C
c1
c2
A B C D
R1 R2Équivaut à
R1.A = R2.A
24Sarah Cohen-Boulakia, Bases de données
24
Département Informatique
A D
a2 d2
a2
a3
R2
d3
d4
A B C D
a2 b2 c2 d2
a2 b2 c2 d3
Jointure naturelle : Définition formelleJointure naturelle : Définition formelle
•• InputInput
– r et s de schéma R et S
•• OutputOutput
r s = {t / t(R) ∈ r et t(S) ∈ s}
π σ
25Sarah Cohen-Boulakia, Bases de données
25
Département Informatique
r s = πR union S σϕ (r x s)
Avec R ∩ S = {B1, …, Bp}
ϕ : t(R.B1)= t(S.B1) … t(R.Bp)= t(S.Bp)
Phi (ou théta) JointurePhi (ou théta) Jointure
• Cas particulier de jointure avec condition
ϕ est une condition de sélection
R1 R2ϕ R1 R2
R2.A > R1.C
26Sarah Cohen-Boulakia, Bases de données
26
Département Informatique
ϕ est une condition de sélection
A D
3 2
2
1
R2
3
4
A D E B C
332
223
191
727
121
E B
1 7
9 2
R1
C
1
2
Union, Intersection, Différence : Union, Intersection, Différence : IntroductionIntroduction
• Tous ces opérateurs prennent en entrée 2 entrée 2 relations relations qui doivent avoir le même schémamême schéma
•• UnionUnion (R1 ∪ R2) : ensemble de n-uplets qui sont dans R1 dans R1 ouou dans R2dans R2
27Sarah Cohen-Boulakia, Bases de données
27
Département Informatique
•• Intersection Intersection (R1 ∩ R2) ensemble de n-uplets qui sont dans R1 dans R1 etet dans R2dans R2
•• Différence Différence (R1 \ R2 ou R1 – R2) : ensemble de n-uplets qui sont dans R1 dans R1 mais pas mais pas dans R2dans R2
Union, Intersection, Différence : Union, Intersection, Différence : ExemplesExemples
A B
R1
A B
R2 A B
a1 b1
a2 b2
R1 ∪ R2
A B
a1 b1
R1 ∩ R2
A B
a2 b2
R1 \ R2
a3 b3Les n-uplets
28Sarah Cohen-Boulakia, Bases de données
28
Département Informatique
a1 b1
a2 b2
a3 b3
a1 b1
a2
a3
b3
a2
a3
b2
b4
b3
a2
a3
b3
b4
a3 b3
Les n-uplets de R1 union ceux de R2
� Pas de doublonPas de doublon
Les n-uplets à la fois dans R1 et dans R2
Les n-uplets de R1 mais qui ne sont pas dans R2
Union, Intersection, Différence : Union, Intersection, Différence : Définitions formellesDéfinitions formelles
Input Input
– r, s deux relations de même schéma Rmême schéma R
OutputOutput
r r ∪∪∪∪∪∪∪∪ s = { t / t s = { t / t ∈∈∈∈∈∈∈∈ r ou tr ou t∈∈∈∈∈∈∈∈ s s }}
29Sarah Cohen-Boulakia, Bases de données
29
Département Informatique
r r ∪∪∪∪∪∪∪∪ s = { t / t s = { t / t ∈∈∈∈∈∈∈∈ r ou tr ou t∈∈∈∈∈∈∈∈ s s }}
rr ∩∩∩∩∩∩∩∩ s = { t / t s = { t / t ∈∈∈∈∈∈∈∈ r et tr et t∈∈∈∈∈∈∈∈ ss }}
r r \\ s = { t / t s = { t / t ∈∈∈∈∈∈∈∈ r et t r et t ∉∉∉∉∉∉∉∉ ss }}
de schéma R
Exercice 2Exercice 2
• Quel est le résultat de la requête Q4 suivante en considérant les instances des relations ci-dessous ?
Q4 =πA,B(σC ≠ c1 (R1) )∩ R2
30Sarah Cohen-Boulakia, Bases de données
30
Département Informatique
A B
a1 b1
a2 b2
a3
R1
b3
A B
a2 b2
a2
a3
R2
b3
b4
C
c1
c2
c3
Correction (Exercice 2) Correction (Exercice 2)
31Sarah Cohen-Boulakia, Bases de données
31
Département Informatique
Division : IntroductionDivision : Introduction
• Opérateur complexe (non primitifnon primitif)
• Exprime les requêtes de recherche d’objets d’un ensemble associés à tous les objets tous les objets d’un autre ensemble
– Qui a vu tous les films de Coppolla ?
32Sarah Cohen-Boulakia, Bases de données
32
Département Informatique
– Qui a vu tous les films de Coppolla ? – Quels utilisateurs de plus de 30 ans ont loué
toutes les saisons de la série « 24h Chrono » ?
Division : ExempleDivision : Exemple
A B C D
a b c d
a b’ c’ d’
a’ b c d
a b c’ d’
C D
c d
c’ d’
RRSS
R ÷÷÷÷ S
A B
a b
a’ b
33Sarah Cohen-Boulakia, Bases de données
33
Département Informatique
a b c’ d’
a’ b c’ d’
Chaque ligne L1 de R L1 de R ÷÷÷÷÷÷÷÷ S S est telle que pour chaque ligne L2 de SL2 de S, L1L2 est dans RL1L2 est dans R
ab’ n’est dans dans R ÷ S car ab’cd n’est pas dans R
Division : Définition formelleDivision : Définition formelle
•• InputInput
– R et S, 2 relations de schéma R et S– S ⊆ R
•• OuputOuput
34Sarah Cohen-Boulakia, Bases de données
34
Département Informatique
– r ÷ s de schéma R \ S
– r ÷ s= {t / t ∈ πR-S(r), ({t} x s) ⊆ r}
Exercice 3Exercice 3
Q : Quels utilisateurs ont loué tous les films dans lesquels joue B. Pitt ?
Nom NumFilm
Girard 1
NumFilm Acteur
1 B. Pitt
LouéLoué JoueDansJoueDans
35Sarah Cohen-Boulakia, Bases de données
35
Département Informatique
Girard 1
Maquin 2
Girard 2
John 1
KleinKlein
21
1 B. Pitt
2 B. Pitt
3 C. Eastwood
2 G. Clooney
1 A. Ford
Correction (Exercice 3)Correction (Exercice 3)
36Sarah Cohen-Boulakia, Bases de données
36
Département Informatique
Propriétés algébriques Propriétés algébriques
• L’union union ∪ et l’intersection intersection ∩ sont commutatifs commutatifs et associatifsassociatifs– r ∪ s = s ∪ r, r ∪ (s1 ∪ s2) = (r ∪ s1) ∪ s2– De même pour ∩
• Le produit cartésien produit cartésien est associatif et commutatifassociatif et commutatif*
37Sarah Cohen-Boulakia, Bases de données
37
Département Informatique
• Le produit cartésien produit cartésien est associatif et commutatifassociatif et commutatif*
• La jointurejointure est associative et commutativeassociative et commutative*
• D’autres propriétés peuvent être énoncées : monotonie de certains opérateurs, fermeture etc.
*si on considère un ordre sur les colonnes
Exemple d’équivalencesExemple d’équivalences• Les relations d’équivalence de l’algèbres sont des
égalités entre des formules• Elles sont à la base des optimisations de requêtes !•• Exercice Exercice
– Sachant que les schémas de R et S sont les mêmes et si X ⊆ R, trouvez un contre exemple aux égalités qui sont trouvez un contre exemple aux égalités qui sont
fausses et démontrez celles qui sont justesfausses et démontrez celles qui sont justes
38Sarah Cohen-Boulakia, Bases de données
38
Département Informatique
fausses et démontrez celles qui sont justesfausses et démontrez celles qui sont justes
• πX (r ∩ s) = πX (r) ∩ πX (s)
• πX(r – s) = πX (r) - πX (s)
• πX(r ∪ s) = πX (r) ∪ πX (s)
Exemple d’équivalences (correction)Exemple d’équivalences (correction)
39Sarah Cohen-Boulakia, Bases de données
39
Département Informatique
Exercice 4Exercice 4
• Considérons les relations suivantes– UE(NumUE, NomUE, responsable)– Enseignant(NumEns, NomEns, PrenomEns, Age)– Etudiant(NumEtu, NomEtu, PrenomEtu, Filiere)– Suit(NumEtu, NumUE)
40Sarah Cohen-Boulakia, Bases de données
40
Département Informatique
• Exprimer les requêtes suivantes
– Q1 : Dans quelles filières des étudiants suivent une UE d’Algorithmique ?
– Q2 : Quels étudiants suivent toutes les UEs ?
Correction (Exercice 4)Correction (Exercice 4)
41Sarah Cohen-Boulakia, Bases de données
41
Département Informatique
ConclusionConclusion
• L’algèbre relationnelle est définie de façon très rigoureuserigoureuse et offre un langage de requêtes à la fois simple et puissantsimple et puissant
• L’algèbre relationnelle est à la base à la base
42Sarah Cohen-Boulakia, Bases de données
42
Département Informatique
• L’algèbre relationnelle est à la base à la base
– De SQLSQL
– Des plans de requêtes plans de requêtes utilisés par les SGBD pour optimiser optimiser les requêtes
– La suite en spécialité info !