Des diagrammes objets vers le modèle Relationnel



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

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données relationnelles

Langage SQL : créer et interroger une base

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

I4 : Bases de Données

CREATION WEB DYNAMIQUE

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

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

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

TP Contraintes - Triggers

Olivier Mondet

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

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Le Langage De Description De Données(LDD)

UML et les Bases de Données

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

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

Création et Gestion des tables

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

Bases de Données Avancées

NF26 Data warehouse et Outils Décisionnels Printemps 2010

OpenPaaS Le réseau social d'entreprise

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

BASES DE DONNEES TP POSTGRESQL

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. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

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

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

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

Bases de données relationnelles & SQL

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

TP3 : Creation de tables 1 seance

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

Application web de gestion de comptes en banques

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Compétences Business Objects

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

Auto-évaluation Oracle: cours de base

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

Rappel sur les bases de données

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

Intégrité des données

Gestion de base de données

Devoir Data WareHouse

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

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

Modélisation des données

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Les bases de données

I. MySQL : Serveur et SGBD

Groupe 11 TABLE DES MATIERES

BTS/CGO P10 SYSTEME INFORMATION Année

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

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

UML (Diagramme de classes) Unified Modeling Language

Modèle Entité/Association

CATALOGUE FORMATIONS DOMAINE Bases de données

Mejdi BLAGHGI & Anis ASSÈS

Modèle conceptuel : diagramme entité-association

Corrigés détaillés des exercices

Objectifs du TP : Initiation à Access

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 Historique

1. Base de données SQLite

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

Le Langage SQL version Oracle

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

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

Bases de données. Chapitre 1. Introduction

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

Programmation d application Bases de données avec Java

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

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

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

Historisation des données

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

Bases de données et sites WEB

MySQL / SQL EXEMPLES

Diagramme de classes

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

AGRÉGATION «ÉCONOMIE ET GESTION»

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

Systèmes de Gestion de Bases de Données

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

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

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

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

Les BASES de DONNEES dans WampServer

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

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

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)

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Objets et Programmation. origine des langages orientés-objet

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

Transcription:

Des diagrammes objets vers le modèle Relationnel J. Guyot - Université de Genève 1

Résumé des concepts Modèle Objet Modèle Relationnel Classe Relation Attribut Attribut Méthode (vue, fonction, attribut, procédure) Association 0..1,1..1 Attribut 0..n, n..m Relation Association attribuée (voir la cardinalité de l association) Agrégation 0..1,1..1 Attribut (+valeur null) 0..n, n..m Relation Généralisation Attribut (+valeur null) Relation Objet >> implémentation >> Relationnel Relationnel >> interprétation >> Objet J. Guyot - Université de Genève 2

Classe -> Relation Exemple: Rectangle largeur hauteur surface( ) périmètre( ) agrandir( ) diagonal( ) identifier les objets? ->ajouter une clé artificielle si une clé naturelle n existe pas Oid = Numéro d objet Create Table Rectangle ( Id_rectangle integer primary key, largeur number, hauteur number) J. Guyot - Université de Genève 3

Que faire avec les méthodes? Pas de langage procédural (PL/SQL, Visual Basic, attributs mémorisés pour les méthodes calculées Create Table Rectangle ( surface number, perimetre number, OU vues Create vue V_rectangle as Select Id_rectangle, argeur, hauteur largeur*hauteur surface, 2*(largeur+hauteur) perimetre) from Rectangle pour les autres méthodes, utiliser des mises à jour si possible Update Rectangle Set largeur=2*largeur, hauteur=2*hauteur Where num_rectangle= Si langage procédural alors il faut l utiliser! mais ne remplace pas les méthodes (héritage J. Guyot - Université de Genève 4

Association A Clé_A min..maxa r min..maxb B Clé_B Objectif: mémoriser l association entre A et B Solution dépend de la cardinalité de r (maxa et maxb) MaxA 1 >1 MaxB 1 - si la clé de A = la cléde B, ne rien faire Ajouter la clé de A dans la relation de B comme attribut - sinon choisir une des autres solutions >1 Ajouter la clé de A dans la relation de B comme attribut Créer une relation r ayant comme attribut la clé de A et la clé de B J. Guyot - Université de Genève 5

Exemple max=1 Canton 1 Rattachée à 1..n Ville Create Table Canton( NomCanton varchar(20) primary key, Surface number Create Table Ville( NomVille varchar(20) primary key, Rattache_A varchar(20) references Canton(NomCanton), Population number J. Guyot - Université de Genève 6

Exemple max=1 Personne conjoint 0..1 conjointe 0..1 marié a Create Table Personne( Id_personne number primary key,, Nom varchar(20), Prenom varchar(20), DateNaiss date, Conjoint number references Personne(Id_personne), problèmes? Maintenir la symétrie (redondance) J. Guyot - Université de Genève 7

association max>1 Auteurs 0..* Ecrit par 1..* Livres Create Table Auteur( Id_auteur number primary key,, Nom varchar(20), Prenom varchar(20), Create Table Livre( ISBN number primary key,, Titre varchar(20), Create Table Livre( Id_auteur number references Auteur, ISBN number references Livre, J. Guyot - Université de Genève 8

association max>1 Personne 0..* 0..* Ami de Create Table Personne( Id_personne number primary key,, Nom varchar(20), Prenom varchar(20), DateNaiss date, Create Table Ami_de( Id_personne number, Id_ami references Personne(id_personne)) problèmes? Maintenir la symétrie (redondance)? Maintenir la transitivité (redondance)? J. Guyot - Université de Genève 9

Association attribuée Personne 0..n travailler à 0..n Ville depuis jusqua Solution: ajouter les attributs de l association là où se trouve représentée l association. Create Table Personne( Id_personne number primary key,, Nom varchar(20), Prenom varchar(20), DateNaiss date, Create Table Ville( NomVille varchar(20) primary key, Population number Create Table Travail_a( Id_personne number references Personne, NomVille varchar(20) references Ville, Depuis date, Jusqua date) J. Guyot - Université de Genève 10

Agrégation et composition Traiter comme une association (la dépendance entre les classes est souvent une indication pour l utilisation du delete cascade!) Polygone 1 3..n Point Create Table Polygone( Id_polygone number primary key, Couleur varchar(20), Create Table Point( Id_polygone number references Polygone, num_ordre number, x number, y number) J. Guyot - Université de Genève 11

Généralisation:TOUT dans UN Solution 1: tout dans la même table et gestion des null Général est un Particulier 1 Particulier 2 create table Général( id_général number primary key, attribut_de_général, est_un_particulier1 Char(1), -- N =non, O =oui attribut_de_particulier1, est_un_particulier2 Char(1), -- N =non, O =oui attribut_de_particulier2, - Les attributs non utilisés sont laissés à null - Créer une vue pour chaque classe pour retrouver exactement la bonne description J. Guyot - Université de Genève 12

Généralisation:CHACUN a sa place Solution 2: chaque classe est une relation, on gère l éclatement des informations Général est un Particulier 1 Particulier 2 create table Général( id_général number primary key, attribut_de_général, create table Particulier1( id_général number references Général, attribut_de_particulier2, create table Particulier2( id_général number references Général, attribut_de_particulier2, - Le type d un objet est déterminé par sa présence dans une sous-relation (éventuellement ajouter un attribut dans Général) - Créer une vue pour chaque classe pour retrouver exactement l ensemble de la description Plus difficile à gérer que la solution 1, mais plus précise J. Guyot - Université de Genève 13

Exemple: Solution 1 Boisson nom_boisson commentaire sel_mineral nom_sel formule mineral source alcoolisee teneur_en_alcool quantite_mg Create table Boisson( Nom_boisson varchar(20) primary key, Commentaire varchar(1000), Est_un_mineral char(1), Source varchar(20), Est_un_alcoolise char(1), Teneur_en_alcool number) Create table Sel_mineral( Nom_sel varchar(20) primary key, Formule varchar(100)) Create table Composition( Nom_boisson varchar(20) references Boisson, Nom_sel varchar(20) references Sel_mineral, Quantite_mg number) Exemple de vue: Create view Mineral as Select Nom_boisson, Commentaire, Source From Boisson Where est_un_mineral = O J. Guyot - Université de Genève 14

Exemple: Solution 1 Boisson nom_boisson commentaire sel_mineral nom_sel formule mineral source alcoolisee teneur_en_alcool quantite_mg Create table Boisson( Nom_boisson varchar(20) primary key, Commentaire varchar(1000)) Create table Mineral( Nom_boisson varchar(20) primary key references Boisson, Source varchar(20)) Create table Alcoolise ( Nom_boisson varchar(20) ) primary key references Boisson, Teneur_en_alcool number) Create table Sel_mineral( Nom_sel varchar(20) primary key, Formule varchar(100)) Create table Composition( Nom_boisson varchar(20) references Mineral, Nom_sel varchar(20) references Sel_mineral, Quantite_mg number) Exemple de vue: Create view Mineral as Select m.nom_boisson, b.commentaire, m.source From Boisson b, Mineral m Where m.nom_boisson=b.nom_boisson J. Guyot - Université de Genève 15

Exercice Discuter les avantages et les inconvénients des solutions 1 et 2 pour modéliser la généralisation, pour les points Performance, Validation des contraintes, Evolutivité, J. Guyot - Université de Genève 16