séries

11
Chapitre 5 Chapitre 5 1 Sarah Cohen-Boulakia, Bases de données 1 Département Informatique Algèbre Relationnelle Algè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êtes Langage de requêtes : ils permettent de manipuler manipuler et de retrouver retrouver des données d’une base de données Le modèle relationnel supporte des requêtes 2 Sarah Cohen-Boulakia, Bases de données 2 Département Informatique Le modèle relationnel supporte des requêtes simples et expressives simples 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 3 Sarah Cohen-Boulakia, Bases de données 3 Département Informatique d’être utilisé pour faire des traitements traitements ou calculs complexes calculs 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 formels Langages 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érationnel opérationnel, une requête s’écrit comme une succession 4 Sarah 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éclaratif déclaratif, une requête s’écrit comme la spécification du spécification du résultat résultat attendu (sous forme logique)

description

cours et exos séries

Transcript of séries

Page 1: 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)

Page 2: séries

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)

Page 3: séries

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

Page 4: séries

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

Page 5: séries

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

Page 6: séries

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

Page 7: séries

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

Page 8: séries

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 » ?

Page 9: séries

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

Page 10: séries

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 ?

Page 11: séries

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 !