Le Modèle Entité-Association (et UML) et les Bases de Données Relationnelles



Documents pareils
Modèle Entité/Association

Les Bases de Données et l Objet Introduction

Bases de données. Chapitre 1. Introduction

Bases de données cours 1

I4 : Bases de Données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

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

Information utiles. webpage : Google+ : digiusto/

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

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

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

INTRODUCTION AUX BASES de DONNEES

Bases de données relationnelles : Introduction

Bases de Données Avancées

Bases de données avancées Introduction

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

Bases de données relationnelles

Université de Bangui. Modélisons en UML

Visual Paradigm Contraintes inter-associations

TP Bases de données réparties

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

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

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 - Modèle relationnel

UML et les Bases de Données

Introduction aux bases de données

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

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

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

TP Contraintes - Triggers

Corrigés détaillés des exercices

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Bases de données relationnelles & SQL

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

Bases de Données. Plan

Introduction aux Bases de Données

Application web de gestion de comptes en banques

CREATION WEB DYNAMIQUE

Dossier I Découverte de Base d Open Office

A QUOI SERVENT LES BASES DE DONNÉES?

Le Langage De Description De Données(LDD)

Le Langage SQL version Oracle

Les bases de données

Modélisation des données

A QUOI SERVENT LES BASES DE DONNÉES?

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

OpenPaaS Le réseau social d'entreprise

Langage SQL : créer et interroger une base

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

Bases de Données OLAP

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

SQL Historique

Compétences Business Objects

UML (Diagramme de classes) Unified Modeling Language

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

Infrastructure à Clé Publique (PKI Public Key Infrastructure)

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

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

1 Introduction et installation

Nom de l application

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

Hala Skaf-Molli. Nancy-Université 14 mai 2007

MEGA Database Builder. Guide d utilisation

Bases de données élémentaires Maude Manouvrier

Bases de données et sites WEB Licence d informatique LI345

Conception, architecture et urbanisation des systèmes d information

Compte Rendu d intégration d application

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Module BDR Master d Informatique (SAR)

Bases de données et sites WEB

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

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

Les frameworks au coeur des applications web

Réflexion autour des Bases de données pour la gestion du personnel. Administration locale

Cours de bases de données. Philippe Rigaux

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

Diagramme de classes

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

Tickets 3:3. ChevauxPartants

IFT2255 : Génie logiciel

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

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

Modèle Entité-Association. C est un modèle important pour la conception des bases de données relationnelles. Il

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

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

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

16H Cours / 18H TD / 20H TP

Rappel sur les bases de données

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

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

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

Cours Bases de données

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

COURS de BASES de DONNEES

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Transcription:

http://www-adele.imag.fr/users/didier.donsez/cours Le Modèle Entité-ssociation (et UML) et les ases de Données Relationnelles Didier DONSEZ Université Joseph Fourier PolyTech Grenoble - LIG/DELE Didier.Donsez@imag.fr Didier.Donsez@ieee.org

2 Motivations Modèle Entité/ssociation (Entity/Relationship) point de départ aux MCD de breuses méthodes Merise, OMT, UML, extension objet (héritage) Modèle Relationnel modèle de base pour les SGDs relationnels >70 % des applications SI théorie de la normalisation suppression des redondances mais il faut déterminer toutes les dépendances fonctionnelles Transformation E/ vers le Relationnel

Modèle Entité-ssociation E/ [Chen76] Entity-Relationship Model E/R 3 Concepts de ase Type d Entité (Entity Set) Type d ssociation (Relationship Set) ttribut (ttribute) Clé (Key) Etudiant Suivre Cours numss adresse année code titre heures ase pour de breux autres méthodologies Merise, OMT, ooch,, Diagramme de classes UML (1 & 2) Etudiant numss adresse 0..n Suivre année 0..n Cours code titre heure

4 Les Clés Une entité a une et une seule clé même si plusieurs clés sont candidates les attributs clé sont soulignés Cours Cours formation intitulé salle heure formation intitulé salle heure

5 Choisir une Clé Naturelle (Natural) ttribut seul ou composition d attributs doit toujours être renseigné (NOT NULL) Remarque : ttribut clé représentant une composition ISN : numéro intl d éditeur + numéro d ouvrage GENCOD, EN, SKU : numéro intl de fabricant + numéro de produit clé d une entité faible rtificielle (Surrogate) introduction d un attribut artificiel n appartenant pas au système décrit. performance en comparaison compacité du stockage souvent employé pour les bases décisionnelles

Cardinalités des ssocations Multiplicity of Relationships 6 Many-to-many N-M 0,n - 0,n Many-to-one N-1 0,n - 0,1 One-to-one 1-1 0,1-0,1 E/ UML 0..n R R R 0..n 0..n 0..1 0..1 0..1

ssociativité Many-to-One 7 Etudiants Encadrant de Stage Enseignants Se lit : «Un étudiant est encadré que par un enseignant» Se lit : «Un enseignant encadre plusieurs étudiants»

8 ssociation n-ire Plusieurs entités peuvent participer à la même associations Exemple d un association ternaire Etudiants Enseigne TDs numss adresse ssistants numemp bureau codcours titre coef

Modèle Entité-ssociation Entity-Relationship Model 9 Etudiants Suivre Cours année Etudiants Suivre Cours nnée année

Rôles dans une association 10 Rôles asymétrique / symétrique Couple mi époux épouse 1 2 Personne Personne époux Joseph Sanson épouse Marie Dalida Pierre Paul 1 2 Paul Jean

Les Entités Faibles (Weak Entity) 11 Parfois, un attribut de la clé d une entité (dite faible) provient d une autre entité Exemple Logins @ Machines Produit Instance de Modèle fabriquer Marque nserie Remarque Certains attributs clés sont composés et forme la clé d une entité faible ISN, GENCOD, EN, SKU, IN, code

13 Transformation E/ vers Relationnel ut Implantation du modèle E/ sur un SGD réel Méthode transformation des associations n-aires en associations binaires 1 entité = 1 relation 1 association = dépendant de sa cardinalité Cas de navigation restriente Employé nemp sal appartient > 1..n 1 Service adr

Cas général : ssociation Many-to-Many 14 R 0..n 0..n ka aa cc kb bb ka aa cc kb bb Many-to-Many N-M ka aa R ka kb cc... kb bb create table ( ka, aa, primary key(ka) ) create table R ( ka, kb, cc, primary key(ka,kb), foreign key (ka) references, foreign key (kb) references ) create table ( kb, bb, primary key(kb) )

Cas d une ssociation Many-to-One 15 R 0..n 0..1 Coût des jointures! ka aa cc kb bb ka aa cc kb bb ka aa R ka kb cc kb bb Many-to-One N-1 ka aa kb cc... kb bb...... create table ( ka, kb, aa, cc, primary key(ka), foreign key (kb) references check(cc IS NULL OR kb IS NOT NULL) ) create table ( kb, bb, primary key(kb) )

Cas d une ssociation One-to-One 16 Coût des jointures! One-to-One 1-1 ka aa ka aa kb... R R ka kb cc... ka aa cc kb bb cc... ka aa kb bb kb bb 0..1 0..1 cc kb bb ka aa kb bb ka cc

17 Cas d une ssociation avec des Rôles rôle 2 rôle1 R ka aa cc ka aa create table ( ka, aa, primary key(ka) ) R krole1... krole2... cc... create table R ( krole1, krole2, cc, primary key(krole1, krole2), foreign key (krole1) references, foreign key (krole2) references ) Rôle symétrique et One-To-One quel est le danger de cette modélisation? ka aa krole2... cc... Rôle Symétrique et One-to-One

18 Cas de l entité faible (Weak Entity) R ka aa cc kb bb ka aa 0..n 0..1 cc kb bb ka aa kb cc kb bb...... create table ( ka, kb, aa, cc, primary key(ka,kb), - - différent du cas N-to-1 foreign key (kb) references ) Cas de l aggrégation en UML create table ( kb, bb, primary key(kb) )

19 Cas de navigation restreinte La navigation est unidirectionnelle Exemple adr Hotel Héberge Client adr

Exercices de transformation E/ vers Relationnel 20 Exercice 1 transformez les cas de l entité faible avec 3 tables,, R Exercice 2 transformez le schéma suivant attention à l ordre des s Machines @ Domaines Secondaires @ Domaines Primaires

Exercices de transformation E/ vers Relationnel 21 Exercice 3 transformez le schéma suivant #client Client Préfère Date date Produit R Modèle #serie sav #mod design R cc #mar Marque

23 Le Cas des Sous Entités (i) Employé Cadre Empl Cadre nemp sal prime nemp sal prime 1 - Separation Emp nemp 100 200 Dupond Durant sal 5000 20000 Cadre nemp 200 prime 10000 Cadre.nemp est une clé étrangère sur Emp 2 - Push down Emp nemp 100 Dupond sal 5000 Cadre nemp 200 Durant CI : {Emp.nemp} {Cadre.emp} = sal 20000 prime 10000

Le Cas des Sous Entités (ii) 25 Employé nemp sal Cadre prime Empl nemp sal Cadre prime 3 - Push Up Emp nemp 100 200 Dupond Durant sal 5000 20000 prime NULL 10000

Le Cas des Sous Entités (iii) 27 Inconvénients 1 Jointure pour reconstituer Cadre 2 Union pour reconstituer Employé 3 Pas de distinction entre un Employée et un Cadre avec une prime NULL en général, pas d abstraction dans les Traitements

mélioration du Cas 3 - Push Up 28 Employé nemp sal Cadre prime Empl nemp sal Cadre prime 4 Emp typemp EMP CD nemp 100 200 Dupond Durant sal 5000 20000 prime NULL 10000 Emp typemp EMP CD 5 Emp typemp EMP CD nemp 100 200 Emp.typemp est une clé étrangère CI : Emp.typemp =EMP prime=null Dupond Durant sal 5000 20000 prime NULL 10000 Domaine typemp, CD typeemp IN (EMP,CD) CI : Emp.typemp =EMP prime=null

Entité bstraite 30 Employé : entité abstraite (notion dans Java, C#, C++, UML,...) pas de tuple (instance) Employé Employé Cadre prime nemp sal Ouvrier equipe Emp typemp OUV CD nemp 100 200 Dupond Durant sal 5000 20000 prime NULL 10000 equipe Nuit NULL Domaine typemp CD typeemp IN (OUV,CD) CI : Emp.typemp!=CD prime=null CI : Emp.typemp!=OUV equipe=null

Transformation E/ vers Relationnel L évolution de Schéma 32 Inconvénients jout d une sous entité Dirigeant Employé Cadre Dirigeant nemp sal prime Impacts sur le schéma sur les contraintes d intégrité sur les contraintes de domaines sur les traitements Solution : l Objet-Relationnel ou l Objet Pur Département

Transformation E/ vers l Objet-Relationnel 33 ut Implantation du modèle E/ sur un SGD Objet-Relationnel Fonctionnalités disponibles pour les Sous-Entités Héritage de Type et Héritage de Table pour les ssociations table indépendante ou collection imbriquée (tableau dimensionnable, table imbriquée) clé étrangère ou référence d objet breuses solutions [Soutou99] pp84,93,103-105

34 Héritage Héritage de Table Mettre en correspondance les Sous-Entités avec des Sous Tables Héritage de Type Même problème que pour le relationnel pur Utilisation des sous types dans le Push-Down

Cas général : ssociation Many-to-Many (i) 35 R ka aa cc kb bb ka aa 0..n cc 0..n kb bb Many-to-Many N-M ka aa R ra rb cc... kb bb create type t as object ( ka, aa, ); create table of t ( primary key(ka) ); create table R ( ra REF(t), rb REF(t), cc, primary key(ra,rb), SCOPE FOR ra IS, SCOPE FOR rb IS ); create type t as object ( kb, bb, ); create table of t ( primary key(kb) );

Cas général : ssociation Many-to-Many (ii) 36 ttention à la mise à jour des listes de refs => risque d incohérence R ka aa kb bb ka aa 0..n 0..n kb bb Many-to-Many N-M ka aa {rbs} kb bb {ras} create type t as object; create type t as object( ka, aa, rbs varray(10) of REF(t), ); create table of t ( primary key(ka), ); create or replace type t as object ( kb, bb, ras varray(10) of REF(t), ); create table of t ( primary key(kb) );

Cas général : ssociation Many-to-Many (ii) En UML: sens unidirectionnel de navigation ( vers ) 37 ka aa kb bb Many-to-Many N-M ka aa kb bb {ras} create type t as object( ka, aa ); create table of t ( primary key(ka), ); create type t as object ( kb, bb, ras varray(10) of REF(t) ); create table of t ( primary key(kb) );

Cas général : ssociation One-To-One 38 R ka aa kb bb One-To-One 1,1 ka aa rb kb bb ra create type t as object; create type t as object ( ka, aa, rb REF(t) ); create table of t ( primary key(ka), SCOPE FOR rb IS ); create or replace type t as object ( kb, bb, ra REF(t) ); create table of t ( primary key(kb), SCOPE FOR ra IS );

ibliographie 39 Roger Mounyol, "Merise par l'exemple", Ed Ellispes, 1991, ISN 2-7298-9114-5 Chris Date, "Introduction aux ases de Données", 6 ème édition, Ed Intl Thomson Publ. ISN 2-84180-964-1, 970 pp Jeffrey D. Ullman, Jennifer Widom, " First Course in Database Systems", 1 ère édition, Ed. Prentice Hall Engineering, Science & Math, vril 1997, ISN 0-13-861337-0, 470 pp. PPS Chen. The Entity-Relationship model toward a unified view of data. CM Transactions on Database Systems, March 1976. Michael laha, William Premerlani. Object-Oriented Modeling and Design for Database pplications, Prentice Hall, Englewood Cliffs, New Jersey, 1998. http://www.omtassociates.com/pages/papers.html Christian Soutou, "Objet-Relationnel sous Oracle8, Modélisation avec UML", Ed Eyrolles, 1999, ISN 2-212-09063-3 décrit bien les alternatives de conception des associations avec l objet-relationnel et avec le relationnel Christian Soutou, "De UML à SQL : Conception de bases de données", Ed Eyrolles, 2002, ISN 2-212-11098-7 La mise à jour du précedent Using UML to Design Database pplications http://www.umlchina.com/indepth/usinguml.htm http://www.intelinfo.com/newly_researched_free_training/uml.html

nnexe : Zoo de méthodes 40 dépendances d après HDR ruel