Академический Документы
Профессиональный Документы
Культура Документы
Christophe Gnaho
Modle Conceptuel
SQL+SGBD
BD
Christophe Gnaho
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
Co nc
ep
tu a lis
Domaine dapplication
ati
on
BD
Christophe Gnaho
Christophe Gnaho
donnes
C1 C2 C3
Un tuple Schma
Christophe Gnaho
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
Christophe Gnaho
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
Christophe Gnaho
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
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
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
Cl trangre
Christophe Gnaho
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
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
Client
Commande
noCmd date montant noClient#
Client
noClient nom ville
Christophe Gnaho
Christophe Gnaho
Co nc
ep
tu a lis
Domaine dapplication
ati
on
Rgles de transformation
RELATIONNEL
SQL
BD
+ SGBD
Christophe Gnaho
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
- 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
Cl trangre
Christophe Gnaho
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
0..*
0..*
2 Cls trangres
Christophe Gnaho
FOURNISSEUR
nomFour ville
1..*
Produits
numProd libell
Christophe Gnaho
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
0..1
Effectue
ETUDIANT numEt nomEt numSta# ETUDIANT (numEt, nomEt, numsta#) STAGE (numSta, theme, responsable) Ceci prsuppose que le stage existe dj la cration dun tudiant
Christophe Gnaho
Association Reflexive
composante 1..* COMPOSER PIECE composite numPice dsignation 1..*
Est responsable de
Christophe Gnaho
tudiant niveau
Etudiant (numss#, niveau) Personne (numss, nom, ge) Enseignant (numss#, grade)
Christophe Gnaho
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
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
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