Langage Relationnel Graphe de Requêtes

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Les Systèmes de Gestion de Bases de Données (SGBD) Algèbre relationnelle.
Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Informatique appliquée à la gestion Bases de données www. labri
Access Frédéric Gava (MCF)
STS2 - Révision des requêtes de sélection2/9/2003 Forme d'une requête de Sélection nSELECT nFROM nWHERE nGROUP BY nHAVING nORDER BY.
Fonctionnalités des SGBD
Algèbre relationnelle
Techniques dindexation Implémentation du modèle relationnel ~ LIF10: Fondements des bases de données relationnelles.

Optimisation de Requêtes
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Le modèle relationnel Des transparents issus de ceux de Ph Rigaux, J Ullman (Stanford), Barry (Bath et Amiens), Godin (UQAM)
Eléments d ’algèbre relationnelle
BASE DE DONNEES RELATIONNELLES
Database B2 2 MIP Paris.
LE LANGAGE SQL Langage de manipulation de données (LMD)
Algèbre relationnelle
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
Modèle Logique de Données
Algèbre relationnelle et SQL
Algèbre relationnelle
MODELE RELATIONNEL concept mathématique de relation
Staf 2x Cours de bases de données
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
Algèbre Relationnelle
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Les concepts et les méthodes des bases de données
Cours de Management des Systèmes d’Information
L3 Module Libre Année universitaire Initiation à la Bioinformatique Jean-Michel RICHER.
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Traduction des opérations sous MySQL
Bases de données fédéréEs hétérogènes
Optimisation de requêtes
Mini-SGBD Implémentation des opérateurs algébriques Yohann HUBERT Christophe PANNEAU Licence informatique Année Maître de stage : M. KHAYATA.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
MATHÉMATIQUES DISCRÈTES Chapitre 6 (relations)
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Notion de Dépendance Fonctionnelle (DF)
Séance /10/2004 SGBD - Approches & Principes.
Introduction aux Bases de Données et au langage SQL
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Complément sous-requêtes
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Cours n°2 Implémentation et exploitation
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Bases de données – Cours 3
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Langage de manipulation de données (LMD)
Transcription de la présentation:

Langage Relationnel Graphe de Requêtes

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

Opérateurs relationnels Opérateurs unaires Sélection Projection Opérateurs binaires Union Intersection Différence Division Produit Cartésien jointure Opérateurs ensemblistes

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

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

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

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

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 R1 R2 U R1 R1

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

  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   R1 R2 R1 R1

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

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 R1 R2 R1 R1

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

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)

Division (suite) Symbole utilisé R R1 de schéma S1,S2 R2 de schéma S2

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 ?

Division : exemple (suite) R R Nomv Nomv 316i VEHICULE BICOLORE

 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

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 ?

Produit cartésien : exemple (suite) COURS Ine IdM COURS 100 BD ACSI MATH 200 300 Ine, IdM  ETUDIANT MATIERE

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

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

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’ ?

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

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

Exemple de graphe SQL Server CLIENT EMPRUNT OUVRAGE 100 Michel Toulouse 200 Sylvie Toulouse 300 Laurent Toulouse 100 o1 2003-10-10 200 o1 2003-10-10 100 o2 2003-10-08 300 o2 2003-10-08 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

Exemple de graphe SQL Server (suite)

Exemple de graphe SQL Server (suite)