Algèbre relationnelle
La partie structurelle : le modèle relationnel <ul><li>Produit cartésien de 2 ensembles : </li></ul><ul><li>Relation : </l...
La partie opérationnelle : l'algèbre relationnelle <ul><li>Une algèbre est un ensemble avec des opérations fermées sur cet...
Opérations ensemblistes <ul><li>Union </li></ul><ul><ul><li>Les relations doivent avoir le même schéma </li></ul></ul>Prof...
Opérations ensemblistes <ul><li>Intersection </li></ul><ul><ul><li>Les relations doivent avoir le même schéma </li></ul></...
Opérations ensemblistes <ul><li>Produit cartésien </li></ul>G-B GAN BOARDMAN Chris 91 SUI COF ROMINGER Tony 61 FRA ONC JAL...
Opérations spécifiques <ul><li>Sélection  (ou restriction) : relation composée de n-uplets vérifiant une condition </li></...
Opérations spécifiques <ul><li>Projection  : relation restreinte aux attributs spécifiés dans la projection </li></ul><ul>...
Opérations spécifiques <ul><li>Jointure  :  </li></ul>Relation résultat G-B SUI FRA ALL Code  pays Grande -Bretagne Suisse...
Opérations spécifiques <ul><li>Jointure (suite) </li></ul><ul><ul><li>Notation : Coureur     Pays </li></ul></ul><ul><li...
Opérations spécifiques <ul><li>Division  :  relation composée des n-uplets tels que le produit cartésien avec le diviseur ...
a a b b c c x y x y x y Produit cartésien Sélection Projection Union Intersection Différence a b c x y
Remarques sur l'algèbre relationnelle <ul><li>L'algèbre relationnelle permet l‘étude des opérateurs entre eux (commutativi...
<ul><li>Pourquoi une requête est-elle  meilleure  qu'une autre ? </li></ul><ul><ul><li>Une requête n'est pas l'unique solu...
<ul><ul><li>R1= JOINTURE( Commande ,  Produit ,  Produit .N°prod =  Commande .N°prod) </li></ul></ul><ul><ul><li>R2 = SELE...
<ul><ul><li>R1 = PROJECTION(SELECTION( Commande , Quantité>10), N°prod, Quantité) </li></ul></ul><ul><ul><li>R2 = JOINTURE...
Clés d’une relation <ul><li>Clé primaire </li></ul><ul><ul><li>Colonne(s) dont les valeurs permettent de repérer une seule...
Exercices <ul><li>CRU(NomCru,Commune,Région,Couleur) </li></ul><ul><li>VINS(Région,Couleur,Millésime,Qualité) </li></ul><u...
<ul><li>Req2 : Tous les crus rouges </li></ul><ul><li>La liste des noms de crus rouges” </li></ul>PROJECTION(SELECTION(CRU...
Contraintes d'intégrité <ul><li>Un des outils les plus importants d'un SGBD </li></ul><ul><li>Contraintes de clé : </li></...
Prochain SlideShare
Chargement dans…5
×

2 coursalgrel

877 vues

Publié le

Publié dans : Business
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

2 coursalgrel

  1. 1. Algèbre relationnelle
  2. 2. La partie structurelle : le modèle relationnel <ul><li>Produit cartésien de 2 ensembles : </li></ul><ul><li>Relation : </li></ul><ul><ul><li>Sous-ensemble du produit cartésien d’une liste de domaines </li></ul></ul><ul><ul><li>Une relation est caractérisée par un nom </li></ul></ul><ul><ul><li>Représentation commode : table à 2 dimensions </li></ul></ul><ul><ul><li>Exemple : la relation Coureur est un sous-ensemble du produit cartésien : </li></ul></ul><ul><ul><ul><li>numéro X nom X CodeEquipe X CodePays </li></ul></ul></ul>
  3. 3. La partie opérationnelle : l'algèbre relationnelle <ul><li>Une algèbre est un ensemble avec des opérations fermées sur cet ensemble. </li></ul><ul><ul><li>Une algèbre relationnelle est un ensemble d’opérations agissant sur des relations et produisant des relations </li></ul></ul><ul><li>4 opérations ensemblistes (union, intersection, différence, produit cartésien) </li></ul><ul><li>3 opérations spécifiques des BD relationnelles (sélection, projection, jointure) </li></ul>
  4. 4. Opérations ensemblistes <ul><li>Union </li></ul><ul><ul><li>Les relations doivent avoir le même schéma </li></ul></ul>Professeur  Maître de conférence
  5. 5. Opérations ensemblistes <ul><li>Intersection </li></ul><ul><ul><li>Les relations doivent avoir le même schéma </li></ul></ul><ul><ul><li>Exemple : l’intersection de Professeur et Maître de conférence est une relation nulle (!) </li></ul></ul><ul><li>Différence </li></ul><ul><ul><li>Les relations doivent avoir le même schéma </li></ul></ul><ul><ul><li>Exemple : la différence Professeur - Maître de conférence est la relation Professeur elle-même (!) </li></ul></ul>
  6. 6. Opérations ensemblistes <ul><li>Produit cartésien </li></ul>G-B GAN BOARDMAN Chris 91 SUI COF ROMINGER Tony 61 FRA ONC JALABERT Laurent 31 ALL TEL ULLRICH Jan 8 Code pays Code équipe Nom Coureur Numéro coureur G-B SUI FRA ALL Code pays Grande -Bretagne Suisse France Allemagne Nom Pays G-B SUI FRA ALL Code pays Grande -Bretagne Suisse France Allemagne Nom Pays ALL ALL ALL ALL Code pays TEL ULLRICH Jan 8 TEL ULLRICH Jan 8 TEL ULLRICH Jan 8 TEL ULLRICH Jan 8 Code équipe Nom Coureur Numéro coureur Allemagne… ALL FRA ONC JALABERT Laurent 31
  7. 7. Opérations spécifiques <ul><li>Sélection (ou restriction) : relation composée de n-uplets vérifiant une condition </li></ul>Quels sont les coureurs suisses ? R = SELECTION(COUREUR, CodePays = ‘‘SUI’’) NOTATION :  CodePays = ‘‘SUI’’ (COUREUR) Relation résultat ITA SAE CIPOLLINI Mario 114 G-B GAN BOARDMAN Chris 91 SUI COF ROMINGER Tony 61 FRA ONC JALABERT Laurent 31 ALL TEL ULLRICH Jan 8 Code pays Code équipe Nom Coureur Numéro coureur
  8. 8. Opérations spécifiques <ul><li>Projection : relation restreinte aux attributs spécifiés dans la projection </li></ul><ul><ul><li>Exemple : Nom et nationalité des coureurs ? </li></ul></ul><ul><ul><li>R = PROJECTION(COUREUR, NomCoureur, Nationalité) </li></ul></ul><ul><ul><li>NOTATION :  {NomCoureur,Nationalité} (COUREURS) </li></ul></ul>Relation résultat CIPOLLINI Mario BOARDMAN Chris ROMINGER Tony JALABERT Laurent ULLRICH Jan Nom Coureur ITA G-B SUI FRA ALL Code pays
  9. 9. Opérations spécifiques <ul><li>Jointure : </li></ul>Relation résultat G-B SUI FRA ALL Code pays Grande -Bretagne Suisse France Allemagne Nom Pays G-B GAN BOARDMAN Chris 91 SUI COF ROMINGER Tony 61 FRA ONC JALABERT Laurent 31 ALL TEL ULLRICH Jan 8 Code pays Code équipe Nom Coureur Numéro coureur Grande -Bretagne Suisse France Allemagne Nom Pays G-B SUI FRA ALL Code pays GAN BOARDMAN Chris 91 COF ROMINGER Tony 61 ONC JALABERT Laurent 31 TEL ULLRICH Jan 8 Code équipe Nom Coureur Numéro coureur
  10. 10. Opérations spécifiques <ul><li>Jointure (suite) </li></ul><ul><ul><li>Notation : Coureur  Pays </li></ul></ul><ul><li> -jointure : jointure sous condition autre que l’égalité </li></ul>
  11. 11. Opérations spécifiques <ul><li>Division : relation composée des n-uplets tels que le produit cartésien avec le diviseur soit un sous-ensemble de la relation dividende (…?) </li></ul>Participer Epreuve Relation résultat de Particier  Epreuve Quels sont les athlètes qui ont participé à toutes les épreuves ?
  12. 12. a a b b c c x y x y x y Produit cartésien Sélection Projection Union Intersection Différence a b c x y
  13. 13. Remarques sur l'algèbre relationnelle <ul><li>L'algèbre relationnelle permet l‘étude des opérateurs entre eux (commutativité, associativité, groupe d'opérateurs minimaux,...) </li></ul><ul><ul><li>équivalence de certaines expressions </li></ul></ul><ul><ul><li>programmes d'optimisation qui transforment toute requête en sa forme équivalente la plus efficace </li></ul></ul><ul><li>L'opération de jointure est très coûteuse : proportionnelle au nombre de n-uplets (m*n pour deux relations jointes) </li></ul><ul><ul><li>toujours préférable de faire les restrictions le plus tôt possible afin de manipuler des tables les plus réduites possibles. </li></ul></ul>
  14. 14. <ul><li>Pourquoi une requête est-elle meilleure qu'une autre ? </li></ul><ul><ul><li>Une requête n'est pas l'unique solution d'un problème. </li></ul></ul><ul><ul><ul><li>efficacités différentes </li></ul></ul></ul><ul><ul><li>Exemple : </li></ul></ul><ul><ul><ul><li>Fournisseur ( N°fno , Nom, Adresse, Ville) </li></ul></ul></ul><ul><ul><ul><li>Produit ( N°prod , Designation, Prix, Poids, Couleur) </li></ul></ul></ul><ul><ul><ul><li>Commande ( N°comm , N°fno, N°prod, , Quantité) </li></ul></ul></ul><ul><ul><ul><li>Produit = 8 lignes * 5 colonnes * 10 char = 400 char </li></ul></ul></ul><ul><ul><ul><li>Commande = 10 lignes * 4 colonnes * 10 char = 400 char </li></ul></ul></ul><ul><ul><ul><li>Références, prix et quantités des produits commandés en plus de 10 exemplaires par commande ? </li></ul></ul></ul>
  15. 15. <ul><ul><li>R1= JOINTURE( Commande , Produit , Produit .N°prod = Commande .N°prod) </li></ul></ul><ul><ul><li>R2 = SELECTION(R1, Quantité > 10) </li></ul></ul><ul><ul><li>R3 = PROJECTION(R2, N°prod, Prix, Quantité) </li></ul></ul><ul><ul><ul><li>R1 = jointure sur la table Commande et la table Produit = 400*400 = 160 000 char </li></ul></ul></ul>
  16. 16. <ul><ul><li>R1 = PROJECTION(SELECTION( Commande , Quantité>10), N°prod, Quantité) </li></ul></ul><ul><ul><li>R2 = JOINTURE(R1, PROJECTION( Produit , N°prod, Prix), R1.N°prod = PROJ.N°prod) </li></ul></ul><ul><ul><li>R3 = PROJECTION(R2, N°prod, Prix, Quantité) </li></ul></ul><ul><ul><ul><li>R2 = jointure sur le couple (N°prod, Prix) de la table Produit = 8*2*10 = 160 char et sur le couple (N°prod, Quantité) de la table Commande = 2*2*10 = 40 char </li></ul></ul></ul><ul><ul><ul><ul><li>Total = 40*160 = 6400 char </li></ul></ul></ul></ul><ul><ul><ul><li>Gain de 75% (facteur 25) en taille mémoire </li></ul></ul></ul>
  17. 17. Clés d’une relation <ul><li>Clé primaire </li></ul><ul><ul><li>Colonne(s) dont les valeurs permettent de repérer une seule ligne. </li></ul></ul><ul><ul><li>Exemple : dans la table COUREUR, c’est la colonne Numéro_Coureur qui est la clé. </li></ul></ul><ul><li>Clé étrangère </li></ul><ul><ul><li>Colonne constituée de la clé primaire d’une autre table </li></ul></ul><ul><ul><li>Traduit l’existence d’un lien entre 2 tables </li></ul></ul>
  18. 18. Exercices <ul><li>CRU(NomCru,Commune,Région,Couleur) </li></ul><ul><li>VINS(Région,Couleur,Millésime,Qualité) </li></ul><ul><li>CEPAGE-REGION(Cépage,Couleur) </li></ul><ul><li>Req1 : Tous les crus ? </li></ul><ul><li>Réponse : CRU (!) </li></ul>
  19. 19. <ul><li>Req2 : Tous les crus rouges </li></ul><ul><li>La liste des noms de crus rouges” </li></ul>PROJECTION(SELECTION(CRU, couleur=rouge), NomCru)
  20. 20. Contraintes d'intégrité <ul><li>Un des outils les plus importants d'un SGBD </li></ul><ul><li>Contraintes de clé : </li></ul><ul><ul><li>Vérification de l'unicité des clés </li></ul></ul><ul><li>Contraintes de types de données : </li></ul><ul><ul><li>Vérification des types de données saisies (entiers, réels, dates, chaînes de caractères, booléens...) </li></ul></ul><ul><ul><li>Vérification des domaines de validité (entier compris entre 0 et 20 pour une note d‘étudiant,...) </li></ul></ul><ul><li>Contraintes d'intégrité référentielles : </li></ul><ul><ul><li>Vérification à partir des clés étrangères (la clé primaire associée n'existe pas, note d'un étudiant qui n'existe pas, conséquences d'une suppression d'une fiche,...) </li></ul></ul>

×