2. Passage du modèle objets vers le
modèle relationnel:
Le passage depuis le modèle objets (DCL) vers le
modèle relationnel est fait dans l'objectif d'implémenter la BD
sur un SGBD relationnel.
Pour passer d'une représentation orientée objet
en DCL vers le modèle relationnel, il faut appliquer des règles
de passage:
ü Une classe correspond à une table du modèle
relationnel:
Ø Chaque attribut donne lieu à une colonne.
Ø Chaque instance stocke ses données dans une
ligne (t_uplet) et son OID sert de clé primaire.
Ø Certains complexe ne correspondent a aucun des types
SQL; on rencontre fréquemment ce cas pour les attributs
représentant une structure de donnée.
ü Un type complexe peut être conçu:
· Soit avec plusieurs colonnes, chacune correspondant a une
structure.
· Soit avec une table spécifique dotée
d'une clé étrangère pour relier les instances aux valeurs
de leur attribut complexe.
L'ensemble de règles utilisées pour le passage
de l'orienté objet vers le relationnel est décrit ci-dessous :
Modèle objet
|
Modèle relationnel
|
Classe.
|
Table.
|
Attribut de type simple.
|
Colonne.
|
Attribut de type complexe.
|
Colonne ou clé étrangère.
|
Instance.
|
T_uplet.
|
OID.
|
Clé primaire.
|
Association.
|
Clé étrangère ou table de lien.
|
Héritage (classe mère, classes filles).
|
*Clé primaire identique sur plusieurs tables. *Colonne
pour spécifier les classes filles.
|
|
Chapitre02
Analyse et conception
Max B
Max A
1
> 1
> 1
Ajouter la clé de B dans la relation de A comme
attribut
Crée une relation R ayant comme attribut la clé de
A et la clé de B
Equivalence entre les concepts objets et relationnels :
*Fusionner les deux classes dans une seule table, en gardant
la table la plus importante sémantiquement.
*Ajouter la clé de B comme une clé
étrangère dans A (ou l'inverse).
|
|
Ajouter la clé de A dans la relation de B comme
attribut
68
Nous appliquons sur les classes les mêmes règles.
Le schéma de base de données est le suivant :
y' Utilisateur
(id_utilisateur, nom_utilisateur,
prénom_utilisateur, sexe_utilisateur, date_naiss_utilisateur,
adresse_utilisateur, téléphone_utilisateur, e_mail_utilisateur,
fonction, type_magasinier) ;
y' Compte (pseudo, password,
id_utilisateur) ;
y' Produit (id_produit,
désignation_produit, SHP, seuil_minimal, catégorie, code_labo)
;
y' Lot (num_lot, date_fab,
date_péremp, prix_unitaire, PPA, qute_lot, id_produit) ;
y' Pharmacie (code_pharm,
nom_pharm, prénom_pharm, raison_social_ pharm, adresse_ pharm,
téléphone_ pharm, fax_ pharm, web_ pharm, code_postal_ pharm,
portable_ pharm) ;
y' Laboratoire (code_labo,
raison_social_labo, adresse_ labo, web_ labo, fax_ labo,
téléphone_ labo);
Analyse et conception
Chapitre02
69
V' Facture_sortie (num_facture,
date_facture, net_à_payer, total_shp, total_ht, total_ppa, nbr_produits,
nbr_coliers, état_val, état facture, id_magasier,
id_opératrice, code_pharm) ;
V' Facture_entrée
(num_facture, date_facture, code_labo) ;
V' Ligne_facture_sortie (num_facture,
num_lot, quantité_sortante, état_ligne, id-magasinier);
V' Ligne_facture_entrée (num_facture,
num_lot ,quantité_entrante) ;
NB : Toutes les relations sont à la
troisième forme normale.
|