Algèbre relationnelle Algèbre relationnelle Opérations de l

1
Algèbre relationnelle
!Une autre vision de l'interrogation des bases de
données
!Plus théorique (aide à comprendre)
!Pas seulement théorique : utilisable directement
en SQL
!(Mais peu utilisée)
!SQL est une implémentation de l' « algèbre
relationnelle »
2
Algèbre relationnelle
!Support de l'algèbre : tables comme ensemble de
n-uplets.
!Opération : table1, table2, ... -> table-résultat
une opération combine des tables pour en
produire une nouvelle
3
Opérations de l'algèbre relationnelle
!union,
!intersection,
!différence,
!projections,
!restriction,
!produits,
!jointures,
!...
4
union, intersection, différence
!S'appliquent à des tables qui ont des
schémas identiques
!union, intersection et différence d'ensembles de
n-uplets.
!a | b a | b a | b
--+-- ! --+-- = --+--
1 | 2 3 | 4 1 | 2
3 | 4 5 | 6 3 | 4
5 | 6
5
Sélection
!Choix des n-uplets qui satisfont une condition.
!R1 = !C(R2) où C est une condition booléenne
!VenteAPerte = !prix < coût(Vente)
6
Projection
!Choix de certaines colonnes
!R1 = "L(R2) où L est une liste d'attributs
!NomDesBars = "nom(bar)
(une « table » à une seule colonne)
7
Produits et jointures
!On a d'abord le produit Cartésien
R = R1 x R2
Toutes les combinaisons de nuplets de R1 et R2
!Puis la jointure theta, qui combine un produit et
une sélection : R = R1 !c R2
R = !C(R1 x R2)
(C'est le sens général des requêtes SELECT)
8
jointure naturelle
!R = R1 R2
!Les n-uplets ne sont retenus que si les attributs de
même nom ont les mêmes valeurs
!(C'est un cas particulier de jointure thèta)
9
Exemple
!R1 a | b R2 b | c
---+--- ---+--
1 | 2 3 | 7
2 | 3 2 | 9
!R = R1 R2 = a | b | c
--+---+---
1 | 2 | 9
2 | 3 | 7
10
equi-jointures
!formellement, une jointure theta où les conditions
sont des égalités.
!Très semblables à des jointures naturelles
11
Jointures naturelles et équi-jointures
!Implémentation très efficace si il y a des
« index » sur les colonnes de la jointure
Les index sont des structures de données auxiliaires
qui facilitent l'accès au n-uplets en fonction de la
valeur de l'attribut pour lequel on a un index
postgreSQL construit automatiquement un index sur
les clés primaires.
12
Exemple
!Equi-jointure exprimée comme jointure theta :
SELECT r1.a, r2.b FROM r1, r2
WHERE r1.c = r2.d
!Introduction de l'équi-jointure explicite :
SELECT r1.a, r2.b
FROM r1 JOIN r2 ON r1.c = r2.d
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !