Contraintes d Intégrité dans le Modèle Relationnel. Marc Plantevit.

Documents pareils
Langage SQL : créer et interroger une base

Les bases de données

Le langage SQL Rappels

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

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

Bases de données - Modèle relationnel

Rappel sur les bases de données

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

Cours de bases de données. Philippe Rigaux

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Modèle conceptuel : diagramme entité-association

Introduction aux Bases de Données

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

UML et les Bases de Données

1 Introduction et installation

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

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Bases de données cours 1

Information utiles. webpage : Google+ : digiusto/

Intégrité sémantique dans les bases de données relationnelles

Architectures d'intégration de données

Cours 1 : Qu est-ce que la programmation?

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

Bases de données élémentaires Maude Manouvrier

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

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

Chapitre I : le langage UML et le processus unifié

Université de Bangui. Modélisons en UML

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Bases de données documentaires et distribuées Cours NFE04

Conception des systèmes répartis

MODE D EMPLOI DU LOGICIEL LIGNES DE TEMPS A partir du film La Mort aux trousses d Alfred Hitchcock

Compte-rendu de projet de Système de gestion de base de données

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Bases de Données. Plan

OBJECTIFS ET ARCHITECTURE DES SGBD

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Vincent Augusto

Créer le schéma relationnel d une base de données ACCESS

Nom de l application

Bases de données. Chapitre 1. Introduction

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

Bases de données relationnelles & SQL

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

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

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

Concevoir une base de données

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Règlement du jeu concours «Souvenir de Match»

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

II. Modèle conceptuel le modèle entité-association

Business Intelligence

A QUOI SERVENT LES BASES DE DONNÉES?

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

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

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

Bases de données relationnelles

Résumé CONCEPTEUR, INTEGRATEUR, OPERATEUR DE SYSTEMES CRITIQUES

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

IFT2255 : Génie logiciel

Le Langage De Description De Données(LDD)

PREMIERE DEMANDE D UNE CARTE NATIONALE D IDENTITE

ORACLE TUNING PACK 11G

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

Développement d un interpréteur OCL pour une machine virtuelle UML.

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

1. Introduction Création d'une requête...2

Business Intelligence avec Excel, Power BI et Office 365

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

CAHIER DES CLAUSES TECHNIQUES PARTICULIÈRES (CCTP) MISE EN PLACE ET MAINTENANCE D UN MOTEUR DE RECHERCHE

Introduction aux SGBDR

Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

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

OCL - Object Constraint Language

Olivier Mondet

exigences des standards ISO 9001: 2008 OHSAS 18001:2007 et sa mise en place dans une entreprise de la catégorie des petites et moyennes entreprises.

Élasticité des applications à base de services dans le Cloud

16H Cours / 18H TD / 20H TP

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Bases de données et sites WEB

Mercredi 15 Janvier 2014

Intelligence Artificielle Planification

Chap. 3: Le modèle de données entité-association (E.A.)

Cours Bases de données 2ème année IUT

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

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

Devenez un véritable développeur web en 3 mois!

Chapitre 5 : Flot maximal dans un graphe

SQL Server 2012 et SQL Server 2014

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

L A B U S I N E S S. d a t a g i n f o r m a t i o n g a c t i o n

Transcription:

Contraintes d Intégrité dans le Modèle Relationnel Marc Plantevit marc.plantevit@liris.cnrs.fr

Objectifs Structure du modèle relationnel (cours préc.) Permet de modéliser la réalité à un certain niveau de granularité : les attributs vont décrire les objets; on peut séparer les données dans différentes relations avec des noms explicites ; Largement insuffisant pour représenter plus finement les différents aspects des données réelles. L incapacité à représenter des méta-données conduit sans conteste à un certain nombre de problèmes. Contraintes d intégrité Un cadre pour ajouter une sémantique au modèle relationnel. Propriétés supposées être satisfaites par toutes les instances d un schéma de bases de données. Ex. : numéro de sécurité sociale (clé). 2

Plan 1 Motivations 2 Dépendances fonctionnelles et clés 3 Dépendances d inclusion 3

Films Titre Metteur Acteur Les oiseaux Hitchcock Hedren Les oiseaux Hitchcock Taylor Bladerunner Scott Hannah Apocalypse Now Coppola Brando Programme Ciné Salle Titre Friandise Rex 1 Les oiseaux café Rex 1 Les oiseaux popcorn Rex 2 Bladerunner café Rex 2 Bladerunner popcorn ArtC 1 Les oiseaux thé ArtC 1 Les oiseaux popcorn Cinoche 1 Les oiseaux Coca Cola Cinoche 1 Les oiseaux vin Cinoche 2 Bladerunner Coca Cola Cinoche 2 Bladerunner vin Table: Exemple BD 4

Introduction dépendances Le schéma en lui-même ne fait aucune restriction sur les données qui peuvent être stockées. Toutefois, l application attendue de ce schéma peut impliquer plusieurs de ces restrictions. Exemple : les dépendances fonctionnelles (df) Un seul metteur en scène associé à chaque titre de film. Dans Programme, un seul titre de film est associé à un couple cinéma-salle donné. Les valeurs de certains des attributs d un tuple déterminent de façon unique, ou fonctionnellement, les valeurs des autres attributs du tuple. Films : Titre Metteur Programme : Ciné Salle Titre. 5

Une relation I satisfait la dépendance fonctionnelle X Y ssi pour tout couple s, t de tuples de I on a : π X (s) = π X (t) π Y (s) = π Y (t). Une des notions importantes de la théorie des dépendances est celle d implication. On peut observer que toute relation qui satisfait la dépendance : Titre Metteur, satisfait également la dépendance : Titre, Acteur Metteur. On dit que la première df implique la seconde. 6

Dépendance de clé Une dépendance de clé est une dépendance fonctionnelle X U, Ex. : où U est l ensemble de tous les attributs de la relation. X est appelée clé. Titre, Acteur Titre, Acteur, Metteur est une dépendance de clé. 7

Dépendances de jointure (dj) (th, sc, ti, sn) est dans Programme si le cinéma th passe le film ti dans la salle sc et si le cinéma th propose la friandise sn. Intuitivement, on peut deviner une certaine indépendance entre les attributs Salle, Titre et l attribut Friandise, pour une valeur donnée de Ciné. Ex. : (Cinoche, 1, Les oiseaux, Coca Cola) et (Cinoche, 2, Bladerunner, vin) sont dans Programme, (Cinoche, 1, Les oiseaux, vin) et (Cinoche, 2, Bladerunner, Coca Cola) devraient également être présents 8

Plus précisément si une relation I possède cette propriété, alors on a : I = π Ciné,Salle,Titre (I) π Ciné,Friandise (I). C est un exemple simple de dépendances de jointure (dj), exprimée formellement par : Programme : [{Ciné, Salle, Titre}, {Ciné, Friandise}]. Une dj peut faire intervenir plus de deux ensembles d attributs! Une dépendance multivaluée (dmv) est un cas particulier de dj qui possède au plus deux ensembles d attributs. 9

Dépendances d inclusion (di) Un troisième type de dépendances, appelées dépendances d inclusion (di) ou contraintes référentielles. Entre deux relations. Ex. : Tout titre projeté actuellement (présent dans la relation Programme) est le titre d un film (c est-à-dire apparaissant dans la relation Films). Programme[Titre] Films[Titre]. Les di peuvent faire intervenir des séquences d attributs de chaque côté. 10

Un mécanisme formel pour exprimer des propriétés attendues des données stockées Si on sait que la BD satisfait un ensemble de dépendances, alors cette information peut être utilisée : pour améliorer la conception d un schéma; pour protéger les données en se prémunissant contre certaines mise à jour erronées; pour améliorer les performances. 11

Conception du schéma et anomalies de mise à jour Les dépendances sont utilisées pour fournir des informations sur la sémantique de l application afin que le système puisse aider l utilisateur à choisir, parmi tous les schémas possibles, le plus approprié. Il existe plusieurs façons, pour un schéma, de ne pas être approprié. Informations incomplètes : Supposons qu il faille insérer le titre d un nouveau film et son metteur en scène sans encore connaître les acteurs. Impossible avec le schéma décrit précédemment. Anomalie d insertion. Phénomène analogue pour les anomalies de suppression. 12

Redondance Le fait que Coca Cola puisse être trouvé au Cinoche est enregistré plusieurs fois. Supposons de plus que le directeur du Cinoche décide de vendre du Pepsi Cola au lieu du Coca Cola. Il faut modifier plusieurs tuples sinon violation de la dépendance de jointure. Anomalie de modification possible. Des anomalies d insertion et de suppression sont également causées par la redondance. 13

Schéma plus approprié : La relation Films pourrait être décomposée en deux relations M-Metteur[Titre, Metteur] et M-Acteur[Titre, Acteur] avec la df M-Metteur : Titre Metteur. Programme pourrait être décomposée en deux relations ST-Programme[Ciné, Salle, Titre] et S-Programme[Ciné, Friandise], avec La df ST-Programme : Ciné, Salle Titre. 14

Intégrité des données Dépendances des données servent également de filtres aux m.a.j Une proposition de m.a.j conduisant à une violation d une dépendance σ, alors la m.a.j est rejetée. Le système supporte les transactions. Durant une transaction, la BD peut être dans un état inconsistant mais, à la fin de celle-ci, le système doit vérifier l intégrité de la BD. Si les dépendances sont violées, alors la transaction entière est rejetée, sinon elle est acceptée (validée). 15

Implémentation efficace et optimisation de requêtes La connaissance des propriétés structurelles des données stockées est utile à l amélioration des performances d un système pour une application particulière. La satisfaction des dépendances conduit à une grande variété d alternatives pour les structures de stockage et d accès. Ex. : La satisfaction d une df ou d une dj implique qu une relation peut être stockée physiquement sous forme décomposée. Ex. ++ : La satisfaction d une dépendance de clé peut être utilisée pour réduire l espace d indexation. 16

Retour sur les dépendances Les dépendances fonctionnelles Les dépendances d inclusion Les dépendances de jointure Les dépendances multi-valuées 17

Plan 1 Motivations 2 Dépendances fonctionnelles et clés 3 Dépendances d inclusion 18

DF La forme la plus fréquemment rencontrée de dépendances. Sont à l origine de l approche par décomposition des schémas. Classe de dépendances On doit définir la syntaxe et la sémantique des dépendances concernées. La syntaxe : c est le langage logique autorisé pour définir une contrainte. C est la forme de la contrainte. La sémantique : ensemble de conditions devant être remplies pour que la contrainte soit satisfaite (c est à dire juste) dans les données. C est le sens de la contrainte. 19

Définition DF La syntaxe des dépendances fonctionnelles est définie ainsi : Dépendance fonctionnelle (DF) Une dépendance fonctionnelle (DF) sur un schéma de relation R est une expression de la forme R : X Y (ou simplement X Y lorsque R est implicite), où X, Y R. Une DF X Y est dite triviale si Y X et standard si X. 20

Une DF est donc une contrainte définie sur un schéma. Une DF est dite valide sur un schéma R si elle est satisfaite dans toute relation r sur R, selon de la définition suivante pour la satisfaction : Satisfaction d une DF dans une relation Soit r une relation sur R. Une DF R : X Y est satisfaite dans r si t 1, t 2 r on a t 1 [X] = t 2 [X] = t 1 [Y ] = t 2 [Y ]. Exemple 21

Si X Y est satisfaite dans une relation r, on dit aussi que X détermine Y dans r. De façon intuitive, on définit une DF X Y pour exprimer le fait que lorsqu on connaît la valeur de X, alors on peut déterminer (en parcourant la relation) de façon certaine la valeur de Y. La notion de clé d une relation est très connue par les utilisateurs du modèle relationnel. Clé Une clé peut-être définie de deux manières : une clé est un ensemble d attributs qui ne prend jamais deux fois la même valeur (pas de doublons dans les relations); A l aide des DF : une clé est un ensemble d attributs qui détermine (au sens des DF) tous les autres attributs de la relation. Ces deux définitions sont rigoureusement équivalentes. Une clé primaire est simplement une clé parmi les autres, choisie par le concepteur pour sa simplicité ou son aspect naturel. 22

Plan 1 Motivations 2 Dépendances fonctionnelles et clés 3 Dépendances d inclusion 23

Les DI se différencient des DF sur plusieurs points. 1 Peuvent être définies entre attributs de relations différentes et possèdent un caractère plus global. 2 Les DI sont définies non pas entre deux ensembles quelconques d attributs, mais entre deux séquences d attributs de même taille. L ordre des attributs est donc très important pour les DI!!! 24

Syntaxe La syntaxe (forme) des DI est la suivante. Dépendance d inclusion Soit R un schéma de base de données. Une dépendance d inclusion sur R est une expression de la forme R[X] S[Y ], où R, S R, X et Y sont des séquences d attributs distincts respectivement de R et de S, et X = Y. 25

Sémantique Une DI est satisfaite dans une base de données si toutes les valeurs prises par la partie gauche apparaissent dans la partie droite. Satisfaction d une DI Soit d = {r 1, r 2,..., r n } une base de données sur un schéma R = {R 1,..., R n }. Une dépendance d inclusion R i [X] R j [Y ] sur R est satisfaite dans d, noté d = R i [X] R j [Y ], si t i r i, t j r j t i [X] = t j [Y ] (de manière équivalente, π X (r i ) π Y (r j )). 26

Exemple (1) Supposons des schémas de relation pour décrire les modules : MODULE = {NUMMODULE; INTITULE; DESC} et un schéma de relation pour décrire les séances de cours : SEANCE = {DATE; NUMMODULE; NUMSALLE} Pour forcer que les numéros de modules dans les séances soient bien des modules qui existent, on devra alors définir la contrainte : 27

Exemple (1) Supposons des schémas de relation pour décrire les modules : MODULE = {NUMMODULE; INTITULE; DESC} et un schéma de relation pour décrire les séances de cours : SEANCE = {DATE; NUMMODULE; NUMSALLE} Pour forcer que les numéros de modules dans les séances soient bien des modules qui existent, on devra alors définir la contrainte : SEANCE[NUMMODULE] MODULE[NUMMODULE] 27

Exemple (2) Supposons maintenant un schéma de relation EMPRUNTVIDEO modélisant les réservations de vidéos pour les séances, sous la forme : EMPRUNTVIDEO = {DATE, NUMMODULE; NUMPROF; NUMVIDEO} Pour assurer la cohérence de la base, on doit préciser que les vidéos doivent être réservés pour des séances existantes dans la base ; on définira alors la DI : 28

Exemple (2) Supposons maintenant un schéma de relation EMPRUNTVIDEO modélisant les réservations de vidéos pour les séances, sous la forme : EMPRUNTVIDEO = {DATE, NUMMODULE; NUMPROF; NUMVIDEO} Pour assurer la cohérence de la base, on doit préciser que les vidéos doivent être réservés pour des séances existantes dans la base ; on définira alors la DI : EMPRUNTVIDEO[DATE, NUMMODULE] SEANCE[DATE, NUMMODULE] Si on inverse les attributs à gauche par exemple, la DI change complètement de signification! 28

Une contrainte d intégrité référentielle est une DI dont la partie droite est une clé (Un attribut (ou ens. d attributs) d une relation apparait comme clé d une autre relation). ; La partie gauche d une contrainte d intégrité référentielle est appelée clé étrangère 29

Exemple les DI ne définissent pas toujours des clés étrangères!!! Il suffit d imaginer qu on souhaite imposer que tous les cours possèdent au moins une séance dans l année : on définira alors une DI : COURS[NUMCOURS] SEANCE[NUMCOURS] Tous les cours apparaîtront au moins une fois dans la relation des séances; NUMCOURS n est pas une clé de SEANCE (on imagine difficilement que tous les cours n aient qu une seule séance!) Donc ce n est pas une contrainte d intégrité référentielle. 30

Exemple les DI ne définissent pas toujours des clés étrangères!!! Il suffit d imaginer qu on souhaite imposer que tous les cours possèdent au moins une séance dans l année : on définira alors une DI : COURS[NUMCOURS] SEANCE[NUMCOURS] Tous les cours apparaîtront au moins une fois dans la relation des séances; NUMCOURS n est pas une clé de SEANCE (on imagine difficilement que tous les cours n aient qu une seule séance!) Donc ce n est pas une contrainte d intégrité référentielle. 30

Fin de la séance!!! Ce qu il faut retenir Les dépendances apportent de la sémantique au modèle relationnel. Les différents types de dépendances. Les dépendances fonctionnelles : définition (syntaxe), satisfaction (sémantique) Etant donnée une instance r de BD, être capable de dire si r vérifie une df X Y. ++ Etant donnée une instance r de BD, exhiber toutes les df valides. clé & cie dépendances d inclusion définition (syntaxe), satisfaction (sémantique) 31