Algebre relationelle

7,513 views
7,750 views

Published on

Avant d'aborder le SQL

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,513
On SlideShare
0
From Embeds
0
Number of Embeds
879
Actions
Shares
0
Downloads
147
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Algebre relationelle

  1. 1. Le modèle relationnel 8Les structures de données 8Les règles d’intégrité structurelle 8L’algèbre relationnelle
  2. 2. Le modèle relationnelInventé par E. F. Codd en 1970Fondé sur la théorie mathématique desensembles et sur la notion de base qui luiest rattachée : la relation. 2
  3. 3. Objectifs d’un modèle relationnel: Rappel Proposer une indépendance des données et des traitements. Permettre de gérer les problèmes de cohérence et de redondance des données. Utiliser des structures de données simples et issues de la vie courante (tables). Proposer des langages de manipulation de données non procéduraux Permettre des vues utilisateurs différentes des relations implantées 3
  4. 4. Le modèle relationnel : Les 10 concepts clés (1/2)La définition du domaine d’un attributLe concept de relationLes attributsLes tuplesLe schéma d’une relation 4
  5. 5. Le modèle relationnel : Les 10 concepts clés (2/2)La cléLa contrainte référentielleLes valeurs nullesLa contrainte d’entitéLa contrainte de domaine 5
  6. 6. Les structures de données : Domaine d’un attributDéfinition : ensemble des valeurs prisespar un attributUn domaine se définit soit : • en extension 8ex. : couleur_yeux = {bleu, vert, marron, noir} • en compréhension 8ex. : âge_enfants = {0, 15} 6
  7. 7. Définition du produit cartésien: RappelSoient deux ensembles O et P, on appelleProduit cartésien de O et P, lensemblenoté O×P , des couples (x,y) où x∈O ety∈P. Étudiants={ A , T , M } Professeurs = { L , Y } Étudiants ×Professeurs={ (A,L) , (A,Y) , (T,L) , (T,Y) , (M,L) , (M,Y) } 7
  8. 8. Les structures de données : la relation Définition : Sous-ensemble du produit cartésien d’un ensembleNom de la relation d’attributs Attributs , champs PRODUIT N u m _ p ro d N o m _ p ro d Q té _ sto c k Occurrences , 24 C h a ise 63 Tuples, 141 T a b le 27 Enregistrements 67 L it 12Caractérisée par : ♦ Cardinalité de la relation (nombre de lignes) ♦ Unicité du nom des attributs ♦ Indifférence de l’ordre des lignes et des colonnes ♦ Nombre de colonnes = degré 8
  9. 9. Les structures de données : Schéma de relations4 Le schéma de relation représente la structure invarianted’une relation.4Il est constitué du nom de la relation suivi de la liste desattributs et de leurs domaines associésPRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0) Nom Attributs (clé) Attributs non clé relation (souligné) 9
  10. 10. Règles d’intégrité structurelleAssertions qui doivent être vérifiées par lesdonnées contenues dans la base. • Règles inhérentes au modèle relationnel 10
  11. 11. Règles d’intégrité structurelle du modèle relationnelUnicité de cléContrainte de référenceContrainte d’entitéContrainte de domaine 11
  12. 12. Clé d’une relationUne relation étant un ensemble de tuples, ilne peut y avoir deux tuples identiques dansune relation.Clé : ensemble minimal d’attributs dont laconnaissance des valeurs permet d’identifierun tuple unique 12
  13. 13. Contrainte référentielle(1/2)Contrainte d’intégrité portant sur une relation R1,consistant à imposer que la valeur d’un grouped’attributs apparaisse comme valeur de clé dansune autre relation R2. 8Elles définissent des liens obligatoires entre relations. 8Garantissent le succès des opérations de mise à jour. 13
  14. 14. Contrainte référentielle(2/2)Les contraintes de référence sont liées à la notion de clésétrangères : 8Lors de l’insertion d’un tuple dans une relation soumise à une contrainte référentielle (« relations référençantes ») , il faut vérifier que les valeurs de clés étrangères existent dans les relations référencées. 8Lors de la suppression d’un tuple dans une relation référencée, il faut vérifier qu’aucun tuple de la relation référençante ne fasse référence au tuple que l’on souhaite supprimer. – soit le SGBD refuse la suppression – soit il la répercute en cascade. 14
  15. 15. Contrainte d’entitéLorsque la valeur d’un attribut est inconnue,on utilise une valeur conventionnelle appeléevaleur nulleLa contrainte d’entité impose que touterelation possède une clé primaire et que toutattribut participant à cette clé primaire soitnon null. 15
  16. 16. Contrainte de domaineLes valeurs d’un attribut doivent vérifierune assertion logique 16
  17. 17. Algèbre relationnelle : DéfinitionCollection d’opérations formelles quiagissent sur des relations et produisent unerelation en résultat.Dans la plupart des systèmes relationnels,la réponse à une requête s’obtient parl’utilisation d’un ou plusieurs opérateursrelationnels. 17
  18. 18. Algèbre relationnelle : Opérateurs relationnels• Opérateurs unaires : 8Sélection 8Projection 8Complément• Opérateurs binaires : 8Union 8Intersection 8Différence Théorie des ensembles 8Les produits et Jointures 8Division 18
  19. 19. Algèbre relationnelle : Sélection (ou restriction) (1/3)Elimination des occurrences de la relation qui ne satisfontpas à une condition donnée. Ex. : Considérons la relation Commande N° COMMANDE DATE MONTANT 28 Octobre 1986 29 Octobre 2024 30 Novembre 1610 52 Décembre 512La sélection permet de répondre à la question : Donnez lescommandes passées après le mois d’octobre N° COMMANDE DATE MONTANT 30 Novembre 1610 52 Décembre 512La condition peut contenir plusieurs critères 19
  20. 20. Algèbre relationnelle : Sélection (ou restriction) (2/3)Opération sur une relation R1 produisant une relationR2 de même schéma, mais comportant les seulstuples qui vérifient la condition précisée enargument.Notation : σcondition (R1) R2=selection (R1,condition) 20
  21. 21. Algèbre relationnelle : Sélection (ou restriction) (3/3)Opérateurs de comparaison =, ≠, <, >, ≤, ≥, BETWEEN, IN, LIKECombinaison de plusieurs conditionsreliées par des opérateurs logiques : AND, OR, NOTValeurs NULL 21
  22. 22. Algèbre relationnelle : Projection (1/2) Consiste à supprimer des attributs d’une relation Soit la relation ETUDIANT : Num_étu Nom_étu Nom_départ Adr_départ 521 Nom1 Informatique Fes 632 Nom2 Mathématique Meknes 569 Nom3 Informatique Rabat 451 Nom1 Informatique RabatLa projection sur nom_étu, La projection sur nom_départ,nom_départ donne : adr_départ donne : Nom_étu Nom_départ Nom_départ Adr_départ Nom1 Informatique Nom2 Mathématique Informatique Fes Nom3 Informatique Mathématique Meknes Informatique Rabat 22
  23. 23. Algèbre relationnelle : Projection (2/2)Opération sur une relation R1 consistant àcomposer une relation R2 en enlevant à larelation initiale tous les attributs nonmentionnés en opérandes.Notation: π A1, A2, …, An (R1) R2=projection(R1;A1,A2,…,An) 23
  24. 24. Algèbre relationnelle : Complément (1/2)Consiste à construire la relation qui contient toutes les occurrencesqui n’existent pas (c’est la relation qui exprime le FAUX)Soit la Professeur Elève Le complément de R sera :relation R : Prof1 Nom2 Prof1 Nom1 Professeur Elève Prof2 Nom2 Prof2 Nom1 Prof1 Nom4 Prof3 Nom2 Prof2 Nom4 Prof3 Nom1 Prof3 Nom4 24
  25. 25. Algèbre relationnelle : Complément (2/2)Ensemble des tuples du produit cartésiendes domaines des attributs d’une relationn’appartenant pas à cette relationNotation: Not (R1) R2=Comp (R1) 25
  26. 26. Algèbre relationnelle : Union (1/2)Permet de fusionner deux relations en une seule.Cette opération n’est possible que sur des relations ayant lesmêmes attributs.Soit la relation OUVRIER Soit la relation CADRE Num_empl Nom_empl Num_empl Nom_empl 15 Nom1 3 Nom5 17 Nom3 21 Nom6 56 Nom2L’union permet de construire la relation EMPLOYE Num_empl Nom_empl 3 Nom5 21 Nom6 15 Nom1 17 Nom3 56 Nom2 26
  27. 27. Algèbre relationnelle : Union (2/2)Opération portant sur deux relations demême schéma R1 et R2, consistant àconstruire une relation de même schémaR3 ayant pour tuples ceux appartenant à R1ou (inclusif) R2.Notation: R1∪R2 R3=Union (R1,R2) 27
  28. 28. Algèbre relationnelle : Intersection (1/2)Permet de fournir des occurrences présentes dans l’une et l’autredes relations. Cette opération n’est possible que sur des relationsayant les mêmes attributs. Soit la relation INGENIEUR Soit la relation CHEF DE SERVICE Num_empl Nom_empl Num_empl Nom_empl 3 Nom5 Nom6 3 Nom5 21 Nom1 15 Nom1 15 Nom2 28 Nom4 56L’intersection permet de construire la relation suivante Num_empl Nom_empl 3 Nom5 15 Nom1 28
  29. 29. Algèbre relationnelle : Intersection (2/2)Opération portant sur deux relations demême schéma R1 et R2 consistant àconstruire une relation de même schémaR3 ayant pour tuples ceux appartenant à lafois à R1 et R2.Notation: R1 ∩ R2 R3=Intersection (R1,R2) 29
  30. 30. Algèbre relationnelle : Différence (1/2)Permet d’obtenir les occurrences de la relation 1 qui n’appartiennentpas à la relation 2. Les deux relations doivent avoir les mêmesattributs. Cette opération n’est pas commutative. Soit la relation INSCRITS Soit la relation RECUS Nom_étu Nom_UV Nom_étu Nom_UV Nom2 Maths Maths Nom2 Maths Nom5 Physique Nom5 Maths Nom2 Chimie Nom2 Chimie Nom2 Nom5 Chimie La différence permet de construire la relation suivante Nom_étu Nom_UV Nom2 Physique Nom5 Chimie 30
  31. 31. Algèbre relationnelle : Différence (2/2)Opération portant sur deux relations demême schéma R1 et R2, consistant àconstruire une relation de même schémaR3 ayant pour tuples ceux appartenant à R1et n’appartenant pas à R2.Notation : R1 – R2 R3=Difference(R1,R2) 31
  32. 32. Algèbre relationnelle : Produit cartésien (1/2)Le produit cartésien se construit en combinant toutes les possibilités.Soit la relation LIVRE Soit la relation EDITION Titre Auteur Couleur Edition X Nom2 Rouge Luxe Y Nom1 Blanc Broché Vert Cartonné Le produit cartésien permet de construire la relation suivante Titre Auteur Couleur Edition X Nom2 Rouge Luxe X Nom2 Blanc Broché X Nom2 Vert Cartonné Y Nom1 Rouge Luxe Y Nom1 Blanc Broché Y Nom1 Vert Cartonné 32
  33. 33. Algèbre relationnelle : Produit cartésien (2/2)Opération portant sur deux relation R1 etR2, consistant à construire une relation R3ayant pour schéma la concaténation deceux des relations opérandes et pour tuplestoutes les combinaisons des tuples desrelations opérandesNotation: R1 × R2 R3=Produit (R1,R2) 33
  34. 34. Algèbre relationnelle : Thêta-produit (thêta-jointure) (1/4) Le thêta-produit consiste en un produit cartésien doublé d’une sélection. On ne retient que les occurrences qui vérifient une condition logique. Thêta prend les valeurs : <, <=, >, >=, != ou <>Soit la relation EMPLOYE Soit la relation CHEF Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom2 25000 E2 10000 Nom1 12000 E3 6000 Le thêta-produit permet de répondre à la question : Donnez le nom des employés qui gagnent plus qu’un chef de service On effectue d’abord un produit cartésien puis une sélection dont la condition est salaire_emp > salaire_chef 34
  35. 35. Algèbre relationnelle : Thêta-produit (thêta-jointure) (2/4)Produit cartésien Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom2 25000 E1 20000 Nom1 12000 E2 10000 Nom2 25000 E2 10000 Nom1 12000 E3 6000 Nom2 25000 E3 6000 Nom1 12000Sélection Nom_emp Salaire_emp Nom_chef Salaire_chef E1 20000 Nom1 12000 35
  36. 36. Algèbre relationnelle : Thêta-produit (thêta-jointure) (3/4)Opérande consistant à rapprocher selon unecondition les tuples de deux relations R1 etR2 afin de former une relation R3 quicontient l’ensemble de tous les tuplesobtenus en concaténant un tuple de R1 etun de R2 vérifiant la condition derapprochement. 36
  37. 37. Algèbre relationnelle : Thêta-produit (thêta-jointure) (4/4)Notation: R1 θ condition R2 R3= θ-jointure(R1,R2; condition) 37
  38. 38. Algèbre relationnelle : Jointure naturelle (équijointure) (1/4)La jointure naturelle permet de réaliser une liaison logique entredeux tables. La condition de sélection est l’égalité entre les deuxclés des deux relations.C’est un thêta-produit qui prend la valeur " = " entre des attributsidentiques. Soit la relation EMPLOYE Soit la relation SERVICENum_emp Nom_emp Num_service Num_service Nom_service 02 Nom2 S1 S1 Informatique 10 Nom1 S8 S6 Mathématiques 72 Nom2 S6 S8 Sociologie 62 Nom4 S1 S4 Anglais 38
  39. 39. Algèbre relationnelle : Jointure naturelle (équijointure) (2/4)La jointure naturelle permet de répondre à la question : Donnez lenom des employés et le nom de leur service. Num_emp Nom_emp Num_service Nom_service 02 Nom2 S1 Informatique 10 Nom1 S8 Sociologie 72 Nom2 S6 Mathématiques 62 Nom4 S1 InformatiqueRq : Le service S4 Anglais qui n’a pas « d’associé », n’est pasprésent dans la jointure.La jointure naturelle est l’une des opérations fondamentales del’algèbre relationnelle. 39
  40. 40. Algèbre relationnelle : Jointure naturelle (équijointure) (3/4)Opérande consistant à rapprocher les tuplesde deux relations R1 et R2 afin de formerune troisième relation R3 dont les attributssont l’union des attributs de R1 et R2, etdont les tuples sont obtenus en composantun tuple de R1 et un tuple de R2 ayantmêmes valeurs pour les attributs de mêmenom. 40
  41. 41. Algèbre relationnelle : Jointure naturelle (équijointure) (4/4)Notation: R1 θ condition R2 R3=jointure(R1, R2; condition) 41
  42. 42. Algèbre relationnelle : Jointure externe (1/3)Il s’agit d’une jointure naturelle qui permet de faire figurer lesoccurrences qui n’ont pas « d’associé » dans l’autre relation. Onleur associe alors la valeur nulle (symbole ). Soit la relation EMPLOYE Soit la relation SERVICENum_emp Nom_emp Num_service Num_service Num_bâtiment 02 emp1 S1 S1 B8 10 emp2 S8 S6 B9 72 emp1 S6 S8 B3 62 emp3 S1 S4 B3 25 emp4 S5 S2 B1 42
  43. 43. Algèbre relationnelle : Jointure externe (2/3)La jointure extérieure conduit à la relation : Num_emp Nom_emp Num_service Num_bâtiment 02 emp1 S1 B8 10 emp2 S8 B3 72 emp1 S6 B9 62 emp3 S1 B8 25 emp4 S5    S4 B3   S2 B1 43
  44. 44. Algèbre relationnelle : Jointure externe (3/3)R3 contient les tuples issus de la jointurede R1 et R2 ainsi que ceux de R1 et R2 neparticipant pas à la jointure, avec desvaleurs nulles pour les attributs nonrenseignés. 44
  45. 45. Algèbre relationnelle : Jointure externe gauche (1/3)Permet de faire apparaître en totalité les occurrences d’une desdeux relations.On définira une semi-jointure gauche ou une semi-jointure droite. Exemple de semi-jointure droite : Soit la relation EMPLOYE Soit la relation SERVICE Num_emp Nom_emp Num_service Num_service Num_bâtiment 02 emp1 S1 S1 B8 10 emp2 S8 S6 B9 72 emp1 S6 S8 B3 62 emp3 S1 S4 B3 25 emp4 S5 S2 B1 45
  46. 46. Algèbre relationnelle : Jointure externe gauche (2/3)Le résultat de la semi-jointure gauche donne le résultat suivant : Num_emp Nom_emp Num_service Num_bâtiment 02 emp1 S1 B8 10 emp2 S8 B3 72 emp1 S6 B9 62 emp3 S1 B8 25 emp4 S5 _ 46
  47. 47. Algèbre relationnelle : Jointure externe gauche (3/3)Opération portant sur R1 et R2 donnant enrésultat les tuples de R1 qui participent à lajointure des deux relations 47
  48. 48. Algèbre relationnelle : Auto-jointure (1/2)C’est une jointure naturelle dans laquelleles deux relations initiales sont R1 et R1.Soit la relation EnseignantNum_ens Nom_ens Grade Salaire 12 emp1 Assistant 9 500 56 emp2 MDC 10 500 27 emp1 Assistant 11 500 43 emp3 MDC 12 000 51 emp4 MDC 12 500 48
  49. 49. Algèbre relationnelle : Auto-jointure (2/2)L’auto-jointure permet de répondre à laquestion suivante : « Donnez le nom desassistants qui gagnent plus qu’un MDC ? »Relation résultat Nom_ens emp1 49
  50. 50. Algèbre relationnelle : Division (1/3) Permet d’obtenir les occurrences de R1 qui sont associées à toutes les occurrences de R2. Une relation est donc divisée par une autre relation contenant exclusivement des attributs de la première relationSoit la relation suivante Soit la relation suivante Nom_étu Nom_prof Nom_étu Etu1 Prof3 Etu1 Etu2 Prof1 Etu2 Etu3 Prof3 Etu4 Prof4 Etu1 Prof1 Etu2 Prof3 Etu3 Prof4 50
  51. 51. Algèbre relationnelle : Division (2/3)La division permet de répondre à la question suivante :Donnez le nom des profs qui enseignent conjointement auxélèves figurant dans la seconde relation. La relation résultat est : Nom_prof Prof3 Prof1 51
  52. 52. Algèbre relationnelle : Division (3/3)Notation R1 ÷ R2 52
  53. 53. Fonctions de calcul (1/2)Expression arithmétique construite à partird’attributs d’une relation, de constantes,d’opérateurs arithmétiques et de fonctions 8Opérateurs arithmétiques + - / * 8Fonctions » somme » moyenne » maximum, minimum » compte 53
  54. 54. Fonctions de calcul (2/2)Ces fonctions sont liées à une opération • Par exemple, avec une projection on a : π A1, A2*A4-10 (R1) 54
  55. 55. Les agrégats (1/2)Partitionnement horizontal d’une relationen fonction des valeurs d’un grouped’attributs, suivi d’un regroupement desvaleurs de chaque groupe par applicationd’une fonction de calcul. 55
  56. 56. Les agrégats (2/2) Notation : Agrégat (R1 ; attribut de regroupement ; attribut de calcul) • CumulR = cumul(relation, attribut de regroupement, attribut de calcul)OuR=regrouper_calculer (relation,attribut de regroupement, cumul(attribut de calcul)) • CompteR = compte(relation, attribut de regroupement) 56

×