Profitez des promotions incroyables de nos cours en pdf!! Ignorer
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.
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.
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
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
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?
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.
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.