1 Cours 3: Algèbre relationnelle Etude des opérateurs de l’algèbre relationnell

1 Cours 3: Algèbre relationnelle Etude des opérateurs de l’algèbre relationnelle • Opérateurs ensemblistes • Sélection • Projection Etude des opérateurs de l algèbre relationnelle j • Jointure • Division • Opérateurs dérivés Dédiés Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 57 Cours 3 Algèbre relationnelle Ensemble d'opérateurs définis sur l'ensemble des relations: ¾le résultat de toute opération algébrique est une relation (propriété de fermeture) ¾une base formelle pour les requêtes ¾utiles pour l'implémentation et l'optimisation des requêtes R1 Op R2 →R3 Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 58 Relation Cours 3 2 Opérateurs algébriques Opérateurs ensemblistes : UNION, INTERSECTION, DIFFERENCE, PRODUIT UNION, INTERSECTION, DIFFERENCE, PRODUIT reformulés spécifiquement pour le modèle relationnel Opérateurs relationnels spécifiques : SELECTION, PROJECTION, JOINTURE, DIVISION Opérateurs dérivés : JOINTURE EXTERNE, SEMI-JOINTURE, ... Faire des couper/coller de lignes et de colonnes Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 59 Faire des couper/coller de lignes et de colonnes Cours 3 3.1 Opérations Ensemblistes • OPERATIONS ENSEMBLISTES POUR DES RELATIONS DE MEME SCHEMA UNION UNION INTERSECTION DIFFERENCE • OPERATIONS ENSEMBLISTES POUR DES RELATIONS DE SCHEMAS QUELCONQUES PRODUIT CARTESIEN • OPERATIONS BINAIRES Relation1 op Relation2 --> Relation3 Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 60 L’ordre de des lignes importe peu Cours 3 3 Opérateur UNION Soit deux relations R1 et R2 de même schéma R1 ∪R2 est la relation contenant les tuples appartenant à R1 ou à R2 R1 ∪R2 est la relation contenant les tuples appartenant à R1 ou à R2 A1 A2 A3 a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 R1 A1 A2 A3 a1 a2 a3 e1 e2 e3 b1 b2 b3 R2 * * * * A1 A2 A3 a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 R1∪R2 UNION * * Suppression des lignes identiques Relation temporaire Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 61 e2 e3 e1 commutatif: [R1 ∪R2] = [R2 ∪R1] associatif: [(R1 ∪R2) ∪R3 ] = [R2 ∪(R1 ∪R3)] Cours 3 Opérateur INTERSECTION Soit deux relations R1 et R2 de même schéma R1 ∩R2 est la relation contenant les tuples appartenant à R1 et à R2 p pp A1 A2 A3 a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 R1 A1 A2 A3 a1 a2 a3 e1 e2 e3 b1 b2 b3 R2 * * * * R1∩R2 A1 A2 A3 a1 a2 a3 b1 b2 b3 INTERSECTION d1 d2 d3 * * On garde que les lignes identiques Relation temporaire Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 62 commutatif: [R1 ∩R2] = [R2 ∩R1] associatif: [(R1 ∩R2) ∩R3 ] = [R2 ∩(R1 ∩R3)] Cours 3 4 Opérateur DIFFERENCE Soit deux relations R1 et R2 de même schéma R1 - R2 est la relation contenant les tuples de R1 n'appartenant pas à R2 p pp p A1 A2 A3 a1 a2 a3 b1 b2 b3 c1 c2 c3 d1 d2 d3 R1 A1 A2 A3 a1 a2 a3 e1 e2 e3 b1 b2 b3 R2 * * * * R1-R2 A1 A2 A3 c1 c2 c3 d1 d2 d3 DIFFERENCE d1 d2 d3 Relation temporaire Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 63 d d d3 Non commutatif: [R1 - R2] ≠ [R2 – R1] Non associatif: [(R1 - R2) – R3 ] ≠ [R2 – (R1 – R3)] Cours 3 Opérateur Produit cartésien Soient les relations R(A1, ..., An) et S(B1, ..., Bp) avec {A1, ..., An} ∩{B1, ...,Bp} éventuellement vide A B C Y { 1 n} { 1 p} Le produit cartésien de S et de R noté R x S est défini par la relation Q(A1, ..., An, B1, ..., Bp) telle que : (a1, ..., an, b1, ..., bp) ∈Q ssi (a1, ..., an)∈R et (b1, ..., bp) ∈S A B C a1 b1 c1 a2 b2 c2 a3 b3 c3 R1 X Y x1 y1 x2 y2 R2 R1xR2 PRODUIT CARTESIEN A B C a1 b1 c1 a2 b2 c2 X Y x1 y1 x1 y1 Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 64 R1xR2 a3 b3 c3 x1 y1 a1 b1 c1 a2 b2 c2 a3 b3 c3 x2 y2 x2 y2 x2 y2 commutatif: [R1 x R2] = [R2 x R1] associatif: [(R1 x R2) x R3 ] = [R2 x (R1 x R3)] Cours 3 5 Propriétés de la structure degré(R1 R2) degré(R1) degré(R2) Même schéma degré(R1 ∪ R2) = degré(R1) = degré(R2) degré(R1 ∩ R2) = degré(R1) = degré(R2) degré(R1 −R2)= degré(R1) = degré(R2) degré(R1 x R2) = degré(R1) + degré(R2) Schéma quelconque Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 65 Cours 3 La sélection : opérateur SELECT - sélection d’un sous-ensemble de tuples d'une relation qui vérifient une condition Opérateur SELECTION p q exemple : σ (Client) numéro nom adresse téléphone 101 106 Durand Fabre NICE PARIS 0493942613 Client adresse=PARIS relation 106 110 Fabre Prosper PARIS PARIS 125 Antonin MARSEILLE relation résultante La relation résultante : même schéma que la relation 0491258472 Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 66 même schéma que la relation sur laquelle porte la sélection Expression de sélection: = | ≠ | ≤ | < | > | ≥ ∧| ∨ | ¬ Cours 3 6 Exercice 1. Afficher les clients qui habitent Paris ou Nice 2. Afficher les ventes du client n° 120 du 20 oct 04 3. Afficher les clients qui n'habitent pas Nice Q1 : σ (Client) adresse = PARIS or adresse = Nice Q2 : σ (Vente) numéro_client = 120 and date = 20 oct 04 ( ) numéro référence_produit numéro_client date 00102 153 101 12/10/04 Q3 : σ (Client) adresse ≠ Nice Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 67 00809 589 108 20/01/05 11005 158 108 15/03/05 12005 589 125 30/03/05 Vente Cours 3 La projection : opérateur PROJECT – sélection de certaines colonnes d'une relation Opérateur PROJECTION exemple : π (Client) numéro nom adresse téléphone Client nom, téléphone 101 Durand NICE 0493942613 106 110 Fabre Prosper PARIS PARIS 125 Antonin MARSEILLE 0491258472 NULL NULL Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 68 Relation résultante Fabre à la place de Propser? Cours 3 7 Exercice 1. Afficher la référence du produit et numéro de client 2 Affi h l t l' d d li t d Ni 2. Afficher le nom et l'adresse des clients de Nice Q1 : π (Vente) Référence_produit, numéro_client Q2 : π (Client) nom, adresse numéro référence_produit numéro_client date 00102 153 101 12/10/04 V t , Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 69 00809 589 108 20/01/05 11005 158 108 15/03/05 12005 589 125 30/03/05 Vente Cours 3 La jointure : opérateur JOIN, noté - combiner une paire de tuples de deux relations en un seul tuple Opérateur JOINTURE / Theta-JOINTURE Client Vente numéro = no_client numéro ref produit Vente no client date numéro nom adresse téléphone Client Critère de sélection: = | ≠| ≤| < | > | ≥ numéro ref_produit no_client date 00102 00809 AF153 BG589 101 106 12/10/04 18/10/04 12005 BG589 125 25/10/04 05/10/04 11005 VF158 106 numéro nom adresse téléphone 101 106 Durand Fabre NICE PARIS 106 Fabre PARIS 125 Antonin MARSEILLE 0493942613 0491258472 NULL NULL Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 70 La relation résultante : • autant d'attributs que le produit cartésien (degré(R1) + degré(R2)) • moins de tuples Cours 3 8 Exercice 1. Afficher le nom des clients avec les dates de leurs achats 2. Afficher, pour le client numéro 125, le numéro de vente et la marque des produits achetés marque des produits achetés Q2 : V1= σ (Vente) Q1 : π (Client Vente) Client.nom, Vente.date Client.numéro = Vente.no_client Vente.no_client = 125 R1 = V1 Produit Vente.ref_produit = Produit.référence Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 71 Res = π ( R1) Vente.numéro, Produit.marque Cours 3 Exercice (suite) 3. Afficher la référence des produits dont le prix est supérieur au produit qui a pour référence 153. référence marque prix 153 BMW 1000 589 PEUGEOT 1800 158 TOYOTA 1500 PRODUIT référence marque prix 153 BMW 1000 589 PEUGEOT 1800 158 TOYOTA 1500 PRODUIT curseurs Q3 P1 = ρ (Produit) opérateur de renommage P2 = σ (P1) P1.référence = 153 Janvier 2012 Philippe LAHIRE – Cours Base de Données L2I 72 Res = π ( Produit P2) Produit.référence Produit.prix > P1.prix Cours 3 9 Opérateur Equijointure / Jointure naturelle • Théta-jointure avec opérateur = • Equijointure la condition fait appel à l'opérateur = Equivalent • Jointure naturelle noté * : équijointure dont la condition porte sur des attributs identiques (de même domaine et même nom) un seul des deux attributs est conservé dans le résultat q no client numéro ref_produit Vente no_client date 00102 00809 AF153 BG589 101 106 12/10/04 18/10/04 numéro nom adresse téléphone 101 106 uploads/Industriel/ cours-bd2012-cours3-pdf 1 .pdf

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