Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
PRATIQUE
MODÈLE CONCEPTUEL
DES DONNÉES
MODÈLE LOGIQUE
DES DONNÉES STANDARD
MODÈLE LOGIQUE
DES DONNÉES OPTIMISÉ
• En aval du schéma directeur, en amont de la réalisation A chacune de ces six questions, il s’agira d’amener des réponses. Le tableau
suivant présente les documents qu’e la méthode Merise produit pour y répondre.
• Etude indépendante des données et des traitements, puis rapprochement pour Dans le cadre de l’utilisation d’un S.G.B.D., le concepteur est déchargé de
valider l’étude des données avec les résultats de l’étude des traitements, et l’implantation physique des tables. D’autre part, Merise ne guide pas le
concepteur dans la production des procédures, car elles sont dépendantes du
réciproquement. choix du système, des outils et des machines. Les seuls niveaux analysés sont
donc les niveaux conceptuel et logique.
L’expérience m’a amené à douter de l’efficacité de l’analyse des traitements
(M.C.T et M.O.T)). De plus cette conception est en partie remise en cause par les
• Approche par étapes (Conceptuelle, puis logique, enfin opérationnelle)
technologies objet développées dans les outils modernes. Ce cours ne fera donc
qu’effleurer ces chapitres, et se concentrera sur les M.C.D. et M.L.D. Enfin, les
optimisations et ajustements nécessaires en fin d’analyse seront étudiés. Nous
• Recherche des invariants du système d’informations passerons ainsi d’un M.L.D “pur” à un M.L.D. optimisé (on pourrait presque dire
“un M.L.D. perverti”.
principes : • IL FAUT OUBLIER LES MOYENS QUI SERONT MIS EN ŒUVRE POUR LA
RÉALISATION. (il s’agit uniquement de décrire le problème à traiter, et pas
du tout de préciser, simplifier ou guider les choix qu’on sera plus tard
amenés à faire)
Remarques :
Limites : • Ce n’est qu’à la validation du M.C.D. à l’aide du M.C.T. qu’on peut être sûrs
d’avoir effectivement obtenu le M.C.D. correspondant au problème.
Autrement dit, cette première étape du M.C.D. ne peut être automatisée.
• On ne connaît pas de moyens de définir d’une façon non ambigüe l’univers
du discours (UDD), c’est-à-dire les concepts (et par conséquences les
données) qui font ou ne font pas partie du problème à traiter.
• Un MCD ne vaut que par la qualité de l’UDD qui le sous-tend. Se rappeler
qu’à chaque question concernant l’UDD, on a 5 réponses possibles à
chaque point dont un se demande s’il doit être traité :
- il doit être traité, c’est suffisamment évident pour ne pas le signaler
- il est supposé être traité, mais il est prudent de signaler qu’il a été intégré
- il est supposé ne pas être traité, mais il est prudent de le signaler
- il ne doit pas être traité, c’est suffisamment évident pour ne pas le signaler
- On ne peut trancher : faire remonter la question au commanditaire, et faire
figurer dans l’UDD la question et la réponse fournie.
Remarques :
But : • Epurer l’ensemble des attributs obtenus à l’étape précédente, en vérifiant Dictionnaire des données épuré :
que chaque donnée correspond à un “atome” d’informations, indivisible et
indépendant des autres données. Nom du client
IL NE FAUT AUCUNE REDONDANCE (DIRECTE OU INDIRECTE) DANS N° de référence du produit
UN DDD ÉPURÉ. Prénom du client
Date facture -> JourMois Facture
Moyens : • Passer en revue, l’un après l’autre et sans ordre préétabli, chacun des Année Facture
attributs du DDD et vérifier les points suivants : quantité achetée
• Vérifier les synonymes : la même donnée utilisée sous deux termes N° de facture -> Année Facture
différents par deux acteurs différents. N° Séquentiel
• Vérifier les homonymes : deux données différentes utilisées sous le même Total facture
terme par deux acteurs différents. Prix unitaire HT
• Vérifier les dépendances directes : une donnée qui peut être obtenue à Désignation
partir d’autres données (exemple : prix unitaire HT, TVA, prix unitaire TTC : Montant TVA Taux TVA
une de ces données doit être épurée). Prix unitaire TTC
• Vérifier les dépendances indirectes et les données calculées : une donnée Adresse du client -> 1° ligne adresse
obtenue comme totalisation ou comptage d’autres données (exemple : 2° ligne adresse
nombre de factures, ou chiffre d’affaires d’un client). CP
• Epurer les paramètres qui ne sont pas des données (exemple : la date de Ville
début et la date de fin d’un état récapitulatif sur une période). Total article
Nombre d’articles
précautions : • La principale difficulté concerne les difficultés de communication. Est-on Mode règlement
bien sûr que ce qu’on a entendu a le même sens pour nous et pour notre
interlocuteur ?
• Se méfier des données du genre “Nombre de “ ou “Totalisation” : elles
peuvent presque toujours être calculées à partir d’autres données plus
élémentaires, et doivent de ce fait être épurées.
Remarques :
But : • Découper l’ensemble des attributs du dictionnaire des données épuré en Ebauche du M.C.D :
différentes unités logiques, ici appelées “Objets du M.C.D”.
Moyens : • Reporter dans l’ébauche du M.C.D, l’un après l’autre et sans ordre préétabli,
chacun des attributs du DDD, en l’attachant si possible avec l’un des objets déjà
reconnus. Si cela n’est pas possible, créer un nouvel objet composé (pour Nom Réf. produit
l’instant) de ce seul attribut. Prénom Désignation
• Pour savoir si un attribut peut être attaché un objet, décrire dans un gand tableau 1° ligne adresse Prix unitaire HT
l’ensemble des occurences des différents attributs correspondant à l’état du 2° ligne adresse
système à un instant t1, à un instant t2… CP
Vérifier si le nombre d’occurences de l’attribut en cours de traitement est, pour Ville
chacun de ces instants, le même que le nombre d’occurences du premier objet Qantité
déjà reconnu. Si ce n’est pas le cas, se poser la même question pour le même
attribut et l’objet suivant.
Limites : • pas de limites : A partir de cette étape commence une démarche rigoureuse, qui
nous permettra de systématiser l’analyse. A partir d’un dictionnaire des données
épuré exact, tout merisien pourra obtenir un M.C.D, puis un M.L.D juste.
Remarques :
Problématique • Un attribut A a déjà été placé (seul ou regroupé avec d’autres attributs) dans l’ébauche du MCD. On veut savoir si l’attribut B, qu’on est en train de traiter, peut être regroupé dans le
même objet que A. Nous pourrons avoir 6 questions à poser (5 questions différentes) pour obtenir la réponse.
Question 1: est-ce que pour une occurrence de A, j'ai un moyen logique d’associer une occurrence et une seule de B ?
(souvent, ce moyen s’il existe, sera la présence d’une occurence de chacun de ces deux attributs A et B dans le même document ou sur le même objet physique)
Question 2: est-ce que pour une occurrence de B, j'ai un moyen logique d’associer une occurrence et une seule de A ?
(idem question 1) NB : si la réponse à l’une de ces deux questions est Non, la suite du processus décrit ici est inapplicable. Cette remarque est dûe à un défaut constaté de
commencer ce processus à la question 3
Question 3: A deux occurrences différentes de A, est-ce qu'on peut associer la même valeur pour B ?
(Si la réponse est non, on ne pourra jamais supposer que deux occurences de A partagent la même occurence de B, cette question n’empêche pas le regroupement de A et B)
Question 4: est-ce que de ce fait d'autres attributs en dépendent ?
(Si la réponse est oui, alors obligatoirement il y a une seule occurence de B pour deux occurences de A : le regroupement est impossible)
(Si la réponse est non, alors rien ne nous empêchera de dire qu’on a deux occurences de B, prenant “par hasarh” la même valeur, le regroupement reste possible)
Question 5: A deux occurrences différentes de B, est-ce qu'on peut associer deux occurrences de A prenant a la même valeur ?
(idem question 3)
Question 4: est-ce que de ce fait d'autres attributs en dépendent ?
Oui
Q1 Q2 Oui
Q3 Non
Q5 Non Même
objet
Non Non
Non Non
Oui Oui
Objets Objets
différents différents
Q4 Q4
Oui Oui
Objets Objets
différents différents
Exemple : Nom Prénom Il est facile de répondre Oui à la questions 1 en considérant les personnes physiques : chaque fois qu’il apparaît une occurence de Nom dans le système, on peut l’associer à une personne
physique, et donc au prénom de cette personne. Même raisonnement pour la question 2.
Dupont Alfred Lé réponse à la question 3 est Oui : Deux occurences de Nom (corespondant à deux personnes différentes) peuvent être associées au même prénom (ex : Dupont Alfred et Durand Alfred). Il est
Dupont Jean donc nécessaire de poser la question 4 : deux noms différents, s’ils sont associés au même prénom, auront-ils d’autres éléments en commun ? La réponse n’est jamais évidente, elle dépend
Durand Alfred évidemment de l’univers du discours, et donc du dictionnaire des données retenu. Si on gère juste un fichier d’interlocuteurs, il se peut que le partage d’un prénom par deux personnes n’ait pas
de conséquences, et on pourra affirmer que chacune cde ces deux personnes a son propre prénom, et que leur valeur commune n’est que le fruit du hasard. Mais si, dans notre U.D.D., nous
avons précisé que la date de fête doit être mémorisée (par exemple pour envoi de mail de souhait de bonne fête au jour dit) il est évident que deux personnes partageant le même prénom
Peut-on regrouper Nom et Prénom dans pourront être amenées, DE CE FAIT, à partager d’autres informations, ici la date de fête. Selon la réponse à cette question, en étudiant les contraintes de l’égalité des prénoms sur chacun des
le même objet ? autres attributs du D.D.D
NB : Se rappeler que chaque question technique posée dans cette démarche peut faire émerger une question importante de l’UDD. Dans cet exemple, la question 5 nous amène à se demander
si deux prénoms (et donc deux personnes) ayant le même nom pourront, de ce fait, avoir d’autres choses en commun . On fait ainsi émerger la question des familles : s’il s’agit de constituer un
fichier Client, négligera-t-on on intègrera-t-on cette notion de famille ? Tout raccourci consistant à regrouper “logiquement” nom et prénom dans le même objet aurait pour conséquence d’oublier
des questions parfois fondamentales.
But : • Reconnaître ceux qui, parmi les objets obtenus à l’étape précédente, Ebauche du M.C.D :
peuvent être “identifiés en interne”, c’est-à-dire tous les objets dont les
occurences pourront être repérées sans ambiguïté par le simple examen
des occurences de leurs attributs.
ARTICLE
Moyens : • Pour qu’un objet soit identifiable, il faut et il suffit qu’ il ne puisse pas y avoir
Nom Réf. produit
deux occurences de cet objet pour lesquelles tous les attributs auront les
Prénom Désignation
mêmes valeurs (on pourra donc reconnaître chaque occurence en
1° ligne adresse Prix unitaire HT
examinant les valeurs portées par ses attributs puisque l’ensemble de ces
2° ligne adresse
valeurs est distinct d’une occurence à l’autre).
CP
• Un objet identifiable à partir de ses attributs est appelé une entité. Choisir
Ville
un nom pour cette entité. L’entourer d’un rectangle surmonté du nom
choisi.
• Pour cette entité, il faudra ensuite déterminer un sous-ensemble le plus Qantité
limité possible de ses attributs (sous-ensemble souvent, mais non
nécessairement limité à un seul attribut), sur lequel deux occurences de
l’objet ne pourront avoir des valeurs distinctes (voir exemples). La
concaténation de cas attributs pourra donc servir à identifier chaque
occurence de l’entité. Cette concaténation sera appelée “Identifiant”. Le ou FACTURE Mode
les attributs omposant cet identifiant seront soulignés et placés en début
d’entité. Année facture Mode Reglt
N° Séquentiel
précautions : • Ici aussi, SE FIER À LA TECHNIQUE PLUTÔT QU’AU BON SENS : il arrive JourMois facture
qu’un choix d’identifiant paraisse évident et soit erronné.
Remarques :
But : • Reconnaître les dépendances entre objets qui permettront d’identifier les Ebauche du M.C.D avant ajout du code client :
objets qui ne peuvent l’être par eux-mêmes.
ARTICLE
Moyens : • L’étape précédente a permis de définir un identifiant pour chaque entité.
Parmi les objets non identifiés, il faudra reconnaître ceux qui seraient Nom Réf. produit
identifiables si on essayait, à l’aide d’une redondance, de leur adjoindre un Prénom Désignation
ou des identifiants déjà reconnus. 1° ligne adresse Prix unitaire HT
• Trois cas de figure se présentent : 2° ligne adresse
CP APPARAÎT
- L’objet est identifiable par deux ou plusieurs identifiants externes :
l’objet est alors une relation porteuse de données. On reconnaît cette Ville
Quantité
propriété de la manière suivante : si l’on dupliquait ces identifiants
externes dans l’objet considéré, il y aurait, pour chaque occurence de
l’objet, une seule occurence de chaque identifiant externe, et
l’ensemble de ces identifiants externes est discriminant i.e : il n’y a FACTURE
pas deux occurences de l’objet pour lesquelles l’ensemble de ces Mode
identifiants prend les mêmes valeurs). Année facture
Pour nommer cette relation, on choisit un verbe correspondant à N° Séquentiel Mode Reglt
l’action qui lie les entités ayant fourni les identifiants de la relation. On JourMois facture
surmonte la relation de son nom, puis on l’entoure d’un cercle, et on
relie cette relation à chacune des entités ayant fourni leur identifiant.
- L’objet est identifiable par la combinaison d’un identifiant externe, et Ebauche du M.C.D après ajout du code client et reprise des étapes 1.2.B à 1.2.E
un ou plusieurs attributs internes : l’objet est alors une entité relative (il n’y a pour l’instant pas de cas d’entité relative) :
(à la fois une entité et une relation), qu’on nomme, et qu’on entoure
d’un rectangle en pointillés, relié à l’entité identifiante par une flèche CLIENT ARTICLE
partant de la sous-entité.
La reconnaissance de la part externe de l’identifiant se fait comme Code client Réf. produit
pour l’alinéa précédent (cf exemple en I.2.I ci-dessous). Cas Nom Désignation
particulier : l’objet est identifiable à partir d’un seul identifiant externe : Prénom Prix unitaire HT
il existe alors une relation (0,1) à (1,1) entre cet objet et un objet déjà 1° ligne adresse
APPARAÎT
identifié : cf § I.2.J.a ci-dessous 2° ligne adresse
- L’objet n’est pas identifiable : il faut alors ajouter un identifiant (un “n° CP
Quantité
de code”) dans le dictionnaire des données et recommencer à partir Ville
de l’étape 1.2.B.
précautions : • Ne créer d’identifiant supplémentaire dans le DDD que dans le cas où il est FACTURE
impossible d’identifier un objet ni en interne, ni en externe. Mode
• Bien vérifier qu’il n’existe qu’une occurence d’un identifiant externe pour Année facture
une occurence de l’objet. N° Séquentiel Mode Reglt
• Dans le cas où plusieurs objets ne sont identifiables ni en interne, ni en JourMois facture
externe, ne pas créer plus d’un identifiant à la fois dans le DDD (car un
identifiant créé peut servir à identifier en externe d’autres objets que celui
dans lequel il a été intégré).
• A chaque ajout d’identifiant, il est indispensable de refaire l’épuration du
dictionnaire des données, car l’identifiant créé peut rendre caducs certains
attributs initialement retenus.
Remarques :
Remarques :
Moyens : • Etudier à tour de rôle chaque patte de chaque relation, c’est à dire chaque CLIENT ARTICLE
patte reliant une relation à une entité (ou une entité relative à une entité).
• Pour chaque patte, poser les deux questions : Code client Réf. produit
(0,n) (0,n)
- Pour n’importe laquelle des occurences de l’entité, peut-il y avoir 0 Nom Désignation
occurences de la relation, ou doit-il y en avoir au moins une ? Prénom Prix unitaire HT
- Pour n’importe laquelle des occurences de l’entité, peut-il y avoir n 1° ligne adresse
occurences de la relation, ou doit-il y en avoir au plus une ? CONCERNE APPARAÎT
2° ligne adresse
• surmonter chaque patte du couple de réponses apportées : selon le cass, CP
(0,1) ou (0,n) ou (1,1) ou (1,n). Quantité
Ville
(1,1) (1,n)
précautions : • Ne pas oublier les entités relatives.
• Ne pas pervertir les questions pour en faire par exemple “Pour n’importe FACTURE
laquelle des occurences de l’entité, peut-il y avoir 0 occurences de l’autre Mode
entité (ou des autres entités) concourant à la relation, ou doit-il y en avoir Année facture (1,1) Règle
au moins une ? N° Séquentiel Mode Reglt
(0,n)
• Ne pas oublier que souvent les cardinalités minimum ne se trouvent être JourMois facture
que des indications de traitement, sans grande importance structurelle. Par
contre les cardinalités maximum ont une imortance capitale dans
l’estimation du poids du projet (ceci sera détaillé dans le passage au
logique).
• En pratique : remettre en cause toutes les relations n’ayant aucun “n”
comme cardinalité maximale (en théorie, ceci peut exister, mais en
pratique, il y aura souvent intérêt à remplacer cette relation par la notion de
sous-entité - voir exemples du cours). En conséquence, on pourra en
pratique se permettre de négliger les cardinalités minimum. Une relation à
deux pattes ayant une patte (0,1) ou (1,1) et une patte (0,n) ou (1,n) sera
dite “relation 1-N”. Une relation à deux pattes ayant deux pattes (0,n) ou
(1,n) sera dite “relation N-N”.
• Sauf cas très tatillons de relations ayant des cardinalités (0,1) à (0,1) remis
en cause dans l’alinéa précédent, une relation porteuse de données aura
toujours des cardinalités maximum de n sur toutes ses pattes (sinon, les
attributs de la relation auraient pu être reportés dans l’entité reliée par cette
patte). La réciproque n’est pas vraie : une relation non porteuse de
données peut être du type 1-N ou N-N
Remarques :
But : • Modifier la présentation des relations les plus simples afin de représenter
MIEUX et plus vite la complexité réelle du M.C.D. CLIENT ARTICLE
Moyens : • En théorie : Toute relation à deux pattes ayant sur une patte une cardinalité Code client Réf. produit
(0,n)
(1,1) sera remplacée par une simple flèche partant de l’entité reliée par la Nom Désignation
patte (1,1) et aboutissant à l’autre entité concourant à la relation. Chacune Prénom Prix unitaire HT
de ces relations est appelée “contrainte d’intégrité fonctionnelle”, ou “CIF”. 1° ligne adresse
• En pratique : Toute relation à deux pattes ayant sur une patte une APPARAÎT
2° ligne adresse
cardinalité (0,1) ou (1,1) sera remplacée par une simple flèche partant de CP
Quantité
l’entité reliée par la patte (0,1) ou (1,1) et aboutissant à l’autre entité Ville
concourant à la relation.
(1,n)
Remarques :
But : • S’assurer que le modèle obtenu a bien tenu compte des évolutions On veut gérer la résistance au temps du prix des articles (on considère arbitrairement que les
susceptibles d’évoluer dans le temps. changements de taux de TVA ne font pas partie de l’univers du discours) : ceci nous amène à
introduire une donnée cachée (non visible dans les documents manipulés) “Date changement
Moyens : • Vérifier, pour chaque attribut de chaque objet, s’il y a conjonction des deux de prix d’article”. L’étape 3 nous amène à créer un nouvel objet “Fiche Prix” qui contient les
points suivants : attributs “Prix unitaire HT” et “date de changement de prix”. L’étape 5 nous amène à identifier
- La valeur d’une occurence au moins de cet attribut peut être modifiée cet objet à la fois avec le code article (externe) et la date (interne) : on a donc affaire à une
au cours de la vie du système. entité relative.
- Il faudra avoir accès à la fois à l’ancienne valeur et à la nouvelle
valeur de cette occurence
• S’il existe des attributs pour lesquels la réponse à ces deux questions est
simultanément positive, nous sommes en présence d’un M.C.D. qui “ne ARTICLE
résiste pas au temps”, et qui est donc basé sur un DDD erronné. Les (0,n)
corrections à apporter peuvent être de deux ordres : CLIENT Réf. produit
- Il existe une donnée cachée qui n’a pas été repérée dans le DDD APPARAÎT Désignation
(par exemple, la donnée “Date de modification” de l’attribut Code client
Quantité
concerné”). Il faut alors ajouter cette donnée cachée dans le DDD et Nom FICHE PRIX
refaire tout le processus à pârtir de l’étape 1.2.B (en effet, l’ajout de ce Prénom (1,n)
nouvel attribut peut amener à épurer d’autres attributs devenus 1° ligne adresse Date change
redondants). 2° ligne adresse FACTURE Prix unitaire HT
- Le nombre d’occurences de l’attribut a été sous-évalué : les valeurs CP
différentes attribuées à cet attribut au cours du temps sont en fait des Ville Année facture Mode
occurences différentes de cet attribut. Il faut alors reconsidérer le N° Séquentiel
regroupement des attributs de l’étape 1.2.C JourMois facture Mode Reglt
1.
précautions : • Il ne faut pas de remise en cause du M.C.D. obtenu à une réponse positive
à seulement la première des deux questions (i.e. “La valeur d’une
occurence au moins de l’attribut variera au cours du temps”) : si une valeur
change mais qu’on n’a pas besoin d’accéder à l’ancienne valeur, on a
alors une seule occurence de l’attribut.
Remarques :
Dans certains cas, on peut avoir des dépendances logiques entre deux relations distinctes :
INCLUDE, AND et XOR.
par exemple, imaginons une relation R1entre deux entités E1 et E2, et une autre relation R2
entre deux entités E1 (à nouveau) et E3. Supposons qu’une occurence de R1 ne peut
exister que si, pour la même occurence de E1, il n’existe aucune occurence de la relation
R2 (cas du XOR) ou au contraire si l’occurence de R1 ne peut exister que s’il existe
simultanément une occurence de R2 (cas du INCLUDE), ou si l’occurence de R1 ne peut
exister que s’il existe simultanément une occurence de R2 et réciproquement (cas du AND)
NB : ceci ne concerne que les traitements, et je préfère de loin alléger mon MCD et surtout
mon MLD en ne faisant pas figurer ce genre d’informations. En effet, ceci alourdit la lecture,
sans aider à l’élaboration des requêtes. Pour moi, il faut donc limiter ces indications aux
AGL proposant des applications générées qui mettront en œuvre les triggers ou les
contraintes d’intégrité correspondant à ces restrictions logiques. Dans tous les cas, il faudra
pouvaoir travailler au quotidien en exploitation sur un MLDdans lequel toutes ces
informations sont filtrées.
Mode Reglt
M.C.D.
ARTICLE
But : • Il s’agit de déterminer les colonnes et liaisons nécessaires au stockage des (0,n)
informations relatives à une relation 1-N. CLIENT Réf. produit
APPARAÎT Désignation
Moyens : • Une relation 1-N est représentée par deux éléments : Code client
- La création d’une colonne dans la table découlant de l’entité située du Nom
Quantité
côté 1 de la relation.Cette colonne est composée de l’identifiant de FICHE PRIX
Prénom (1,n)
l’entité située du côté N de la relation. Cette colonne est dite “clé 1° ligne adresse
étrangère” , elle sera soulignée en pointillés. FACTURE Date change
2° ligne adresse
- une liaison entre l’intitulé de la table découlant de l’entité située du CP Prix unitaire HT
côté N de la relation et cette clé étrangère. Ville Année facture Mode
N° Séquentiel
précautions : • Si l’identifiant de l’entité située du côté N de la relation est composé de la JourMois facture Mode Reglt
concaténation de plusieurs attributs, la partie de l’identifiant récupérée
dans la table qui découle de la relation le sera aussi.
• Attention : lesens des flèches du M.L.D est inversé par rapport au sens des
flèches des CIF du MCD. M.L.D.
Remarques :
ARTICLE
CLIENT
Réf. produit
Code client Désignation
Nom FACTURE
Prénom
1° ligne adresse Année facture
2° ligne adresse N° Séquentiel
CP JourMois facture
Ville Code client
Mode Règlt
Mode
Mode Reglt
M.C.D.
But : • Il s’agit de déterminer les tables nécessaires au stockage des informations
relatives à une relation N-N.
Remarques :
ARTICLE
CLIENT
Réf. produit
Code client Désignation
Nom
Prénom FACTURE
1° ligne adresse LIGNE
2° ligne adresse Année facture
CP N° Séquentiel Année facture
Ville JourMois facture N° Séquentiel
Code client Réf. produit
Mode Reglt Quantité
Mode
Mode Reglt
M.C.D.
But : • Il s’agit de déterminer les attributs et tables nécessaires au stockage des
informations relatives à une entité relative.
Moyens : • Une entité relative est représentée comme une entité et une relation. Pour
cela, il faut réaliser tois actions : (0,n) ARTICLE
- La création d’une table découlant de l’entité relative.
- La création d’une clé étrangère, comme pour toute relation, c’est-à- CLIENT Réf. produit
dire l’ajout de l’identifiant de l’entité pointée par l’entité relative dans Désignation
APPARAÎT
la table découlant de cette entité et de la liaison entre la table Code client
découlant de l’entité pointée et cette clé étrangère. Nom Quantité
- L’utilisation de cette clé étrangère comme composant de l’identifiant Prénom FICHE PRIX
de la table découlant de l’entité relative. (1,n)
1° ligne adresse
2° ligne adresse FACTURE Date change
précautions : • Si l’identifiant d’une entité N est composé de la concaténation de plusieurs CP Prix unitaire HT
attributs, la partie de l’identifiant récupérée dans la table qui découle de la Ville Année facture
relation le sera aussi. N° Séquentiel
• Si la relation a plus de deux pattes, on procède de même avec chacune JourMois facture
des pattes ayant une cardinalité maximale égale à n.
• L’ordre dans lequel les identifiants des entités sont récupérés pour fournir
la clé unique de la table découlant de la relation n’a pas d’importance
structurelle. Il s’agira tout au plus d’une optimisation dans la taille ou M.L.D.
l’efficacité des index en découlant (voir exemples du cours).
Remarques :
CLIENT
Mode
Mode Reglt
• Toutes les colonnes dont le nombre de lignes est au plus égal à 1 seront • Il est en général peu intéressant de créer une colonne redondante pour
regroupées dans une table de paramètres. éviter l’éxécution une boucle : par exemple, il est peu intéressant de
mémoriser un cumul d’une colonne dans une table liée directement, car le
• Les tables dont le nombre de colonnes est égal à 1, et qui sont cibles de recalcul de ce cumul est généralement assez rapide (par exemple, pour
liens (dans la représentation CODASYL du M.L.D.) sans être origines de visualiser une facture, le montant total d’une facture n’a pas besoin d’être
liens seront épurées (ces tables correspondent en général à des attributs mémorisé dans la table Facture).
pouvant prendre un nombre fini et prédéterminé de valeurs distinctes. Ces
tables peuvent souvent être épurées dès le M.C.D. voir exemple, table • Il est en général intéressant de créer une colonne redondante pour éviter
“Mode” ). l’éxécution de deux boucles imbriquées : par exemple, il est intéressant de
mémoriser un cumul d’une colonne dans une table liée directement, lorsque
• On placera systématiquement un index sur la clé primaire de chaque table. ce total doit être affiché dans chaque ligne d’une liste utilisée fréquemment
(par exemple, pour visualiser la liste des factures, le montant total d’une
facture doit être mémorisé dans la table Facture si on veut un affichage
fréquent de la liste des factures). En particulier, si une requête doit être
III.3 - Optimisations courantes lancée à lintérieur d’une boucle, les temps de réponse seront contraignants.