INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Bases de Données Avancées: Bases de Données Relationnelles
Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
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.
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
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
SYSTÈME DE GESTION DE BASES DE DONNÉES
Bases de données et SGBD relationnels
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
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.
Algèbre relationnelle et SQL
Algèbre relationnelle
Cours N°2 Base de Données & Langage SQL
MODELE RELATIONNEL concept mathématique de relation
Algèbre Relationnelle
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
Cours de Management des Systèmes d’Information
Manipulation des données Requêtes simples
Initiation aux bases de données et à la programmation événementielle
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.
Spécification de programmes et de systèmes
Traduction des opérations sous MySQL
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.
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
Analyse et Conception de Systèmes Informatiques (ACSI)
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.
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 5)
Systèmes de gestion de BD
Conception d’une Base de Données Le Diagramme de Classes UML
Langage Relationnel Graphe de Requêtes
MANIPULATION DES DONNEES : mise à jour des n-uplets.
INTRODUCTION AUX BASES DE DONNEES Modèle entités-relations
Introduction aux Bases de Données et au langage SQL
INTRODUCTION AUX BASES DE DONNEES Base et métabase
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.
INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle Exercices Université Panthéon-Assas Paris 2 L2 Economie-Gestion.
Bases de données – Cours 3
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
SQL query - 1 / D. Berrabah SQL : interrogation de BD Requêtes d'interrogation simples Requêtes complexes Agrégats et groupement.
Initiation aux bases de données et à la programmation événementielle
Algèbre relationnelle
Transcription de la présentation:

INTRODUCTION AUX BASES DE DONNEES Algèbre relationnelle COURS 3 Université Panthéon-Assas Paris 2 L2 Economie-Gestion

Une relation Formellement Pratiquement Une relation est un sous-ensemble du produit cartésien de N champs d’applications (ou rubriques) D1xD2x…xDN Pratiquement Une relation est représentée par un tableau N° étudiant Nom Age Prof père 430 Dupont 20 Maçon 651 Durant 23 Dentiste 941 Martin Occurrences de la relation (nuplets) rubrique Schéma de relation : R(Attribut1, …Attributn) R(N°étudiant, Nom, Age, Prof père)

Types de relation Relation unaire : une seule rubrique Taux de TVA 0,00 5,50 7,00 19,60 33,33 R(Taux de TVA) Relation binaire : 2 rubriques R(N° salarié, Nom Salarié) Relation n-aire : n rubriques n>2 N° étudiant Nom Age Prof père 430 Dupont 20 Maçon 651 Durant 23 Dentiste 941 Martin R(N°étudiant, Nom, Age, Prof père)

L ’Algèbre relationnelle Sur ces relations, existent des opérateurs Ces opérateurs définissent l ’ Algèbre relationnelle Ces opérateurs opèrent sur des relations et produisent de nouvelles relations : construction de nouvelles informations à partir des relations de départ et d ’une composition séquentielle d ’opérateurs 3 catégories d ’opérateurs relationnels Opérateurs unaires : affectation, sélection, projection Opérateurs binaires travaillant sur 2 relations de même schéma : union, intersection, différence Opérateurs binaires travaillant sur 2 relations de schémas différents : jointure, produit cartésien, division

Opérateurs unaires-affectation Sauvegarder le résultat d ’une expression de recherche Renommer une relation et ses attributs R(A1, …, An) expression de sélection R(A1, …, An) = expression de sélection

Opérateurs unaires-Sélection Suppression des occurrences de la relation qui ne satisfont pas une condition donnée SELECTION(R, condition-de-sélection) σ cond(R) En entrée : une relation R définie sur un schéma SR En sortie : une nouvelle relation de même schéma SR, les nuplets satisfont la condition de sélection La condition de sélection est une condition booléenne construite à partir Des connecteurs logiques et, ou, non De conditions simples : attribut de R - opérateur de comparaison - constante attribut de R - opérateur de comparaison - attribut de R

Sélection-Exemple Considérons la relation Etudiant définie par le schéma Etudiant(N° étudiant, Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo SELECTION(Etudiant, Année-étude=1) produit la relation N° Etudiant Nom-étudiant Année-étude 843 Carole 1 864 Paulo

Opérateurs unaires-Projection Supprimer des attributs d ’une relation PROJECTION(R, A1, …, An) П A1, …, An (R) En entrée : une relation R définie sur un schéma SR En sortie : une nouvelle relation de schéma A1,…An (inclus dans SR) ayant comme nuplets ceux de R restreints au sous-schéma A1, …, An La cardinalité de la nouvelle relation est <= à celle de R

Projection-Exemple Considérons la relation Etudiant définie par le schéma Etudiant(N° étudiant, Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo PROJECTION(Etudiant, N° étudiant, Nom-étudiant) produit la relation N° Etudiant Nom-étudiant 843 Carole 521 Peter 864 Paulo

Projection-Exercice Une maîtresse de maison s ’est constituée une base de données sur les personnes qu’elle invite et les plats qu’elle leur sert. Cette base est composée de 3 relations Repas(Date, Invité) donne la liste des invités reçus et à quelle date Menu(Date, Plat) donne le menu servi à chaque date Préférence(Personne,Plat) donne pour chaque personne ses plats préférés NB : Les attributs Personne et Invité ont même domaine

Projection-Exercice Repas(Date, Invité), Menu(Date, Plat), Préférence(Personne, Plat) Quels sont les invités du repas du 01/05/97 R1=SELECTION(Repas, date={d ’97- 05- 01 ’}) Rés=PROJECTION(R1, Invité) ou Rés=PROJECTION(SELECTION(Repas,Date={d ’97- 05- 01 ’}), Invité) En SQL PROJECTION SELECT Repas.Invité FROM Repas WHERE Repas.Date={d ’97- 05- 01 ’} SELECTION

Opérateurs binaires sur 2 relations de même schéma - Union Fusionner 2 relations ayant mêmes attributs en une seule relation UNION(R, S) RS En sortie : une nouvelle relation de schéma SRS, ayant les nuplets de R et ceux de S (les doublons sont supprimés)

Union-Exemple Etudiant(N° étudiant,Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo Etudiant(N° étudiant,Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 324 Catherine 2 521 Peter 3 201 Didier 1 Etudiant1(N° étudiant, Nom-étudiant, Année-étude)

Union-Exemple UNION(Etudiant, Etudiant1) produit la relation Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo 324 Catherine 2 201 Didier

Opérateurs binaires sur 2 relations de même schéma - Intersection Fournir les occurrences présentes dans les 2 relations à la fois INTERSECTION(R, S) RS En sortie : une nouvelle relation de schéma SRS, ayant les nuplets présents dans R et dans S

Intersection-Exemple N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo Etudiant(N° étudiant,Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 324 Catherine 2 521 Peter 3 201 Didier 1 Etudiant1(N° étudiant, Nom-étudiant, Année-étude) INTERSECTION(Etudiant, Etudiant1) produit la relation N° Etudiant Nom-étudiant Année-étude 521 Peter 3

Opérateurs binaires sur 2 relations de même schéma - DIFFERENCE Obtenir les occurrences d ’une relation qui n ’appartiennent pas à une autre relation DIFFERENCE(R, S) R-S En sortie : une nouvelle relation de schéma SRS, ayant les nuplets de R qui ne sont pas dans S La différence n ’est pas commutative Équivalent à un opérateur complément

Etudiant(N° étudiant, Nom-étudiant, Année-étude) Différence-Exemple Etudiant(N° étudiant, Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo Etudiant-SELECTION(Etudiant, Année-étude=1) produit la relation N° Etudiant Nom-étudiant Année-étude 521 Peter 3

Différence-Exercice Repas(Date, Invité), Menu(Date, Plat), Préférence(Personne, Plat) Quels sont les personnes qui n ’ont jamais été invitées ? R1=PROJECTION(Préférence, Personne) R2=PROJECTION(Repas, Invité) Rés=R1-R2 ou Rés=PROJECTION(Préférence,Personne)-PROJECTION(Repas,Invité) En SQL (SELECT Préférence.Personne FROM Préférence) MINUS (SELECT Repas.Invité FROM Repas)

Opérateurs binaires sur 2 relations de schémas différents - Produit cartésien Soient R et S, 2 relations définies sur les schémas SR et SS (SR et SS disjoints) PRODUIT(R, S) RxS En sortie : une nouvelle relation de schéma SRS (union des schémas SR et SS) dont les nuplets sont la concaténation des nuplets de R avec ceux de S Le nombre d ’éléments du produit cartésien est le produit des cardinalités des relations R et S

Produit cartésien-Exemple Etudiant(N° étudiant, Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo Père(Code, Age, Prof) Code Age Prof 843 40 Maçon 521 50 Dentiste 864 42

Produit cartésien-Exemple PRODUIT(Etudiant,Père) produit la relation N° Etudiant Nom-étudiant Année-étude Code Age Prof 843 Carole 1 40 Maçon 521 50 Dentiste 864 42 Peter 3 Paulo

Opérateurs binaires sur 2 relations de schémas différents - Jointure Soient R et S, 2 relations définies sur les schémas SR et SS (SR et SS ayant des attributs de même domaine) JOINTURE(R, S, condition) R S condition En sortie : une nouvelle relation de schéma SRS (union des schémas SR et SS) dont les nuplets sont la concaténation des nuplets de R avec ceux de S s ’ils ont la même valeur pour les attributs communs (de même domaine) On parle aussi de jointure naturelle ou équi-jointure

Jointure-Exemple Etudiant(N° étudiant, Nom-étudiant, Année-étude) N° Etudiant Nom-étudiant Année-étude 843 Carole 1 521 Peter 3 864 Paulo Code Age Prof 843 40 Maçon 521 50 Dentiste 864 42 Etudiant(N° étudiant, Nom-étudiant, Année-étude) Père(Code, Age, Prof) JOINTURE(Etudiant, Père, N° étudiant=Code) N° Etudiant Nom-étudiant Année-étude Code Age Prof 843 Carole 1 40 Maçon 521 Peter 3 50 Dentiste 864 Paulo 42

Jointure-Exercice Repas(Date, Invité), Menu(Date, Plat), Préférence(Personne, Plat) Quels sont les plats qui ont été servis à Alice ? R1=SELECTION(Repas, Repas.Invité=′ Alice ′) R2=JOINTURE(Menu, R1, Menu.Date=R1.Date) Rés=PROJECTION(R2, R2.Plat) En SQL PROJECTION SELECT DISTINCT Menu.Plat FROM Menu, Repas WHERE Repas.date=Menu.Date AND Repas.Invité=′ Alice ′ JOINTURE SELECTION

Opérateurs binaires sur 2 relations de schémas différents - Division R est définie sur un schéma SR composé des ensembles d ’attributs X et Y (SR = XY) S est définie sur un schéma SS composé de l ’ensemble d ’attributs Y (SS=Y) DIVISION(R,S) R/S En sortie : une nouvelle relation de schéma Sres (Sres=SR-SS) qui comprend tous les nuplets dont la concaténation avec tous les nuplets de S appartient à R

Division-Exercice Repas(Date, Invité), Menu(Date, Plat), Préférence(Personne, Plat) Quels sont les invités qui sont venus à tous les repas ? Rés=Repas/PROJECTION(Repas, Date)

Division-Exercice Appartient à la relation Repas x Repas(Date, Invité), Menu(Date, Plat), Préférence(Personne, Plat) Division-Exercice Repas(Date, Invité) PROJECTION(Repas, Date) Date Invité 14/5 Didier Dominique 15/5 Jean-Luc 16/5 Date 14/5 15/5 16/5 Repas/PROJECTION(Repas, Date) 14/5 15/5 16/5 Invité1 … Appartient à la relation Repas x Doit appartenir à la relation Repas 14/5, Invité1 15/5, Invité1 16/5, Invité1

Opérateurs binaires sur 2 relations de schémas différents - Autres Thêta-jointure Jointure externe Semi-jointure