Algèbre relationnelle - 1 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle
Algèbre relationnelle - 2 / Djamel Berrabah Bases de données relationnelles Modèle (de données) relationnel organise les données dans des tables ou relations Avantages : « Relation » est un concept simple avec des fondements mathématiques solides (théorie des ensembles, logique du premier ordre) On peut définir des langages de requêtes simples, puissants et efficaces (techniques d’optimisation performantes) On a une théorie pour la conception (dépendances fonctionnelles)
Algèbre relationnelle - 3 / Djamel Berrabah EMP(ENO, ENAME, TITLE) PROJ (PNO, PNAME, BUDGET) WORKS(ENO,PNO, RESP, DUR) PAY(TITLE, SALARY) Les attributs soulignés sont les clés (identificateurs de n-uplets) Schéma relationnel (exemple) ENO EMP ENAMETITLE PROJ PNOPNAMEBUDGET RESP WORKS PNOENODUR PAY SALARYTITLE
Algèbre relationnelle - 4 / Djamel Berrabah BD relationnelle (exemple) ENOENAMETITLE E1J. DoeElect. Eng. E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP ENOPNORESP E1P1Manager12 DUR E2P1Analyst24 E2P2Analyst 6 E3P3Consultant10 E3P4Engineer48 E4P2Programmer18 E5P2Manager24 E6P4Manager48 E7P3Engineer36 E8P3Manager40 WORKS E7P5Engineer23 PROJ PNOPNAMEBUDGET P1Instrumentation P3CAD/CAM P2Database Develop P4Maintenance P5CAD/CAM TITLESALARY PAY Elect. Eng Syst. Anal Mech. Eng Programmer60000
Algèbre relationnelle - 5 / Djamel Berrabah Propriétés du modèle relationnel Fondement théorique : théorie des ensembles pas d'ordre entre les attributs (noms) pas d'ordre entre les n-uplets (exception SQL : le résultat d’une requête peut être trié) pas de n-uplets dupliqués (exception SQL) Les valeurs d'attributs sont atomiques : entiers, chaînes de caractères, date, … pas de constructeurs de types complexes : struct, listes, set … Degré ou arité d’une relation = nombre d'attributs Cardinalité d’une relation = nombre de n-uplets
Algèbre relationnelle - 6 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle
Algèbre relationnelle - 7 / Djamel Berrabah Interrogation d’une base de données relationnelle Langages algébriques : Une requête est une composition d’opérations : algèbre relationnelle Langages logiques : Une requête est exprimée par une formule logique : calcul relationnel SQL : sémantique (logique) : calcul relationnel évaluation (opérations) : algèbre relationnelle
Algèbre relationnelle - 8 / Djamel Berrabah Opérateurs unaires : Résultat> Opérateurs binaires : Résultat > Langage fermé : les opérandes et les résultats sont toujours des relations composition d’opérations Algèbre relationnelle
Algèbre relationnelle - 9 / Djamel Berrabah Opérateurs de base : sélection projection produit cartésien opérations ensemblistes: union, différence renommage Opérateurs dérivés : intersection jointure division Opérateurs de l'algèbre relationnelle
Algèbre relationnelle - 10 / Djamel Berrabah Sélection d’un sous-ensemble de la relation opérande : F (R) R est une relation F est une formule logique sans quantificateur composée de opérandes: constantes et attributs opérateurs de comparaison : opérateurs logiques : , , ¬ Résultat : sous-ensemble des n-uplets de R qui satisfont la formule F Sélection
Algèbre relationnelle - 11 / Djamel Berrabah Exemple de sélection ENOENAMETITLE E1J. DoeElect. Eng E6L. ChuElect. Eng. TITLE='Elect. Eng.' (EMP) ENOENAMETITLE E1J. DoeElect. Eng. E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP
Algèbre relationnelle - 12 / Djamel Berrabah Projection sur un ensemble d’attributs d'une relation A 1,…,A n (R) R est une relation, {A 1,…, A n } est un sous-ensemble des attributs de R Résultat : ensemble de n-uplets de R sans les attributs (colonnes) qui ne se trouvent pas dans {A 1,…, A n } Projection
Algèbre relationnelle - 13 / Djamel Berrabah Exemple de projection PNO,BUDGET (PRO J) PNOBUDGET P P P P P PROJ PNOBUDGET P P P P PNAME P Instrumentation Database Develop. CAD/CAM Maintenance CAD/CAM PNAME (PROJ ) PNAME Instrumentation Database Develop. CAD/CAM Maintenance Note: La projection élimine les n-uplets doublons (sémantique ensembliste). SQL garde les doublons.
Algèbre relationnelle - 14 / Djamel Berrabah Produit cartésien entre deux tables : R S R est une table de degré k 1, cardinalité n 1 S est une table de degré k 2, cardinalité n 2 Résultat : relation de degré (k 1 + k 2 ) et contient (n 1 * n 2 ) n- uplets, où chaque n-uplet est la « concaténation » d'un n- uplet de R avec un n-uplet de S. Produit cartésien
Algèbre relationnelle - 15 / Djamel Berrabah Exemple de produit cartésien ENOENAMEEMP.TITLEPAY.TITLESALARY E1J. DoeElect. Eng. E1J. DoeElect. Eng. E1J. DoeElect. Eng. E1J. DoeElect. Eng Syst. Anal Mech. Eng Programmer60000 E2M. SmithSyst. Anal. E2M. SmithSyst. Anal. E2M. SmithSyst. Anal. E2M. SmithSyst. Anal. Elect. Eng Syst. Anal Mech. Eng Programmer60000 Elect. Eng Syst. Anal Mech. Eng Programmer60000 Elect. Eng Syst. Anal Mech. Eng Programmer60000 E3A. LeeMech. Eng. E3A. LeeMech. Eng. E3A. LeeMech. Eng. E3A. LeeMech. Eng. E8J. JonesSyst. Anal. E8J. JonesSyst. Anal. E8J. JonesSyst. Anal. E8J. JonesSyst. Anal. EMP PAY ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP TITLESALARY PAY Elect. Eng Syst. Anal Mech. Eng Programmer60000
Algèbre relationnelle - 16 / Djamel Berrabah Union ensembliste entre deux tables : R S R et S sont des relations compatibles pour l’union (même arité et domaines d’attributs) Résultat : n-uplets qui sont dans R ou dans S Union
Algèbre relationnelle - 17 / Djamel Berrabah Différence Différence ensembliste entre deux tables : R – S R et S sont des relations compatibles pour l’union. Résultat : n-uplets qui sont dans R, mais pas dans S
Algèbre relationnelle - 18 / Djamel Berrabah Renommage de plusieurs attributs d’une table : A 1,…,A n B 1,…,B n (R) R est une relation {A 1,…, A n } est un sous-ensemble des attributs de R {B 1,…, B n } est un ensemble d’attributs Résultat : une relation avec les mêmes n-uplets (le même contenu) où chaque attribut A i a été renommé en B i Renommage
Algèbre relationnelle - 19 / Djamel Berrabah Exemple de renommage EMP(ENO, TITLE, ENAME) TITLE,ENAME JOB, NOM (EMP) change le schéma de la relation EMP en EMP (ENO, NOM, JOB) ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP ENONOMJOB E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP
Algèbre relationnelle - 20 / Djamel Berrabah Opérateurs de base : sélection projection produit cartésien opérations ensemblistes: union, différence renommage Opérateurs dérivés : intersection jointure division Opérateurs de l'algèbre relationnelle
Algèbre relationnelle - 21 / Djamel Berrabah Intersection Intersection de deux tables: R S= R – (R – S) R, S sont deux tables compatibles pour l'union. Résultat : ensemble de n-uplets qui se trouvent à la fois dans R et dans S
Algèbre relationnelle - 22 / Djamel Berrabah Jointure entre deux tables R et S : R F S = F (R S) R et S sont des relations (sans attributs en commun) F est une formule logique composée d’atomes de la forme A i B j où { . Résultat : sous-ensemble des n-uplets dans le produit cartésien R S qui satisfont la formule F Jointure
Algèbre relationnelle - 23 / Djamel Berrabah Exemple de jointure ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP EMP EMP.ENO=WORKS.ENO CONTR<DUR WORKS ENOPNORESP E1P1Manager12 DUR E2P1Analyst24 E2P2Analyst 6 E3P3Consultant10 E3P4Engineer48 E4P2Programmer18 E5P2Manager24 E6P4Manager48 E7P3Engineer36 E8P3Manager40 WORKS E7P5Engineer23 EMP. ENAME TITLE WORKS. PNO RESP DUR CONTR ENO. ENO CONTR E2M. Smith E3A. Lee E6L. Chu E8J. Jones E2 E3 E6 E8 P1 P4 P3 Syst. Anal. Mech. Eng. Elect. Eng. Syst. Anal. Manager2412 Engineer4812 Manager4836 Manager4012
Algèbre relationnelle - 24 / Djamel Berrabah -jointure la formule F utilise les comparaisons Equi-jointure la formule F n'utilise que l‘égalité : = R R.A=S.B S Jointure naturelle : R(X,Y), S(X, Y’) Equi-jointure où on élimine les attributs en communs R S = R.X, R.Y, S.Y’ F (R S) = S.X, R.Y, S.Y’ F (R S) la condition de jointure F est R.X = S.X (X représente tous les attributs en commun entre R et S) Types de jointure
Algèbre relationnelle - 25 / Djamel Berrabah Exemple de jointure naturelle ENOENAMETITLE SALARY E1J. DoeElect. Eng M. Smith70000E2Analyst E3A. LeeMech. Eng E4J. MillerProgrammer60000 E5B. CaseySyst. Anal E6L. ChuElect. Eng E7R. DavisMech. Eng E8J. JonesSyst. Anal ENOENAMETITLE E1J. DoeElect. Eng E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP TITLESALARY PAY Elect. Eng Syst. Anal Mech. Eng Programmer60000 EMP PAY
Algèbre relationnelle - 26 / Djamel Berrabah Division Soient les relations R et S tels que le schéma de S contient tous les attributs de R R(A 1,…,A k,A k+1,…,A k+n ) est de degré k+n et S(A 1,…,A k ) de degré k. La division de R par S : T(A k+1,…,A k+n )= R ÷ S est la « plus grande » relation de degré n telle que T S R.
Algèbre relationnelle - 27 / Djamel Berrabah Exemple de division ENOPNOPNAME E1P1Instrumentation BUDGET E2P1Instrumentation E2P2Database Develop E3P4Maintenance E4P2Instrumentation E5P2Instrumentation E6P4 E7P3CAD/CAM E8P3CAD/CAM EMP Maintenance E3P1Instrumentation ENO E3 EMP÷PROJ PROJ PNOBUDGET P P P PNAME P Instrumentation Database Develop. CAD/CAM Maintenance E3P2Database Develop E3P3CAD/CAM250000
Algèbre relationnelle - 28 / Djamel Berrabah Expression de la division x1 y1 x2 y1 x3 y1 x4 y1 x1 y2 x3 y2 x2 y3 x3 y3 x4 y3 x1 y4 x2 y4 x3 y4 X Y R x1 x2 x3 X S y1 y4 T Y T 1 Y (R) T 2 Y ((S T 1 ) R) T T 1 T 2
Algèbre relationnelle - 29 / Djamel Berrabah Emp (Eno, Ename, Title, City) Pay(Title, Salary) Project(Pno, Pname, Budget, City) Works(Eno, Pno, Resp, Dur) Villes où il y a des employés ou des projets? City (Emp) City (Project) Villes où il y a des projets mais pas d'employés? City (Project) City (Emp) Requêtes algébriques
Algèbre relationnelle - 30 / Djamel Berrabah Emp (Eno, Ename, Title, City) Project(Pno, Pname, Budget, City) Pay(Title, Salary) Works(Eno, Pno, Resp, Dur) Noms des projets de budget > 225? Pname ( Budget>225 (Project)) Noms et budgets des projets où travaille l'employé E1? Pname, Budget (Project ( Eno=‘E1’ (Works))) Pname, Budget ( Project.Pno=Works.Pno (Project Eno=‘E1’ (Works))) Employés qui travaillent dans chaque projet? Eno, Pno (Works) ÷ Pno (Project) Requêtes algébriques
Algèbre relationnelle - 31 / Djamel Berrabah Arbre algébrique Utile pour manipuler les requêtes (optimisation, vues) Exemple Pname, Budget (Project ( Eno=‘E1’ (Works))) Works Eno=‘E1’ Project Pname, Budget
Algèbre relationnelle - 32 / Djamel Berrabah Conclusion : algèbre relationnelle L’algèbre relationnelle définit un ensemble d’opérations pour interroger une BD relationnelle Les opérations peuvent être composées pour former des requêtes complexes Avantage : facilite l’implantation d’un moteur de requêtes Inconvénient : sémantique “opérationnelle” L’algèbre « cache » la sémantique formelle (ensembliste) du modèle relationnel calcul relationnel
Algèbre relationnelle - 33 / Djamel Berrabah Mise à jour d'une BD relationnelle Avec les opérateurs relationnels Insertion de n-uplets = union de la relation contenant les n- uplets à insérer avec la relation déjà existante dans la base Suppression de n-uplets = différence entre la relation existante dans la base et la relation contenant les n-uplets à supprimer Modification = suppression suivie d'une insertion