Algèbre relationnelle
Concepts Descriptifs : Bilan RELATION ou TABLE ATTRIBUT ou COLONNE DOMAINE ou TYPE CLE CLE ETRANGERE
Langages de manipulation Langages formels : base théorique solide Langages utilisateurs : version plus ergonomique Langages procéduraux : définissent comment dériver le résultat souhaité Langages assertionnels (ou déclaratifs) : définissent le résultat souhaité
LMD classiques Langages formels langages algébriques : définissent un ensemble d opérateurs de manipulation langages prédicatifs (calcul) : définissent le résultat souhaité en utilisant des expressions de logique Langages utilisateurs inspirés principalement des langages algébriques : SQL inspirés des langage prédicatifs : QBE, QUEL
Opérations de base L algèbre relationnelle inventée par E.Codd comme une collection d opérations formelles qui agissent sur des relations et produisent les relations en résultats. AR est aux relations ce qu est l arithmétique aux entiers Une des forces essentielles du modèle Codd a introduit 8 opérations, certaines peuvent être composées à partir d autres 6 opérations (opérations de base) Deux types : Les opérations ensemblistes traditionnelles Les opérations spécifiques
Opérations Ensemblistes OPERATIONS ENSEMBLISTES POUR DES RELATIONS DE MEME SCHEMA UNION notée Produit cartésien notée X DIFFERENCE notée OPERATIONS BINAIRES Relation X Relation --> Relation EXTENSION Union externe pour des relations de schémas différents Ramener au même schéma avec des valeurs nulles
Opérations Ensemblistes Union Opération portant sur deux relations de même schéma RELATION1 et RELATION2 consistant à construire une relation de même schéma RELATION3 ayant pour tuples ceux appartenant à RELATION1 et RELATION2 ou aux deux relations. Plusieurs notations : RELATION1 RELATION2 UNION (RELATION1, RELATION2) APPEND (RELATION1, RELATION2)
Opérations Ensemblistes Union Opération ensembliste notée Deux relations avec le même schéma Résultat = les tuples des deux relations (sans les doublons)
nom prénom nom prénom Durand Paul Juny Carole Dupont Caroline Dupont Corinne Dupont Corinne Personne1 nom prénom Fourt Lisa Personne2 Durand Paul Dupont Caroline Dupont Corinne Juny Carole Fourt Lisa Personne1 Personne2
Opérations Ensemblistes Différence Opération portant sur deux relations de même schéma RELATION1 et RELATION2 consistant à construire une relation de même schéma RELATION3 ayant pour tuples ceux appartenant à RELATION1 et n appartenant pas à RELATION2. Plusieurs notations : RELATION1 - RELATION2 DIFFERENCE (RELATION1, RELATION2) REMOVE (RELATION1, RELATION2) MINUS (RELATION1, RELATION2)
Opérations Ensemblistes Différence nom prénom nom prénom Durand Paul Juny Carole Dupont Caroline Dupont Corinne Dupont Corinne Fourt Lisa Personne 1 Personne 2 nom Durand Dupont prénom Paul Caroline Personne 1 Personne 2
Opérations Ensemblistes Produit cartésien Opération portant sur deux relations de même schéma RELATION1 et RELATION2 consistant à construire une relation de même schéma RELATION3 ayant pour schéma la concaténation de ceux des relations opérandes et pour tuples toutes les combinaisons des tuples des relations opérandes Plusieurs notations : RELATION1 X RELATION2 PRODUCT (RELATION1, RELATION2) TIMES (RELATION1, RELATION2)
Opérations Ensemblistes Produit cartésien
Opérations Ensemblistes Produit cartésien Opération binaire Sémantique : chaque tuple de R est combiné avec chaque tuple de S Schéma : schéma (R X S) = schéma(r) schéma(s) Précondition : R et S n ont pas d attributs de même nom (sinon, renommage des attributs avant de faire le produit)
Opérations Ensemblistes Produit cartésien nom prénom Durand Caroline Dupont Rose-Marie BonneAmie article prix collier 1000 roses 20 Cadeau nom prénom article prix Durand Caroline collier 1000 Durand Caroline roses 20 Dupont Rose-Marie collier 1000 Dupont Rose-Marie roses 20 Bonne Amie Cadeau
Opérations spécifiques Projection Opération sur une relation RELATION1 consistant à composer une relation RELATION2 en enlevant une à la relation initiale tous les attributs non mentionnés en opérandes et en éliminant les tuples en double qui sont conservés une seule RESULTAT fois RELATION
Opérations spécifiques Projection Opération unaire, notée π Elimination des attributs non désirés Exemple : π ETUDIANT, NUM_ETUDIANT, NOM_ETU Résultat : R(NUM_ETUDIANT, NOM_ETU)
Opérations spécifiques Projection numéro nom prénom 5 Durand Caroline 1 Germain Stan 12 Dupont Lisa 3 Germain Rose-Marie Personne prénom Caroline Stan Lisa Rose-Marie π prénom Personne
Opérations spécifiques Projection Projection sur les attributs Marque et Puissance numéro marque Puissance 902FEE Renault 7 434FR Renault 5 5647GT Peugeot 5 5643ER Citroen 9
Opérations spécifiques Restriction Opération sur une relation RELATION1 consistant à composer une relation RELATION2 de même schéma, mais comportant les seuls tuples qui vérifient la conition précisé en argument. <Attribut> <Opérateur> <Valeur> Opérateur parmi {=,<,,,,>, }
Opérations spécifiques Restriction σ[ nom=capitale ] Pays Pays dont le nom est le même que celui de sa capitale σ [ (surface>100 V surface<500) A(population>30 V population<300) ] Pays Pays dont la surface est comprise entre 100 et 500 ou dont la population est comprise entre 30 et 300 σetudiant, ADRESSE= " Dijon" Résultat : tous les étudiants de Dijon
Opérations spécifiques Restriction numéro nom prénom 5 Durand Caroline 1 Germain Stan 12 Dupont Lisa 3 Germain Rose-Marie numéro nom prénom 5 Durand Caroline 12 Dupont Lisa σ numéro 5 Personne Personne
Opérations spécifiques Restriction Restriction sur l' attribut marque= ' Renault' numéro marque Puissance 902FEE Renault 7 434FR Renault 5 5647GT Peugeot 5 5643ER Citroen 9
Opérations spécifiques Sélection Opération unaire notée σ La sélection génère une relation regroupant exclusivement toutes les occurrences de la relation R qui satisfont l expression logique E σ R
Opérations spécifiques Combinaison des opérations Les opérations de restriction et de projection peuvent se combiner pour réaliser des traitements plus élaborés sur des relations (sélection) numéro marque Puissance 902FEE Renault 7 434FR Renault 5 5647GT Peugeot 5 5643ER Citroen 9
Opérations spécifiques Jointure Une des opérations essentielles dans l algèbre relationnelle Opération consistant à rapprocher selon une condition les tuples de deux relations RELATION1 et RELATION2 afin de former une troisième relation RELATION3 qui contient l ensemble de tous les tuples obtenus en concaténant un tuple de RELATION1 en un tuple de RELATION2 vérifiant la condition de rapprochement Condition du type : <Attribut1> <opérateur> <Attribut2> L equi-jointure (critère de restriction est l'égalité) L inéqui-jointure sinon
Opérations spécifiques Jointure naturelle Une équijointure qui se fait sur la clé d'une relation et la référence à cette clé dans l'autre relation Exemple relations Vehicule(NV,Marque,Puiss,Couleur,NomCond) Personne(Nom,prénom,Adresse,Age) La jointure se fait sur le critère Nom=NomCond Les attributs en double ne sont représentés qu'une seule fois.
Opérations spécifiques Jointure naturelle Opération binaire notée prédicat Composition de deux relations sur un domaine commun, avec un prédicat de jointure Exemple : LIVRE LIVRE.NUM_LIVRE=EXEMPLAIRE.NUM_LIVRE EXEMPLAIRE Résultat : R(même schéma que le produit cartésien) contenant tous les tuples satisfaisant le prédicat
Exemple Jointure Nom Prénom Numéro avocat R1 = Collard Bebert 1 Vergès Jacquy 2 R2 = Numéro avocat Procès Résultat 1 HLM Perdu 2 Serial Killer Gagné 1 Outreau Perdu 2 Du siècle Gagné R1R2 = Nom Prénom Numéro avocat Procès Résultat Collard Bebert 1 HLM Perdu Vergès Jacquy 2 Serial Killer Gagné Collard Bebert 1 Outreau Perdu Vergès Jacquy 2 Du siècle Gagné 29/19
Exemple jointure Numéro Marque Puissance couleur NomCond 902FE Renault 7 Rouge Dupond 434FR Renault 5 Noir Martin 5647GT Peugeot 5Vert Martin Nom Prénom Adresse Age Dupond Paul Paris 25 Dupont Jacques Paris 23 Martin Georges Lyon 47 Durand Olivier Dijon 32 Toule Ange Marseille 31
Exemple jointure Numéro Marque Puissa couleur NomCond Prénom Adresse Age 902FE Renault 7 Rouge Dupond Paul Paris 25 434FR Renault 5 Noir Martin Georges Lyon 47 5647GT Peugeot 5 Vert Martin Georges Lyon 47
Semi-jointure Une semi-jointure est une jointure dont on ne garde que les attributs de l'une des deux relations jointes Une semi-jointure peut être assimilée à une restriction d'une relation à l'aide des valeurs d'un attribut d'une relation. Exemple : les personnes conduisant un véhicule.
Opérations dérivées Semi-Jointure Cru M il Qualité Volnay 1983 A Volnay 1979 B Chablis 1983 A Julienas 1986 C Cru Region Q ualm oy Volnay Bourgogne A Chablis Bourgogne A Chablis Californie B Cru M il Qualité Volnay 1983 A Volnay 1979 B Chablis 1983 A
Opérations dérivées Jointure externe Opération générant une relation RELATION3 à partir de deux relations RELATION1 et RELATION2 par jointure de ces deux relations et ajout des tuples de RELATION1 et RELATION2 ne participant pas la jointure, avec des valeurs nulles pour les attributs de l autre relation.
Opérations dérivées Jointure externe Cru M il Qualité Volnay 1983 A Volnay 1979 B Julienas 1986 C Cru Region Q ualm oy Volnay Bourgogne A Chablis Bourgogne A Chablis Californie B Cru M il Q ualité Region Q ualm o Volnay 1983 A Bourgogn y A Volnay 1979 B e Bourgogn A Chablis - - e Bourgogn A Chablis - - e Californie B Julienas 1986 C - -
Opérations dérivées Intersection Utilisés pour manipuler des relations Peuvent être obtenues par combinaison des opérations précédentes Opération classique de la théorie des ensembles adaptée aux relations de même schéma Opération portant sur deux relations de même schéma RELATION1 et RELATION2 consistant à construire une relation de même schéma RELATION3 ayant pour tuples ceux appartenant à la fois à RELATION1 et RELATION2.
Opérations dérivées Intersection Opération ensembliste notée Deux relations A et B avec le même schéma Résultat = les tuples qui sont dans A et dans B
nom prénom nom prénom Durand Paul Juny Carole Dupont Caroline Dupont Corinne Dupont Corinne Personne1 Fourt Lisa Personne2 nom prénom Dupont Corinne Personne1 Personne2
Opérations dérivées Intersection Plusieurs notations : INTERSECT (RELATION 1, RELATION 2) AND (RELATION 1, RELATION 2) Opération redondante avec les opérations de base, il est possible de l obtenir : INTERSECT (RELATION 1, RELATION 2) = RELATION 1- (RELATION 1, RELATION 2)
Opérations dérivées Division Permet de rechercher dans une relation les sous-tuples qui sont complétés par tous ceux d une autre relation Opération consistant à construire le quotient de la relation D(A1,A2.Ap,Ap+1, An) par la relation d(ap+1, An) comme la relation Q(A1,A2.Ap) dont les tuples sont ceux qui concaténés à tout tuple de d donnent un tuple de D. D d Division (D,d)
Opérations dérivées Division Cru M il Qualité Volnay 1983 A Volnay 1979 B Chablis 1983 A Chablis 1979 A Julienas 1986 A M il Qualité 1983 A 1979 A QUALITE VINS Cru CHABLIS CRU
Opérations dérivées Complément Ensemble des tuples du produit cartésien des domaines des attributs d une relation n appartenant pas à cette relation. Notation : NOT (RELATION1) COMP (RELATION1)
Opérations dérivées Complément Domaines : CRU = {Chablis, Volnay, Médoc} COULEUR= {Rouge, Rosé, Blanc} CRU Couleur CRU Couleur CHABLIS ROUGE CHABLIS BLANC CHABLIS ROSE VOLNAY ROSE VOLNAY ROUGE VOLNAY BLANC VOLNAY ROSE MEDOC ROUGE MEDOC BLANC
Opérations dérivées Eclatement Opération consistant à créer deux à partir d une relation RELATION1 et d une condition, la première contenant les tuples de RELATION1 et la deuxième ceux ne la vérifiant pas.
Opérations dérivées Fermeture transitive Opération sur une relation R à deux attributs (A1,A2) de même domaine consistant à ajouter à R tous les tuples qi se déduisent successivement par transitivité, c est-à-dire si l on a des tuples <a,b> et <b,c>, on ajoute <a,c>
Opérations dérivées Fermeture transitive PARENT Pierre Jeanne Paul Yves ENFANT Paul Paul Yves Jean Ascendant Pierre Jeanne Paul Yves Pierre Descenda nt Paul Paul Yves Jean Yves Jeanne Yves Pierre Jean Jeanne Jean Paul Jean
GRAPH E DES REQ UETES REPRESENTATION GRAPHIQUE DE LA REQUETE Prédicat Attributs X Prédicat de Jointure Restriction Projection P roduit J ointure Dif férence Union Intersection Division
Les expressions de l algèbre relationnelle
Langage algébrique Question 1 : Donner les degrés de vins de crus Morgan et de Millésime 1978 R1= RESTRICT (VINS, CRUS=MORGAN) R2= RESTRICT (VINS, MILLESIME=1978) R3= INTERSECT (R1,R2) RESULTAT=PROJECT(R3,DEGRE)
Langage algébrique Question 2 : Donner les noms et prénoms des buveurs de Morgan ou Chenas R1= RESTRICT (VINS, CRUS=MORGAN) R2= RESTRICT (VINS, CRUS=CHENAS) R3= UNION (R1,R2) R4=JOIN(R3,ABUS) R5=JOIN(R4,BUVEURS) RESULTAT=PROJECT(R5,NOM,PRENOM)
Langage algébrique Question 3 : Donner les noms et adresses des buveurs ayant bu plus de 10 bouteilles de Chablis 1976 avec le degré de ce vin : R1= RESTRICT (ABUS, QUANTITE>10) R2= RESTRICT (VINS, CRUS=CHABLIS) R3= RESTRICT (VINS, MILLESIME=1976 R4=INTERSECT(R2,R3) R5=JOIN(R1,R4) R6=PROJECT(R5,NB, DEGRE) R7=JOIN(R6,BUVEURS) RESULTAT=PROJECT(R7,NOM,ADRESSE,DEGR E)
Langage algébrique Question 4 : Donner les noms des buveurs n ayant bu que du Morgan R1=JOIN(BUVEURS,ABUS,VINS) R2=RESTRICT(R1,CRU=MORGAN) R3=PROJECT(R2,NOM) R4=RESTRICT(R1,CRU MOGAN) R5=PROJECT(R1,NOM) RESULTAT=MINUS(R3-R5)
Arbre algébrique Arbre dont les nœuds correspondent à des opérations de l algèbre relationnelle et les arcs à des relations de base ou temporaires représentant des flots de données entre opérations Noms et prénoms des buveurs habitant Paris ayant bu du Chablis depuis l 1 er Janvier.
Arbre algébrique Résultat B. Nom,B. Prenom A. Date > = 01. 01. 92 V. Cru = Chablis B. NB A. NB B. Adresses LIKE Paris A. NV V. NV = ABUS A VINS V Buveurs B