Chapitre 2 LE MODELE RELATIONNEL



Documents pareils
1 Introduction et installation

Les bases de données

Bases de Données. Plan

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

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

Le langage SQL Rappels

Langage SQL : créer et interroger une base

I4 : Bases de Données

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

Le Langage SQL version Oracle

COURS de BASES de DONNEES

16H Cours / 18H TD / 20H TP

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

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

LE LANGAGE SQL2 1. INTRODUCTION

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Bases de données élémentaires Maude Manouvrier

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

Information utiles. webpage : Google+ : digiusto/

Modélisation de bases de données : Le modèle relationnel

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

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

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

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

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

SQL Historique

CREATION WEB DYNAMIQUE

Vincent Augusto

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

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

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

Bases de données relationnelles & SQL

UML et les Bases de Données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données relationnelles

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Systèmes de Gestion de Bases de Données

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Bases de données. PTSI Lycée Eiffel. 28 février 2014

CH.6 Propriétés des langages non contextuels

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

Évaluation et optimisation de requêtes

TP Bases de données réparties

Le Langage De Description De Données(LDD)

Bases de données cours 1

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

MODE OPERATOIRE OPENOFFICE BASE

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

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

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

OBJECTIFS ET ARCHITECTURE DES SGBD

SOMMAIRE. Travailler avec les requêtes... 3

Systèmes d information et bases de données (niveau 1)

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Représentation d un entier en base b

Entrepôts de données : Systèmes OLAP : ROLAP, MOLAP et OLAP (5) 1 Introduction aux systèmes

MySQL / SQL EXEMPLES

Rappel sur les bases de données

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

Chapitre 1 Généralités sur les bases de données

Bases de Données Avancées

Bases de données relationnelles : Introduction

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Cours de Probabilités et de Statistique

OpenPaaS Le réseau social d'entreprise

Bases de données multidimensionnelles et mise en œuvre dans Oracle

Introduction aux Bases de Données

COMPTE-RENDU «MATHS EN JEANS» LYCEE OZENNE Groupe 1 : Comment faire une carte juste de la Terre?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

LA GESTION DES VUES 1. INTRODUCTION

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

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

Bases de données et sites WEB

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Base de Données et Langage SQL

Les droites (d 1 ) et (d 2 ) sont sécantes en A Le point A est le point d intersection des 2 droites

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Dossier I Découverte de Base d Open Office

Master I Génie Logiciel

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Bases de données Outils de gestion

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

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

Bases de données réparties: Fragmentation et allocation

INTEGRITE ET BD ACTIVES

STAGE IREM 0- Premiers pas en Python

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan du cours Cours théoriques. 29 septembre 2014

Administration des bases de données. Jean-Yves Antoine

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Transcription:

Chapitre 2 LE MODELE RELATIONNEL 1

1. Introduction Introduit par E.F. Codd d IBM (1970) Modèle ensembliste simple Objectifs du modèle : Indépendance entre les programmes d application et la représentation interne des données => données représentées sous forme de tables à deux dimensions Base solide pour traiter les problèmes de cohérence et de redondance des données Langage de manipulation de données non procédural (assertionnel) s'appuyant sur des fondements théoriques : Algèbre relationnelle Logique du 1er ordre Standard pour la description et la manipulation des BD Langage SQL (Structured Query Language) 2

2. Les structures de données de base Modèle basé sur la théorie des ensembles Ensemble de départ = domaine : ensemble des valeurs caractérisé par un nom Ex : entier, caractère, DATE, COULEUR_VINS = {rose, blanc, rouge} CRUS = {volnay, sancerre, chablis} Produit cartésien : COULEUR_VINS X CRUS Relation : sous-ensemble du produit cartésien d une liste de domaines caractérisé par un nom Ex: COULEURS_CRUS Tuple : n-uplet de valeurs correspondant à une ligne (table) ou à un enregistrement (physique) Attribut : propriété caractérisant chaque élément du tuple correspondant à une colonne (table) et caractérisée par un nom 3

Exemple COULEUR_VINS = {rose, blanc, rouge} CRUS = {St. Emilion, sancerre, chablis} COULEUR_VINS X CRUS Couleur Cru ------------------------------------------------------------------- rose St. Emilion rose sancerre rose chablis blanc St. Emilion blanc sancerre blanc chablis rouge St. Emilion rouge sancerre rouge chablis COULEURS_CRUS Couleur Cru ---------------------------------------------------------- rose sancerre rose chablis blanc sancerre rouge St. Emilion rouge sancerre rouge chablis 4

Relation n-aire = ensemble de n-uplets Relation binaire : ensemble de couples Schéma de la relation : nom de la relation suivi de la liste des attributs et de la définition de leurs domaines R (A1 : D1, A2 : D2,, An : Dn) => définition d une relation en intention (description des données) Table = représentation de la relation R en extension => instance de R : état de la base Règles : assertions qui doivent être vérifiées par les données de la base 5

3. Règles d intégrité structurelle 3.1. Unicité de la clé Clé : ensemble minimal d attributs dont la connaissance des valeurs permet d identifier un tuple unique de la relation considérée Un ensemble d attributs contenant une clé est appelé superclé Si plusieurs clés possibles => choix d une clé primaire Ex : VINS (NV : integer, CRU : CHARVAR, MILL : integer, DEGRE : float) => NV : clé primaire => (CRU, MILL) : clé candidate Notion de clé : caractérise l intention d une relation 6

3.2. Contrainte référentielle Contrainte d intégrité portant sur une relation R1, consistant à imposer que la valeur d un groupe d attributs apparaisse comme valeur de clé dans une relation R2 => clés étrangères Ex : BUVEURS (NB, NOM, PRENOM, ADRESSE) VINS (NV, CRU, MILL, DEGRE) CONSOMMATION (NB, NV, DATE, QUANTITE) La relation CONSOMMATION a deux clés étrangères: - NB dans BUVEURS - NV dans VINS 7

Les contraintes référentielles conditionnent le succès des opérations de mises à jour : Lors de l insertion d un tuple dans une relation référençante, le système vérifie que les valeurs des clés étrangères existent dans les relations référencées Lors de la suppression d un tuple dans une relation référencée, il faut vérifier qu aucun tuple n existe dans chaque relation référençante : s il existe, le système peut, soit refuser la suppression, soit répercuter en cascade (i.e supprimer les tuples référençants) Exemples 8

3.3. Valeurs inconnues et clés Valeur NULL : valeur conventionnelle introduite dans une relation pour représenter une valeur inconnue ou inapplicable. Ex : - quantité de vin consommée inconnue - millésime inapplicable à un vin non millésimé Contrainte d entité : toute relation possède une clé primaire et tout attribut participant à cette clé primaire n'a pas pour valeur NULL. Une clé étrangère peut avoir pour valeur NULL, si elle n appartient pas à la clé primaire Ex : employé qui n est rattaché à aucun service 9

3.4. Contrainte de domaine Impose qu une colonne d une relation doit comporter des valeurs vérifiant une assertion logique Exemple : SALAIRE appartient à l intervalle [1000, 10000] Pas de valeur NULL pour une colonne (ex : AGE non NULL) 10

4. L algèbre relationnelle Collection d opérations formelles qui agissent sur des relations et produisent des relations en résultat 8 opérations introduites par Codd : Ensemblistes (3 de base + 2 dérivées) Spécifiques (3 de base) 11

4.1. Opérations ensemblistes 4.1.1. Union : R1 U R2 ou UNION (R1,R2) Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à R1 ou à R2 ou aux deux relations 4.1.2. Différence : R1 - R2 ou MINUS (R1,R2) Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à R1 et n appartenant pas à R2 12

Exemple VINS1 Cru Millésime Région Couleur ------------------------------------------------------------------------------------------- Chenas 1983 beaujolais rouge Tokay 1980 alsace blanc Tavel 1986 rhone rose VINS2 Cru Millésime Région Couleur --------------------------------------------------------------------------------- Tokay 1980 alsace blanc Chablis 1985 bourgogne rouge VINS1 U VINS2 Cru Millésime Région Couleur --------------------------------------------------------------------------------- Chenas 1983 beaujolais rouge Tokay 1980 alsace blanc Tavel 1986 rhone rose Chablis 1985 bourgogne rouge VINS1 - VINS2 Cru Millésime Région Couleur ----------------------------------------------------------------------------------------- Chenas 1983 beaujolais rouge Tavel 1986 rhone rose 13

4.1.3. Produit cartésien (R1 X R2) ou PRODUCT (R1,R2) Opération portant sur deux relations R1 et R2, consistant à construire une relation R3 ayant pour schéma la concaténation de ceux de R1 et R2 et pour tuples toutes les combinaisons des tuples des relations R1 et R2 4.2. Opérations spécifiques 4.2.1. Projection ( Attr i, Attr j Attr n (R1)) ou PROJECT (R1, Attr i, Attr j Attr n ) Opération sur une relation R1 consistant à composer une relation R2 en enlevant à R1 tous les attributs non mentionnés en opérande (aussi bien au niveau de schéma que des tuples) et en éliminant les tuples en double qui sont conservés une seule fois 14

Exemple VINS1 Cru Région Couleur ------------------------------------------------------------------ Chenas beaujolais rouge Tokay alsace blanc Tavel rhone rose ANNEES Millésime ------------------------------ 1980 1985 VINS1 X ANNEES Cru Région Couleur Millésime -------------------------------------------------------------------------------------------- Chenas beaujolais rouge 1980 Tokay alsace blanc 1980 Tavel rhone rose 1980 Chenas beaujolais rouge 1985 Tokay alsace blanc 1985 Tavel rhone rose 1985 15

4.2.2. Restriction ( condition (R1)) RESTRICT(R1,Condition) Opération sur une relation R1 produisant une relation R2 de même schéma, mais comportant les seuls tuples qui vérifient la condition précisée en argument 4.2.3. Jointure JOIN (R1, R2, Condition) Opération consistant à rapprocher selon une condition les tuples de deux relations R1 et R2 afin de former une relation R3 qui contient l ensemble de tous les tuples obtenus en concaténant un tuple de R1 et un tuple de R2 qui vérifient la condition de rapprochement 16

Exemple VINS Cru Région Millésime Qualité ------------------------------------------------------------------------------------------ St. Emilion bordeaux 1983 A St. Emilion bordeaux 1979 A Chenas beaujolais 1983 B Sylvaner alsace 1986 C Cru, Région (VINS) Cru Région ------------------------------------------------------------------ St. Emilion bordeaux Chenas beaujolais Sylvaner alsace (Cru > 1983) Cru Région Millésime Qualité ------------------------------------------------------------------------------- Sylvaner alsace 1986 C 17

La condition de rapprochement est du type : <Attr1> <opérateur> <Attr2> où Attr1 appartient à R1 et Attr2 à R2 équi-jointure : Opérateur : = inéqui-jointure dans les autres cas : Opérateurs : <,, >,, Jointure naturelle (cas de l équi-jointure) : Opération consistant à rapprocher les tuples de deux relations R1 et R2 afin de former une relation R3 dont les attributs sont l union des attributs de R1 et R2, et dont les tuples sont obtenus en composant un tuple de R1 et un tuple de R2 ayant les mêmes valeurs pour les attributs de même nom 18

Exemple VINS Cru Mill Qualité ------------------------------------------------------------------ St. Emilion 1983 A St. Emilion 1979 B Chablis 1983 A Sylvaner 1986 C LOCALISATION Cru Region QualMoy ------------------------------------------------------------------------------- St. Emilion bordeaux A Chablis bourgogne A Chablis californie B jointure naturelle VINSREG Cru Mill Qualité Region QualMoy ---------------------------------------------------------------------------------------------------- St. Emilion 1983 A bordeaux A St. Emilion 1979 B bordeaux A Chablis 1983 A bourgogne A Chablis 1983 A californie B 19

Exemple inéqui-jointure (Qualité QualMoy) VINSLOC Cru Mill Qualité Cru Region QualMoy ------------------------------------------------------------------------------------------------------------ St. Emilion 1983 A Chablis californie B St. Emilion 1979 B St. Emilion bordeaux A St. Emilion 1979 B Chablis bourgogne A Chablis 1983 A Chablis californie B Sylvaner 1986 C St. Emilion bordeaux A Sylvaner 1986 C Chablis bourgogne A Sylvaner 1986 C Chablis californie B 20

4.3. Opérations dérivées Intersection (R1 R2) ou INTERSECT (R1,R2) Opération portant sur deux relations de même schéma R1 et R2 consistant à construire une relation de même schéma R3 ayant pour tuples ceux appartenant à la fois à R1 et à R2 Division (D d) ou DIVISION (D, d) Opération consistant à construire le quotient de la relation D (A 1, A 2, A p, A p+1, A n ) par la relation d(a p+1, A n ) comme la relation Q(A 1, A 2, A p ) dont les tuples sont ceux qui concaténés à tout tuple de d donnent un tuple de D 21

Exemple VINS Cru Mill Qualité ----------------------------------------------------------------- St. Emilion 1983 A St. Emilion 1979 B Chablis 1983 A Chablis 1979 A Riesling 1986 A QUALITE Mill Qualité ----------------------------------------- 1983 A 1979 A CRU Cru ------------------ Chablis 22

Complément COMP(R) ou NOT(R) Ensemble des tuples du produit cartésien des domaines des attributs d une relation, n appartenant pas à cette relation Jointure externe EXT-JOIN (R1,R2) Opération générant une relation R3 à partir de deux relations R1 et R2 par jointure de ces deux relations et ajout des tuples de R1 et R2 ne participant pas à la jointure, avec des valeurs nulles pour les attributs de l autre relation 23

Exemple COULEURS_CRUS Cru Couleur ---------------------------------------------------------------- Chablis rouge Chablis rose St. Emilion rouge Médoc rose Médoc blanc Riesling blanc NOT(COULEURS_CRUS) Cru Couleur -------------------------------------------------------------------- Chablis blanc St. Emilion rose St. Emilion blanc Médoc rouge Riesling rouge Riesling rose 24

Exemple VINS Cru Mill Qualité -------------------------------------------------------------- St. Emilion 1983 A St. Emilion 1979 B Sylvaner 1986 C LOCALISATION Cru Region QualMoy ------------------------------------------------------------------------------- St. Emilion bordeaux A Chablis bourgogne A Chablis californie B -> jointure externe VINSREG Cru Mill Qualité Region QualMoy ---------------------------------------------------------------------------------------------------------- St. Emilion 1983 A bordeaux A St. Emilion 1979 B bordeaux A Sylvaner 1986 C - - Chablis - - bourgogne A Chablis - - californie B 25

Semi-jointure SEMI-JOIN (R1,R2) Opération portant sur deux relations R1 et R2, donnant en résultat les tuples de R1 (ou de R2) qui participent à la jointure des deux relations Fermeture transitive CLOSE(R) Opération sur une relation R à deux attributs (A 1,A 2 ) de même domaine consistant à ajouter à R tous les tuples qui se déduisent successivement par transitivité, i.e que si l on a des tuples (a,b) et (b,c) on ajoute (a,c) 26

Exemple VINS Cru Mill Qualité -------------------------------------------------------------------- St. Emilion 1983 A St. Emilion 1979 B Chablis 1983 A Sylvaner 1986 C LOCALISATION Cru Region QualMoy ---------------------------------------------------------------------------------- St. Emilion bordeaux A Chablis bourgogne A Chablis californie B -> semi-jointure VINSREG Cru Mill Qualité ----------------------------------------------------------------- St. Emilion 1983 A St. Emilion 1979 B Chablis 1983 A 27

Exemple PARENTS Parent Enfant -------------------------------------------- Yann Moussa Myrtille Moussa Moussa Brian Brian Rachel -> fermeture transitive ANCETRES Ascendant Descendant ---------------------------------------------------------- Yann Moussa Myrtille Moussa Moussa Brian Brian Rachel Yann Brian Yann Rachel Myrtille Brian Myrtille Rachel Moussa Rachel 28

5. Expressions de l algèbre relationnelle À partir des opérations de l algèbre relationnelle on compose un langage d interrogation de BD Question = arbre d opérateurs relationnels 5.1. Langage algébrique Les opérations de base de l algèbre relationnelle constituent un langage complet, équivalent à la logique du premier ordre Exemples : Q1. Donner les degrés des vins de crus Morgon et de millésime 1978 R1= RESTRICT(VINS, CRUS=«MORGON») R2= RESTRICT(VINS, MILLESIME=1978) R3= INTERSECT(R1,R2) RESULTAT= PROJECT(R3,DEGRE) 29

Q2. Donner les noms et prénoms des buveurs de Medoc ou Chenas R1= RESTRICT(VINS, CRUS=«MEDOC») R2= RESTRICT(VINS, CRUS=«CHENAS») R3=UNION(R1,R2) R4= JOIN(R3, CONSOMMATION) R5= JOIN(R4, BUVEURS) RESULTAT= PROJECT(R5, NOM, PRENOM) Q3. Donner les noms et les adresses des buveurs ayant bu plus de 10 bouteilles de Chablis 1976 (en une seule consommation) avec le degré de ce vin R1= RESTRICT(VINS, CRUS=«CHABLIS») R2= RESTRICT(VINS, MILLESIME=1976) R3= INTERSECT(R1,R2) R4= RESTRICT(CONSOMMATION,QUANTITE > 10) R5= JOIN (R3,R4) R6= PROJECT(R5, NB, DEGRE) R7= JOIN (R6, BUVEURS) RESULTAT= PROJECT(R7, NOM, ADRESSE, DEGRE) 30

Q4. Donner les noms des buveurs n ayant bu que du Julienas R1= JOIN (BUVEURS, CONSOMMATION, VINS) R2= RESTRICT (R1, CRU = «JULIENAS») R3= RESTRICT (R1, CRU «JULIENAS») R4= PROJECT (R2, NOM) R5= PROJECT (R3, NOM) RESULTAT= MINUS (R4, R5) 31

5.2. Arbre algébrique Arbre dont les nœuds correspondent à des opérations de l algèbre relationnelle et les arcs à des relations de base ou temporaires représentant des flots de données entre opérations Plusieurs arbres équivalents peuvent être déduits d un arbre donné par des règles de transformation : Permutation des restrictions et jointures Permutation des projections et des jointures Regroupement des intersections sur une même relation Optimisation des requêtes 32

Exemple d arbre algérique : noms des buveurs habitant Strasbourg ayant bu du Riesling depuis le 1-1-06 33

6. Fonctions et agrégats 6.1. fonctions de calcul Expression d attributs : Expression arithmétique construite à partir d attributs d une relation et de constantes, par application de fonctions arithmétiques successives Exemples : - 5 + 3 * 2; Q * 10; X X * Y / 3 Les expressions peuvent être utilisées comme arguments des opérations algébriques Exemple : - R1= JOIN (VINS, CONSOMMATION, DEGRE*QUANTITE/100 > QUANTITE/10) - R2= RESTRICT (R1, DEGRE*QUANTITE/100 > 10) - RESULTAT= PROJECT(R2, CRU, QUANTITE*DEGRE/100) 34

6.2. Support des agrégats Agrégat : Partitionnement horizontal d une relation en fonction des valeurs d un groupe d attributs, suivi d un regroupement par application d une fonction de calcul sur ensemble SOMME (SUM) : somme des éléments d un ensemble MOYENNE (AVG) : moyenne des éléments d un ensemble MINIMUM (MIN) : élément minimum d un ensemble MAXIMUM (MAX) : élément maximum d un ensemble COMPTE (COUNT) : compte les éléments d un ensemble Exemples : - RES= AGREGAT(VINS; CRU; SUM{QUANTITE}) - RES= AGREGAT(VINS;;AVG{DEGRE}) 35

Exemple VINS Cru Mill Degré Quantité ------------------------------------------------------- Riesling 1987 11,5 100 Riesling 1999 12 200 Coronas 1985 13 300 Coronas 1997 13 50 Chablis 1993 11,5 400 AGREGAT(VINS;;AVG{DEGRE}) MOY DEGRE ------------------- 12,2 AGREGAT(VINS; CRU; SUM{QUANTITE}) SUM Cru QUANTITE ------------------------------------------ Riesling 300 Coronas 350 Chablis 400 36