_______________________________________________________________________________

___________________________________________________________________________________________ Institut Supérieur de l'Informatique et des Technologies de la Communication Chapitre5: Algèbre relationnelle Enseignante: Fouzia kahloun AU: 2020 – 2021 ___________________________________________________________________________________________ Introduction L’algèbre relationnelle est un ensemble d’opérateurs simples qui agissent sur des relations afin de créer d’autres relations. L'algèbre relationnelle se présente comme un support mathématique cohérent sur lequel repose le modèle relationnel. Elle est basée sur un ensemble d'opérateurs assurant d'effectuer des opérations sur les relations. Elle permet, comme exemple, une sélection de certains enregistrements d’une relation en respectant une condition ou encore de grouper des enregistrements de relations distinctes. Ces opérateurs sont classés en trois familles : a. Les opérateurs unaires : Ce sont des opérateurs simples, ils permettent de créer une nouvelle table à partir d’une autre table. Exemple: Projection, Sélection, Renommage. b. Les opérateurs binaires ensemblistes: Ils permettent de créer une autre relation à partir de deux relations décrivant par le même schéma. Exemple: Intersection, Union, Différence. c. Les opérateurs binaires ou n-aires : Ils permettent de créer une nouvelle table à partir de deux ou plusieurs autres tables. Exemple: Jointure, Produit cartésien, Division. 1. Les opérateurs unaires 1.1. Sélection La sélection appelée aussi restriction est un opérateur unaire effectué sur une relation (R1) afin de produire une nouvelle relation (R2) ayant le même schéma comportant seulement les n-uplets de la relation R1 satisfaisant la condition énoncée. On le note par le symbole σ. L’objectif est de sélectionner un groupe de tuples d’une relation selon une condition (critère) de sélection. Le critère (condition) de sélection utilise : - les connecteurs logiques (ou, et, non), - les opérateurs de comparaison (=, <=, >, >=, != ), - les parenthèses. Exemple σ (Numéro≥2)Client 1.2. Projection La projection d'une relation R1 est la production d’une nouvelle relation restreinte comportant quelques attributs de la relation initiale. En outre, elle permet de sélectionner que quelques attributs d'une relation. On le note par le symbole ∏ Exemple :∏ (prénom) Client Numéro Nom Prénom 1 Saleh Ali 2 Ahmed Ali 3 Mohamed Mabrouk Numéro Nom Prénom 2 Ahmed Ali 3 Mohamed Mabrouk Prénom Ali Ali Mabrouk 1.3. Renommage Le renommage permet de modifier les noms des attributs d’une relation afin d’avoir des solutions aux problèmes de compatibilité entre les noms des attributs des relations. On la note α[ancien_nom, nouveau_nom]R. Pré-condition : le nouveau nom n’existe pas déjà dans R. Exemple : Exemple : α(Nom, Nom_client)client. 2. Les opérateurs binaires ensemblistes 2.1. Union Une opération effectuée sur deux relations ayant le même schéma (c.à.d même nombre, noms et types d’attributs). Le résultat consiste à créer une nouvelle relation contenant l'ensemble des n-uplets appartenant à chacune de deux relations en éliminant les tuples doublés. On la note : R1 ∪ R2. Exemple Numéro Nom Prénom 2 Ahmed Ali 6 Ahmed Ben Haj Ali 8 Sana Mefteh Client 1 U Client 2 Numéro Nom Prénom 1 Saleh Ali 2 Ahmed Ali 3 Mohamed Mabrouk Numéro Nom Prénom 1 Saleh Ali 2 Ahmed Ali 3 Mohamed Mabrouk 6 Ahmed Ben Haj Ali 8 Sana Mefteh Client 1 Client 2 Propriété - Commutative : R1 ∪ R2 = R2 ∪ R1 - Schéma (R1 ∪ R2) = Schéma (R1) = Schéma (R2) - Nombre_tuples (R1 ∪ R2) ≤ Nombre_tuples (R1) + Nombre_tuples (R2) 2.2. Intersection Une opération effectuée sur deux relations ayant le même schéma. Le résultat est une nouvelle relation contenant l'ensemble des n-uplets appartenant à la fois dans les deux relations. On la note : On la note R1 ∩ R2. On vérifie que l'intersection peut s'exprimer à l'aide de la différence: R ∩ S = R - (R - S) Exemple 2.3. Différence Une opération effectuée sur deux relations (R1 et R2) ayant le même schéma. Le résultat de R1 - R2 est une nouvelle relation composée des n-uplets présents dans R1 et non dans R2. Exemple 3. Les opérateurs binaires ou n-aires 3.1. Produit cartésien C’est une opération réalisée par deux relations R1 et R2 afin de produire une troisième qui regroupe toutes les combinaisons (concaténation) possibles des tuples des relations R1 et R2. On la note R1 x R2. Numéro Nom Prénom 2 Ahmed Ali Numéro Nom Prénom 1 Saleh Ali 3 Mohamed Mabrouk Client 1 ∩ Client 2 Client 1 - Client 2 Les schémas de R1 et R2 doivent être disjoints c.à.d. n’existe pas des attributs en commun sinon, il faut renommer les attributs avant le produit. Exemple: produit 3.2. Division C’est une opération réalisée par deux relations R1 et R2 afin de produire une troisième R3 tel que : - le schéma de R3 est composé de tous les attributs de R1 ∉ R2. Numcl Nomcl Adrcl 01 Ali Tunis 02 Mohamed Sousse 03 Ala Kacem NumProd LibProd PU Qtes P001 Prod1 18.000 1200 P002 Prod2 10.000 1000 Numcl Nomcl Adrcl NumProd LibProd PU Qtes 01 Ali Tunis P001 Prod1 18.000 1200 01 Ali Tunis P002 Prod2 10.000 1000 02 Mohamed Sousse P001 Prod1 18.000 1200 02 Mohamed Sousse P002 Prod2 10.000 1000 03 Ala Kacem P001 Prod1 18.000 1200 03 Ala Kacem P002 Prod2 10.000 1000 Client ×Produit Client Produit - un n-uplet (a1, a2, … , an) ∈ à R3 si et seulement si (a1, a2, … , an, b1, b2, … , bm) ∈ à R1 pour tous (b1, b2, … , bm) ∈ R2 On le note par R1/R2 ou R1÷ R2. Exemple: 3.3. La jointure naturelle La jointure produit une relation R3 à partir de deux relations R1 et R2 regroupant toutes les combinaisons possibles des occurrences des relations R1 et R2 en répondant à une expression logique E. On la note R1 ⋈E R2. En effet, la jointure se présente par produit cartésien précédée d’une sélection. R1 ⋈E R2 = σ[E] (R1 x R2) Etudiant Ali Mohamed Etudiant Cours Réussi Ali Base de données Oui Mohamed Base des données Oui Salah Base des données Non Ali Programmation Oui Mohamed Programmation Oui Saleh Programmation Oui Ali Math Oui Mohamed Math Oui Saleh Math Oui Cours Réussi Base de données Oui Programmation Oui Math Oui R1/R2 R2 R1 Exemple: Pays ⋈pays.monnaie=Monnaie.NumMonnaie 3.3.1 Equi-jointure L’équi-jointure produit une nouvelle relation comportant les tuples qui satisfont la condition de sélection du produit cartésien de deux relations (R et S). Si la condition de sélection utilise les opérateurs de comparaison spécialement l’égalité on parle de Equi-jointure. C’est le cas le plus utilisable. Exemple: Voir exemple précédent 3.3.2. Theta-jointure La theta-jointure produit une nouvelle relation comportant les tuples qui satisfont la condition de sélection du produit cartésien de deux relations (R et S). Le critère de combinaison est réalisé à travers un opérateur de comparaison autre que l’égalité (<, <=,>=,>, ≠). Nom Capitale Monnaie Italie Roma 3 France Paris 3 Gabon libreville 6 Bénin Porto-Novo 6 Num Nom 1 Dollar 3 Euro 6 Franc CFA Pays .Nom Capitale Monnaie Num Monnaie.Nom Italie Roma 3 3 Euro France Paris 3 3 Euro Gabon libreville 6 6 Franc CFA Bénin Porto-Novo 6 6 Franc CFA Pays Monnaie Exemple ⋈[B≠C] Exercice d’applications Exercice 1 Soit le schéma relationnel suivant: Pilote (numP, nomP, adresseP, salaireP) Avion (num_avion, nom_avion, capacite_avion, loc_avion) 1. Présentez la liste des avions telle que la capacité est supérieure à 450 passagers. 2. Donnez les numéros et les noms des avions localisés à Paris ? 3. Quel est le nom des pilotes domiciliés à Nice tel que le salaire est supérieur à 14000F? Correction d’exercice 1 1. σ (capacite_avion >450) Avion 2. ∏ num_avion, nom_avion ( (σ (loc=’Paris’)) Avion) 3. ∏ nomP ((σ(adresseP=’ Nice’et salaire>14000)) Pilote) Exercice 2 Soit les relations suivantes : PERSONNE (Cin_P, Nom_P, Prenom_P, Adresse_P) Voiture (NumCarteGrise, Cin_P,, Modele) Moto (NCarteGrise, Cin_P, Modele) Ecrire les expressions représentant: 1. Donnez les numéros, les noms et les prénoms des personnes ayant une voiture mais pas de moto? 2. Donnez les numéros, les noms et les prénoms des personnes ayant une voiture et une moto? 3. Donnez les numéros, les noms et les prénoms des personnes qui n’ayant pas ni voiture ni moto? A B a b b C c B C D E b C d b a b c a c A B C D E a b c a c b c b c d b c b a b c b c a c Correction d’exercice 2 1. ∏ Cin_P, Nom, , Prénon [(∏ Cin_P Voiture -∏ Cin _PMoto) ⋈Personne] 2. ∏ Cin_P, Nom, Prénon [(∏ Cin_P Voiture ∩ ∏ Cin_P Moto) ⋈Personne] 3. ∏ Cin_P, Nom, Prénon [(∏ Cin_P Personne - ( ∏ Cin_P Voiture U ∏ Cin _P Moto) ⋈Personne] Exercice 3 Soit le schéma relationnel est le suivant : Spectacle(Spectacle_ID, Titre, DateDéb, Durée, Salle_ID, Chanteur) Concert (Concert_ID, Date, Heure, Spectacle_ID) Salle (Salle_ID, Nom, Adresse, Capacité) Billet (Billet_ID, Concert_ID, Num_Place, Catégorie, Prix) Vente (Vente_ID, Date_Vente, Billet_ID, MoyenPaiement) 1. Quelles sont les dates du concert de Corneille au Zenith ? 2. Quels sont les chanteurs n'ayant jamais réalisé de concert à la Cygale ? 3. Quels sont les chanteurs ayant réalisé au moins un concert dans toutes les salles ? Correction d’exercice 3 1. 2. uploads/Industriel/ algebre-relationel-copie.pdf

  • 33
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager