Cours de Base de DonneesCours n.3
Algebre relationnelleCe cours reprend beaucoup de transparents du cours
de Philippe LAHIRE
Elisabetta De Maria - [email protected]
UFR Sciences et Laboratoire I3S, CNRS
2013-2014Universite de Nice Sophia-Antipolis
Algebre relationnelle
• Langage procedural : il permet d’indiquer a un SGBDcomment il doit edifier une nouvelle relation a partir d’uneou plusierurs relations existantes dans la base de donnees
• Langage theorique, avec des operations qui travaillent surune (ou plusieurs) relation(s) pour definir une autre relationsans changer la (ou les) relation(s) originale(s)
• le resultat de toute operation algebrique est une relation(propriete de fermeture)
Les operations de l’algebre relationnelleLes cinq operations fondamentales
• selection• projection• produit cartesien• union• difference
Autres operations
• jointure• intersection• division• ...
Operateurs algebriques
Operateurs ensemblistes
• union• intersection• difference• produit
Operateurs relationnels specifiques
• selection• projection• jointure• division
Table d’exemple
• CLIENT(numero, nom, adresse, telephone)• PRODUIT (reference, marque, prix)• VENTE(numero, ref produit#, no client#, date)
Operations unaires
Considerons R et S deux relations definies respectivement surles attributs A = (a1,a2, ...,aN) et B = (b1,b2, ...,bM).
Selection : σpredicat(R)
L’operation selection travaille sur une relation simple R et definitune relation qui ne contient que les tuples de R qui satisfont ala condition (ou predicat) specifiee.
Projection : πa1,...,an(R)
L’operation projection travaille sur une seule relation R et definitune relation qui contient un sous-ensemble vertical de R, enextrayant les valeurs des attributs specifies et en supprimantles doublons.
Operations sur des ensembles (1)
Union : R ∪ S
L’union de deux relations R et S definit une relation qui contienttous les tuples de R, de S ou a la fois de R et S, les tuples endouble etant elimines.
Difference d’ensembles : R − S
La difference d’ensemble definit une relation qui comporte lestuples qui existent dans la relation R et non dans la relation S.
Intersection : R ∩ S
L’intersection definit une relation constituee de l’ensemble detous les tuples presents a la fois dans R et dans S.
Relations compatibles envers l’union
Operations sur des ensembles (2)
Produit cartesien : R × S
Le produit cartesien definit une relation constituee de laconcatenation de tous les tuples de la relation R avec tousceux de la relation S
Relations de schemas quelconques
Operations de jointure
Jointure theta (θ-join) : R ./F S
La jointure theta definit une relation qui contient des tuplessatisfaisant au predicat F du produit cartesien de R et S. Lepredicat F est de la forme R.aiθS.bj ou θ peut etre l’un desoperateurs de comparaison (<,≤,>,≥,=, 6=).
Dans le cas ou le predicat F ne contient que l’egalite (=), onutilise le terme d’ equijointure ou d’equi-jointure.
Jointure naturelle : R ./ S
La jointure naturelle est une equijointure des deux relations Ret S sur tous les attributs communs x . Une occurrence dechaque attribut commun est eliminee du resultat.
Operation de division
Supposons que la relation R soit definie sur l’ensembled’attributs A et que la relation S soit definie sur l’ensembled’attributs B, de telle sorte que B ⊆ A. Soit C = A− B.
Division R ÷ S
La division definit une relation sur les attributs C, constutuee del’ensemble des tuples de R qui correspondent a la combinaisonde tous les tuples de S.
• T1 = πC(R)
• T2 = πC((S × T1)− R)
• T = T1 − T2
Autres jointuresJointure externe (gauche) entre R et S
La jointure externe gauche est une jointure dans laquelle lestuples de la relation R qui n’ont pas necessairement de valeurcorrespondente dans S parmi les attributs communs de R et S,sont egalement inclus dans la relation resultante. Les valeursmanquantes dans la seconde relation sont mises a nul.
• Jointure externe droite : le resultat conserve tous lestuples de la relation de droite
• Jointure externe complete : le resultat reprend tous lestuples de deux relations et remplit de nuls les attributsabsents pour tous les cas de non-correspondence
Semi-jointure entre R et S
La semi-jointure definit une relation qui contient les tuples de Rqui participent a la jointure de R avec S.