Vous êtes sur la page 1sur 10

Passage d'un modle conceptuel au modle physique

Proprits

Description

Intitul long

Il s'agit d'valuer ici l'incidence des choix conceptuels sur la ralisation de la


base de donnes.

Formation
concerne

BTS Services informatiques aux organisations.

Matire

SLAM3 Conception et adaptation dune base de donnes.

Prsentation

Analyse d'un document rfrent qui servira pour la communication au cours


d'un projet, de rfrence pour la mise en place de la base de donnes
correspondante, et du dveloppement d'applications clientes.
L'objectif est de s'approprier un document modle essentiel dans le processus
de dveloppement. Il ne s'agit pas de se limiter l'outil de communication mais
aussi de voir concrtement quelques incidences dans l'implmentation.

Comptences

Modifier un schma de donnes et l'implantation de la base de donnes


correspondante.

Transversalit

Lecture d'un document graphique.

Pr-requis

Notions de modlisation entit association (notamment hritage et lien


identifiant) et de systme de gestion de bases de donnes.

Outils

Aucun.

Mots-cls

Entit, Association, Hritage, Lien identifiant (identifiant relatif), SQL

Dure

2H.

Auteur(es)

Fabio PASQUALINI
Relecture : Eric DONDELINGER, Patrice GRAND, Olivier CAPUOZZO

Version

v 1.2

Date de
publication

10 avril 2010

nonc
Vous travaillez dans le cadre dun commerce de sucrerie (ce qui vous demande une grande volont
afin de ne pas entamer les stocks !).
Jusqu'alors, les informations taient traites via un tableur. L'entreprise dcide de passer un
vritable SGBDR, en environnement client/serveur.
Un schma entits-associations a t ralis. A partir de ce schma, une base est implante sous
Postgresql (toute autre base respectant SQL2 peut convenir).
Quelques questions sont relatives la lecture du schma Entits-Associations fourni ci-dessous. De
plus, quelques questions concernent l'incidence de cardinalits dans la passage la base de
donnes.
Toute ressemblance avec des personnes existantes ne pourrait tre que le fruit du plus pur hasard.
Les sucreries sont soit des produits courants soit de pures inventions.

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 1/10

Modle
Ci-dessous, le schma Entits-Associations fourni par le chef de projet. Ce schma sera la pierre
angulaire du dveloppement.

Note concernant le domaine de gestion


Il peut arriver, pour un bonbon vendu la pice, que le poids approximatif d'une pice ne soit pas
renseign. Les poids sont exprims en gramme.
Le pourcentage de remise est appliqu sur la ligne et non sur le produit. La socit pratique parfois
des remises du type pour deux produits identiques achets, le troisime bnficie de 50% de
remise . Ce type de rgle n'est pas sauvegard dans la base de donnes. Le pourcentage est
exprim par un entier.

L'tat de la commande peut-tre ('E' en cours, 'L' livre, 'P' paye)

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 2/10

Hritage et contrainte
Que signifie le X inscrit dans le symbole d'hritage ?

Exclusion
Partition
Hritage
Externe

Remplissez la coche en vert si c'est vrai (


), en rouge si c'est faux (
), ne remplissez pas si
vous ne savez pas.
Validez ou pas les assertions induites de manire explicite ou implicite par cet hritage muni
d'une contrainte ?

Les caractristiques d'une occurrence de produit sont prcises dans une ou


plusieurs des entits filles (BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

Un produit est un bonbon au poids, ou un bonbon la pice ou un gteau au poids.

Un bonbon au poids est un produit.

Une occurrence de produit ne peut se retrouver que dans une seule des entits filles
(BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

Un produit peut tre un bonbon au poids, ou un bonbon la pice ou un gteau au


poids.

Un produit peut tre un gteau au poids.

Un produit ne peut pas tre un bonbon au poids et un bonbon la pice la fois.

Un produit doit tre un bonbon au poids, ou un bonbon la pice ou un gteau au


poids.

Un produit est un gteau au poids.

Une occurrence de produit doit se retrouver dans une des entits filles
(BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

Un lien puissant !
Que signifie le (R) sur la patte de l'association CONCERNER ?

Rcursif
Relationnel
Relatif
Relation

Quel est la signification de ce symbole ?

C'est une relation formalise


C'est un lien identifiant
C'est une relation rcursive
C'est un identifiant relatif
C'est une relation normalise

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 3/10

Quelles sont les assertions induites de manire explicite ou implicite par ce (R) :

Une ligne de la table LIGNE_COMMANDE est en relation avec une ligne de la table
COMMANDE.

Une commande ne doit contenir qu'une seule ligne de commande.

Une ligne de commande peut appartenir plusieurs commandes.

Une ligne de commande peut exister sans tre relie une commande mais doit
concerner un produit.

La ligne de commande est identifie en partie par le numro de commande.

La cardinalit minimum sur la patte de l'association CONCERNER du ct de


LIGNE_COMMANDE ne peut tre que 1.

La cardinalit maximum sur la patte de l'association CONCERNER du ct de


LIGNE_COMMANDE ne peut tre que 1.
Quel est l'incidence de ce (R) dans la base de donnes :

La colonne [numero] peut tre un auto incrment (serial).

La clef primaire de LIGNE_COMMANDE est compose.

La valeur prise par la colonne [numero] ne peut excder 10.

Il y a une contrainte non nul sur la colonne [numero].

Ce lien est stable dans le temps.

La table LIGNE_COMMANDE possde une colonne [id_commande] qui est clef


trangre.

La colonne [numero] peut prendre deux fois la mme valeur.

La colonne [LIGNE_COMMANDE.id_commande] fait partie de la clef primaire.

Une remise trs souple ?


Quelles sont les rgles de gestion expliquant comment sont appliques d'ventuelles remises.

Un taux de remise unique est appliqu sur chaque commande.


Un taux de remise unique est appliqu pour chaque client.

Le taux de remise peut varier pour chaque ligne d'une mme commande, selon
l'humeur du vendeur ou d'autres critres dfinis ou non dans le domaine de gestion.

Un taux de remise est appliqu sur chaque commande en fonction de la date.

Le taux de remise peut varier au sein d'une mme commande.

Un taux de remise est appliqu sur chaque commande en fonction du client.

Selon le produit, le taux de remise peut varier au sein d'une mme commande.

Le taux de remise est le mme pour tous les clients.

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 4/10

Schma relationnel
Ralisez le schma relationnel correspondant au modle entits-associations fourni dans un ordre qui
soit acceptable dans le script de cration de la base.

Le script de cration
Complter les requtes SQL ncessaires la cration des tables [LIGNE_COMMANDE] et
[BONBON_POIDS]. On considre que COMMANDE.id_commande et PRODUIT.id_produit sont des
clefs primaires de type auto-incrment (serial) correspondant un type integer .
CREATE TABLE ligne_commande
(
id_commande
numero
...
);
CREATE TABLE bonbon_poids
(
...
);

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 5/10

Insrer un produit dans la base


crire la requte SQL permettant d'insrer un produit qui est un bonbon qui se vend par pice nomm
'CHOC CHOCO', vendu 4.51, conditionn par 20 pices de 18 grammes. Une requte imbrique est
ncessaire. Une transaction est la bienvenue. On considre que la colonne [designation] possde une
contrainte unique .

B...
INSERT INTO (
VALUES (
...

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 6/10

Corrig
3.1

Hritage et contrainte

Que signifie le X inscrit dans le symbole d'hritage ?

Exclusion
Partition
Hritage
Externe

Validez ou pas les assertions induites de manire explicite ou implicite par cet hritage muni
d'une contrainte ?

Les caractristiques d'une occurrence de produit sont prcises dans une ou


plusieurs des entits filles (BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

Un produit est un bonbon au poids, ou un bonbon la pice ou un gteau au poids.

Un bonbon au poids est un produit.

Une occurrence de produit ne peut se retrouver que dans une seule des entits filles
(BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

Un produit peut tre un bonbon au poids, ou un bonbon la pice ou un gteau au


poids.

Un produit peut tre un gteau au poids.

Un produit ne peut pas tre un bonbon au poids et un bonbon la pice la fois.

Un produit doit tre un bonbon au poids, ou un bonbon la pice ou un gteau au


poids.

Un produit est un gteau au poids.

Une occurrence de produit doit se retrouver dans une des entits filles
(BONBON_POIDS, BONBON_PIECE, GATEAU_POIDS).

3.2

Un lien puissant !

Que signifie le (R) sur la patte de l'association CONCERNER ?

Rcursif
Relationnel
Relatif
Relation

Quel est la signification de ce symbole ?

C'est une relation formalise


C'est un lien identifiant
C'est une relation rcursive
C'est un identifiant relatif
C'est une relation normalise

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 7/10

Quelles sont les assertions induites de manire explicite ou implicite par ce (R) :

Une ligne de la table LIGNE_COMMANDE est en relation avec une ligne de la table
COMMANDE.

Une commande ne doit contenir qu'une seule ligne de commande.

Une ligne de commande peut appartenir plusieurs commandes.

Une ligne de commande peut exister sans tre relie une commande mais doit
concerner un produit.

La ligne de commande est identifie en partie par le numro de commande.

La cardinalit minimum sur la patte de l'association CONCERNER du ct de


LIGNE_COMMANDE ne peut tre que 1.

La cardinalit maximum sur la patte de l'association CONCERNER du ct de


LIGNE_COMMANDE ne peut tre que 1.
Quel est l'incidence de ce (R) dans la base de donnes :

La colonne [numero] peut tre un auto incrment (serial).

La clef primaire de LIGNE_COMMANDE est compose.

La valeur prise par la colonne [numero] ne peut excder 10.

Il y a une contrainte non nul sur la colonne [numero].

Ce lien est stable dans le temps.

La table LIGNE_COMMANDE possde une colonne [id_commande] qui est clef


trangre.

La colonne [numero] peut prendre deux fois la mme valeur.

La colonne [LIGNE_COMMANDE.id_commande] fait partie de la clef primaire.

3.3

Une remise trs souple ?

Quelles sont les rgles de gestion expliquant comment sont appliques d'ventuelles remises.

Un taux de remise unique est appliqu sur chaque commande.

Un taux de remise unique est appliqu pour chaque client.

Le taux de remise peut varier pour chaque ligne d'une mme commande, selon
l'humeur du vendeur ou d'autres critres dfinis ou non dans le domaine de gestion.

Un taux de remise est appliqu sur chaque commande en fonction de la date.

Le taux de remise peut varier au sein d'une mme commande.

Un taux de remise est appliqu sur chaque commande en fonction du client.

Selon le produit, le taux de remise peut varier au sein d'une mme commande.

Le taux de remise est le mme pour tous les clients.

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 8/10

3.4

Schma relationnel

Ralisez le schma relationnel correspondant au schma entits-associations fourni dans un ordre qui
soit acceptable dans le script de cration de la base.

CLIENT ( id_client, nom, prenom, adresse, cp, ville, tel)


clef primaire : id_client
COMMANDE (id_commande, date_creation, etat, id_client)
clef primaire : id_commande
clef trangre : id_client rfrenant la table CLIENT
PRODUIT (id_produit, designation, prix_hors_taxes)
clef primaire : id_produit
BONBON_POIDS (id_produit, poids)
clef primaire : id_produit
clef trangre : id_produit rfrenant la table PRODUIT
GATEAU_POIDS (id_produit, poids, date_peremption)
clef primaire : id_produit
clef trangre : id_produit rfrenant la table PRODUIT
BONBON_PIECE (id_produit, nombre_pieces, poids_app_piece)
clef primaire : id_produit
clef trangre : id_produit rfrenant la table PRODUIT
LIGNE_COMMANDE(id_commande, numero, quantite, pourcentage_remise, id_produit)
clef primaire : (id_commande, numero)
clef trangre : id_commande rfrenant la table COMMANDE
clef trangre : id_produit rfrenant la table PRODUIT

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 9/10

3.5

Le script de cration

Complter les requtes SQL ncessaires la cration des tables [LIGNE_COMMANDE] et


[BONBON_POIDS]. On considre que COMMANDE.id_commande et PRODUIT.id_produit sont des
clefs primaires de type auto-incrment (serial) correspondant un type integer .

CREATE TABLE ligne_commande


(
id_commande
integer
not null,
numero
integer
not null,
quantite
integer,
pourcentage_remise integer,
id_produit
integer,
primary key (id_commande, numero),
foreign key (id_commande) references COMMANDE(id_commande)
foreign key(id_produit) references PRODUIT(id_produit)
);
CREATE TABLE bonbon_poids
(
id_produit
integer
primary key,
poids
integer,
foreign key (id_produit) references PRODUIT(id_produit)
);

3.6

Insrer un produit dans la base

crire la requte SQL permettant d'insrer un produit qui est un bonbon qui se vend par pice nomm
'CHOC CHOCO', vendu 4.51, conditionn par 20 pices de 18 grammes. Une requte imbrique est
ncessaire. Une transaction est la bienvenue.

BEGIN TRANSACTION;
INSERT INTO PRODUIT (designation, prix_hors_taxes)
VALUES ('CHOC CHOCO', 4.51);
INSERT INTO BONBON_PIECE (id_produit, nombre_pieces, poids_app_piece)
VALUES ( (SELECT id_produit FROM PRODUIT WHERE designation = 'CHOC CHOCO'),
20, 18);
COMMIT;
Une requte imbrique est ncessaire tant donn l'auto-incrment de la table produit que nous ne
connaissons pas au dpart.

http://www.reseaucerta.org

CERTA - juin 2011 v1.2

Page 10/10