Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre...

22
Benoît Piranda Benoît Piranda Équipe SISAR Équipe SISAR Université de Marne La Vallée Université de Marne La Vallée Bases de données Bases de données Algèbre relationnelle, Algèbre relationnelle, opérations opérations Requêtes SQL Requêtes SQL

Transcript of Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre...

Page 1: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

Benoît PirandaBenoît PirandaÉquipe SISARÉquipe SISARUniversité de Marne La ValléeUniversité de Marne La Vallée

Bases de donnéesBases de données

Algèbre relationnelle, opérationsAlgèbre relationnelle, opérations

Requêtes SQLRequêtes SQL

Page 2: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Langage de manipulation de donnéesLangage de manipulation de données

Page 3: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Langage de manipulation de donnéesLangage de manipulation de données Ensemble de commandes permettant :Ensemble de commandes permettant :

– modifier la base : ajout, modification et suppressionmodifier la base : ajout, modification et suppression

– interroger la baseinterroger la base• ex : donner le nom des personnes qui habitent à Parisex : donner le nom des personnes qui habitent à Paris

Trois grandes classes de LMD relationnels :Trois grandes classes de LMD relationnels :– Les langages algébriques : Les langages algébriques :

– Les langages issus de l’algèbre relationnelle de Codd :Les langages issus de l’algèbre relationnelle de Codd :SQL (Structured Query Language)SQL (Structured Query Language)

• ex : ex : selectselect NOM NOM fromfrom PERSONNEL PERSONNEL wherewhere VILLE=‘ PARIS’ VILLE=‘ PARIS’

– Langages prédicatifs :Langages prédicatifs :Systèmes Ingres QUEL (QUEry Language)Systèmes Ingres QUEL (QUEry Language)Access QBE (Query By Example)Access QBE (Query By Example)

Page 4: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Opérateurs d’extraction de donnéesOpérateurs d’extraction de données

Sélection d’un sous ensemble d’attributs : Sélection d’un sous ensemble d’attributs :

projectionprojection

Sélection de n-uplets vérifiant un critère : Sélection de n-uplets vérifiant un critère :

sélectionsélection

Association de plusieurs relations : Association de plusieurs relations : jointurejointure

Combinaison de relations de même schéma : Combinaison de relations de même schéma :

booléensbooléens

Construction de toutes les combinaisons de n-Construction de toutes les combinaisons de n-

uplets entre deux relations : uplets entre deux relations : produitproduit

Extraction des … : Extraction des … : divisiondivision

Page 5: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

La projectionLa projection

La projection d’une relations PLa projection d’une relations P11 de schéma de schéma

RR11(A(A11..A..Ann) sur les attributs A) sur les attributs Ai1i1,A,Ai2i2,…A,…Aipip (avec (avec

iijjiikk et p<n) est une relation P et p<n) est une relation P22 de schéma de schéma

RR22(A(Ai1i1..A..Aipip) dont on a supprimé les tuples en ) dont on a supprimé les tuples en

double.double. Opérateur d’algèbre relationnelle : Opérateur d’algèbre relationnelle : Ai1..AinAi1..Ain

Symbole graphique :Symbole graphique : RemarqueRemarque

– Filtrages des colonnesFiltrages des colonnes

– Utilisé pour supprimer les tuples en double (par Utilisé pour supprimer les tuples en double (par exemple après une union)exemple après une union)

Page 6: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple de projectionExemple de projection

Requête type :Requête type :– Quels sont les villes de résidence des personnes de la Quels sont les villes de résidence des personnes de la

table Ptable P11

VILLE

P2 = ville(P1)

LyonLyonDupontDupont34573457

ParisParisDurandDurand34253425

ParisParisDupondDupond21402140

VILLEVILLENOMNOMIDID

P1

LyonLyon

ParisParis

VILLEVILLE

P2

Page 7: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

La restriction ou sélectionLa restriction ou sélection

La restriction d’une relations PLa restriction d’une relations P11 de schéma R de schéma R1 1 par une par une

qualification Q est une relation Pqualification Q est une relation P22 de même schéma dont de même schéma dont

les tuples sont ceux satisfaisant Q.les tuples sont ceux satisfaisant Q.

Opérateur d’algèbre relationnelle : Opérateur d’algèbre relationnelle : QQ

Symbole graphique :Symbole graphique :

Remarque :Remarque :– Filtrage des donnéesFiltrage des données

– Critères Q :Critères Q :

• Égalité entre un attribut et une valeur données VILLE="Paris".Égalité entre un attribut et une valeur données VILLE="Paris".

• Égalité entre deux attributs de la table VILLE1 = VILLE2.Égalité entre deux attributs de la table VILLE1 = VILLE2.

• Inégalité Age<20, Somme>=150.Inégalité Age<20, Somme>=150.

• Différence.Différence.

Page 8: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple de sélectionExemple de sélection

Requête type :Requête type :– Sélectionner tous les individus habitant à Paris.Sélectionner tous les individus habitant à Paris.

P1ID NOM VILLE

2140 DUPONT PARIS3425 DURAND PARIS3457 PIERRE ORLY

VILLE=‘PARIS’

P2 = VILLE=‘PARIS’(P1)P2

ID NOM VILLE2140 DUPONT PARIS3425 DURAND PARIS

Page 9: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Opérateur booléen UNIONOpérateur booléen UNION

L’union de deux relations P1 et P2 de même L’union de deux relations P1 et P2 de même

schéma R est une relation de même schéma R schéma R est une relation de même schéma R

contenant tous les tuples appartenant à P1, à P2 contenant tous les tuples appartenant à P1, à P2

ou aux deux.ou aux deux.

P1ID NOM VILLE2140DUPONT PARIS3425DUPONT CHAMPS3457PIERRE ORLY

P2ID NOM VILLE1123DURAND PARIS3425DUPONT CHAMPS4286DUBOIS NOISY

P3ID NOM VILLE2140DUPONT PARIS3457PIERRE ORLY4286DUBOIS NOISY1123DURAND PARIS3425DUPONT CHAMPS4286DUBOIS NOISY

U

P3 = P1 U P2

!Les doublons sont éliminés par définition

Page 10: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Opérateur booléen INTERSECTIONOpérateur booléen INTERSECTION

L’intersection de deux relations P1 et P2 de L’intersection de deux relations P1 et P2 de

même schéma R est une relation de même même schéma R est une relation de même

schéma R contenant tous les tuples appartenant schéma R contenant tous les tuples appartenant

à P1 et à P2.à P1 et à P2.

P1ID NOM VILLE2140DUPONT PARIS3425DUPONTCHAMPS3457PIERRE ORLY

P2ID NOM VILLE1123DURAND PARIS3425DUPONT CHAMPS4286DUBOIS NOISY

P3ID NOM VILLE3425DUPONTCHAMPS

P3 = P1 P2

Page 11: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

/

Opérateurs booléen DIFFERENCEOpérateurs booléen DIFFERENCE

La différence de deux relations P1 et P2 de même La différence de deux relations P1 et P2 de même

schéma R est une relation de même schéma R schéma R est une relation de même schéma R

contenant tous les tuples appartenant à P1 et contenant tous les tuples appartenant à P1 et

n’appartenant pas à P2.n’appartenant pas à P2.

P1ID NOM VILLE2140DUPONT PARIS3425DUPONT CHAMPS3457PIERRE ORLY

P2ID NOM VILLE1123DURAND PARIS3425DUPONT CHAMPS4286DUBOIS NOISY

P3ID NOM VILLE2140DUPONT PARIS3457PIERRE ORLY

P3 = P1 / P2

P1 / P2 P2 / P1!

Page 12: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Produit CartésienProduit Cartésien

Le produit cartésien de deux relations P1 et P2 Le produit cartésien de deux relations P1 et P2

de schéma R1 et R2 est une relation ayant pour de schéma R1 et R2 est une relation ayant pour

attribut la concaténation des attributs de R1 et attribut la concaténation des attributs de R1 et

de R2 et dont les tuples sont toutes les de R2 et dont les tuples sont toutes les

concaténations possibles d’un tuple de P1 à un concaténations possibles d’un tuple de P1 à un

tuple de P2.tuple de P2.

Page 13: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple de produit cartésienExemple de produit cartésien

X

P3 = P1 X P2

P1NOM PRENOM

DUPONT PAULDURAND LEON

P2DEST PAYS

NAPLES ItalieROME ItalieMADRID Espagne

P3NOM PRENOM DEST PAYS

DUPONT PAUL NAPLES ItalieDURAND LEON NAPLES ItalieDUPONT PAUL ROME ItalieDURAND LEON ROME ItalieDUPONT PAUL MADRID EspagneDURAND LEON MADRID Espagne

Page 14: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

JointureJointure

La jointure de deux relations P1 et P2 de schéma La jointure de deux relations P1 et P2 de schéma

R1 et R2 selon une qualification Q est l’ensemble R1 et R2 selon une qualification Q est l’ensemble

des tuples du produit cartésien des tuples du produit cartésien

P1 X P2 qui satisfont Q.P1 X P2 qui satisfont Q.• Équivalente à un produit cartésien suivit d’une sélection. Équivalente à un produit cartésien suivit d’une sélection.

Page 15: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Equi-jointureEqui-jointure

L’équi-jointure de deux relations P1 et P2 de L’équi-jointure de deux relations P1 et P2 de

schéma R1 et R2 sur les attributs Ai de R1 et Bj schéma R1 et R2 sur les attributs Ai de R1 et Bj

de R2 est la jointure selon Q = (Ai=Bj).de R2 est la jointure selon Q = (Ai=Bj).

Page 16: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple d’équi-jointureExemple d’équi-jointure

P3 = P1 ID=CODE P2 = ID=CODE (P1 X P2)

ID=CODE

P1ID NOM

3425 DUPONT1123 DURAND

P3ID NOM DEST DATE

3425 DUPONT ROME ###1123 DURAND NAPLES ###1123 DURAND ROME ###

P2CODE DEST DATE1123 NAPLES ###3425 ROME ###1123 ROME ###

Page 17: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple de produit-sélection / jointureExemple de produit-sélection / jointure

P4ID NOM CODE DEST DATE

3425 DUPONT 1123 NAPLES ###3425 DUPONT 3425 ROME ###3425 DUPONT 1123 ROME ###1123 DURAND 1123 NAPLES ###1123 DURAND 3425 ROME ###1123 DURAND 1123 ROME ###

P2CODE DEST DATE1123 NAPLES ###3425 ROME ###1123 ROME ###

P3ID NOM DEST DATE

3425 DUPONT ROME ###1123 DURAND NAPLES ###1123 DURAND ROME ###

X

P4 = P1 X P2

P1ID NOM

3425 DUPONT1123 DURAND

ID=CODE

P3 = P1 P2 ID=CODE

Page 18: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Jointure naturelleJointure naturelle

La jointure naturelle de deux relations P1 et P2 La jointure naturelle de deux relations P1 et P2

de schéma R1 et R2 est l’équi-jointure sur tous de schéma R1 et R2 est l’équi-jointure sur tous

les attributs de même nom, suivie d’une les attributs de même nom, suivie d’une

élimination des doublons.élimination des doublons.

P3 = P1 P2

P1ID NOM

3425 DUPONT1123 DURAND

P3ID NOM DEST DATE

3425 DUPONT ROME ###1123 DURAND NAPLES ###1123 DURAND ROME ###

P2ID DEST DATE

1123 NAPLES ###3425 ROME ###1123 ROME ###

Page 19: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008 Client

No

m =

‘Du

rand

N°Cli

ent Achat

N°Prod. Produit

N

°

P

ro

d.

C

o

d

e

Coule

ur

Nom

prod.

ClientN° Client Nom Prénom Adresse

9 Dupond Roger Champs12 Durand Paul Noisy

AchatN° Prod. N° Client Quantité

24 12 423 12 234 9 23

N° Client Nom Prénom Adresse12 Durand Paul Noisy

ProduitCode Nom prod. Couleur24 P1 Rouge23 P2 VertN° Client

12

N° Prod. N° Client Quantité24 12 423 12 2

N° Prod. N° Client Quantité Nom prod. Couleur24 12 4 P1 Rouge23 12 2 P2 Vert

Nom prod. CouleurP1 RougeP2 Vert

Question : Couleur et nom des produits acheté par le Question : Couleur et nom des produits acheté par le

client ‘ Durand ’ ?client ‘ Durand ’ ?

Page 20: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Question : Couleur et nom des produits acheté pas le

client ‘ Durand ’ ?

Couleur,

Nom prod .

N °Client Nom 'Durand'Client Achat

N °Prod CodeProduit

Couleur,

Nom prod .

Nom 'Durand'Client Achat

N °Prod CodeProduit

Plusieurs solutions :Plusieurs solutions :

Tailles de tables intermédiaires différentes.Tailles de tables intermédiaires différentes. Durées de traitement différentsDurées de traitement différents!

Page 21: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

La divisionLa division

Soit deux relations, une binaire RSoit deux relations, une binaire R11 (A (A11,A,A22) et ) et

l’autre unaire Rl’autre unaire R2 2 (A(A11))

La division de R1 par R2 est une relation R (ALa division de R1 par R2 est une relation R (A22) )

consistant en toutes les valeurs de Rconsistant en toutes les valeurs de R11(A(A22) qui ) qui

s’unifient avec toutes les valeurs de la relation s’unifient avec toutes les valeurs de la relation

unaire. unaire.

YYCC

XXBB

ZZAA

YYAA

XXAA

A2A2A1A1

YYXXA2A2

AAA1A1

Page 22: Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.

2007-2008

Exemple de divisionExemple de division

Quels sont les usines qui fabriquent tous les type Quels sont les usines qui fabriquent tous les type

de pièces ?de pièces ?

Quels sont les étudiants qui assistent à tous les Quels sont les étudiants qui assistent à tous les

cours ?cours ?

Quels sont les logiciels utilisés dans tous les Quels sont les logiciels utilisés dans tous les

projets ?projets ?