Dans la partie précédente du cours, nous avons vu des opérations de l’Algèbre relationnelle très intéressantes comme : l’opération d’union, l’opération d’intersection, l’opération de projection, l’opération de restriction…. (plus des vidéos explicatives en darija arabe).

Comme vous pouvez constater , quelques opérations de l’algèbre relationnelle nécessitent l’utilisation de deux relations  alors que d’autres n’utilise qu’une seule relation.

Dans cette partie , on traite d’autres opérations de l’Algèbre relationnelle à savoir : le produit cartésien, l’opération de jointure et l’opération de division.

6- Algèbre relationnelle : Produit Cartésien

Formalisme : R = PRODUIT (R1, R2)

 Cet opérateur porte sur deux relations. La relation résultat possède les attributs de chacune des relations d’origine et ses n-uplets sont formés par la concaténation de chaque n-uplet de la première relation avec l’ensemble des n-uplets de la deuxième.

produit cartésien

7-Algèbre relationnelle : La jointure

La jointure de deux relations R1 et R2 est une relation R3 dont les n-uplets sont obtenus en concaténant les n-uplets de R1 avec ceux de R2 et en ne gardant que ceux qui vérifient la condition de liaison

jointure

Le schéma de la relation résultat de la jointure est la concaténation des schémas des opérandes (s’il y a des attributs de même nom, il faut les renommer). Les n-uplets de R1 × R2 (condition) sont tous les couples (u1,u2) d’un n-uplet de R1 avec un n-uplet de R2 qui satisfont “condition”.

La jointure de deux relations R1 et R2 est le produit cartésien des deux relations suivi d’une restriction.

Exemple

  • Requête: Donnez pour chaque vente la référence du produit, sa désignation, son prix, le numéro de client, la date et la quantité vendue.
exemple de jointure

8- Algèbre relationnelle : Division

La division permet de rechercher dans une relation les sous n-uplets qui sont complétés par tous ceux d’une autre relation

Elle permet de répondre à des questions qui sont formulées avec le quantificateur universel : “pour tout …”

Exemple : Requête: Quels sont les élèves qui sont inscrits à tous les sports?

exemple division

Le langage algébrique permet de formuler une question par une suite d’opérations de l’algèbre relationnelle

Exemple:   Requêtes sur le schéma CLIENT, PRODUIT, VENTE

CLIENT (IdCli, nom, ville)

PRODUIT (IdPro, désignation, marque, prix)

VENTE (IdCli, IdPro, date, qte)

1- Donner les noms des clients qui ont acheté le produit  ‘p1’

2- Donner les numéros des clients ayant acheté un produit de marque  Apple

3- Donner les numéros des produits de marque Apple et de prix < 5000 F

4- Donner les numéros des clients n’ayant acheté que des produits de marque Apple

5- Donner les numéros des clients ayant acheté tous les produits de marque Apple

Les solutions des questions 1 , 2 et 4 sont partagées ici.

Arbre algébrique :

Un arbre algébrique correspond à une décomposition de la requête en opérateurs élémentaires avec introduction de tables intermédiaires ( : c’est donc l’équivalent d’une réécriture de la requête avec des vues.). Les feuilles de l’arbre représentent les tables de départ. La racine de l’arbre représente la table résultat. Tous les autres nœuds de l’arbre sont des opérateurs de l’algèbre relationnelle. Les arcs représentent les flux de données.

Exemple: Quels sont les clients de Nice ayant acheté un produit de marque ‘Apple’

Plusieurs arbres équivalents peuvent être déduits d’un arbre donné à l’aide de règles de transformation simples, telles que permutation des jointures et restrictions, permutation des projections et des jointures, etc. Ces transformations sont à la base des techniques d’optimisation de requêtes

Vous pouvez suivre la liste des vidéos du cours algèbre relationnelle  sur notre chaine youtube : Vidéos algèbre relationnelle.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *