Chapitre 5. Comprendre SQL grâce à l Algèbre Relationnelle

Documents pareils
Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les bases de données

Le langage SQL Rappels

1 Introduction et installation

Bases de données avancées Introduction

16H Cours / 18H TD / 20H TP

INTRODUCTION AU DATA MINING

Bases de Données relationnelles et leurs systèmes de Gestion

Introduction au Système de Gestion de Base de Données et aux Base de Données

Langage SQL : créer et interroger une base

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de données relationnelles

TP 8: LES OPERATEURS ENSEMBLISTES

Bases de Données. Plan

Évaluation et optimisation de requêtes

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

TD n 10 : Ma première Base de Données

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Rappel sur les bases de données

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

TP Bases de données réparties

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

Bases de Données Relationnelles. Le Modèle Relationnel

Groupe 11 TABLE DES MATIERES

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Vincent Augusto

Bases de données Outils de gestion

TP Contraintes - Triggers

Bases de données - Modèle relationnel

Cours: Les Jointures 1

Bases de données cours 1

Les BASES de DONNEES dans WampServer

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

A QUOI SERVENT LES BASES DE DONNÉES?

Dossier I Découverte de Base d Open Office

BTS/CGO P10 SYSTEME INFORMATION Année

PHP 5. La base de données MySql. A. Belaïd 1

Cours de bases de données. Philippe Rigaux

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Limites finies en un point

Administration de Bases de Données : Optimisation

Modèle Entité/Association

PROJET 1 : BASE DE DONNÉES REPARTIES

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Java DataBaseConnectivity

I4 : Bases de Données

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Conception des bases de données : Modèle Entité-Association

Interpréteur d algèbre relationnelle

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

SQL Historique

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Bases de Données Avancées

Présentation du module Base de données spatio-temporelles

Cours de mathématiques

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Bases de données Cours 5 : Base de données déductives

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Le langage SQL (première partie) c Olivier Caron

Bases de Données et Internet

Bases de données élémentaires Maude Manouvrier

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmes des classes préparatoires aux Grandes Ecoles

Chap. 2: L approche base de données

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Partie 0 : Gestion des tablespace et des utilisateurs... 3

3. Conditionnement P (B)

IFT3030 Base de données. Chapitre 1 Introduction

Introduction aux Bases de Données

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

CORRIGÉ GEDOC SA. Proposition de barème sur 70 points

Le Langage SQL version Oracle

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Documentation d information technique spécifique Education. PGI Open Line PRO

TD3 - Facturation avec archivage automatisé

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Systèmes de Gestion de Bases de Données

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Chapitre 2 Le problème de l unicité des solutions

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Architectures d'intégration de données

Transcription:

Chapitre 5 Comprendre SQL grâce à l Algèbre Relationnelle 1

Langage de requêtes pour les BDs relationnelles (1/2) Langage de requêtes : ils permettent de manipuler et de retrouver des données d une base de données Le modèle relationnel supporte des requêtes simples et expressives Les langages de requêtes pour les BDs relationnelles sont fondés sur des bases formelles solides (logique du premier ordre) 2

Langage de requêtes pour les BDs relationnelles (2/2) Langage de requêtes langage de programmation Un langage de requêtes n a pas pour but d être utilisé pour faire des traitements ou calculs complexes But : être facile d utilisation et offrir un accès efficace aux données 3

Langages de requêtes formels 2 langages de requêtes formels existent (fondement de SQL) L algèbre relationnelle : langage opérationnel, une requête s écrit comme une succession d opérations effectuées sur des relations Calcul relationnel : langage déclaratif, une requête s écrit comme la spécification du résultat attendu (sous forme logique) 4

Préliminaire 1 Une requête s applique à des instances de relations et le résultat d une requête est aussi une instance de relation Autrement dit : Une requête se pose sur des tables qui ont un contenu (potentiellement vide) et renvoie une table avec un contenu (potentiellement vide) R1 : table R2 : table Requête Q prenant en entrée R1 et R2 Résultat de Q = une table 5

Préliminaire 2 Le schéma du résultat d une requête sera toujours le même, quelque soit le contenu des relations La table résultat d une requête mettra toujours en jeu les mêmes attributs (quelque soit le contenu!) 6

Préliminaire 3 Les schémas des relations prises en entrées par une requête sont fixés Une requête s exprime grâce à des noms d attributs et de tables Mais une requête ne doit jamais dépendre des instances des relations Aucune connaissance du contenu des tables ne doit être nécessaire pour bien comprendre la requête 7

Algèbre relationnelle Opérateurs de base Sélection ( ), Projection ( ), Produit cartésien (X), Différence (\ ou -) et Union (U) Autres opérateurs Intersection, jointure, division, renomage: très utiles aussi! Puisque chaque opérateur appliqué à une relation renvoie une relation, les opérateurs peuvent être imbriqués (clôture de l Algèbre relationnelle) 8

Projection : introduction Notation : A 1,,A p (R) avec r relation et A 1,,A p attributs de R Supprime les attributs qui sont différents des attributs de la liste de projection (A 1,,A p ) Le schéma du résultat contient exactement les champs de la liste de projection (A 1,,A p ) NB : L opérateur de projection élimine les redondances (ce n est pas le cas en SQL) 9

Projection : exemple Q1= NumClient, DateRes(Reservation) Reservation Q1 NumRes Classe DateRes NumClient NumClient DateRes 001 1 18/11/2007 17902567 17902567 18/11/2007 002 2 19/11/2007 2780289 2780289 19/11/2007 NB : la projection est un opérateur qui n agit pas sur les lignes du résultat mais sur les colonnes (c est-àdire sur le schéma) 10

Projection : Définition formelle Input r une relation de schéma R X un ensemble d attributs tels que X R Output X(r)={t(X) / t r} Où t(x) est la restriction de t sur les attributs de X Ensemble des n-uplets de r restreints aux attributs de X Le schéma de X(r) est X 11

Sélection : introduction Sélection des n-uplets (lignes) qui satisfont la condition de sélection Le schéma du résultat est identique au schéma pris en entrée 12

Sélection : exemple ET Q2= (DateRes<20-11-2007 Classe=2)(Reservation) Condition de sélection Réservation Q2 NumRes Classe DateRes NumClient NumRes Classe DateRes NumClient 001 1 18/11/2007 17902567 002 2 19/11/2007 2780289 002 2 19/11/2007 2780289 003 2 20/11/2007 2780289 13

Sélection : Définition formelle Input r une relation de schéma R une condition de sélection (définie ci-après) Output (r)={t / t r et (t)} L ensemble des n-uplets de la relation r pour lesquels la condition est vraie Le schéma de (r) est R 14

Définition formelle de la condition Définition récursive Base : Soient 2 attributs A et B (non nécesairement différents), et a Dom(A) peut prendre les formes suivantes A =B, A < B, A=a, A < a (on utilisera aussi >,, et ) Si 1 et 2 sont deux conditions alors ( 1 ), 1 (négation), 1 2 (et) et 1 2 (ou) sont des conditions de sélection 15

Exemples de conditions DateRes 20-11-2007 Classe = 2 Nom = Payen (DateRes = 20-11-2007 DateRes = 21-11-2007) Classe = 2 NumClient = NumSS 16

Exercice 1 Quel est le résultat de la requête Q3 suivante en considérant l instance de la relation R ci-dessous? Q3 = Nom ( Prénom = Jean (Enseignant) ) Enseignant NumEns Nom Prénom 1 Voisin Jean 2 Benzaken Claudine 3 Forest Jean 17

Correction (Exercice 1) Quel est le résultat de la requête Q3 suivante en considérant l instance de la relation R ci-dessous? Q3 = Nom ( Prénom = Jean (Enseignant) ) Enseignant NumEns Nom Prénom 1 Voisin Jean 2 Benzaken Claudine 3 Forest Jean Q3 Voisin Forest Nom 18

Produit cartésien : Introduction Opérateur binaire (prend deux relations entre entrée : r1 et r2) Chacun des n-uplets de r1 est combiné avec chacun des n-uplets de r2 Le schéma du résultat a l union des attributs des relations NB : Si les deux relations ont un attribut de même nom, on renomme cet attribut 19

R1 A a1 B b1 b2 Produit cartésien : Exemple C c1 R1 x R2 Renommage c2 R1.A B C R2.A D R2 A a3 D d2 d3 d4 a1 b1 c1 d2 a1 b1 c1 d3 a1 b1 c1 a3 d4 b2 c2 d2 b2 b2 c2 c2 a3 d3 d4 20

Produit cartésien : Définition formelle Input r, s deux relations de schéma R et S Output r x s = {t / t(r) r et t(s) s} La restriction du produit aux attribut de R est r et celle aux attributs de S est s r x s a pour schéma R+S NB : R+S est l union disjointe de R et S {R.A / A R } U {S.B / B S} 21

SQL par défaut fait un produit cartésien! Reservation NumRes 1 2 Classe DateRes NumClient 1 18/11/2007 17902567 2 19/11/2007 2780289 Client NumSS Nom Prénom 17902567 Payen Olivier 2780289 Payen Judith 29005579 Quoti Mathilde SELECT Nom, Prenom, Reservation.NumRes, DateRes FROM Reservation, Client WHERE DateRes < 2007-11-19 Nom Prenom NumRes DateRes Payen Olivier 1 18/11/2007 Payen Judith 1 18/11/2007 Quoti Mathilde 1 18/11/2007 Ces deux lignes mélangent des informations qui n ont rien à voir!! 22

Jointure naturelle : Introduction Opération binaire fondamentale (optimisation)! Utilise R1 et R2 qui ont des attributs communs (appelons-les X) Le schéma du résultat est similaire au schéma du produit cartésien modulo que les attributs X n apparaissent qu une fois Au niveau des lignes : on combine les lignes de R1 avec les lignes de R2 qui ont même valeur pour les attributs X 23

R1 A a1 B b1 b2 Jointure naturelle : Exemple C Équivaut à c1 c2 R1 R2 R1 R2 R1.A = R2.A R2 A a3 D d2 d3 d4 A B C D b2 c2 d2 b2 c2 d3 24

Jointure naturelle : Définition formelle Input r et s de schéma R et S Output r s = {t / t(r) r et t(s) s} r s = R union S (r x s) Avec R S = {B1,, Bp} : t(r.b1)= t(s.b1) t(r.bp)= t(s.bp) 25

Phi (ou théta) Jointure Cas particulier de jointure avec condition R1 R2 est une condition de sélection R2 A D 3 2 2 3 R1 E B C 1 7 1 R1 R2 R2.A > R1.C A D E B C 3 3 2 2 2 3 1 9 1 7 2 7 1 2 1 1 4 9 2 2 26

Union, Intersection, Différence : Introduction Tous ces opérateurs prennent en entrée 2 relations qui doivent avoir le même schéma Union (R1 R2) : ensemble de n-uplets qui sont dans R1 ou dans R2 Intersection (R1 R2) ensemble de n-uplets qui sont dans R1 et dans R2 Différence (R1 \ R2 ou R1 R2) : ensemble de n-uplets qui sont dans R1 mais pas dans R2 27

Union, Intersection, Différence : Exemples R1 R2 R1 R2 R1 \ R2 R1 A a1 a3 B b1 b2 b3 R2 A a1 a3 B b1 b3 b4 A a1 a3 a3 B b1 b2 b3 b3 b4 Les n-uplets de R1 union ceux de R2 A a1 B b1 Les n-uplets à la fois dans R1 et dans R2 A a3 B b2 b3 Les n-uplets de R1 mais qui ne sont pas dans R2 Pas de doublon 28

Union, Intersection, Différence : Définitions formelles Input r, s deux relations de même schéma R Output r s = { t / t r ou t s } r s = { t / t r et t s } r \ s = { t / t r et t s } de schéma R 29

Exercice 2 Quel est le résultat de la requête Q4 suivante en considérant les instances des relations ci-dessous? Q4 =( A,B ( C c1 (R1) )) R2 R1 R2 A B C A B a1 b1 c1 b2 a3 b2 b3 c2 c3 a3 b3 b4 30

Correction (Exercice 2) 1/3 Quel est le résultat de la requête Q4 suivante en considérant l instance des relations ci-dessous? Q4 = A,B ( C c1 (R1)) R2 R1 R2 A B C A B a1 b1 c1 b2 a3 b2 b3 c2 c3 a3 b3 b4 31

Correction (Exercice 2) 2/3 Quel est le résultat de la requête Q4 suivante en considérant l instance des relations ci-dessous? Q4 = A,B ( C c1 (R1)) R2 R1 R2 A B C A B a1 b1 c1 b2 a3 b2 b3 c2 c3 a3 b3 b4 32

Correction (Exercice 2) 3/3 Quel est le résultat de la requête Q4 suivante en considérant l instance des relations ci-dessous? Q4 =( A,B ( C c1 (R1))) R2 R1 R2 Q4 A B C A B A B a1 b1 c1 b2 b2 a3 b2 b3 c2 c3 a3 b3 b4 33

Propriétés algébriques L union et l intersection sont commutatifs et associatifs r s = s r, r (s1 s2) = (r s1) s2 De même pour Le produit cartésien est associatif et commutatif* La jointure est associative et commutative* D autres propriétés peuvent être énoncées : monotonie de certains opérateurs, fermeture etc. *si on considère un ordre sur les colonnes 34

Exemple d équivalences Les relations d équivalence de l algèbres sont des égalités entre des formules Elles sont à la base des optimisations de requêtes! Exercice Sachant que les schémas de R et S sont les mêmes et si X R, trouvez un contre exemple aux égalités qui sont fausses et démontrez celles qui sont justes X (r s) = X (r) X (s) X(r s) = X (r) - X (s) X(r s) = X (r) X (s) 35

Exemple d équivalences (correction) Exercice Sachant que R = S (schémas) et X R, trouvez un contre exemple aux égalités qui sont fausses et démontrez celles qui sont justes X (r s) = X (r) X (s) NON X(r s) = X (r) - X (s) NON X(r s) = X (r) X (s) OUI! 36

Non Distributivité de l intersection X (r s) = X (r) X (s) NON Contre exemple A a r s A (r s) = B A B A (r) A (s) = {a} b a b 37

Non Distributivité de la différence X (r - s) = X (r) - X (s) NON Contre exemple A a r s A (r - s) = {a} B A B A (r) - A (s) = b a b 38

Distributivité de l union : Démonstration X (r s) = X (r) X (s) On se ramène aux définitions Rappel : X(r)={t(X) / t r} ; t X(r) t r et t (X)=t t X (r s) t, t (r s) et t (X)=t // par définition de la projection t ((t r) ou (t s)) et t (X)=t // par définition de l union t ((t r) et t (X)=t) ou ((t s) et t (X)=t) // distrib. de «et» sur «ou» ( t, t r et t (X)=t) ou ( t, t s et t (X)=t) // distributivité de t X (r) ou t X (s) // par définition de la projection t ( X (r) X (s)) // par définition de l union 39

Conclusion L algèbre relationnelle est définie de façon très rigoureuse et offre un langage de requêtes à la fois simple et puissant L algèbre relationnelle est à la base De SQL Des plans de requêtes utilisés par les SGBD pour optimiser les requêtes 40