Télécharger la présentation
1
Langage Relationnel Graphe de Requêtes
2
Présentation Basé sur la théorie des ensembles
relations , opérateurs et opérandes Opérateurs : relationnels, de test (<, >, = , …) et booléens (ET, OU, NON) Opérandes : constantes ou variables Recherche d’informations sur les relations par langage algébrique Résultat d’une recherche : relation Base du langage SQL GRAPHE DES REQUETES
3
Opérateurs relationnels
Opérateurs unaires Sélection Projection Opérateurs binaires Union Intersection Différence Division Produit Cartésien jointure Opérateurs ensemblistes
4
Sélection Définition Symbole utilisé
Une sélection appliquée sur la relation R1[a1,...,an], selon le prédicat p1 (condition) donne une relation R2[a1,...,an] ayant les n-uplets satisfaisant la condition Symbole utilisé R Prédicat de Sélection R1
5
Sélection : exemple 100 Sylvie 1 2 200 Michel 3 300 Corinne 400
ETUDIANT Ine Nom Groupe Année R 100 Sylvie 1 2 200 Michel 3 300 Corinne 400 Laurent 500 Jérôme 4 Année = 2 ET Groupe = 3 ETUDIANT Étudiants du groupe 3 de deuxième année ? R Ine Nom Groupe Année 200 Michel 3 2 400 Laurent
6
Projection Définition Symbole utilisé ai,...,am
la projection de la relation R1[a1,...,an] sur les attributs ai,...,am (ai,...,am a1,...,an) est une relation R2[ai,...,am] Pas de duplication des n-uplets résultats Symbole utilisé R ai,...,am R1
7
Projection : exemple Année 100 Sylvie 1 2 200 Michel 3 300 Corinne 400
ETUDIANT Ine Nom Groupe Année R 100 Sylvie 1 2 200 Michel 3 300 Corinne 400 Laurent 500 Jérôme 4 Année ETUDIANT Quelles sont les années existantes ? R Année 1 2
8
U U Union Définition Symbole utilisé
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de même schéma , Le résultat de l’union R contient les tuples de R1 et les tuples de R2 qui n’appartiennent pas à R1 Opérateur commutatif Symbole utilisé R U R R2 U R1 R1
9
U Union : Exemple R nom nomclient
CLIENTS_TOULOUSE (IdCli, nom, adresse) CLIENTS_BORDEAUX (IdClient, nomclient, chiffre) R (nom) Contient l’ensemble des clients de l’entreprise R U nom nomclient CLIENTS_TOULOUSE CLIENTS_BORDEAUX
10
Intersection Définition Symbole utilisé
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de même schéma Le résultat de l’intersection R contient les tuples qui appartiennent, à la fois, à R1 et R2 Opérateur commutatif Symbole utilisé R R R2 R1 R1
11
Intersection : exemple
CLIENTS_TOULOUSE (IdCli, nom, adresse) CLIENTS_BORDEAUX (IdClient, nomclient, chiffre) R (nom) Contient les clients de l’entreprise à la fois, de Toulouse et Bordeaux R nom nomclient CLIENTS_TOULOUSE CLIENTS_BORDEAUX
12
U Différence Définition Symbole utilisé
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de même schéma , Le résultat de la différence R contient les tuples de R1 qui n’appartiennent pas à R2 Opérateur non commutatif Symbole utilisé R U R R2 R1 R1
13
Différence : exemple R nom nomclient
CLIENTS_TOULOUSE (IdCli, nom, adresse) CLIENTS_BORDEAUX (IdClient, nomclient, chiffre) R (nom) Contient les clients de Toulouse qui ne sont pas à Bordeaux R nom nomclient CLIENTS_TOULOUSE CLIENTS_BORDEAUX
14
Division Définition Opérateur non commutatif
Soient R1[a1,...,an,b1,...,bn] et R2[b1,...,bn] deux relations telles que la structure de R2 soit incluse dans la structure de R1 R = résultat de la division de R1 par R2 R est une relation de structure R[a1,...,an] qui contient les tuples ti vérifiant : ti R (ti est un tuple de structure [a1,...,an]) tj R2 (tj est un tuple de structure [b1,...,bn]) ti,tj R1 (ti,tj est un tuple de structure [a1,...,an,b1,...,bn]) Opérateur non commutatif Sert à comparer un ensemble avec un autre ensemble (dit de référence)
15
Division (suite) Symbole utilisé R R1 de schéma S1,S2 R2 de schéma S2
16
Division : exemple BM1 316i 2P noir blanc BM2 318i 4P BM3 320d noir
VEHICULE BICOLORE Codev Nomv Portes Couleur Coloris BM1 316i 2P noir blanc BM2 318i 4P BM3 320d noir blanc S2 S1 S2 Question : Quels sont les véhicules (Nomv) fabriquées en noir ET en blanc ?
17
Division : exemple (suite)
R R Nomv Nomv 316i VEHICULE BICOLORE
18
Produit cartésien Définition Opérateur commutatif Symbole utilisé
Soient R1[a1,...,an] et R2[b1,...,bm] deux relations de schéma différent, R = résultat du produit R1 R2 R est une relation de structure R3[a1,...,an,b1,...,bm] qui contient les combinaisons des tuples de R1 et R2 Opérateur commutatif Symbole utilisé R R1 R1
19
Produit cartésien : exemple
ETUDIANT MATIERE Ine Nom IdM NomM 100 Sylvie 200 Michel 300 Laurent BD Bases de Données ACSI Analyse MATH Mathématiques Question : Créer la relation COURS (Ine, IdM) sachant que chaque étudiant suit toutes les matières ?
20
Produit cartésien : exemple (suite)
COURS Ine IdM COURS 100 BD ACSI MATH 200 300 Ine, IdM ETUDIANT MATIERE
21
Jointure Définition Opérateur fondamental (basé sur les valeurs)
Soient R1[a1,...,an] et R2[b1,...,bm] deux relations, R = jointure de ces relations avec un prédicat R[a1,...,an,b1,...,bm] contient les tuples de R1 et de R2 résultant un produit cartésien vérifiant le prédicat Opérateur fondamental (basé sur les valeurs) Le prédicat contient une clause de jointure et éventuellement d’autres conditions Opérateur binaire commutatif
22
Jointure (suite) Symbole utilisé R R1 de schéma S1 R2 de schéma S2
R de schéma S1,S2 Prédicat R1 R1
23
Jointure : exemple CLIENTS (IdCli, Nom, Adresse)
OUVRAGES (IdOuv, Titre, Nbex) EMPRUNTS (IdCli#, IdOuv#, DateEmp) Question : Nom et Adresse des clients ayant emprunté l’ouvrage ‘BD’ le ’10/10/2003’ ?
24
Jointure : exemple (suite)
Nom, Adresse IdCli=C.IdCli idCli CLIENTS C IdOuv= O.IdOuv ET DateEmp = ‘10/10/2003’ idOuv OUVRAGES O Titre = ‘BD’ OUVRAGES
25
Graphe des requêtes et SGBD
Tous les SGBD R de type SQL mettent en œuvre un graphe de requêtes Oracle fournit une table (plan_table) montrant le schéma global Ce graphe permet d’optimiser les requêtes Certains, comme SQL Server présentent ce graphe sous forme graphique
26
Exemple de graphe SQL Server
CLIENT EMPRUNT OUVRAGE 100 Michel Toulouse 200 Sylvie Toulouse 300 Laurent Toulouse 100 o 200 o 100 o 300 o o1 BD o2 SGBD SELECT c.nom,c.adresse FROM client c, emprunt e, ouvrage o WHERE o.titre=‘BD’ AND o.idouv=e.idouv AND e.dateemp = ‘10/10/2003’ AND e.idcli=c.idcli Question : Nom et Adresse des clients ayant emprunté l’ouvrage ‘BD’ le ’10/10/2003’ ? Michel Toulouse Sylvie Toulouse
27
Exemple de graphe SQL Server (suite)
28
Exemple de graphe SQL Server (suite)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.