Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL
Langage de manipulation de données
Langage de manipulation de données Ensemble de commandes permettant : Ensemble de commandes permettant : –modifier la base : ajout, modification et suppression –interroger la base ex : donner le nom des personnes qui habitent à Parisex : donner le nom des personnes qui habitent à Paris Trois grandes classes de LMD relationnels : Trois grandes classes de LMD relationnels : –Les langages algébriques : –Les langages issus de lalgèbre relationnelle de Codd : SQL (Structured Query Language) ex : select NOM from PERSONNEL where VILLE= PARISex : select NOM from PERSONNEL where VILLE= PARIS –Langages prédicatifs : Systèmes Ingres QUEL (QUEry Language) Access QBE (Query By Example)
Opérateurs dextraction de données Sélection dun sous ensemble dattributs : projection Sélection dun sous ensemble dattributs : projection Sélection de n-uplets vérifiant un critère : sélection Sélection de n-uplets vérifiant un critère : sélection Association de plusieurs relations : jointure Association de plusieurs relations : jointure Combinaison de relations de même schéma : booléens Combinaison de relations de même schéma : booléens Construction de toutes les combinaisons de n- uplets entre deux relations : produit Construction de toutes les combinaisons de n- uplets entre deux relations : produit Extraction des … : division Extraction des … : division
La projection La projection dune relations P 1 de schéma R 1 (A 1..A n ) sur les attributs A i1,A i2,…A ip (avec i j i k et p<n) est une relation P 2 de schéma R 2 (A i1..A ip ) dont on a supprimé les tuples en double. La projection dune relations P 1 de schéma R 1 (A 1..A n ) sur les attributs A i1,A i2,…A ip (avec i j i k et p<n) est une relation P 2 de schéma R 2 (A i1..A ip ) dont on a supprimé les tuples en double. Opérateur dalgèbre relationnelle : Ai1..Ain Opérateur dalgèbre relationnelle : Ai1..Ain Symbole graphique : Symbole graphique : Remarque Remarque –Filtrages des colonnes –Utilisé pour supprimer les tuples en double (par exemple après une union)
Exemple de projection Requête type : Requête type : –Quels sont les villes de résidence des personnes de la table P 1 VILLE P 2 = ville (P 1 ) LyonDupont3457 ParisDurand3425 ParisDupond2140VILLENOMID P1P1 Lyon ParisVILLE P2P2
La restriction ou sélection La restriction dune relations P 1 de schéma R 1 par une qualification Q est une relation P 2 de même schéma dont les tuples sont ceux satisfaisant Q. La restriction dune relations P 1 de schéma R 1 par une qualification Q est une relation P 2 de même schéma dont les tuples sont ceux satisfaisant Q. Opérateur dalgèbre relationnelle : Q Opérateur dalgèbre relationnelle : Q Symbole graphique : Symbole graphique : Remarque : Remarque : –Filtrage des données –Critères Q : Égalité entre un attribut et une valeur données VILLE="Paris".Égalité entre un attribut et une valeur données VILLE="Paris". Égalité entre deux attributs de la table VILLE1 = VILLE2.Égalité entre deux attributs de la table VILLE1 = VILLE2. Inégalité Age =150.Inégalité Age =150. Différence.Différence.
Exemple de sélection Requête type : Requête type : –Sélectionner tous les individus habitant à Paris. VILLE=PARIS P 2 = VILLE=PARIS (P1)
Opérateur booléen UNION Lunion de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1, à P2 ou aux deux. Lunion de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1, à P2 ou aux deux. U P 3 = P 1 U P 2 ! Les doublons sont éliminés par définition
Opérateur booléen INTERSECTION Lintersection de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1 et à P2. Lintersection de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1 et à P2. P 3 = P 1 P 2
/ Opérateurs booléen DIFFERENCE La différence de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1 et nappartenant pas à P2. La différence de deux relations P1 et P2 de même schéma R est une relation de même schéma R contenant tous les tuples appartenant à P1 et nappartenant pas à P2. P 3 = P 1 / P 2 P1 / P2 P2 / P1 !
Produit Cartésien Le produit cartésien de deux relations P1 et P2 de schéma R1 et R2 est une relation ayant pour attribut la concaténation des attributs de R1 et de R2 et dont les tuples sont toutes les concaténations possibles dun tuple de P1 à un tuple de P2. Le produit cartésien de deux relations P1 et P2 de schéma R1 et R2 est une relation ayant pour attribut la concaténation des attributs de R1 et de R2 et dont les tuples sont toutes les concaténations possibles dun tuple de P1 à un tuple de P2.
Exemple de produit cartésien X P 3 = P 1 X P 2
Jointure La jointure de deux relations P1 et P2 de schéma R1 et R2 selon une qualification Q est lensemble des tuples du produit cartésien P1 X P2 qui satisfont Q. La jointure de deux relations P1 et P2 de schéma R1 et R2 selon une qualification Q est lensemble des tuples du produit cartésien P1 X P2 qui satisfont Q. Équivalente à un produit cartésien suivit dune sélection.Équivalente à un produit cartésien suivit dune sélection.
Equi-jointure Léqui-jointure de deux relations P1 et P2 de schéma R1 et R2 sur les attributs Ai de R1 et Bj de R2 est la jointure selon Q = (Ai=Bj). Léqui-jointure de deux relations P1 et P2 de schéma R1 et R2 sur les attributs Ai de R1 et Bj de R2 est la jointure selon Q = (Ai=Bj).
Exemple déqui-jointure P 3 = P 1 ID=CODE P 2 = ID=CODE (P 1 X P 2 ) ID=CODE
Exemple de produit-sélection / jointure X P 4 = P 1 X P 2 ID=CODE P 3 = P 1 P 2 ID=CODE
Jointure naturelle La jointure naturelle de deux relations P1 et P2 de schéma R1 et R2 est léqui-jointure sur tous les attributs de même nom, suivie dune élimination des doublons. La jointure naturelle de deux relations P1 et P2 de schéma R1 et R2 est léqui-jointure sur tous les attributs de même nom, suivie dune élimination des doublons. P 3 = P 1 P 2
Client No m = Dur and N°Cli ent Achat N°Prod. Produit N ° P ro d. CodeCode Coule ur Nom prod. Question : Couleur et nom des produits acheté par le client Durand ?
Question : Couleur et nom des produits acheté pas le client Durand ? Plusieurs solutions : Tailles de tables intermédiaires différentes. Durées de traitement différents Durées de traitement différents !
La division Soit deux relations, une binaire R 1 (A 1,A 2 ) et lautre unaire R 2 (A 1 ) La division de R1 par R2 est une relation R (A 2 ) consistant en toutes les valeurs de R 1 (A 2 ) qui sunifient avec toutes les valeurs de la relation unaire. Soit deux relations, une binaire R 1 (A 1,A 2 ) et lautre unaire R 2 (A 1 ) La division de R1 par R2 est une relation R (A 2 ) consistant en toutes les valeurs de R 1 (A 2 ) qui sunifient avec toutes les valeurs de la relation unaire. YC XB ZA YA XAA2A1 Y XA2 AA1
Exemple de division Quels sont les usines qui fabriquent tous les type de pièces ? Quels sont les usines qui fabriquent tous les type de pièces ? Quels sont les étudiants qui assistent à tous les cours ? Quels sont les étudiants qui assistent à tous les cours ? Quels sont les logiciels utilisés dans tous les projets ? Quels sont les logiciels utilisés dans tous les projets ?