View
109
Download
1
Category
Preview:
Citation preview
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
2007-2008
Langage de manipulation de donnéesLangage de manipulation de données
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)
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
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)
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
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.
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
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
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
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!
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.
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
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.
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).
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 ###
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
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 ###
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 ’ ?
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!
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
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 ?
Recommended