C MLD2
C MLD2
C MLD2
CHAPITRE 2
Mais tout d’abord, il faut définir une vue pour chaque type de site et pour chaque
type de poste de travail. Une vue constitue une partie du MCD qui correspond à une
limitation du champ de l’étude aux besoins d’un type de site ou d’un type de poste de
travail.
Exemple :
G.D.C./P11 G.D.C./P22
G.D.C./P13 G.D.C./P23
G.D.C./P21
G.D.PRI
G.D.PRI
G.D.C./P12 G.D.PRO
G.D.PRO
Poste n° 23
Poste n° 13
- couleurs des exemplaires des préimprimés : pour une facture, par exemple,
l’exemplaire blanc est destiné au client, l’exemplaire jaune à la comptabilité, ...
Après avoir construit le MCD et le MOrD, d’une part, et le MCT et le MOrT, d’autre
part, le concepteur doit confronter les modèles des données et les modèles des traitements
pour vérifier leur conformité et leur apporter, le cas échéant, les correctifs nécessaires.
MCD MCT
Correctifs
MOrD MOrT
Validation
L’ensemble de ces données constitue donc la liste des données formant la vue externe
de la procédure, appelée aussi modèle externe. Si cette liste n’est pas complexe et ne nécessite
pas une structuration, elle peut être laissée en tant que telle. Autrement on doit élaborer pour
cette liste un modèle structuré selon les règles de construction d’un MCD.
Remarque :
Il est parfois intéressant de construire une vue externe par ensemble de procédures qui
concourent à un même objectif de gestion.
Modélisation
MOrTtâches
B.I
Il faut vérifier que chaque propriété appartenant à toute vue externe, c’est-à-dire
manipulée par la (ou les) procédure(s) concernée(s), doit pouvoir être déduite du MCD et plus
précisément du sous-modèle correspondant du MOrD. Une propriété est déduite du MOrD
(ou du MCD) lorsqu’elle existe en tant que telle dans ce modèle ou lorsqu’elle peut être
calculée à partir d’autres propriétés ou des occurrences de certains objets ou des occurrences
de certaines associations. Dans le cas négatif, il faut corriger le MOrD et le MCD, en ajoutant
les propriétés manquantes, avec ou sans adjonction d’objets ou d’associations.
II.3. CONFRONTATION MOrD / MOrT
Cette confrontation a pour objectif de vérifier que toute propriété appartenant à tout
sous-modèle du modèle organisationnel des données (MOrD) est bien manipulée par au
moins une procédure ayant une nature conforme à la nature du support de mémorisation
Sous modèle : X
Si une propriété n’est pas suffisamment manipulée par les traitements, il faut :
soit supprimer cette propriété du modèle de données si elle s’avère inutile,
Soit corriger le MOrT en ajoutant les actions appropriées à certaines PF ou en ajoutant
de nouvelles PF.
MCD
MOrD
Sous-modèle Sous-modèle
manuel automatisé
MLD_B MLD_B
manuel automatisé
Les modèles logiques des données obtenus sont bruts (MLD_B) et nécessiteront une
optimisation en fonction des traitements prévus. Le MLD manuel est défini sur des supports
manuels : imprimé, fiche, dossier, registre, etc. Le MLD automatisé est défini à travers les
concepts du type du SGBD à utiliser :
navigationnel (en réseau) : enregistrement (record), lien de chaînage (set),
pointeur, ...
relationnel : relation, attribut, clé, ...
On peut énoncer des règles de transformation du MCD au MLD brut qui garantissent
l’obtention d’un modèle relationnel en 3ème forme normale de BOYCE-CODD.
Tout individu non vide (comportant au moins une propriété, autre que son identifiant)
se transforme en une relation au sens relationnel du terme :
L’identifiant de l’individu devient la clé de la relation.
Les propriétés de l’individu deviennent les attributs de la relation.
Tout individu dont la liste des propriétés se limite à son identifiant n’aura pas de
correspondant dans le modèle logique, sauf exception.
Exception à la règle 2 :
La règle 2 n’est pas applicable lorsqu’il est nécessaire de constituer un répertoire des
données de l’objet vide et que la projection des autres relations sur l’attribut concerné ne
donne pas ce répertoire.
Exemple :
EST_DE_TYPE TYP_DOCUM
1,n TYP-DOC
DOCUMENT
1,1
COD-DOC
LIB_DOC
... 1,n
MOT_CLE
CARACTERISE
0,n MOT-C
MOT-CLE # CARACTERISE
MOT-C
TYPE-DOC = DOCUMENT
TYP-DOC
A (1, n) B
0,n
CIF 1,1
Exemple :
DOCUMENT TYP_DOCUM
COD-DOC 1,1 EST_DE_TYPE
TYP-DOC
LIB_DOC 1,n
...
Exception à la règle 4 :
Pour une DF binaire dont l’objet source est un objet vide, il faut correspondre une
relation, au sens relationnel, soit à la DF, soit à l’objet vide.
Exemple :
CIF
A B
A1 0,n
AB 1,1 B1
A2
A (1, n)
B
0,n
CIF 0,1
Solution n°1 :
Elle consiste à appliquer les mêmes dispositions que celles de la règle 4. Toutefois, la
relation « B » (au sens relationnel du terme) ne sera pas normalisée. En effet, toutes les
occurrences de « B » ne vont pas avoir la même liste d’attributs : l’attribut correspondant à
l’identifiant de « A » et, éventuellement, ceux correspondant aux propriétés de la DF
n’existent dans la relation « B » que pour les occurrences qui participent à la DF.
Solution n°2 :
Les deux individus A et B se transforment conformément à la règle 1 et à la règle 2.
La DF se transforme conformément à la règle 3.
Généralisation de la règle 4 :
La règle 4 s’applique pour toute DF dont la source est constituée d’un seul objet.
Exemple :
A B
A1 ABC B1
1,1
A2 0, n
1, n
C
C1
Remarque :
Les DF (ou CIF) non binaires dont la source ne se limite pas à un seul objet se
transforment conformément à la règle 3.
Exemple :
Exemple Récapitulatif :
SOCIETE
1,n REGION
CODE_SOCIETE 1,1
CIF
ADRESSE CODE_REGION
PDG LIBELLE
CAPITAL
0,n
1,n
PATICIPATION_AU_CAPITAL PRODUCTION_ANNUELLE
QUANTITE_PRODUITE
PRIX_DE_VENTE
0,n
ACTIONNAIRE 0,n
1,n
NOM_ACTIONNAIRE PRODUIT
ADRESSE EXERCICE
CODE
N_TEL LIBELLE ANNEE
Exemple :
EMPLOYE
NUM_EMPL Objet générique
NOM
PRENOM
EMPLOYE SOUSCRIPTEUR
NUM_EMP NUM_SOUSCR
NOM_EMP NOM_SOUSCR
PRENOM_EMP CATEG_SOCIO_PROF
est_un est_un
SOUSCR_EMPL ENTREPRISE
TAUX_REMISE RAISON_SOCIALE
NOM_EMP_SOUSCR
Exceptions :
Dans le cas où tous les objets spécialisés de l’objet générique sont vides, les objets ne
se transforment pas en relations. En effet, il aurait suffit d’ajouter une propriété dans
l’objet générique spécifiant le type de chaque occurrence. La relation correspondante à
cet objet générique comporte alors un attribut indiquant le type de chaque tuple.
Généralisation sélective
SOUSCRIPTEUR
SOUSCR_ASSUR_ETRANGER
ASSURE
* *
* * ** * * * * * *
* *
* * SOUSCR_ASSUR_ETRANGER * *
** * * *
SOUSCRIPTEUR * *
ASSURE
Il s’agit d’une première optimisation du MLD brut. Cette optimisation peut être
abordée à la fin de l’étude détaillée. Mais vue la réduction progressive entre modèle logique
des données (MLD) et entre modèle physique des données (MPD), elle est de plus en plus
laissée à l’étude technique. Elle doit permettre une transformation du MLD brut relationnel
dans l’objectif d’optimiser le temps de déroulement des procédures transactionnelles et en
différé. Il s’agit alors d’analyser essentiellement l’activité logique des traitements afin de
pouvoir recenser les fusions à réaliser et les redondances à introduire, indépendamment du
SGBD relationnel à utiliser. C’est la deuxième optimisation qui se réalise en fonction des
caractéristiques propres au SGBD à utiliser. L’étude de la première optimisation est illustrée
ici à travers l’exemple qui suit.
Enoncé : « Les développeurs des SGBD assurent leur commercialisation et offrent aux clients
la possibilité de les tester. Les clients convaincus passent des commandes
d’utilisations annuelles qui leur garantissent le droit d’utilisation des nouvelles
versions ». L’étude détaillée a débouché sur les modèles qui suivent.
MCD :
SGBD CLIENT
NUM_SGBD NUM_CL
NOM_SGBD NOM_CL
0,n ESSAI 0,n
AN_DEV ADR_CL
NOTE
NB_VERSION MATERIEL_CONST
TYP_MATERIEL MATERIEL_TYPE
0,n
1,1
DATE
0,n
0,n DATE
DEVELOPPE
0,n
0,n
CONSTRUCTEUR COMMANDE
NOM_CONST MONTANT
PAYS_CONST ANNEE
MLD Brut :
CONSTRUCTEUR (NOM-CONST, PAYS-CONST)
SGBD (NUM-SGBD, NOM-SGBD, AN-DEV, NB-VERSION, NB-MATERIEL,
TYP-MATERIEL, #NOM-CONST)
CLIENT (NUM-CL, NOM-CL, ADR-CL, MATERIEL-CONST, MATERIEL-TYPE)
ESSAI (NUM-CL, NUM-SGBD, DATE, NOTE)
COMMANDE (NUM-CL, NUM-SGBD, DATE, MONTANT, ANNEE)
L'optimisation peut être réalisée sur la base d'une analyse qualitative en se basant, tout
de même :
d'une part, sur les fréquences des différentes procédures et le volume des données et,
d'autre part, sur le fait que les opérations les plus coûteuses sont celles qui utilisent des
jointures et des recherches séquentielles.
Elle peut être également le résultat d'une analyse quantitative dont le paramètre-pivot
est le nombre d'accès nécessaires à l'exploitation de chaque procédure. Les calculs à réaliser
nécessitent des hypothèses sur le coût, en nombre d'accès, de chaque opération élémentaire ou
primitive. Ces hypothèses peuvent être comme suit :
Cardinalité
(T)
E (P / l(T))
partie entière longueur d'un tuple de T
taille de la page logique
(4000 octets par exemple)
TjT' : Le nombre d'accès est égal au nombre d'accès à la table T (conformément au terme de
sélection) auquel on ajoute le nombre d'accès à T'. Ce dernier est égal au nombre
de tuples t de T satisfaisant le critère de sélection multiplié par le nombre d'accès
à T' consommés par chaque tuple t.
No = l(Ti) n(Ti)
nombre de tuples de Ti
du volume nécessaire aux index construits sur les clés primaires de chaque tableau T
issu d'individu, en supposant que l'unité d'accès logique est la page et qu'une adresse
de page nécessite 4 octets.
- Table SGBD
l(SGBD) = 69 octets
n(SGBD) = 250 occurrences
- Table CONSTRUCTEUR
l(CONSTRUCTEUR) = 60 octets
n(CONSTRUCTEUR) = 125 occurrences
Volume (CONSTRUCTEUR) = 7500 octets
Taille de l'index construit sur NOM-CONST :
. taille d'un élément : 30 + 4 = 34 octets
. taille de l'index : 34 125 = 4250 octets
- Table ESSAI
l(ESSAI) = 23 octets
n(ESSAI) = 1.000.000 occurrences (un client teste en moyenne 10 SGBD)
VOLUME (ESSAI) = 23.000.000 octets
- Table CLIENT
l(CLIENT) = 100 octets
n(CLIENT) = 100.000 occurrences
VOLUME (CLIENT) = 10.000.000 octets
Taille de l'index construit sur NUM-CL :
. taille d'un élément de l'index : 9 + 4 = 13 octets
. taille de l'index : 13 100.000 = 1.300.000 octets.
Cet index nécessite 325 pages logiques de 4.000 octets chacune. Il requiert alors un
index maître de 325 éléments qui consomme 4225 octets et qui peut se loger sur 2 pages
logiques et se charger en mémoire centrale.
- Table COMMANDE
l(COMMANDE) = 25 octets
n(COMMANDE) = 1.000.000 (les commandes sont gardées pour une durée de 5 ans. Un
client dispose en moyenne de 2 SGBD)
L'activité logique est évaluée pour chaque procédure en terme de nombre d'opérations
élémentaires de manipulation de données (ou accès logiques). L'évaluation se base
généralement sur les valeurs moyennes, mais dans certains cas, on doit également considérer
les valeurs relatives aux périodes de pointe (horaire ou saisonnier).
Na = a(Pi) n(Pi)
i
avec :
a(Pi) = activité logique de la procédure-type Pi
n(Pi) = nombre d'occurrences de Pi dans l'unité de temps considérée
Considérons la procédure P qui s'intéresse à la recherche des clients qui ont commandé
un SGBD donné au cours d'un mois donné. On suppose que P est appelée en moyenne 35 fois
par jour. Cette procédure se traduit en SQL par la requête suivante :
1.000.000
= 6250 accès
E(4000/25)
Par ailleurs, elle nécessite la recherche des données clients (avec accès direct, soit 2
accès élémentaires) pour chaque tuple de COMMANDE sélectionné. Si on suppose qu'en
moyenne un SGBD bénéficie de 70 commandes par mois, la requête consommera encore :
2 70 = 140 accès élémentaires, Soit au total :
(6250 + 140) 35 = 223650 accès élémentaires par jour.
L'index maître consomme au total 1500 6 / 4000, soit 3 pages et nécessite donc 3
accès.
Le coût de stockage est fonction du volume de la base et du coût unitaire sur le support
de stockage utilisé (facturation du Service Informatique, prix de revient).
Le coût d'accès peut être déterminé par l'étude des procédures et de leurs fréquences. Il
s'agit donc d'optimiser une fonction de coût de la forme :
Avec :
Coût d'Accès = nombre d'accès logiques par période coût d'un accès
Coût de Stockage = nombre de caractères à stocker coût de stockage unitaire
Cette fonction définit une ligne directrice pour l'opération d'optimisation. Il s'agit alors
d'essayer de minimiser le coût des accès logiques et, en contre partie et inéluctablement,
d'augmenter le coût de stockage pour minimiser en fin de compte F.
Dans l'exemple "Commercialisation des SGBD", cette fonction peut s'optimiser par :
- la création d'un index sur NUM-SGBD pour la relation COMMANDE, tel que nous l'avons
ci-dessus discutée,
- la création d'un index sur ANNEE pour la relation COMMANDE dans le cas où les
procédures qui exploitent les commandes par année sont fréquentes.
Un autre index, basé sur NUM-CL pourrait être également intéressant.
- la création d'un index sur NUM-SGBD pour la relation ESSAI dans le cas où les procédures
qui exploitent les essais sur NUM-SGBD sont fréquentes.
D'autres index pourraient être intéressants : ceux basés sur NUM-CL et DATE.
- Le regroupement des relations SGBD et CONSTRUCTEUR en une seule (qui ne serait plus
en "3FN"). La redondance ajoutée ne coûterait rien en espace supplémentaire, mais pourrait
nécessiter des accès supplémentaires (mise à jour des adresses redondantes). Elle se justifie
lorsque les jointures entre ces deux relations sont nombreuses.
Si les données sont gérées par différents SGBD locaux, les composants de
l’application doivent savoir où sont implantées réellement les données. le MLDR est dans ce
cas un outil pour le développement de l’applicatif également.
Si les données sont gérées par un seul SGBD Réparti, les composants de l’application
n’ont pas à savoir où sont implantées réellement les données.
Un segment de données, sur une machine donnée (serveur ou client), peut être de trois
types :
référence, c’est-à-dire que ce segment n’est mis à jour que sur cette machine,
cliché (photo, snapshot) ; ce segment n’est accessible sur cette machine qu’en
consultation ; il peut être actualisé :
périodiquement sur toutes les machines qui l’utilisent,
à la demande de l’une de ces machines.
dossier, c’est-à-dire que ce segment n’est considéré par une machine donné comme de
type référence que durant la durée de mise à jour ; ailleurs, il y est considéré comme de
type cliché.
les types d’utilisation définis par le MOrD (données privées, protégées, partagées et
consultables),
les volumes des données vis à vis des capacités de stockage des machines serveurs et
des machines clientes,