Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN : 978-2-212-12091-2



Documents pareils
Chapitre 5 LE MODELE ENTITE - ASSOCIATION

UML et les Bases de Données

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

I4 : Bases de Données

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

Le Langage De Description De Données(LDD)

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

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

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

CREATION WEB DYNAMIQUE

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Création et Gestion des tables

Les différents types de relation entre les tables

TP Contraintes - Triggers

Bases de données relationnelles & SQL

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

1 Position du problème

Bases de Données Avancées

Pour les débutants. langage de définition des données

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

Modèle Entité/Association

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

UML (Diagramme de classes) Unified Modeling Language

Auto-évaluation Oracle: cours de base

Bases de données relationnelles

Les bases de données et SQL

TP3 : Creation de tables 1 seance

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Compétences Business Objects

Concevoir une base de données

Nom de l application

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Application web de gestion de comptes en banques

Conception d une base de données

Langage SQL : créer et interroger une base

Olivier Mondet

Historisation des données

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Corrigés détaillés des exercices

Rappel sur les bases de données

SUPPORT DE COURS / PHP PARTIE 3

RÈGLES DE TRANSFORMATION DU MCD AU MLD (MRD)

Gestion de base de données

1/ Présentation de SQL Server :

Modélisation et Gestion des bases de données avec mysql workbench

Objectifs du TP : Initiation à Access

Oracle. SQL 3 - Objet - XML. Auteur : Clotilde Attouche. Version 1.1. Du 6 Mars 2010

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

MEGA Database Builder. Guide d utilisation

Base est le module pour les bases

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

Master Exploration Informatique des données DataWareHouse

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

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Installation d'un serveur FTP géré par une base de données MySQL

Concevoir un modèle de données Gestion des clients et des visites

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

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

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

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

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

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

Concevoir et déployer un data warehouse

Les bases de données

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

A QUOI SERVENT LES BASES DE DONNÉES?

Conception, architecture et urbanisation des systèmes d information

SQL Data Export for PS/PSS

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

1 Modélisation d une base de données pour une société de bourse

Encryptions, compression et partitionnement des données

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Principes de la conception des bases de données

B-web V4 MANUEL D UTILISATION. Espace de travail. Clear2Pay Belgium SA B-web V4 Manuel d Utilisation: Espace de travail

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

Vincent Augusto

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

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

Notes de cours : bases de données distribuées et repliquées

... /5. Bases de Données I (J. Wijsen) 23 janvier 2009 NOM + PRENOM : Orientation + Année : Cet examen contient 11 questions.

Talend Technical Note

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

1 Introduction et installation

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

Utiliser Access ou Excel pour gérer vos données

Modélisation des données

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

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

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

Bases de Données Avancées

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

16H Cours / 18H TD / 20H TP

Transcription:

Christian Soutou UML 2 pour les bases de données Avec 20 exercices corrigés Groupe Eyrolles, 2007, ISBN : 978-2-212-12091-2

chapitre n 3 Le niveau physique : de SQL2 à SQL3 Associations réflexives Les associations réflexives sont des associations binaires (un-à-un, un-à-plusieurs, plusieurs-àplusieurs) ou n-aires. Les transformations sont analogues aux associations non réflexives. Un-à-plusieurs Les règles R1 et R2 sont appliquées à l association réflexive un-à-plusieurs de l exemple 3-12. La clé étrangère contiendra le code du chef pilote pour chaque pilote. Pour tout chef, cette clé étrangère ne contiendra pas de valeur (NULL). Figure 3-12 Exemple d association réflexive un-à-plusieurs Pilote nom fonction compagnie 1,N 0,1 ChefPilote Pilote nom fonction compagnie 0..1 1..* ChefPilote R1 et R2 Pilote[, nom, fonction, compagnie, chef#] La partie SQL indiquée en gras souligne la particularité de l association réflexive. Tableau 3.9 Association réflexive un-à-plusieurs Pilote[, nom, fonction, compagnie, chef#] CREATE TABLE pilote ( VARCHAR(8), nom VARCHAR(30), fonction VARCHAR(4), compagnie VARCHAR(4), chef VARCHAR(8), CONSTRAINT pk_pilote PRIMARY KEY(), CONSTRAINT fk_pilote_chef_pilote FOREIGN KEY(chef) REFERENCES pilote()) Plusieurs-à-plusieurs Les règles R1 et R3 sont appliquées à l association réflexive plusieurs-à-plusieurs de l exemple 3-13 (modélisation de la distance entre deux aéroports). Éditions Eyrolles 195

UML 2 pour les bases de données Figure 3-13 Exemple d association réflexive plusieurs-à-plusieurs Aeroport codeoaci nomaero ville 1,N Aeroport codeoaci nomaero ville 1..* 1,N Distance nautiques 1..* Distance nautiques R1 et R3 Aeroport[codeOACI, nomaero, ville] Distance[codeOACI1#, codeoaci2#, nautiques] Le script SQL est le suivant. Tableau 3.10 Association réflexive plusieurs-à-plusieurs Aeroport[codeOACI, nomaero, ville] Distance[OACI1#, OACI2#, nautiques] CREATE TABLE Aeroport (codeoaci VARCHAR(8), nomaero VARCHAR(30), ville VARCHAR(20), CONSTRAINT pk_aeroport PRIMARY KEY(codeOACI)) CREATE TABLE Distance (OACI1 VARCHAR(8),OACI2 VARCHAR(8), nautiques NUMBER(4), CONSTRAINT pk_distance PRIMARY KEY(OACI1,OACI2), CONSTRAINT fk_distance_aeroport1 FOREIGN KEY(OACI1) REFERENCES Aeroport(codeOACI), CONSTRAINT fk_distance_aeroport2 FOREIGN KEY(OACI2) REFERENCES Aeroport(codeOACI)) 196 Éditions Eyrolles

chapitre n 3 Le niveau physique : de SQL2 à SQL3 Solution universelle Il est possible de modéliser toute association par une table supplémentaire, qui contiendra autant de clés étrangères qu il y a de tables à relier, et sur lesquelles existera ou non une contrainte de type UNIQUE. Ce principe s apparente à la règle R3. Cette solution présente l avantage de pouvoir faire évoluer le schéma plus facilement si les cardinalités viennent à changer dans le temps. En effet, il n y a besoin de modifier la structure d aucune table, seules des contraintes UNIQUE devront être désactivées. Considérons à nouveau l exemple des stages des étudiants. La table supplémentaire (Effectuer) contient deux colonnes réalisant l association. Sur chaque colonne, il sera impératif de définir une contrainte UNIQUE qui garantira les cardinalités maximales de l association (ici un-à-un). Tableau 3.11 Solution universelle pour une association un-à-un Stage[nstage, entreprise] Effectuer[netu#, nstage#] Etudiant[netu, nometu] CREATE TABLE Stage (nstage VARCHAR(4), entreprise VARCHAR(30), CONSTRAINT pk_stage PRIMARY KEY(nstage)) CREATE TABLE Etudiant (netu VARCHAR(2), nometu VARCHAR(30), CONSTRAINT pk_etudiant PRIMARY KEY(netu)) CREATE TABLE Effectuer (netu VARCHAR(2), nstage VARCHAR(4), CONSTRAINT pk_effectuer PRIMARY KEY(netu,nstage), CONSTRAINT fk_effectuer_nstage_stage FOREIGN KEY(nstage) REFERENCES Stage(nstage), CONSTRAINT fk_effectuer_netu_etudiant FOREIGN KEY(netu) REFERENCES Etudiant(netu), CONSTRAINT unique_effectuer_netu UNIQUE (netu), CONSTRAINT unique_effectuer_nstage UNIQUE (nstage)) Ce schéma est évolutif. En effet, si un stage peut être effectué par plusieurs étudiants, il faudra simplement désactiver la contrainte (ALTER TABLE Effectuer DISABLE CONSTRAINT unique_effectuer_nstage). On retrouvera une association un-à-plusieurs. Si un étudiant peut effectuer plusieurs stages, il faudra désactiver l autre contrainte. On se retrouvera alors avec une association plusieurs-à-plusieurs. Éditions Eyrolles 197

UML 2 pour les bases de données Traduction des associations d héritage Nous expliquerons dans un premier temps la traduction SQL2 des associations d héritage en fonction de la décomposition choisie (chapitre 2, section Héritage). Nous détaillerons ensuite la traduction d éventuelles contraintes (partition, totalité et exclusivité). Nous avons recensé au chapitre précédent trois familles de décomposition au niveau logique pour traduire une association d héritage : décomposition par distinction, descendante (push-down) et ascendante (push-up). Décomposition par distinction L héritage 3-14 (sans contrainte avec Merise/2 se modélisant par une contrainte UML) est traduit suivant le principe de décomposition par distinction. La clé primaire issue de la surentité (sur-classe) est dupliquée dans les deux tables déduites des sous-entités (sous-classes). Figure 3-14 Merise/2 Décomposition par distinction d une association d héritage UML {incomplete,overlapping} validitelicence validitelicence [#,, ] distinction [, ] [#,, validitelicence] Le schéma physique est composé de trois tables dotées de la même clé primaire. La table stockera notamment les personnels n étant ni ni. 198 Éditions Eyrolles

chapitre n 3 Le niveau physique : de SQL2 à SQL3 Tableau 3.12 Héritage par distinction [#,, ] [, ] [#,, validitelicence] CREATE TABLE ( NUMBER, VARCHAR(20), CONSTRAINT pk_ PRIMARY KEY()) CREATE TABLE ( NUMBER, NUMBER, NUMBER(8,2), CONSTRAINT pk_ PRIMARY KEY(), CONSTRAINT fk FOREIGN KEY() REFERENCES ()) CREATE TABLE ( NUMBER, VARCHAR(10), validitelicence DATE, CONSTRAINT pk_ PRIMARY KEY(), CONSTRAINT fk FOREIGN KEY() REFERENCES ()) Décomposition descendante (push-down) L héritage de partition 3-15 ex le fait qu aucun personnel ne peut être à la fois et, et qu il n existe pas non plus de personnel n étant ni ni. Nous verrons plus loin comment traduire cette contrainte. Il est question ici uniquement de traduire les relations déduites au niveau logique en tables. Figure 3-15 Exemple de décomposition descendante (push-down) d une association d héritage Merise/2 UML XT {complete, disjoint } validitelicence validitelic ence [,,, ] push-down [,,, validitelicence] Éditions Eyrolles 199