Sie sind auf Seite 1von 17

DEMARCHE DE CONCEPTION DUNE BD DEMARCHE DE CONCEPTION DUNE BD RELATIONNELLE RELATIONNELLE

Christophe Gnaho

DEMARCHE DE CONCEPTION DEMARCHE DE CONCEPTION


Domaine d'application

Modle Conceptuel

Niveau Conceptuel Modle Logique (Modle relationnel)


R1(a,b,c) R2(d,e,f)

SQL+SGBD

Niveau Logique Modle Physique (Scripts SQL) Niveau Physique

BD
Christophe Gnaho

DEMARCHE DE CONCEPTION DEMARCHE DE CONCEPTION


Le niveau conceptuel Ce niveau dcrit une reprsentation abstraite de la base de donnes laide de diagrammes de type entit-association ou de diagrammes de classes UML.

Le niveau logique Le niveau logique dtaille une reprsentation intermdiaire entre le niveau conceptuel et le niveau physique. Les diagrammes logiques peuvent tre exprims soit laide dune notation mathmatique, soit sous forme de tabulaire, soit laide dun diagramme de classes UML (les classes auront le strotype particulier <<Table>>).

Le niveau Physique Ce niveau concerne les structures de donnes mettre en uvre dans la base de donnes. Il traduit, laide du langage SQL, le schma logique. Christophe Gnaho

DEMARCHE DE CONCEPTION DEMARCHE DE CONCEPTION


Niveau Conceptuel
Diagramme de classes (UML)

Co nc

ep

tu a lis

Domaine dapplication

ati

on

Rgles de passage Niveau Logique


RELATIONNEL

Niveau Physique SQL + SGBD

BD

Christophe Gnaho

LE MODELE RELATIONNEL LE MODELE RELATIONNEL (Rappel) (Rappel)

Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Relation) (Relation) UNE RELATION = UNE TABLE A DEUX DIMENSIONS Un attribut
Numro Client Nom Client Ville Client

donnes

C1 C2 C3

Dulac Gobert Baudry

Paris Toulon Toulouse

Un tuple Schma
Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Domaine) (Domaine)

Le concept de domaine dsigne lensemble des valeurs que peut prendre une donne.

Exemple

Numro Client sera dfinie sur le domaine Marque sera dfinie sur le domaine Couleur sera dfinie sur le domaine Poids sera dfinie sur le domaine Salaire employ sera dfinie sur le domaine

D1 = Entiers D2 = {Renault, Peugeot, } D3 = {Blanche, Noire, } D4 = {10 100 kilos, } D5 = Rels

Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Attribut) (Attribut)

Le concept dattribut reprsente une colonne dune relation caractrise par un nom.

Exemple Numro Client, Nom Client et Ville Client sont les attributs de la relation Client Marque et Couleur sont les attributs de la relation Voiture. Il est important de ne pas confondre la notion dattribut avec celle de domaine. Par exemple, lattribut Quantit_Produit dune relation Produit correspond au domaine Entier. Le domaine reprsente lensemble des valeurs que peut prendre un attribut. Le nom des attributs est unique dans une relation.
Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Tuple) (Tuple)

Chaque ligne du tableau correspond un tuple ou une occurrence de la relation.

Exemple - C1 Dulac Paris. - C2 Gobert Toulouse

Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Cl primaire) (Cl primaire) (Cl

Chaque relation contient un attribut (ou un ensemble dattributs) appel Cl primaire, dont la valeur permet de distinguer de faon sre une occurrence de toutes les autres.

Par exemple Le numro dimmatriculation dune voiture permet de lidentifier, cet attribut est une cl de la relation Voiture. Le nom dun client, dans une relation Client, ne peut pas tre une cl ; en effet, deux clients diffrents peuvent avoir le mme nom.

Christophe Gnaho

LES CONCEPTS DU MODELE RELATIONNEL LES CONCEPTS DU MODELE RELATIONNEL


(Schma d'une relation) (Sch (Schma d'une relation)

Le schma dune relation dsigne le nom de la relation suivi par la liste des attributs qui la composent et (ventuellement) par la dfinition de leurs domaines.
R (A1 : D1,..., An : Dn) o R est le nom de la relation, Ai les attributs et Di les domaines associs.

Par exemple Client (NoClient : Entiers, Nom : Caractres, Ville : Caractres) Client (NoClient, Nom , Ville ) Voiture (Immatriculation, Marque, Couleur)
Christophe Gnaho

LE MODELE RELATIONNEL LE MODELE RELATIONNEL


(Rgles d'intgrit structurelle) (R (Rglesd'int grit structurelle) d'intgrit

Contrainte rfrentielle Une rfrence (ou cl trangre) est un attribut (ou un groupe dattributs) dont les valeurs sont celles dune cl dune autre relation

Exemple

Client (NoClient, Nom, Ville ,) Commande (NoCmd, Date, Montant, NoClient#)

Cl trangre
Christophe Gnaho

LE MODELE RELATIONNEL LE MODELE RELATIONNEL


(Rgles d'intgrit structurelle) (R (Rglesd'int grit structurelle) d'intgrit
Toute valeur de l'attribut NoClient dans la relation Commande doit se trouver dans la relation Client Relation Client
NoClient 001 002 003 Dulac Gomis Dubois Nom Paris Madrid Londres Ville

Cl primaire

Relation Commande
NoCmd C1 C2 C3 C4 C5 Date 21/11/07 10/11/07 2/012/07 4/12/07 30/11/07 Montant 10256 20538 45689 10000 2000 NoClient 002 001 002 002 001
Christophe Gnaho

Cl trangre

LE MODELE RELATIONNEL LE MODELE RELATIONNEL


(Rgles d'intgrit structurelle) (R (Rglesd'int grit structurelle) d'intgrit

Valeur nulle La valeur nulle (NULL) est une valeur conventionnellement introduite dans une relation pour reprsenter une information inconnue ou inapplicable.

Ex: Employ ( NoEmpl, Nom, Ville, Tlphone) (11, Dulac, Nice, NULL) ou (15, Martin, Paris, 01 45 98 36 89)

Christophe Gnaho

LE MODELE RELATIONNEL LE MODELE RELATIONNEL


(Reprsentation graphique) (Repr (Reprsentation graphique)

Client

Client (noClient, nom, ville)

noClient nom ville

Client (noClient, nom, ville ,) Commande (noCmd, date, montant, noClient#)

Commande
noCmd date montant noClient#

Client
noClient nom ville

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Diagramme de classes (UML)

Co nc

ep

tu a lis

Domaine dapplication

ati

on

Rgles de transformation

RELATIONNEL

SQL

BD

+ SGBD

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD

Rgles de transformation de la classe d'objet Rgles de transformation des associations Rgles de transformation de l'hritage Rgles de transformation des contraintes en langage SQL2

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des Classes d'objets
Client noClient nom ville

- la classe se transforme en une table (relation) - les attributs de la classe deviennent des attributs de la table - choisir un attribut (ou groupe d'attribut) de la classe pouvant jouer le rle de cl primaire; si aucun attribut ne convient, il faut en ajouter un la table TClient (noclient, nom, ville)
noClient 001 002 003 Dulac Gomis Dubois nom Paris Madrid Londres ville

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations
Cas Association binaire de type plusieurs [(1..*) ou (0..*)] un [-(1..1) ou (0..1)] ajouter un attribut de type cl trangre dans la relation multiplicit plusieurs de lassociation.
EMPLOYE numEmp nomE DEPARTEMENT 1..* travaille 1 numDep budDep

EMPLOYE numEmp nomE numDep#

DEPARTEMENT numDep budDep Cl primaire

Cl trangre

DEPARTEMENT (numDep, budDep) EMPLOYE (numEmp , nomE, numDep#)

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Diagramme de classes Modle Logique

Commande numCom dateCom 0..* Passe 1..1 Client


numClient nomClient

Commande (numCom, dateCom, numClient#)

Client (numClient, nomClient)


Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations Cas dune liaison plusieurs (0..* ou 1..*) plusieurs (0..* ou 1..*)

Lassociation ou la classe-association devient une relation. La cl primaire est compose des cls primaires des relations obtenues. Les ventuelles attributs de la classe-association deviennent des attributs de la nouvelle relation.

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations Cas dune liaison plusieurs (0..* ou 1..*) plusieurs (0..* ou 1..*)

ABONNE nom prnom adresse

0..*

0..*

LIVRE rfrence titre auteur

Emprunte dateEmprunt LIVRE rfrence titre auteur

ABONNE numAb nom prnom adresse 1 Cl primaire

Emprunt numAb# rfrence# dateEmprunt

2 Cls trangres
Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD

FOURNISSEUR
nomFour ville

Fournisseur (nomFour, ville)


1..*
Fournit prix

Fournir (nomFour, numProd, prix)

1..*
Produits
numProd libell

Produits (numProd, libell)

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations

Cas Association binaire de type un [(0..1) ou (1..1)] un [(0..1) ou (1..1)] Il faut ajouter un attribut de type cl trangre dans la relation drive de la classe ayant la multiplicit minimale gale un. Dans le cas o les deux multiplicits minimales sont 1, il est prfrable de fusionner les deux entits

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations
Cas Association binaire de type un [(0..1) ou (1..1)] un [-(0..1) ou (1..1)]

ETUDIANT numEt nomEt

0..1

Effectue

STAGE numSta theme responsable

ETUDIANT numEt nomEt numSta# ETUDIANT (numEt, nomEt, numsta#) STAGE (numSta, theme, responsable) Ceci prsuppose que le stage existe dj la cration dun tudiant

STAGE numSta theme responsable

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Transformation des associations

Association Reflexive
composante 1..* COMPOSER PIECE composite numPice dsignation 1..*

PIECE (numPiece, dsignation,) COMPOSER (numPiece, numPiece_compose)

0..1 PILOTE numP nom fonction compagnie 1..*

Est responsable de

PILOTE (numP, fonction, compagnie, numChef#)

Christophe Gnaho

REGLES DE TRANSFORMATION DU MCO EN MLD REGLES DE TRANSFORMATION DU MCO EN MLD


Cas de l'hritage Transformer chaque sous classe en une relation. La cl primaire de la superclasse devient cl primaire de chaque sous classe
Personne numss nom age

tudiant numss# niveau Enseignant grade

Personne numss nom age

Enseignant numss# grade

tudiant niveau

Etudiant (numss#, niveau) Personne (numss, nom, ge) Enseignant (numss#, grade)

Christophe Gnaho

TRADUCTION D'UN MLD EN SQL

Christophe Gnaho

TRADUCTION D'UN MLD RELATIONNEL EN TRADUCTION D'UN MLD RELATIONNEL EN LANGAGE SQL LANGAGE SQL
Exemple
CREATE TABLE stage (nstage VARCHAR(4), entreprise VARCHAR(30) CONSTRAINT pk_sage PRIMARY KEY (nstage)); CREATE TABLE etudiant (netu VARCHAR(2), nometu VARCHAR (30), nstage VARCHAR(4), CONSTRAINT pk_etudiant PRIMARY KEY (netu) CONSTRAINT fk_etudiant FOREIGN KEY (nstage) REFERENCES stage(nstage), CONSTRAINT nn_etudiant_nstage CHECK (nstage is NOT NULL), CONSTRAINT unique_etudiant_nstage Unique(nstage));
Christophe Gnaho

TRADUCTION D'UN MLD RELATIONNEL EN TRADUCTION D'UN MLD RELATIONNEL EN LANGAGE SQL LANGAGE SQL
Expression de la contrainte de partition
Tous les objets d'une classe participent l'une des deux associations mais pas aux deux, ni aucune de deux.
Socit numS Compte numC 1..* 1..* Possde {Partition} Possde 1 Particulier 1 numP

CONSTRAINT ck_compte_partition CHECK ((numS# is NOT NULL OR numP# is NOT NULL) AND NOT (numS# is NOT NULL AND numP# is NOT NULL))
Christophe Gnaho

TRADUCTION D'UN MLD RELATIONNEL EN TRADUCTION D'UN MLD RELATIONNEL EN LANGAGE SQL LANGAGE SQL
Expression de la contrainte d'exclusion
Tous les objets d'une classe peuvent participer l'une des deux associations, mais pas aux deux la fois. On peut imaginer par exemple un pilote au repos. Si un pilote est affect une mission, alors il ne peut tre affect un vol d'entranement et rciproquement.
Mission numM Pilote numP 1..* 1..* Est affect {XOR} Est affect 1 Entranement 1 numE

CONSTRAINT ck_compte_exclusion CHECK (numM# is NULL OR numE# is NULL);


Christophe Gnaho

TRADUCTION D'UN MLD RELATIONNEL EN TRADUCTION D'UN MLD RELATIONNEL EN LANGAGE SQL LANGAGE SQL
Expression de la contrainte de totalit
Tous les objets d'une classe participent au moins une association On peut imaginer par exemple qu'un pilote soit affect la fois une mission et un vol d'entranement, et tous les pilotes participent au moins une mission.
Mission numM Pilote numP 1..* 1..* Est affect {totalit} Est affect 1 Entranement 1 numE

CONSTRAINT ck_compte_totalite CHECK (NOT (numM# is NULL AND numE# is NULL));


Christophe Gnaho

TRADUCTION D'UN MLD RELATIONNEL EN TRADUCTION D'UN MLD RELATIONNEL EN LANGAGE SQL LANGAGE SQL
Expression de la contrainte de simultanit
Si un objet d'une classe participe l'une des deux associations, alors elle participe galement l'autre Un pilote peut tre affect la fois une mission et un vol d'entranement. Il peut galement n'tre affect aucune mission.
Mission numM Pilote numP 1..* 1..* Est affect {simultanit} Est affect 1 Entranement 1 numE

CONSTRAINT ck_compte_simultanit CHECK ((numM# is NULL AND numE# is NULL) OR (numM# is NOT NULL AND numE# is NOT NULL) );
Christophe Gnaho