Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
A propos de l'auteur
Introduction
Partie I : Conception de bases de données relationnelles
8h 33min restantes
Introduction
La cuisine simple ne peut pas être confiée à de simples cuisiniers.
—COMTESSE M ORPHIE _
Je suis toujours étonné de voir à quel point les logiciels de bases de données
ont évolué au cours des 25 dernières années. Nous sommes passés de bases
de données stockées et exécutées à partir d'ordinateurs personnels à des
bases de données partagées et centralisées à l'échelle de l'entreprise sur des
architectures client/serveur connectées au sein de réseaux locaux et étendus,
jusqu'à des applications accessibles sur des appareils personnels avec des
bases de données stockées dans le cloud.
Les systèmes de gestion de bases de données ont également évolué. Ils sont
beaucoup plus faciles à utiliser et à entretenir, ils gèrent désormais de très gros
volumes de données et ils sont aussi omniprésents que des hamburgers. Vous
utilisez tout le temps des applications créées avec eux sur votre ordinateur et
vos appareils lorsque vous travaillez, faites des achats ou recherchez des
informations sur Internet.
Les fournisseurs de logiciels de bases de données continuent d'ajouter de
nouvelles fonctionnalités et d'améliorer les ensembles d'outils de leurs
produits, permettant aux développeurs de bases de données de créer des
applications de bases de données plus puissantes et plus flexibles. Ils
améliorent également constamment la facilité d'utilisation du logiciel,
permettant ainsi à de nombreuses personnes de créer leurs propres
applications de base de données. Les logiciels de bases de données
d'aujourd'hui simplifient considérablement le processus de création de
structures de bases de données efficaces et d'interfaces utilisateur intuitives.
La plupart des programmes fournissent des exemples de structures de bases
de données que vous pouvez copier et modifier en fonction de vos besoins
spécifiques. Bien que vous puissiez penser au départ qu'il serait très
avantageux d'utiliser ces exemples de structures comme base pour une
nouvelle base de données, vous devriez vous arrêter etreconsidérez cette
décision un instant. Pourquoi? Parce que vous pourriez facilement et
involontairement créer une conception inappropriée, inefficace et
incomplète. Vous finirez alors par rencontrer des problèmes dans ce que vous
considérez comme une conception de base de données fiable. Cela soulève
bien sûr la question : « Quels types de problèmes pourrais-je rencontrer ? »
La plupart des problèmes qui apparaissent dans une base de données se
répartissent en deux catégories : les problèmes d'utilisation des applications et
les problèmes de données . Les problèmes d'application incluent des éléments
tels que des formulaires de saisie/modification de données problématiques, des
menus et des barres d'outils déroutants, des boîtes de dialogue déroutantes et
des séquences de tâches fastidieuses. Ces problèmes surviennent
généralement lorsque le développeur de base de données est inexpérimenté,
n'est pas familier avec une bonne méthodologie de conception d'applications,
connaît trop peu le logiciel qu'il utilise pour implémenter la base de données ou
a une compréhension insuffisante des données avec lesquelles il travaille. Les
problèmes de cette nature sont courants et importants à résoudre, mais ils
dépassent la portée de ce travail.
Note
Un bon moyen de résoudre bon nombre de vos problèmes d'application
consiste à acheter et à étudier des livres de « développeurs » tiers qui couvrent
le logiciel que vous utilisez. Ces livres traitent des problèmes de conception
d'applications, des techniques de programmation avancées et de divers trucs
et astuces que vous pouvez utiliser pour améliorer et améliorer une
application. Armé de ces nouvelles compétences, vous pouvez réorganiser et
affiner l’application de base de données afin qu’elle fonctionne correctement,
de manière fluide et efficace.
Les problèmes de données, en revanche, incluent des éléments tels que des
données manquantes, des données incorrectes, des données incompatibles et
des informations inexactes. Une mauvaise conception de base de données est
généralement à l’origine de ces types de problèmes. Une base de données ne
répondra pas aux besoins d'information d'une organisation si elle n'est pas
correctement structurée. Même si une mauvaise conception est généralement
générée par un développeur de bases de données qui ne connaît pas les bons
principes de conception de bases de données, elle ne devrait pas
nécessairement avoir un impact négatif surle développeur. De nombreuses
personnes, y compris des programmeurs et des développeurs de bases de
données expérimentés, n'ont reçu que peu ou pas de formation sur une
quelconque forme de méthodologie de conception de bases de
données. Beaucoup ignorent qu’il existe des méthodologies de conception. Les
problèmes de données et une mauvaise conception sont les problèmes que ce
travail abordera.
Quoi de neuf dans la quatrième édition
J'ai révisé cette édition pour améliorer la lisibilité, mettre à jour ou étendre les
sujets existants, ajouter du nouveau contenu et améliorer sa valeur
pédagogique. Voici une liste des changements que vous trouverez dans cette
édition.
• Des parties du texte ont été réécrites pour améliorer la clarté et la
compréhension du lecteur.
• Les chiffres ont été mis à jour pour améliorer leur pertinence, le cas
échéant.
• Il y a maintenant une nouvelle section « Exemple » à la fin des chapitres
5 à 13 .
• Le chapitre 1 a été révisé, supprimant le contenu qui n'est plus important et
ajoutant une section « Quelle est la prochaine étape ? » section concernant
ce que je considère comme l'état actuel et l'avenir de la base de données
relationnelle.
• Le chapitre 5 contient une nouvelle note concernant le COVID-19 et son
impact sur la réalisation des entretiens pour le processus de conception.
• La discussion du chapitre 5 sur les entretiens et les lignes directrices pour
les intervieweurs ont toutes deux été légèrement révisées pour tenir compte
de la popularité et de l'acceptation croissantes des réunions en ligne et des
scénarios de travail à domicile (WFH).
• L' exemple de boîte de dialogue d' entretien du chapitre 7 a été mis à jour à
la suite des modifications apportées aux lignes directrices pour les
enquêteurs au chapitre 5 .
• Le formulaire Spécifications de champ a été légèrement rationalisé et le
formulaire Règles métier a été ajusté de manière appropriée pour le
synchroniser avec les modifications apportées au formulaire Spécifications
de champ.
• Les processus Technique d’identification du sujet et Technique
d’identification des caractéristiques ont également été ajustés pour tenir
compte des scénarios de réunion en ligne.
• Les « Questions de révision » de fin de chapitre ont été mises à jour pour
refléter les nouvelles questions, et des modifications ont été apportées aux
questions existantes.
• La section « Lectures recommandées » comprend les dernières éditions des
livres.
Qui devrait lire ce livre
Aucune expérience préalable en conception de bases de données n’est
nécessaire pour lire ce livre. La raison pour laquelle vous avez ce livre entre vos
mains est d’apprendre à concevoir correctement une base de données. Si vous
débutez dans la gestion de bases de données et envisagez de développer vos
propres bases de données, ce livre vous sera très précieux. Il est préférable
d’apprendre à créer correctement une base de données dès le début plutôt que
d’apprendre par essais et erreurs. Croyez-moi, cette dernière méthode prend
beaucoup plus de temps.
Si vous appartenez à la catégorie des personnes qui travaillent avec des
programmes de bases de données depuis un certain temps et qui sont prêtes à
commencer à développer de nouvelles bases de données pour votre entreprise
ou votre entreprise, vous devriez lire ce livre. Vous avez probablement une
bonne idée de ce à quoi devrait ressembler une bonne structure de base de
données, mais vous ne savez pas vraiment comment les développeurs de
bases de données parviennent à une conception efficace. Peut-être êtes-vous
un programmeur qui a créé un certain nombre de bases de données en suivant
quelques directives de base, mais vous avez toujours fini par écrire beaucoup
de code pour que la base de données fonctionne correctement. Si tel est le cas,
ce livre est aussi pour vous.
La lecture de ce livre est également une bonne idée même si vous avez déjà
une certaine expérience en conception de bases de données. Peut-être avez-
vous appris une méthodologie de conception à l'université ou assisté à un
cours de base de données traitant de la conception, mais votre mémoire est
vague sur certains détails, ou vous n'avez tout simplement pas complètement
compris certaines parties du processus de conception. Les points avec lesquels
vous avez rencontré des difficultés deviendront enfin clairs une fois que vous
aurez appris et compris le processus de conception présenté dans ce livre.
Ce livre convient également à ceux d'entre vous qui sont des développeurs et
programmeurs de bases de données expérimentés. Même si vous connaissez
peut-être déjà de nombreux aspects du processus de conception présentés
dans ce livre, vous trouverez probablement certains éléments que vous n'avez
jamais rencontrés ou pris en compte auparavant. Vous pouvez même trouver
de nouvelles idées sur la façon de concevoir vos bases de données en
examinant le contenu de ce livre, car de nombreux processus de conception
qui vous sont familiers sont présentés sous un point de vue différent. Mais
n’oubliez pas que si vous êtes ce type de personne, il ne s’agira pour vous que
d’un simple aperçu des concepts généraux d’une bonne conception de base de
données. Aucune normalisation. Pas de jargon technique. Aucun langage de
programmation ni références de code. Juste un bon aperçu de ce à quoi
ressemblent des structures de données solides et des raisons qui motivent la
prise de décisions structurelles judicieuses et judicieuses.
Le but de ce livre
En termes généraux, le processus global de développement d’une base de
données comporte trois phases.
1. Conception logique : la première phase consiste à déterminer et définir les
tables et leurs champs, à établir les clés primaires et étrangères, à établir
les relations entre les tables, ainsi qu'à déterminer et établir les différents
niveaux d'intégrité des données.
2. Implémentation physique : la deuxième phase consiste à créer les tables, à
établir les champs clés et les relations entre les tables et à utiliser les outils
appropriés pour mettre en œuvre les différents niveaux d'intégrité des
données.
3. Développement d'applications : La troisième phase consiste à créer une
application permettant à un seul utilisateur ou à un groupe d'utilisateurs
d'interagir avec les données stockées dans la base de données. La phase de
développement de l'application elle-même peut être divisée en processus
distincts, tels que la détermination des tâches de l'utilisateur final et de
leurs séquences appropriées, la détermination des informations requises
pour la sortie du rapport et la création d'un système de menus pour
naviguer dans l'application.
Vous devez toujours commencer par la conception logique et l’exécuter aussi
complètement que possible. Après avoir créé une structure solide, vous pouvez
l'implémenter dans n'importe quel logiciel de base de données de votre
choix. Au début de la phase de mise en œuvre, vous constaterez peut-être que
vous devrez modifier la structure de la base de données en fonction des
avantages et des inconvénients ou des forces et des faiblesses du logiciel de
base de données que vous avez choisi. Vous pouvez même décider d'apporter
des modifications structurelles pour améliorer les performances de traitement
des données. Effectuer d'abord la conception logique garantit que vous prenez
des décisions conscientes, méthodiques, claires et éclairées concernant la
structure de votre base de données. En conséquence, vous contribuez à
minimiser le nombre potentiel de modifications structurelles supplémentaires
que vous pourriez avoir besoin d'effectuer pendant les phases de mise en
œuvre physique et de développement d'applications.
Ce livre traite uniquement de la phase de conception logique du processus de
développement global, et son objectif principal est d'expliquer le processus de
conception de bases de données relationnelles sans utiliser les méthodologies
orthodoxes avancées que l'on trouve dans une écrasante majorité des livres de
conception de bases de données. J'ai pris soin d'éviter les complexités de ces
méthodologies en présentant une approche relativement simple et pleine de
bon sens du processus de conception. J'utilise également un système de
données simple et directméthode de modélisation en complément de cette
approche et présenter l'ensemble du processus le plus clairement possible et
avec un minimum de jargon technique.
De nombreux livres sur la conception de bases de données sur le marché
incluent des chapitres sur la mise en œuvre de la base de données dans un
produit de base de données spécifique, et certains livres semblent même
fusionner les phases de conception et de mise en œuvre. (Je n'ai jamais été
particulièrement d'accord avec l'idée de combiner ces phases, et j'ai toujours
soutenu qu'un développeur de bases de données devait effectuer les phases de
conception logique et de mise en œuvre séparément pour garantir une
concentration, une efficacité et une efficience maximales.) Le principal
inconvénient que j'ai Ce que j'ai rencontré avec ce type de livres, c'est qu'un
lecteur peut avoir des difficultés à obtenir des informations utiles ou
pertinentes dans les chapitres de mise en œuvre s'il ne travaille pas avec le
logiciel de base de données ou le langage de programmation particulier
incorporé dans le livre. C'est pour cette raison que j'ai décidé d'écrire un livre
qui se concentre strictement sur la conception logique de la base de données.
Ce livre devrait être plus facile à lire que d’autres livres que vous avez pu
rencontrer sur le sujet. La plupart des ouvrages sur la conception de bases de
données disponibles sur le marché sont très techniques et peuvent être
difficiles à assimiler. Je pense que la plupart de ces livres peuvent être
déroutants et accablants si vous n'êtes pas un spécialiste en informatique, un
théoricien des bases de données ou un développeur de bases de données
expérimenté. Les principes de conception que vous apprendrez dans ces pages
sont faciles à comprendre et à retenir, et les exemples sont suffisamment
courants et génériques pour être pertinents dans une grande variété de
situations.
La plupart des gens que j'ai rencontrés lors de mes voyages à travers le pays
m'ont dit qu'ils voulaient simplement apprendre à créer une structure de base
de données solide sans avoir à se renseigner sur les formes normales ou les
théories mathématiques avancées. De nombreuses personnes ne s'inquiètent
pas autant de la mise en œuvre d'une structure dans un logiciel de base de
données spécifique que d'apprendre à optimiser leurs structures de données et
à imposer l'intégrité des données. Dans ce livre, vous apprendrez à créer une
base de données efficacestructures, comment imposer plusieurs niveaux
d'intégrité des données, ainsi que comment relier les tableaux entre eux pour
obtenir des informations d'un nombre presque infini de façons. Ne t'inquiète
pas; ce n’est pas une tâche aussi difficile qu’on pourrait le penser. Vous serez
en mesure d'accomplir tout cela en comprenant quelques termes clés et en
apprenant et en utilisant un ensemble spécifique de techniques et de concepts
de bon sens.
Vous apprendrez également à analyser et à exploiter une base de données
existante, à déterminer les besoins en informations, ainsi qu'à déterminer et
mettre en œuvre des règles métier. Ces sujets sont importants car beaucoup
d'entre vous hériteront probablement d'anciennes bases de données qu'il vous
faudra réorganiser en utilisant ce que vous apprendrez en lisant ce livre. Ils
seront également tout aussi importants lorsque vous créerez une nouvelle base
de données à partir de zéro.
Lorsque vous aurez fini de lire ce livre, vous disposerez des connaissances et
des outils nécessaires pour créer une bonne structure de base de données
relationnelle. Je suis convaincu que toute cette approche fonctionnera pour une
majorité de développeurs et pour les bases de données qu'ils doivent créer.
Comment lire ce livre
Je vous recommande fortement de lire ce livre dans l'ordre du début à la fin,
que vous soyez novice ou professionnel. De cette façon, vous garderez tout
dans son contexte et éviterez la confusion qui vient généralement du fait de ne
pas être en mesure d'avoir une « vision d'ensemble » en premier. C'est
également une bonne idée d'apprendre le processus dans son ensemble avant
de commencer à vous concentrer sur une seule partie.
Si vous lisez ce livre pour rafraîchir vos compétences en conception, vous
pouvez lire uniquement les sections qui vous intéressent. Dans la mesure du
possible, j'ai essayé d'écrire chaque chapitre de manière à ce qu'il puisse être
autonome ; néanmoins, je vous recommande quand même de parcourir chaque
chapitre pour vous assurer de ne manquer aucune nouvelle idée ou point sur le
design que vous n'avez peut-être pas envisagé jusqu'à présent.
Comment ce livre est organisé
Ce qui suit est un bref aperçu de ce que vous trouverez dans chaque partie et
chaque chapitre.
Partie I : Conception de bases de données relationnelles
Cette section fournit une introduction aux bases de données, l'idée de la
conception de bases de données et une partie de la terminologie que vous
devrez connaître pour apprendre et comprendre le processus de conception
présenté dans ce livre.
Le chapitre 1 , « La base de données relationnelle », fournit une brève
discussion des types de bases de données que vous rencontrerez, des modèles
de bases de données courants et un bref historique de la base de données
relationnelle.
Le chapitre 2 , « Objectifs de conception », explore les raisons pour lesquelles
vous devriez vous préoccuper de la conception, souligne les objectifs et les
avantages d'une bonne conception et fournit une brève introduction à la
normalisation et aux formes normales.
Le chapitre 3 , « Terminologie », couvre les termes que vous devez connaître
pour apprendre et comprendre la méthodologie de conception présentée dans
ce livre.
Partie II : Le processus de conception
Chaque aspect du processus de conception de base de données est abordé en
détail dans la partie II , notamment l'établissement de structures de tables,
l'attribution de clés primaires, la définition de spécifications de champs,
l'établissement de relations entre tables, la configuration de vues et
l'établissement de divers niveaux d'intégrité des données.
Le chapitre 4 , « Aperçu conceptuel », fournit un aperçu du processus de
conception, vous montrant comment les différents composants du processus
s'articulent.
Le chapitre 5 , « Démarrage du processus », explique comment définir un
énoncé de mission et des objectifs de mission pour la base de données, qui
vous fournissent tous deux une orientation initiale pour la création de votre
base de données.
Le chapitre 6 , « Analyse de la base de données actuelle », couvre les
problèmes concernant la base de données existante. Nous examinons les
raisons d'analyser la base de données actuelle, comment examiner les
méthodes actuelles de collecte et de présentation des données, pourquoi et
comment mener des entretiens avec les utilisateurs et la direction, et comment
compiler les premières listes de champs.
Le chapitre 7 , « Établissement des structures de table », couvre des sujets
tels que la détermination et la définition des sujets que la base de données doit
suivre, l'association des champs aux tables et l'affinement des structures de
table.
Le chapitre 8 , « Clés », couvre le concept de clés et leur importance dans le
processus de conception, ainsi que la manière de définir les clés candidates et
primaires pour chaque table.
Le chapitre 9 , « Spécifications des champs », aborde un sujet qu'un certain
nombre de développeurs de bases de données ont tendance à minimiser. En
plus d'indiquer comment chaque champ est créé, les spécifications de champ
déterminent la nature même des valeurs qu'un champ contient. Les sujets de
ce chapitre incluent l'importance des spécifications de champ, les types de
caractéristiques de spécification et la manière de définir des spécifications pour
chaque champ de la base de données.
Le chapitre 10 , « Relations entre tables », explique l'importance des relations
entre tables, les types de relations, l'établissement de relations et
l'établissement des caractéristiques des relations.
Le chapitre 11 , « Règles métier », couvre les types de règles métier, la
détermination et l'établissement de règles métier et l'utilisation des tables de
validation. Les règles métier sont très importantes dans toute base de données
car elles fournissent un niveau distinct d’intégrité des données.
Le chapitre 12 , « Vues », examine le concept de vues et pourquoi elles sont
importantes, les types de vues et comment déterminer et configurer les vues.
Le chapitre 13 , « Examen de l'intégrité des données », passe en revue
chaque niveau d'intégrité défini et discuté dans les chapitres précédents. Ici,
vous apprenez que revoir la conception finale de la structure de la base de
données est une bonne idée pour vous assurer que vous avez imposé l'intégrité
des données aussi complètement que possible.
Partie III : Autres problèmes de conception de bases de données
Cette section traite de sujets tels que éviter une mauvaise conception et
contourner les règles énoncées dans le processus de conception.
Le chapitre 14 , « Mauvaise conception : ce qu'il ne faut pas faire », couvre
les types de conceptions que vous devriez éviter, telles qu'une conception de
fichier plat et une conception de feuille de calcul.
Le chapitre 15 , « Enfreindre ou enfreindre les règles », aborde les rares cas
dans lesquels il peut être nécessaire de s'écarter des techniques et des
concepts du processus de conception. Ce chapitre vous indique quand vous
devriez envisager de contourner les règles, ainsi que comment vous devez le
faire.
Partie IV : Annexes
Ces annexes fournissent des informations qui, à mon avis, vous seraient utiles
lorsque vous en apprendrez davantage sur le processus de conception de base
de données et lorsque vous travaillerez au développement de votre base de
données.
L'Annexe A , « Réponses aux questions de révision », contient les réponses à
toutes les questions de révision des chapitres 1 à 12 .
L'Annexe B , « Schéma du processus de conception de base de données »,
fournit un diagramme qui cartographie l'ensemble du processus de conception
de base de données.
L'Annexe C , « Directives de conception », fournit une référence simple aux
différents ensembles de directives de conception qui apparaissent tout au long
du livre.
L'annexe D , « Formulaires de documentation », fournit des copies vierges des
feuilles Spécifications de champ, Spécifications de règle métier et
Spécifications de vue, que vous pouvez copier et utiliser sur vos projets de
base de données.
L'Annexe E , « Symboles des diagrammes de conception de bases de
données », contient une référence rapide et simple aux symboles des
diagrammes utilisés tout au long du livre.
L'Annexe F , « Exemples de conceptions », contient des exemples de
conceptions de bases de données qui peuvent servir de base à des idées de
bases de données que vous souhaiterez ou devrez créer.
L'annexe G , « Sur la normalisation », fournit une discussion sur la façon dont
j'ai intégré la normalisation dans ma méthodologie de conception.
L'Annexe H , « Lectures recommandées », fournit une liste de livres que vous
devriez lire si vous souhaitez poursuivre une étude approfondie de la
technologie des bases de données.
Le glossaire contient des définitions concises de divers mots et expressions
utilisés tout au long du livre.
IMPORTANT : LIRE CETTE SECTION !
Un mot sur les exemples et les techniques de ce livre
Vous remarquerez que ce livre contient une grande variété d’exemples. Je me
suis assuré qu'ils sont aussi génériques et pertinents que possible. Cependant,
vous remarquerez peut-être que plusieurs exemples sont plutôt simplifiés,
incomplets ou parfois même incorrects. Croyez-le ou non, je les ai créés de
cette façon exprès.
J'ai créé quelques exemples avec des erreurs afin de pouvoir illustrer des
concepts et des techniques spécifiques. Sans ces exemples, vous ne verriez
pas comment les concepts ou les techniques sont utilisés, ni comment
lesrésultats que vous devriez attendre de leur utilisation. D’autres exemples
sont simples car, encore une fois, l’accent est mis sur la technique ou le
concept et non sur l’exemple lui-même. Par exemple, vous pouvez concevoir
une base de données de suivi des commandes de plusieurs
manières. Cependant, la structure de l'exemple de base de données de suivi
des commandes que j'utilise dans ce livre est simple car l'accent est
spécifiquement mis sur le processus de conception, et non sur la création d'un
système de base de données de suivi des commandes élaboré.
Donc, ce que j'essaie vraiment de souligner ici, c'est ceci :
Concentrez-vous sur le concept ou la technique et les résultats escomptés, et
non sur l'exemple utilisé pour l'illustrer.
Mon approche de l'apprentissage
Voici mon approche pour apprendre le processus de conception (ou à peu près
n'importe quoi d'autre, d'ailleurs) que j'ai trouvée très utile dans mes cours de
conception de bases de données.
Considérez toutes les techniques utilisées dans le processus de conception
comme un ensemble d'outils ; chaque outil (ou technique) est utilisé dans un
but précis. L'idée ici est qu'après avoir appris comment un outil est utilisé de
manière générique, vous pouvez ensuite utiliser cet outil dans un certain
nombre de situations. La raison pour laquelle vous pouvez procéder ainsi
est que vous utilisez l’outil de la même manière dans chaque situation.
Prenez une clé à molette, par exemple. De manière générale, vous utilisez une
clé à molette pour serrer et desserrer un écrou sur un boulon. Vous ouvrez ou
fermez la mâchoire de la clé pour installer un boulon donné en utilisant la vis
de réglage située sur la tête de la clé. Maintenant que vous savez clairement
comment l'utiliser, essayez de l'utiliser sur quelques boulons. Essayez-le sur les
pieds d'une chaise d'extérieur, sur le couvercle de la courroie de ventilateur
d'un moteur, sur le panneau latéral d'une unité de refroidissement extérieure
ou sur les plaques de charnière d'un portail en fer. Avez-vous remarqué que
quel que soit l'endroit où vous rencontrez un écrou et un boulon, vous pouvez
toujours serrer et desserrer l'écrou en utilisant la clé Crescent de la même
manière ?
Les outils utilisés pour concevoir une base de données
fonctionnent exactement de la même manière. Une fois que vous aurez
compris comment un outil est utilisé de manière générique, il fonctionnera de
la même manière quelles que soient les circonstances dans lesquelles il est
utilisé. Par exemple, considérons l'outil (ou la technique) permettant de
décomposer une valeur de champ. Supposons que vous ayez un seul champ
Adresse dans une table CLIENTS qui contient l'adresse postale, la ville, l'état et
le code postal d'un client donné. Vous aurez du mal à utiliser ce champ dans
votre base de données car il contient plusieurs éléments de données ; vous
aurez certainement du mal à récupérer des informations sur une ville
particulière ou à trier les informations par code postal spécifique.
La solution à ce dilemme apparent consiste à décomposer le champ Adresse en
champs plus petits. Pour ce faire, identifiez les éléments distincts qui
composent la valeur du champ, puis traitez chaque élément comme son propre
champ distinct. C'est tout ce qu'on peut en dire! Ce processus constitue un «
outil » que vous pouvez désormais utiliser sur n'importe quel champ contenant
une valeur composée de deux ou plusieurs éléments de données distincts,
comme ces exemples de champs. Le tableau suivant montre les résultats du
processus de décomposition.
Nom du champ
Exemple de valeur Nouveaux noms de champs
actuel
7402, promenade Kingman, Adresse postale, ville, état, code
Adresse
Seattle, WA 98012 postal
Indicatif régional, numéro de
Téléphone (206) 555-5555
téléphone
Nom Mike Hernández Prénom nom de famille
Département, catégorie, numéro
Code Employé ITDEV0516
d'identification
Note
Vous en apprendrez davantage sur la décomposition des valeurs de champ
au chapitre 7 , « Établir des structures de table ».
Vous pouvez utiliser de la même manière toutes les techniques (« outils ») qui
font partie du processus de conception présenté dans ce livre. tu
pourrasconcevez une structure de base de données solide en utilisant ces
techniques, quel que soit le type de base de données que vous devez
créer. N'oubliez pas ceci :
Concentrez-vous sur le concept ou la technique présentée et sur les résultats
escomptés, et non sur l'exemple utilisé pour l'illustrer.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
Partie I : Conception de bases de données relationnelles
1. La base de données relationnelle
2. Objectifs de conception
8h 33min restantes
La base de données relationnelle
Un poisson doit nager trois fois : dans l'eau, dans le beurre et dans le vin.
—PROVERBE POLONAIS
Sujets abordés dans ce chapitre
Qu'est-ce qu'une base de données ?
La base de données relationnelle
Et après?
Résumé
Questions de révision
La base de données relationnelle existe depuis 50 ans au moment d'écrire ces
lignes. Oui, c'est vrai : 50 ans ! Il s'agit toujours d'une industrie
multimilliardaire, elle reste le type de base de données le plus largement
utilisé, a résisté aux changements du monde des bases de données, a résisté à
l'épreuve du temps et constitue une partie essentielle de notre vie
quotidienne. Il est très probable que vous utilisiez une base de données
relationnelle chaque fois que vous achetez des biens en ligne ou dans un
magasin local, planifiez un voyage en ligne ou avec votre agent de voyages,
consultez des livres à la bibliothèque ou commandez de la nourriture à l'aide
d'une application sur votre appareil mobile. .
Qu'est-ce qu'une base de données ?
Qu'est-ce qu'une base de données ? Comme vous le savez probablement, une
base de données est une collection organisée de données utilisée dans le but
de modéliser un certain type d'organisation ou de processus
organisationnel. Peu importe que vous utilisiez des feuilles de calcul ou un
programme d'application de base de données sur le serveur.ordinateur pour
collecter et stocker les données. Tant que vous collectez des données de
manière organisée dans un but spécifique, vous disposez d’une base de
données. Dans le reste de cette discussion, nous supposerons que vous utilisez
un programme d'application pour collecter et conserver vos données.
Les deux types de bases de données dans la gestion de bases de données
sont les bases de données opérationnelles et les bases de données
analytiques .
Les bases de données opérationnelles constituent l’épine dorsale de
nombreuses entreprises, organisations et institutions à travers le monde. Ce
type de base de données est principalement utilisé dans les scénarios de
traitement des transactions en ligne (OLTP) ; c'est-à-dire dans les situations où
il est nécessaire de collecter, de modifier et de conserver des données
quotidiennement. Le type de données stockées dans une base de données
opérationnelle est dynamique , ce qui signifie qu'elles changent constamment
et reflètent toujours des informations à jour. Des organisations telles que des
magasins de détail, des entreprises manufacturières, des hôpitaux, des
cliniques et des maisons d'édition utilisent des bases de données
opérationnelles car leurs données sont en constante évolution.
En revanche, les bases de données analytiques sont principalement utilisées
dans les scénarios de traitement analytique en ligne (OLAP), où il est
nécessaire de stocker et de suivre des données historiques et temporelles. Une
base de données analytique est un atout précieux lorsqu'il est nécessaire de
suivre les tendances, de visualiser des données statistiques sur une longue
période et de faire des projections commerciales tactiques ou stratégiques. Ce
type de base de données stocke des données statiques , ce qui signifie que les
données ne sont jamais (ou très rarement) modifiées. Les informations glanées
à partir d'une base de données analytique reflètent un instantané instantané
des données. Les laboratoires chimiques, les sociétés géologiques et les
sociétés d'analyse marketing sont des exemples d'organisations qui utilisent
des bases de données analytiques.
Les bases de données analytiques utilisent souvent les données des bases de
données opérationnelles comme source de données principale, il peut donc y
avoir un certain degré d'association entre elles ; néanmoins, les bases de
données opérationnelles et analytiques répondent à des types de besoins
informatiques très spécifiques et la création de leurs structures nécessite des
méthodologies de conception radicalement différentes. Ce livrese concentre
sur la conception d’une base de données opérationnelle car il s’agit encore
aujourd’hui du type de base de données le plus utilisé dans le monde.
La base de données relationnelle
La base de données relationnelle a été conçue en 1969 et reste aujourd’hui l’un
des modèles de base de données les plus utilisés dans la gestion de bases de
données. Le père du modèle relationnel, le Dr Edgar F. Codd, était un chercheur
scientifique chez IBM à la fin des années 1960 et cherchait à cette époque de
nouvelles façons de gérer de grandes quantités de données. Son insatisfaction
à l'égard des modèles et des produits de bases de données de l'époque l'a
amené à réfléchir à des moyens d'appliquer les disciplines et les structures
mathématiques pour résoudre la myriade de problèmes qu'il avait
rencontrés. Étant mathématicien de profession, il croyait fermement qu'il
pouvait appliquer des branches spécifiques des mathématiques pour résoudre
des problèmes tels que la redondance des données, la faible intégrité des
données et la dépendance excessive de la structure d'une base de données à
l'égard de sa mise en œuvre physique.
Le Dr Codd a officiellement présenté son nouveau modèle relationnel dans un
ouvrage historique intitulé « Un modèle relationnel de données pour les
grandes banques de données partagées » 1 en juin 1970. Il a basé son
nouveau modèle sur deux branches des mathématiques : la théorie des
ensembles et la logique des prédicats de premier ordre. . En effet, le nom du
modèle lui-même est dérivé du terme relation , qui fait partie de la théorie des
ensembles. (Une idée fausse largement répandue est que le modèle relationnel
tire son nom du fait que les tables d'une base de données relationnelle peuvent
être liées les unes aux autres.)
1. Edgar F. Codd, « A Relational Model of Data for Large Shared Databanks
», Communications de l'ACM , juin 1970, 377-87.
Une base de données relationnelle stocke les données dans des relations que
l'utilisateur perçoit comme des tables. Chaque relation est composée
de tuples , ou enregistrements, et d'attributs , ou champs. (J'utiliserai les
termes tables , enregistrements et champs dans le reste du livre.) L'ordre
physique des enregistrements ouLes champs d'une table sont totalement
insignifiants et chaque enregistrement de la table est identifié par un champ
qui contient une valeur unique. Ce sont les deux caractéristiques d’une base de
données relationnelle qui permettent aux données d’exister indépendamment
de la manière dont elles sont physiquement stockées dans l’ordinateur. En tant
que tel, un utilisateur n'est pas obligé de connaître l'emplacement physique
d'un enregistrement afin de récupérer ses données.
Le modèle relationnel catégorise les relations en un-à-un , un-à-
plusieurs et plusieurs-à-plusieurs . (Ces relations sont traitées en détail
au chapitre 10 , « Relations entre tables ».) Une relation entre une paire de
tables est établie implicitement par la correspondance des valeurs d'un champ
partagé. Dans la figure 1.1 , par exemple, les tables CLIENTS et AGENTS
partagent une relation un-à-plusieurs et sont liées via un champ AGENT ID ; un
agent spécifique est associé à un ou plusieurs clients via un ID AGENT
correspondant. De même, les tables ENTERTAINERS et ENGAGEMENTS
partagent une relation un-à-plusieurs et sont liées via un ENTERTAINER ID ; un
artiste de la table ENTERTAINERS peut être associé à un ou plusieurs
engagements dans la table ENGAGEMENTS via des ID ENTERTAINER
correspondants.
Tant qu'un utilisateur est familier avec les relations entre les tables de la base
de données, il peut accéder aux données d'un nombre presque illimité de
façons. Il peut accéder aux données de tables directement liées et de tables
indirectement liées. Considérons l'ensemble des tableaux de la figure 1.1 . Bien
que la table CLIENTS soit indirectement liée à la table ENTERTAINERS,
l'utilisateur peut produire une liste de clients et des artistes qui ont joué pour
eux. (Bien sûr, cela dépend vraiment de la façon dont les tableaux sont
réellement structurés, mais je m'éloigne du sujet. Cet exemple sert notre
objectif pour l'instant.) Il peut le faire facilement car CLIENTS est directement
lié aux ENGAGEMENTS et ENGAGEMENTS est directement lié aux ANIMATEURS.
Figure 1.1 Exemples de tables associées dans une base de données
relationnelle.
Récupération des données
Vous récupérez des données dans une base de données relationnelle à
l'aide du langage de requête structuré (SQL). SQL est le langage standard
utilisé pour créer, modifier, maintenir et interroger des bases de données
relationnelles. La figure 1.2 montre un exempleInstruction de requête SQL que
vous pouvez utiliser pour produire une liste de tous les clients de la ville d'El
Paso.
Figure 1.2 Un exemple d'instruction de requête SQL.
Les trois composants d'une requête SQL de base sont l'instruction SELECT…
FROM, la clause WHERE et la clause ORDER BY. Vous utilisez la clause SELECT
pour indiquer les champs que vous souhaitez voir dans la requête et la clause
FROM pour indiquer la ou les tables auxquelles appartiennent les champs. Vous
pouvez filtrer les enregistrements renvoyés par la requête en imposant des
critères sur un ou plusieurs champs avec la clause WHERE, puis trier les
résultats par ordre croissant ou décroissant avec la clause ORDER BY.
La plupart des principaux logiciels de bases de données relationnelles actuels
intègrent diverses formes d'implémentations SQL, allant des fenêtres dans
lesquelles les utilisateurs peuvent saisir manuellement des instructions SQL «
brutes » aux outils permettant aux utilisateurs de créer des requêtes à l'aide de
générateurs de requêtes et de formulaires de requête. Par exemple, un
utilisateur travaillant avec R:BASE de R:BASE Technologies peut choisir de créer
et d'exécuter des instructions de requête SQL directement à partir d'une ligne
de commande d'invite « R> », tandis qu'une personne utilisant Microsoft SQL
Server peut trouver plus facile et plus rapide de créer des requêtes complexes.
en utilisant la fenêtre SQL « Query Designer » de SQL Server. Quelle que soit la
manière dont les requêtes sont créées, l'utilisateur peut les enregistrer pour
une utilisation ultérieure.
Il n’est pas toujours nécessaire de connaître SQL pour travailler avec une base
de données. Si votre logiciel de base de données fournit un générateur de
requêtes ou si vous utilisez une application personnalisée pour travailler avec
les données de votre base de données, vous n'aurez jamais besoin d'écrire une
seule instruction SQL. Cependant, acquérir une compréhension de base de SQL
est une bonne idée. Cela aidera ceux d'entre vous qui utilisent des outils de
création de requêtes à comprendre et à résoudre les requêtes que vous créez
avec ces outils, et ce sera certainement à votre avantage si vous devez
travailler avec des logiciels de base de données haut de gamme, tels qu'Oracle
et Microsoft SQL. Serveur.
Note
Bien qu'une discussion détaillée de SQL dépasse le cadre de ce livre, vous
devez comprendre que SQL est un langage directement lié au modèle de base
de données relationnelle. Si vous avez le désir ou le besoin d'étudier SQL, vous
pouvez commencer par lire SQL Queries for Mere Mortals, 4e édition , puis
passer à l'un des autres livres SQL figurant sur ma liste de lectures
recommandées à l' annexe H.
Avantages d'une base de données relationnelle
La base de données relationnelle offre un certain nombre d'avantages, tels que
les suivants :
• Intégrité multiniveau intégrée : l'intégrité des données est intégrée à la base
de données au niveau du terrain pour garantir l'exactitude des données ; au
niveau de la table pour garantir que les enregistrements ne sont pas
dupliqués et pour détecter les valeurs de clé primaire manquantes ; au
niveau de la relation pour garantir que la relation entre une paire de tables
est valide ; et au niveau de l'entreprise pour garantir que les données sont
exactes en ce qui concerne l'entreprise elle-même. (L'intégrité est discutée
en détail au fur et à mesure du déroulement du processus de conception.)
• Indépendance des données logiques et physiques par rapport aux
applications de base de données : ni les modifications apportées par un
utilisateur à la conception logique de la base de données ni les modifications
apportées par un fournisseur de logiciels de base de données à la mise en
œuvre physique de la base de données ne doivent nécessairement affecter
négativement les applications construites sur celle-ci.
• Cohérence et précision des données garanties : Les données sont
cohérentes et précises grâce aux différents niveaux d'intégrité que vous
pouvez imposer au sein de la base de données. (Cela deviendra très clair au
fur et à mesure que vous progresserez dans le processus de conception.)
• Récupération facile des données : un utilisateur peut récupérer des données
soit à partir d'une table particulière, soit à partir de n'importe quel nombre
de tables associées dans la base de données. Cela permet à l'utilisateur de
visualiser les informations d'un nombre presque illimité de façons.
Ces avantages, parmi d’autres, se sont révélés bénéfiques pour le monde des
affaires et pour tous ceux qui ont besoin de collecter et de gérer des
données. En effet, la base de données relationnelle reste la base de données
de choix dans de nombreuses circonstances.
L’un des inconvénients généralement perçus de la base de données
relationnelle était que les logiciels qui en découlent s’exécutent très
lentement. Ce n'était pas une faute du modèle relationnel lui-même, mais de la
technologie auxiliaire disponible au moment de l'introduction du modèle. La
vitesse de traitement, la mémoire et le stockage étaient tout simplement
insuffisants pour fournir aux fournisseurs de logiciels de bases de données une
plate-forme sur laquelle construire une implémentation complète de la base de
données relationnelle, de sorte que les logiciels de bases de données
relationnelles initiaux étaient loin d'atteindre leur plein potentiel. Les progrès
de la technologie matérielle et de l'ingénierie logicielle au cours des cinquante
dernières années ont fait des vitesses de traitement et de lecture/écriture un
problème insignifiant et ont permis aux fournisseurs de réaliser des gains
significatifs dans leurs efforts pour prendre en charge plus complètement le
modèle.
Vous en apprendrez davantage sur le modèle de base de données relationnelle
au fur et à mesure du processus de conception présenté dans ce livre. Certains
des sujets que vous rencontrerez incluent la création de tables, l'établissement
de l'intégrité des données, l'utilisation de relations et l'établissement de règles
métier.
Systèmes de gestion de bases de données relationnelles
Un système de gestion de base de données relationnelle (SGBDR) est un
programme d'application logiciel que vous utilisez pour créer, maintenir,
modifier et manipuler une base de données relationnelle. De nombreux
programmes SGBDR fournissent également les outils dont vous avez besoin
pour créer une grande variété d'applications utilisateur final qui interagissent
avec les données stockées dans la base de données. Bien entendu, la qualité
d'un SGBDR estune fonction directe de la mesure dans laquelle il prend en
charge le modèle de base de données relationnelle. Même parmi les « vrais »
SGBDR, la prise en charge de la base de données relationnelle varie selon les
fournisseurs, et il n'y a pas encore de mise en œuvre complète du potentiel du
modèle relationnel. Malgré cela, les programmes SGBDR continuent d’évoluer
et deviennent plus complets et plus puissants que jamais. Des exemples de
SGBDR incluent IBM DB2, IBM Informix, Microsoft Access, Microsoft SQL Server,
MySQL, Oracle RDBMS, PostgreSQL, SAP SQL Anywhere, SAP Sybase ASE et
SQLite.
Et après?
Et après? C'est une très bonne question. Je crois que la technologie, le génie
logiciel et l’industrie des bases de données dans son ensemble ont évolué plus
rapidement que quiconque aurait pu l’imaginer. Vous pourriez dire : « Mais
Mike, ça fait 50 ans ! » Et je dirais oui, mais quelle période de 50 ans cela a
été !
Quand j'étais un très jeune garçon, lisant des bandes dessinées de super-héros
et de science-fiction, les voitures, les gadgets, les espaces de vie et la
technologie en général semblaient appartenir à un avenir très lointain. Bien
sûr, je lisais des bandes dessinées de science-fiction qui racontaient des
histoires de personnes volant dans des voitures et utilisant de petits dispositifs
personnels anti-gravité, le tout se déroulant au milieu des années
1990 ! (J'attends toujours ma ceinture de vol personnelle, merci beaucoup !) Au
début de mon adolescence, j'ai regardé une fantastique émission futuriste
appelée « Star Trek » qui montrait des gens utilisant de petits appareils
portables et des badges comme moyens de communication ; ordinateurs
parlants; moniteurs à écran plat; réplicateurs d’aliments – la liste est longue. Je
me demandais : « Mon garçon, serai-je encore en vie pour voir et utiliser tous
ces trucs sympas ?
Avance rapide jusqu’à la fin des années 70, 80 et 90. Nous avons désormais
des ordinateurs qui s'adaptent aux ordinateurs de bureau, aux téléphones
mobiles, aux smartphones, aux écrans plats et aux écrans de télévision, et
c'est la naissance d'Internet. Les ordinateurs sont censés nous faciliter la vie,
nous permettre de faire les choses de manière plus efficace et efficiente et
éliminer pratiquement tous les types de formulaires et de rapports papier.
Passons maintenant aux années 2000. Nous avons d'énormes téléviseurs à
écran plat. Nos téléphones intelligents ont, pour beaucoup d’entre nous,
remplacé nos appareils photo et nos enregistreurs vidéo. La chose la plus
fantastique, à mon avis, est la quantité de puissance de calcul dont nous
disposons désormais littéralement au bout de nos doigts. Au début, les
mégaoctets étaient stockés dans des ordinateurs qui occupaient des pièces
entières climatisées, et les gigaoctets étaient une mesure d'espace de
stockage que nous pensions être dans des décennies. Désormais, les
consommateurs parlent de téraoctets sans hésiter ; vous pouvez acheter des
smartphones avec un téraoctet de capacité de stockage. Un téraoctet. Oui,
nous avons parcouru un long chemin. Incroyable.
Pourquoi est-ce que j’évoque les avancées technologiques ? Parce qu’ils ont eu
un impact sur les systèmes de gestion de bases de données relationnelles et
ont fourni une base pour le développement et l’utilisation de systèmes non
relationnels.
Autrefois, les éditeurs de logiciels de bases de données avaient du mal à
mettre en œuvre la base de données relationnelle en raison de certains aspects
du modèle. Par exemple, les requêtes multi-tables étaient initialement difficiles
à mettre en œuvre. La création et l'affichage d'une requête donnée pouvaient
prendre beaucoup de temps de traitement si elle extrayait des données à partir
d'un certain nombre de tables, en particulier si les tables contenaient un grand
nombre d'enregistrements. De plus, l'impression des rapports basés sur cette
requête prendrait du temps, pour les mêmes raisons. Mais les progrès
technologiques en matière de vitesse de traitement de la mémoire et de
lecture et d’écriture sur disque ont rendu ce problème bien moins
problématique. Ces progrès ont également permis aux systèmes de gestion de
bases de données relationnelles de devenir plus robustes et évolutifs et de
prendre en charge un niveau d'intégrité des données plus élevé que par le
passé.
Au cours des dernières années, il est devenu nécessaire de stocker des
données et des objets qui ne s'intègrent pas parfaitement dans la structure
table/champ/enregistrement du modèle de base de données relationnelle. Les
éléments tels que les photos, les données en lecture seule pour les applications
Web, les données graphiques, les données géospatiales et les données
analytiques sont des exemples de types de données qui ne correspondent pas
tout à fait à un modèle relationnel. Les progrès technologiques ont fourni aux
utilisateurs les outils de base qui leur permettent de créer de nouveaux types
de bases de données et de systèmes de gestion de bases de données capables
de gérer ces types de données, alors qu'avant c'était le cas.impossible de le
faire. Des exemples de ces systèmes de bases de données incluent MongoDB,
Couchbase, HBase, Cassandra et Redis.
Comme je l'ai mentionné plus tôt, le modèle de base de données relationnelle a
50 ans et je pense qu'il existera encore plusieurs années par la suite. Pourquoi
suis-je si optimiste ? Parce que les bases de données relationnelles sont
utilisées partout, elles font partie intégrante de nos vies. Ils pilotent tout, des
systèmes de petite entreprise aux systèmes collaboratifs départementaux en
passant par les systèmes d'entreprise à l'échelle de l'entreprise. Ils sont utilisés
sur les ordinateurs de bureau, les réseaux d’entreprise et même sur les
appareils personnels. Les bases de données relationnelles sont faciles à utiliser
et à entretenir, elles sont excellentes pour mettre en œuvre et faire respecter
l'intégrité des données, elles ont des structures solides (lorsqu'elles sont
correctement construites), elles sont évolutives et répondent au besoin d'une
base de données dans la majorité des cas. . (Mais sachez, d’un point de vue
pragmatique, que la base de données relationnelle n’est pas une construction «
universelle ».)
Je suis également optimiste en raison de cette citation d'un article daté du 14
août 2019, intitulé « Meilleure base de données relationnelle » du site Web
Database Trends and Applications . « Selon Craig S. Mullins, président et
consultant principal de Mullins Consulting, Inc, le relationnel continue de
dominer : IDC prévoit que les bases de données relationnelles représenteront
encore plus de 80 % du marché total des bases de données opérationnelles
jusqu'en 2022, et Gartner prévoit qu'à travers En 2020, la technologie
relationnelle continuera à être utilisée pour au moins 70 % des nouvelles
applications et projets. Même si ces projections restent relativement stables
pour les 10 prochaines années, les bases de données relationnelles
représentent toujours une part assez importante du marché des bases de
données.
Joyeux anniversaire, base de données relationnelle !
Résumé
Nous avons ouvert ce chapitre en définissant le terme base de données et en
décrivant les deux types de bases de données actuellement utilisées dans la
gestion de bases de données : opérationnelles et analytiques.
Ensuite, il y a eu une discussion détaillée du modèle de base de données
relationnelle, de son historique et de ses fonctionnalités. Vous avez appris qu’il
est basé sur des branches spécifiques des mathématiques et que ce
fondement mathématique est ce qui rend le modèle si structurellement
solide. Nous avons ensuite exploré les structures et les relations des données
du modèle ainsi que le rôle que joue SQL dans l'accès aux données au sein du
modèle. Ici, vous avez appris que SQL est le langage standard utilisé pour
travailler avec des bases de données relationnelles. Nous avons conclu cette
section en passant en revue les avantages du modèle de base de données
relationnelle et en définissant ce qu'est un système de gestion de base de
données relationnelle. Vous avez appris comment les progrès technologiques
ont eu un impact sur notre vie quotidienne et à quel point cet impact est
omniprésent. Vous avez également appris ce qui a permis à la base de données
relationnelle d'exister depuis 50 ans et l'impact du SGBDR dans tous les types
de scénarios commerciaux.
Le chapitre suivant explique pourquoi vous devriez vous préoccuper de la
conception de bases de données et pourquoi la théorie est importante. Nous
aborderons également les objectifs et les avantages d’une bonne conception.
Questions de révision
1. Nommez les deux principaux types de bases de données utilisées
aujourd’hui.
2. Quel type de données une base de données analytique stocke-t-elle ?
3. Vrai ou faux : une base de données opérationnelle est principalement
utilisée dans les scénarios de traitement des transactions en ligne (OLTP).
4. Nommez une des branches des mathématiques sur laquelle est basé le
modèle relationnel.
5. Comment une base de données relationnelle stocke-t-elle les données ?
6. Nommez les trois types de relations dans une base de données relationnelle.
7. Comment récupérer des données dans une base de données relationnelle ?
8. Énoncez deux avantages d’une base de données relationnelle.
9. Qu'est-ce qu'un système de gestion de base de données relationnelle ?
10. Vrai ou faux : les appareils mobiles sont limités à des gigaoctets de
stockage.
11. Expliquez pourquoi les éditeurs de logiciels de bases de données ont eu du
mal à mettre en œuvre la base de données relationnelle.
t
adqP
r
bouae
lserc
euah
e
m
dèr
etc
srh
e
m
s
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
1. La base de données relationnelle
2. Objectifs de conception
3. Terminologie
8h 33min restantes
Objectifs de conception
Tout ce qui est factuel est, en un sens, théorie. Le bleu du ciel présente les lois
fondamentales de la chromatique. Cela n’a aucun sens de chercher quelque
chose derrière les phénomènes ; ce sont de la théorie.
—G OETHE
Sujets abordés dans ce chapitre
Pourquoi devriez-vous vous préoccuper de la conception de bases de données ?
L'importance de la théorie
L'avantage d'apprendre une bonne méthodologie de conception
Objectifs d'une bonne conception
Avantages d’une bonne conception
Méthodes de conception de bases de données
Normalisation
Résumé
Questions de révision
Pourquoi devriez-vous vous préoccuper de la conception de
bases de données ?
Certains d'entre vous qui travaillent avec des programmes d'application de
systèmes de gestion de bases de données relationnelles (SGBDR) se
demandent peut-être pourquoi vous devriez vous préoccuper de la conception
de bases de données. Après tout, la plupart des programmes sont livrés avec
des exemples de bases de données que vous pouvez copier et modifier selon
vos propres besoins, et vous pouvez même emprunter des tables à partir des
exemples de bases de données etutilisez-les dans d'autres bases de données
que vous avez créées. Certains programmes fournissent également des outils
qui vous guideront tout au long du processus de définition et de création de
tableaux. Cependant, ces outils ne vous aident pas réellement à concevoir une
base de données : ils vous aident simplement à créer les tables physiques que
vous inclurez dans la base de données.
Ce que vous devez comprendre, c'est qu'il est préférable d'utiliser ces
outils après avoir créé la structure logique de la base de données . Les
programmes SGBDR fournissent les outils de conception et les exemples de
bases de données pour vous aider à minimiser le temps nécessaire à la mise
en œuvre physique de la structure de la base de données. Théoriquement, la
réduction du temps de mise en œuvre vous donne plus de temps pour vous
concentrer sur la création et la création d'applications pour les utilisateurs
finaux.
Pourtant, la principale raison pour laquelle vous devriez vous préoccuper de la
conception d’une base de données est qu’elle est cruciale pour la cohérence,
l’intégrité et l’exactitude des données contenues dans une base de données. Si
vous concevez mal une base de données, il vous sera difficile de récupérer
certains types d'informations et vous courrez le risque que vos recherches
produisent des informations inexactes. Des informations inexactes sont
probablement le résultat le plus préjudiciable d'une mauvaise conception de
base de données : elles peuvent nuire aux résultats de votre organisation. En
fait, si votre base de données affecte la manière dont votre entreprise effectue
ses opérations quotidiennes, ou si elle va influencer l'orientation future de
votre entreprise, vous devez vous préoccuper de la conception de la base de
données.
Examinons cela sous un angle différent pendant un moment : réfléchissez à la
façon dont vous procéderiez pour faire construire une maison sur
mesure. Quelle est la première chose que vous allez faire ? Vous n’allez
certainement pas embaucher un entrepreneur immédiatement et le laisser
construire votre maison comme il le souhaite. Vous engagerez sûrement
d’abord un architecte pour concevoir votre nouvelle maison ,
puis embaucherez un entrepreneur pour la construire. L'architecte explorera
vos besoins et les exprimera sous la forme d'un ensemble de plans,
enregistrant les décisions concernant la taille, la forme et les exigences des
divers systèmes (structurels, mécaniques, électriques). Ensuite, l'entrepreneur
se procurera la main-d'œuvre et les matériaux, y compris les systèmes
répertoriés, puis les assemblera selon les dessins et les spécifications.
Revenons maintenant à notre perspective de base de données et considérons
la conception logique de la base de données comme les plans architecturaux et
la mise en œuvre physique de la base de données comme la maison
achevée. La conception logique de la base de données décrit la taille, la forme
et les systèmes nécessaires à votre base de données, et répond aux besoins
informationnels et opérationnels de votre entreprise. Vous construisez ensuite
l'implémentation physique de la conception logique de la base de données à
l'aide de votre programme SGBDR. Après avoir créé vos tables, configuré les
relations entre les tables et établi les niveaux appropriés d'intégrité des
données, votre base de données est terminée. Vous êtes désormais prêt à
concevoir et à créer des applications qui vous permettent, à vous et à vos
utilisateurs, d'interagir facilement avec les données stockées dans la base de
données, et vous pouvez être sûr que ces applications vous fourniront des
informations opportunes et, surtout, précises sur lesquelles vous pourrez vous
baser. peut prendre des décisions commerciales judicieuses.
Bien que vous puissiez implémenter une mauvaise conception dans un SGBDR,
la mise en œuvre d'une bonne conception est bien plus à votre avantage car
elle produira des informations précises, stockera les données de manière plus
efficace et efficiente et sera plus facile à gérer et à maintenir.
L'importance de la théorie
Note
Dans ce chapitre, j'utilise le terme théorie pour représenter des « propositions
générales utilisées comme principes » et non des « conjectures ou propositions
».
Un certain nombre de disciplines majeures (et leurs méthodologies de
conception associées) ont une certaine forme de base théorique. Les
ingénieurs en structures conçoivent une variété illimitée de structures en
utilisant les théories de la physique. Les compositeurs créent de belles
symphonies et des pièces orchestrales en utilisant les concepts trouvés dans la
théorie musicale. L'industrie automobile utilise des théories aérodynamiques
pour concevoir des véhicules plus économes en carburant. L’industrie
aérospatiale utilise les mêmes théories pour concevoir des avions et des engins
spatiaux.
Ces exemples démontrent que la théorie est pertinente et très importante. Le
principal avantage de la théorie est qu’elle vous aide à prédire les
résultats ; cela vous permet de prédire ce qui se passera probablement si vous
effectuez une certaine action ou série d'actions. Vous savez, si vous laissez
tomber une pierre, elle tombera au sol. Sir Isaac Newton a formulé une théorie
de la gravité à la fin du XVIIe siècle , que nous considérons aujourd'hui comme
une loi. Si vous êtes agile, vous pouvez écarter vos orteils de la loi de la gravité
de Newton avant qu'ils ne soient écrasés par la chute de pierre. Le fait est
qu’une fois que la théorie devient loi, elle fonctionne à chaque fois . Si vous
ciselez une pierre à plat et la placez sur une autre pierre plate, vous pouvez
prédire qu'elle restera là où vous l'avez posée. Cette théorie permet de
concevoir des pyramides, des cathédrales et des bâtiments résidentiels
stylisés. Considérons maintenant un exemple de base de données. Supposons
que vous disposiez de deux tables liées les unes aux autres. Vous savez que
vous pouvez extraire des données des deux tables simultanément simplement
en raison du fonctionnement de la théorie des bases de données
relationnelles. Les données que vous extrayez des deux tables sont basées sur
les valeurs correspondantes d'un champ partagé entre les tables elles-
mêmes. Encore une fois, vos actions ont un résultat prévisible.
La base de données relationnelle est basée sur deux branches des
mathématiques connues sous le nom de théorie des ensembles et de logique
des prédicats du premier ordre . C’est précisément ce qui permet à la base de
données relationnelle de garantir des informations précises. Ces branches des
mathématiques fournissent également la base pour formuler de bonnes
méthodologies de conception et les éléments de base nécessaires pour créer
de bonnes structures de bases de données relationnelles.
Vous pourriez éprouver une réticence compréhensible à étudier des concepts
mathématiques compliqués simplement pour accomplir ce qui semble être une
tâche plutôt limitée. À ce jour, vous êtes toujours sûr d'entendre des
affirmations selon lesquelles les théories mathématiques sur lesquelles sont
basées la base de données relationnelle et ses méthodologies de conception
associées n'ont aucune pertinence avec le monde réel, ou sont d'une manière
ou d'une autre peu pratiques. Ce n'est pas vrai : les mathématiques sont au
cœur du modèle relationnel et c'est ce qui garantit la viabilité du modèle. Mais
rassurez-vous, vous n'avez pas vraiment besoin de savoir quoi que ce soit
surthéorie des ensembles ou logique des prédicats du premier ordre pour
utiliser une base de données relationnelle ! Vous n’avez certainement pas
besoin de connaître tous les détails de l’aérodynamique simplement pour
conduire une automobile ou piloter un avion. Les théories aérodynamiques
peuvent vous aider à comprendre et à apprécier comment une automobile peut
obtenir une meilleure consommation d'essence, mais elles ne vous aideront
pas à apprendre à vous garer en parallèle.
La théorie mathématique constitue la base du modèle de base de données
relationnelle et rend ainsi le modèle prévisible, fiable et solide. La théorie décrit
les éléments de base utilisés pour créer une base de données relationnelle et
fournit des lignes directrices sur la manière dont elle doit être
organisée. Disposer les éléments de base pour obtenir un résultat souhaité est
défini comme la conception .
L'avantage d'apprendre une bonne méthodologie de
conception
Vous pourriez apprendre à concevoir correctement une base de données par
essais et erreurs, mais cela vous prendrait très longtemps et vous devrez
probablement réparer de nombreuses erreurs en cours de route. La meilleure
approche consiste à apprendre une bonne méthodologie de conception de base
de données, comme celle présentée dans ce livre, puis à se lancer dans la
conception de votre base de données.
Vous bénéficierez de plusieurs avantages en apprenant et en utilisant une
bonne méthodologie de conception :
• Il vous donne les compétences dont vous avez besoin pour concevoir une
structure de base de données solide. Un grand nombre de problèmes de
traitement des données peuvent être attribués à la présence de données
redondantes, de données en double et de données invalides, ou à l'absence
de données requises. Tous ces problèmes produisent des informations
erronées et rendent certaines requêtes et rapports difficiles à comprendre
ou les rendent relativement dénués de sens. Vous pouvez éviter presque
tous ces problèmes en employant une bonne méthodologie de conception.
• Il vous fournit un ensemble organisé de techniques qui vous guideront étape
par étape tout au long du processus de conception . L'organisation des
techniques vous permet de prendre des décisions éclairées sur chaque
aspect de votre conception.
• Cela vous aide à minimiser vos faux pas et vos réitérations de
conception . Bien sûr, vous ferez naturellement des erreurs lorsque vous
concevrez une base de données, mais une bonne méthodologie vous aide à
reconnaître les erreurs dans votre conception et vous donne les outils pour
les corriger. De plus, l’organisation des techniques au sein de la
méthodologie vous évite de répéter inutilement une étape de conception
donnée.
• Cela facilite le processus de conception et réduit le temps que vous
consacrez à la conception de la base de données. Vous perdrez
inévitablement un temps précieux à adopter une approche arbitraire de
conception par essais et erreurs, car elle manque de la logique et de
l’organisation qu’offre une bonne méthodologie.
• Il vous aidera à comprendre et à utiliser votre programme d'application
SGBDR de manière plus complète et plus efficace. Au fur et à mesure que
vos connaissances en matière de conception appropriée s'étendent et se
développent, vous commencerez réellement à comprendre pourquoi un
SGBDR donné fournit certains outils et comment vous pouvez les utiliser
pour implémenter la structure au sein du programme SGBDR.
Que vous utilisiez la méthodologie de conception présentée dans ce livre ou
une autre méthodologie établie, vous devez choisir une méthodologie de
conception, l'apprendre du mieux que vous pouvez et l'utiliser fidèlement pour
concevoir vos bases de données.
Objectifs d'une bonne conception
Vous devez atteindre des objectifs distincts pour concevoir une structure de
base de données bonne et solide. Vous pouvez éviter bon nombre des
problèmes mentionnés dans lesection précédente si vous gardez ces objectifs à
l'esprit et si vous vous concentrez constamment sur eux pendant que vous
concevez votre base de données.
• La base de données prend en charge la récupération d'informations requises
et ad hoc. La base de données doit stocker les données nécessaires pour
prendre en charge les exigences d'information définies lors du processus de
conception et toutes les éventuelles requêtes ad hoc pouvant être posées
par un utilisateur.
• Les tables sont construites correctement et efficacement. Chaque table de
la base de données représente un sujet unique, est composée de champs
relativement distincts, limite les données redondantes au minimum absolu
et est identifiée dans toute la base de données par un champ avec des
valeurs uniques.
• L'intégrité des données est imposée au niveau du champ, de la table et des
relations. Ces niveaux d'intégrité permettent de garantir que les structures
de données et leurs valeurs seront valides et exactes à tout moment.
• La base de données prend en charge les règles métier pertinentes pour
l'organisation. Les données doivent fournir des informations valides et
précises qui sont toujours significatives pour l'entreprise.
• La base de données se prête à une croissance future . La structure de la
base de données doit être facile à modifier ou à étendre à mesure que les
besoins d'information de l'entreprise évoluent et augmentent.
Il vous sera peut-être parfois difficile d'atteindre ces objectifs, mais vous serez
certainement satisfait de la structure finale de votre base de données une fois
que vous les aurez atteints.
Avantages d’une bonne conception
Le temps que vous investissez dans la conception d’une structure de base de
données solide est du temps bien dépensé. Une bonne conception vous fait
gagner du temps à long terme car vous n'avez pas constamment à réorganiser
un système rapidement et mal conçu.structure. Vous bénéficiez des avantages
suivants lorsque vous appliquez de bonnes techniques de conception :
• La structure de la base de données est facile à modifier et à maintenir. Les
modifications que vous apportez à un champ, une table ou une relation ne
doivent pas nécessairement affecter négativement les autres champs,
tables ou relations de la base de données.
• Les données sont faciles à modifier. Les modifications que vous apportez à
la valeur d’un champ donné dans une table n’affecteront pas les valeurs des
autres champs de la table. De plus, une base de données bien conçue réduit
les champs en double au minimum absolu, de sorte que vous modifiez
généralement une valeur de données particulière dans un seul champ.
• Les informations sont faciles à récupérer. Vous pourrez créer des requêtes
facilement car les tables sont bien construites et les relations entre elles
sont correctement établies. Les relations entre tables sont assez évidentes
dans une base de données bien conçue, même lorsqu'elles ne sont pas
appliquées.
• Les applications des utilisateurs finaux sont faciles à développer et à
créer. Vous pouvez consacrer plus de temps à la programmation et à la
manipulation des données au lieu de contourner les inévitables problèmes
qui surviennent lorsque vous travaillez avec une base de données mal
conçue.
Méthodes de conception de bases de données
Méthodes de conception traditionnelles
En général, les méthodes traditionnelles de conception de bases de données
intègrent trois phases : l'analyse des exigences, la modélisation des données et
la normalisation.
La phase d'analyse des besoins implique un examen de l'entreprise modélisée,
des entretiens avec les utilisateurs et la direction pour évaluer le système
actuel et analyser les besoins futurs, ainsi qu'une évaluation des besoins en
informations pour l'entreprise dans son ensemble. Ce processus
estrelativement simple et, en effet, le processus de conception présenté dans
ce livre suit la même ligne de pensée.
La phase de modélisation des données implique la modélisation de la structure
de la base de données à l'aide d'une méthode de modélisation des données,
telle que la création de diagrammes entité-relation (ER), la modélisation objet
sémantique, la modélisation objet-rôle ou la modélisation UML. Chacune de ces
méthodes de modélisation fournit un moyen de représenter visuellement divers
aspects de la structure de la base de données, tels que les tables, les relations
entre les tables et les caractéristiques des relations. En fait, la méthode de
modélisation utilisée dans ce livre est une version de base des diagrammes
ER. La figure 2.1 montre un exemple de diagramme ER de base.
Figure 2.1 Un exemple de diagramme ER de base.
Note
J'ai incorporé la méthode de modélisation des données que j'utilise dans ce
livre dans le processus de conception lui-même plutôt que de la traiter
séparément. Je vais présenter et expliquer chaque technique de modélisation,
le cas échéant tout au long du processus.
Chaque méthode de modélisation de données intègre un ensemble de
symboles de diagramme utilisés pour représenter la structure et les
caractéristiques d'une base de données. Par exemple, le diagramme de la
figure 2.1 fournit des informations sur plusieurs aspects de la base de données.
• Les rectangles représentent deux tableaux appelés AGENTS et CLIENTS.
• Le losange représente une relation entre ces deux tables, et le « 1 : N » à
l'intérieur du losange indique qu'il s'agit d'une relation un-à-plusieurs.
• La ligne verticale à côté du tableau AGENTS indique qu'un client doit être
associé à un seul agent, et le cercle etLa « patte d'oie » à côté de la table
CLIENTS indique qu'un agent ne doit pas nécessairement être associé à un
client, mais peut être associé à un ou plusieurs.
Les champs sont également définis et associés aux tables appropriées lors de
la phase de modélisation des données. Chaque table se voit attribuer une clé
primaire , différents niveaux d'intégrité des données sont identifiés et mis en
œuvre, et les relations sont établies via des clés étrangères . Une fois les
structures de tables initiales terminées et les relations établies selon le modèle
de données, la base de données est prête à passer par la phase de
normalisation.
La normalisation est le processus de décomposition de grandes tables en
tables plus petites afin d'éliminer les données redondantes et les données en
double et d'éviter les problèmes d'insertion, de mise à jour ou de suppression
de données. Au cours du processus de normalisation, les structures des tables
sont testées par rapport aux formes normales , puis modifiées si l'un des
problèmes mentionnés ci-dessus est détecté. Un formulaire normal est un
ensemble spécifique de règles qui peuvent être utilisées pour tester une
structure de table afin de garantir qu'elle est solide et exempte de
problèmes. Il existe un certain nombre de formes normales, et chacune est
utilisée pour tester un ensemble particulier de problèmes. Les formes normales
actuellement utilisées sont la première forme normale, la deuxième forme
normale, la troisième forme normale, la quatrième forme normale, la cinquième
forme normale, la sixième forme normale, la forme normale de Boyce-Codd et
la forme normale de domaine/clé.
La méthode de conception présentée dans ce livre
La méthode de conception que j'utilise dans ce livre est celle que j'ai
développée au fil des années. Il intègre une analyse des besoins et une
méthode simple de création de diagrammes ER pour schématiser la structure
de la base de données. Cependant, il n’intègre pas le processus de
normalisation traditionnel et n’implique pas l’utilisation de formes normales. La
raison est simple : les formes normales peuvent être déroutantes pour
quiconque n'a pas pris le temps d'étudier les formes formelles.théorie des
bases de données relationnelles. Par exemple, examinez la définition suivante
de la troisième forme normale :
Une relation est en 3NF si et seulement si elle est en 2NF et que chaque
attribut non-clé dépend de manière non transitive de la clé primaire. 1
1. CJ Date, Une introduction aux systèmes de bases de données , 7e
éd. (Boston, MA : Addison-Wesley, (2000), 362.
Cette description n'a relativement aucun sens pour un lecteur qui n'est pas
familier avec les termes relation, 3NF, 2NF, attribut non clé, dépendance non
transitive et clé primaire.
Le processus de conception d’une base de données n’est pas et ne devrait pas
être difficile à comprendre. Tant que le processus est présenté de manière
simple et que chaque concept ou technique est clairement expliqué, n'importe
qui devrait être capable de concevoir correctement une base de données. Par
exemple, la définition suivante est dérivée des résultats de l’utilisation de la
troisième forme normale sur une structure de table, et je pense que la plupart
des gens la trouveront claire et facile à comprendre :
Une table doit avoir un champ qui identifie de manière unique chacun de ses
enregistrements, et chaque champ de la table doit décrire le sujet représenté
par la table.
Le processus que j'ai utilisé pour formuler cette définition est le même que
celui que j'ai utilisé pour développer l'ensemble de ma méthodologie de
conception.
Normalisation
À la fin des années 1980, je me suis rendu compte que le modèle relationnel
existait depuis près de 20 ans et que les gens concevaient des bases de
données en utilisant la même méthodologie de base depuis environ 12 ans. (Et
je suis toujours surpris que nous l'utilisions plus de 20 ans plus tard.) J'utilisais
la méthodologie de conception traditionnelle à cette époque, mais jeil leur était
parfois difficile de trouver un emploi. Les deux choses qui m'ont le plus
dérangé étaient le processus de normalisation (dans son ensemble) et les
itérations apparemment interminables qu'il a fallu pour arriver à une
conception appropriée. Bien sûr, cela semblait être un point sensible chez la
plupart des autres développeurs de bases de données que je connaissais, donc
je n'étais certainement pas seul dans mes frustrations. J'ai réfléchi à ces
problèmes pendant un certain temps, puis j'ai trouvé une solution.
Je savais déjà que le but de la normalisation est de prendre une table mal ou
mal conçue et de la transformer en une table avec une structure solide. J'ai
également compris le processus : prenez un tableau donné et testez-le par
rapport aux formulaires normaux pour déterminer s'il est correctement
conçu. S'il n'est pas conçu correctement, apportez les modifications
appropriées, testez-le à nouveau et répétez l'ensemble du processus jusqu'à ce
que la structure du tableau soit saine. La figure 2.2 montre comment j'ai
visualisé le processus à ce stade.
Figure 2.2 Comment j'ai perçu le processus général de normalisation.
J'ai gardé ces faits à l'esprit et j'ai ensuite posé les questions suivantes :
1. Si nous supposons qu'une table entièrement normalisée est conçue
correctement et efficacement, ne pourrions-nous pas identifier les
caractéristiques spécifiques d'une telle table et les considérer comme les
attributs d'une structure de table idéale ?
2. Ne pourrions-nous pas alors utiliser cette table idéale comme modèle pour
toutes les tables que nous créons pour la base de données tout au long du
processus de conception ?
La réponse à ces deux questions est bien sûr oui, c’est pourquoi j’ai commencé
sérieusement à développer les bases de ma « nouvelle » méthodologie de
conception. J'ai d'abord compilé des ensembles distincts de lignes directrices
pour créer des structures sonores en identifiant les caractéristiques finales
d'une base de données bien définie qui a réussi les tests de chaque forme
normale. J'ai ensuite effectué quelques tests, en utilisant les nouvelles
directives, pour créer des structures de tables pour une nouvelle base de
données et pour corriger des défauts dans les structures de tables d'une base
de données existante. Ces tests se sont très bien déroulés, j'ai donc décidé
d'appliquer cette technique à l'ensemble de la méthodologie de conception
traditionnelle. J'ai formulé des lignes directrices pour résoudre d'autres
problèmes associés à la méthode de conception traditionnelle, tels que les
domaines, les sous-types, les relations, l'intégrité des données et l'intégrité
référentielle. Après avoir suivi les nouvelles directives, j'ai effectué davantage
de tests et j'ai constaté que ma méthodologie fonctionnait plutôt bien.
Le principal avantage de ma méthodologie de conception est qu’elle supprime
de nombreux aspects de la méthodologie de conception traditionnelle que les
nouveaux développeurs de bases de données trouvent intimidants. Par
exemple, la normalisation, au sens traditionnel, est désormais transparente
pour le concepteur car elle est intégrée (via les nouvelles lignes directrices)
tout au long du processus de conception. Un autre avantage majeur est que la
méthodologie est claire et facile à mettre en œuvre. Je pense que cela est dû
en grande partie au fait que j'ai rédigé toutes les directives dans un anglais
simple, ce qui les rend faciles à comprendre pour la plupart des gens.
Il est important que vous compreniez que cette méthodologie de conception
produira une structure de base de données entièrement
normalisée uniquement si vous la suivez aussi fidèlement que n'importe quelle
autre méthodologie de conception . Vous ne pouvez pas raccourcir, contourner,
minimiser ou omettre une quelconque partie de cette méthodologie (ou toute
méthodologie de conception, d'ailleurs) et espérer développer une structure
solide. Vous devez suivre le processus avec diligence, méthodique et
complètement afin de récolter les fruits attendus.
Note
J'ai fourni une explication plus détaillée de la façon dont j'ai intégré la
normalisation dans ma méthodologie de conception dans l'annexe G , « Sur la
normalisation ».
Vous devrez apprendre quelques termes de base avant de vous lancer dans le
processus de conception, et nous les aborderons dans le chapitre suivant.
Résumé
Au début de ce chapitre, nous avons examiné l'importance de se préoccuper de
la conception des bases de données. Vous comprenez maintenant que la
conception d’une base de données est cruciale pour l’intégrité et la cohérence
des données contenues dans une base de données. Nous avons vu que le
principal problème résultant d'une conception inappropriée ou médiocre
est l'information inexacte . Une bonne conception est d’une importance
primordiale, car une mauvaise conception peut nuire aux informations utilisées
par une organisation.
Ensuite, nous avons entamé une discussion sur l’importance de la théorie, ainsi
que sur sa pertinence pour le modèle de base de données relationnelle. Vous
avez appris que le fondement du modèle en théorie mathématique en fait une
structure très solide et fiable.
Suite à cette discussion, nous avons examiné les avantages tirés de
l’apprentissage d’une méthodologie de conception. Entre autres choses,
l’utilisation d’une bonne méthodologie permet d’obtenir une structure de base
de données efficace et fiable, de réduire le temps nécessaire à la conception
d’une base de données et d’éviter les problèmes typiques causés par une
mauvaise conception.
Ensuite, nous avons énuméré les objectifs d’une bonne conception. Atteindre
ces objectifs est crucial pour le succès du processus de conception de base de
données, car ils vous aident à garantir que la structure de la base de données
est solide. Nous avons ensuite énuméré les avantages d’une bonne conception,
et vous avez appris que le temps que vous investissez dans la conception
d’une structure de base de données solide est du temps bien dépensé.
Nous avons clôturé ce chapitre par une brève discussion des méthodes
traditionnelles de conception de bases de données, une explication du principe
derrière la méthode de conception présentée dans ce livre et la
normalisation. Vous comprenez désormais que les méthodes de conception
traditionnelles sont complexes et peuvent prendre un certain temps.le temps
d'apprendre et de comprendre. D'un autre côté, la méthode de conception
utilisée dans ce livre est présentée de manière claire et directe, est facile à
mettre en œuvre et donnera les mêmes résultats que la méthodologie de
conception traditionnelle.
Questions de révision
1. Quel est le meilleur moment pour utiliser les outils de conception d'un
programme SGBDR ?
2. Vrai ou faux : la conception est cruciale pour la cohérence, l'intégrité et
l'exactitude des données.
3. Quel est le résultat le plus préjudiciable d’une mauvaise conception de base
de données ?
4. Qu'est-ce qui rend la base de données relationnelle structurellement solide
et capable de garantir des informations exactes ?
5. Énoncez deux avantages de l’apprentissage d’une méthodologie de
conception.
6. Vrai ou faux : vous utiliserez votre programme SGBDR plus efficacement si
vous comprenez la conception de bases de données.
7. Énoncez deux objectifs d’une bonne conception.
8. Qu'est-ce qui permet de garantir que les structures de données et leurs
t
valeurs sont valides et exactes à tout moment ?
a
b
l9. Énoncez deux avantages de l’application de bonnes techniques de
e
conception.
d
e
10. Vrai ou faux : vous pouvez prendre des raccourcis dans certains processus
s
P
arde conception tout en parvenant à une bonne conception solide.
rem
ac
dqm
ht
ouèei
setrè
urc
eeh
se
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
2. Objectifs de conception
3. Terminologie
Partie II : Le processus de conception
8h 33min restantes
Terminologie
"Quand j'utilise un mot", a déclaré Humpty Dumpty sur un ton plutôt
méprisant, "il signifie exactement ce que je choisis de lui signifier, ni plus ni
moins."
—L EWIS C ARROLL
À TRAVERS LE LOOKING G LASS
Sujets abordés dans ce chapitre
Pourquoi cette terminologie est importante
Termes liés à la valeur
Termes liés à la structure
Conditions liées aux relations
Termes liés à l'intégrité
Résumé
Questions de révision
Il est important que vous compreniez les termes de ce chapitre avant de vous
lancer dans l'apprentissage du processus de conception. En effet, vous devrez
apprendre d’autres termes, et je les aborderai au fur et à mesure du
processus. Il y a également un glossaire à la fin du livre que vous pouvez
utiliser pour vous rafraîchir la mémoire sur n'importe quel terme que vous
apprenez ici ou dans les chapitres suivants.
Pourquoi cette terminologie est importante
La conception de bases de données relationnelles possède son propre
ensemble de termes, tout comme toute autre profession, métier ou
discipline. Voici trois bonnes raisons pour lesquelles il est important que vous
appreniez ces termes.
1. Ils sont utilisés pour exprimer et définir les idées et concepts particuliers
du modèle de base de données relationnelle. Une grande partie de la
terminologie est dérivée des branches mathématiques de la théorie des
ensembles et de la logique des prédicats du premier ordre, qui constituent
la base du modèle de base de données relationnelle.
2. Ils sont utilisés pour exprimer et définir le processus de conception de base
de données lui-même. Le processus de conception devient plus clair et
beaucoup plus facile à comprendre une fois que vous connaissez ces
termes.
3. Ils sont utilisés partout où une base de données relationnelle ou un SGBDR
est abordé. Vous verrez ces termes dans des documents tels que des
manuels de logiciels en ligne, des supports de cours éducatifs, des livres sur
des logiciels de bases de données commerciales et des sites Web liés aux
bases de données.
Ce chapitre couvre la majorité des termes qui définissent les idées et les
concepts du processus de conception, y compris des définitions et des
discussions quelque peu détaillées pour chaque terme. (Je fournis des détails
pertinents ou une discussion plus approfondie nécessaire pour un terme donné
au moment où le terme est expressément utilisé dans une technique spécifique
du processus de conception.) Il y a plusieurs autres termes que j'introduis et
discute plus loin dans le livre parce que je pense que vous Je les comprendrai
plus facilement dans le contexte de l’idée ou du concept spécifique auquel ils
se rapportent.
Note
Le glossaire contient des définitions concises de tous les termes de ce chapitre
et de tout le livre.
Quatre catégories de termes sont définies dans ce chapitre : liés aux
valeurs, liés à la structure, liés aux relations et liés à l'intégrité .
Termes liés à la valeur
Données
Les valeurs que vous stockez dans la base de données sont des données . Les
données sont statiques dans le sens où elles restent dans le même état jusqu'à
ce que vous les modifiiez par un processus manuel ou automatisé. La figure
3.1 montre quelques exemples de données.
Figure 3.1 Un exemple de données de base.
Ces données n’ont aucun sens à ce stade. Par exemple, il n’existe pas de
moyen simple pour déterminer ce que « 92883 » représente. Est-ce un code
postal ? Est-ce un numéro de pièce ? Même si vous savez qu'il s'agit d'un
numéro d'identification de client, s'agit-il d'un numéro associé à George
Edleman ? Il n'y a tout simplement aucun moyen de le savoir tant que vous
n'avez pas traité les données.
Information
Les informations sont des données que vous traitez de manière à les rendre
significatives et utiles lorsque vous les utilisez ou les consultez. Il est
dynamique dans le sens où il change constamment par rapport aux données
stockées dans la base de données, et aussi dans le sens où vous pouvez les
traiter et les présenter d'un nombre illimité de façons. Vous pouvez afficher des
informations résultant d'une instruction SQL SELECT, les afficher sous un
formulaire sur l'écran de votre ordinateur ou les imprimer sous forme de
rapport. Le point à retenir est que vous devez traiter vos données d'une
manière ou d'une autre afin de pouvoir les transformer en informations
significatives .
La figure 3.2 montre comment vous pouvez traiter et transformer les données
de l'exemple précédent en informations significatives. Il a été manipulé de telle
manière – dans ce cas-ci, dans le cadre d’un rapport de facture d’un patient –
qu’il est désormais significatif pour quiconque le consulte.
Figure 3.2 Un exemple de données transformées en informations.
Il est très important que vous compreniez la différence entre les données et les
informations . Vous concevez une base de données pour fournir des
informations significatives à une personne au sein d'une entreprise ou d'une
organisation. Ces informations ne sont disponibles que si
les données appropriées existent dans la base de données et si la base de
données est structurée de manière à prendre en charge ces informations . Si
jamais vous oubliez la différence entre données et informations, rappelez-vous
simplement ce petit axiome :
Les données sont ce que vous stockez ; l'information est ce que
vous récupérez .
Lorsque vous comprendrez parfaitement ce concept simple et unique, la
logique derrière le processus de conception de base de données deviendra
limpide.
Note
Malheureusement, données et informations sont deux
termes encore fréquemment utilisés de manière interchangeable (et donc à
tort) dans l’industrie des bases de données. Vous rencontrerez cette erreur
dans de nombreux magazines spécialisés, livres de bases de données
commerciales et sites Web, et vous verrez même des termes utilisés à mauvais
escient par des auteurs qui devraient en savoir plus.
Nul
Null est une condition qui représente une valeur manquante ou inconnue. Vous
devez comprendre dès le départ qu'un Null ne représente pas un zéro ou une
chaîne de texte composée d'un ou plusieurs espaces vides. Les raisons sont
assez simples.
• Un zéro peut avoir des significations très diverses. Il peut représenter l'état
du solde d'un compte, le nombre actuel de surclassements de billets en
première classe disponibles ou le niveau de stock actuel d'un produit
particulier.
• Bien qu’une chaîne de texte contenant un ou plusieurs espaces vides soit
sans aucun doute dénuée de sens pour la plupart d’entre nous, elle est tout
à fait significative pour un langage de requête tel que SQL. Un espace est un
caractère valide en ce qui concerne SQL, et une chaîne de caractères
composée de trois espaces (' ') est tout aussi légitime qu'une chaîne de
caractères composée de trois lettres (' abc '). Dans la figure 3.3 , un blanc
représente le fait que Washington, DC, n'est situé dans aucun comté.
• Une chaîne de longueur nulle (deux guillemets simples consécutifs sans
espace entre eux ('')) est également une valeur acceptable pour des
langages tels que SQL et peut être significative dans certaines
circonstances. Dans une table EMPLOYEES, par exemple, une valeur de
chaîne de longueur nulle dans un champ appelé MIDDLEINITIAL peut
représenter le fait qu'un employé particulier n'a pas d'initiale dans son nom.
Note
En raison de restrictions d'espace, je ne peux pas toujours afficher tous les
champs d'un exemple de table donné. Je vais cependant montrer les champs
les plus pertinents pour la discussion en cours et utiliser « autres champs
» pour représenter les champs qui ne sont pas essentiels à l'exemple. Vous
verrez cette convention dans de nombreux exemples tout au long du reste du
livre.
La valeur de null
Null est très utile lorsque vous l'utilisez aux fins indiquées, et le tableau
CLIENTS de la figure 3.3 l'illustre clairement. Chaque valeur Null dans le champ
COMTÉ CLIENT représente un nom de comté manquant ou inconnu pour
l'enregistrement dans lequel il apparaît. Pour utiliser correctement les valeurs
Null, vous devez d’abord comprendre pourquoi elles se produisent.
Figure 3.3 Un exemple de table contenant des instances de Nulls.
Les valeurs manquantes sont généralement le résultat d’une erreur
humaine. Par exemple, considérons le record de Susan Black. Si vous saisissez
les données de Mme Black et que vous ne lui demandez pas le nom du comté
dans lequel elle vit, ces données sont considérées comme manquantes et sont
représentées dans l'enregistrement comme étant nulles. Cependant, après
avoir reconnu l'erreur, vous pouvez la corriger en appelant Mme Black et en lui
demandant le nom du comté.
Des valeurs inconnues apparaissent dans un tableau pour diverses raisons. Une
des raisons peut être qu'une valeur spécifique dont vous avez besoin pour un
champ n'est pas encore définie. Par exemple, vous pourriez avoir une table
CATEGORIES dans une base de données School Scheduling qui ne contient
actuellement pas de catégorie pour un nouvel ensemble de cours que vous
souhaitez proposer à partir de la session d'automne. Une autre raison pour
laquelle une table peut contenir des valeurs inconnues est qu'elles sont
réellement inconnues. Reportez-vous à nouveauau tableau CLIENTS de la figure
3.3 et considérez l'enregistrement de Marvin Russo. Supposons que vous
saisissez les données de M. Russo et que vous lui demandez le nom du comté
dans lequel il vit. S'il ne connaît pas le nom du comté et que vous ne
connaissez pas le comté qui comprend la ville dans lequel il vit, alors la valeur
du champ du comté dans son dossier est vraiment inconnue et est représentée
dansl'enregistrement comme Null. Évidemment, vous pouvez corriger le
problème une fois que l’un de vous a déterminé le nom correct du comté.
Une valeur de champ peut également être Null si aucune de ses valeurs ne
s'applique à un enregistrement particulier. Supposons un instant que vous
travaillez avec une table EMPLOYEES qui contient un champ SALARY et un
champ HOURLYRATE. La valeur de l'une de ces deux colonnes sera toujours
nulle car un employé ne peut pas percevoir à la fois un salaire fixe et un taux
horaire.
Il est important de noter qu’il existe une très mince différence entre « ne
s’applique pas » et « n’est pas applicable ». Dans l’exemple précédent, la
valeur de l’un des deux champs ne s’applique littéralement pas. Supposons
maintenant que vous travaillez avec une table PATIENTS qui contient un champ
appelé HAIRCOLOR et que vous mettez actuellement à jour un enregistrement
pour un patient de sexe masculin existant. Si ce patient est récemment devenu
chauve, alors la valeur de ce champ est définitivement « non applicable ». Bien
que vous puissiez simplement utiliser Null pour représenter une valeur qui n'est
pas applicable, je vous recommande toujours d'utiliser une vraie valeur telle
que « N/A » ou « Non applicable ». Cela rendra les informations plus claires à
long terme.
Comme vous pouvez le constater, l'autorisation ou non des valeurs nulles dans
un tableau dépend de la manière dont vous utilisez les données. Maintenant
que vous avez vu le côté positif de l’utilisation de Null, examinons les
implications négatives de son utilisation.
Le problème avec Null
L’inconvénient majeur de Null est qu’il a un effet néfaste sur les opérations
mathématiques. Une opération impliquant un NULL évalue à Null. Cela est
logiquement raisonnable : si un nombre est inconnu, alors le résultat de
l’opération est nécessairement inconnu. Notez comment une valeur Null
modifie le résultat de l'opération dans l'exemple suivant :
(25 × 3) + 4 = 79
(Nul × 3) + 4 = Nul
(25 × nul) + 4 = nul
(25 × 3) + Nul = Nul
Le tableau PRODUITS de la figure 3.4 permet d'illustrer les effets de Null sur les
expressions mathématiques qui incorporent les champs d'une table. Dans ce
cas, la valeur du champ VALEUR TOTALE est dérivée de l'expression
mathématique « [SRP] * [QTY ON HAND] ». Lorsque vous inspectez les
enregistrements de cette table, notez que la valeur du champ VALEUR TOTALE
est manquante là où la valeur QTY ON HAND est Null, ce qui entraîne
également Null pour le champ VALEUR TOTALE. Cela conduit à une grave
erreur non détectée qui se produit lorsque toutes les valeurs du champ VALEUR
TOTALE sont additionnées : un total inexact. Cette erreur est « non détectée »
car un programme SGBDR ne vous avertira pas automatiquement de
l'erreur. La seule façon d'éviter ce problème est de garantir que les valeurs du
champ QTY ON HAND ne peuvent pas être nulles.
Figure 3.4 Les valeurs nulles dans ce tableau auront un effet sur les
opérations mathématiques impliquant les champs du tableau.
La figure 3.5 permet d'illustrer l'effet de Null sur les fonctions d'agrégation qui
incorporent les valeurs d'un champ donné dans une table. Le résultat d'une
fonction d'agrégation, telle que COUNT(< fieldname >), sera Null s'il est basé
sur un champ contenant Null. Le tableau de la figure 3.5 montre les résultats
d'une requête récapitulative qui compte le nombre total d'occurrences de
chaque catégorie dans la table PRODUITS de la figure 3.4 . La valeur du champ
TOTAL OCCURRENCES est le résultat de l'expression de fonction
COUNT([CATEGORY]). Notez que la requête récapitulative affiche « 0 »
occurrences d’une catégorie non spécifiée, ce qui implique qu’une catégorie a
été attribuée à chaque produit. Cette information est clairement inexacte car
deux produits de la table PRODUITS n'ont pas été affectés à une catégorie.
Figure 3.5 Null affecte les résultats d'une fonction d'agrégation dans une
requête récapitulative.
Les problèmes de valeurs manquantes, de valeurs inconnues et de savoir si
une valeur sera utilisée dans une expression mathématique ou une fonction
d'agrégation sont tous pris en compte dans le processus de conception de la
base de données, et nous reviendrons et discuterons plus en détail de ces
problèmes dans le chapitre 8 , « Clés » . », Chapitre 9 , « Spécifications des
champs » et Chapitre 12 , « Vues ».
Termes liés à la structure
Tableau
Selon le modèle relationnel, les données d'une base de données relationnelle
sont stockées dans des relations qui sont perçues par l'utilisateur comme des
tables . Chaque relation est composée de tuples (enregistrements)
et d'attributs (champs). La figure 3.6 montre une structure de table typique.
Figure 3.6 Une structure de table typique.
Les tableaux sont les principales structures de la base de données et chaque
tableau représente toujours un sujet unique et spécifique. L'ordre logique des
enregistrements et des champs dans une table n'a absolument aucune
importance et chaque table contient au moins un champ, appelé
clé primaire, qui identifie de manière unique chacun de ses
enregistrements. (Dans la figure 3.6 , par exemple, CLIENT ID est la clé
primaire de la table CLIENTS.) En fait, les données d'une base de données
relationnelle peuvent exister indépendamment de la façon dont elles sont
physiquement stockées dans l'ordinateur en raison de ces deux dernières
caractéristiques de la table. C'est une excellente nouvelle pour l'utilisateur car
il n'a pas besoin de connaître l'emplacement physique d'un enregistrement
pour récupérer ses données.
Le sujet représenté par une table donnée peut être soit un objet , soit un
événement . Lorsque le sujet est un objet, cela signifie que la table représente
quelque chose de tangible, comme une personne, un lieu ou une chose. Quel
que soit son type, chaque objet possède des caractéristiques que vous pouvez
stocker sous forme de données puis traiter sous forme d'informations d'un
nombre presque infini de façons. Les pilotes, les produits, les machines, les
étudiants, les bâtiments et les équipements sont autant d'exemples d'objets
qu'un tableau peut représenter, et la figure 3.6 illustre l'un des exemples les
plus courants de ce type de tableau.
Lorsque le sujet d'un tableau est un événement, cela signifie que le tableau
représente quelque chose qui se produit à un moment donné et qui présente
les caractéristiques que vous souhaitez enregistrer. Vous pouvez stocker ces
caractéristiques sous forme de données, puis les traiter en tant qu'informations
exactement de la même manière qu'un tableau représentant un objet
spécifique. Parmi les exemples d'événements que vous devrez peut-être
enregistrer figurent les audiences judiciaires, les tournages de films, les
élections et les études géologiques. La figure 3.7 montre un exemple de
tableau représentant un événement que nous avons tous vécu à un moment ou
à un autre : un rendez-vous chez le médecin.
Une table qui stocke les données utilisées pour fournir des informations est
appelée table de données et constitue le type de table le plus courant dans une
base de données relationnelle. Les données de ce type de tableau sont
dynamiques car vous pouvez les manipuler (modifier, supprimer, etc.) et les
transformer en informations d'une manière ou d'une autre. Vous interagirez
constamment avec ces types de tables lorsque vous travaillerez avec votre
base de données.
Figure 3.7 Un tableau représentant un événement.
En revanche, une table de validation (également appelée table de recherche )
stocke les données que vous utilisez spécifiquement pour mettre en œuvre
l'intégrité des données. Un tableau de validation représente généralement des
sujets tels que les noms de villes, les catégories de compétences, les codes de
produits et les numéros d'identification du projet. Les données de ce type de
tableau sont statiques car elles changeront très rarement. Bien que vous ayez
très peu d'interaction directe avec ces tables, vous les utiliserez
fréquemment indirectement pour valider les valeurs que vous entrez dans une
table de données. La figure 3.8 montre un exemple de table de validation.
Figure 3.8 Un exemple de table de validation.
Je discute des tables de validation plus en détail au chapitre 11 , « Règles
métier ».
Champ
Un champ (appelé attribut dans la théorie des bases de données relationnelles)
est la plus petite structure de la base de données et représente une
caractéristique du sujet de la table à laquelle il appartient. Les champs sont les
structures qui stockent réellement les données. Les données de ces champs
peuvent ensuite être récupérées et présentées sous forme d'informations dans
presque toutes les configurations imaginables. La qualité des informations que
vous obtenez à partir de vos données est directement proportionnelle au temps
que vous consacrez à garantir l'intégrité structurelle et l'intégrité des données
des champs eux-mêmes. Il n’y a tout simplement aucun moyen de sous-
estimer l’importance des champs.
Chaque champ d'une base de données correctement conçue contient une et
une seule valeur, et son nom identifiera le type de valeur qu'il détient. Cela
rend la saisie des données dans un champ très intuitive. Si vous voyez des
champs avec des noms tels que FIRSTNAME, LASTNAME, CITY, STATE et
ZIPCODE, vous savez exactement quel type de valeurs doit être contenu dans
chaque champ. Il vous sera également très facile de trier les données par État
ou de rechercher toutes les personnes dont le nom de famille est
« Hernandez ».
Vous rencontrerez généralement trois autres types de champs dans une base
de données mal conçue ou mal conçue.
1. Un champ en plusieurs parties (également appelé champ composite ), qui
contient au moins deux éléments distincts dans sa valeur.
2. Un champ à plusieurs valeurs , qui contient plusieurs instances
du même type de valeur.
3. Un champ calculé , qui contient une valeur de texte concaténée ou le
résultat d'une expression mathématique.
La figure 3.9 montre un tableau avec un exemple de chacun de ces types de
champs.
Figure 3.9 Une table contenant des champs réguliers, calculés, en plusieurs
parties et à plusieurs valeurs.
Je couvre plus en détail les champs calculés, à plusieurs parties et à valeurs
multiples dans le chapitre 7 , « Établir des structures de table ».
Enregistrer
Un enregistrement (appelé tuple dans la théorie des bases de données
relationnelles) représente une instance unique du sujet d'une table. Il est
composé de l'ensemble des champs d'une table, que les champs contiennent
ou non des valeurs. En raison de la manière dont une table est définie, chaque
enregistrement est identifié dans la base de données par une valeur unique
dans le champ de clé primaire de cet enregistrement.
Dans la figure 3.9 , chaque enregistrement représente un client unique dans la
table, et le champ ID CLIENT identifiera un client donné dans la base de
données. À son tour, chaque enregistrement comprend tous les champs du
tableau et chaque champ décrit un aspect du client représenté par
l'enregistrement. Prenons par exemple le record de Sara Castilleja. Son
enregistrement représente une instance unique du sujet de la table
(« Clients ») et inclut l'ensemble des champs de la table, traités comme une
unité. Les valeurs de ces champs représentent des faits pertinents sur Mme
Castilleja qui sont importants pour quelqu'un dans l'organisation.
Les enregistrements sont un facteur clé pour comprendre les relations entre les
tables, car vous devez savoir comment un enregistrement d'une table est lié
aux autres enregistrements d'une autre table.
Voir
Une vue est une table « virtuelle » composée de champs provenant d'une ou
plusieurs tables de la base de données ; les tables qui composent la vue sont
appelées tables de base . Le modèle relationnel qualifie une vue de « virtuelle
» car elle extrait des données de tables de base plutôt que de stocker des
données seules. En fait, la seule information sur une vue stockée dans la base
de données est sa structure. De nombreux programmes SGBDR majeurs
prennent en charge les vues et les appellent généralement requêtes
enregistrées . Votre programme SGBDR spécifique déterminera si les vues sont
prises en charge et si vous faites référence à cet objet en tant que requête ou
vue.
Les vues vous permettent de voir les informations de votre base de données
sous de nombreux aspects différents, vous offrant ainsi une grande flexibilité
lorsque vous travaillez avec vos données. Vous pouvez créer des vues de
différentes manières, et elles sont particulièrement utiles lorsque vous les
basez sur plusieurs tables liées. Dans une base de données de planification
scolaire, par exemple, vous pouvez créer une vue qui consolide les données
des tables STUDENTS, CLASSES et CLASS SCHEDULES.
La figure 3.10 montre une vue appelée AFFECTATIONS D'INSTRUMENTS
composée de champs extraits des tables ÉTUDIANTS, INSTRUMENTS et
INSTRUMENTS ÉTUDIANTS. La vue affiche les données qu'elle extrait
simultanément de toutes ces tables, en fonction des valeurs correspondantes
entre les champs STUDENT ID des tables STUDENTS et STUDENT INSTRUMENTS
et les champs INSTRUMENT ID des tables INSTRUMENTS et STUDENT
INSTRUMENTS.
Figure 3.10 Un exemple de vue typique.
Il y a trois raisons principales pour lesquelles les opinions sont importantes.
1. Ils vous permettent de travailler simultanément avec les données de
plusieurs tables. (Pour qu'une vue fasse cela, les tables doivent avoir des
connexions, ou des relations , les unes avec les autres.)
2. Ils vous permettent d'empêcher certains utilisateurs de visualiser ou de
manipuler des champs spécifiques au sein d'une table ou d'un groupe de
tables. Cette capacité peut être très avantageuse en termes de sécurité.
3. Vous pouvez les utiliser pour mettre en œuvre l'intégrité des données. Une
vue que vous utilisez à cette fin est appelée vue de validation .
Vous en apprendrez davantage sur la conception et l'utilisation des vues
au chapitre 12 , « Vues ».
Note
Bien que tous les principaux fournisseurs de bases de données prennent en
charge le type de vue que j'ai décrit dans cette section, plusieurs fournisseurs
prennent en charge ce que l'on appelle
une vue indexée (ou matérialisée ). Une vue indexée est différente d'une vue
« normale » dans le sens où elle stocke des données et vous pouvez indexer
ses champs pour améliorer la vitesse à laquelle le SGBDR traite les données de
la vue. Une discussion complète sur les vues indexées dépasse le cadre de ce
livre car il s'agit d'un problème d'implémentation spécifique au
fournisseur. Toutefois, vous devez approfondir vos recherches sur ce sujet si
vous travaillez avec un logiciel SGBDR tel qu'Oracle, Microsoft SQL Server, IBM
DB2 ou Sybase SQL, ou si vous travaillez avec un entrepôt de données ou une
base de données de traitement analytique en ligne (OLAP).
Clés
Les clés sont des champs spéciaux qui jouent des rôles très spécifiques dans
une table, et le type de clé détermine son objectif dans la table. Il existe
plusieurs types de clés qu'une table peut contenir, mais les deux plus
importantes sont la clé primaire et la clé étrangère .
Une clé primaire est un champ ou un groupe de champs qui identifie de
manière unique chaque enregistrement dans une table ; une clé primaire
composée de deux champs ou plus est appelée clé primaire composite . La clé
primaire est absolument la clé la plus importante de tout le tableau.
• Une valeur de clé primaire identifie un enregistrement spécifique dans
l'ensemble de la base de données,
• Le champ de clé primaire identifie une table donnée dans l'ensemble de la
base de données.
• La clé primaire renforce l'intégrité au niveau de la table et permet d'établir
des relations avec d'autres tables de la base de données. (Vous en
apprendrez davantage sur les relations dans la section suivante.)
Chaque table de votre base de données doit avoir une clé primaire !
Le champ AGENT ID de la figure 3.11 est un bon exemple de clé primaire. Il
identifie de manière unique chaque agent dans la table AGENTS et contribue à
garantir l'intégrité au niveau de la table en garantissant l'absence de
duplication des enregistrements. Il établit également des relations entre la
table AGENTS et d'autres tables de la base de données, comme dans le cas de
la table ENTERTAINERS présentée dans l'exemple.
Figure 3.11 Un exemple de champs de clé primaire et étrangère.
Lorsque vous déterminez que deux tables entretiennent une relation l'une avec
l'autre, vous établissez généralement cette relation en prenant une copie de la
clé primaire de la première table et en l'incorporant dans la structure de la
deuxième table, où elle devient une clé étrangère . Le nom « clé étrangère »
est dérivé du fait que la deuxième table possède déjà sa propre clé primaire et
que la clé primaire que vous introduisez à partir de la première table est «
étrangère » à la deuxième table.
La figure 3.11 montre également un bon exemple de clé étrangère. Notez que
AGENT ID est la clé primaire de la table AGENTS et une clé étrangère dans la
table ENTERTAINERS. AGENT ID assume ce rôle car la table ENTERTAINERS
possède déjà une clé primaire : ENTERTAINER ID. En tant que tel, AGENT ID
établit la relation entre les deux tables.
En plus d'aider à établir des relations entre des paires de tables, les clés
étrangères aident également à mettre en œuvre et à garantir l'intégrité au
niveau des relations. Cela signifie que les enregistrements des deux tables
seront toujours correctement liés car les valeurs d'une clé
étrangère doivent correspondre aux valeurs existantes de la clé primaire à
laquelle elle fait référence. L’intégrité au niveau relationnel vous aide
également à éviter le redoutable enregistrement « orphelin », dont un exemple
classique est un enregistrement de commande sans client associé. Si vous ne
savez pas qui a passé la commande, vous ne pouvez pas la traiter, et vous ne
pouvez évidemment pas la facturer. Cela va gâcher vos ventes trimestrielles !
Les champs clés jouent un rôle important dans une base de données
relationnelle et vous devez apprendre à les créer et à les utiliser. Vous en
apprendrez davantage sur les clés primaires dans les chapitres 8 , « Clés »
et 10 , « Relations entre les tables ».
Indice
Un index est une structure fournie par un SGBDR pour améliorer le traitement
des données. Votre programme SGBDR particulier déterminera le
fonctionnement de l'index et la manière dont vous l'utilisez. Cependant, un
index n’a absolument rien à voir avec la structure logique d’une base de
données ! La seule raison pour laquelle j'inclus le terme index dans ce chapitre
est que les gens le confondent souvent avec le terme clé .
Index et clé ne sont que deux autres termes largement et fréquemment utilisés
à mauvais escient dans le secteur des bases de données et dans de
nombreuses publications et sites Web liés aux bases de données. (Vous vous
souvenez de mes commentaires sur les données et les informations ?) Vous
saurez toujours la différence entre les deux si vous vous souvenez que les clés
sont des structures logiques que vous utilisez pour identifier les
enregistrements dans une table et que les index sont des structures
physiques que vous utilisez pour optimiser le traitement des données.
Conditions liées aux relations
Des relations
Une relation existe entre deux tables lorsque l'on peut d'une manière ou d'une
autre associer les enregistrements de la première table à ceux de la
seconde. Toipeut établir la relation via un ensemble de clés primaires et
étrangères (comme vous l'avez appris dans la section précédente) ou via une
troisième table appelée table de liaison (également
appelée table associative ). La manière dont vous établissez la relation dépend
réellement du type de relation qui existe entre les tables. (Vous en apprendrez
plus à ce sujet dans un instant.) La figure 3.11 illustre une relation établie via
des clés primaires/étrangères, et la figure 3.12 illustre une relation établie avec
une table de liaison.
Figure 3.12 Relation établie entre deux tables à l'aide d'une table de liaison.
Une relation est un élément important d'une base de données relationnelle.
• Il vous permet de créer des vues multitables.
• Il est crucial pour l’intégrité des données car il permet de réduire les
données redondantes et d’éliminer les données en double.
Vous pouvez caractériser chaque relation de trois manières : par le type de
relation qui existe entre les tables, la manière dont chaque table participe et le
degré de participation de chaque table.
Types de relations
Trois types spécifiques de relations (traditionnellement appelés cardinalité )
peuvent exister entre une paire de tables : un-à-un , un-à-
plusieurs et plusieurs-à-plusieurs .
Relations individuelles
Une paire de tables entretient une relation biunivoque lorsqu'un seul
enregistrement de la première table est lié à zéro ou à un et un seul
enregistrement de la deuxième table, et qu'un seul enregistrement de
la deuxième table est lié à un et un seul. enregistrer dans le premier
tableau. Dans ce type de relation, une table sert de table « parent » et l’autre
sert de table « enfant ». Vous établissez la relation en prenant une copie de la
clé primaire de la table parent et en l'incorporant dans la structure de la table
enfant, où elle devient une clé étrangère. Il s'agit d'un type particulier de
relation car c'est la seule dans laquelle les deux tables peuvent réellement
partager la même clé primaire.
La figure 3.13 montre un exemple de relation un-à-un typique. Dans ce cas,
EMPLOYEES est la table parent et COMPENSATION est la table enfant. La
relation entre ces tables est telle qu'un seul enregistrement de la table
EMPLOYEES peut être lié à zéro ou à un seul enregistrement de la table
COMPENSATION, et qu'un seul enregistrement de la table COMPENSATION peut
être lié à un seul enregistrement de la table EMPLOYEES. Notez que EMPLOYEE
ID est bien la clé primaire dans les deux tables. Cependant, elle jouera
également le rôle de clé étrangère dans la table enfant.
Figure 3.13 Un exemple de relation un-à-un.
Relations un-à-plusieurs
Une relation un-à-plusieurs existe entre une paire de tables lorsqu'un seul
enregistrement de la première table peut être lié à zéro, un ou plusieurs
enregistrements de la deuxième table, mais qu'un seul enregistrement de
la deuxième table peut être lié uniquement à un enregistrement dans la
première table. Le modèle parent/enfant que j’ai utilisé pour décrire une
relation individuelle fonctionne également ici. Dans ce cas, la table du côté «
un » de la relation est la table parent et la table du côté « plusieurs » est la
table enfant. Vous établissez une relation un-à-plusieurs en prenant une copie
de la clé primaire de la table parent et en l'incorporant dans la structure de la
table enfant, où elle devient une clé étrangère.
L'exemple de la figure 3.14 illustre une relation un-à-plusieurs typique. Un seul
enregistrement de la table AGENTS peut être lié à un ou plusieurs
enregistrements de la table ENTERTAINERS, mais un seul enregistrement de la
table ENTERTAINERS n'est lié qu'à un seul enregistrement de la table
AGENTS. Comme vous l'avez probablement déjà deviné, AGENT ID est une clé
étrangère dans la table ENTERTAINERS.
Figure 3.14 Un exemple de relation un-à-plusieurs.
Il s’agit de loin de la relation la plus courante qui existe entre une paire de
tables dans une base de données. C’est crucial du point de vue de l’intégrité
des données, car cela permet d’éliminer les données en double et de maintenir
les données redondantes au minimum absolu. Vous en apprendrez davantage à
ce sujet à mesure que nous approfondirons le processus de conception.
Relations plusieurs-à-plusieurs
Une paire de tables entretient une relation plusieurs-à-plusieurs lorsqu'un seul
enregistrement de la première table peut être lié à zéro, un ou plusieurs
enregistrements de la deuxième table et que de même, un seul enregistrement
de la deuxième table peut être lié à zéro. un ou plusieurs enregistrements dans
la première table. Vous établissez cette relation avec une table de
liaison . (Vous en avez appris un peu plus sur ce type de tableau au début de
cette section.) Une table de liaison vous permet d'associer facilement les
enregistrements d'une table à ceux de l'autre et vous aidera à vous assurer
que vous n'aurez aucun problème à ajouter, supprimer , ou en modifiant les
données associées. Vous définissez une table de liaison en prenant des
copiesde la clé primaire de chaque table dans la relation et en les utilisant pour
former la structure de la nouvelle table. Ces champs remplissent en réalité
deux rôles distincts : ensemble, ils forment la clé primaire composite de la
table de liaison ; séparément, ils servent chacun de clé étrangère.
Une relation plusieurs-à-plusieurs qui n’est pas correctement établie est « non
résolue ». La figure 3.15 montre un exemple classique et clair de relation
plusieurs-à-plusieurs non résolue. Dans ce cas, un seul enregistrement de la
table STUDENTS peut être lié à plusieurs enregistrements de la table CLASSES,
et un seul enregistrement de la table CLASSES peut être lié
à plusieurs enregistrements de la table STUDENTS.
Figure 3.15 Un exemple de relation plusieurs-à-plusieurs non résolue.
Cette relation n’est pas résolue en raison de la particularité inhérente à la
relation plusieurs-à-plusieurs. Le problème principal est le suivant : comment
associer facilement les enregistrements de la première table aux
enregistrements de la deuxième table ? Pour reformuler la question à l'aide des
tableaux présentés dans la figure 3.15 , comment associer un seul élève à
plusieurs classes ou une classe spécifique à plusieurs élèves ? Insérez-vous
quelques champs ÉTUDIANTSdans le tableau CLASSES ? Ou ajoutez-vous
plusieurs champs CLASS à la table STUDENTS ? L'une ou l'autre de ces
approches rendra difficile l'utilisation des données de ces tableaux et affectera
négativement l'intégrité des données. La meilleure approche à adopter
consiste à créer et à utiliser une table de liaison, qui résoudra la relation
plusieurs-à-plusieurs de la manière la plus appropriée et la plus efficace. La
figure 3.16 montre cette solution en pratique.
Figure 3.16 Résolution de la relation plusieurs-à-plusieurs avec une table de
liaison.
Il est important que vous connaissiez le type de relation qui existe entre une
paire de tables, car il détermine la manière dont les tables sont liées, si les
enregistrements entre les tables sont interdépendants ou non, ainsi que le
nombre minimum et maximum d'enregistrements liés pouvant exister dans la
relation. Vous en apprendrez beaucoup plus sur les relations au chapitre 10 .
Types de participation
La participation d'une table au sein d'une relation peut être soit obligatoire ,
soit facultative . Supposons qu'une relation existe entre deux tables appelées
TABLE_A et TABLE_B.
• La participation de TABLE_A est obligatoire si vous devez saisir au moins
un enregistrement dans TABLE_A avant de pouvoir saisir des
enregistrements dans TABLE_B.
• La participation de TABLE_A est facultative si vous n'êtes pas obligé de
saisir des enregistrements dans TABLE_A avant de pouvoir saisir des
enregistrements dans TABLE_B.
Jetons un coup d'œil à un exemple utilisant les tables AGENTS et CLIENTS de la
figure 3.17 . La table AGENTS a une participation obligatoire au sein de la
relation si un agent doit exister avant que vous puissiez saisir un nouveau
client dans la table CLIENTS. Cependant, la participation à la table AGENTS
est facultative s'il n'est pas nécessaire qu'un agent existe dans la table avant
de saisir un nouveau client dans la table CLIENTS. Vous pouvez identifier le
type de participation approprié pour la table AGENTS en déterminant comment
vous allez utiliser ses données par rapport aux données de la table
CLIENTS. Par exemple, lorsque vous souhaitez vous assurer que chaque client
est affecté à un agent disponible, vous rendez obligatoire la participation de la
table AGENTS au sein de la relation.
Figure 3.17 Les tables AGENTS et CLIENTS.
Degré de participation
Le degré de participation détermine le nombre minimum d'enregistrements
qu'une table donnée doit avoir associés à un seul enregistrement dans la table
associée, et le nombre maximum d'enregistrements qu'une table donnée est
autorisée à associer à un seul enregistrement dans la table associée.
Considérons, encore une fois, une relation entre deux tables appelées TABLE_A
et TABLE_B. Vous établissez le degré de participation pour TABLE_B en
indiquant un nombre minimum et maximum d'enregistrements dans TABLE_B
qui peuvent être liés à un seul enregistrement dans TABLE_A. Si un seul
enregistrement dans TABLE_A peut être lié à pas moins de 1 mais pas plus de
10 enregistrements dans TABLE_B, alors le degré de participation pour TABLE_B
est de 1,10 . (La notation du degré de participation indique le nombre
minimum à gauche et le nombre maximum à droite, séparés par une virgule.)
Vous pouvez établir le degré de participation pour TABLE_A de la même
manière. Vous pouvez identifier le degré de participation de chaque table dans
une relation en déterminant la manière dont les données de chaque table sont
liées et comment vous utilisez les données.
Considérons à nouveau les tableaux AGENTS et CLIENTS de la figure 3.17 . Si
vous demandez à un agent de gérer au moins un client, mais certainement pas
plus de huit, alors le degré de participation pour la table
CLIENTSest 1,8 . Lorsque vous souhaitez vous assurer qu'un client ne peut être
affecté qu'à un seul agent, vous indiquez le degré de participation pour la table
AGENTS comme 1,1 . Vous apprendrez comment indiquer le degré de
participation pour une relation donnée au chapitre 10 .
Termes liés à l'intégrité
Spécification du champ
Une spécification de champ (traditionnellement appelée domaine ) représente
tous les éléments d'un champ. Chaque spécification de champ intègre trois
types d'éléments : généraux , physiques et logiques .
• Les éléments généraux constituent les informations les plus fondamentales
sur le champ et incluent des éléments tels que le nom du champ, la
description et la table parent.
• Les éléments physiques déterminent la façon dont un champ est construit et
comment il est représenté à la personne qui l'utilise. Cette catégorie
comprend des éléments tels que le type de données, la longueur et la prise
en charge des caractères.
• Les éléments logiques décrivent les valeurs stockées dans un champ et
incluent des éléments tels que la valeur requise, la plage de valeurs et la
prise en charge des valeurs nulles.
Vous apprendrez tous les éléments associés à une spécification de champ, y
compris ceux mentionnés ici, au chapitre 9 , « Spécifications de champ ».
Intégrité des données
L'intégrité des données fait référence à la validité, à la cohérence et à
l'exactitude des données dans une base de données. Je ne saurais trop insister
sur le fait que le niveau d’exactitude des informations que vous
récupérez de la base de données est directement proportionnel au
niveau d’intégrité des données que vous imposez à la base de
données. L'intégrité des données est l'un des aspects les plus importants
duprocessus de conception de base de données, et vous ne pouvez pas le
sous-estimer, le négliger ou même le négliger partiellement. Cela vous
exposerait au risque d’être en proie à des erreurs très difficiles à détecter ou à
identifier. En conséquence, vous prendriez des décisions importantes sur des
informations qui sont au mieux inexactes, ou au pire totalement invalides.
Il existe quatre types d'intégrité des données que vous mettrez en œuvre au
cours du processus de conception de base de données. Trois types d'intégrité
des données reposent sur divers aspects de la structure de la base de données
et sont étiquetés en fonction du domaine (niveau) dans lequel ils opèrent. Le
quatrième type d’intégrité des données repose sur la manière dont une
organisation perçoit et utilise ses données. Voici une brève description de
chacun :
1. L'intégrité au niveau de la table (traditionnellement connue sous le
nom d'intégrité d'entité ) garantit qu'aucun enregistrement en double
n'existe dans la table et que le champ qui identifie chaque enregistrement
dans la table est unique et jamais nul.
2. L'intégrité au niveau du champ (traditionnellement connue sous le
nom d'intégrité de domaine ) garantit que la structure de chaque champ est
solide ; que les valeurs de chaque champ sont valides, cohérentes et
exactes ; et que les champs du même type (tels que les champs CITY) sont
définis de manière cohérente dans toute la base de données.
3. L'intégrité au niveau relationnel (traditionnellement connue sous le
nom d'intégrité référentielle ) garantit que la relation entre une paire de
tables est solide et que les enregistrements des tables sont synchronisés
chaque fois que des données sont saisies, mises à jour ou supprimées de
l'une ou l'autre des tables.
4. Les règles métier imposent des restrictions ou des limitations sur certains
aspects d'une base de données en fonction de la manière dont une
organisation perçoit et utilise ses données. Ces restrictions peuvent affecter
certains aspects de la conception de la base de données, tels que la plage
et les types de valeurs stockées dans un champ, le type et le degré de
participation de chaque table au sein d'une relation, ainsi que le type de
participation.synchronisation utilisée pour l’intégrité au niveau des relations
dans certaines relations. Toutes ces restrictions sont abordées plus en détail
au chapitre 11 . Étant donné que les règles métier affectent l’intégrité, elles
doivent être prises en compte avec les trois autres types d’intégrité des
données lors du processus de conception.
Résumé
Ce chapitre a commencé par une explication de l'importance de la terminologie
pour définir, discuter ou lire sur le modèle de base de données relationnelle et
le processus de conception de base de données.
La section sur les termes liés à la valeur vous a montré qu'il existe une
différence distincte entre les données et les informations et que comprendre
cette différence est crucial pour comprendre le processus de conception de la
base de données. Vous en savez maintenant beaucoup sur Null et comment
cela affecte les informations que vous récupérez de la base de données.
Les termes liés à la structure ont ensuite été abordés et vous avez appris que
les structures de base de chaque base de données relationnelle sont les
champs , les enregistrements et les tables . Vous savez maintenant que les
vues sont des tables virtuelles utilisées, en partie, pour travailler
simultanément avec les données de deux ou plusieurs tables. Nous avons
ensuite examiné les champs clés , qui sont utilisés pour identifier les
enregistrements de manière unique au sein d'une table et pour établir une
relation entre une paire de tables. Enfin, vous avez appris la différence entre
un champ clé et un index . Vous savez désormais qu'un index est strictement
un dispositif logiciel (se manifestant sous la forme d'un fichier stocké sur
disque) utilisé pour optimiser le traitement des données.
Dans la section sur les termes liés aux relations , vous avez appris qu'une
connexion entre une paire de tables est appelée relation . Une relation est
utilisée pour garantir divers aspects de l'intégrité des données et constitue le
mécanisme utilisé par une vue pour extraire des données de plusieurs
tables. Vous avez ensuite découvert les trois caractéristiques des relations
entre tables : le type de relation (un-à-un, un-à-plusieurs, plusieurs-à-
plusieurs), le type de relation.participation (facultative ou obligatoire) et
le degré de participation (nombre minimum/maximum de dossiers associés).
Le chapitre s'est terminé par une discussion des termes liés à l'intégrité . Ici,
vous avez appris qu'une spécification de champ établit les caractéristiques
générales, physiques et logiques d'un champ, caractéristiques qui font partie
intégrante de chaque champ de la base de données. Vous avez ensuite appris
que l'intégrité des données est l'un des aspects les plus importants du
processus de conception d'une base de données en raison de son effet positif
sur les données de la base de données. De plus, vous savez désormais qu'il
existe quatre types d'intégrité des données : trois basés sur la structure de la
base de données et un basé sur la manière dont l'organisation interprète et
utilise ses données. Ces niveaux d'intégrité garantissent la qualité de la
conception de votre base de données et l'exactitude des informations que vous
en récupérez.
Questions de révision
1. Pourquoi la terminologie est-elle importante ?
2. Nommez les quatre catégories de termes.
3. Quelle est la différence entre données et informations ?
4. Que représente Null ?
5. Quel est l’inconvénient majeur de Null ?
6. Quelles sont les principales structures de la base de données ?
7. Nommez les trois types de tableaux.
8. Qu'est-ce qu'une vue ?
9. Indiquez la différence entre une clé et un index .
10. Quels sont les trois types de relations qui peuvent exister entre une paire
de tables ?
11. Quelles sont les trois manières dont vous pouvez caractériser une relation ?
12. Qu'est-ce qu'une spécification de terrain ?
13. Quels sont les trois types d’éléments qu’une spécification de champ
intègre ?
14. Qu'est-ce que l'intégrité des données ?
15. Nommez les quatre types d’intégrité des données.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
Partie II : Le processus de conception
4. Aperçu conceptuel
5. Démarrage du processus
8h 33min restantes
Aperçu conceptuel
Je ne prétends pas comprendre l’Univers : il est bien plus grand que moi.
—THOMAS CARLYLE __
Sujets abordés dans ce chapitre
L’importance de terminer le processus de conception
Définir un énoncé de mission et des objectifs de mission
Analyse de la base de données actuelle
Création des structures de données
Détermination et établissement de relations entre tables
Détermination et définition des règles métier
Détermination et définition des vues
Examen de l'intégrité des données
Résumé
Questions de révision
Comprendre comment concevoir une base de données relationnelle n'est pas
aussi difficile que comprendre l'univers ; en fait, c'est beaucoup plus facile. Il
est cependant important que vous ayez une idée globale du fonctionnement du
processus de conception de base de données et une idée générale des étapes
impliquées dans le processus. Le but de ce chapitre est de fournir un aperçu du
processus de conception de base de données.
Pour les besoins de cet aperçu, j'ai regroupé toutes les techniques du processus
de conception en sept phases, et je discute de chaque phase dansConditions
générales. Cette discussion donne une bonne idée globale du processus de
conception de bases de données et j'espère qu'elle vous donnera une
compréhension beaucoup plus claire de chaque technique de conception
abordée dans cette partie du livre.
Vous pouvez utiliser la méthodologie de conception de ce livre pour concevoir
une nouvelle base de données entièrement à partir de zéro, affiner une base de
données existante ou vous aider à analyser une base de données existante afin
de pouvoir concevoir une nouvelle base de données basée sur les résultats de
votre analyse.
Note
Une base de données peut être conçue par une seule personne ou par une
équipe de conception composée de deux personnes ou plus. Dans le reste du
livre, j'utilise l'expression développeur de base de données et le
mot développeur pour désigner la personne ou le groupe qui conçoit la base de
données.
L’importance de terminer le processus de conception
Une chose que je veux préciser dès le début est l’importance de mener à bien
le processus de conception. On me demande souvent s’il est vraiment
nécessaire de suivre l’ensemble du processus de conception. Ma réponse est
toujours un « Oui ! » retentissant. On me demande ensuite si c'est encore
nécessaire si quelqu'un souhaite simplement créer une « simple » base de
données. ( Simple est l'un des mots les plus dangereux connus des
développeurs de bases de données. Rien n'est jamais « simple ».) Encore une
fois, ma réponse est : « Oui, c'est toujours nécessaire ». Le type, la taille ou
l’objectif de la base de données n’ont absolument aucun rapport avec l’intérêt
d’entreprendre une conception entièrement développée. Vous devez mettre en
œuvre et suivre le processus de conception de base de données du début à la
fin, quelle que soit la méthode de conception que vous utilisez.
Un fait bien connu et prouvé est que tenter de concevoir une base de données
sans recourir à un processus de conception de base de données approfondi est
une mauvaise chose.idée. De nombreux problèmes de base de données sont
causés par une mauvaise conception de la base de données, et
suivre partiellement le processus de conception est à peu près aussi grave que
de ne pas l'utiliser du tout. Une conception incomplète est une mauvaise
conception. Ce n'est que si vous suivez un processus de conception complet et
non abrégé que vous êtes assuré d'une structure solide et de l'intégrité des
données.
Un point important à garder à l’esprit est que le niveau d’intégrité structurelle
et d’intégrité des données de votre base de données est directement
proportionnel à la manière dont vous suivez minutieusement le processus de
conception. Moins vous consacrez de temps au processus de conception, plus
vous courez le risque de rencontrer des problèmes avec la base de
données. C’est aussi vrai aujourd’hui qu’il y a 25 ans. Suivre minutieusement le
processus de conception d’une base de données n’éliminera peut-être pas tous
les problèmes que vous pourriez rencontrer lors de la conception d’une base de
données, mais cela contribuera grandement à les minimiser. En travaillant avec
votre logiciel SGBDR, vous constaterez qu'une base de données bien conçue
est plus facile à mettre en œuvre qu'une base de données mal conçue.
Les bases de données ne sont pas difficiles à concevoir ; il faut juste un peu de
temps pour les concevoir correctement. Ne vous permettez pas de prendre des
raccourcis lorsqu'il vous semble que le processus de conception prend trop de
temps. Soyez simplement patient et rappelez-vous ce qu'un vieux sage a dit un
jour :
On n'a jamais le temps de bien faire les choses, mais il est toujours temps de
tout recommencer !
Définir un énoncé de mission et des objectifs de mission
La première phase du processus de conception de la base de données consiste
à définir un énoncé de mission et des objectifs de mission pour la base de
données. L'énoncé de mission établit l'objectif de la base de données et vous
fournit une orientation distincte pour votre travail de conception.
Chaque base de données est créée dans un but précis, qu'il s'agisse de
résoudre un problème commercial particulier, de gérer les transactions
quotidiennes deune entreprise ou une organisation, ou pour être utilisé dans le
cadre d’un système d’information. Vous identifiez l’objectif de votre base de
données et le définissez dans un énoncé de mission. Cela permettra de
garantir que vous développez une structure de base de données appropriée et
que vous collectez les données nécessaires pour prendre en charge l'objectif
prévu de la base de données.
Vous définirez également les objectifs de la mission au cours de cette phase. Il
s'agit d'instructions qui représentent les tâches générales que vos utilisateurs
peuvent effectuer sur les données de la base de données. Vous utilisez ces
objectifs pour soutenir votre énoncé de mission et pour vous aider à déterminer
divers aspects de la structure de la base de données.
Deux groupes distincts de personnes seront impliqués dans la définition de
l'énoncé de mission et des objectifs de la mission. Le premier groupe comprend
le développeur de la base de données (vous), la personne propriétaire de la
base de données et le personnel de direction ou la personne qui est finalement
responsable de la base de données ; ce groupe est chargé de définir l'énoncé
de mission. Le deuxième groupe comprend le développeur de la base de
données (encore vous), le personnel de direction ou la personne qui est
finalement responsable de la base de données, et les utilisateurs finaux ; ce
groupe est chargé de définir les objectifs de la mission.
Note
J'utilise désormais le terme gestion pour désigner « le personnel de direction ou
la personne qui est finalement responsable de la base de données » par souci
de clarté et de concision.
Analyse de la base de données actuelle
La deuxième phase du processus de conception de base de données consiste à
analyser la base de données actuelle si elle existe. (C'est le scénario le plus
courant de nos jours.) En fonction de votre organisation, la base de données
sera généralement une base de données existante ou une base de données
papier . Une base de données héritée (également appelée base de
données héritée ) est une base de données qui a étéexiste et est utilisé depuis
plusieurs années. Une base de données papier, comme vous le savez peut-être
déjà, est une collection lâche de formulaires, de dossiers manille, etc. Il est
étrange de penser qu'au moment d'écrire ces lignes (mai 2020), un certain
nombre d'entreprises, d'organisations et d'agences gouvernementales utilisent
encore du papier dans le cadre de leurs processus de collecte de
données. Cependant, quel que soit le type ou l'état de la base de données, son
analyse fournira des informations précieuses sur la manière dont votre
organisation utilise et gère actuellement ses données. L'analyse implique
également de revoir la manière dont votre organisation collecte et présente
actuellement les données. Vous examinez comment votre organisation utilise
des formulaires et des rapports papier ou des applications de bureau pour
collecter et présenter des données. Enfin, vous tenez compte de la manière
dont votre organisation utilise ses données sur Internet et examinez toutes les
applications Web qui fonctionnent avec la base de données.
Une autre partie de l'analyse consiste à mener des entretiens avec les
utilisateurs et la direction pour identifier comment ils interagissent
quotidiennement avec la base de données. En tant que développeur de base
de données, vous demandez aux utilisateurs comment ils travaillent avec la
base de données et quels sont leurs besoins en informations à l'heure
actuelle. Vous interrogez ensuite le personnel de direction et lui posez des
questions sur les informations qu'il reçoit actuellement et sur sa perception des
besoins globaux en informations de l'organisation. Ces entretiens sont un
élément important de votre analyse car les questions que vous posez (ou ne
posez pas) auront un grand impact sur la structure finale de votre base de
données. Vous devez mener des entretiens complets de manière opportune,
pratique et efficace si vous souhaitez concevoir une base de données qui
répond réellement aux besoins d'information de votre organisation.
Ensuite, vous utilisez les informations que vous avez recueillies à partir de
l'analyse et des entretiens pour dresser une première liste de domaines. Vous
affinez ensuite cette liste en supprimant tous les champs calculés et en les
plaçant dans leur propre liste. Vous utiliserez ces champs calculés plus tard
dans le processus de conception. La liste affinée constitue les exigences
fondamentales en matière de données de votre organisation et constitue un
point de départ pour la conception d'une nouvelle base de données. (Comme
vous le savez, rien n'est jamais vraiment définitif. Soyez assuré que vous
élargirez et affinerez davantage cette liste de champs au fur et à mesure que
vous développerez votre conception.)
Une fois votre liste de champs initiale terminée, vous l'envoyez à vos
utilisateurs et à votre direction pour un bref examen et un éventuel
affinement. Vous encouragez les retours (du mieux possible) et prenez en
compte leurs suggestions de modifications. Si vous pensez que les suggestions
sont raisonnables et bien étayées, vous apportez les modifications appropriées,
enregistrez la liste dans son état actuel et passez à la phase suivante.
Création des structures de données
La création des structures de données pour la base de données constitue la
troisième phase du processus de conception de la base de données. Vous
définissez des tables et des champs, établissez des clés et définissez des
spécifications de champ pour chaque champ.
Les tables sont les premières structures que vous définissez dans la base de
données. Vous déterminez les différents sujets que les tableaux représenteront
à partir des objectifs de mission que vous avez compilés au cours de la
première phase du processus de conception et des exigences en matière de
données que vous avez recueillies au cours de la deuxième phase. Vous
établissez ensuite ces sujets sous forme de tables et les associez aux champs
de la liste de champs que vous avez compilée au cours de la deuxième phase
du processus de conception. Une fois cette tâche terminée, vous examinez
chaque tableau pour vous assurer qu'il ne représente qu'un seul sujet et qu'il
ne contient pas de champs en double.
Vous allez maintenant examiner les champs de chaque table. Vous affinez tous
les champs en plusieurs parties ou à plusieurs valeurs de la table afin qu'ils
stockent chacun une seule valeur, et vous déplacez ou supprimez les champs
qui ne représentent pas les caractéristiques distinctes du sujet représenté par
la table. Une fois cette révision terminée, vous examinez et affinez ensuite les
structures des tables. Cela implique de vérifier le travail que vous avez effectué
sur les champs pour vous assurer que vous n'avez rien oublié accidentellement
et de vous assurer que chaque structure de table est correctement
définie. Ensuite, vous établissez les clés appropriées pour chaque table. Votre
tâche principale est de vous assurer que chaque table possède une clé primaire
correctement définie ; cette clé particulière identifie de manière unique chaque
enregistrement dans une table.
La dernière étape de cette phase consiste à établir les spécifications de chaque
champ de la base de données. À ce stade, vous menez des entretiens avec les
utilisateurs et la direction pour vous aider à identifier les caractéristiques
spécifiques du domaine qui sont importantes pour eux et à examiner et
discuter de toutes les caractéristiques avec lesquelles ils pourraient ne pas être
familiers. Après avoir terminé ces entretiens, vous définissez et documentez les
spécifications de chaque domaine. Les structures de table sont maintenant
prêtes pour la phase suivante, une fois que vous avez effectué les
améliorations que vous avez identifiées lors de la révision.
Détermination et établissement de relations entre tables
La quatrième phase du processus de conception de base de données consiste à
établir des relations entre les tables. Vous menez à nouveau des entretiens
avec les utilisateurs et la direction, identifiez les relations, identifiez les
caractéristiques des relations et établissez l'intégrité au niveau des relations.
Travailler avec les utilisateurs et la direction est un exercice prudent car ils
peuvent vous aider à identifier les relations entre les données. Vous ne pouvez
pas connaître tous les aspects des données que votre organisation utilise. Il
vous sera donc très bénéfique de tirer parti des connaissances dont vous
disposez sur les données qu’elles utilisent.
Après avoir identifié les relations, vous établissez une connexion logique entre
les tables de chaque relation avec une clé primaire ou avec une table de
liaison. Ce que vous utilisez réellement dépend du type de relation que vous
établissez entre les tables. Ensuite, vous déterminez le type et le degré de
participation des tables dans chaque relation. Dans certains cas, ces
caractéristiques de participation vous seront évidentes en raison de la nature
des données stockées dans les tableaux. Dans d'autres cas, vous baserez les
caractéristiques de participation sur des règles métier spécifiques.
Détermination et définition des règles métier
La détermination et la définition des règles métier constituent la cinquième
phase du processus de conception de base de données. Au cours de cette
phase, vous mènerez des entretiens, identifierez les limites sur divers aspects
de la base de données, établirez des règles métier et définirez et
implémenterez des tables de validation.
La manière dont votre organisation visualise et utilise ses données déterminera
un ensemble de limitations et d'exigences que vous devez intégrer à la base de
données. Vos entretiens avec les utilisateurs et la direction vous aideront à
identifier les contraintes spécifiques que vous imposerez aux données, aux
structures de données ou aux relations. Vous documentez ensuite ces
spécifications sous forme de règles métier.
Les entretiens que vous mènerez avec les utilisateurs révéleront des
limites spécifiques sur divers aspects de la base de données. Par exemple, un
utilisateur travaillant avec une base de données de traitement des commandes
est très conscient de détails spécifiques, tels que le fait qu'une date
d'expédition doit être postérieure à une date de commande ; qu'il doit toujours
y avoir un numéro de téléphone de jour ; et qu'un mode d'expédition doit
toujours être indiqué. En revanche, vos entretiens avec la direction révèlent
des limites générales sur divers aspects de la base de données. Par exemple, le
chef de bureau d'une agence de divertissement connaît des problématiques
générales telles que le fait qu'un agent ne peut représenter plus de 20 artistes
et que les informations promotionnelles pour chaque artiste doivent être mises
à jour chaque année.
Ensuite, vous définissez et implémentez les tables de validation nécessaires
pour prendre en charge certaines règles métier. Supposons que vous constatiez
que certains champs ont une plage limitée de valeurs en raison de la manière
dont votre organisation les utilise. Vous pouvez utiliser des tables de validation
pour garantir la cohérence et la validité des valeurs stockées dans ces champs.
Le niveau d'intégrité établi par les règles métier à ce stade est important car il
est directement lié à la manière dont votre organisationconsulte et utilise ses
données. La perspective de l'organisation sur les données changera à mesure
que l'organisation se développe, ce qui signifie que les règles métier doivent
également changer. La détermination et l'établissement de règles
commerciales sont un processus continu et itératif, et vous devez faire preuve
de diligence constante si vous souhaitez maintenir correctement ce niveau
d'intégrité.
Détermination et définition des vues
La sixième phase du processus de conception consiste à déterminer et à définir
les vues. Ici, vous mènerez des entretiens (encore une fois), identifierez
différentes manières de travailler avec les données et établirez vos points de
vue.
Vous identifiez les types de vues que vous devez créer dans la base de
données en interrogeant les utilisateurs et la direction et en déterminant
comment ils travaillent avec leurs données respectives. Vous constaterez peut-
être, par exemple, que de nombreux utilisateurs ont besoin d'informations
détaillées pour effectuer leur travail, tandis que d'autres n'ont besoin que
d'informations récapitulatives pour les aider à prendre des décisions
stratégiques pour l'organisation. Chaque groupe d'utilisateurs doit accéder aux
informations de manière très spécifique et vous pouvez utiliser des vues pour
répondre à ces situations.
Ensuite, vous définissez les vues que vous avez identifiées au cours du
processus d'entretien à l'aide des tables et des champs appropriés et établissez
des critères pour ces vues qui sont requises pour récupérer des informations
spécifiques. Par exemple, vous établiriez des critères pour une vue qui doit
répertorier tous les clients situés au Texas ou pour une vue qui doit afficher le
nombre total de fournisseurs autorisés (par ville) à Washington.
Examen de l'intégrité des données
La septième et dernière phase du processus de conception de la base de
données consiste à examiner la structure finale de la base de données pour
vérifier l'intégrité des données.
Tout d’abord, vous examinez chaque table pour vous assurer qu’elle répond
aux critères d’une table correctement conçue et vérifiez la structure appropriée
des champs de chaque table. Vous résolvez ensuite les incohérences ou les
problèmes que vous rencontrez et révisez les structures une fois de plus. Vous
pouvez désormais vérifier que vos tables ont une intégrité au niveau des
tables.
Deuxièmement, vous examinez et vérifiez les spécifications de chaque
champ. Vous apportez les améliorations nécessaires aux champs, puis vérifiez
l'intégrité au niveau du champ. Cet examen réaffirme l'intégrité au niveau du
terrain que vous avez identifiée et établie plus tôt dans le processus de
conception de la base de données.
Troisièmement, vous examinez la validité de chaque relation, confirmez le type
de relation et confirmez les caractéristiques de participation pour chaque table
de la relation. Vous examinez ensuite l'intégrité de la relation pour vous assurer
qu'il existe des valeurs correspondantes entre les champs partagés et qu'aucun
problème ne se produit lors de l'insertion, de la mise à jour ou de la
suppression de données dans l'une des tables de la relation.
Enfin, vous passez en revue les règles métier que vous avez identifiées plus tôt
dans le processus de conception de base de données et confirmez les
contraintes que vous avez imposées sur différents aspects de la base de
données. Si d'autres limitations ont été portées à votre attention depuis la
dernière série d'entretiens avec le personnel, vous les établissez en tant que
nouvelles règles métier et vous les ajoutez à l'ensemble de règles métier
existant.
Vous êtes prêt à implémenter votre structure de base de données logique dans
un programme SGBDR après avoir terminé l'intégralité du processus de
conception de base de données. Cependant, le processus n’est
jamais vraiment terminé car la structure de la base de données devra toujours
être affinée à mesure que votre organisation évolue.
Résumé
Nous avons commencé ce chapitre par une discussion sur l'importance de
mener à bien le processus de conception, et vous avez appris que concevoir
une base de données sans bénéficier d'une bonne méthode de conception
conduit à une conception médiocre et inappropriée. Nous avons également
discuté du fait que le niveau d’intégrité structurelle et des données est
directement proportionnel à la manière dont vous suivez minutieusement le
processus de conception. Vous avez ensuite appris que les données
incohérentes et les informations inexactes sont deux problèmes généralement
associés aux bases de données mal conçues.
Nous avons ensuite examiné un aperçu de l'ensemble du processus de
conception de base de données. Le processus a été consolidé dans les phases
suivantes pour vous fournir une image claire des étapes générales impliquées
dans la conception d'une base de données.
1. Définir un énoncé de mission et des objectifs de mission pour la base de
données. L'énoncé de mission définit le but de la base de données et les
objectifs de la mission définissent les tâches qui doivent être effectuées par
les utilisateurs sur les données de la base de données.
2. Analysez la base de données actuelle. Vous identifiez les besoins en
données de votre organisation en examinant la manière dont votre
organisation collecte et présente actuellement ses données et en menant
des entretiens avec les utilisateurs et la direction pour déterminer comment
ils utilisent la base de données au quotidien.
3. Créez les structures de données. Vous établissez des tableaux en identifiant
les sujets que la base de données suivra. Ensuite, vous associez chaque
table à des champs qui représentent des caractéristiques distinctes du sujet
de la table et désignez un champ particulier (ou un groupe de champs)
comme clé primaire. Vous établissez ensuite les spécifications de champ
pour chaque champ de la table.
4. Déterminer et établir des relations entre les tables. Vous identifiez les
relations qui existent entre les tables de la base de données etétablissez la
connexion logique pour chaque relation à l'aide de clés primaires et de clés
étrangères ou à l'aide de tables de liaison. Ensuite, vous définissez les
caractéristiques appropriées pour chaque relation.
5. Déterminer et définir les règles métier. Vous menez des entretiens avec les
utilisateurs et la direction pour identifier les contraintes qui doivent être
imposées sur les données de la base de données. La manière dont votre
organisation visualise et utilise ses données détermine généralement les
types de contraintes que vous devez imposer à la base de données. Vous
déclarez ensuite ces contraintes sous forme de règles métier, et elles
serviront à établir différents niveaux d’intégrité des données.
6. Déterminer et établir des points de vue. Vous interrogez les utilisateurs et la
direction pour identifier les différentes manières dont ils travaillent avec les
données de la base de données. Une fois vos entretiens terminés, vous
établissez les points de vue appropriés. Vous définissez chaque vue à l'aide
des tables et des champs appropriés et établissez des critères pour les vues
qui doivent afficher un ensemble limité ou fini d'enregistrements.
7. Vérifiez l’intégrité des données. Cette phase comporte quatre étapes. Tout
d’abord, vous examinez chaque table pour vous assurer qu’elle répond aux
critères de conception appropriés. Deuxièmement, vous examinez et vérifiez
toutes les spécifications du champ. Troisièmement, vous testez la validité de
chaque relation. Quatrièmement, vous examinez et confirmez les règles
métier.
Questions de révision
1. Pourquoi est-il important de mener à bien le processus de conception ?
2. Vrai ou faux : Le niveau d’intégrité structurelle est directement proportionnel
à la façon dont vous suivez minutieusement le processus de conception.
3. Quel est le but d’un énoncé de mission ?
4. Quels sont les objectifs de la mission ?
5. Quelles sont les exigences fondamentales en matière de données de votre
organisation ?
6. Comment déterminez-vous les différents sujets que les tableaux
représenteront ?
7. Vrai ou faux : vous établissez les spécifications de champ pour chaque
champ de la base de données au cours de la deuxième phase du processus de
conception de la base de données.
8. Comment établir une connexion logique entre les tables dans une relation ?
9. Qu'est-ce qui détermine un ensemble de limitations et d'exigences que vous
devez intégrer à la base de données ?
10. Que pouvez-vous concevoir et mettre en œuvre pour prendre en charge
certaines règles métier ?
11. Comment déterminez-vous les types de vues que vous devez créer dans la
base de données ?
12. Quand pouvez-vous implémenter votre structure logique dans un
programme SGBDR ?
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
4. Aperçu conceptuel
5. Démarrage du processus
6. Analyse de la base de données actuelle
8h 33min restantes
Démarrage du processus
« Par où dois-je commencer, s'il vous plaît, Votre Majesté ? Il a demandé.
« Commencez par le début, dit gravement le roi, et continuez jusqu'à la fin :
puis arrêtez. »
—L EWIS C ARROLL
LES AVENTURES D' A LICE AU PAYS DES MERVEILLES
Sujets abordés dans ce chapitre
Mener des entretiens
Définir l'énoncé de mission
Définir les objectifs de la mission
Résumé
Questions de révision
Tout a un début et le processus de conception de base de données n’est pas
différent. Chose intéressante, vous démarrez le processus en définissant le
résultat final. C'est dès la toute première étape du processus de conception de
la base de données que vous identifiez et déclarez l'objectif de la base de
données. Vous définissez et déclarez également une liste des tâches que vos
utilisateurs peuvent effectuer sur les données de la base de données. Ces deux
éléments vous fournissent une orientation et une orientation pour le
développement d'une base de données et contribuent à garantir que la
structure finale de votre base de données prend en charge l'objectif et les
tâches déclarés.
Note spéciale
La pandémie de COVID-19 de 2020 a changé la façon dont les gens mènent
leurs affaires et la façon dont nous interagissons les uns avec les autres. Un
nombre bien plus important de personnes travaillent à distance, notamment à
domicile. De nombreuses entreprises permettaient déjà à leurs employés de
travailler à distance avant cela, et beaucoup utilisaient des plateformes de
réunion populaires pour organiser leurs réunions. Mais la pandémie n’a fait
qu’accélérer cette idée à une échelle bien plus grande. Au moment d’écrire ces
lignes, les grandes entreprises, organisations et agences gouvernementales
repensent leurs modèles de travail, et nombre d’entre elles conserveront
probablement l’idée du travail à distance, sous une forme ou une autre, comme
élément permanent de leur nouvelle façon de faire des affaires.
À la lumière de ces changements, j'ai ajusté ma discussion sur les entretiens en
conséquence. Mes conseils et directives abordent désormais les entretiens du
point de vue des réunions que vous êtes susceptible de mener sur des
plateformes de réunion telles que Skype, Zoom, Microsoft Teams ou Google
Meet. Comme toujours, je couvrirai uniquement les questions conceptuelles
des entretiens ; vous devrez vous référer au contenu d'aide ou aux vidéos «
Comment faire » de la plateforme que vous utilisez pour savoir comment
mener la réunion sur cette plateforme.
Mener des entretiens
Les entretiens font partie intégrante de la conception d’une base de données et
jouent un rôle clé lors de certaines phases du processus de conception. En
supposant que vous travaillez au sein d'une organisation et que vous devez
concevoir une base de données pour soutenir le travail que vous et vos
collègues effectuez, vous devez vous assurer que vous menez vos entretiens
de la manière décrite dans ce livre. Cela signifie que vous interagirez avec
certains de vos collègues, le personnel de direction et le propriétaire (selon la
taille de l'organisation) tout au long du processus de conception. Si vous
travaillez pour une petite organisation qui n'emploie qu'une poignée de
personnespersonnes ou si vous créez simplement une base de données pour
vous-même, vous réaliserez des « auto-entretiens » ; vous continuerez à mener
les entretiens décrits dans ce livre, mais vous agirez en tant
qu'intervieweur et personne interrogée. C'est vous qui apporterez les réponses
aux questions.
Note
L'entretien est une compétence que vous pouvez acquérir avec un peu de
patience, de diligence et de pratique. Vous pouvez utiliser diverses approches
et techniques pour mener un entretien, et de nombreux articles, articles et
livres universitaires sont disponibles sur le sujet. Une discussion approfondie de
ce sujet dépasse le cadre de ce livre, mais j'ai inclus dans ce chapitre plusieurs
techniques et lignes directrices qui vous aideront à mener vos entretiens de
manière efficace et efficiente.
Les entretiens sont importants car ils fournissent un lien de communication
précieux entre vous (le développeur) et les personnes pour lesquelles vous
concevez la base de données, contribuent à garantir le succès de vos efforts de
conception et fournissent des informations critiques qui peuvent affecter la
conception de la structure de la base de données. . Lorsque vous travaillez
avec des relations de table, par exemple, vous aurez peut-être du mal à
déterminer le type et le degré de participation pour quelques relations. La
seule façon pour vous de déterminer les valeurs appropriées pour ces
caractéristiques relationnelles est de mener un entretien avec les personnes
appropriées de votre organisation. Vous pouvez ensuite utiliser les informations
que vous avez recueillies lors de l'entretien pour définir les caractéristiques de
la relation. Vous pouvez utiliser un entretien comme outil de collecte
d'informations pour obtenir de nouvelles informations de la part des
participants concernant une partie de la base de données ou pour clarifier des
faits que vous ne comprenez pas. Notez que vous devez toujours mener
chacun des entretiens intégrés dans ce processus de conception, quel que soit
le type de base de données que vous concevez ou le nombre de personnes
impliquées. Vous manquerez inévitablement certaines informations
importantes lorsque vous négligez ou omettez l'un des entretiens, ce qui
pourrait nuire à la structure finale de votre base de données.
Note
Dans les chapitres restants, j'utilise des questions ouvertes pour tous les
entretiens qui font partie du concept ou de la technique en discussion. Vous
pouvez utiliser ces questions comme guide pour formuler vos propres
questions pour un entretien donné.
Établissez toujours des lignes directrices pour vos entretiens avant de les
mener. Cela permet de garantir que vous menez vos entretiens de manière
cohérente et qu'ils sont toujours (ou généralement) réussis. Les sections
suivantes proposent quelques lignes directrices que vous pouvez établir pour
les participants et pour vous-même.
Lignes directrices pour les participants
• Faites prendre conscience aux participants de vos intentions. Beaucoup de
gens se méfient des entretiens. Ils n'aiment pas être « mis dans l'embarras
» et ils ne veulent pas qu'on leur pose ce qu'ils pensent être des questions «
pièges ». Faites savoir à chaque personne le sujet dont vous souhaitez
discuter, qui d’autre est susceptible de participer à la discussion, l’heure à
laquelle vous souhaitez commencer la session et si cet entretien fait partie
d’une série d’entretiens en cours. Toutes les personnes participant à une
séance d'entretien donnée sont plus susceptibles de s'engager dans la
conversation en cours et d'être très réactives à vos questions s'ils savent
comment vous allez mener la séance et ce que vous attendez
d'eux. Surtout, rassurez-les sur le fait que l’entretien n’est pas une
évaluation déguisée de leur performance ; vous voulez vous assurer qu’ils
se sentent à l’aise pour vous parler ouvertement et sans réserve. Cela
contribuera grandement à établir une base de confiance entre vous et les
participants.
• Faites savoir aux participants que vous appréciez leur participation à
l'entretien et que leurs réponses aux questions de l'entretiensont précieux
pour le projet de conception global. Les expériences antérieures sont
susceptibles de faire croire à certaines personnes que quelle que soit la
contribution qu’elles apportent au travail, elle passe inaperçue et sous-
estimée. Même lorsque leur contribution a eu un impact significatif sur un
projet spécifique, ils ont rarement reçu un simple « Merci ». À la lumière de
cela, il n’y a aucune réelle motivation pour eux de participer à votre
entretien. Beaucoup, sinon la totalité, de vos participants sont susceptibles
de commencer avec cette attitude, mais vous pouvez vraiment augmenter
leur motivation en leur faisant savoir que vous appréciez sincèrement et
honnêtement leur participation et que vous êtes très intéressé par leurs
réponses. Assurez-leur que leurs commentaires sont vraiment précieux pour
le processus de conception et que, dans de nombreux cas, leurs réponses
peuvent justifier et valider les décisions prises tout au long du processus de
conception. Les participants seront plus enclins à vous aider de toutes les
manières possibles si vous vous rendez crédible en étant véritablement
sincère ; votre travail sera beaucoup plus facile et tout le monde participera
volontairement et avec enthousiasme. Il est également très efficace de
montrer, lors d'un deuxième entretien, comment vous avez déjà utilisé les
contributions antérieures des participants.
• Assurez-vous que tout le monde comprend que vous êtes l'arbitre officiel en
cas de litige. Il est inévitable que des différends mineurs surgissent au cours
d'un entretien et qu'il y ait une certaine tension jusqu'à ce que ces
différends soient résolus. Vous pouvez éviter cette situation en arbitreant
vous-même ces litiges. En tant que développeur de bases de données, vous
êtes le mieux placé pour le faire car vous avez un point de vue objectif et
pouvez voir les deux côtés d’un problème. De plus, la décision que vous
prendrez sera toujours dans le meilleur intérêt de la structure de la base de
données. N'oubliez jamais que les litiges portant sur autre chose que la
structure de la base de données peuvent et doivent être soumis à une
autorité plus appropriée, si elle existe.
Lignes directrices pour les intervieweurs (celles-ci sont pour vous)
• Choisissez une plateforme de réunion appropriée pour mener votre
réunion. Quelques plateformes de réunion populaires que vous pouvez
utiliser pour mener votre réunion incluent Skype, Zoom, WebEx, Microsoft
Teams et Google Meet. Si vous travaillez dans une grande organisation, vous
devrez probablement utiliser celle qui constitue la norme
approuvée. L’avantage ici est que la plupart des gens l’ont probablement
utilisé à un moment donné et connaissent son fonctionnement. Si vous
faites partie d'une petite organisation ou si vous avez une petite entreprise,
choisissez la plateforme la plus susceptible d'être la plus intuitive et la plus
simple à utiliser pour votre public cible. C'est une idée particulièrement
intéressante si vous avez des personnes qui ne sont pas du tout familières
ou qui ne sont pas à l'aise avec ce type de plates-formes.
• Fixez une limite raisonnable et pratique pour le nombre de personnes
participant à chaque entretien. Limiter le nombre de participants favorise un
cadre plus détendu et vous permet d’encourager plus facilement tout le
monde à participer. L'un des problèmes que vous rencontrerez en menant
un entretien avec un grand nombre de personnes est que le niveau
d'intimidation de certains participants augmentera en proportion directe
avec le nombre de participants prenant part à l'entretien dans son
ensemble. Certaines personnes ont simplement peur de paraître ignorantes
ou incompétentes devant leurs collègues, même si de tels sentiments sont
réellement justifiés. Vous avez donc une très bonne raison de limiter le
nombre de participants à l’entretien.
• Mener des entretiens séparés pour les utilisateurs et la direction. Séparer
les deux groupes est une bonne idée pour diverses raisons, notamment le «
facteur de peur » que j’ai mentionné plus tôt. Principalement, vous
souhaitez les séparer parce que chaque groupe a une perspective différente
sur l'organisation dans son ensemble et sur la manière dont l'organisation
utilise ses données au quotidien. Mener des entretiens séparés pour chaque
groupe vous permet de tirer parti de leurs perspectives uniques pour
votreavantage lorsque vous travaillez dans le processus de conception de
base de données. Une autre raison de séparer les entretiens est d’éliminer
les conflits qui peuvent surgir lorsque ces groupes ne sont pas d’accord sur
certains aspects de l’organisation. Il est assez courant qu'il y ait un manque
de communication entre eux, et il y a 50/50 de chances que l'entretien fasse
remonter ce problème à la surface. Cela peut les inciter à établir de
meilleures lignes de communication, ou cela peut aggraver encore le
problème. Dans tous les cas, ce problème de communication peut
compliquer et prolonger votre entretien et diffuser ses résultats. Utilisez
votre connaissance de l’organisation pour vous aider à décider s’il convient
de séparer les entretiens. Si vous devez mener un entretien avec les deux
groupes en même temps, faites-le intentionnellement, dans un but précis en
tête, et soyez prêt à être distrait.
• Préparez vos questions avant l’entretien. Vous pouvez mener un entretien
assez facilement si vous disposez d’un ensemble de questions
préparées. (Proposer des questions spontanées est rarement une bonne
idée, même si vous êtes un intervieweur expérimenté et que vous êtes
hautement qualifié pour produire des questions ponctuelles.) Avoir une liste
de questions préparée vous permet de fournir une orientation et une
orientation. pour l'entretien, et il offre aux participants une continuité de
pensée. Votre entretien se déroulera plus facilement et sera plus productif
lorsque vos questions passeront facilement d'un sujet à l'autre.
Lorsque vous préparez votre liste de questions d'entretien, assurez-vous
d'utiliser des questions ouvertes. Par exemple, « Avez-vous estimé que notre
service était (a) médiocre, (b) moyen ou (c) bon ? » est une question
fermée. Une question fermée n'est pas particulièrement utile car elle fournit
son propre ensemble de réponses et ne permet pas à la personne interrogée
de donner une opinion objective ou une réponse élaborée. D’un autre côté,
une question ouverte du type « Que pensez-vous de notre service ? est bien
plus utile car il permet à la personne interrogée de répondre à la question
de différentes manières. Il y a des moments oùvous devrez peut-être utiliser
des questions fermées, mais il est préférable de les utiliser
intentionnellement, avec parcimonie et dans un but précis en tête.
• Si vous n'êtes pas très doué pour prendre des notes, confiez cette tâche à
un transcripteur fiable pour chaque entretien ou informez le groupe à
l'avance que vous allez enregistrer l'entretien à des fins de référence. Vous
menez des entretiens pour recueillir des informations spécifiques sur
l'organisation. Il est donc important que vous établissiez un compte rendu
raisonnablement détaillé de chaque entretien. Si vous avez du mal à mener
un entretien et à prendre des notes en même temps, vous devez demander
à l'un des participants de devenir votre assistant pour prendre des notes à
votre place. (C'est un bon moyen d'encourager la participation de personnes
normalement calmes ou réservées.) Choisissez votre assistant avec soin, car
les notes pourraient en pâtir si cette personne était distraite par les
débats. Une autre option dont vous disposez consiste à enregistrer les
débats de l’entretien. Cela pourrait s'avérer être une meilleure façon de
gérer vos notes, car l'enregistreur capturera l'entretien avec plus de
précision et vous serez en mesure de déterminer exactement qui vous a
fourni une information donnée. Assurez-vous d'informer tous les participants
avant l'entretien si vous décidez de l'enregistrer à des fins de référence. Des
problèmes de confidentialité peuvent être en jeu, et vous ne voulez pas
vous causer, ni causer à quelqu'un d'autre, des ennuis.
• Accordez à chacun votre attention égale et sans partage. C’est un point
crucial à retenir : vous devez prêter toute votre attention à la personne qui
parle et le faire sincèrement. Si vous donnez aux participants l'impression
que vous vous ennuyez, que vous n'êtes pas intéressé ou que vous êtes
préoccupé, ils réduiront immédiatement leur niveau de participation à
l'entretien. D'un autre côté, ils participeront probablement avec beaucoup
d'enthousiasme s'ils voient que vous êtes intéressé par ce qu'ils disent et
que vous bénéficiez de toute votre attention.
Je suis sûr que vous savez qu'il y aura des moments où un participant
répondra à vos questions par des réponses vagues ou incomplètes.Ils
peuvent réagir de cette façon pour plusieurs raisons. Il se peut qu'ils ne
sachent pas vraiment comment exprimer les idées qu'ils souhaitent
véhiculer ou qu'ils ne soient pas libres de divulguer certaines informations. Il
se peut également qu'ils ne soient tout simplement pas à l'aise pour parler
d'eux-mêmes et de ce qu'ils font ou qu'ils se méfient de vous pour une
raison quelconque. Il vous suffira d'être patient et de les mettre à l'aise pour
qu'ils vous fournissent les informations dont vous avez besoin. Par exemple,
vous pouvez essayer d'exprimer votre meilleure approximation de ce qui a
été dit jusqu'à présent et demander si c'est ce qu'ils voulaient dire.
• Gardez le rythme de l’entretien en mouvement. Vous avez probablement
assisté à des réunions au cours desquelles un point particulier a été discuté
ou beaucoup de temps a été passé à essayer d'extraire des informations
d'un participant réticent. Vous pouvez éviter que cela ne se produise lors de
vos entretiens en fixant des limites personnelles quant au temps que vous
accorderez pour répondre à une question et au temps que vous consacrerez
à un sujet spécifique. N'informez pas les participants de cette
limite ; indiquez plutôt que vous déposerez le point pour l'instant afin que la
réunion puisse se poursuivre. Assurez-vous de contacter le propriétaire de la
base de données peu de temps après la réunion afin de pouvoir parvenir à
une conclusion finale et à une résolution du problème.
• Gardez toujours le contrôle de l’entretien. Il s’agit de la ligne directrice la
plus importante pour chaque entretien que vous menez. Inévitablement,
quelque chose ne va pas au moment où vous perdez le contrôle de
l’entretien. Par exemple, supposons que vous vous trouviez dans une
situation où l'un des participants commence à changer l'orientation de
l'entretien en discutant de questions qui ont peu ou pas de rapport avec les
sujets de votre ordre du jour. Vous perdrez certainement le contrôle de
l'entretien à moins que vous ne fassiez quelque chose pour réorienter la
discussion. Reprendre le contrôle de l'entretien vous sera facile dans
certains cas, mais dans d'autres il vous suffira de déclarer votre partie de
l'entretien « terminée » et de laisser les participants poursuivre leur
discussion.
Vous rencontrerez également occasionnellement un participant qui voudra
peut-être dominer l'entretien et répondre à chacune de vos questions. Lorsque
cela se produit, informez-les diplomatiquement et poliment qu'il est de votre
devoir (et de votre devoir) d'obtenir les commentaires de tous les participants
afin que vous puissiez procéder à une évaluation complète des besoins globaux
d'information de l'organisation. Si cela ne résout pas le problème, vous avez
toujours la possibilité de ne pas inclure ce participant dans les discussions
futures. Vous pouvez éviter de telles situations tant que vous gardez le contrôle
de l’entretien. Les entretiens font partie intégrante du processus de conception
et j'en donne des exemples tout au long des chapitres suivants. Vous trouverez
des exemples de dialogues illustrant des scénarios d'entretien typiques et des
exemples de questions que vous pourriez utiliser lors d'un entretien
donné. (Les exemples de questions se rapportent toujours au type d'entretien
que vous menez actuellement.)
Note
Le but d'un exemple d'entretien est d'illustrer les techniques que vous utilisez
pour mener un type spécifique d'entretien, et j'ai gardé le dialogue
relativement simple pour cette raison. Utilisez le dialogue comme moyen de
trouver de bonnes idées pour les types de conversations que vous menez lors
de l'entretien.
Un dernier point : gardez à l’esprit que les lignes directrices que j’ai présentées
dans cette section ne sont que des recommandations. Je soupçonne que vous
ne pourrez pas appliquer toutes ces directives à chaque entretien que vous
mènerez ni même les appliquer dans la mesure où je l'ai décrit. J'attendrais
cependant de vous que vous les appliquiez pleinement dans une situation
idéale. Oui, je sais, on ne rencontre pas toujours des situations idéales. Moi non
plus. Mais vous pouvez toujours vous fixer comme objectif de respecter autant
de ces directives que possible. En fin de compte, la personne qui a le plus à
gagner, c’est vous.
Définir l'énoncé de mission
Dans le chapitre précédent, vous avez appris que l' énoncé de mission déclare
l'objectif spécifique de la base de données en termes généraux et que vous le
définissez au début du processus de conception de la base de données. De
plus, cela vous permet de concentrer vos efforts de conception et vous évite de
vous laisser détourner et de rendre la structure de la base de données
inutilement volumineuse ou complexe.
L'énoncé de mission bien rédigé
Un bon énoncé de mission est succinct et précis. Les déclarations verbeuses
ont tendance à être confuses, ambiguës ou vagues ; ils font plus pour obscurcir
l’objectif de la base de données que pour le clarifier. Voici un exemple d’énoncé
de mission typique :
Le but de la base de données New Starz Talent Agency est de conserver les
données que nous générons et de fournir des informations qui soutiennent les
services d'engagement que nous fournissons à nos clients et les services de
gestion que nous fournissons à nos artistes.
Cet énoncé de mission est bien défini et épuré de déclarations ou de détails
inutiles. C’est une déclaration très générale, comme il se doit. Considérez un
énoncé de mission comme la flamme d’une bougie située au bout d’un tunnel
sombre. La lumière produite par la flamme vous guide jusqu’au bout du tunnel,
à condition de vous concentrer dessus. De la même manière, l'énoncé de
mission vous guide jusqu'à la fin du processus de conception de la base de
données. Guidé par votre énoncé de mission, vous pouvez vous concentrer sur
la conception d’une structure de base de données qui prendra en charge
l’objectif déclaré de la base de données.
Un énoncé de mission bien rédigé ne contient pas d'expressions ou de phrases
décrivant explicitement des tâches spécifiques. Si votre énoncé de mission
contient ce type d’expressions ou de phrases, supprimez-les et réécrivez
l’énoncé. Assurez-vous cependant de garder les phrases supprimées à portée
de main,car vous pourrez peut-être les utiliser pour formuler des objectifs de
mission. (Vous découvrirez les objectifs de la mission dans la section suivante.)
Voici un exemple d'énoncé de mission mal formulé :
L'objectif de la base de données de l'examinateur d'audition du comté de
Whatcom est de garder une trace des demandes d'utilisation des terres, de
conserver des données sur les candidats, de conserver un enregistrement de
toutes les audiences, de conserver un enregistrement de toutes les décisions,
de conserver un enregistrement de tous les appels, de conserver des données
sur les employés du département. et conserver les données pour un usage
bureautique général.
Il devrait être immédiatement évident que certaines choses ne vont pas dans
cet énoncé de mission.
• C'est un peu verbeux. N'oubliez pas que l'énoncé de mission idéal doit être
succinct et précis.
• L’objectif spécifique de la base de données n’est pas clair. Cet énoncé de
mission est rédigé de telle manière qu'il est difficile de déterminer l'objectif
spécifique de la base de données.
• Il décrit plusieurs tâches spécifiques. Deux problèmes se posent lorsqu’un
énoncé de mission est rédigé de cette manière. Premièrement, la
description des tâches ne définit en rien l’objectif spécifique de la base de
données. Deuxièmement, la déclaration semble en quelque sorte
incomplète. Cela soulève la question : « Y a-t-il des tâches que nous avons
oublié d'inclure dans l'énoncé de mission ? »
Vous pouvez corriger cet énoncé de mission en supprimant les références à des
tâches spécifiques (assurez-vous de les enregistrer pour l'étape suivante) et en
réécrivant l'énoncé. Voici un exemple d’une des façons possibles de réécrire cet
énoncé de mission :
L'objectif de la base de données de l'examinateur auditif du comté de
Whatcom est de conserver les données que le bureau de l'examinateur utilise
pour prendre des décisions sur les demandes d'utilisation des terres soumises
par les citoyens du comté de Whatcom.
Remarquez à quel point le but de la base de données est devenu beaucoup
plus clair dans cette version. Notez également que la déclaration est plus
succincte et ne précise pasdonner l'impression d'être incomplet. Vous aurez
toujours une orientation claire pendant le processus de conception de la base
de données lorsque vous formulerez vos énoncés de mission de cette manière.
Rédiger un énoncé de mission
Le processus de création d'un énoncé de mission implique de mener un
entretien avec le propriétaire ou le responsable de l'organisation, de se
renseigner sur l'organisation et de déterminer l'objectif de la nouvelle base de
données.
Vous menez l'entretien pour cette étape avec le propriétaire de l'organisation
ou, s'il le demande, le membre du personnel approprié. L’un ou l’autre pourra
vous aider à définir l’énoncé car chacun a une compréhension globale de
l’organisation et une compréhension générale de la raison pour laquelle la base
de données est nécessaire en premier lieu. En plus de vous aider à définir
l'énoncé de mission, cet entretien vous fournira également de nombreuses
informations sur l'organisation elle-même. Ces informations sont précieuses car
vous pourrez les utiliser plus tard dans le processus de conception.
Encouragez les participants aux entretiens à discuter d'autant de facettes de
l'organisation que possible, même si la discussion porte sur des questions qui
ne sont pas directement pertinentes pour la base de données. L'idée ici est que
vous compreniez ce que fait l'organisation et comment elle fonctionne ; Plus
vous comprendrez une organisation, mieux vous serez préparé à concevoir une
base de données qui répondra à ses besoins. Le besoin général de
l’organisation en matière de base de données vous deviendra clair une fois que
vous aurez une meilleure compréhension de l’organisation elle-même. Vous
pouvez ensuite traduire ce besoin en un énoncé de mission.
Assurez-vous de poser des questions ouvertes pendant l’entretien. Dans
certains cas, une bonne question peut inciter le participant à énoncer le but de
la base de données sans trop d’effort. Par exemple, disons que vous posez la
question suivante :
« Comment décririez-vous l'objectif de votre organisation à un nouveau
client ? »
Il s'agit d'une bonne question ouverte car elle se concentre sur le problème
tout en donnant au participant la liberté de répondre avec ce qu'il considère
comme une réponse complète. De plus, ce type de question générera
généralement une réponse que vous pourrez traduire directement en énoncé
de mission.
Supposons maintenant que vous ayez reçu la réponse suivante :
« Nous fournissons des services de divertissement à notre clientèle pour toutes
les occasions. Nous nous occupons de tous les détails de la mission afin qu’elle
soit aussi sereine que possible pour le client.
Vous pouvez facilement réécrire ce type de réponse et en faire un énoncé de
mission. Lorsqu'une réponse comme celle-ci se compose de deux phrases ou
expressions ou plus, l'une des phrases ou expressions indique généralement
l'objectif de la base de données. Par exemple, vous pouvez utiliser la première
phrase de la réponse précédente pour construire l'énoncé de mission. Voici
l’une des différentes façons dont vous pouvez réécrire la réponse :
Le but de la base de données All-Star Talent est de conserver les données que
nous utilisons pour soutenir les services de divertissement que nous
fournissons à notre clientèle.
Le point le plus important à retenir est que l’énoncé de mission doit avoir un
sens pour vous (le développeur de la base de données) et pour ceux pour qui
vous concevez la base de données. Différents groupes de personnes ont
différentes manières de formuler les déclarations, et la formulation spécifique
de la déclaration peut dépendre grandement de la terminologie spécifique au
secteur. Votre énoncé de mission est complet lorsque vous disposez d'une
phrase qui décrit l'objectif spécifique de la base de données et qui est comprise
et acceptée par toutes les personnes concernées.
Voici quelques exemples de questions que vous pouvez utiliser pour parvenir à
votre énoncé de mission :
Comment décririez-vous l’objectif de votre organisation à un nouveau client ?
Selon vous, quel est le but de votre organisation ?
Quelle est la fonction principale de votre organisation ?
Comment décririez-vous ce que fait votre organisation ?
Comment définiriez-vous la raison la plus importante de l’existence de votre
organisation ?
Quel est l’objectif principal de votre organisation ?
Vous avez peut-être remarqué que certaines de ces questions semblent être les
mêmes, réécrites de manière différente. Gardez à l'esprit que l'observation
concernant la formulation des énoncés de mission s'applique également aux
questions d'entretien que vous utiliserez tout au long du processus de
conception de la base de données. Vous pouvez poser la même question à
plusieurs personnes et recevoir des réponses différentes car chaque personne
peut interpréter le sens de la question un peu différemment. Dans certains cas,
vous pouvez simplement avoir un long regard du type « Je n'ai pas encore bu
mon premier expresso ». Expérimentez différents types de formulation et
déterminez celui qui vous convient le mieux. Votre méthode de construction et
de pose de questions peut être différente de celle de quelqu'un d'autre, mais
cela n'a pas d'importance tant que vous avez une méthode qui vous convient.
EXEMPLE : DÉFINIR UN ÉNONCÉ DE MISSION
Voyons comment vous définiriez un énoncé de mission pour une petite
entreprise connue sous le nom de « Mike's « Bikes ». C'est un petit magasin de
vélos situé dans une zone commerçante de banlieue parmi d'autres petites
entreprises. Avant de pouvoir définir l'énoncé de mission, vous devez mener un
entretien avec le propriétaire, Mike, pour recueillir des informations sur son
entreprise. L’entretien peut ressembler à ceci :
TOI :« Pouvez-vous me dire pourquoi vous pensez avoir besoin d'une base de
données ? »
MIKE :« Je pense que nous avons besoin d’une base de données uniquement
pour suivre tout notre inventaire. J'aimerais également garder une trace de
toutes nos ventes.
TOI :« Je suis sûr que la base de données résoudra ces problèmes. Maintenant,
quelle est, selon vous, la fonction la plus importante de votre entreprise ? »
MIKE :« Fournir à nos clients une large gamme de produits et de services liés au
vélo. Nous avons beaucoup de bons clients. Et les réguliers aussi ! Ils sont
notre plus grand atout.
(L'entretien continue jusqu'à ce que vous ayez fini de poser toutes les
questions de votre liste.)
Après l'entretien, examinez les informations que vous avez recueillies et
définissez l'énoncé de mission. Vous pouvez constater quelques points lors du
dialogue précédent avec Mike, comme le fait qu'il devra être capable de suivre
les produits, les clients et les ventes des clients. Mais le point le plus précieux
est fourni par sa réponse à la deuxième question. Vous pouvez utiliser la
première phrase de cette réponse pour formuler l'énoncé de mission. En tenant
compte de certains des autres points que vous avez identifiés lors de
l'entretien, vous pouvez réécrire la réponse de Mike pour créer l'énoncé de
mission suivant :
Le but de la base de données Mike's Bikes est de conserver les données dont
nous avons besoin pour soutenir notre activité de vente au détail et nos
opérations de service client.
Lorsque vous pensez avoir un bon énoncé de mission, examinez-le avec Mike et
assurez-vous qu'il comprend et accepte l'objectif déclaré de la base de
données. Lorsque vous et Mike êtes satisfaits de l'énoncé de mission, vous
pouvez passer à l'étape suivante, qui consiste à définir les objectifs de la
mission.
Définir les objectifs de la mission
Pour développer l'aperçu du chapitre précédent, les objectifs de mission sont
des énoncés qui représentent les tâches générales prises en charge par les
données conservées dans la base de données. Chaque objectif de mission
représente une tâche unique . Ces objectifs de mission fournissent des
informations que vous pourrezutiliser tout au long du processus de conception
de la base de données. Par exemple, les objectifs de mission vous aident à
définir des structures de table, des spécifications de champ, des
caractéristiques de relation et des vues. Ils vous aident également à établir
l’intégrité des données et à définir des règles métier. Enfin, les objectifs de
mission guident vos efforts de développement et garantissent que la structure
finale de votre base de données prend en charge l'énoncé de mission.
Objectifs de mission bien rédigés
Un objectif de mission bien rédigé est une phrase déclarative qui définit
clairement une tâche générale et est exempte de détails inutiles. Il est exprimé
en termes généraux, succincts, précis et sans ambiguïté. Voici quelques
exemples d’objectifs de mission typiques :
Conserver les informations complètes sur l’adresse du patient.
Gardez une trace de toutes les ventes des clients.
Assurez-vous qu'un représentant de compte n'est pas responsable de plus de
20 comptes à la fois.
Gardez une trace de l’entretien du véhicule.
Produire des annuaires téléphoniques des employés.
Ces objectifs de mission sont bien définis et faciles à comprendre. Chaque
objectif de mission représente une seule tâche générale et définit clairement la
tâche sans détails inutiles. Par exemple, le dernier objectif de mission de la
liste indique que les annuaires des employés doivent être produits, mais il
n'indique pas comment ils doivent être produits. Il n'est pas nécessaire
d'indiquer comment les annuaires des employés seront produits, car cette
question fait partie du processus de développement de l'application. N'oubliez
pas que le but d'un objectif de mission est d'aider à définir diverses structures
au sein de la base de données et d'aider à guider l'orientation globale du
développement de la base de données.
Si un objectif de mission représente plus d’une tâche générale, vous devez le
décomposer en deux ou plusieurs objectifs de mission. Voici un exemple
d’objectif de mission mal rédigé :
Nous devons garder une trace des artistes que nous représentons et du type de
divertissement qu'ils proposent, ainsi que des engagements que nous
réservons pour eux.
Il y a deux problèmes avec cet objectif de mission.
1. Il définit plus qu’une simple tâche générale. Il est clair que deux tâches sont
représentées dans cette déclaration : garder la trace des artistes et garder
la trace des engagements.
2. Il contient des détails inutiles. Il n'est pas nécessaire de faire référence au «
type de divertissement » de l'artiste dans cet objectif de
mission. L'expression type de divertissement fait référence à une
caractéristique distincte d'un artiste ou représente une nouvelle tâche qui
devrait être déclarée comme objectif de mission. S'il fait référence à une
caractéristique distincte d'un artiste, il doit être supprimé de la
déclaration ; sinon, il devrait servir de base à un nouvel objectif de mission.
Vous pouvez corriger cet objectif de mission en supprimant les détails inutiles
et en le réécrivant en deux objectifs de mission. (Conservez les détails que
vous supprimez sur une liste séparée ; ils peuvent être utiles plus tard dans le
processus de conception.) Voici un exemple de révision possible :
Conservez des informations complètes sur les artistes.
Gardez une trace de tous les engagements que nous réservons.
Notez que chaque objectif de mission définit désormais clairement une seule
tâche générale et est également facile à comprendre. De tels objectifs de
mission sont faciles à utiliser lors de la conception de la base de données.
Composition des objectifs de la mission
La définition des objectifs de mission est un processus qui implique de mener
des entretiens avec les utilisateurs et la direction, puis de rédiger des objectifs
de mission appropriés sur la base des informations recueillies lors des
entretiens.
Le but de l'entretien est de déterminer quels types de tâches générales doivent
être prises en charge par les données de la base de données. Vous y parvenez
en posant des questions ouvertes aux participants et en leur permettant de
développer leurs réponses si nécessaire. Les entretiens sur l'énoncé de mission
et les objectifs de mission sont les entretiens les plus faciles que vous menerez
pendant le processus de conception, car tout le monde est généralement
enthousiaste à l'idée de participer. (D'après mon expérience, du moins.) Il est
assez facile d'amener les gens à discuter de ce qu'ils font au quotidien et à
donner leur point de vue sur le fonctionnement de l'organisation. C'est
également l'un des rares entretiens que vous menerez à la fois avec les
utilisateurs et la direction ; il devrait y avoir beaucoup de points communs
entre les deux groupes en raison de la nature générale de l’entretien.
Un point très important à retenir est que les entretiens que vous menez ici
impliquent des discussions très générales. Les discussions sont plus
conceptuelles qu’analytiques ; votre intention ici n'est pas d'analyser la base
de données ou l'application de base de données actuelle, mais d'avoir une idée
globale des tâches générales que la base de données doit prendre en
charge. Gardez à l’esprit que l’un des objectifs de la mission est d’aider à
guider le développement de la structure de la base de données.
Pendant que vous menez l’entretien, assurez-vous, encore une fois, de poser
des questions ouvertes. N'oubliez pas que les questions ouvertes sont
susceptibles de susciter de meilleures réponses de la part de vos
participants. Posez aux participants des questions concernant leur travail
quotidien, le fonctionnement de l'organisation et le type de problèmes qui,
selon eux, doivent être résolus par la base de données. Encouragez-les à
discuter d’autant de facettes de leur travail et de l’organisation que
possible. Pendant qu’ils répondent, essayez d’enregistrer chaque réponse sous
forme de phrase déclarative. Vous constaterez qu'il est beaucoup plus facile
detransformez une phrase en objectif de mission si vous pouvez le faire. Voici
quelques exemples des types de questions que vous pourriez poser lors de
l’entretien :
Quel type de travail effectuez-vous au quotidien ?
Comment définiriez-vous votre description de poste ?
Avec quel type de données travaillez-vous ?
Quels types de rapports générez-vous ?
Quels types de choses suivez-vous ?
Quels types de services votre organisation fournit-elle ?
Comment décririez-vous le type de travail que vous effectuez ?
Toutes ces questions sont susceptibles de susciter une bonne et longue
réponse de la part du participant. L’un des avantages de ces questions est
qu’elles vous offrent la possibilité de poser des questions complémentaires. Par
exemple, supposons que vous ayez reçu la réponse suivante à la dernière
question de la liste :
« Tout d'abord, j'essaie de déterminer le problème général du véhicule. Ensuite,
je remplis un bon de travail et note mon évaluation du problème. Enfin, j'envoie
le véhicule à la prochaine équipe de service disponible.
Vous remarquerez immédiatement que la réponse est longue, ce qui est très
bien. Vous devez également noter que vous pouvez facilement poser une
question complémentaire, telle que la suivante :
« Y a-t-il un type d'information client incorporé dans la procédure que vous
venez de décrire ? »
Même si la réponse est « Non », la question reste suffisamment ouverte pour
que le participant puisse développer davantage sa réponse initiale. Ce type de
question complémentaire pourrait également perturber sa mémoire et l'amener
à relayer d'autres informations, pouvant être liées au sujet de la réponse
initiale.
Voici un ensemble d’objectifs de mission que vous pourriez déduire de la
réponse originale du participant :
Maintenir les informations sur les véhicules des clients.
Gardez une trace des bons de travail.
Maintenir les informations sur nos équipes de service.
Maintenir les informations sur nos mécaniciens.
Maintenir les informations sur nos clients.
Trois de ces objectifs découlent directement de la réponse. Ils sont faciles à
déterminer car leurs sujets sont explicitement indiqués dans la réponse elle-
même. Les deux derniers objectifs de la mission découlent
d' hypothèses basées sur la réponse. Il s'agit d'une technique (que vous pouvez
considérer comme « lire entre les lignes ») que les concepteurs de bases de
données expérimentés utilisent assez souvent, et c'est une technique que vous
devez utiliser lorsque vous définissez les objectifs de la mission. La technique
repose sur votre capacité à déterminer quelles informations une réponse
transmet implicitement, ainsi que ce qu'elle transmet explicitement. Alors
faites attention. Écoutez les implications. Sans de bonnes hypothèses, votre
ensemble global d’objectifs de mission pourrait être incomplet.
Examinez la réponse suivante et déterminez si des informations implicites sont
cachées dans la réponse elle-même :
« Je réserve des animations pour notre clientèle, composée de clients
commerciaux et non commerciaux. Nos clients non commerciaux sont
généralement des particuliers ou de petits groupes qui réservent des mariages,
des anniversaires, etc. Nos clients commerciaux, quant à eux, sont constitués
d'entreprises telles que des boîtes de nuit et des entreprises. Les boîtes de nuit
réservent des divertissements sur des créneaux de six semaines ; les
entreprises réservent des choses telles que des soirées d'entreprise, des
déploiements de produits et divers types de fonctions promotionnelles.
Outre les informations explicites véhiculées par cette réponse, il existe au
moins deux informations implicites que vous pouvez découvrir danscette
réponse. La première information implicite concerne la nécessité de conserver
des informations sur les artistes réservés pour les engagements. Un agent doit
connaître des éléments tels que le nom de l'artiste, son numéro de téléphone,
son adresse postale, sa disponibilité et s'il se rendra à l'extérieur de la ville. La
deuxième information implicite concerne la nécessité de conserver des
informations sur les engagements eux-mêmes. Un agent doit connaître tous les
détails concernant la mission pour garantir le bon déroulement de la mission.
Maintenant que vous savez à quel point il est important de rechercher des
informations implicites, gardez-les à l'esprit lorsque vous définissez les
objectifs de votre mission.
Voici l'essentiel concernant les objectifs de mission : assurez-vous que les
objectifs de votre mission sont à la fois correctement définis et bien définis,
que chaque objectif a du sens pour vous et pour ceux pour qui vous concevez
la base de données, et que vous recherchez toute information implicite cachée
dans la réponse de chaque participant.
EXEMPLE : DÉFINIR LES OBJECTIFS DE LA MISSION
Travaillons à nouveau avec Mike et interviewons-le afin qu'il puisse vous aider à
définir les objectifs de mission de sa base de données. Voici une transcription
partielle de l'entretien avec Mike. Encore une fois, c'est vous qui menez
l'interview.
TOI :« Pouvez-vous me donner une idée des éléments que vous aimeriez suivre
dans la base de données ? »
MIKE :« Oh, bien sûr, c'est assez facile. Je veux garder une trace de notre
inventaire, de nos clients et de nos ventes.
TOI :« Pensez-vous à autre chose qui soit lié à ces sujets ?
MIKE _"Eh bien, je suppose que si nous voulons suivre notre inventaire, nous
devrions savoir qui sont nos fournisseurs."
TOI :« Qu'en est-il des commerciaux impliqués dans chaque vente ? »
MIKE :« Oh oui, nous devrions absolument conserver des informations sur nos
employés. Au moins, c'est une bonne idée de le faire du point de vue des
ressources humaines. Du moins, c'est ce que me dit ma femme !
(L'entretien continue jusqu'à ce que vous ayez fini de poser toutes les
questions de sa liste.)
Une fois les entretiens terminés, examinez toutes les informations que vous
avez recueillies et définissez les objectifs de mission appropriés. Assurez-vous
de garder les résultats à l’esprit lorsque vous les définissez. Voici quelques
objectifs de mission possibles pour la base de données Mike's Bikes.
Maintenir des informations complètes sur l'inventaire.
Maintenir des informations client complètes.
Suivez toutes les ventes des clients.
Maintenir des informations complètes sur les fournisseurs.
Conserver des informations complètes sur les employés.
Après avoir dressé une liste d'objectifs de mission, examinez-les avec Mike et
son équipe. Lorsqu'ils sont convaincus qu'ils comprennent les objectifs de la
mission et que la liste est relativement complète, enregistrez-la dans un
document de votre programme d'application préféré et enregistrez-la pour une
utilisation ultérieure.
Résumé
Ce chapitre s'est ouvert sur une discussion du processus d'entretien. Vous avez
appris pourquoi les entretiens constituent une partie importante du processus
de conception de bases de données et pourquoi il est important d'apprendre à
mener correctement un entretien. Vous connaissez désormais la différence
entre une question ouverte et une question fermée , ainsi que quand utiliser
chaque type de question. Nous avons terminé cette discussion en examinant
un ensemble de directives d'entretien,et vous avez appris que vous devez les
utiliser pour vous aider à garantir que les entretiens soient productifs et
réussis.
L’ énoncé de mission était notre prochain sujet de discussion. Nous avons
développé les informations du chapitre 4 , « Aperçu conceptuel », en
examinant comment l'énoncé de mission énonce l'objectif spécifique de la base
de données. Vous savez maintenant que le processus implique de mener des
entretiens et de se renseigner sur l'organisation, puis de formuler l'énoncé de
mission à partir des informations que vous avez recueillies au cours de ces
étapes. Nous avons défini les caractéristiques d'un bon énoncé de mission et
vous avez appris qu'un énoncé de mission bien défini établit une orientation
claire pour vos efforts de conception.
Ensuite, nous avons discuté des objectifs de la mission et nous avons encore
une fois développé l’aperçu du chapitre 4 . Comme vous le savez maintenant,
les objectifs de mission représentent les tâches effectuées par rapport aux
données de la base de données, et vous les définissez après l'énoncé de
mission. Nous avons ensuite exploré comment définir un objectif de
mission. Ici, vous avez appris que vous menez des entretiens avec les
utilisateurs et la direction et que les informations que vous recueillez à partir
de ces entretiens constituent la base de chaque objectif de mission. Nous
avons également discuté des caractéristiques d'un objectif de mission bien
rédigé et vous avez appris qu'un objectif de mission clairement défini vous
aidera à définir diverses structures au sein de la base de données.
Questions de révision
1. Pourquoi les entretiens sont-ils importants ?
2. Quel problème peut survenir lorsque vous menez un entretien avec un grand
nombre de personnes ?
3. Quelle est la principale raison pour laquelle des entretiens séparés sont
menés avec les utilisateurs et la direction ?
4. Vrai ou faux : vous utiliserez généralement des questions fermées lors de
vos entretiens.
5. Quel genre de réponses devriez-vous essayer de susciter de la part des
participants à l’entretien ?
6. Quelle est la ligne directrice la plus importante pour chaque entretien que
vous menez ?
7. Qu'est-ce qu'un énoncé de mission ?
8. Énoncez deux caractéristiques d’un énoncé de mission bien rédigé.
9. Vrai ou faux : Vous n'avez pas besoin de vous renseigner sur l'organisation
pour rédiger un énoncé de mission.
10. Quand votre énoncé de mission est-il terminé ?
11. Qu'est-ce qu'un objectif de mission ?
12. Énoncez deux caractéristiques d’un objectif de mission bien rédigé.
13. Vrai ou faux : vous devez interroger les utilisateurs et la direction pour vous
aider à définir les objectifs de la mission.
14. Quel est le lien entre le travail quotidien du personnel et les objectifs de la
mission ?
15. Vrai ou faux : Un objectif de mission peut décrire plusieurs tâches.
16. Énoncez deux façons dont un objectif de mission peut être dérivé d’une
réponse.
17. Quand un objectif de mission est-il atteint ?
t
adqP
r
bouae
lserc
euah
e
m
dèr
etc
srh
e
m
s
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
5. Démarrage du processus
6. Analyse de la base de données actuelle
7. Établir des structures de table
8h 33min restantes
Analyse de la base de données actuelle
Pour voir ce qui est devant son nez, il faut une lutte constante.
—G EORGE O RWELL
DEVANT VOTRE NEZ _ __ __
Sujets abordés dans ce chapitre
Apprendre à connaître la base de données actuelle
Réalisation de l'analyse
Examiner la manière dont les données sont collectées
Examiner la façon dont les informations sont présentées
Mener des entretiens
Interviewer les utilisateurs
Gestion des entretiens
Compilation d'une liste complète de champs
Exemple : Analyse de la base de données actuelle
Résumé
Questions de révision
Apprendre à connaître la base de données actuelle
Pour déterminer où vous devriez aller, vous devez d’abord comprendre où vous
vous trouvez .
Cette maxime définit toute la philosophie derrière cette phase du processus de
conception de base de données. Vous devez consacrer du temps à bien
comprendre la base de données de votre organisation afin de pouvoir
• Déterminer si la base de données prend en charge les besoins actuels en
informations de l'organisation
• Découvrez les déficiences structurelles existantes
• Déterminer comment la base de données doit évoluer afin qu'elle réponde
aux futurs besoins d'information de l'organisation.
Vous pouvez utiliser la base de données existante comme ressource pour
développer une nouvelle base de données. Cependant, vous devez
soigneusement évaluer quels aspects de la base de données actuelle restent
utiles et quels aspects doivent être abandonnés. Vous pouvez porter ces
jugements en répondant aux questions suivantes :
Quels types de données l’organisation utilise-t-elle ?
Comment l’organisation utilise-t-elle ces données ?
Comment l’organisation gère-t-elle et conserve-t-elle ces données ?
Les réponses à ces questions vous fournissent des informations vitales que
vous pouvez utiliser pour concevoir une base de données la mieux adaptée aux
besoins de votre organisation.
Vous pouvez mieux répondre à ces questions en analysant la base de données
existante de votre organisation. Il est très probable que l'organisation utilise un
certain type de base de données, et elle peut probablement être associée à
l'une des catégories suivantes.
• Bases de données papier . Également appelés systèmes de fichiers , ils se
composent généralement de divers formulaires et de documents manuscrits
ou imprimés stockés dans des dossiers ou reliés dans des cahiers. Les
dossiers et cahiers sont identifiés par un système de codage (par exemple,
des numéros uniques ou des onglets colorés) et stockés dans des
classeurs. Ces armoires sont susceptibles d'être identifiées par un système
de codageégalement, en fonction de la taille de la base de données. (Vous
seriez surpris du nombre d'entreprises qui disposent encore d'une forme ou
d'une autre de système papier.)
• Les bases de données existantes existent et sont utilisées depuis plusieurs
années et se composent de divers types de structures de données et
d'interfaces utilisateur qui résident toutes sur des ordinateurs centraux, des
serveurs réseau, des ordinateurs personnels ou, plus récemment, sur le
cloud. La capacité, la fonctionnalité et l'efficacité des structures et des
écrans dépendent largement des compétences et des connaissances des
développeurs, des outils de développement d'applications et du logiciel de
gestion de bases de données utilisé pour les créer.
• Les bases de connaissances humaines (vaguement définies) sont basées sur
la mémoire d'un ou plusieurs employés au sein d'une organisation. Ces
personnes possèdent une quantité spécifique de connaissances concernant
un aspect donné de l'organisation (par exemple, des informations sur les
clients ou des détails sur les produits) et elles jouent un rôle crucial dans la
conduite des activités de l'organisation.
Les objectifs de votre analyse sont de déterminer les types de données que
l'organisation utilise, la manière dont l'organisation gère et conserve ces
données, et la manière dont l'organisation visualise et utilise les données. Vous
pouvez réduire le temps nécessaire à la définition des structures préliminaires
de champs et de tables pour la nouvelle base de données si vous effectuez
cette enquête correctement.
Au cours de l'analyse, vous examinez les différentes manières dont
l'organisation collecte et présente ses données, et vous menez une série
d'entretiens avec les utilisateurs et la direction. Vous utilisez ensuite les
informations que vous avez collectées pour définir une liste de champs
préliminaire et pour déterminer les tables qui doivent être incluses dans la
structure de base de données initiale. Si votre analyse révèle que la base de
données actuelle est mal conçue, vous pouvez prendre des précautions pour
vous assurer de ne pas commettre les mêmes erreurs dans la nouvelle base de
données. Malgré les défauts de la base de données actuelle, elle peut toujours
vous aider à identifier un certain nombre de champs et de tables que vous
devriez inclure dans la nouvelle base de données.
Il y a une règle que vous devez avant tout garder à l’esprit lorsque vous
analysez la base de données actuelle :
N'adoptez pas la structure de base de données actuelle comme base pour la
nouvelle structure de base de données.
Suivre cette règle vous aidera à éviter les erreurs inutiles et à maximiser vos
efforts de conception.
De temps en temps, il y a un moment au cours de l'analyse où un développeur
de base de données novice (et parfois expérimenté) s'arrêtera et pensera : «
Cette base de données n'a pas l'air trop mauvaise. Terminons ici l'analyse et
utilisons cette base de données comme base pour la nouvelle. C'est une idée
particulièrement mauvaise car tous les problèmes cachés dans la structure
actuelle de la base de données seront transférés dans la nouvelle base de
données. Ces types de problèmes incluent des structures de table maladroites,
des relations mal définies et des spécifications de champ incohérentes ; ils
feront invariablement surface plus tard et aux moments les moins
opportuns. Par conséquent, vous devez faire de votre mieux pour éviter cette
situation périlleuse en suivant la règle susmentionnée. N'oubliez pas qu'il est
toujours préférable de définir explicitement une nouvelle structure de base de
données plutôt que de copier une structure existante. Après tout, si l’ancienne
base de données n’avait pas de problèmes, vous n’en créeriez pas une
nouvelle.
Vous analyserez généralement les bases de données papier et les bases de
données existantes au cours de cette partie du processus de conception. De
nombreuses organisations utilisent les deux types de bases de données dans
une certaine mesure et vous effectuez le même processus d'analyse de base
sur chacune d'elles. Il existe bien sûr des différences mineures dans la manière
dont vous analysez une base de données papier et une base de données
existante, mais les différences ont plus à voir avec les bases de données elles-
mêmes qu'avec le processus d'analyse global. Cependant, vous n'avez pas
besoin de vous préoccuper de ces différences, car je les ai intégrées de
manière transparente dans le processus d'analyse présenté dans ce livre.
Bases de données papier
Une base de données sur papier intègre des données qui sont littéralement
collectées, stockées et conservées sur papier, et vous trouverez ces éléments
dans une variété de formes, de tailles et de configurations. Certains des
formats les plus courants incluent des rapports manuscrits ou imprimés et
divers types de formulaires préimprimés. Quiconque a déjà travaillé dans un
bureau pour une entreprise, une organisation ou une agence gouvernementale
connaît très bien ce type de base de données.
Vous constaterez que l’analyse d’une base de données papier peut être une
tâche ardue. L’un de vos problèmes les plus immédiats est de trouver
quelqu’un qui comprend parfaitement le fonctionnement de la base de
données afin que vous puissiez en apprendre davantage sur son utilisation et
son objectif. La base de données elle-même pose plusieurs problèmes,
notamment en termes de manière dont les données sont collectées et
gérées. Ce type de base de données contient généralement des données
incohérentes, des données erronées, des données en double, des données
redondantes, des entrées incomplètes et des données anciennes qui auraient
dû être supprimées de la base de données depuis longtemps. De toute
évidence, la seule raison pour laquelle vous analyserez ce type de base de
données est d’identifier les éléments que vous pourriez incorporer dans la
nouvelle base de données. Par exemple, vous pouvez extraire des éléments de
données individuels de différentes sections d'un formulaire de l'ancienne base
de données et les transformer en champs dans la nouvelle base de données.
Bases de données héritées
Une base de données existante est une base de données qui existe et est
utilisée depuis cinq ans ou plus. Il y a plusieurs raisons pour lesquelles
« héritage » est utilisé dans le nom de ce type de base de
données. Premièrement, cela suggère que la base de données existe depuis
longtemps, peut-être plus longtemps que quiconque ne s’en souvient
clairement. Deuxièmement, le mot héritage peut signifier que la personne qui a
initialement créé la base de données a changé de responsabilités au sein de
l'organisation ou travaille pour quelqu'un d'autre et, par conséquent, la base de
données est devenue son héritage pour
l'organisation.organisation. Troisièmement, le terme implique la possibilité
inquiétante qu’aucun individu ne comprenne complètement la structure de la
base de données ou la manière dont elle est implémentée dans le programme
d’application du SGBDR.
Même si une base de données existante est basée sur le modèle relationnel, il
n'y a aucune garantie particulière que la structure soit
solide. Malheureusement, il existe de nombreux cas dans lesquels les
personnes qui ont créé ces bases de données n'ont pas complètement compris
le concept de base de données relationnelle. (Après avoir lu ce livre, vous
n'appartiendrez plus à ce groupe.) Le résultat est que de nombreuses bases de
données plus anciennes ont des structures inappropriées ou inefficaces.
De nombreuses bases de données existantes sur PC sont également conçues
de manière incorrecte ou inefficace. Un certain nombre d'entre eux ont été
développés et mis en œuvre à l'origine par des personnes qui n'avaient pas
beaucoup d'expérience en conception de bases de données, ou qui étaient des
malchanceux qui se sont vu confier la tâche de créer une base de données
pour l'organisation et qui disposaient de peu de temps pour le faire. (Ils avaient
leur propre travail normal à accomplir.) Cela signifie qu’eux non plus ne
savaient probablement pas comment profiter des avantages offerts par le
modèle relationnel. Deux caractéristiques couramment associées à ces types
de bases de données sont les champs en double et les données
redondantes. Vous apprendrez plus tard que cela peut entraîner de graves
problèmes d’intégrité des données.
L'analyse d'une base de données existante est un peu plus facile que l'analyse
d'une base de données sur papier, car une base de données existante est
généralement plus organisée et structurée qu'une base de données sur papier,
les structures de la base de données sont explicitement définies et il existe
généralement un programme d'application que les utilisateurs utilisent. pour
interagir avec les données de la base de données. (Le programme d'application
vous est précieux pendant le processus d'analyse car il peut révéler de
nombreuses informations sur les structures de données et les tâches
effectuées sur les données de la base de données existante.) Le temps qu'il
vous faudra pour effectuer une analyse appropriée dépendra dans une certaine
mesure sur le type de base de données, le SGBDR utilisé pour implémenter la
base de données existante et le programme d'application.
Le point clé à retenir lorsque vous analysez une base de données papier ou
existante est que vous devez suivre le processus avec patience et méthode
afin de garantir une analyse approfondie et précise.
Réalisation de l'analyse
Le processus d'analyse comporte trois étapes : examiner la manière dont les
données sont collectées, examiner la manière dont les informations sont
présentées et mener des entretiens avec les utilisateurs et la direction.
Vous devrez parler à diverses personnes de l’organisation au cours des deux
premières étapes de ce processus. Assurez-vous que vos conversations portent
uniquement sur les avis disponibles. Vous aurez l’occasion de leur poser
d’autres questions approfondies plus tard. Gardez à l’esprit que ces bilans font
partie intégrante de votre préparation aux entretiens qui suivront. En effet, ces
évaluations vous aident à déterminer les types de questions que vous devrez
poser lors des entretiens ultérieurs.
Examiner la manière dont les données sont collectées
La première étape du processus d’analyse consiste à examiner la manière dont
les données sont collectées. Cela inclut tout, des fiches et des listes
manuscrites ou imprimées aux formulaires préimprimés et aux écrans de saisie
de données (tels que ceux utilisés dans un programme de base de données ou
un navigateur Web).
Commencez cette étape en examinant tous les éléments papier. Découvrez
quels types de documents l'organisation utilise pour enregistrer les données,
puis rassemblez un seul échantillon de chacun. Assemblez ces échantillons et
stockez-les dans un dossier pour une utilisation ultérieure dans le processus de
conception. Par exemple, supposons que l'organisation collecte les données
des fournisseurs sur des feuilles de papier dans un classeur. Parcourez les
premières pages du classeur jusqu'à ce que vous en trouviez une avec une
entrée aussi complète que possible. Quand tu as trouvé unéchantillon
approprié, faites-en une copie et enregistrez-la dans le dossier. Suivez ce
processus pour chaque type d’élément utilisé. La figure 6.1 montre deux
exemples de la manière dont l'organisation peut utiliser des éléments papier
pour collecter des données.
Figure 6.1 Exemples d'éléments papier utilisés pour collecter des données.
Ensuite, passez en revue tous les programmes informatiques que l'organisation
utilise pour collecter des données. L'objectif ici est de rassembler un ensemble
d'exemples de captures d'écran qui représentent la manière dont l'organisation
utilise ces programmes pour travailler avec les données. Un mot
d'avertissement : de nombreuses personnes ont découvert des moyens
uniques et ingénieux d'utiliser des programmes courants, tels que des
traitements de texte et des feuilles de calcul, pour collecter et gérer des
données. Assurez-vous de parler à quelqu'un qui connaît la façon dont les
ordinateurs sont utilisés au sein de l'organisation et déterminez quels
programmes l'organisation utilise pour gérer ses données.
Lorsque vous examinez chaque programme, recherchez un écran qui
représente le mieux la manière dont le programme collecte les données. Vous
recherchez des écrans similaires à ceux de la figure 6.2 .
Figure 6.2 Un écran de base de données typique et un écran de feuille de
calcul typique.
Le premier écran est typique de ceux que vous trouverez dans un programme
de base de données, et le deuxième écran est typique de ceux que vous
trouverez dans un tableur. Lorsque vous avez trouvé un exemple approprié,
créez une capture d'écran à l'aide de votre application de capture d'écran
préférée, collez-la dans un document de votre programme de traitement de
texte, indiquez le nom du programme source et la date à laquelle vous avez
créé la capture d'écran, puis imprimez le document. Continuez à revoir le
programme et répétez cette procédure si nécessaire. Répétez ensuite tout le
processus pour chaque programme. Après avoir imprimé des copies de toutes
les captures d'écran appropriées, assemblez-les et stockez-les dans un dossier
pour les utiliser ultérieurement dans le processus de conception.
Examinez maintenant les pages Web que l'organisation utilise pour collecter
des données via Internet. Les pages qui vous intéressent ressembleront
beaucoup aux formulaires de saisie de données que vous trouverez dans un
programme d'application de base de données. La figure 6.3 montre un exemple
d'une telle page.
Figure 6.3 Un exemple d'écran typique de saisie de données en ligne.
Vous pouvez suivre ici la même procédure d’examen que celle que vous avez
utilisée avec les programmes de candidature. Prenez une capture d'écran d'une
page Web donnée, collez-la dans un document de traitement de texte, indiquez
l'URL, le nom du programme et la date de la capture d'écran, puis imprimez-
la. Continuez à consulter les pages Web et répétez cette procédure si
nécessaire. Après avoir imprimé des copies de toutes les captures d'écran
appropriées, assemblez-les et stockez-les dans un dossier pour les utiliser
ultérieurement dans le processus de conception.
Assurez-vous de marquer clairement les dossiers contenant les échantillons
que vous avez collectés lors de votre analyse. Le peu de temps que vous
investissez pour organiser vos matériaux rapporte gros lorsque vous utilisez
ces matériaux pendant une phase complexe du processus de conception.
Examiner la façon dont les informations sont présentées
La deuxième étape du processus d'analyse consiste à examiner les différentes
manières dont l'organisation présente ses données sous forme
d'informations. Au cours de ce processus, vous examinerez des éléments tels
que des documents manuscrits, des impressions d'ordinateur, des
présentations sur écran et des pages Web.
Voici trois des méthodes de présentation les plus populaires que vous
rencontrerez au cours de ce processus.
1. Rapports : un rapport est tout document (dactylographié, imprimé ou
généré par ordinateur) utilisé pour organiser et présenter des données de
manière à ce qu'elles soient significatives pour la ou les personnes qui le
consultent. Bien que l'utilisation d'un traitement de texte, d'une feuille de
calcul ou d'un autre logiciel soit la méthode standard pour générer un
rapport, vous trouverez toujours certains rapports rédigés à la main.
2. Présentations sur écran (également appelées diaporamas) : ce type de
présentation intègre une série de diapositives qui abordent divers sujets de
manière organisée. Il est généralement créé avec un programme tel que
Microsoft PowerPoint, Google Slides ou Apple Keynote, et exécuté sur un
ordinateur.
3. Pages Web : de nombreuses organisations disposent d'une grande quantité
d'informations disponibles via des pages sur leurs sites Web. Une page Web
est utilisée à peu près de la même manière qu’un rapport et, en réalité, il ne
s’agit en réalité que d’un type de rapport différent.
Commencez cette étape en identifiant et en examinant chaque rapport que
l'organisation génère à partir de la base de données, que l'organisation
produise le rapport manuellement ou avec un programme
d'application. Rassemblez des échantillons de rapports et rassemblez-les dans
un dossier comme vous l'avez fait avec les éléments de l'étape
précédente. Dans l'ensemble, cette tâche est plus facile à réaliser à cette étape
qu'à l'étape précédente, car les membres de l'organisation connaissent
généralement les rapports qu'ils utilisent. Des exemplaires des rapports sont
généralement facilement disponibles et la plupart des rapports peuvent être
réimprimés si nécessaire. La figure 6.4 montre un exemple de rapport rédigé à
la main et de rapport généré à partir d'un programme de traitement de texte.
Figure 6.4 Un rapport manuscrit et un rapport généré par ordinateur.
Ensuite, examinez les présentations d’écran qui utilisent ou intègrent les
données de la base de données. Il n'est pas nécessaire de
revoir chaque présentation, mais vous devez examiner celles qui ont un impact
direct sur les données de la base de données. Par exemple, vous n'avez pas
besoin de revoir une présentation sur le nouveau produit de l'organisation si
elle ne tire aucune donnée de la base de données. D’un autre côté, une
présentation sur les statistiques de ventes qui intègre les données de la base
de données est une présentation que vous devez examiner.
Après avoir identifié les présentations que vous devez réviser, parcourez-les
attentivement et faites des captures d'écran des diapositives qui utilisent ou
intègrent des données de la base de données. Copiez les captures d'écran dans
un document de traitement de texte, imprimez le document, puis stockez-le
dans un dossier pour une utilisation ultérieure. (Écrivez le nom de la
présentation,son nom de fichier physique et la date à laquelle vous avez
capturé les captures d'écran sur le dossier ; vous devrez peut-être y revenir
plus tard.) Suivez cette procédure séparément pour chaque présentation. Vous
voulez vous assurer de ne pas combiner accidentellement deux ou plusieurs
présentations, car cette erreur conduirait inévitablement à une confusion
massive et entraînerait un énorme gâchis !
La figure 6.5 montre un exemple du type de diapositives que vous examinerez
au cours de cette révision.
Figure 6.5 Exemples de diapositives de présentation sur écran.
Réviser une présentation est difficile dans certains cas, et décider si vous devez
inclure une diapositive donnée comme exemple est une décision purement
discrétionnaire. Par conséquent, travaillez en étroite collaboration avec la
personne la plus familiarisée avec la présentation pour vous assurer que vous
incluez toutes les diapositives appropriées dans les exemples.
Enfin, examinez les pages Web qui tirent des informations directement de la
base de données. Effectuez cette révision de la même manière que la révision
des présentations à l’écran. Comme pour l’examen précédent, vous devez
examiner les pages Web qui ont un impact direct sur les données de la base de
données. Par exemple, vous n'avez pas besoin de consulter une page Web qui
fournit un historique de votre organisation, mais vous devez consulter une
page Web qui affiche des informations sur les employés régionaux.
Après avoir identifié les pages Web que vous devez consulter, prenez une
capture d'écran de chaque page. Copiez les captures d'écran dans un
traitement de textedocument, imprimez le document, puis stockez-le dans un
dossier pour une utilisation ultérieure. (Écrivez l'adresse URL et la date actuelle
sous chaque capture d'écran du document ; vous devrez peut-être vous référer
à nouveau à une page Web particulière ultérieurement.)
La figure 6.6 montre un exemple de page Web que vous examineriez au cours
de cet examen.
Figure 6.6 Exemple de page Web présentant des informations provenant
d'une base de données.
Essayez de travailler avec la ou les personnes qui ont créé et développé le site
Web de l'organisation. Ils peuvent vous faire gagner beaucoup de temps en
vous dirigeant vers les pages exactes que vous devez examiner pour cet
examen.
Mener des entretiens
Maintenant que vous avez une idée générale de la manière dont l'organisation
collecte et présente ses données, il est temps d'interroger les utilisateurs et la
direction pour déterminer comment l'organisation utilise ses données. Les
entretiens sont utiles dans la phase d’analyse pour ces raisons :
• Ils fournissent des détails sur les échantillons que vous avez assemblés lors
des examens précédents. Les discussions que vous avez eues avec les
utilisateurs et la direction lors des évaluations précédentes visaient
uniquement àidentifier (en termes généraux) la manière dont l’organisation
collecte et présente les données qu’elle utilise. Au cours de cette phase,
cependant, vous poserez des questions spécifiques sur les échantillons que
vous avez rassemblés lors de ces examens. Cela vous permettra de clarifier
les aspects d'un échantillon spécifique que vous considérez comme vagues
ou ambigus.
• Ils renseignent sur la manière dont l’organisation utilise ses données. Ces
entretiens vous fourniront des informations sur la manière dont les
utilisateurs travaillent quotidiennement avec les données de l'organisation
et sur la manière dont la direction utilise les informations basées sur ces
données pour gérer les affaires de l'organisation.
• Ils jouent un rôle déterminant dans la définition des structures préliminaires
des champs et des tables. Les réponses que vous recevrez des utilisateurs
et de la direction au cours de cette série d'entretiens vous aideront à
identifier les structures initiales de champs et de tables pour la base de
données.
• Ils aident à définir les futurs besoins d’information. Les discussions que vous
aurez avec les utilisateurs et la direction concernant la croissance future de
l'organisation révéleront souvent de nouveaux besoins en informations qui
doivent être pris en charge par la base de données.
Je ne saurais trop insister, et vous ne devez pas sous-estimer, l'impact des
entretiens sur la structure finale de la base de données et leur importance pour
la réussite du processus de conception de la base de données. Seuls des
entretiens complets vous aideront à garantir que la base de données que vous
concevez répond aux besoins d'information de votre organisation.
Techniques d'entretien de base
Vous devez d’abord apprendre quelques techniques d’entretien de base afin de
mener des entretiens réussis. J'aborde ce problème ici en vous fournissant un
ensemble de techniques fondamentales que vous pouvez utiliser pour mener
chaque entretien dans le cadre du processus de conception de base de
données. Ces techniques sont relativement faciles à apprendre et à appliquer,
et elles vous permettront d'obtenir les informations dont vous avez besoin pour
la tâche.
Vous exécuterez probablement ces techniques de manière stricte et mécanique
au fur et à mesure que vous commencez tout juste à les apprendre, mais vous
les appliquerez de manière plus instinctive et intuitive au fur et à mesure que
vous mènerez d'autres entretiens et acquerrez de l'expérience
supplémentaire. Mener un entretien est une compétence et, comme pour toute
autre compétence, vous atteindrez différents degrés d’expertise avec de la
patience et de la pratique.
L'importance des questions
Apprendre à poser une question est une compétence précieuse que vous
devrez apprendre et développer si vous voulez réussir à concevoir des bases
de données. C'est ce que vous utiliserez pour comprendre le fonctionnement
de votre entreprise (ou celle de votre client) et vous permettra de rassembler
les informations dont vous avez besoin pour développer les différentes
structures de la base de données. Et, comme vous l’avez peut-être déjà deviné,
c’est précisément la compétence requise pour mener les entretiens tout au
long de ce processus de conception. Je sais que cela peut sembler évident,
mais je ne peux tout simplement pas surestimer l'importance de cette
compétence.
Le processus d'entrevue
Vous utilisez des questions ouvertes et fermées tout au long d'un entretien, en
alternant entre chaque type au fur et à mesure que l'entretien progresse. Les
questions ouvertes sont de nature plus générale et vous permettent de vous
concentrer sur des sujets spécifiques, tandis que les questions fermées sont
plus spécifiques et vous permettent de vous concentrer sur des détails
particuliers d'un sujet donné. Par exemple, commencez l'entretien par quelques
questions ouvertes pour établir des sujets généraux de discussion, puis
sélectionnez un sujet et posez des questions plus spécifiques (fermées)
relatives à ce sujet. Vous pouvez commencer par poser à l’un des participants à
l’entretien une question ouverte telle que celle-ci :
« Comment définiriez-vous le travail que vous effectuez au quotidien ?
La plupart des participants utiliseront trois phrases ou plus pour répondre à ce
type de question. Il est parfaitement acceptable qu'un participant vous
fournisseavec une réponse longue et descriptive, car vous pouvez travailler
avec ce type de réponse plus facilement qu'avec une réponse laconique. Pour
illustrer ce point, supposons que le participant réponde à votre question de
cette manière :
« En tant que chargé de comptes, je suis responsable de dix clients. Chacun de
mes clients prend rendez-vous pour venir au showroom afin de voir la
marchandise que nous avons à offrir pour la saison en cours. Une partie de
mon travail consiste à répondre à toutes leurs questions sur nos produits et à
faire des recommandations concernant les articles les plus populaires. Une fois
qu'ils ont pris une décision sur la marchandise qu'ils souhaitent acheter, je
rédige une commande client pour le client. Ensuite, je remets la commande à
mon assistant, qui remplit rapidement la commande et l'envoie au client.
C'est une très bonne réponse. Le participant a non seulement répondu à votre
question, mais vous a également donné l'opportunité de commencer à poser
des questions de suivi. Sa réponse suggère également plusieurs sujets que
vous pourrez aborder plus tard dans l’entretien.
Note
Une réponse laconique, telle que « Je remplis les commandes des clients »,
vous fournit peu d'informations, vous devrez donc travailler un peu plus dur
avec le participant pour avoir une idée de ce qu'implique ce processus. Les
réponses laconiques indiquent généralement que le participant est simplement
nerveux ou mal à l'aise. Dans ce cas, vous pourriez le mettre à l'aise en
discutant quelques instants d'un sujet sans rapport ou en lui permettant de
choisir un sujet plus familier ou plus confortable comme point de départ.
Identifier les sujets
Lorsque vous posez chaque question ouverte, identifiez les sujets suggérés
dans la réponse à la question. Vous pouvez identifier les sujets en écoutant
les noms dans les phrases de la réponse. Les sujets sont toujours représentés
par des noms et identifient une personne, un lieu, une chose ou un événement
(quelque chose qui se produit à un moment donné). LàCertains noms,
cependant, représentent une caractéristique d'une personne, d'un lieu, d'une
chose ou d'un événement ; vous n'avez pas besoin de vous en préoccuper pour
l'instant. Par conséquent, assurez-vous d’écouter et de noter uniquement les
noms qui représentent spécifiquement une personne, un lieu, une chose ou un
événement. (Notez qu'il n'est pas nécessaire de noter plus d'une occurrence
d'un nom donné.) Vous pouvez vous assurer de tenir compte de chaque sujet
dont vous devez discuter en répertoriant les noms au fur et à mesure que vous
les identifiez. Dans l'exemple suivant, j'ai souligné les noms que vous pourriez
retenir en écoutant la réponse :
« En tant que représentant de compte , je suis responsable de
dix clients . Chacun de mes clients prend rendez-vous pour venir
au showroom afin de voir la marchandise que nous avons à offrir pour
la saison en cours . Une partie de mon travail consiste à répondre à toutes
leurs questions sur nos produits et à faire des recommandations concernant
les articles les plus populaires . Une fois qu'ils ont pris une décision sur la
marchandise qu'ils souhaitent acheter, je rédige une commande client pour le
client. Ensuite, je remets la commande à mon assistant , qui remplit
rapidement la commande et l'envoie au client.
Les noms que vous avez identifiés et répertoriés sur votre feuille de papier
deviennent votre liste de sujets. Vous ajouterez d’autres sujets à la liste au fur
et à mesure que vous continuerez à travailler sur le processus de
conception. Compilez cette liste avec soin et méthodique, car vous l'utiliserez
pour générer d'autres discussions au fur et à mesure de la progression de
l'entretien et pour vous aider à définir des tableaux plus tard dans le processus
de conception.
Voici les sujets (classés par ordre alphabétique) qui sont représentés dans la
réponse précédente :
Représentant de compteEmploi
Rendez-vousMarchandise
AssistantCommande client
ClientèleSaison
ArticlesSalle d'exposition
Vous pouvez désormais utiliser cette liste comme base pour d’autres questions
lors de l’entretien.
Note
Dans le reste du livre, je fais référence à l'ensemble de cette procédure sous le
nom de Technique d'identification du sujet .
Vérifiez que les noms que vous avez répertoriés sont de véritables sujets en
examinant chaque nom et en confirmant qu'il représente spécifiquement une
personne, un lieu, une chose ou un événement. Par exemple, « Représentant
de compte » représente bien une personne, et « Rendez-vous » est un nom qui
représente un événement ; dans ce cas, quelque chose qui se produit à un
moment donné.
Caractéristiques d'identification
Après avoir identifié les sujets suggérés dans la réponse, choisissez un sujet
particulier et commencez à poser des questions de suivi liées à ce sujet. Vous
utilisez cette ligne de questions pour obtenir autant d’informations détaillées
que possible sur le sujet que vous avez sélectionné. Assurez-vous que vos
questions de suivi sont plus spécifiques à mesure que vous progressez dans
cette partie de la discussion. La nature de vos questions de suivi dépendra des
réponses que vous recevrez du participant. Sur la base de notre exemple de
réponse, par exemple, vous pouvez poursuivre la discussion en posant des
questions plus spécifiques sur les commandes client, ou vous pouvez
commencer une toute nouvelle série de questions concernant les
clients. Supposons, pour l’instant, que vous posiez la question suivante pour en
savoir plus sur les commandes client :
« Parlons un instant des commandes client. Que faut-il pour terminer une
commande client pour un client ? »
Notez que cette question commence par une déclaration invitant le participant
à l'entretien à se concentrer sur un sujet particulier. Il s'agit d'une technique
que vous devez utiliser pour guider votre conversation après avoir sélectionné
un sujet spécifique à discuter. Notez également que la question est ouverte ;il
demande au participant des détails liés au sujet que vous avez sélectionné
(commandes clients) et vous permet d'établir l'orientation des réponses
ultérieures du participant.
Supposons maintenant que le participant donne la réponse suivante :
« Eh bien, je saisis d'abord toutes les informations sur le client, telles que son
nom, son adresse, son numéro de téléphone et son adresse e-mail. Ensuite,
j'entre les articles que le client souhaite acheter. Après avoir saisi tous les
éléments, je fais le total et j'ai terminé. Oh, j'ai oublié de mentionner que je
saisis le numéro de fax et l'adresse de livraison du client, s'il en a une.
Gardez à l'esprit la technique d'identification du sujet lorsque vous écoutez
cette réponse et notez tous les noms qui pourraient représenter une personne,
un lieu, une chose ou un événement sur votre liste de sujets.
Cependant, avec cette ligne de questions, vous serez plus intéressé à écouter
tous les détails concernant le sujet en discussion. Votre objectif ici est d’obtenir
autant de faits que possible sur le sujet. Vous vous intéressez maintenant aux
noms qui représentent les caractéristiques d’un sujet. Ils décrivent des aspects
particuliers de ce sujet. Vous pouvez identifier ces noms assez facilement car
ils sont généralement au singulier (« numéro de téléphone », « adresse »). En
revanche, les noms qui identifient des sujets sont généralement sous forme
possessive (« le numéro de téléphone du client », « l’ adresse de
l’entreprise »).
Essayez d'écouter autant de caractéristiques du sujet que possible. Dans
l'exemple suivant, j'ai souligné les noms que vous pourriez retenir en écoutant
la réponse :
« Eh bien, je saisis d'abord toutes les informations sur le client, telles que
le nom , l'adresse , le numéro de téléphone et l'adresse e-mail du
client . Ensuite, j'entre les articles que le client souhaite acheter. Après avoir
saisi tous les éléments, je fais le total et j'ai terminé. Oh, j'ai oublié de
mentionner que je saisis le numéro de fax et l'adresse de livraison du client ,
s'il en a une.
Au fur et à mesure que vous identifiez les noms appropriés dans une réponse,
énumérez-les sur une feuille de papier ; cela devient votre liste de
caractéristiques . Vous ajouterez d’autres caractéristiques à la liste au fur et à
mesure du processus de conception et vous utiliserez cette liste plus tard
lorsque vous déterminerez les champs de la base de données. Utilisez
une feuille de papier séparée pour la liste des caractéristiques. Ne listez pas
les matières et les caractéristiques sur une même feuille ! (La raison pour
laquelle vous les conservez sur des listes différentes deviendra claire lorsque
vous commencerez à définir des tables pour la base de données au chapitre 7 ,
« Établir des structures de tables . »)
Voici les caractéristiques (affichées par ordre alphabétique) qui sont
représentées dans la réponse précédente :
Nom de l'adresseTotaux
Adresse e-mailNuméro de téléphone
Numéro de faxadresse de livraison
Ceci constitue la liste des caractéristiques du sujet en discussion. Ces
caractéristiques deviendront éventuellement des champs dans la base de
données.
Note
Dans le reste du livre, je fais référence à l'ensemble de cette procédure sous le
nom de Technique d'identification des caractéristiques .
Vérifiez que les noms que vous avez répertoriés sont de véritables
caractéristiques en confirmant qu'ils représentent des aspects particuliers de
ce sujet. Par exemple, « nom » décrit une caractéristique du sujet « client » et
« Adresse de livraison » représente une autre caractéristique du sujet « client
».
Après avoir fini de discuter d'un sujet particulier, passez au sujet suivant de
votre liste de sujets et commencez le même schéma de questions. Commencez
par des questions ouvertes, identifiez les sujets suggérés dans les réponses,
posez des questions plus spécifiques au fur et à mesure de la
discussion.progresse et identifie le plus grand nombre possible de
caractéristiques du sujet. Continuez ce processus de manière méthodique
jusqu'à ce que vous ayez discuté de tous les sujets de votre liste.
Vous devez apprendre la technique d'identification du sujet et la technique
d'identification des caractéristiques de manière aussi approfondie que possible,
car vous les utiliserez lors de vos entretiens avec les utilisateurs et la direction
et lorsque vous identifierez les champs et les tables pour la structure initiale de
la base de données. Notez qu’il deviendra plus facile de distinguer les sujets et
les caractéristiques dans votre esprit à mesure que vous acquerrez de
l’expérience dans l’utilisation de ces techniques. Ils finiront par devenir plus
instinctifs et intuitifs.
Avant de commencer le processus d'entrevue. . .
Vous pouvez utiliser les techniques que vous venez d'apprendre dans cette
section pour les entretiens avec les utilisateurs et les entretiens avec la
direction. Les seules différences entre les deux séries d’entretiens résident
dans le sujet et le contenu des questions.
Le processus d'entretien implique deux séries de discussions : l'une avec les
utilisateurs et l'autre avec la direction. Vous parlerez d'abord aux utilisateurs,
car ils représentent la « première ligne » de l'organisation. Ils ont l'image la
plus claire des détails liés aux opérations quotidiennes de l'organisation. De
plus, les informations que vous collectez auprès des utilisateurs devraient vous
aider à comprendre les réponses que vous recevez de la direction.
Interviewer les utilisateurs
La première partie du processus d'entretien consiste à mener des entretiens
avec les utilisateurs. Les entretiens se concentrent sur ces quatre questions :
1. Les types de données que les utilisateurs utilisent actuellement
2. Comment les utilisateurs utilisent actuellement leurs données
3. La collection d'échantillons que vous avez rassemblés au cours des deux
premières étapes de l'analyse
4. Et les types d’informations dont les utilisateurs ont besoin pour leur travail
quotidien
Parce que ces questions sont à la fois centrées sur les données et sur
l’information, vous devez être certain de comprendre et de toujours garder à
l’esprit la différence entre les données et les informations. Rappelez-vous
du chapitre 3 , « Terminologie », que les données sont les valeurs que vous
stockez dans la base de données et que les informations sont des données que
vous traitez d'une manière qui les rend significatives et utiles lorsque vous
travaillez avec elles ou les visualisez. Garder ces définitions à l’esprit vous
aidera à vous concentrer correctement sur chaque question et à mener chaque
segment de l’entretien avec succès.
Examen du type et de l'utilisation des données
Vous pouvez généralement discuter des deux premiers sujets en même temps
si vous formulez soigneusement vos questions au début de l'entretien. Votre
objectif pour cette partie de l'entretien est d'identifier les types de données
que les utilisateurs utilisent actuellement et comment ils utilisent ces données
pour soutenir leur travail. Vous utiliserez ces informations plus tard dans le
processus de conception pour vous aider à définir les structures des champs et
des tables. Utilisez les exemples de collecte de données et de représentation
des données pour vous aider à formuler des questions sur les données de
l'utilisateur. (Cependant, ne discutez pas encore des exemples ; vous devez les
traiter séparément.) Au cours de cette discussion, vous commencerez par des
questions ouvertes, identifierez les sujets dans les réponses, puis utiliserez des
questions de suivi spécifiques pour identifier les caractéristiques de chaque
sujet.
Au début de l’entretien, interrogez chaque participant sur le travail qu’il
effectue au quotidien. Après qu'un participant ait fourni une description globale
du travail qu'il effectue, demandez-lui d'expliquer son travail plus en
détail. Peut-être pourra-t-il vous guider dans le travail qu'il effectue au
quotidien.
Voici un exemple de conversation typique qui se produit pendant cette partie
de l'entretien. J'ai souligné les noms qui devraient attirer votre attention.
INTERVIEWER :« Quel genre de travail faites-vous au quotidien ? »
PARTICIPANT :«J'accepte les demandes d'aménagement du territoire soumises
par diverses personnes , je les connecte et je fixe une date d'audience avec
l'examinateur d'audience. J’aide également les candidats s’ils ont des questions
concernant une candidature spécifique.
INTERVIEWER :« Parlons un instant des candidatures. Quels types de faits sont
associés à une demande ? »
PARTICIPANT :« Il y en a un certain nombre, en fait. Il existe des faits
concernant le type et le nom de la demande, sa désignation et son adresse ,
ainsi que son emplacement .
INTERVIEWER :"Parlez-moi des faits concernant le type et le nom de
l'application."
PARTICIPANT :"Il y a quatre choses que nous enregistrons : le type de
demande , le nom du lotissement , le but du projet et une description du
projet."
Notez comment l'intervieweur démarre la discussion avec une question
ouverte. Pendant que le participant répond, l'intervieweur utilise la technique
d'identification du sujet pour identifier les sujets dans la
réponse. L'intervieweur choisit ensuite un sujet particulier et utilise une autre
question ouverte pour attirer l'attention du participant sur ce sujet. Étant
donné que la réponse suivante du participant est de nature générale,
l'intervieweur se concentre sur un aspect particulier du sujet et utilise une
question de suivi plus spécifique pour obtenir une réponse détaillée de la part
du participant.
L'intervieweur peut continuer à affiner ses questions au fur et à mesure que la
discussion progresse. Au fur et à mesure que le participant répond à chaque
question, l'intervieweur continue d'utiliser le formulaire Caractéristiques-
Identification.Technique pour identifier les caractéristiques du sujet qui
apparaissent dans la réponse. Après avoir identifié toutes les caractéristiques
du sujet, l'intervieweur passe au sujet suivant et recommence tout le
processus. Il continuera de cette manière jusqu'à ce qu'il ait couvert toute sa
liste de sujets. Vous passerez par exactement le même processus lorsque vous
agirez en tant qu’intervieweur.
Note
Le dialogue dans l'exemple précédent et dans les exemples tout au long du
livre est simpliste par conception ; cela s'applique également à tous les
exemples de questions que je propose lors de ma discussion sur le processus
d'entretien. Ils sont simplement le véhicule à travers lequel je présente une
compétence ou une technique spécifique. En tant que tel, ne vous préoccupez
pas trop du dialogue lui-même ou de la question elle-même ; concentrez-vous
plutôt sur la façon dont il illustre la compétence ou la technique dont je parle
en ce moment. Les exemples vous seront plus bénéfiques si vous les voyez
sous cet angle.
Examen des échantillons
La prochaine série de discussions se concentre sur tous les échantillons que
vous avez rassemblés plus tôt dans le processus d'analyse. Vos objectifs lors de
ces discussions sont d'identifier comment les objets représentés par les
échantillons sont utilisés, de clarifier les aspects des échantillons que vous ne
comprenez pas et d'attribuer une description à chaque échantillon.
Il devrait être relativement facile pour vous de parler des échantillons aux
participants maintenant que vous avez une idée des données que les
participants utilisent quotidiennement. Commencez la conversation en posant
des questions sur un échantillon spécifique. La figure 6.7 montre un exemple
d'échantillon de collecte de données que vous pouvez utiliser comme point de
départ.
Figure 6.7 Un échantillon de collecte de données.
Note
La déclaration que j'ai faite à propos des exemples de dialogue s'applique
également à cette figure et à de nombreuses autres figures du livre. Ces
chiffres sont simplement le véhicule à travers lequel je présente une
compétence ou une technique spécifique. Utilisez la même approche que celle
que j'ai suggérée pour les exemples de dialogue, car elles vous seront plus
bénéfiques.
Révisez vos notes des discussions que vous avez eues au début de l'entretien
avant de poser votre première question. Vous souhaitez déterminer si tout ce
dont vous avez déjà discuté est pertinent pour l'échantillon dont vous êtes sur
le point de discuter. Par exemple, lors d'une discussion précédente, un
participant a indiqué qu'une partie de son travail consiste à suivre tous les
clients de l'organisation. En utilisant cette déclaration comme point de départ,
vous pouvez lui demander comment il utilise cet échantillon particulier de
collecte de données pour effectuer cette tâche.
« Vous avez mentionné lors d'une discussion précédente que vous gardiez une
trace de tous les clients. Comment cet écran vous aide-t-il à accomplir cette
tâche ? »
C'est une question bien formulée. Cela commence par une déclaration qui se
concentre sur un sujet particulier, puis se poursuit en attirant l'attention du
participant sur l'échantillon. La question est suffisamment ouverte pour
susciter une réponse claire et complète.
Supposons maintenant que le participant fournisse cette réponse :
"Cet écran me permet de saisir de nouveaux clients, ainsi que de modifier et de
conserver toutes les informations dont nous disposons sur les clients
existants."
Si cette réponse répond à la question à votre entière satisfaction, utilisez-la
comme base pour une description de l'échantillon. Sinon, continuez avec une
ligne de questions appropriée jusqu'à ce que le participant identifie clairement
le but et l'utilisation de l'échantillon. Vous devez fournir des descriptions pour
tous vos échantillons, car vous les réutiliserez plus tard dans le processus de
conception.
La description d'un échantillon doit être succincte, mais suffisamment claire
pour indiquer le but de l'échantillon et la manière dont il est utilisé. Écrivez la
description sur un bout de papier et joignez-la à l’échantillon. Voici un exemple
de description que vous pourriez utiliser pour l'exemple de la figure 6.7 :
Cet écran est utilisé pour collecter et conserver toutes les données client.
Vous devez comprendre l’échantillon aussi complètement que possible afin de
pouvoir rédiger une description claire et concise. Si vous ne comprenez pas
certains aspects d'un échantillon donné, demandez au participant de les
clarifier pour vous. Par exemple, supposons que vous travaillez avec l'exemple
de rapport présenté dans la figure 6.8 .
Figure 6.8 Un exemple de rapport.
Si vous ne savez pas ce que représente l'abréviation « SRP », assurez-vous que
le participant vous la clarifie ; ne faites jamais d'hypothèses ou de
suppositions. Cela peut faire perdre un temps et des efforts précieux plus tard
dans le processus si votre hypothèse ou supposition s’avère incorrecte.
Lorsque vous rédigez des descriptions pour chacun des échantillons, vous
aurez peut-être du mal à rédiger une description pour un
échantillon complexe . Un échantillon est complexe s’il représente plus d’un
sujet. L'échantillon de la figure 6.8 , par exemple, ne couvre qu'un seul sujet :
les produits. L'échantillon de la figure 6.9 couvre cependant au moins trois
sujets : les services médicaux, les services infirmiers et les patients. Vous
devrez souvent travailler un peu plus dur pour déterminer le but et l’utilisation
d’un échantillon complexe. Dans certains cas, vous devrez utiliser la technique
d'identification du sujet pour déterminer quels sujets sont représentés.
Disons que vous travaillez avec l'exemple de rapport présenté dans la figure
6.9 et que vous avez des questions concernant les services infirmiers. Vous
vous demandez si l'organisation utilise ce rapport comme moyen indirect de
maintenir à jour une liste de services infirmiers. Une question qui suscite une
réponse par oui ou par non de la part d'un participant ne vous aidera pas
beaucoup, vous devez donc utiliser une question ouverte qui suscitera une
réponse plus informative. Vous pouvez commencer votre discussion sur cet
exemple par cette question :
« Quels services infirmiers fournissez-vous en plus de ceux répertoriés dans cet
échantillon ? »
Figure 6.9 Un exemple d'un exemple de rapport complexe.
Ce type de question donne au participant la possibilité de vous fournir une
réponse détaillée ; de plus, vous vous êtes donné la possibilité de poser des
questions de suivi comme le justifie la réponse du participant. Pour continuer
l'exemple, disons que vous recevez la réponse suivante :
« Nous fournissons divers services spécialisés pour les patients les plus
complexes. Vous voyez uniquement les services généraux sur ce
rapport. Cependant, je peux vous montrer une liste complète de nos services
que Katherine gère sur son ordinateur.
Vous pouvez poursuivre le processus de rédaction de la description de
l'échantillon si cette réponse clarifie le point en question et que vous
comprenez maintenant l'objectif de cet exemple de rapport ; sinon, continuez à
poser des questions de suivi jusqu'à ce que tout soit expliqué à votre
satisfaction.
Examen des exigences en matière d'informations
Le dernier problème dont vous discuterez avec les utilisateurs concerne leurs
besoins en informations. Les objectifs de cette discussion sont de déterminer si
les utilisateurs individuels reçoivent des informations basées sur des données
qu'ils ne contrôlent pas ou ne conservent pas directement, de déterminer de
quels types d'informations supplémentaires ils ont besoin et de déterminer de
quels types d'informations ils peuvent avoir besoin à l'avenir. . Vous utiliserez
les informations que vous collectez au cours de cette discussion plus tard dans
le processus de conception pour vous aider à définir et à vérifier les structures
de champs et de tables. Vous pouvez également utiliser ces informations
comme un autre moyen de déterminer si vous avez accidentellement oublié
quelque chose lors des discussions précédentes.
Exigences actuelles en matière d'information
Les utilisateurs reçoivent généralement les informations qu'ils utilisent via
divers rapports. Par conséquent, la meilleure façon de commencer cette
discussion est d’examiner les exemples de rapports. Cette fois-ci, cependant,
vous n'êtes pas aussi préoccupé par la manière dont les rapports sont utilisés
que par les données sur lesquelles ils sont basés. Il est assez courant que les
informations contenues dans certains rapports qu'un utilisateur reçoit soient
basées sur des données qu'il ne crée pas et ne gère pas personnellement. Dans
cette situation, vous devez déterminer l'origine de ces données afin de pouvoir
identifier toutes les données utilisées par un utilisateur, qu'il les utilise
directement ou indirectement.
Sélectionnez un rapport parmi les exemples de rapport et travaillez avec l’un
des participants pour déterminer quelles données sont utilisées pour produire
le rapport. Demandez-lui s'il crée et conserve les données sur lesquelles le
rapport est basé. Vous pouvez passer à l'échantillon suivant s'il répond « oui »,
mais vous devrez identifier l'origine des données s'il répond « non ». Voici un
exemple qui illustre ce processus.
Supposons que vous ayez une assistante nommée Kira qui entame une
discussion avec une participante nommée Joan concernant l'exemple de
rapport présenté dans la figure 6.10 .
Figure 6.10 Un exemple de rapport.
Alors que Kira entame la conversation, Joan mentionne qu'elle travaille dans le
département marketing. Lorsque Kira pose pour la première fois des questions
sur l'exemple de rapport,Joan indique qu'elle le reçoit tous les lundis
matin. Alors Kira lui pose la question suivante :
« Fournissez-vous les données utilisées pour générer ce rapport ? »
Son prochain plan d'action dépend de la réponse de Joan. Kira peut passer à
l'échantillon suivant si la réponse de Joan est oui ; cependant, ce serait une
bonne idée que Kira pose une question complémentaire pour s'assurer que la
réponse de Joan est vraie.
« Est-ce que vous saisissez et conservez personnellement ces données
quotidiennement ?
Si la réponse de Joan est toujours oui, Kira peut définitivement passer à
l'échantillon suivant.
D'un autre côté, si la réponse de Joan à la question initiale est non, Kira devra
poser quelques questions complémentaires. Tout d'abord, elle demandera à
Joan si elle fournit des données au rapport. Si tel est le cas, Kira déterminera
alors quelles données Joan soumet spécifiquement. Kira demandera ensuite si
Joan connaît la source des données restantes.
Pour continuer l'exemple, disons que la réponse de Jeanne à la question initiale
est « non » et que le dialogue suivant a lieu après sa réponse :
KIRA :« Pouvez-vous alors me dire s’il existe des données que vous contribuez
au rapport ? »
J OAN :"Je fournis le nom et le numéro de téléphone du client."
KIRA :« Pouvez-vous me dire qui fournit le type de client et la date du dernier
achat ? »
J OAN :«Je n'en suis pas vraiment sûr, mais. . .»
KIRA :"Avez-vous une idée d'où viennent ces objets?"
J OAN :« En fait, oui. Ils viennent du service commercial.
KIRA :"Sa sonne bien pour moi. Je vais noter cela sur cet échantillon, puis nous
pourrons passer au suivant.
Notez qu'au début du dialogue, Kira essaie d'abord de déterminer si Joan
soumet des données au rapport. Quand Joan révèle qu'elleapporte deux des
éléments du rapport, Kira pose ensuite une question de suivi pour voir si Joan
peut identifier la source des données restantes. Dans ce cas, il suffit de deux
questions bien formulées pour trouver la réponse. Si Joan ne pouvait pas
répondre aux deux dernières questions, Kira devrait poursuivre son enquête
avec les autres participants.
Vous êtes sûr d'obtenir toutes les informations dont vous avez besoin sur vos
échantillons de rapport si vos discussions progressent de la même manière que
le dialogue précédent. N'oubliez pas : les questions de suivi constituent une
partie cruciale de la conversation. Vous devez formuler correctement vos
questions pour obtenir les types de réponses dont vous avez besoin de la part
des participants.
Exigences en matière d'informations supplémentaires
Le prochain sujet de discussion concerne les exigences en matière
d’informations supplémentaires . L'objectif ici est de déterminer si les
utilisateurs ont besoin d'informations supplémentaires qui ne leur sont pas
fournies actuellement. Si tel est le cas, vous devez identifier les informations
supplémentaires dont ils ont besoin, puis définir de nouvelles structures de
données pour prendre en charge ces informations supplémentaires plus tard
dans le processus de conception.
Démarrez cette conversation en demandant aux participants d'examiner les
rapports qu'ils reçoivent actuellement. Demandez-leur s'il y a d'autres
informations qu'ils aimeraient voir dans leurs rapports. Ensuite, demandez-leur
de discuter des informations supplémentaires, des rapports que ces
informations affecteront et de la raison pour laquelle ils pensent que ces
informations sont nécessaires. Déterminez ensuite si les informations
supplémentaires représentent de nouveaux sujets ou de nouvelles
caractéristiques. Si tel est le cas, identifiez chaque nouvel élément et ajoutez-
le à la liste appropriée. Enfin, examinez les commentaires des participants et
déterminez s'il y a d'autres questions dont vous devez discuter avec eux en ce
qui concerne les rapports. Voici un exemple qui illustre le processus.
Supposons que vous commencez cette discussion et que vous venez de
demander aux participants d'examiner les exemples de rapports qu'ils utilisent
actuellement. L'un des participants examine l'exemple de rapport présenté à la
figure 6.11 .
Figure 6.11 Exemple de rapport examiné par un participant.
Vous demandez maintenant à cette participante de noter les informations
supplémentaires qu'elle souhaite voir sur le rapport et de fournir une brève
déclaration indiquant pourquoi ces informations sont nécessaires. La
manière exacte dont elle prend les notes n'a pas vraiment d'importance , du
moment qu'elles sont claires et jointes au rapport de manière évidente. Dans
ce cas-ci, elle décide d’utiliser de grandes notes autocollantes pour
documenter ses commentaires. Elle a spécifié deux nouveaux champs qu'elle
souhaite ajouter au rapport, ainsi que la raison de leur inclusion. Elle a
également suggéré des emplacements possibles pour les champs en écrivant
leurs noms sur le rapport lui-même. La figure 6.12 montre l'exemple de rapport
avec ses commentaires.
Figure 6.12 Un exemple de rapport avec les commentaires d'un participant.
Ensuite, déterminez si de nouveaux sujets ou de nouvelles caractéristiques
sont représentés dans les informations supplémentaires. Gardez à l’esprit la
technique d’identification du sujet et la technique d’identification des
caractéristiques lorsque vous vous référez aux commentaires joints au
rapport. Voici un exemple de la façon dont vous appliquez ces techniques au
premier commentaire de la figure 6.12 .
Note
À partir de maintenant, je soulignerai toujours les noms dans un exemple qui
devrait attirer votre attention, le cas échéant.
« Pouvons-nous inclure le nom du fournisseur ? Cela faciliterait l’identification
d’un produit spécifique .
Ici, vous avez identifié à la fois un sujet et une caractéristique. (Notez que le
sujet et la caractéristique ne sont pas directement liés : le « nom du
fournisseur » est une caractéristique d'un fournisseur, pas d'un produit. Il n'y a
pas de problème ici, mais vous devez être conscient que cette apparente
inadéquation des sujets et des caractéristiques est typique. Vous aborderez ce
problème plus tard dans le processus de conception.) Maintenant, vérifiez votre
liste de sujets et votre liste de caractéristiques pour déterminer si vous avez
déjà pris en compte ces éléments. Si c’est le cas, passez au commentaire
suivant et répétez cette procédure.
Si vous découvrez un nouveau sujet, ajoutez-le à votre liste de sujets puis
identifiez autant de caractéristiques que possible. Lorsque vous avez terminé,
ajoutez ces éléments à votre liste de caractéristiques, passez au commentaire
suivant et répétez toute la procédure. Cependant, dans de nombreux cas, vous
identifierez uniquement de nouvelles caractéristiques. Ne vous inquiétez
pas. Les gens souhaitent souvent ajouter à un rapport des éléments
caractéristiques de sujets déjà représentés par les informations contenues dans
le rapport.
Enfin, réexaminez chaque rapport et déterminez si vous avez des questions ou
des préoccupations concernant les notes prises par les participants. Par
exemple, vous pouvez remettre en question la raison qui sous-tend la
conviction d'un participant selon laquelle des champs spécifiques sont
nécessaires dans un rapport donné. Ou vous vous demandez peut-être
pourquoi un autre participant souhaite exclure certains champs deun de ses
rapports. Vous voulez absolument vous assurer que les champs qu'il souhaite
exclure sont vraiment inutiles et que leur suppression n'aura pas d'effet négatif
sur les informations que le rapport fournit à d'autres personnes. Dans les deux
cas, l'inclusion ou l'exclusion de champs affectera la structure finale de la base
de données.
Si un rapport contient une ou plusieurs remarques préoccupantes, examinez-le
avec le participant approprié et réglez autant de problèmes que possible. Vous
pouvez généralement résoudre toutes vos préoccupations avec quelques
questions simples, mais dans certains cas, la résolution de certains problèmes
ne deviendra apparente que plus tard dans le processus de conception. Par
exemple, vous avez peut-être remarqué que certains champs apparaissent
dans deux rapports ou plus. Il est difficile de déterminer si les champs sont
inutilement dupliqués tant que vous n'avez pas commencé à définir les
structures des champs et des tables. Lorsque vous rencontrez un problème
difficile à résoudre à l’heure actuelle, prenez-en note et mettez le rapport de
côté pour un examen ultérieur.
Exigences futures en matière d'information
Le dernier sujet de discussion concerne les futurs besoins d’information. Votre
objectif ici est d'identifier les informations que les participants estiment
nécessaires à recevoir au fur et à mesure de l'évolution de l'organisation. Après
avoir identifié ces futurs besoins en informations, vous pouvez vous assurer
que vous définissez les structures de données nécessaires pour prendre en
charge ces informations.
Vous devez d’abord vous assurer que chaque participant a une idée de la façon
dont l’organisation évolue. La nature de l'évolution de l'organisation
déterminera les nouvelles informations dont les participants auront besoin. Si
plusieurs personnes ne connaissent pas ces problématiques, vous devrez
obtenir cette information auprès de la direction puis la relayer aux participants
avant la discussion. Vous pouvez commencer la conversation une fois que tout
le monde est familiarisé avec ces sujets.
Commencez la discussion en demandant aux participants de réfléchir à
l’évolution future de l’organisation et à la façon dont elle pourrait affecter leur
travail quotidien. Vous constaterez souvent que certains participants auront du
mal à imaginer ce scénario. Lorsque cela se produit, posez des questions
comme celles-ci pour les aider à concentrer leurs pensées :
Comment l’évolution de l’organisation affectera-t-elle la quantité d’informations
dont vous aurez besoin pour faire votre travail ?
Pensez-vous que vous aurez besoin de types d'informations supplémentaires
pour mener à bien vos tâches efficacement à mesure que l'organisation
évolue ?
Comment l’évolution de l’organisation va-t-elle augmenter le temps que vous
consacrez à vos tâches quotidiennes ?
Pouvez-vous prédire de quels types (catégories, et non éléments spécifiques)
de nouvelles informations vous aurez besoin pour exercer vos fonctions à
mesure que l'organisation évolue ?
Anticipez-vous un besoin d'informations nouvelles si vos tâches sont accrues en
raison de l'évolution de l'organisation ?
Gardez à l'esprit que la plupart des réponses des participants seront basées
sur des spéculations. Il n'existe aucun moyen précis pour eux de prédire de
quels types d'informations ils auront réellement besoin jusqu'à ce que
l'évolution de l'organisation se produise. Cependant, si vous pouvez anticiper
leurs besoins hypothétiques en informations, vous pouvez vous y préparer en
définissant à l’avance les structures de données nécessaires.
Pendant que les participants répondent, gardez à l'esprit la technique
d'identification du sujet afin de pouvoir identifier tout nouveau sujet, puis les
ajouter à votre liste de sujets. Gardez à l'esprit la technique d'identification des
caractéristiques afin de pouvoir écouter tout nouveau détail concernant des
sujets existants ou nouveaux et les ajouter à votre liste de caractéristiques.
Vous pouvez esquisser des idées de nouveaux rapports ou formulaires de saisie
de données pour aider les participants à visualiser les types d'informations
dont ils pourraient avoir besoin à l'avenir. Ces croquis peuvent ensuite vous
aider à identifier de nouveaux sujets ou caractéristiques que la structure de la
base de données doit aborder. Si vous créez plusieurs ébauches d'exemples de
rapports, assurez-vous d'assemblerdans un dossier séparé et clairement
identifié. Codez ensuite chaque révision afin de pouvoir la comparer avec les
révisions précédentes. La figure 6.13 montre un exemple de conception
préliminaire pour un futur rapport.
Figure 6.13 Un exemple de conception d'un nouveau rapport.
Poursuivez la conversation avec les utilisateurs jusqu'à ce que vous soyez
convaincu d'avoir répondu au plus grand nombre possible de besoins
d'informations futurs des participants. Une fois la discussion terminée, vous
êtes prêt à mener des entretiens avec la direction.
Note
Vous pouvez également utiliser toutes les techniques que vous avez apprises
dans cette section pour les entretiens de direction. La section suivante est donc
un peu plus courte et plus concise.
Gestion des entretiens
La deuxième partie du processus d'entretien consiste à interroger le personnel
de direction. Cette série d’entretiens se concentre sur ces questions :
1. Les types d’informations que les gestionnaires reçoivent actuellement
2. Les types d’informations supplémentaires dont ils ont besoin
3. Les types d’informations dont ils estiment avoir besoin
4. Leur perception des besoins globaux en information de l'organisation
Note
Dans le reste du livre, j'utilise le terme gestion pour désigner la ou les
personnes contrôlant ou dirigeant l'organisation.
Examen des exigences actuelles en matière d'information
Vos objectifs au cours de la première partie de cet entretien sont d'identifier les
informations que la direction reçoit régulièrement et de déterminer si elle reçoit
des rapports qui ne sont pas représentés dans votre groupe d'échantillons de
rapports.
Au début de l'entretien, interrogez les participants sur le travail qu'ils
effectuent et les responsabilités associées au poste. Les managers ont
généralement un certain nombre de problèmes en tête, ces questions aideront
donc à concentrer l’attention sur les problèmes en question. Les réponses vous
donneront une idée de la manière dont les gestionnaires pourraient utiliser les
informations contenues dans les rapports qu'ils reçoivent et vous donneront
une perspective sur la nécessité de ces informations.
Ensuite, demandez aux participants s’ils utilisent l’un des rapports de votre
collection d’échantillons de rapports. Passez à l'étape suivante s'ils déclarent
qu'ils n'utilisent aucun des rapports ; sinon, examinez chaque rapport et
demandez-leur de vous aider à identifier d'autres sujets que vous auriez pu
négliger auparavant. Gardez à l’esprit la technique d’identification du sujet
pour vous aider dans ce processus. Si le responsable identifie un nouveau
sujet, ajoutez-le à votre liste de sujets et appliquez la technique d'identification
des caractéristiques pour déterminer les caractéristiques du sujet. Ajoutez les
nouvelles caractéristiques à votre liste de caractéristiques. Répétez toute cette
procédure pour chaque exemple de rapport.
Poursuivez la discussion en demandant aux participants s'ils reçoivent des
rapports qui ne sont pas représentés dans vos échantillons de rapports. Si la
réponse est « oui », obtenez un échantillon de chaque nouveau rapport et
examinez-le avec le participant. Encore une fois, gardez à l'esprit la technique
d'identification du sujet et la technique d'identification des caractéristiques
pour identifier les sujets (et leurs caractéristiques associées) représentés dans
le rapport, puis ajoutez les sujets et les caractéristiques à leurs listes
respectives. Enfin, joignez une description au rapport et ajoutez-la à votre
collection d'échantillons de rapport. Répétez cette procédure jusqu'à ce que
vous ayez pris en compte chaque nouveau rapport.
Examen des exigences en matière d'informations supplémentaires
Le prochain sujet de discussion concerne le besoin d'
informations supplémentaires de la direction . Votre objectif est de déterminer
si cela nécessite des informations supplémentaires qui manquent actuellement
dans les rapports qu'ils reçoivent. Si vous concluez que tel est le cas, vous
devez identifier ces informations supplémentaires. Vous définirez ensuite de
nouvelles structures de données (le cas échéant) pour prendre en charge ces
informations plus tard dans le processus de conception. Cependant, vous
pouvez passer à la partie suivante de l'entretien si la direction n'a pas besoin
d'informations supplémentaires.
Vous utilisez les mêmes techniques pour cette discussion que celles que vous
avez utilisées pour ce segment des entretiens avec les utilisateurs. Voici les
étapes que vous suivrez.
1. Examinez à nouveau les exemples de rapports avec les participants et
demandez-leur s'il y a des informations supplémentaires qu'ils aimeraient
inclure dans l'un des rapports.
2. Demandez aux participants de noter les informations supplémentaires, y
compris les raisons pour lesquelles ils estiment que cela est nécessaire, sur
les rapports appropriés. N'oubliez pas que la manière dont les participants
prennent leurs notes n'a pas d'importance tant qu'elles sont claires, visibles
et jointes au rapport approprié.
3. Identifiez de nouveaux sujets ou caractéristiques dans les informations et
ajoutez-les à la liste appropriée.
4. Examinez les rapports et discutez de toutes vos préoccupations à leur sujet
avec les participants. Une fois vos préoccupations résolues, ce processus est
terminé.
Examen des exigences futures en matière d'information
Les besoins futurs en matière d'information constituent le prochain sujet de
discussion. Votre objectif ici est de déterminer de quoi la gestion de
l’information prévoit avoir besoin à l’avenir. Après avoir identifié ces exigences,
vous pouvez vous assurer que des structures de données sont en place pour
prendre en charge ces informations lorsque le besoin s'en fait sentir.
Au début de la discussion, demandez aux participants de réfléchir à la façon
dont l’organisation évolue actuellement. Demandez-leur ensuite comment
cette évolution affectera les informations dont ils ont besoin pour prendre des
décisions judicieuses et comment elle influencera la façon dont ils guident ou
dirigent l'organisation. N'oubliez pas que leurs réponses seront basées sur des
spéculations, comme ce fut le cas pour les questions similaires que vous avez
posées aux utilisateurs ; la direction n'a aucun moyen de prédire avec précision
ses besoins futurs tant que l'organisation n'a pas réellement commencé à
évoluer. (C'est toujours une bonne idée, cependant, de planifier l'avenir autant
que possible.) Gardez à l'esprit la technique d'identification du sujet et la
technique d'identification des caractéristiques pour identifier de nouveaux
sujets et caractéristiques dans les réponses des participants, puis ajoutez les
nouveaux éléments. (le cas échéant) aux listes appropriées.
Ensuite, faites des croquis de tout nouveau rapport que les participants
pourraient avoir en tête. Identifiez de nouveaux sujets et caractéristiques dans
chaque rapport et ajoutez-les aux listes appropriées. Rassemblez ces nouveaux
rapports dans un dossier clairement identifié et ajoutez-le à votre collection
d'échantillons.
Vous êtes prêt à passer au dernier sujet lorsque vous avez pris en compte
autant de besoins d'information futurs de la direction que possible.
Examen des exigences générales en matière d'information
Le dernier sujet de discussion concerne les besoins globaux d'information de
l'organisation. De l’avis de la direction, de quelle classe générique
d’informations l’organisation a-t-elle besoin ? Votre objectif ici est de découvrir
s'il existe des données que l'organisation doit conserver et qui n'ont pas été
abordées précédemment lors des entretiens avec les utilisateurs ou avec la
direction. Si vous déterminez que de telles données existent, vous devez en
tenir compte dans la structure de la base de données.
Prenez tous les rapports que vous avez rassemblés tout au long des processus
d'analyse et d'entretien et examinez-les une fois de plus avec les
participants. Demandez aux participants de réfléchir aux informations fournies
par les rapports et à la manière dont ils pourraient utiliser ces
informations. (Notez qu'ils devront faire des hypothèses sur la manière dont ils
pourraient utiliser les informations des nouveaux rapports.) Ensuite, demandez
aux participants de déterminer s'il existe des informations qui seraient utiles ou
précieuses pour l'organisation, mais qui ne sont pas reçues actuellement.
par quiconque au sein de l’organisation. S'ils déterminent qu'il existe
effectivement de nouvelles informations que l'organisation pourrait utiliser,
suivez le processus normal d'identification de ces informations ainsi que des
sujets et caractéristiques qui y sont représentés. Esquissez des échantillons de
nouveaux rapports pour obtenir des informations, le cas échéant, et ajoutez les
échantillons à votre collection existante de nouveaux rapports.
Par exemple, supposons que l'un des participants ait identifié un besoin
d'informations démographiques ; elle estime que cela aiderait l'organisation à
identifier un marché cible plus spécifique pour son produit. Aucun des rapports
existants ne fournit ces informations. Vous identifiez donc exactement ce dont
elle a besoin en travaillant avec elle pour créer une esquisse d'un rapport qui
présentera ces informations. (Elle peut en fait esquisser plus d'un rapport, mais
cela ne constitue ni un problème ni une source d'inquiétude.) Vous utilisez
ensuite les techniques appropriées pour identifier et noter les sujets et les
caractéristiques représentés dans le rapport et l'ajouter à votre collection
existante de nouveaux rapports. Plus tard dans le processus de conception,
vous définirez les structures de données nécessaires pour prendre en charge
les nouvelles informations.
Répétez cette procédure jusqu'à ce que les participants ne soient plus en
mesure d'identifier d'autres informations que l'organisation pourrait trouver
utiles ou précieuses. Une fois que vous êtes raisonnablement sûr d'avoir pris en
compte toutes les informations requises par l'organisation, suspendez le
processus d'entretien et commencez le processus de compilation de la liste de
terrain préliminaire.
Il est important que vous compreniez que vous devrez peut-être revoir ce
processus, même si vous et les participants pensez peut-être que vous avez
pris en compte toutes les informations que l'organisation pourrait
éventuellement utiliser. Vous identifierez généralement de nouvelles
informations au fur et à mesure du déroulement du processus de conception de
la base de données.
Compilation d'une liste complète de champs
La liste préliminaire des champs
Maintenant que vous avez terminé votre analyse de la base de données
actuelle et les entretiens avec les utilisateurs et la direction, vous pouvez créer
une liste de champs préliminaire . Cette liste représente les exigences
fondamentales en matière de données de l'organisation et constitue l'ensemble
principal de champs que vous définirez dans la base de données. Vous créez la
liste de champs préliminaire à l'aide d'un processus en deux étapes.
Étape 1 : Examiner et affiner la liste des caractéristiques
La première étape consiste à examiner et à affiner la liste de caractéristiques
que vous avez compilée tout au long du processus d'analyse et
d'entretien. Comme vous l'avez appris au chapitre 3 , un champ représente une
caractéristique d'un sujet particulier ; par conséquent, chaque élément de
votre liste de caractéristiques deviendra un champ. Toutefois, avant de
transformer ces caractéristiques en champs, vous devez d'abord examiner la
liste pour identifier et supprimer les caractéristiques en double.
Au cours des entretiens, vous avez identifié diverses caractéristiques dans les
réponses de chaque participant et les avez compilées dans une liste au fur et à
mesure de l'avancement de l'entretien. Il y a probablement eu des moments où
vous avez ajouté par erreur la même caractéristique à la liste plus d'une fois,
ou, sans le savoir, vous avez fait référence à la même caractéristique par deux
ou plusieurs noms différents. Par conséquent, votre liste de caractéristiques
nécessite quelques affinements.
Affiner les éléments portant le même nom
Commencez à affiner votre liste de caractéristiques en recherchant des
éléments portant le même nom. Lorsque vous trouvez une ou plusieurs
occurrences d’un nom particulier, déterminez si elles représentent toutes la
même caractéristique. Rayez de la liste toutes les occurrences du nom sauf
une si elles représentent la même caractéristique ; sinon, déterminez ce que
représente chaque instance du nom. Vous constaterez souvent qu'un nom en
double représente le même type de caractéristique que son homologue
d'origine, mais doit être associé à un sujet différent de celui de son
homologue. Dans ce cas, vous renommez le double pour refléter son lien avec
le sujet approprié.
Supposons, par exemple, que l'élément « Nom » apparaisse trois fois sur votre
liste de caractéristiques. Votre première tendance sera probablement de rayer
deux des occurrences, car votre objectif actuel est d’éliminer les
caractéristiques en double. Cependant, vous devez déterminer si chaque
instance de « Nom » représente une caractéristique distincte avant de la
supprimer. Vous pouvez facilement prendre cette décision en examinant vos
notes d’entretien ; cela vous aidera à vous rappeler quand et pourquoi vous
avez ajouté l'élément à la liste.
Après un examen attentif, vous découvrez que la première occurrence de «
Nom » représente une caractéristique du sujet « Clients », la seconde, une
caractéristique du sujet « Employés » et la troisième, une caractéristique du
sujet « Contacts ». Vous résolvez cette duplication en renommant chaque
occurrence de « Nom » (en utilisant le sujet comme préfixe) pour refléter
sonvéritable signification. Vous disposerez désormais de trois nouvelles
caractéristiques appelées « Nom du client », « Nom de l'employé » et « Nom du
contact ».
Les éléments similaires à « Nom » apparaissent généralement sur une liste de
caractéristiques et vous devez les traiter de la même manière. Vous verrez
généralement une ou plusieurs occurrences d'éléments tels que « Adresse », «
Ville », « État », « Code postal », « Numéro de téléphone » et « Adresse e-mail
», et vous pouvez les désigner collectivement comme génériques . articles. Le
point ici est que vous devez renommer chaque instance d'un élément
générique pour refléter sa véritable relation avec un sujet particulier,
garantissant ainsi que vous disposez d'une liste de champs aussi précise que
possible.
Affiner des éléments représentant la même caractéristique
Recherchez maintenant les éléments qui représentent la même caractéristique
et rayez-les tous sauf un. L’idée ici est qu’une caractéristique donnée ne doit
apparaître qu’une seule fois dans la liste des caractéristiques. Par exemple,
supposons que « Numéro de produit », « Numéro de produit » et « Numéro de
produit » apparaissent sur votre liste de caractéristiques. Il est évident que ces
éléments représentent tous la même caractéristique et vous n’en avez besoin
que d’un seul sur votre liste. Choisissez celui qui transmet le sens voulu de
manière claire, complète et sans ambiguïté et rayez les éléments restants de la
liste des caractéristiques. (Dans ce cas, le meilleur choix est « Numéro de
produit » car il remplit les critères précédents.)
S'assurer que les articles représentent les caractéristiques
Enfin, assurez-vous que chaque élément de votre liste représente
une caractéristique. Il est facile de placer accidentellement dans la liste des
éléments qui représentent des sujets. Vous pouvez tester chaque élément en
vous posant des questions telles que celles-ci :
Ce mot peut-il être utilisé pour décrire quelque chose ?
Ce mot représente-t-il un composant, un détail ou un morceau de quelque
chose en particulier ?
Ce mot représente-t-il un ensemble de choses ?
Ce mot représente-t-il quelque chose qui peut être décomposé en morceaux
plus petits ?
Selon l'élément avec lequel vous travaillez, il est plus facile de répondre à
certaines questions que d'autres. Lorsque vous constatez qu'un élément
représente un sujet plutôt qu'une caractéristique, supprimez-le de la liste des
caractéristiques et ajoutez-le à la liste des sujets. Assurez-vous d'identifier les
caractéristiques du nouveau sujet et de les ajouter à la liste de caractéristiques
existante.
Par exemple, disons que « Objet » apparaît sur votre liste de caractéristiques et
que vous ne savez pas vraiment s'il représente une caractéristique ou un
sujet. Utilisez les questions précédentes pour vous aider à prendre une
décision.
« Article » peut-il être utilisé pour décrire quelque chose ?
« Article » représente-t-il un composant, un détail ou un morceau de quelque
chose en particulier ?
Vous pourriez faire valoir que « Article » aide à décrire une vente dans la
mesure où il identifie ce qu'un client a acheté. D'un autre côté, on pourrait
aussi dire que « Article » n'est pas une caractéristique car il ne représente pas
un aspect singulier d'une vente. La « Date de vente », par exemple, représente
une caractéristique singulière d'une vente. Laissant le dilemme entourant ces
questions sans solution, vous passez à la question suivante :
« Item » représente-t-il une collection de choses ?
Vous pouvez facilement répondre à cette question en regardant la forme
plurielle du mot, qui dans ce cas est « Articles ». Si les « Objets » peuvent être
appelés une collection, il s'agit d'un sujet. Il commence à devenir clair que
« Item » représente une sorte de collection, et vous pouvez prendre une
décision finale en vous posant la dernière question :
Les « éléments » représentent-ils quelque chose qui peut être décomposé en
morceaux plus petits ?
Vous pouvez répondre à cette question en déterminant si vous pouvez
identifier des caractéristiques pour les « Articles ». Si vous le pouvez, alors
« Éléments » représente définitivement un sujet, et vous devez le déplacer
vers la liste des sujets. Vous devez également identifier ses caractéristiques et
les ajouter à votre liste de caractéristiques.
Continuez cette procédure jusqu'à ce que vous ayez examiné et affiné la liste
complète des caractéristiques à votre satisfaction. Lorsque vous avez terminé,
vous disposez de votre première version de la liste de champs
préliminaire. Vous allez maintenant y ajouter de nouveaux éléments et l'affiner
davantage au cours de l'étape suivante.
Étape 2 : Déterminez s’il existe de nouvelles caractéristiques dans l’un de vos
échantillons
Cette étape implique un examen de tous les échantillons que vous avez
collectés tout au long du processus d’analyse. Votre objectif est de déterminer
si certaines caractéristiques des échantillons doivent être ajoutées à la liste de
terrain préliminaire.
Commencez cette étape en mettant en évidence toutes les caractéristiques
que vous trouvez sur chaque échantillon. Ensuite, examinez chaque
caractéristique et déterminez si elle figure déjà sur la liste de champs
préliminaire ; Rayez-le sur l'échantillon s'il est déjà sur la liste. Ensuite, étudiez
les caractéristiques restantes et déterminez si l’une d’entre elles a la même
signification qu’un champ existant ; si c'est le cas, rayez-le sur
l'échantillon. (Utilisez la même procédure que celle utilisée à la première étape
pour effectuer cette détermination.) Enfin, ajoutez toutes les caractéristiques
en surbrillance restant sur les échantillons à la liste de champs préliminaire.
Par exemple, supposons que vous travaillez avec l'exemple de collecte de
données présenté dans la figure 6.14 .
Figure 6.14 Un exemple d'échantillon de collecte de données.
Mettez en surbrillance chaque caractéristique que vous trouvez sur
l'échantillon, comme le montre la figure 6.15 .
Figure 6.15 Un échantillon avec des caractéristiques mises en évidence.
Vous trouverez probablement plusieurs occurrences de diverses
caractéristiques dans certains échantillons. Comme vous pouvez le voir, « Nom
» et « Numéro de téléphone ». apparaissent deux fois sur cet échantillon
particulier. Dans ce cas, vous pouvez rayer les doublons car ils ont la même
signification que les instances d'origine.
Pour continuer avec l'exemple, supposons que vous ayez examiné la liste de
champs préliminaire et constaté que chaque caractéristique de l'échantillon est
déjàsur la liste à l'exception de « Nom » et « Numéro de téléphone ». Rayez les
éléments existants de l’échantillon pour montrer que vous les avez pris en
compte. Avant d'ajouter « Nom » et « Numéro de téléphone ». Cependant,
assurez-vous que les noms de ces éléments décrivent correctement leur
relation avec le sujet représenté dans l'échantillon. Dans ce cas, les deux
éléments restants représentent les caractéristiques d’un groupe de personnes
appelé « Contacts ». Par conséquent, vous renommez ces caractéristiques, en
utilisant le sujet comme préfixe, en « Nom du contact » et « Numéro de
téléphone du contact », puis vous les ajoutez à la liste de champs
préliminaire. Répétez cette procédure pour chaque échantillon que vous avez
collecté jusqu'à ce que vous ayez parcouru tous les échantillons que vous avez
collectés. Lorsque vous avez terminé, vous disposez de la deuxième version de
la liste préliminaire des champs.
Une note latérale : listes de valeurs
Lorsque vous examinez les caractéristiques d'une base de données, d'une
feuille de calcul ou d'un exemple de page Web, enregistrez sur une feuille de
papier séparée le nom de chaque caractéristique qui intègre une liste de
valeurs (également appelée liste énumérée ). Cette liste spécifie la plage de
valeurs acceptable pour une caractéristique particulière et applique souvent
une règle métier donnée. (Vous découvrirez les règles commerciales
au chapitre 11 , « Règles commerciales ».) Par exemple, supposons que vous
travailliez pour une entreprise manufacturière qui fait appel à quatre
fournisseurs spécifiques pour livrer ses marchandises à des clients à travers le
pays. Vous pouvez utiliser une liste de valeurs pour garantir qu'un utilisateur
sélectionne l'un de ces quatre fournisseurs pour expédier une commande
particulière. La figure 6.16 illustre cet exemple (remarque Ship Via) et montre
également deux types courants de liste de valeurs.
Figure 6.16 Un écran de base de données avec deux listes de valeurs.
Lorsque vous enregistrez le nom d'une caractéristique qui intègre une liste de
valeurs, enregistrez également les valeurs dans la liste. Si la liste contient un
grand nombre de valeurs, rédigez une brève description du type de valeurs
dans la liste et (si possible) une valeur minimale et maximale ; sinon, notez
chacune des valeurs. La figure 6.17 montre un exemple de l'enregistrement
que vous créez.
Figure 6.17 Enregistrement des caractéristiques qui intègrent des listes de
valeurs .
Vous pouvez faire preuve de discernement quant aux caractéristiques que vous
choisissez d’enregistrer. Par exemple, vous n'avez pas besoin d'enregistrer des
caractéristiques qui acceptent des ensembles de valeurs simples ou évidentes,
telles que « oui/non », « vrai/faux » ou « actif/inactif ». Au lieu de cela, vous
devez enregistrer des caractéristiques qui acceptent des ensembles de valeurs
distincts et spécifiques.
Mettez cette ou ces feuilles de côté une fois que vous avez fini d'enregistrer les
caractéristiques appropriées. Vous ferez référence à cette feuille lorsque vous
définirez les spécifications des champs de la base de données et à nouveau
lorsque vous définirez des règles métier.
La liste des champs calculés
Il y a un dernier raffinement que vous devez apporter à la liste de champs
préliminaire avant de pouvoir la considérer comme terminée : vous devez
supprimer chaque champ calculé et le placer sur une liste distincte. Cette
nouvelle liste devient votre liste de champs calculés. Rappelez-vous
du chapitre 3 qu'un champ calculé est un champ qui stocke le résultat d'une
concaténation de chaînes ou d'une expression mathématique comme
valeur. Vous répertoriez les champs calculés séparément, car vous les utiliserez
d'une manière spécifique ultérieurement dans le processus de conception.
Vous créez la liste des champs calculés à l'aide des champs existants de la liste
des champs préliminaires. Examinez la liste et déterminez s'il existe des
champs qui correspondent à la description d'un champ calculé. Les champs
dont les noms contiennent des mots tels que montant, total, somme, moyenne,
minimum, maximum et nombre sont probablement des candidats pour la liste
des champs calculés. Les noms courants pour les champs calculés incluent «
Sous-total », « Âge moyen », « Montant de la remise » et « Nombre de clients
». Au fur et à mesure que vous identifiez chaque champ calculé, supprimez-le
de la liste des champs préliminaires et placez-le dans la liste des champs
calculés. Lorsque vous aurez terminé votre examen de tous les champs de la
liste de champs préliminaire, vous disposerez de deux listes complètement
nouvelles : une troisième version de la liste de champs préliminaire et une liste
de champs calculés.
Examen des deux listes avec les utilisateurs et la direction
Mener de brefs entretiens avec les utilisateurs et la direction pour examiner les
éléments qui apparaissent sur la liste de champs préliminaire et le calcul.Liste
de champ. Votre objectif ici est de déterminer si des champs ont été omis de
l’une ou l’autre liste. Vous pouvez passer à l'étape suivante du processus de
conception lorsque tout le monde est convaincu que les listes sont
complètes ; sinon, identifiez les champs manquants et ajoutez-les à la liste
appropriée. Une fois les entretiens terminés, vous disposerez d'une version «
finale » de chaque liste.
Assurez-vous de mener ces entretiens car les commentaires des participants
vous fournissent un moyen de vérifier les champs des deux listes. Permettez-
moi de vous rappeler encore une fois d'éviter de trop vous investir dans l'idée
que ces listes sont absolument complètes et définitives. À ce stade, vous
n'avez peut-être pas encore identifié tous les champs qui doivent être inclus
dans la base de données (par inadvertance ; vous êtes presque sûr de
manquer quelques champs), mais si vous vous efforcez de rendre vos listes
aussi complètes que possible, l'inévitable les ajouts ou suppressions seront
rapides et faciles à effectuer.
EXEMPLE : ANALYSE D'UNE BASE DE DONNÉES
Travaillons à nouveau avec Mike et sa nouvelle base de données. Vous avez
déjà défini l'énoncé de mission et les objectifs de mission de la nouvelle base
de données de Mike. Il est maintenant temps d'effectuer une analyse, de
mener des entretiens et de dresser une liste préliminaire de terrain.
Tout d’abord, analysez la base de données actuelle de Mike. Vous constatez
qu'il conserve la plupart de ses données sur papier ; la seule exception est
l'inventaire de produits qu'il gère dans un tableur. Rassemblez des échantillons
des différents papiers que Mike utilise pour collecter des données et une
capture d'écran ou une impression de la feuille de calcul qu'il utilise pour gérer
l'inventaire des produits. Rassemblez ces échantillons dans un dossier pour une
utilisation ultérieure. Par exemple, la figure 6.18 montre un échantillon des
listes que Mike utilise pour collecter des informations sur les clients, ainsi
qu'une capture d'écran de son tableur.
Figure 6.18 Un échantillon sur papier et un échantillon généré par ordinateur
de Mike's Bikes.
Ensuite, identifiez les méthodes utilisées par Mike pour présenter
l’information. Lui et son équipe produisent actuellement une variété de
rapports qui présentent les informations dont ils ont besoin pour mener leurs
affaires quotidiennes. Ils génèrent la plupart des rapports à l'aide d'un
programme de traitement de texte. Rassemblez des échantillons de tous les
rapports et placez-les dans un dossier pour une utilisation ultérieure. La figure
6.19 montre un exemple de rapport que Mike crée sur son ordinateur.
Figure 6.19 Un exemple de rapport de Mike's Bikes.
Vous êtes maintenant prêt à interviewer le personnel de Mike. Voici quelques
points à retenir lorsque vous menez les entretiens.
• Identifiez les types de données que les membres du personnel utilisent et
comment ils utilisent ces données. Assurez-vous d'utiliser la technique
d'identification du sujet et la technique d'identification des caractéristiques
pour vous aider à analyser les réponses et à formuler des questions de suivi.
• Passez en revue tous les échantillons que vous avez collectés au début du
processus d’analyse. Déterminez comment chaque échantillon est utilisé,
rédigez une description appropriée et joignez la description à l’échantillon.
• Identifiez les besoins d’information du personnel. Déterminez les
informations qu'ils utilisent actuellement, les informations supplémentaires
dont ils ont besoin (n'oubliez pas d'utiliser les exemples) et le type
d'informations dont ils pensent avoir besoin à mesure que l'entreprise
évolue.
Lors de l'entretien, une des salariées se demande si elle peut ajouter un
nouveau champ au rapport de liste téléphonique des fournisseurs. Comment
répondez-vous ? Vous lui remettez le rapport et lui demandez de joindre une
note indiquant le nom du nouveau champ et une brève explication des raisons
pour lesquelles elle estime que cela est nécessaire. Lorsqu'elle a terminé,
remettez l'échantillon dans le dossier des échantillons de rapport. La figure
6.20 montre l'exemple de rapport avec la note jointe.
Figure 6.20 Un exemple de rapport avec une note jointe suggérant un
nouveau champ.
Vous mènerez l'entretien final avec Mike. Gardez les points suivants à l’esprit
lorsque vous parlez avec lui.
• Identifier les rapports qu'il reçoit actuellement ; vous devez savoir quel type
d'informations il utilise pour prendre des décisions commerciales. S'il reçoit
des rapports qui ne sont pas représentés dans votre groupe d'échantillons
de rapports, obtenez un échantillon de chaque rapport et ajoutez-le au
groupe, en mettant à jour les listes de sujets et de caractéristiques si
nécessaire.
• Examinez avec lui le groupe d'échantillons de rapports et déterminez s'il
peut identifier les sujets ou les caractéristiques que son personnel a
négligés . Utilisez les techniques appropriées pour identifier ces éléments,
puis ajoutez-les à la liste appropriée.
• Déterminez s'il existe des informations supplémentaires dont Mike a besoin
pour compléter les informations qu'il reçoit actuellement.
• Déterminez les types d’informations dont Mike aura besoin à mesure que
l’entreprise évolue.
Alors que vous et Mike discutez de ses futurs besoins en informations, il indique
qu'il aimerait recevoir de nouvelles informations une fois que l'entreprise aura
réellement démarré : il aimerait connaître les ventes totales de vélos par
fabricant. Il pense que ces informations l'aideraient à déterminer quels vélos il
devrait constamment garder en stock. Un tel rapport n'existe pas actuellement,
alors demandez à Mike de l'esquisser sur une feuille de papier. Ensuite,
identifiez les sujets et les caractéristiques représentés dans le rapport et
ajoutez-les à la liste appropriée. Ajoutez le nouveau rapport à votre groupe
d’exemples de rapport. La figure 6.21 montre le croquis du nouveau rapport de
Mike.
Figure 6.21 Le croquis du nouveau rapport de Mike.
Votre analyse est maintenant terminée. Vous avez interviewé Mike et son
équipe, vous avez rassemblé tous les échantillons pertinents et vous avez créé
une liste de sujets et une liste de caractéristiques. Une liste partielle des sujets
et des caractéristiques est présentée dans la figure 6.22 . Tout ce que vous
avez à faire maintenant est de créer votre liste de champs préliminaire.
Figure 6.22 Listes partielles de sujets et de caractéristiques pour les vélos de
Mike.
Comme vous le savez déjà, vous devez affiner la liste des caractéristiques
avant qu'elle puisse devenir la première version de la liste préliminaire des
champs. Rayez les caractéristiques en double, les éléments qui représentent
la même caractéristique, et affinez les éléments qui portent des noms
génériques. (Vous vous souvenez du problème avec la caractéristique appelée
« Nom » ? Si vous trouvez de telles caractéristiques, le moment est venu de les
résoudre.) Ensuite, examinez tous vos échantillons et déterminez s'ils
contiennent des caractéristiques qui n'apparaissent pas actuellement dans la
liste de champs préliminaire. Ajoutez à la liste toutes les nouvelles
caractéristiques que vous trouvez. Lorsque vous avez terminé ces tâches, vous
disposez de la première version de votre liste de champs préliminaire.
Maintenant, vous rayez tous les champs calculés de la liste préliminaire des
champs et les placez sur leur propre liste ; cela devient votre nouvelle liste de
champs calculés. La figure 6.23 montre une petite partie de votre liste de
champs préliminaire et de votre liste de champs calculée finale.
Figure 6.23 Une liste de champs préliminaire partielle et une liste de champs
calculés.
Note
Vous avez peut-être remarqué que chaque liste inclut une date dans le
titre. Datar vos listes est une bonne idée afin que vous puissiez conserver un
historique clair de leur évolution.
Résumé
Ce chapitre a commencé par expliquer pourquoi vous devriez analyser la base
de données actuelle de l'organisation. Vous avez appris que l'analyse vous aide
à identifier les aspects de la base de données actuelle qui vous seront utiles
lors de la conception de la nouvelle base de données. Armé de ces
informations, vous pouvez concevoir une base de données qui répond le mieux
aux besoins de l'organisation. Ensuite, nous avons brièvement examiné les
deux types de bases de données couramment utilisées par les organisations :
les bases de données papier et les bases de données existantes . Nous avons
terminé celadiscussion en identifiant les trois étapes utilisées dans
le processus d'analyse : examiner la manière dont les données sont collectées,
examiner la manière dont l'information est présentée et mener des entretiens
avec le personnel de l'organisation.
Le chapitre se poursuit par une discussion du processus de révision. Vous avez
appris à examiner la manière dont l'organisation collecte ses données et à
rassembler un ensemble d' échantillons de collecte de données . Vous avez
ensuite appris à examiner la manière dont l'organisation présente les
informations et à rassembler un ensemble d' échantillons de rapports .
Nous avons ensuite discuté du processus que vous utilisez pour mener des
entretiens et vous avez appris pourquoi les entretiens sont utiles à cette étape
du processus de conception. Au cours de cette discussion, vous avez appris
deux techniques essentielles au succès des entretiens : la technique
d'identification du sujet et la technique d'identification des caractéristiques.
La réalisation d’entretiens avec les utilisateurs a été le prochain sujet de
discussion. Nous avons examiné les quatre questions que vous devez aborder
lors de ces entretiens, ainsi que les techniques que vous utilisez pour les
résoudre. Ensuite, nous avons discuté de la conduite d’entretiens avec la
direction. Ici, vous avez découvert les problèmes et les techniques que ces
entretiens intègrent.
Enfin, nous avons discuté du processus de compilation d'une liste de
champs basée sur la liste de caractéristiques et les caractéristiques qui
apparaissent dans les échantillons. Vous avez appris que vous décomposez la
liste de champs en deux listes distinctes : une liste de champs préliminaire et
une liste de champs calculés. La liste préliminaire des champs énumère les
exigences fondamentales en matière de données de l'organisation et établit
l'ensemble principal des champs que vous devez définir dans la base de
données. La liste des champs calculés se compose de champs contenant des
valeurs résultant de concaténations de chaînes ou d'expressions
mathématiques. Vous avez également appris à compiler une liste de valeurs,
c'est-à-dire une liste qui spécifie la plage de valeurs acceptable pour un champ
particulier dans la liste de champs préliminaire et qui aide souvent à appliquer
une règle métier donnée.
Questions de révision
1. Énoncez deux objectifs de l’analyse de la base de données actuelle.
2. Vrai ou Faux : Vous pouvez adopter la structure actuelle de la base de
données comme base pour la nouvelle structure.
3. Qu'est-ce qu'une base de données existante ?
4. Énoncez deux étapes du processus d’analyse.
5. Quels types de logiciels informatiques devriez-vous examiner lors de
l’analyse ?
6. Pourquoi devriez-vous mener des entretiens après avoir collecté des
échantillons de collecte de données et de présentation d’informations ?
7. Comment utilisez-vous les questions « ouvertes » et « fermées » ?
8. Qu'est-ce que la technique d'identification du sujet ?
9. Comment identifiez-vous les attributs spécifiques d’un sujet particulier ?
10. Vrai ou faux : vous devez interroger les utilisateurs et la direction en même
temps.
11. Quels sont les trois types fondamentaux d’exigences en matière
d’information que vous devez identifier ?
12. Qu'est-ce que la liste préliminaire des champs ?
13. Indiquez pourquoi chaque élément de la liste préliminaire des champs doit
avoir un nom unique.
14. Qu'est-ce qu'une liste de valeurs ?
15. Que sont les champs calculés ? Que devriez-vous faire (le cas échéant) à
leur sujet ?
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
6. Analyse de la base de données actuelle
7. Établir des structures de table
8. Clés
8h 33min restantes
Établir des structures de table
C'est une erreur capitale de théoriser avant de disposer de données.
—S HERLOCK H OLMES ,
LES AVENTURES DE S HERLOCK H OLMES _
Sujets abordés dans ce chapitre
Définir la liste des tables préliminaires
Définir la liste de la table finale
Association de champs à chaque table
Affiner les champs
Affiner les structures des tables
Exemple : établissement de structures de table
Résumé
Questions de révision
Les organisations utilisent des bases de données pour suivre divers sujets qui
leur tiennent à cœur. Par exemple, une clinique médicale garde une trace,
entre autres, de ses patients, de ses médecins et de ses rendez-vous ; une
entreprise de location d'équipement doit conserver des données sur ses
clients, ses équipements et ses contrats de location ; et un bureau du
registraire s'occupe (au minimum) des étudiants, du personnel enseignant et
des cours. Dans tous les cas – et dans tout autre scénario que vous pouvez
imaginer – un tableau dans la base de données représente chaque sujet. De
plus, chaque tableau est composé de champs qui représentent les
caractéristiques qui définissent ou décrivent le sujet du tableau. Les tableaux
constituent la base même de la base de données et garantissent une base
solide et solide lorsqu'ils sont correctement conçus.
Définir la liste des tables préliminaires
Au cours de cette partie du processus de conception de la base de données,
vous définirez une liste de tables préliminaire que vous utiliserez pour identifier
et établir les tables de la nouvelle base de données. Vous utiliserez trois
procédures pour développer cette liste. La première implique d'utiliser la liste
de terrain préliminaire, la seconde implique d'utiliser la liste de sujets que vous
avez rassemblés au cours du processus d'entretien et la troisième implique
d'utiliser les objectifs de mission que vous avez définis au début du processus
de conception de la base de données. Vous passerez ensuite à la construction
de la structure de chaque table à l'aide des champs de la liste de champs
préliminaire.
Identifier les sujets implicites
Le processus de définition des tables pour la base de données commence par
un examen de la liste de champs préliminaire. Votre objectif est d'identifier les
sujets impliqués par les champs de la liste.
Vous vous demandez peut-être pourquoi vous examinez la liste préliminaire des
champs au lieu de commencer par la liste des sujets. La liste des sujets semble
être un point de départ plus intuitif. Après tout, vous avez soigneusement
construit cette liste au cours du processus d'entretien et vous avez été
influencé par les conversations que vous avez eues avec les utilisateurs et la
direction. Tout cela vous a sûrement aidé à identifier chaque sujet qui doit être
représenté dans la base de données. Vous avez peut-être raison, mais vous
pourriez avoir un problème mineur si vous vous trompez : des tables
manquantes.
L'étude des champs de la liste de champs principale vous aide à identifier les
sujets d'un point de vue impartial : vous laissez les champs vous « parler ». Il
est crucial que vous regardiez maintenant cette liste le plus objectivement
possible, comme si vous ne l'aviez jamais vue auparavant, sans aucun des
préjugés que vous avez assimilés au cours du processus d'entretien. Cela
permet de voir comment certains groupes de domaines suggèrent des sujets
spécifiques, dont certains n'ont peut-être pas été identifiés lors du processus
d'entretien. Vous pouvez aussiutilisez la liste de champs préliminaire pour
vérifier de nombreux sujets figurant sur la liste de sujets. Utiliser la liste de
champs préliminaire de cette manière vous permet de recouper vos travaux
antérieurs et vous aide à vous assurer que la nouvelle structure de la base de
données inclut tous les sujets nécessaires.
Lorsque vous examinez la liste préliminaire des champs, demandez-vous si un
certain ensemble de champs définit ou décrit un sujet particulier. Passez à un
autre ensemble de champs si rien ne vous vient à l’esprit. Lorsque vous pouvez
déduire un sujet à partir du champ de la liste, entrez ce sujet dans une
nouvelle liste de tableaux préliminaires. La figure 7.1 montre un échantillon
partiel d'une liste de champs préliminaire et illustre comment un ensemble de
champs peut suggérer un sujet.
Figure 7.1 Utilisation de la liste de champs préliminaire pour identifier les
sujets.
Continuez votre examen jusqu'à ce que vous ayez scanné tous les champs et
identifié autant de sujets que possible. Assurez-vous d'ajouter chaque sujet que
vous identifiez à la liste des tableaux préliminaires. Cette liste s'allongera au
fur et à mesure que vous travaillerez avec la liste des sujets et des objectifs de
mission. La figure 7.2 montre un exemple de la première version d'une liste de
tableaux préliminaires.
Figure 7.2 La première version de la liste des tableaux préliminaires.
Utiliser la liste des sujets
Créez maintenant une deuxième version de la liste des tableaux préliminaires
en fusionnant la liste des sujets (créée lors des entretiens avec les utilisateurs
et la direction) avec la première version de la liste des tableaux préliminaires
(compilée en étudiant la liste des champs préliminaires). Cette nouvelle version
contient une liste de tableaux plus complète. La fusion des deux listes est un
processus en trois étapes, qui consiste à résoudre les éléments en double, à
résoudre les éléments qui représentent le même sujet et à combiner les
éléments restants en une seule liste.
Étape 1 : Résoudre les éléments en double
Commencez cette étape en examinant et en recoupant chaque élément de la
liste de sujets par rapport aux éléments de la liste du tableau
préliminaire. Votre objectif ici est d'identifier les éléments en double, qui sont
des éléments de la liste des sujets qui apparaissent déjà sur la liste du tableau
préliminaire. Vous devez faire très attention à la manière dont vous résolvez les
éléments en double que vous trouvez. Commencez par déterminer si les
éléments représentent des sujets différents , malgré le fait qu'ils portent le
même nom. (Utilisez vos notes d'entretien si nécessaire pour vous aider à
prendre votre décision.) Si elles représentent des sujets différents, renommez
chaque élément afin qu'il identifie avec précision le sujet qu'il représente, puis
ajoutez les deux éléments à la liste du tableau préliminaire ; sinon, déterminez
s’ils représentent vraiment la même chosesujet. Lorsque vous concluez que les
deux éléments représentent le même sujet, rayez l’élément de la liste des
sujets et conservez celui qui apparaît sur la liste du tableau
préliminaire. Reprenez l'examen jusqu'à ce que vous ayez examiné tous les
éléments de la liste des sujets et de la liste du tableau préliminaire. Jetons un
coup d'œil à un exemple de ce processus.
Supposons que vous développez une base de données pour une entreprise de
location d'équipement et que vous travaillez avec la liste de sujets et la liste
des tableaux préliminaires présentés dans la figure 7.3 .
Figure 7.3 La liste des sujets et la liste des tableaux préliminaires pour une
entreprise de location d'équipement.
En examinant ces listes, vous découvrez deux éléments en double :
« Équipement » et « Contrats de location ». Ces éléments méritent un examen
plus approfondi, vous commencez donc par « Équipement » et essayez de
déterminer si chaque occurrence représente un sujet différent . En examinant
vos notes d'entretien, vous constatez que « Équipement » sur la liste des sujets
représente des éléments tels que des outils, des appareils électroménagers et
du matériel audiovisuel. Vous vous souvenez alors que « Équipement » sur la
liste du tableau préliminaire comprend également les camions, les
fourgonnettes et les remorques. Vous examinez plus en détail vos notes
d'entretien et découvrez que la location de véhicules est traitée différemment
de la location d'équipement « normale ». Par conséquent, chaque occurrence
de « Équipement » représente un sujet différent. Vous résolvez la duplication
en conservant une occurrence de « Équipement » et en renommant les autres
« Véhicules ». Vous répertoriez ensuite les deux éléments dans la liste des
tableaux préliminaires.
Vous suivez maintenant le même processus avec les « Contrats de
location ». Heureusement, vous découvrez que les deux occurrences partagent
exactement la même signification. La seule chose que vous devez faire dans ce
cas est de rayer « Contrats de location » dans la liste des sujets. Vous pouvez
maintenant poursuivre votre examen jusqu'à ce que vous ayez inspecté
chaque élément de la liste des sujets. La figure 7.4 montre la liste révisée des
sujets et la liste des tableaux préliminaires.
Figure 7.4 Liste révisée des sujets et liste préliminaire révisée des tableaux
(première vue).
Étape 2 : résoudre les éléments qui représentent le même sujet
Votre objectif au cours de cette étape du processus de fusion est de déterminer
si un élément de la liste des sujets et un élément de la liste du tableau
préliminaire représentent le même sujet même s'ils portent des
noms différents . Lorsque vous identifiez un tel ensemble d'éléments,
sélectionnez le nom qui représente le mieux le sujet et utilisez-le comme
identifiant unique pour ce sujet, puis traitez le nom de cette manière :
• Si le nom que vous avez sélectionné apparaît déjà dans la liste du tableau
préliminaire, rayez son homologue dans la liste des sujets.
• Si le nom apparaît sur la liste des sujets, supprimez son homologue de la
liste du tableau préliminaire et remplacez -le par le nom de la liste des
sujets.
Répétez ce processus jusqu'à ce que vous ayez couvert tous les éléments de la
liste des sujets.
En poursuivant avec l'exemple de l'entreprise de location d'équipement,
supposons que vous ayez découvert que les « Clients » et les « Employés » sur
la liste des sujets et les « Clients » et les « Représentants commerciaux » sur la
liste du tableau préliminaire représentent (respectivement) le même sujet
(voir Figure 7.4 ). Décidant de traiter d'abord des « Clients » et des « Clients »,
vous examinez vos notes d'entretien et déterminez que « Clients » est le nom
qui représente le mieux à la fois les personnes et les organisations qui louent
du matériel auprès de l'entreprise. Vous résolvez ensuite la duplication en
conservant « Clients » et en rayant « Clients ». Passant à l'ensemble suivant
d'éléments en double, vous décidez de conserver « Employés » et de
supprimer « Représentants commerciaux », car vous pensez que « Employés »
décrit le mieux les personnes employées par l'entreprise, quel que soit leur
poste. La figure 7.5 montre une version révisée des deux listes et la résolution
des éléments en double.
Figure 7.5 Liste révisée des sujets et liste préliminaire révisée des tableaux
(deuxième vue).
Étape 3 : Combinez les éléments de la liste des sujets et de la liste de champs
préliminaire
La dernière étape de ce processus est la plus simple des trois. Tout ce que vous
avez à faire est d'ajouter les éléments restants de la liste des sujets à la liste
du tableau préliminaire. Jetez la liste des sujets, vous n’en aurez plus besoin. La
liste qui reste devient la deuxième version de la liste des tableaux
préliminaires. C'est tout ce qu'on peut en dire! La figure 7.6 montre la
deuxième version de la liste des tableaux préliminaires, qui est le résultat de la
fusion des deux listes présentées dans la figure 7.5 .
Figure 7.6 La deuxième version de la liste des tableaux préliminaires.
Utiliser les objectifs de la mission
Dans cette troisième et dernière procédure, vous utilisez les objectifs de la
mission pour déterminer si vous avez oublié des sujets lors des deux
procédures précédentes. C'est votre dernière opportunité d'ajouter des tables à
la liste préliminaire des tables.
Commencez par le premier objectif de la mission et utilisez la technique
d'identification du sujet pour identifier les sujets représentés dans cette
déclaration. Notez chaque sujet que vous identifiez sur une feuille de papier
séparée, puis vérifiez-le par rapport aux éléments de la liste du tableau
préliminaire. Utilisez ici les mêmes techniques que celles utilisées dans la
procédure précédente.
1. Lorsqu'un élément que vous avez noté dans l'énoncé de l'objectif de la
mission correspond à un élément de la liste du tableau préliminaire,
déterminez si les éléments représentent des sujets différents. Si tel est le
cas, attribuez un nom approprié à chaque occurrence, puis ajoutez-les à la
liste des tableaux préliminaires ; sinon, rayez l’élément en double que vous
avez noté.
2. Lorsqu'un élément que vous avez noté dans l'énoncé de l'objectif de la
mission a un nom qui est synonyme du nom d'un élément de la liste du
tableau préliminaire et que les deux éléments représentent le même sujet,
sélectionnez le nom qui identifie le mieux ce sujet et utilisez-le dans la liste
préliminaire. Liste des tableaux.
3. Lorsqu'un élément que vous avez noté dans l'énoncé de l'objectif de la
mission représente un nouveau sujet, ajoutez-le à la liste du tableau
préliminaire.
Répétez ces étapes jusqu'à ce que vous ayez atteint tous les objectifs de la
mission. Voici un exemple de la façon dont vous utilisez ces techniques pour
revoir les objectifs de la mission.
Supposons que vous concevez une base de données pour une école de
formation au pilotage. Vous venez tout juste de commencer ce processus
particulier et vous venez d'utiliser la technique d'identification du sujet sur
l'énoncé suivant :
Nous devons conserver des données sur nos pilotes et leurs certifications .
Vous vérifiez maintenant les sujets que vous avez identifiés dans cet objectif de
mission avec les éléments de la liste du tableau préliminaire présentée dans la
figure 7.7 .
Figure 7.7 Liste préliminaire des tableaux pour une école de formation au
pilotage.
Dans ce cas, vous rayez « pilotes » dans l'énoncé de l'objectif de la mission, car
il existe déjà dans la liste du tableau préliminaire et représente le même
sujet. Vous décidez alors d’examiner plus à fond les « certifications » et, après
mûre réflexion, vous faites ces observations.
• Il n'apparaît pas sur la liste des tableaux préliminaires.
• Il ne duplique aucun élément de la liste des tables préliminaires.
• Son nom n'est synonyme d'aucun élément de la liste préliminaire du
tableau.
• Il ne représente pas le même sujet que n’importe quel autre élément de la
liste du tableau préliminaire.
Ces résultats indiquent que le terme « certifications » est un nouvel élément et
devrait être ajouté à la liste du tableau préliminaire. Donc, vous l'ajoutez à la
liste du tableau préliminaire et vous le rayez sur l'énoncé des objectifs de la
mission ; cela vous montre que vous avez déjà traité cet élément particulier. La
figure 7.8 montre la version révisée de la liste des tableaux préliminaires.
Figure 7.8 Liste des tableaux préliminaires révisée.
Définir la liste de la table finale
Votre liste de tables préliminaires est aussi complète que possible à ce stade,
vous allez donc maintenant la transformer en liste de tables finale . Cette
nouvelle liste intègre deux éléments qui ne figurent pas actuellement dans la
liste préliminaire des tables : le type de table et la description de la table. La
figure 7.9 montre un exemple de liste de table finale.
Figure 7.9 Un exemple de liste de table finale.
Un type de table vous permet de classer une table en fonction du rôle qu'elle
joue dans la base de données et vous fournit un moyen d'identifier les tables
qui fonctionnent de manière similaire. Le rôle de la table détermine son type, et
vous pouvez associer quatre types de table à une table donnée :
1. Une table de données représente un sujet important pour l'organisation et
constitue le fondement principal des informations fournies par la base de
données. (Vous en apprendrez davantage sur les tableaux de données plus
loin dans ce chapitre.)
2. Une table de liaison établit un lien entre deux tables dans une relation
plusieurs-à-plusieurs. ( Le chapitre 10 , « Relations entre les tables », traite
plus en détail de la liaison des tables.)
3. Une table de sous-ensemble contient des champs liés à une table de
données particulière et décrit en outre le sujet de la table de données d'une
manière très spécifique. (Vous en apprendrez davantage sur les tables de
sous-ensembles plus loin dans ce chapitre.)
4. Une table de validation contient des données relativement statiques et
constitue un élément crucial de l'intégrité des données. ( Le chapitre 11 ,
« Règles métier », fournit plus de détails sur ce type de tableau.)
Une description de tableau fournit une définition claire du sujet représenté par
le tableau et indique pourquoi le sujet est important pour
l'organisation. Certaines directives régissent la façon dont vous créez une
description de table et vous en apprendrez davantage plus loin dans ce
chapitre. Vous avez une dernière tâche à effectuer avant de transformer votre
liste de tables préliminaire en liste de tables finale : affiner les noms des tables.
Affiner les noms des tables
Nommer une table est une affaire plus complexe que vous ne le pensez pour le
moment. Comme vous l'avez appris au chapitre 3 , « Terminologie », un tableau
représente un seul sujet ; son nom doit donc clairement identifier le sujet qu'il
représente.
Directives pour la création de noms de table
Les instructions suivantes vous aideront à créer des noms de table clairs, sans
ambiguïté, descriptifs et significatifs. Ils vous aideront également à garantir
que vous nommez vos tables de manière cohérente.
• Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation. L'utilisation de noms uniques permet de garantir que chaque
tableau représente clairement un sujet différent et que tous les membres de
l'organisation comprendront ce que le tableau représente. (Si vous
rencontrez des noms de table en double à ce stade, résolvez le problème en
utilisant les techniques que vous avez apprises plus tôt dans ce chapitre.)
Choisissez des noms suffisamment descriptifs pour être explicites. «
Entretien du véhicule » est un exemple de bon nom descriptif. Définir un
nom unique et descriptif demande un certain travail de votre part, mais cela
en vaut la peine à long terme.
• Créez un nom qui identifie avec précision, clarté et sans ambiguïté le sujet
du tableau. Des noms vagues ou ambigus indiquent généralement que le
tableau représente plus d'un sujet. Lorsque vous rencontrez un tel nom,
identifiez les sujets que le tableau représente réellement, puis traitez
chaque sujet comme un tableau distinct. « Dates » est un bon exemple de
nom de table vague. On ne sait vraiment pas ce que représente le tableau
sans se référer à sa description. Par exemple, supposons que vous concevez
une base de données pour une agence de divertissement et que ce tableau
apparaisse dans la liste des tableaux préliminaires. En voyant ce nom de
table, vous décidez de revoir vos notes d’entretien. Vous découvrez qu'une
personne dit que « Dates » représente des rendez-vous pour des réunions
avec des clients, et une autre personne dit que cela représente des dates de
réservation pour l'écurie d'artistes de l'agence. Ce tableau représente
clairement deux sujets, vous supprimez donc « Dates » de la liste des
tableaux préliminaires et le remplacez par deux nouveaux tableaux appelés
« Réunions clients » et « Horaires des artistes ».
Le nom le plus vague et le plus ambigu que vous puissiez attribuer à une
table est peut-être « Divers ». Il n’identifie aucun sujet. Vous pourriez
parfois vous sentir obligé de créer un tableau « Divers » parce que vous ne
savez tout simplement pas quoi faire avec certains champs de votre liste de
champs préliminaire. Lorsque cela se produit, arrêtez-vous, faites une
pause, puis revenez et réexaminez ces champs. Appliquez soigneusement et
méthodiquement les techniques de conception que vous avez apprises, et
vous êtes sûr de déterminer quoi faire avec les champs après tout.
• Utilisez le nombre minimum de mots nécessaire pour transmettre le sujet du
tableau. Tout le monde dans l’organisation doit être capable d’identifier ce
que représente le tableau sans avoir à lire sa description. Même si votre
objectif est de créer un nom de table court et succinct, évitez d'utiliser une
approche minimaliste. « TD_1 » est un bon exemple de nom extrêmement
court. Vous n'aurez pas la moindre idée de ce que représente ce tableau à
moins de connaître lesignification de chaque caractère du nom. Vous devez
également éviter d’aller dans la direction opposée. « Équipement d'entretien
de véhicules polyvalents » est beaucoup trop long et peut facilement être
raccourci en « équipement ».
• N'utilisez pas de mots qui véhiculent des caractéristiques physiques. Évitez
d'utiliser des mots tels que fichier, enregistrement et table dans le nom de
la table, car ils ajoutent un niveau de confusion dont vous n'avez pas
besoin. Un nom de table incluant ce type de mot est très susceptible de
représenter plusieurs sujets. Considérez le nom « Dossier patient ». À
première vue, ce nom peut sembler acceptable. Vous vous rendrez compte,
cependant, que ce nom pose des problèmes potentiels lorsque vous prenez
le temps de réfléchir à ce qu'un « dossier patient » est censé représenter. Le
nom contient un mot que vous vous efforcez d'éviter ( record ) et il
représente potentiellement trois sujets : « patients », « médecins » et «
examens ». Dans cette optique, supprimez « patients » de la liste des
tableaux préliminaires et remplacez-la par trois nouveaux tableaux, un pour
chacun des trois sujets.
• N'utilisez pas d'acronymes et d'abréviations. Les acronymes sont difficiles à
déchiffrer, les abréviations transmettent rarement le sujet du tableau et
toutes deux violent la première directive de cette liste. Prenez les
acronymes, par exemple. Supposons que vous aidiez une organisation à
réviser la structure de sa base de données et que vous rencontriez une table
nommée « SC ». Comment savoir ce que représente le tableau sans
connaître la signification des lettres elles-mêmes ? Le fait est qu’il n’est pas
facile d’identifier le sujet du tableau. De plus, vous constaterez peut-être
que le tableau signifie des choses différentes pour différents départements
de l'organisation. Vous décidez donc de mener un bref entretien avec
certains membres du personnel pour déterminer ce que représentent les
lettres. (Maintenant, c'est la partie effrayante.) À votre incrédulité, vous
découvrez que les membres du personnel pensent que cela signifie
« Comités directeurs » ; le personnel des systèmes d'information pense qu'il
s'agit de « Configurations système » ; et les personnes en sécurité insistent
sur le fait que cela représente des « codes de sécurité ». CeCet exemple
illustre clairement pourquoi vous devez faire tout votre possible pour éviter
d'utiliser des abréviations et des acronymes dans un nom de table.
• N'utilisez pas de noms propres ou d'autres mots qui restreindraient
indûment les données pouvant être saisies dans le tableau. Cette ligne
directrice vous évitera de tomber dans le piège de la création de structures
de tables en double. Un nom tel que « Employés de la région du Sud-
Ouest », par exemple, restreint considérablement les données que vous
pouvez saisir dans ce tableau. À mesure que l’organisation se développe,
comment allez-vous gérer les employés d’autres régions ? Lorsque
l'organisation commencera à embaucher des employés dans l'État de
Washington, l'Oregon et l'Idaho, vous devrez créer une table « Employés de
la région du Nord-Ouest du Pacifique », et vous devrez créer une table «
Employés de la région de l'Ouest » lorsque l'organisation commencera à
embaucher. des gens en Arizona, en Utah, au Nevada et en Californie.
Les principes de conception de bases de données appropriés dictent que
vous ne devez pas créer de structures en double comme celles-ci, car elles
peuvent être très problématiques.
1. Les utilisateurs pourraient avoir du mal à récupérer simultanément les
données des trois tables.
2. La personne qui gère la base de données aurait la responsabilité
supplémentaire de garantir que les tables sont toujours structurellement
synchronisées. S'il ajoute, modifie ou supprime un champ dans une table,
il doit effectuer la même action sur toutes les autres tables.
3. La personne qui gère la base de données aurait également la
responsabilité supplémentaire d'assurer l'intégrité des données
synchronisées entre les tables. Il doit être en mesure de garantir que les
données sont transférées de manière complète et exacte d'une table à
l'autre lorsqu'un employé déménage d'une région à une autre.
• N'utilisez pas de nom qui identifie implicitement ou explicitement plus d'un
sujet. C'est l'une des erreurs les plus courantes que vous pouvezmake avec
un nom de table, et il est relativement facile à identifier. Ce type de nom
contient généralement le mot et ou ou et des caractères tels que la barre
oblique (\) ou l'esperluette (&) ; les exemples incluent « Département ou
succursale » et « Installation/Bâtiment ». Un tableau dont le nom est ambigu
suggère que vous n'avez peut-être pas identifié le sujet de manière claire ou
précise lors des processus d'analyse et d'entretien. Vous pouvez remédier à
ce problème en révisant vos notes et en effectuant des analyses et des
entretiens plus approfondis si nécessaire. N'oubliez pas que vous devez
toujours vous assurer que chaque tableau ne représente qu'un seul sujet.
Un autre nom qui entre dans cette catégorie est « Divers ». (Oui, voici
encore ce nom !) Il y a un instant, je disais que ce nom n'identifiait pas du
tout un seul sujet ; c'est une affirmation correcte et valable. Il est également
vrai, cependant, que le nom identifie implicitement plus d’un sujet ; vous ne
pouvez pas identifier spécifiquement les sujets car le nom est vague et
ambigu. Le dictionnaire en ligne Merriam-Webster définit le mot lui-même
comme suit :
Divers adj. 1. composé de choses ou de membres divers ; hétérogène. 2.
avoir divers traits.
Vous pouvez clairement voir les problèmes que ce nom crée, vous ne devez
donc pas du tout l'utiliser comme nom de table. Il y a certainement de
bonnes raisons de ne pas le faire.
• Utilisez la forme plurielle du nom. Comme vous le savez, un tableau
représente un seul sujet, qui peut être un objet ou un événement. Vous
pouvez aller plus loin dans cette définition et affirmer qu'une table
représente une collection d' objets ou d'événements similaires . Par
exemple, un commercial souhaite conserver des données sur tous ses
clients, pas seulement sur un seul ; et une entreprise de location de voitures
souhaite garder une trace de tous ses véhicules, pas seulement de la BMW
bleue. Utiliser le pluriel du nom de la table est une bonne idée car cela
rendeffacez votre intention de faire référence à une collection. Bien
entendu, les collections prennent toujours le pluriel (« Bateaux » et non «
Bateau »). En revanche, les mots qui identifient les champs sont toujours au
singulier (« Téléphone personnel » et non « Téléphones résidentiels »). Le
respect de cette règle vous permettra de différencier facilement les noms
de tables et les noms de champs dans toute documentation que vous créez
pour la base de données. (Lorsque vous renommez vos tableaux, n'oubliez
pas que la forme plurielle de certains mots ne se termine pas par - s ou
- es. Par exemple, les formes singulière et plurielle de « équipement » sont
exactement les mêmes.)
Utilisez ces instructions pour affiner chaque nom de table dans la liste de
tables préliminaire. Lorsque vous avez terminé, cette liste devient votre liste de
table finale et le reste pendant toute la durée du processus de conception de la
base de données. Notez que la liste est « définitive » uniquement dans le sens
où vous avez pris en compte tous les tableaux que vous avez identifiés tout au
long du processus d'analyse. Il est très probable que vous ajoutiez de nouvelles
tables à cette liste en fonction des exigences imposées par les relations,
l'intégrité des données ou d'autres informations que vous développez.
Note
Les lignes directrices relatives à l'utilisation du pluriel pour un nom de table
sont particulièrement utiles lorsque vous travaillez sur la conception logique de
la base de données. Il est très facile de différencier les noms de tables des
noms de champs, en particulier lorsque vous les affichez sur un écran de
projection ou lorsque vous les avez tous écrits sur un tableau blanc dans une
salle de conférence.
Gardez toutefois à l’esprit que les noms des tables sont susceptibles de
changer une fois que vous (ou le développeur de base de données chargé de
l’implémentation de la base de données) commencerez à implémenter la base
de données dans une application SGBDR spécifique. Les noms devront ensuite
être conformes aux conventions de dénomination standard de votre
organisation ou que les développeurs utilisent couramment pour le SGBDR.
Indiquer les types de tables
Comme vous l'avez appris plus tôt dans ce chapitre, vous indiquez le type de
chaque table dans la liste des tables finales. Rappelez-vous que les quatre
classifications que vous pouvez utiliser pour identifier le type de table sont les
données, les liaisons, les sous-ensembles et la validation.
Lorsque vous créez pour la première fois votre liste de table finale, chaque
élément de la liste est une table de données car il représente un sujet
important pour l'organisation et sert de base principale aux informations
fournies par la base de données. Il n'y aura pas de tables de liaison ou de
tables de validation dans la liste car vous n'avez pas encore défini de relations
ni imposé l'intégrité des données. (Vous aborderez ces problèmes plus tard
dans le processus de conception.) La liste ne contiendra pas de tables de sous-
ensembles car vous les définissez après avoir attribué des champs aux tables
de données.
Pour le moment, désignez chaque table de la liste des tables finales comme
table de données. Vous attribuerez d’autres types de tables ultérieurement, à
mesure que le processus de conception de la base de données continue de se
dérouler.
Composer les descriptions des tableaux
La description du tableau est un autre aspect d'un tableau que vous
enregistrez dans la liste des tableaux finaux. Une description de table est
cruciale car elle aide chacun à comprendre pourquoi une table donnée existe et
pourquoi l'organisation souhaite collecter les données de cette table. En fait, la
description doit définir explicitement le tableau et indiquer son
importance pour l'organisation. Peu importe que la définition vienne en premier
ou que vous utilisiez plus d'une phrase pour transmettre cette information. La
définition et l'explication de l'importance du tableau doivent figurer dans la
description. La description du tableau fournit également un moyen de valider la
nécessité d'un tableau. Si vous ne parvenez pas à expliquer pourquoi un
tableau est important pour l'organisation, vous devez alors déterminer quand
et comment le tableau a été identifié et s'il est nécessaire.
Lignes directrices pour composer une description de tableau
Tout comme vous disposiez de directives pour vous aider à définir les noms de
table, vous disposez également d'un ensemble de directives pour vous aider à
rédiger une description de table ciblée, concise, sans ambiguïté et claire :
• Incluez une déclaration qui définit avec précision le tableau. N'importe qui
devrait facilement être en mesure de déterminer l'identité de la table à
partir de sa description, sans aucune confusion ni incertitude. Voici un
exemple de mauvaise définition d'une table nommée « Fournisseurs » dans
une base de données de boulangerie. Comme vous pouvez le constater, ce
n'est pas très précis :
Fournisseurs : les entreprises qui nous fournissent des ingrédients et des
équipements
Et si la boulangerie recevait certains de ses ingrédients auprès de petits
agriculteurs locaux ? Les petits agriculteurs ne sont certainement pas
considérés comme des « entreprises ». Quel type d’équipement ces
fournisseurs fournissent-ils ? Ustensiles de cuisine? Des diables ? Des
supports de livraison ? Voici une bien meilleure définition des fournisseurs :
Fournisseurs : les personnes et les organisations auprès desquelles nous
achetons des ingrédients et des équipements.
Cette instruction peut être utilisée dans la description de la table
comme définition de la table.
• Incluez une déclaration expliquant pourquoi ce tableau est important pour
l’organisation. Une table contient des données collectées, conservées,
manipulées et récupérées par l'organisation pour une
raison particulière . Votre déclaration doit expliquer pourquoi les données
sont importantes pour l'organisation. En gardant à l’esprit que cette
instruction fait partie de la description de votre table, vous pourriez être
tenté de construire une instruction telle que celle-ci :
Nous avons besoin de la table Fournisseurs pour garder une trace des noms,
adresses, numéros de téléphone et noms de contacts de tous nos
fournisseurs.
Cette déclaration est inadéquate car elle met uniquement l'accent sur ce
qui doit être stocké dans la table Fournisseurs au lieu
d'amplifier pourquoi les données sont importantes pour
l'entreprise. L’exemple suivant donne une meilleure idée de l’importance de
l’information :
Les informations sur les fournisseurs sont vitales pour la boulangerie car
elles nous permettent de maintenir un approvisionnement constant en
ingrédients et de garantir que nos équipements sont toujours en état de
marche.
Il s'agit d'une déclaration plus efficace car elle traduit l'importance des
données en identifiant les services que les fournisseurs fournissent à la
boulangerie. Cela implique également que la boulangerie pourrait manquer
d'ingrédients ou avoir du mal à maintenir son équipement en parfait état
sans les services des fournisseurs. Cette déclaration reflète désormais
pourquoi la table est importante pour l'organisation.
• Rédigez une description claire et succincte. Évitez l'erreur courante
consistant à reformuler ou à reformuler le nom de la table dans la
description de votre table, comme dans cet exemple :
Horaire de l'étudiant : l'horaire de cours de l'étudiant
Ne soyez pas trop bref ou trop verbeux. Vous voulez vous assurer que tout le
monde peut identifier le tableau et comprendre son importance pour
l'organisation, mais vous voulez également éviter de fournir trop
d'informations. Voici un exemple de description assez longue et fournissant
plus d'informations que nécessaire :
Horaire des étudiants : tous les cours auxquels un étudiant assistera (y
compris les jours, les heures et le professeur qui dirige le cours) au cours de
l'année scolaire. Les données de ce tableau sont importantes car elles
permettront à l'élève de connaître le nom de la classe ainsi que l'heure et
l'endroit où il est censé se trouver. De plus, l'étudiant connaîtra la durée du
cours, ainsi que le nom de l'enseignant qui enseigne le cours.
Cela peut être reformulé de manière plus claire et succincte comme suit :
Horaire de l'élève : cours auxquels l'élève doit assister au cours de cette
année scolaire. Les informations fournies par ce tableau aident l'élève à
mettre en œuvre une gestion efficace du temps et permettent à l'école de
comprendre la charge de classe et la charge de travail des élèves.
La première phrase de cet exemple fournit la définition du tableau et la
deuxième phrase indique pourquoi le tableau est important pour
l'organisation universitaire.
• N'incluez pas d'informations spécifiques à l'implémentation dans la
description de votre table, telles que la manière et l'endroit où la table est
utilisée. Évitez les déclarations indiquant comment vous utiliserez
spécifiquement cette table ou comment vous y accéderez physiquement. Ce
type d'informations concerne le processus de mise en œuvre de la base de
données , qui est totalement distinct du processus de conception de base
de données que vous apprenez dans ce livre. Voici un exemple de
description contenant ce type d’informations inappropriées :
Horaire de l'élève : cours auxquels l'élève doit assister au cours de cette
année scolaire. Ces informations sont utilisées par le registraire et sont
accessibles à partir du menu Admissions des étudiants dans le programme
d'inscription.
• Ne faites pas dépendre la description d’une table de la description d’une
autre table. Chaque description de tableau doit être explicite et
indépendante de toute autre description de tableau ; il ne devrait
absolument pas être nécessaire de croiser les descriptions d'une table avec
une autre. C'est le type de déclaration que vous essayez d'éviter :
Personnes à charge : le conjoint, les enfants ou les pupilles d'un employé
donné. (Voir la description de la table Employé pour plus d'informations.)
Voici une bien meilleure description :
Personnes à charge : le conjoint, les enfants ou les pupilles d'un employé
donné. Ces informations nous permettent d'effectuer les déductions fiscales
appropriées pour l'employé et sont nécessaires aux programmes
d'avantages sociaux auxquels l'employé est inscrit.
• N'utilisez pas d'exemples dans une description de tableau. Un exemple est
un outil de communication précieux qui vous aide à transmettre une
signification ou un concept particulier et qui est très efficace lorsque vous
l’utilisez judicieusement. Cependant, un exemple dépend d’informations
supplémentaires (et, dans certains cas, d’autres exemples) pour compléter
l’idée qu’il est censé véhiculer. Par exemple, pensez simplement au nombre
d’exemples que vous devrez utiliser pour définir pleinement ce que
représente un tableau. Une description bien définie est claire, succincte et
explicite ; par conséquent, il n’a pas besoin d’un exemple pour transmettre
sa signification.
Interviewer les utilisateurs et la direction
Vous allez maintenant définir les descriptions des tables de la liste des tables
finales. Vous mènerez des entretiens avec les utilisateurs et la direction et
solliciterez leur aide pour établir la définition et l'importance de chaque table
pour l'organisation. (C'est l'une des rares fois où vous interviewerez les deux
groupes ensemble.) Votre objectif principal est d'obtenir un consensus sur les
descriptions générales des tableaux. Une fois vos entretiens terminés, prenez
vos notes et rédigez les descriptions de la table finale, en veillant à suivre les
directives décrites plus haut dans ce chapitre. Discutez ensuite à nouveau avec
les deux parties pour vous assurer que les descriptions sont acceptables et
faciles à comprendre par tous. La liste de la table finale est complète lorsque
tout le monde s'est mis d'accord sur les descriptions.
Prenons cet exemple : supposons que vous développez une base de données
pour un organisme local de formation en logiciels. Votre assistant, John, mène
un entretien avec certaines personnes de l'organisation. Plus précisément, il
parle à Mark du service administratif ; Jason, le coordinateur des
instructeurs ; Sara, la vice-présidente des ventes ; et Carol, lachef de
l'organisation. Le dialogue qui suit est une transcription partielle de l'entretien
de John. John discute actuellement de la table des étudiants.
Note
Contrairement aux entretiens que vous avez menés lors des étapes d’analyse
et d’examen des exigences du processus de conception, vous n’avez plus
besoin d’impliquer tout le monde dans l’organisation. Cependant, vous
travaillerez avec un groupe représentatif d'utilisateurs et de direction pour les
entretiens que vous mènerez tout au long du processus de conception.
JOHN :« D'accord, parlons de la table des étudiants. Comment décririez-vous un
« étudiant » ?
J ASON :« Un étudiant est un particulier qui vient suivre un de nos cours. »
SAR :« Ce n'est que partiellement vrai. Un étudiant peut également être une
personne qu’une organisation envoie à nos cours. Par exemple, beaucoup de
nos étudiants viennent de banques et de compagnies d'assurance locales, et
ces organisations paient les frais de scolarité des étudiants.
MARQUE :"Logique. Je suppose que nous pouvons simplement dire qu’un
étudiant est une personne qui vient à l’un de nos cours.
(John prend note de ce que Mark vient de dire.)
JOHN :"Bien, je l'ai compris. Quelqu'un a-t-il autre chose à ajouter ?
(Pause…)
"Super. Maintenant, comment expliqueriez-vous à quelqu’un pourquoi les
informations sur les étudiants sont importantes pour cette organisation ? »
CAROL :« Sans étudiants, nous n'avons pas d'entreprise !
J ASON :« Si nous pouvons suivre les étudiants qui fréquentent nos cours, nous
pouvons leur envoyer des informations concernant nos nouveaux cours. »
SAR :« Garder une trace de ces informations nous permet de maintenir à jour
les informations de facturation et de contact. Cela est particulièrement vrai
pour les organisations qui envoient leurs employés suivre nos cours. Les
coordinateurs de formation évoluent vers d'autres postes et il faut connaître le
nom de la nouvelle personne avec qui nous aurons affaire.
JOHN :"Bon point. Quelqu'un a-t-il quelque chose à ajouter ? D'accord, est-ce
que tout le monde est d'accord avec ce qui a été dit jusqu'à présent ?
(Tout le monde hoche la tête en signe d'approbation. Comme aucun
commentaire supplémentaire n'est fait, John prend quelques notes finales et
passe au tableau suivant.)
Comme vous pouvez le constater, mener ce type d’entretien est une affaire
assez simple. Remarquez comment John tente d'obtenir un consensus en
reconnaissant que personne n'a autre chose à dire sur le sujet en question. Il
note ensuite les points qui l'aideront à rédiger la description et passe à son
sujet suivant.
Une fois que John a fini de mener l’entretien, il utilise ses notes pour élaborer
une description de chaque table de la liste finale des tables. Il devra interpréter
et étudier les réponses des participants pour élaborer une description de
tableau adaptée. Sur la base de son examen, John rédige la description
suivante :
Étudiants : les personnes qui assistent à nos cours. Les informations fournies
par les données du tableau Étudiants permettent à notre organisation de
promouvoir davantage nos cours et soutiennent une bonne communication
avec les étudiants.
John écrit ensuite une description pour chaque table de la liste des tables
finales. Lorsqu'il aura terminé, il parlera à nouveau avec Mark, Jason, Sara et
Caroline pour s'assurer que les descriptions sont acceptables et que tout le
monde les comprend sans aucune difficulté.
Association de champs à chaque table
Au chapitre 3 , vous avez appris que les tables sont composées de champs. Au
cours de cette étape du processus de conception de la base de données, vous
attribuerez des champs à chaque table de la liste des tables finales à l'aide des
champs de votre liste de champs préliminaire.
L'attribution de champs à une table est un processus relativement simple :
déterminez quels champs représentent le mieux les caractéristiques du sujet
de la table et affectez-les à cette table. Répétez cette procédure pour chaque
table de la liste des tables finales. Si vous pensez pouvoir utiliser un champ ou
un ensemble de champs pour représenter les caractéristiques de plusieurs
tables, attribuez-les en conséquence. Vous découvrirez plus tard si vous avez
attribué les champs appropriés à chaque table lorsque vous affinerez les
structures des tables.
Note
Dans les exemples suivants, vous remarquerez que je vous demande d'utiliser
des feuilles de papier pour des procédures spécifiques. L'utilisation du papier
vous aide à éviter la tentation d'utiliser un programme SGBDR pour concevoir
votre base de données. Je ne saurais trop insister ou exagérer sur le fait que
vous ne devez pas utiliser l'ordinateur du tout tant que le processus de
conception de base de données n'est pas terminé, à moins que vous n'utilisiez
un type de logiciel spécifique à la conception de base de données . En tenant
compte de ces conseils, vous éviterez les pièges dont je parlerai plus loin
dans le chapitre 14 , « Mauvaise conception : ce qu'il ne faut pas faire ».
Commencez ce processus en prenant une feuille de papier et en la posant
devant vous dans le sens de la longueur, de gauche à droite. Écrivez le nom de
chaque table (de la liste des tables finales) en haut de la feuille, en
commençant par le côté gauche ; laissez suffisamment d'espace entre les
noms de table pour vous donner suffisamment d'espace pour lister les noms de
champs longs en dessous. Répétez cette procédure en utilisant autant de
feuilles que nécessaire pour tenir compte de chaque tableau de la
liste. Poursuivant avec l'exemple de la base de données scolaire, la figure
7.10 montre l'ensemble des structures de tables actuellement en cours de
développement.
Figure 7.10 Configuration d'une feuille pour lister les structures de table.
Ensuite, attribuez les champs de la liste de champs préliminaire à chaque
table. Déterminez quels champs décrivent ou définissent le mieux le sujet
d'une table, puis répertoriez ces champs sous le nom de la table. Après avoir
attribué tous les champs que vous jugez appropriés pour le tableau, passez au
tableau suivant et répétez le processus. Continuez de cette manière jusqu'à ce
que vous ayez attribué des champs à toutes les tables. La figure 7.11 montre
un ensemble partiel de structures de tables.
Figure 7.11 Liste des tables avec leurs champs associés.
Note
Avant de parcourir le reste du chapitre, c’est le bon moment pour rappeler un
principe que j’ai présenté dans l’introduction :
Concentrez-vous sur le concept ou la technique et les résultats escomptés, et
non sur l'exemple utilisé pour l'illustrer.
Je porte à nouveau cela à votre attention car vous vous demanderez
certainement pourquoi j'ai créé un exemple d'une manière particulière. Peut-
être avez-vous pensé à une approche différente ou meilleure du problème, et
vous avez peut-être des raisons tout à fait valables de l'utiliser. Ne vous laissez
pas induire en erreur par l'exemple. J'ai façonné chaque exemple d'une
manière spécifique dans le seul but d'illustrer le concept ou la technique en
question. Par conséquent, étudiez la manière dont je corrige les problèmes que
vous voyez dans un exemple particulier afin de pouvoir utiliser ces techniques
lorsque vous rencontrez des problèmes similaires dans votre base de données.
Affiner les champs
Maintenant que vous avez attribué des champs à chaque table, vous allez
affiner les champs en améliorant les noms des champs et en résolvant les
problèmes structurels pouvant exister. Vous affinerez ensuite davantage les
tableaux en vérifiant que vous avez attribué les champs appropriés à chaque
table et que les structures des tableaux sont solides.
Améliorer les noms de champs
Comme vous le savez, un champ représente une caractéristique du sujet de la
table à laquelle il appartient. Vous pouvez facilement identifier la
caractéristique qu'un champ est censé représenter lorsque ce champ porte un
nom approprié. Un nom de champ ambigu, vague ou peu clair est un signe
certain de problème et suggère que vous n'avez pas complètement identifié
l'objectif du champ.
Lignes directrices pour la création de noms de champs
Plus tôt dans ce chapitre, vous avez appris un ensemble de directives pour
nommer une table. Vous allez maintenant apprendre un autre ensemble de
directives que vous appliquerez aux noms de champs. Heureusement,
beaucoup d’entre eux sont similaires aux directives régissant les noms de
tables, vous connaissez donc déjà la plupart des concepts :
• Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation. Un nom de champ donné ne doit apparaître qu'une seule fois
dans l'ensemble de la base de données ; la seule exception à cette règle se
produit lorsque le champ sert à établir une relation entre deux
tables. Assurez-vous que le nom est suffisamment descriptif pour
transmettre sa signification avec précision à tous ceux qui le voient. ( Le
chapitre 10 aborde cette question plus en détail.)
• Créez un nom qui identifie avec précision, clarté et sans ambiguïté la
caractéristique qu'un champ représente. « Numéro de téléphone » est un
bon exemple de nom de champ inexact et ambigu. Quel type de numéro de
téléphone représente-t-il ? Un téléphone fixe ? Un téléphone de bureau ? Un
téléphone cellulaire? Apprenez à être précis. Si vous devez enregistrer
chacun de ces types de numéros de téléphone, créez les champs «
Téléphone personnel », « Téléphone professionnel » et « Téléphone portable
».
Au chapitre 6 , « Analyse de la base de données actuelle », vous avez appris
à résoudre les noms de champs génériques, tels que « Adresse », « Ville » et
« État », en utilisant le nom de la table comme préfixe pour le nom du
champ. Cela produit des noms tels que « Adresse de l'employé », «
Adresse du client » et « Adresse du fournisseur ». Lorsque vous disposez de
noms de champs tels que ceux-ci, vous pouvez abréger le préfixe (par souci
de concision) en utilisant les trois ou quatre premières lettres du nom de la
table comme préfixe révisé. Cela vous permet de transformer les noms de
champs précédents en « Adresse Emp », « Adresse Cust » et «
Adresse Supp ». Cette technique vous aide à respecter non seulement cette
directive, mais également la précédente.
Note
La mesure dans laquelle vous utilisez les préfixes dans un tableau est une
question de style. Lorsqu'une table contient des noms de champs
génériques, certains concepteurs de bases de données choisissent de
préfixer uniquement les noms génériques, tandis que d'autres choisissent
de préfixer tous les noms de champs de la table. Quelle que soit la méthode
de préfixe que vous choisissez d’utiliser, il est très important de l’utiliser de
manière cohérente dans toute la structure de la base de données.
Personnellement, je préfère préfixer uniquement les noms de champs
génériques, et je suivrai cette préférence dans le reste du livre.
• Utilisez le nombre minimum de mots nécessaire pour transmettre la
signification de la caractéristique représentée par le champ. Vous souhaitez
éviter les noms de champs longs, mais en même temps, vous souhaitez
également éviter d'utiliser un seul mot comme nom de champ si ce mot est
inapproprié. Par exemple, si vous essayez d'enregistrer la date à laquelle un
employé particulier a rejoint l'organisation, « Embauché » est trop court (et
légèrement vague) et « Date d'embauche de l'employé » est trop
longue ! « Date d'embauche » est cependant un nom plus approprié et
représente avec précision la caractéristique que représente le champ.
• N’utilisez pas d’acronymes et utilisez les abréviations judicieusement. Les
acronymes peuvent être difficiles à déchiffrer et prêtent souvent à des
malentendus. Imaginez un champ nommé « CAD_SW ». Comment
détermineriez-vous ce que représente le champ ? En revanche, vous pouvez
utiliser des abréviations à condition de les utiliser avec parcimonie et de les
manipuler avec précaution. N'utilisez une abréviation que si elle complète
ou améliore le nom du champ de manière positive. Une abréviation ne doit
pas rendre un nom de champ ambigu ni diminuer sa signification.
• N'utilisez pas de mots qui pourraient confondre la signification du nom du
champ. Un nom de champ contenant des mots ou des synonymes
redondants peut rendre la signification du nom floue et sujette à une
mauvaise interprétation. Par exemple, considérons le nom « Numéro de
code d’identification numérique ». « Numérique » et « numéro » sont
redondants, vous pouvez donc éliminer l'un ou l'autre sans diminuer la
signification du nom du champ.Supposons que vous décidiez d’éliminer le
« numérique ». Vous pouvez diviser le nom restant en deux noms plus
petits : « Code d'identification » et « Numéro d'identification ». Ces noms
sont souvent synonymes et vous pouvez facilement les utiliser comme nom
de champ final. Dans cette situation, utilisez simplement le nom le plus
significatif au sein de l’organisation.
• N'utilisez pas de noms qui identifient implicitement ou explicitement plus
d'une caractéristique. Ces types de noms sont faciles à repérer car ils
utilisent généralement le mot et ou ou. Les noms de champs qui
contiennent une barre oblique (\) ou une esperluette (&) sont également des
indices inutiles. Lorsque vous rencontrez un champ portant un nom tel que «
Zone ou emplacement » ou « Téléphone\Fax », identifiez chaque
caractéristique que le nom implique et créez un nouveau champ pour la
caractéristique. Testez ensuite le nouveau nom de champ par rapport à ces
directives pour vous assurer que le nom est correct.
• Utilisez la forme singulière du nom. Un champ avec un nom au pluriel, tel
que « Compétences », implique qu'il peut contenir deux valeurs ou plus
pour un enregistrement donné, ce qui n'est pas une bonne idée. (Vous en
apprendrez davantage à ce sujet plus loin dans le chapitre.) Un nom de
champ est singulier car il représente une seule caractéristique du sujet de la
table à laquelle il appartient. En revanche, un nom de table est au pluriel car
il représente une collection d’objets ou d’événements similaires. Vous
pouvez distinguer assez facilement les noms de tables des noms de champs
lorsque vous utilisez cette convention de dénomination.
Note
La directive spécifique pour l'utilisation d'un nom de table comme préfixe pour
un nom de champ aura le même problème que celui que j'ai évoqué plus tôt
pour les noms de table : ces noms de champs particuliers sont susceptibles de
changer une fois que vous (ou le développeur de base de données en charge
de l'implémentation de la base de données) ) commencez à implémenter la
base de données dans une application SGBDR spécifique. Les noms devront
être conformes aux conventions de dénomination standard de votre
organisation ou que les développeurs utilisent couramment pour le SGBDR.
En gardant ces directives à l’esprit, examinez chaque table et déterminez si
vous pouvez apporter des améliorations à l’un des noms de champ. Lorsque
vous avez terminé, vous êtes prêt à identifier et à résoudre tout problème lié
aux champs. La figure 7.12 montre les révisions apportées aux noms de
champs des structures de table de la figure 7.11 .
Dans la figure 7.12 , « Classes » est raccourci en « Cls », « Sujets » est
raccourci en « Sujet », « Instructeurs » est raccourci en « Inst », « Étudiant »
est raccourci en « Std » et « Numéro de sécurité sociale » remplace
« SSN ». N'oubliez pas que les abréviations peuvent être très utiles à condition
qu'elles soient significatives et comprises par tous les membres de
l'organisation. L’utilisation d’abréviations appropriées n’enlèvera rien à la
signification du nom du champ.
Figure 7.12 Noms de champs révisés.
Note
Dans le reste du chapitre et dans le reste du livre, les noms de tables dans le
texte apparaissent en lettres majuscules (comme VENDORS) et les noms de
champs dans le texte apparaissent en petites lettres majuscules (comme V
ENDOR ID N UMBER ).
Utiliser un champ idéal pour résoudre les anomalies
Bien que vous ayez soigneusement identifié les champs de votre liste de
champs préliminaire, vous avez peut-être créé quelques champs qui pourraient
s'avérer problématiques pour la structure de la table. Des champs mal définis
peuvent entraîner des données en double et des données redondantes, et ils
peuvent être difficiles à utiliser. Vous aurez peut-être du mal à déterminer si
l'un des champs d'une table va poser des problèmes à moins de connaître les
signes avant-coureurs. La meilleure façon d'identifier les champs
potentiellement problématiques est de déterminer s'ils sont conformes aux
éléments du champ idéal, comme indiqué ci-dessous.
Éléments du champ idéal
Les éléments du champ idéal constituent un ensemble de lignes directrices que
vous pouvez utiliser pour créer des structures de champ sonore et repérer
facilement les champs mal conçus. Un champ idéal présente les
caractéristiques suivantes :
• Il représente une caractéristique distincte du sujet du tableau. Comme vous
le savez, un tableau représente un sujet précis, qui peut être un objet ou un
événement. Le champ idéal représente une caractéristique distincte de cet
objet ou événement.
• Il ne contient qu'une seule valeur. Un champ pouvant potentiellement
stocker deux occurrences ou plus de la même valeur est appelé champ à
valeurs multiples . Un champ à plusieurs valeurs entraîne des problèmes de
redondance des données (de toute évidence) et est difficile à utiliser lorsque
vous essayez de modifier, supprimer ou trier les données qu'il contient. Le
champ idéal est exempt de ces problèmes car il ne contient qu’une seule
valeur.
• Il ne peut pas être déconstruit en composants plus petits. Un champ qui
peut potentiellement stocker deux éléments distincts ou plus dans une
valeur est appelé champ en plusieurs parties (ou composite). Comme le
champ à valeurs multiples, ce type de champ pose des problèmes lorsque
vous essayez de modifier, supprimer ou trier les données qu'il contient. Ces
problèmes ne se produisent pas avec un champ idéal car il représente une
caractéristique unique et distincte du sujet de la table à laquelle il
appartient. (Vous en apprendrez davantage sur les champs à valeurs
multiples et en plusieurs parties dans un instant.)
• Il ne contient pas de valeur calculée ou concaténée. Les valeurs des champs
d'une table doivent être mutuellement indépendantes ; un champ particulier
ne devrait pas avoir à dépendre des valeurs d'autres champs pour sa propre
valeur. Cependant, un champ calculé dépend des valeurs d’autres champs
pour sa propre valeur, et c’est là que réside le problème. La valeur du
champ calculé n'est pas mise à jour lorsque la valeur d'un champ participant
au calcul change. Il incombe alors à l'utilisateur ou au programme
d'application de base de données (et constitue une charge indésirable) de
mettre à jour le champ calculé lorsque ce type de changement se
produit. C'est précisément pourquoi vous traitez les champs calculés
séparément.
• Il est unique dans toute la structure de la base de données. Les seuls
champs en double qui apparaissent dans une base de données
correctement conçue sont ceux qui établissent des relations entre les
tables. Si des champs en double autres que ceux-ci existent dans une table,
il est très probable que la table accumule des données redondantes inutiles
et que les données contenues dans les champs en double deviennent
inévitablement incohérentes.
Note
N'oubliez pas qu'à ce stade, vous traitez strictement de la structure logique
de la base de données. Vous pourriez être amené à dupliquer des champs
spécifiques lorsque vous implémentez physiquement la base de données
dans un programme SGBDR. Cependant, au cours de ce processus, vous
prenez la décision consciente de dupliquer les champs et vous êtes prêt à
faire face aux conséquences de cette décision.
• Il conserve la majorité de ses propriétés lorsqu'il apparaît dans plusieurs
tableaux. Un champ qui établit une relation entre deux tables est un
composant structurel de chaque table. La majorité des propriétés du champ
restent constantes à chaque occurrence du champ. ( Le chapitre 9 ,
« Spécifications de terrain » et le chapitre 10 traitent de cette question plus
en détail.)
Bien que vous connaissiez désormais les éléments spécifiques d'un domaine
idéal, vous aurez toujours du mal dans de nombreux cas à identifier les champs
problématiques simplement en regardant leurs noms. La figure 7.13 montre
une structure de tableau qui aide à illustrer ce point. Prenez un moment et
essayez de déterminer si chaque champ est conforme aux éléments du champ
idéal ou doit être modifié.
Figure 7.13 Un tableau contenant des champs avec des structures douteuses.
Chaque champ de la liste semble être conforme aux éléments du champ
idéal. Examinez cependant attentivement la liste et vous verrez que certains
champs ne respectent pas vraiment les deuxième et troisième éléments. Trois
champs présentent des anomalies qui poseront des problèmes à moins que
vous ne les résolviez : I NST NOM , I NST ADRESS et C ATEGORIES T AUGHT . Si vous
doutez de cette affirmation, vous pouvez la tester en « chargeant » le tableau
avec des exemples de données. Cela révélera rapidement les anomalies, le cas
échéant, et constitue le meilleur moyen de confirmer si un champ est conforme
à tous les éléments du champ idéal.
Vous n'avez pas besoin de créer physiquement une table pour effectuer ce
test. Prenez une feuille de papier et posez-la devant vous dans le sens de la
longueur, de gauche à droite. Écrivez le nom de chaque champ en haut du
papier, en commençant par le côté gauche ; laissez suffisamment d'espace
entre les noms de champs pour laisser de la place aux valeurs que vous allez
placer en dessous.Entrez les enregistrements dans le tableau en remplissant
chaque champ avec quelques exemples de données ; assurez-vous que les
exemples de données représentent les données que vous allez réellement
saisir dans la base de données. Vous n’avez besoin que de quelques
enregistrements pour que le test fonctionne correctement. Votre feuille de
papier doit ressembler à celle de la figure 7.14 .
Figure 7.14 Test d'un tableau sur papier avec des exemples de données.
Note
Comme je l'ai mentionné au chapitre 3 , je montre uniquement les champs les
plus pertinents pour la discussion en cours et j'utilise « autres champs » pour
représenter les champs qui ne sont pas essentiels à l'exemple.
Vous pouvez désormais facilement identifier les champs qui poseront problème
à moins qu'ils ne soient résolus. Comme vous pouvez le voir, I NST N AME et
I NST A DDRESS sont tous deux des champs à plusieurs parties, et
C ATEGORIES T AUGHT est un champ à plusieurs valeurs. Vous devez résoudre ces
champs avant de pouvoir affiner la structure de la table.
Résolution des champs multiparties
Travailler avec un champ multipart est difficile car sa valeur contient deux
éléments distincts ou plus . Il est difficile de récupérer des informations à partir
d'un champ en plusieurs parties, et il est difficile de trier ou de regrouper les
enregistrements de la table en fonction de la valeur du champ. Le champ
I NST A DDRESS de la figure 7.14 illustre ces difficultés ; vous auriez certainement
des difficultés à récupérer des informations sur la ville de Seattle ou à trier les
informations par code postal.
Vous résolvez un champ en plusieurs parties en identifiant les éléments
distincts dans la valeur du champ et en traitant chaque élément comme un
champ individuel.
Accomplissez cette tâche en vous posant une question simple : « Quels
éléments spécifiques représente la valeur de ce champ ? » Après avoir répondu
à la question et identifié les éléments (du mieux que vous pouvez), transformez
chaque élément en un nouveau champ.
Dans la Figure 7.14 , la valeur du champ I NST N AME représente deux éléments :
le prénom et le nom d'un instructeur. Vous résolvez ce champ en créant un
nouveau champ I NST FIRST N AME et un nouveau champ I NST L AST N AME . La
valeur de I NST A DDRESS représente quatre éléments : l'adresse postale, la ville,
l'état et le code postal d'un instructeur. Vous transformez également ces
éléments en champs ; ils apparaîtront dans le tableau sous les noms
I NST S TREET A DDRESS ,I NST C ITY ,I NST S TATE et I NST Z IPCODE . La figure
7.15 montre le tableau INSTRUCTEURS récemment révisé.
Figure 7.15 Résolution des champs en plusieurs parties dans la table
INSTRUCTORS.
Certains champs en plusieurs parties sont difficiles à reconnaître. Jetez un œil
au tableau INSTRUMENTS de la figure 7.16 . À première vue, le tableau ne
semble pas contenir de champs en plusieurs parties. Toutefois, lorsque vous
examinez les données du tableau de plus près, vous constaterez que
I NSTRUMENT ID est en réalité un champ en plusieurs parties. La valeur de ce
champ représente deux éléments distincts : la catégorie à laquelle appartient
l'instrument — AMP (amplificateur), GUIT (guitare), MFX (unité multi-effets),
SFX (unité à effet unique) — et le numéro d'identification de l'instrument. De
toute évidence, vous devez déconstruire I NSTRUMENT ID en deux champs plus
petits conformément au troisième élément d'un champ idéal. Imaginez à quel
point il vous serait difficile de mettre à jour la valeur du champ si la catégorie
MFX devenait MFU si vous ne le faisiez pas. Vous devrez écrire du code de
programmation pour analyser la valeur, tester l'existence de MFX, puis le
remplacer par MFU s'il existait dans levaleur analysée. Ce n'est pas tant que
vous ne pouvez pas faire cela, mais vous travailleriez certainement plus dur
que nécessaire, et vous ne devriez pas avoir à le faire du tout si vous disposez
d'une base de données correctement conçue.
Figure 7.16 Un exemple de champ multipart « caché ».
Résolution de champs à valeurs multiples
Comme vous le savez, un champ à plusieurs valeurs peut potentiellement
stocker deux ou plusieurs occurrences de la même valeur. Heureusement, vous
reconnaîtrez un champ à plusieurs valeurs lorsque vous en verrez un. Le nom
du champ est souvent au pluriel et sa valeur contient presque invariablement
un certain nombre de virgules, qui servent à séparer les différentes
occurrences qui existent au sein de la valeur elle-même.
La résolution de champs à plusieurs parties n'est pas très difficile du tout, mais
la résolution de champs à plusieurs valeurs peut être un peu plus difficile et
demandera du travail. Un corps à valeurs multiples présente le même
ensemble fondamental de problèmes qu'un corps à plusieurs parties, comme
l'illustre clairement le champ CATEGORIES ENSEIGNÉES de la figure 7.17 . Par
exemple, vous aurez du mal à récupérer des informations sur tous ceux qui
enseignent une catégorie spécifique (telle que WP), vous ne pourrez pas trier
les données de manière significative et, plus important encore, vous ne pourrez
pas trier les données.avoir la possibilité de participer à plus de quatre
catégories. Que se passe-t-il lorsqu'un ou plusieurs instructeurs
enseignent cinq catégories ? La seule option dont vous disposez est d'agrandir
le champ chaque fois que vous devez saisir plus de valeurs que ce qu'il
autorise actuellement.
Figure 7.17 Identification d'un champ à valeurs multiples.
Alors, comment résoudriez-vous ce champ à valeurs multiples ? Votre première
idée sera peut-être de créer un nouveau champ pour chaque valeur, «
aplatissant » ainsi le champ à plusieurs valeurs en plusieurs champs à valeur
unique. La figure 7.18 montre ce qui se passera si vous suivez cette idée.
Figure 7.18 Résultat de « l’aplatissement » du champ C ATEGORIES ENSEIGNÉES .
Malheureusement, ce n’est pas vraiment une amélioration. Trois problèmes
spécifiques découlent de ce type de structure :
1. Récupérer des informations sur les catégories sera au mieux fastidieux. Un
utilisateur qui tente de trouver tous les instructeurs qui enseignent la
catégorie WP doit s'assurer de rechercher cette valeur dans chacune des
catégories.des champs; il n'y a aucune garantie que WP soit
systématiquement stocké dans le même champ. Dans le cas contraire,
l'utilisateur court le risque de négliger un instructeur qualifié.
2. Il n'existe aucun moyen pour le programme RDBMS de trier les données de
catégorie de manière significative.
3. Cette structure est intrinsèquement volatile. Dans son état actuel, le
tableau restreint inutilement le nombre de catégories qu'un instructeur peut
enseigner ; vous devez créer des champs de catégorie supplémentaires
lorsque vos instructeurs enseignent plus de trois catégories. L'ajout de
champs de catégorie supplémentaires ne fait qu'aggraver les deux premiers
problèmes.
Réalisant que l'aplatissement du champ CATÉGORIES ENSEIGNÉES ne résoudra
pas votre problème, votre prochaine pensée est de mettre le champ en
conformité avec le deuxième élément d'un champ idéal et de déclarer qu'il ne
contiendra qu'une seule valeur . Bien qu’il s’agisse d’une bonne impulsion et
d’un pas dans la bonne direction, cela ne résoudra pas complètement le
problème car cela introduira encore un autre problème : la redondance des
données. La figure 7.19 illustre ce qui se passe lorsque vous donnez suite à
cette idée particulière. Notez qu'il n'y a désormais qu'une seule valeur dans le
champ CATEGORIES ENSEIGNÉES pour chaque enregistrement de la table.
Figure 7.19 Résultat de la mise en conformité des
CATEGORIES ENSEIGNÉES avec le deuxième élément d'un domaine idéal.
Les valeurs dans CATEGORIES ENSEIGNEES provoquent des données redondantes
car vous devez dupliquer un enregistrement d'instructeur donné pour chaque
catégorie enseignée par l'instructeur . Cette redondance est évidemment
inacceptable, vous devrez donc résoudre ce problème d'une autre manière.
Vous pouvez éviter complètement cette situation en suivant ces étapes pour
résoudre un champ à plusieurs valeurs :
1. Supprimez le champ de la table et utilisez-le comme base pour une nouvelle
table. Si nécessaire, renommez le champ conformément aux instructions de
nom de champ que vous avez apprises plus tôt dans ce chapitre.
2. Utilisez un champ (ou un ensemble de champs) de la table d'origine pour
associer la table d'origine à la nouvelle table ; essayez de sélectionner des
champs qui représentent le plus fidèlement possible le sujet du
tableau. Le(s) champ(s) que vous choisissez apparaîtront dans les deux
tableaux. (Vous en apprendrez davantage sur la relation entre les tables
au chapitre 10. )
3. Attribuez un nom, un type et une description appropriés à la nouvelle table
et ajoutez-la à la liste des tables finales.
Ces étapes constituent une procédure générique que vous pouvez utiliser pour
résoudre tout champ à valeurs multiples que vous rencontrez dans une
table. Maintenant, appliquez ces étapes au champ CATEGORIES ENSEIGNÉES .
1. Supprimez le champ de la table INSTRUCTORS et utilisez-le comme base
d'une nouvelle table. Comme il s'agira désormais d'un champ à
valeur unique , renommez le champ C ATEGORY T AUGHT .
2. Utilisez I NST FIRST N AME et I NST L AST N AME comme champs de connexion
qui relieront la table INSTRUCTORS à la nouvelle table et les ajouteront à la
structure de la nouvelle table .
3. Donnez un nom propre à la nouvelle table, rédigez une description
appropriée et ajoutez la table à la liste des tables finales. (Indiquez letype
de table comme « Données ».) Voici un nom et une description possibles
que vous pourriez utiliser pour la nouvelle table :
Catégories d'instructeur : catégories de logiciels qu'un instructeur est
qualifié pour enseigner. Les informations fournies par ce tableau nous
permettent de nous assurer qu'il existe un nombre adéquat d'instructeurs
pour chaque catégorie de logiciels.
La figure 7.20 montre le tableau INSTRUCTEURS révisé et le nouveau tableau
CATÉGORIES D'INSTRUCTEURS.
Figure 7.20 Résolution du champ à valeurs multiples dans la table
INSTRUCTORS.
Notez que la nouvelle table INSTRUCTOR CATEGORIES est exempte des
problèmes généralement associés aux champs à valeurs multiples car
C ATEGORY T AUGHT est un champ à valeur unique . Vous pouvez facilement
récupérer des informations sur un instructeur ou une catégorie particulière et
trier les enregistrements de manière significative. Notez également que
les champs I NST PREMIER NOM et I NST LAST Les champs N AME conservent leurs
noms dans la nouvelle table, ce qui les rend conformes au cinquième élément
d'un champ idéal.
Bien que la nouvelle table contienne des données redondantes, la redondance
est acceptable car minime. C'est un fait : une base de données relationnelle
contiendra toujours une certaine quantité de données redondantes. Votre
objectif en tant qu'architecte de base de données est de vous assurer qu'elle
ne contient qu'un minimum absolu de données redondantes.
La figure 7.21 montre une version de la table INSTRUCTORS qui
contient trois champs à valeurs multiples.
Figure 7.21 Une version de la table INSTRUCTORS contenant trois champs à
valeurs multiples.
C ATÉGORIES ENSEIGNÉES —Cela indique les catégories de cours qu'un instructeur
peut enseigner.
NIVEAU M AXIMUM ENSEIGNÉ —Cela indique le niveau de compétence maximum
que l'instructeur peut enseigner pour une catégorie donnée.
LANGUES PARLÉES —Cela indique les langues étrangères qu'un instructeur
peut parler .
Votre tâche ici semble relativement claire : vous allez utiliser la procédure que
vous venez d'apprendre pour résoudre ces champs à valeurs multiples. Vous
remarquez alors un petit problème relativement obscur : il existe une association univoque
distincte entre les valeurs des CATEGORIES ENSEIGNÉES et les valeurs du NIVEAU
MAXIMUM ENSEIGNÉ pour un enregistrement donné. Vous n'auriez probablement
pas remarqué cette anomalie si vous n'aviez pas examiné attentivement les
échantillons de données.au sein de ces domaines. Ne t'inquiète pas; vous
utiliserez toujours la même procédure, mais avec une modification mineure.
Vous rencontrerez occasionnellement une situation comme celle-ci, dans
laquelle un champ donné (qu'il soit à valeur unique ou à valeurs multiples)
dépend d'un champ à valeurs multiples particulier. Vous pouvez facilement
résoudre ce problème en incluant le champ dépendant dans la structure de la
nouvelle table que vous créez pour résoudre le champ à plusieurs valeurs. La
figure 7.22 montre les résultats de la consolidation de cette technique avec la
précédente pour résoudre les C ATEGORIES ENSEIGNÉES . (Il montre également la
résolution de L ANGUAGES S POKEN .)
Figure 7.22 Résolution des champs en plusieurs parties dans la table
INSTRUCTORS.
La redondance dans les nouvelles tables est acceptable car, encore une fois,
elle est minime. Au chapitre 10 , vous apprendrez comment réduire encore
davantage ce type de redondance en reliant les tables aux clés primaires et
aux clés étrangères.
Affiner les structures des tables
Maintenant que vous avez affiné les champs et vérifié que chaque champ est
correct, vous pouvez commencer le processus d'affinement des structures de
table. Votre objectif dans cette phase du processus de conception est de vous
assurer que vous avez attribué les champs appropriés à chaque table et que
vous avez correctement défini la structure de chaque table. Ce processus
révélera également si les tables présentent des anomalies que vous devez
résoudre.
Un mot sur les données redondantes et les champs en double
Vous avez vu le terme données redondantes utilisé assez souvent dans ce
chapitre. Les données redondantes ont été qualifiées d’inacceptables dans de
nombreux cas, mais appropriées dans d’autres. Pour que vous puissiez mieux
comprendre comment déterminer quand des données redondantes sont
acceptables, une définition du terme s'impose.
Les données redondantes sont une valeur qui est répétée dans un champ en
raison de la participation du champ à la mise en relation de deux tables ou en
raison d'une anomalie dans un champ ou une table. Dans un premier temps,
les données redondantes sont appropriées ; par définition, un champ utilisé
pour relier une table à une autre contiendra des données redondantes. (Vous
en apprendrez davantage à ce sujet au chapitre 10. ) Les données redondantes
sont cependant totalement inacceptables dans le second cas, car elles posent
des problèmes de cohérence et d'intégrité des données ; par conséquent, vous
devez toujours vous efforcer de limiter les données redondantes au minimum
absolu.
Un champ en double est un champ qui apparaît dans deux tables ou plus pour
l'une de ces raisons.
• Il est utilisé pour relier un ensemble de tables entre elles.
• Il indique plusieurs occurrences d’un type particulier de valeur.
• Il existe un besoin perçu d’informations supplémentaires.
Le seul cas dans lequel un champ en double est nécessaire est lorsqu'il sert à
établir une relation entre deux tables ; il constitue le seul moyen d'associer les
enregistrements de la première table aux enregistrements de la seconde
table. Les champs en double sont inutiles dans tous les autres cas et vous
devez les éviter car ils introduisent des données inutiles et redondantes.
Au fur et à mesure que vous affinerez la structure de chaque table, vous
évaluerez s’il convient de conserver un champ en double donné dans la
table. Si la raison de son existence dans le tableau est valable, alors vous la
conserverez ; sinon, vous le supprimerez. Vous apprendrez comment gérer
efficacement les données redondantes et les champs en double inutiles dans
les sections suivantes.
Utiliser une table idéale pour affiner les structures de table
Malgré vos efforts pour affiner les champs d'une table, la structure de la table
elle-même peut contenir des anomalies qui peuvent produire des données
redondantes inutiles et rendre difficile l'utilisation des données de la
table. Vous pouvez identifier une structure de table potentiellement
problématique en déterminant si elle est conforme aux éléments de la table
idéale.
Éléments de la table idéale
Les éléments de la table idéale constituent un ensemble de lignes directrices
que vous pouvez utiliser pour créer des structures de table solides et repérer
facilement les tables mal conçues. Une structure de table idéale présente les
caractéristiques suivantes :
• Il représente un sujet unique, qui peut être un objet ou un événement. Oui,
je sais, je l'ai déjà dit plusieurs fois. Le fait est que je ne saurais trop insister
sur ce point. Tant que vous garantissez que chacune de vos tables
représente un seul sujet, vous réduisez considérablement le risque de
problèmes potentiels d’intégrité des données. Cet élément valide le travail
que vous avez effectué lors des étapes d'analyse et d'entretien du
processus de conception de la base de données, ainsi que le travail que
vous venez d'effectuer.
• Il possède une clé primaire. Ceci est important pour deux raisons : une clé
primaire identifie de manière unique chaque enregistrement dans une table
et elle joue un rôle clé (sans jeu de mots) dans l'établissement des relations
entre les tables. De plus, il possède des caractéristiques spécifiques qui
aident à mettre en œuvre et à appliquer différents niveaux d’intégrité des
données. Si vous ne parvenez pas à attribuer une clé primaire à chaque
table, vous finirez par rencontrer des problèmes d'intégrité des données. Le
chapitre 8 , « Clés », couvre les clés primaires plus en détail.
• Il ne contient pas de champs en plusieurs parties ou à valeurs
multiples. Théoriquement, vous devriez avoir résolu ces problèmes lorsque
vous avez affiné les structures de terrain. Néanmoins, c'est toujours une
bonne idée de revoir les champs une dernière fois pour vous assurer que
vous avez complètement supprimé chacun d'entre eux.
• Il ne contient pas de champs calculés. Même si vous pensez peut-être que
vos structures de table actuelles ne contiennent pas de champs calculés,
vous avez peut-être accidentellement oublié un ou deux champs calculés
lors du processus d'affinement des champs. C'est le bon moment pour revoir
les structures des tableaux et vous assurer de supprimer les champs
calculés que vous avez peut-être manqués.
• Il ne contient pas de champs en double inutiles. (Notez que cette directive
ne s'applique pas aux champs utilisés pour relier un ensemble de tables
entre elles, comme ceux utilisés dans l'exemple de la figure 7.22 .) L'une
des caractéristiques d'une table mal conçue est l'inclusion de champs en
double provenant d'autres tables. Vous pourriez vous sentir obligé d'ajouter
des champs en double à une table pour l'une des deux raisons suivantes :
fournir des informations de référence ou indiquer plusieurs occurrences d'un
type de valeur particulier. Les champs en double tels que ceux-ci soulèvent
diverses difficultés lorsque vous travaillez avec les données ou tentez
d'extraire des informations de la table.
• Il ne contient qu’un minimum absolu de données redondantes. N'oubliez pas
qu'une base de données relationnelle ne sera jamais totalement exempte de
données redondantes. Cependant, vous pouvez (et devez) vous assurer que
chaque table contient le moins de données redondantes possible.
Résolution des champs en double inutiles
Avant d'apporter les dernières modifications aux structures des tables, vous
devez d'abord supprimer tous les champs en double inutiles de la base de
données. Vous pourrez ensuite affiner les tableaux pour qu’ils soient conformes
aux Éléments du Tableau Idéal.
Les champs en double servant à fournir des informations de référence
(également appelés champs de référence ) sont inutiles et faciles à résoudre : il
vous suffit de les supprimer du tableau. Malheureusement, de nombreuses
personnes pensent qu'un tableau doit contenir tous les champs qui
apparaîtront dans les rapports qu'ils génèrent à partir de celui-ci. Ils
introduisent donc dans le tableau divers champs en double qu'ils jugent
nécessaires. Ils supposent que le tableau sera alors en mesure de fournir
toutes les informations requises pour leurs rapports. Cependant, ils se
trompent et leur action est à la fois imprudente et indésirable. Les tableaux
contenant des champs de référence sont mal conçus et présenteront un certain
nombre de problèmes, dont beaucoup deviendront de plus en plus évidents à
mesure que le processus de conception de la base de données se
déroulera. Les champs de référence obligent l'utilisateur ou le programme
d'application de base de données à garantir que les valeurs de toutes les
occurrences du champ sont mutuellement cohérentes, un processus qui
comporte un risque d'erreur élevé. La figure 7.23 montre un exemple de
tableau contenant des champs de référence.
Figure 7.23 Exemple de tableau contenant des champs de référence.
Les champs M AN P HONE et W EB S ITE de la table INSTRUMENTS sont des
champs de référence et, par définition, sont en réalité des champs en double
inutiles. Vous n'avez certainement pas besoin de les inclure dans ce tableau car
ils font déjà partie de la structure de la table MANUFACTURERS ; par
conséquent, vous pouvez les supprimer de la table INSTRUMENTS pour
résoudre le problème de duplication inutile. (M ANUFACTURER n'est pas un champ
de référence car il relie actuellement la table INSTRUMENTS à la table
MANUFACTURERS.) Vous apprendrez au chapitre 12 , « Vues », que vous
pouvez travailler avec les champs de la table INSTRUMENTS et de la table
MANUFACTURERS en même temps. temps en les combinant au sein
d’une vue (table virtuelle). Vous pouvez ensuite utiliser cette vue comme base
pour compiler les rapports dont vous avez besoin.
Les champs en double servant à indiquer plusieurs occurrences du même type
de valeur sont également inutiles. Par exemple, regardez la version du tableau
ÉTUDIANTS présentée dans la figure 7.24 .
Figure 7.24 Un exemple simple de tableau contenant des champs en double
inutiles.
I NSTRUMENT 1, I NSTRUMENT 2 et I NSTRUMENT 3 sont des champs en double qui
représentent plusieurs occurrences du même type de valeur. Leur objectif dans
le tableau est de permettre au département de musique de suivre les
instruments vérifiés par un étudiant donné. Outre les difficultés que posent ces
champs pour récupérer des informations sur un instrument particulier, ils
limitent également le nombre d'instruments qu'un étudiant peut consulter. Que
se passe-t-il si plusieurs étudiants souhaitent découvrir plus de trois
instruments ?
Ce type de structure de champ vous semble-t-il étrangement familier ? Cela
devrait! C'est similaire à celui de la figure 7.18 . Comme vous l'avez
probablement déjà deviné, ce n'est rien de plus qu'un champ à plusieurs
valeurs aplati. Attention, la personne qui a créé cette table n'avait
probablement pas en tête un champ à valeurs multiples (et la plupart des gens
qui créent des champs comme ceux-ci non plus), mais c'est vraiment ce qu'il
est.
Vous savez déjà comment gérer ces champs en double inutiles, car vous savez
comment résoudre les champs à plusieurs valeurs. Vous pouvez facilement
corriger la table STUDENTS en visualisant d'abord les champs I NSTRUMENT 1,
I NSTRUMENT 2 et I NSTRUMENT 3 comme un champ à plusieurs valeurs singulier,
puis en le résolvant comme vous le feriez pour n'importe quel champ à
plusieurs valeurs. La figure 7.25 illustrece processus. La version ombrée du
tableau ÉTUDIANTS montre comment vous visualisez les champs d'instruments
comme un champ multivalué singulier. Vous résolvez ensuite le champ à
valeurs multiples en appliquant le processus en trois étapes que vous avez
appris précédemment, ce qui produit la table ÉTUDIANTS révisée et la nouvelle
table INSTRUMENTS ÉTUDIANTS. Lorsque vous aurez terminé, vous pourrez
saisir n'importe quel nombre d'instruments pour un élève particulier. Vous
pouvez ensuite facilement récupérer des informations telles que les noms des
étudiants qui ont testé une guitare, une liste des instruments actuellement
testés par un étudiant en particulier et le nombre d'étudiants qui ont testé un
piano électrique.
Figure 7.25 Résolution d'un ensemble simple de champs en double inutiles.
Dans certains cas, une table peut contenir deux ou plusieurs ensembles de
champs en double qui représentent plusieurs occurrences du même type de
valeur. La figure 7.26 montre une version légèrement différente du tableau
ÉTUDIANTSillustré à la figure 7.24 ; cette version contient deux ensembles de
champs en double. Vous pensez peut-être à ce moment précis : « Pourquoi dit-il
qu'il y a deux ensembles de champs en double alors que j'en vois
clairement trois ? « Contrairement à ce que l'on pourrait penser,
I NSTRUMENT 1/C HECKOUT D ATE 1, par exemple, ne constitue pas un ensemble de
champs dupliqués. Bien au contraire : I NSTRUMENT 1/I NSTRUMENT 2/I NSTRUMENT 3
constituent le premier ensemble de champs en double, et
C HECKOUT D ATE 1/C HECKOUT D ATE 2/C HECKOUT D ATE 3 constituent le deuxième
ensemble de champs en double.
Figure 7.26 Exemple de table avec plusieurs ensembles de champs en
double.
Vous avez probablement réalisé que ces deux ensembles de champs en double
sont en réalité deux champs à plusieurs valeurs aplatis et que vous pouvez les
résoudre de la même manière que dans l'exemple précédent. Le seul autre
problème qui doit vous préoccuper est l’association individuelle distincte entre
un instrument et une date de paiement. Ce ne sera cependant pas un
problème, car vous avez déjà été confronté à ce type de scénario. Si vous
visualisez un champ à plusieurs valeurs appelé I NSTRUMENTS et un autre appelé
C HECKOUT D ATE , vous verrez que la structure globale du tableau est assez
similaire à celle de la figure 7.21 . (Dans cette figure , il y a une association un
à un entre les champs CATEGORIES ENSEIGNÉES et NIVEAU M AXIMUM ENSEIGNÉ .)
La figure 7.27 illustre comment corriger ce tableau. Comme auparavant, la
version ombrée du tableau ÉTUDIANTS montre comment vous visualisez les
champs d'instrument et de date de départ comme des champs à plusieurs
valeurs singuliers. Vous résolvez ensuite les champs à valeurs multiples en
appliquant le processus en trois étapes que vous avez appris précédemment,
ce qui donne la table ÉTUDIANTS révisée et la nouvelle table INSTRUMENTS
ÉTUDIANTS.
Figure 7.27 Résolution des multiples ensembles de champs en double dans la
table STUDENTS.
Maintenant que vous connaissez les éléments de la table idéale, passez en
revue les structures de votre table et affinez-les si nécessaire. Lorsque vous
avez des doutes sur un tableau particulier, dessinez sa structure sur une feuille
de papier et chargez-y des exemples de données. Vous pourrez alors résoudre
les anomalies révélées par les données.
Établir des tables de sous-ensembles
À mesure que vous affinez les structures de vos tables, vous constaterez peut-
être que certains champs d'une table particulière ne contiennent pas toujours
des valeurs. Cette situation n'affectera pas votre capacité à récupérer des
informations à partir du tableau, mais elle peut indiquer que le tableau pourrait
nécessiter un affinement supplémentaire. Considérez la structure de la table
INVENTORY dans la figure 7.28 .
Figure 7.28 Structure d'un tableau d'inventaire de bureau.
Dans ce scénario, la table contient des données sur divers éléments du bureau
d'une personne, tels que le mobilier de bureau, l'équipement de bureau
(ordinateurs, imprimantes, etc.) et les livres. Il est inévitable que les valeurs de
plusieurs champs dans de nombreux enregistrements soient vides. Par
exemple, un livre n'aura pas de FABRICANT , de MODÈLE ou de DATE
D'EXPIRATION DE LA GARANTIE , et une imprimante n'aura pas d' AUTEUR , D' ÉDITEUR ,
d' ISBN ou de C ATÉGORIE . Cela ne pose pas de problème d'un point de
vue physique (l'espace disque limité n'est certainement pas le problème
critique des années passées), mais cela peut poser un problème de
perception . Les utilisateurs (et la direction, d'ailleurs) deviennent assez
nerveux lorsqu'ils voient beaucoup de valeurs vides dans un tableau. Les
données sont-elles manquantes ? Quelqu'un a-t-il oublié de renseigner ces
champs ? Quelqu'un a-t-il supprimé les données par erreur ? L'ordinateur a-t-il
accidentellement détruit les valeurs d'origine ? (Oui, le mythe urbain
« L'ordinateur l'a fait ! » perdure toujours.) La question la plus importante est la
suivante : si vous adhériez aux éléments de la table idéale lorsque vous créiez
cette table, comment en êtes-vous arrivé à cette table ? structure particulière ?
Heureusement, il ne s’agit là que d’un autre type d’anomalie structurelle qui se
produit occasionnellement lors de la conception de différents tableaux. Votre
tâche consiste maintenant à apprendre à y faire face de manière appropriée.
La première étape consiste à déterminer si la table INVENTORY est réellement
conforme au premier élément d’une table idéale (c’est-à-dire « Elle représente
un seul sujet »). Un tableau qui contient un grand nombre de valeurs vides
dans ses champs représente généralement (mais pas toujours) plus d'un
sujet. Réfléchissez un instant aux deux ensembles de champs en question et
vous vous rendrez vite compte qu'ils représentent les caractéristiques de deux
aspects distincts du sujet du tableau. Le premier ensemble de champs décrit
l'inventaire des équipements et le deuxième ensemble de champs décrit
l'inventaire des livres ; en outre, les deux types d'inventaire partagent des
caractéristiques communes, telles que le NOM DE L'ARTICLE , la D ESCRIPTION
DE L'ARTICLE et la VALEUR ACTUELLE . Essentiellement, « Équipement » et « Livres »
sont des sujets qui dépendent de la table INVENTORY pour leur existence
même ; ni l’un ni l’autre ne décrit un objet ou un événement complètement
distinct. Par conséquent, ce sont des sujets subordonnés et vous allez créer
une table de sous-ensemble pour chacun d’eux.
Tout comme une table de données représente un sujet distinct, une table de
sous-ensemble représente un sujet subordonné d'une table de données
particulière. La table de sous-ensemble contient des champs qui sont
pertinents pour le sujet subordonné qu'elle représente, et elle comprend
également un ou plusieurs champs de la table de données qui servent à relier
la table de données à la table de sous-ensemble. Il est important de noter
qu'une table de sous-ensemble ne contient pas de champs représentant des
caractéristiques communes à elle et à la table de données ; ces champs
doivent rester dans la table de données.
Maintenant que vous avez déterminé que la table INVENTAIRE décrit trois
sujets (peu importe que deux d'entre eux soient des sujets subordonnés), vous
devez la mettre en conformité avec le premier élément d'une table idéale en
supprimant les champs en question. Vous utilisez ensuite les champs comme
base pour deux nouvelles tables de sous-ensembles, une pour chaque sujet
subordonné. Voici les étapes à suivre pour accomplir ces tâches.
1. Utilisez les champs M ANUFACTURER ,M ODEL et W ARRANTY E XPIRATION D ATE pour
créer une nouvelle table de sous-ensemble appelée EQUIPMENT.
2. Utilisez les champs P UBLISHER ,A UTHOR ,I SBN et C ATEGORY pour créer une
nouvelle table de sous-ensemble appelée BOOKS.
3. Ajoutez I TEM N AME aux deux tableaux ; ce champ reliera chaque table de
sous-ensemble à la table de données.
4. Composez une description appropriée pour les deux sous-ensembles de
tables et ajoutez-les à la liste des tables finales. Indiquez le type de chaque
table comme « Sous-ensemble ».
La figure 7.29 montre les nouvelles structures de tables de sous-ensembles.
Figure 7.29 Les nouvelles structures de table de sous-ensembles.
Prenez un moment pour revoir la structure de vos tables. Vous découvrirez
peut-être que vous avez créé des tables de sous-ensembles sans le savoir. Les
tables qui ont des structures presque identiques sont généralement des tables
de sous-ensembles ; il n'y a généralement que quelques champs uniques qui
distinguent une table de l'autre. Par exemple, considérons les deux structures
de table partielles de la figure 7.30 . Chaque tableau représente un aspect
distinct du même sujet.
Figure 7.30 Tableaux de sous-ensembles non identifiés auparavant.
Ces deux tableaux représentent des employés, mais chacun représente
un type spécifique d'employé. Notez cependant qu'il existe des champs
génériques communs aux deux tables : prénom, nom, date d'embauche,
adresse postale, ville et état. Ces champs sont inutilement dupliqués, vous
devrez donc affiner les structures des tables pour résoudre ce problème.
Affiner des tables de sous-ensembles précédemment non identifiés
Lorsque vous identifiez des tables de sous-ensembles telles que celles-ci, vous
pouvez les affiner en suivant ces étapes.
1. Supprimez tous les champs que les tables de sous-ensembles ont en
commun et utilisez-les comme base pour une nouvelle table de données .
2. Identifiez le sujet que représente la nouvelle table de données, puis donnez
à cette table un nom approprié.
3. Assurez-vous que les tables de sous-ensembles représentent des sujets
subordonnés de la table de données et modifiez les noms des tables de
sous-ensembles si nécessaire.
4. Composez une description appropriée pour le tableau de données, puis
ajoutez-la à la liste finale des tableaux. Indiquez le type de tableau comme
« Données ».
La figure 7.31 montre les résultats de l'utilisation de ces étapes sur les tables
EMPLOYÉS À TEMPS PLEIN et EMPLOYÉS À TEMPS PARTIEL.
Figure 7.31 Les résultats du raffinement des tables de sous-ensembles.
À ce stade, toutes vos structures de table devraient être en assez bon
état. Cependant, vous devrez les affiner encore davantage à mesure que vous
en apprendrez davantage sur les clés primaires, les clés étrangères, les
relations et les règles métier.
EXEMPLE : ÉTABLIR DES STRUCTURES DE TABLE
Vous allez maintenant définir la liste de tables préliminaires pour les vélos de
Mike. Comme vous le savez, la première chose que vous devez faire est de
consulter la liste préliminaire des champs pour déterminer les sujets que vous
pouvez déduire des champs de la liste. La figure 7.32 montre un
échantillon partiel de cette liste.
Figure 7.32 Liste préliminaire des vélos de Mike.
Après avoir soigneusement examiné l'intégralité de la liste de champs
préliminaire, vous déterminez que les champs de la liste suggèrent les sujets
suivants : clients, employés, factures, produits et fournisseurs. Vous compilez
ensuite ces éléments dans la première version de votre liste de tableaux
préliminaires.
Vous créez maintenant une deuxième version de la liste en fusionnant la liste
de tableaux préliminaires actuelle avec la liste de sujets que vous avez créée
au cours du processus d'analyse. Gardez les étapes suivantes à l’esprit lorsque
vous fusionnez les deux listes.
1. Résolvez les éléments qui sont dupliqués sur les deux listes. N'oubliez pas
qu'un seul élément peut apparaître sur les deux listes, tout en représentant
des sujets différents. Lorsque vous identifiez de tels éléments, utilisez les
techniques appropriées pour résoudre ce problème.
2. Résolvez les éléments qui représentent le même sujet mais portent des
noms différents. Vous voulez vous assurer qu’un seul tableau représente un
sujet particulier.
3. Combinez les éléments restants dans une seule liste. La liste combinée
devient la deuxième version de la liste des tableaux préliminaires.
Après avoir suivi ces étapes, votre liste de tables préliminaires devrait
ressembler à celle présentée dans la figure 7.33 .
Figure 7.33 La deuxième version de la liste des tableaux préliminaires.
Vous rayez « Clients », « Employés » et « Produits » sur la liste des sujets car ils
représentent les mêmes sujets que leurs homologues de la liste du tableau
préliminaire. La table VENTES n'a pas d'équivalent dans la liste des tables
préliminaires, mais elle représente le même sujet que les « Factures
». Cependant, « Factures » est plus significatif pour Mike et son équipe, vous
l'utilisez donc dans la liste des tableaux préliminaires au lieu de
« Ventes ». Une situation similaire existe entre les « Fournisseurs » et les
« Vendeurs » ; Mike sélectionne « Fournisseurs » comme nom à afficher sur la
liste du tableau préliminaire, vous rayez donc « Fournisseurs ».
Note
La sélection d'un nom qui représente le mieux le sujet du tableau est une tâche
arbitraire. Une bonne règle à suivre est d’utiliser le nom qui est le
plus significatif pour tous les membres de l’organisation.
Vous allez maintenant travailler sur la version finale de la liste des tableaux
préliminaires. Utilisez les objectifs de mission que vous avez créés au début du
processus de conception de la base de données pour déterminer s'il y a des
sujets que vous avez peut-être négligés au cours des deux procédures
précédentes. Identifiez chaque sujet représenté dans les objectifs de la mission
à l’aide de la technique d’identification du sujet. Après avoir identifié autant de
sujets que possible, vous pouvez utiliser les étapes de la deuxième procédure
pour recouper ces sujets avec les sujets actuellement répertoriés dans la liste
du tableau préliminaire. Lorsque vous avez terminé l'examen et que vous
avezrésolu les éléments en double, votre version finale de la liste des tableaux
préliminaires est complète.
Il s'avère que tous les sujets que vous avez identifiés à partir des objectifs de
mission pour Mike's Bikes apparaissent déjà sur la liste du tableau
préliminaire. C’est une bonne nouvelle car cela vous permet de réaliser votre
recoupement assez facilement. Satisfait d'avoir terminé la tâche à fond, vous
disposez désormais de la version finale de la liste des tableaux préliminaires.
Maintenant que la liste de tables préliminaires est terminée, vous êtes prêt à la
transformer en liste de tables finale. Gardez ces étapes à l’esprit lorsque vous
commencez ce processus.
1. Affinez les noms des tables. Utilisez les directives appropriées pour garantir
que chaque nom de table est clair, sans ambiguïté, descriptif et significatif.
2. Composez une description appropriée pour chaque tableau. Assurez-vous
que la description de la table définit explicitement la table et indique son
importance pour l'organisation. Utilisez les directives pertinentes pour créer
chaque description de tableau.
3. Indiquez le type de table. N'oubliez pas qu'un tableau peut être classé de
quatre manières : données, liaison, sous-ensemble ou validation. À ce stade,
toutes vos tables sont des tables de données .
La figure 7.34 montre un exemple partiel de la liste de table finale pour les
vélos de Mike.
Figure 7.34 Une liste partielle de la liste finale de la table pour les vélos de
Mike.
L'ordre du jour suivant consiste à associer les champs de la liste de champs
préliminaire à chaque table de la liste de tables finale. Assurez-vous de
sélectionner les champs qui représentent le mieux les caractéristiques du sujet
de chaque tableau ; chaque domaine doit définir ou décrire un aspect
particulier du sujet. La figure 7.35 montre un exemple partiel des structures de
table pour Mike's Bikes.
Figure 7.35 Une liste partielle des structures de table pour Mike's Bikes.
Maintenant, vous affinez les champs. N'oubliez pas de suivre ces étapes
lorsque vous travaillez avec chaque champ.
Améliorez le nom du champ. Utilisez les directives appropriées pour garantir
que chaque nom de champ est aussi clair, sans ambiguïté et descriptif que
possible.
Déterminez si le champ est conforme aux éléments du champ idéal. Assurez-
vous de vérifier les champs en plusieurs parties et à plusieurs valeurs. Comme
vous l'avez appris précédemment, ils peuvent causer un certain nombre de
problèmes au sein d'une table.
Lorsque vous examinez les champs, vous décidez d'abréger certains noms de
champs dans les tables CUSTOMERS, EMPLOYEES et INVOICES, en
raccourcissant CUSTOMER en C UST et EMPLOYEE en E MP . Vous décidez
également que le nom du champ Q UANTITY (dans la table PRODUITS) ne décrit
pas complètement la caractéristique qu'il représente, vous le remplacez donc
par Q UANTITY O N H AND . Les champs de téléphone dans les tables CUSTOMERS
et EMPLOYEES souffrent du même problème, vous les remplacez donc par
C UST H OME P HONE et E MP H OME P HONE , respectivement. De plus, vous
remplacez SSN par NUMÉRO DE SÉCURITÉ SOCIALE afin que le nom du champ soit
absolument sans ambiguïté .
Une enquête plus approfondie sur les champs révèle que presque tous sont
conformes aux éléments du champ idéal. Les seules exceptions sont les
champs d'adresse des tables CLIENTS et EMPLOYEES, ainsi que les champs
E MPLOYEE N AME des tables EMPLOYEES et FACTURES. Après avoir vérifié que
vous pouvez décomposer chaque champ d'adresse en quatre éléments
individuels (adresse, ville, état et code postal), vous transformez ces éléments
en champs et les ajoutez aux tables CLIENTS et EMPLOYÉS. De même, vous
remarquez que le champ E MPLOYEE N AME représente deux éléments (prénom et
nom) et vous apportez les ajustements appropriés à ce champ dans les tables
EMPLOYEES et FACTURES.
La figure 7.36 montre le résultat de toutes les modifications que vous avez
apportées aux champs.
Figure 7.36 Affinements apportés aux champs dans les structures de table.
Votre tâche finale consiste à affiner les structures des tables. Assurez-vous que
vous avez attribué les champs appropriés à chaque table et que vous avez
correctement défini chaque table. N'oubliez pas de suivre ces étapes lorsque
vous travaillez avec chaque tableau.
1. Résolvez les champs en double inutiles. Lorsque vous créez de nouvelles
tables suite à la résolution de champs en double, assurez-vous de les
identifier correctement et de les ajouter à la liste des tables finales.
2. Déterminez si chaque tableau est conforme aux éléments du tableau
idéal. Assurez-vous de résoudre toutes les anomalies que vous identifiez
dans les champs ou dans la structure du tableau dans son ensemble.
3. Établissez des tableaux de sous-ensembles, le cas échéant. Assurez-vous
d'identifier correctement ces tables et de les ajouter également à la liste des
tables finales.
Au fur et à mesure que vous terminez votre examen des tableaux, vous
déterminez qu'ils sont tous conformes aux éléments du tableau idéal, à
l'exception du tableau FACTURES. Le seul problème avec cette table est qu'elle
contient un champ en double inutile : C UST H OME P HONE . Vous pouvez toutefois
supprimer ce champ du tableau, car il ne fournit que des informations de
référence.
Lorsque vous travaillez avec la table PRODUCTS, vous remarquez que vous
pourrez peut-être supprimer certains champs, puis les utiliser comme base
pour une table de sous-ensemble. Vous révisez donc le tableau une fois de
plus. La figure 7.37 montre la structure de la table PRODUCTS que vous êtes en
train d'examiner. (Il s'agit d'une version étendue de la structure de table
présentée dans la figure 7.36 .)
Figure 7.37 La structure de la table PRODUCTS (version étendue).
Votre hypothèse s'avère correcte. Vous déterminez que certains champs
décrivent un service et vous pouvez interpréter un service comme étant un
type de produit différent. Un service est similaire à un produit dans la mesure
où il a un nom, une description et une catégorie, mais il est différent dans la
mesure où il a un type, des frais de matériaux, des frais de service et une date
de service. Dans cet esprit, vous créez une nouvelle table de sous-ensemble
appelée SERVICES, apportez les modifications appropriées à la table PRODUITS
et utilisez le champ P RODUCT N AME .pour relier les deux tableaux entre
eux. Vous ajoutez ensuite la liste appropriée pour la table SERVICES à la liste de
table finale. La figure 7.38 montre la table PRODUITS révisée et la nouvelle
table du sous-ensemble SERVICES.
Figure 7.38 Les nouvelles tables PRODUITS et SERVICES.
Résumé
Nous avons ouvert le chapitre par une discussion de la liste des tableaux
préliminaires. Cette liste constitue les structures de tables initiales de la
nouvelle base de données. Vous avez appris à élaborer cette liste à l'aide de la
liste de terrain préliminaire, de la liste des sujets et des objectifs de mission,
que vous avez tous compilés lors de la phase d'analyse du processus de
conception de la base de données.
Nous avons ensuite discuté de la procédure de transformation de la liste de
tables préliminaire en une liste de tables finale, qui contient le nom, le type et
la description de chaque table de la base de données. Vous avez appris un
ensemble de directives pour créer des noms de table et un autre ensemble
de directives pour composer des descriptions de table. Nous avons ensuite
travaillé sur la création de noms de tables sans ambiguïté, descriptifs et
significatifs, ainsi que de descriptions définissant explicitement les tables, tout
en indiquant leur importance pour l'organisation. Vous avez également appris
que solliciter l'aide des utilisateurs etla gestion est cruciale pour le processus
d’élaboration de descriptions de tableaux bien définies. Les descriptions des
tableaux doivent être adaptées et facilement comprises par tous les membres
de l'organisation.
Nous avons ensuite discuté du processus d'association des champs à chaque
table de la liste finale des tables. Ici, vous avez appris à créer une structure
pour une table donnée en utilisant les champs de la liste de champs
préliminaires qui représentent le mieux les caractéristiques du sujet de la table.
L'affinement des champs a été le prochain sujet de discussion et vous avez
appris un ensemble de directives pour créer des noms de champs qui vous
aideront à garantir qu'ils sont clairs, descriptifs et significatifs. Vous avez
également découvert les éléments du champ idéal. Vous savez désormais que
vous pouvez résoudre les anomalies dans un champ en déterminant s'il est
conforme à ces éléments. Nous avons ensuite discuté de la façon de résoudre
les champs multiparties et à valeurs multiples . Vous avez appris que la
décomposition de champs en plusieurs parties génère de nouveaux champs,
tandis que la décomposition de champs à valeurs multiples génère de
nouvelles tables.
Le chapitre s'est terminé par une discussion sur le raffinement des structures
de tables. Vous avez appris à identifier les éléments de la table idéale et vous
savez maintenant que vous pouvez déceler un problème de structure de table
en déterminant si une table est conforme à ces éléments. Nous avons ensuite
discuté des champs en double inutiles, et vous savez maintenant qu'ils
apparaissent dans un tableau pour l'une des deux raisons suivantes : fournir
des informations de référence ou représenter différentes occurrences du même
type de valeur. Vous avez ensuite appris à résoudre les champs en double pour
éliminer les problèmes qu'ils présentent.
La discussion finale a porté sur le thème des tableaux de sous-
ensembles. Comme vous le savez maintenant, une table de sous-ensemble
représente un sujet subordonné d'une table de données particulière, et une
relation distincte existe entre la table de sous-ensemble et la table de
données. Vous savez également que vous pouvez créer explicitement des
tables de sous-ensembles. Vous avez ensuite appris que vous avez peut-être
créé sans le savoir des tables de sous-ensembles plus tôt dans le processus de
conception de la base de données et que vous devez rechercher des tables de
sous-ensembles que vous n'avez pas identifiées auparavant. Lorsque vous
identifiez une table de sous-ensemble, vous l'affinez et l'ajoutez à la liste des
tables finales.
Questions de révision
1. Comment identifier et établir des tables pour une nouvelle base de
données ?
2. Pourquoi utilisez-vous la liste de champs préliminaire pour vous aider à
définir les tables de la base de données ?
3. Quelle action entreprenez-vous lorsqu'un élément de la liste des sujets et un
élément nommé différemment sur la liste du tableau préliminaire représentent
tous deux le même sujet ?
4. Quelles informations la liste de la table finale fournit-elle ?
5. Énoncez trois directives pour créer des noms de table.
6. Énoncez deux lignes directrices pour rédiger des descriptions de tableaux.
7. Comment attribuer des champs à une table de la liste des tables finales ?
8. Énoncez trois directives pour créer des noms de champs.
9. Quels sont les deux problèmes que des champs mal conçus peuvent
causer ?
10. Que pouvez-vous utiliser pour résoudre les anomalies sur le terrain ?
11. Énoncez trois des éléments du champ idéal.
12. Dans quelles conditions les données redondantes sont-elles acceptables ?
13. De manière générale, quelles sont les trois étapes suivez-vous pour
résoudre un champ à valeurs multiples ?
14. Quand est-il nécessaire d'utiliser un champ en double dans une table ?
15. Comment affiner les structures des tableaux ?
16. Énoncez trois des éléments de la table idéale.
17. Qu'est-ce qu'une table de sous-ensembles ?
rtd
qP
ouaeAller au contenu
sercbLes sujets
uahlCommencer à apprendre
En
em vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
èr
7. Établir des structures de table
tcd8. Clés
rhe 9. Spécifications du terrain
es
7h 49min restantes
s
m
a
t
i
è
r
e
s
Clés
Un fait en soi n'est rien. Elle ne vaut que par l'idée qui s'y rattache, ou par la
preuve qu'elle fournit.
-CLAUDE BERNARD __
Sujets abordés dans ce chapitre
Pourquoi les clés sont importantes
Établir des clés pour chaque table
Intégrité au niveau de la table
Révision des structures de table initiales
Exemple : établissement de clés
Résumé
Questions de révision
À présent, vous avez identifié tous les sujets que la base de données suivra et
défini les structures de tableaux qui représenteront ces sujets. De plus, vous
avez soumis les structures à un processus de sélection pour contrôler leur
composition et leur qualité. Dans cette étape suivante du processus de
conception de base de données, vous commencerez à attribuer des clés à
chaque table. Vous apprendrez bientôt qu'il existe différents types de clés et
que chacune joue un rôle particulier dans la structure de la base de
données. Toutes les clés sauf une sont attribuées au cours de cette
étape ; vous attribuerez la clé restante plus tard (au Chapitre 10 , « Relations
entre les tables ») au fur et à mesure que vous établirez des relations entre les
tables.
Pourquoi les clés sont importantes
Les clés sont essentielles à la structure d'une table pour les raisons suivantes :
• Ils garantissent que chaque enregistrement d'une table est précisément
identifié. Comme vous le savez déjà, un tableau représente une collection
singulière d’objets ou d’événements similaires. (Par exemple, une table
CLASSES représente une collection de classes, pas seulement une classe
unique.) L'ensemble complet des enregistrements de la table constitue la
collection, et chaque enregistrement représente une instance unique du
sujet de la table au sein de cette collection. Vous devez disposer d'un
moyen d'identifier avec précision chaque instance, et une clé est le
dispositif qui vous permet de le faire.
• Ils aident à établir et à faire respecter divers types d’intégrité. Les clés sont
un élément majeur de l’intégrité au niveau de la table et de l’intégrité au
niveau des relations. Par exemple, ils vous permettent de vous assurer
qu'une table possède des enregistrements uniques et que les champs que
vous utilisez pour établir une relation entre une paire de tables contiennent
toujours des valeurs correspondantes.
• Ils servent à établir des relations entre les tables. Comme vous l'apprendrez
au chapitre 10 , vous utiliserez des clés pour établir une relation entre une
paire de tables.
Assurez-vous toujours de définir les clés appropriées pour chaque table. Cela
vous aidera à garantir que les structures des tables sont solides, que les
données redondantes dans chaque table sont minimes et que les relations
entre les tables sont solides.
Établir des clés pour chaque table
Votre prochaine tâche consiste à établir des clés pour chaque table de la base
de données. Les quatre principaux types de clés sont les clés candidates,
primaires, étrangères et non-clés. Le type d'une clé détermine sa fonction dans
la table.
Clés des candidats
Le premier type de clé que vous établissez pour une table est la clé candidate ,
qui est un champ ou un ensemble de champs qui identifie de manière unique
une instance unique (un enregistrement dans la table) du sujet de la
table. Chaque table doit avoir au moins une clé candidate. Vous finirez par
examiner le pool de clés candidates disponibles de la table et désignerez l’une
d’entre elles comme clé primaire officielle de la table.
Avant de pouvoir désigner un champ comme clé candidate, vous devez vous
assurer qu'il est conforme à tous les éléments d'une clé candidate. Ces
éléments constituent un ensemble de lignes directrices que vous pouvez
utiliser pour déterminer si le champ est apte à servir de clé candidate. Vous ne
pouvez pas désigner un champ comme clé candidate s’il n’est pas conforme
à l’un de ces éléments.
Éléments d'une clé de candidat
• Il ne peut pas s'agir d'un champ en plusieurs parties. Vous avez vu les
problèmes avec les champs en plusieurs parties, vous savez donc qu'en
utiliser un comme identifiant est une mauvaise idée.
• Il doit contenir des valeurs uniques. Cet élément vous aide à vous prémunir
contre la duplication d'un enregistrement donné dans la table. Les
enregistrements en double sont tout aussi mauvais que les champs en
double, et vous devez les éviter à tout prix.
• Il ne peut pas contenir de valeurs nulles. Une valeur Null représente
l'absence de valeur, et il n'y a absolument aucun moyen pour un champ clé
candidat d'identifier un enregistrement donné s'il est Null.
• Sa valeur ne peut pas entraîner une violation des règles de sécurité ou de
confidentialité de l'organisation. Les valeurs telles que les mots de passe et
les numéros de sécurité sociale ne peuvent pas être utilisées comme clé
candidate.
• Sa valeur n'est pas facultative en tout ou en partie. Une valeur facultative
implique qu’elle peut être nulle à un moment donné. Vous pouvez alors en
déduire,qu'une valeur facultative viole automatiquement l'élément
précédent et est donc inacceptable. (Cette mise en garde s'applique
particulièrement lorsque vous souhaitez utiliser deux champs ou plus
comme clé candidate.)
• Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité. Vous pouvez utiliser une combinaison de champs (traités comme
une seule unité) pour servir de clé candidate, à condition que chaque champ
contribue à définir une valeur unique. Essayez toutefois d'utiliser le moins
de champs possible, car des clés candidates trop complexes peuvent
finalement s'avérer difficiles à utiliser et à comprendre.
• Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table. Cet élément vous aide à vous prémunir contre
les enregistrements en double et garantit que vous pouvez référencer avec
précision n'importe quel enregistrement de la table à partir d'autres tables
de la base de données.
• Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné. Cet élément garantit que les clés candidates de
la table constituent le seul moyen d'identifier chaque valeur de champ dans
l'enregistrement. (Vous en apprendrez plus sur cet élément particulier dans
la section sur les clés primaires.)
• Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes. Vous
ne devez jamais modifier la valeur d’une clé candidate, sauf si vous avez
une raison absolue et impérieuse de le faire. Un champ aura probablement
du mal à se conformer aux éléments précédents si vous pouvez modifier sa
valeur arbitrairement.
L'établissement d'une clé candidate pour une table est assez simple :
recherchez un champ ou un ensemble de champs conforme à tous les éléments
d'une clé candidate. Vous pourrez probablement définir plusieurs clés
candidates pour une table donnée. Le chargement d'un tableau avec des
exemples de données vous donnera les moyens d'identifier avec précision les
clés candidates potentielles. (Vous avez utilisé cette même technique dans le
chapitre précédent.)
Voyez si vous pouvez identifier des clés candidates pour la table de la figure
8.1 .
Figure 8.1 Y a-t-il des clés candidates dans ce tableau ?
Vous avez probablement
identifié l' ID D' EMPLOYÉ , le NUMÉRO DE SÉCURITÉ SOCIALE , le NOM DE FAMILLE EMP ,
le PRÉNOM et NOM DE FAMILLE EMP , le CODE
POSTAL EMP et le TÉLÉPHONE HOME EMP comme candidats potentiels . clés. Mais vous
devrez examiner ces champs de plus près pour déterminer lesquels sont
réellement éligibles pour devenir des clés candidates. N'oubliez pas que vous
devez automatiquement ignorer tout champ qui ne respecte pas ne serait-ce
qu'un des éléments d'une clé de candidat.
Après un examen attentif, vous pouvez tirer les conclusions suivantes :
• L' ID D' EMPLOYÉ est éligible . Ce champ est conforme à chaque élément
d'une clé candidate.
• Le NUMÉRO DE SÉCURITÉ SOCIALE n'est pas éligible car il pourrait contenir des
valeurs nulles et compromettrait très probablement les règles de
confidentialité de l'organisation . Contrairement à ce que montrent les
exemples de données, ce champ pourrait contenir une valeur nulle. Par
exemple, de nombreuses personnes travaillant aux États-Unis n’ont pas de
numéro de sécurité sociale parce qu’elles sont citoyens d’autres pays ou
parce qu’elles sont simplement ici avec un visa de travail.
Note
Malgré son utilisation répandue dans de nombreux types de bases de données,
je vous recommande fortement de vous abstenir d'utiliser
le NUMÉRO DE SÉCURITÉ SOCIALE comme clé candidate (ou comme clé primaire,
d'ailleurs) dans aucune de vos structures de base de données.
Le site Web de la Social Security Administration détaille l'historique du numéro
de sécurité sociale et fournit des faits très intéressants sur les numéros de
sécurité sociale et le vol d'identité, qui est devenu beaucoup plus
problématique ces dernières années. Vous pouvez accéder à ces informations
intéressantes sur www.ssa.gov/policy/docs/ssb/v69n2/v69n2p55.html . Vous
pouvez trouver des informations relatives au vol d’identité dans la section
intitulée « Utilisations croissantes du SSN ».
• E MP L AST N AME n'est pas éligible car il peut contenir des valeurs en
double. Comme vous l'avez appris, les valeurs d'une clé candidate doivent
être uniques. Dans ce cas, il peut y avoir plusieurs occurrences d’un nom de
famille particulier.
• E MP PRENOM et E MP LAST NOM sont éligibles . _ _ _ Les valeurs combinées
des deux champs fourniront un identifiant unique pour un enregistrement
donné. Même si plusieurs occurrences d'un prénom ou d'un nom de famille
particulier peuvent se produire, la combinaison d'un prénom et d'un nom de
famille donnés sera toujours unique. (Certains d'entre vous disent
probablement : « Ce n'est pas nécessairement toujours vrai. » Vous avez
tout à fait raison. Ne vous inquiétez pas ; nous aborderons cette question
sous peu.)
• E MP Z IPCODE n'est pas éligible car il peut contenir des valeurs en double. De
nombreuses personnes vivent dans la même zone de code postal, donc les
valeurs dans E MP Z IPCODE ne peuvent pas être uniques.
• E MP H OME P HONE n'est pas éligible car il peut contenir des valeurs en
double et est sujet à changement. Ce champ contiendra des valeurs en
double pour l'une de ces raisons :
1. Un ou plusieurs membres de la famille travaillent pour l'organisation.
2. Une ou plusieurs personnes partagent une résidence contenant une seule
ligne téléphonique.
3. Cela pourrait être nul.
Vous pouvez affirmer en toute confiance que la table EMPLOYEES comporte
deux clés candidates : E MPLOYEE ID et la combinaison de E MP FIRST N AME et
E MP L AST N AME .
Marquez les clés candidates dans vos structures de tableaux en écrivant les
lettres « CK » à côté du nom de chaque champ que vous désignez comme clé
candidate. Une clé candidate composée de deux champs ou plus est
appelée clé candidate composite, et vous écrirez « CCK » à côté des noms des
champs qui composent la clé. Lorsque vous disposez de deux clés candidates
composites ou plus, utilisez un numéro dans la marque pour les distinguer les
unes des autres. Si vous aviez deux clés candidates composites, par exemple,
vous marqueriez l’une comme « CCK1 » et l’autre comme « CCK2 ».
Appliquez cette technique aux clés candidates pour la table EMPLOYEES de la
figure 8.1 . La figure 8.2 montre à quoi devrait ressembler votre structure une
fois cette tâche terminée.
Figure 8.2 Marquage des clés candidates dans la structure du tableau
EMPLOYEES.
Essayez maintenant d'identifier autant de clés candidates que possible pour la
table PARTS de la figure 8.3 .
Figure 8.3 Pouvez-vous identifier des clés candidates dans la table PARTS ?
À première vue, vous pourriez croire que le NOM DE LA PIÈCE ,
le NUMÉRO DE MODÈLE , la combinaison du NOM DE LA PIÈCE et du NUMÉRO DE MODÈLE et
la combinaison du NOM DU FABRICANT et du NOM DE LA PIÈCE sont des clés candidates
potentielles. Cependant, après avoir étudié cette théorie, vous arrivez aux
résultats suivants :
• P ART N AME n'est pas éligible car il peut contenir des valeurs en double. Un
nom de pièce donné sera dupliqué lorsque la pièce est fabriquée en
plusieurs modèles. C’est par exemple le cas des leviers de frein Faust.
• Le NUMÉRO DE MODÈLE n'est pas éligible car il peut contenir des valeurs
nulles. Une valeur de clé candidate doit exister pour chaque enregistrement
de la table. Comme vous pouvez le constater, certaines pièces n'ont pas de
numéro de modèle.
• P ART N AME et M ODEL NUMBER ne sont pas éligibles car l'un ou l'autre
champ peut contenir des valeurs nulles . Le simple fait que
M ODEL N UMBER puisse contenir des valeurs nulles disqualifie instantanément
cette combinaison de champs.
• NOM DU FABRICANT et NOM DE LA PIÈCE ne sont pas éligibles car les valeurs de
ces champs semblent facultatives . Rappelez-vous qu’une valeur de clé
candidate ne peut pas être facultative en tout ou en partie. Dans ce cas,
vous pouvez en déduire que la saisie du nom du fabricant est facultative
lorsqu'il apparaît en tant que composant du nom de la pièce ; par
conséquent, vous ne pouvez pas désigner cette combinaison de champs
comme clé candidate.
Il est évident que vous ne disposez pas d’un seul champ ou ensemble de
champs pouvant être qualifié de clé candidate pour la table PARTS. C'est un
problème car chaque table doit avoir au moins une clé
candidate. Heureusement, une solution existe.
Clés candidates artificielles
Lorsque vous déterminez qu'une table ne contient pas de clé candidate, vous
pouvez créer et utiliser une clé candidate artificielle (ou de substitution ). (C'est
artificiel dans le sens où cela n'est pas apparu « naturellement » dans le
tableau ; vous devez le fabriquer.) Vous établissez une clé candidate artificielle
en créant un nouveau champ conforme à tous les éléments d'une clé
candidate, puis en ajoutant à table ; ce champ devient la clé officielle du
candidat.
Vous pouvez maintenant résoudre le problème dans le tableau PARTS. Créez
une clé candidate artificielle appelée P ART N UMBER et attribuez-la à la table. (Le
nouveau champ sera automatiquement conforme aux éléments d'une clé
candidate car vous le créez à partir de zéro.) La figure 8.4 montre la structure
révisée de la table PARTS.
Figure 8.4 La table PARTS avec la clé candidate artificielle P ART N UMBER .
Lorsque vous avez établi une clé candidate artificielle pour une table, marquez
le nom du champ avec un « CK » dans la structure de la table, comme vous
l'avez fait pour la table EMPLOYEES dans l'exemple précédent.
Vous pouvez également choisir de créer une clé candidate artificielle lorsqu'elle
serait une clé candidate plus forte (et donc plus appropriée) que n'importe
laquelle des clés candidates existantes. Supposons que vous travaillez sur une table
EMPLOYEES et que vous déterminez que la seule clé candidate disponible est la
combinaison des champs E MP FIRST N AME et E MP L AST N AME . Bien qu'il puisse
s'agir d'une clé candidate valide, l'utilisation d'une clé candidate à champ
unique peut s'avérer plus efficace et permettre d'identifier plus facilement le
sujet de la table. Disons que tout le monde dans l'organisation est habitué à
utiliser un numéro d'identification unique plutôt qu'un nom comme moyen
d'identification d'un employé. Dans ce cas, vous pouvez choisir de créer un
nouveau champ nommé E MPLOYEE ID et de l'utiliser comme clé de candidat
artificielle. Il s'agit d'une pratique tout à fait acceptable : faites-le sans
hésitation ni réserve si vous pensez que cela est approprié.
Note
Je crée généralement un champ d'identification (tel que ID D' EMPLOYÉ , ID
DE VENDEUR , ID DE DÉPARTEMENT , ID DE C ATÉGORIE , etc.) et je l'utilise comme clé de
candidat artificielle. Elle est toujours conforme aux éléments d'une clé
candidate, constitue une excellente clé primaire (éventuellement) et, comme
vous le verrez au chapitre 10 , facilite grandement le processus
d'établissement des relations entre les tables.
Passez en revue les clés candidates que vous avez sélectionnées et assurez-
vous qu'elles sont parfaitement conformes aux éléments d'une clé
candidate. Ne soyez pas surpris si vous découvrez que l'un d'entre eux n'est
pas une clé candidate après tout : une identification incorrecte d'un champ
comme clé candidate arrive occasionnellement. Lorsque cela se produit,
supprimez simplement l’indicateur « CK » du nom du champ dans la structure
de la table. La suppression d'une clé candidate ne posera pas de problème tant
que la table contient plusieurs clés candidates. Toutefois, si vous découvrez
que la seule clé candidate que vous avez identifiée pour la table n'est pas une
clé candidate, vous devez établir une clé candidate artificielle pour la
table. Après avoir défini la nouvelle clé candidate, pensez à marquer son nom
avec un « CK » dans la structure du tableau.
Clés primaires
À présent, vous avez établi toutes les clés candidates qui semblent appropriées
pour chaque table. Votre tâche suivante consiste à établir une clé primaire pour
chaque table, qui est la clé la plus importante de toutes.
• Un champ de clé primaire identifie exclusivement la table dans la structure
de la base de données et permet d'établir des relations avec d'autres
tables. (Vous en apprendrez davantage à ce sujet au chapitre 10. )
• Une valeur de clé primaire identifie de manière unique un enregistrement
donné dans une table et représente exclusivement cet enregistrement dans
l'ensemble de la base de données. Cela permet également de se prémunir
contre les enregistrements en double.
Une clé primaire doit être conforme exactement aux mêmes éléments qu’une
clé candidate. Cette exigence est facile à remplir car vous sélectionnez une clé
primaire dans le pool de clés candidates disponibles d'une table. Le processus
de sélection d'une clé primaire est quelque peu similaire à celui d'une élection
présidentielle. Tous les quatre ans, plusieurs personnes se présentent au poste
de président des États-Unis. Ces personnes sont appelées « candidats » et
possèdent toutes les qualifications requises pour devenir président. Une
élection nationale a lieu et une seule personne parmi le groupe de candidats
présidentiels disponibles est élue comme président officiel du pays. De même,
vous identifiez chaque clé de candidat qualifié dans la table, organisez votre
propre élection et sélectionnez l'une d'entre elles pour devenir la clé primaire
officielle de la table. Vous avez déjà identifié les candidats, c'est donc
maintenant l'heure des élections !
En supposant qu'il n'y ait pas d'autre préférence marginale, voici quelques
lignes directrices que vous pouvez utiliser pour sélectionner une clé primaire
appropriée.
1. Si vous disposez d’une clé candidate simple (à champ unique) et d’une clé
candidate composite, choisissez la clé candidate simple. Il est toujours
préférable d'utiliser une clé candidate contenant le moins de champs
possible.
2. Choisissez une clé candidate qui intègre une partie du nom de la table dans
son propre nom. Par exemple, une clé candidate portant un nom tel que
S ALES I NVOICE N UMBER est un bon choix pour la table SALES INVOICES.
Examinez les clés candidates et choisissez-en une qui servira de clé primaire
pour la table. Le choix est largement arbitraire : vous pouvez choisir celui qui,
selon vous, identifie le plus précisément le sujet du tableau ou celui qui est le
plus significatif pour tous les membres de l'organisation. Par exemple,
considérons à nouveau la table EMPLOYEES dans la figure 8.5 .
Figure 8.5 Quelle clé candidate doit devenir la clé primaire de la table
EMPLOYEES ?
L'une ou l'autre des clés candidates que vous avez identifiées dans le tableau
peut servir de clé primaire. Vous pouvez décider de choisir l'ID EMPLOYÉ si tout
le monde dans l'organisation est habitué à utiliser ce numéro comme moyen
d'identifier les employés dans des éléments tels que les formulaires fiscaux et
les programmes d'avantages sociaux des employés. La clé candidate que vous
choisissez finalement devient la clé primaire de la table et est régie par les
éléments d'une clé primaire. Ces éléments sont exactement les mêmes que
ceux du candidatclé, et vous devez les appliquer à la lettre. Par souci de clarté,
voici les éléments d’une clé primaire :
Éléments d'une clé primaire
• Il ne peut pas s'agir d'un champ en plusieurs parties.
• Il doit contenir des valeurs uniques.
• Il ne peut pas contenir de valeurs nulles.
• Sa valeur ne peut pas entraîner une violation des règles de sécurité ou de
confidentialité de l'organisation.
• Sa valeur n'est pas facultative en tout ou en partie.
• Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité.
• Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table.
• Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné.
• Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes.
Avant de finaliser votre sélection de clé primaire, il est impératif de vous
assurer absolument que la clé primaire respecte parfaitement cet élément
particulier :
Sa valeur doit identifier exclusivement la valeur de chaque champ au sein d'un
enregistrement donné.
Chaque valeur de champ dans un enregistrement donné doit être unique dans
l'ensemble de la base de données (sauf si elle participe à l'établissement d'une
relation entre une paire de tables) et ne doit avoir qu'un seul moyen
d'identification exclusif : la valeur de clé primaire spécifique pour cet
enregistrement.
Vous pouvez déterminer si une clé primaire est entièrement conforme à cet
élément en suivant ces étapes :
1. Chargez la table avec des exemples de données.
2. Sélectionnez un enregistrement à des fins de test et notez la valeur actuelle
de la clé primaire.
3. Examinez la valeur du premier champ (celui immédiatement après la clé
primaire) et posez-vous cette question :
Cette valeur de clé primaire identifie-t-elle exclusivement la valeur actuelle
de <fieldname> ?
1. Si la réponse est « oui », passez au champ suivant et répétez la question.
2. Si la réponse est « non », supprimez le champ du tableau, passez au
champ suivant et répétez la question.
4. Continuez cette procédure jusqu'à ce que vous ayez examiné chaque valeur
de champ de l'enregistrement.
Une valeur de champ que la clé primaire n'identifie pas exclusivement indique
que le champ lui-même n'est pas nécessaire à la structure de la table ; par
conséquent, vous devez supprimer le champ et reconfirmer que le tableau est
conforme aux éléments du tableau idéal. Vous pouvez ensuite ajouter le champ
que vous venez de supprimer à une autre structure de table, le cas échéant, ou
vous pouvez le supprimer complètement car il est vraiment inutile.
Voici un exemple de la manière dont vous pouvez appliquer cette technique à
la structure de table partielle de la figure 8.6 . (Notez que I NVOICE N UMBER est la
clé primaire de la table.)
Figure 8.6 La clé primaire identifie-t-elle exclusivement la valeur de chaque
champ de cette table ?
Tout d’abord, vous chargez la table avec des exemples de données. Vous
sélectionnez ensuite un enregistrement à des fins de test (nous utiliserons le
troisième enregistrement pour cet exemple) et notez la valeur de la clé
primaire (13002). Maintenant, posez les questions suivantes pour chaque
valeur de champ de l'enregistrement.
Cette valeur de clé primaire identifie-t-elle exclusivement la valeur actuelle
de. . .
DATE DE FACTURE ? _ Oui. Ce numéro de facture identifiera toujours la date
spécifique à laquelle la facture a été créée.
PRÉNOM DU CLIENT ? _ _ _ Oui. Ce numéro de facture identifiera toujours le
prénom spécifique du client particulier qui a effectué cet achat.
C UST NOM DE FAMILLE ? _ Oui. Ce numéro de facture identifiera toujours le nom
de famille spécifique du client particulier qui a effectué cet achat.
E MP PRÉNOM ? _ _ _ Oui. Ce numéro de facture identifiera toujours le prénom
spécifique de l'employé particulier qui a servi le client pour cette vente.
E MP NOM DE FAMILLE ? _ Oui. Ce numéro de facture identifiera toujours le nom de
famille spécifique de l'employé particulier qui a servi le client pour cette vente.
E MP TÉLÉPHONE MAISON ? _ _ Non, ce n'est pas le cas ! Le numéro de
facture identifie indirectement le numéro de téléphone du domicile de
l'employé via le nom de l'employé.En fait, c'est la valeur actuelle de
E MP FIRST N AME et E MP LAST N AME qui identifie exclusivement la valeur de
E MP H OME P HONE — changez le nom de l'employé, et vous devez également
changer le numéro de téléphone . . Vous devez maintenant supprimer
E MP H OME P HONE du tableau pour deux raisons : la clé primaire n'identifie pas
exclusivement sa valeur actuelle et (comme vous l'avez probablement déjà
constaté) il s'agit d'un champ inutile. Il s'avère que vous pouvez supprimer
complètement ce champ car il fait déjà partie de la structure de la table
EMPLOYEES.
Après avoir supprimé les champs inutiles que vous avez identifiés lors de ce
test, examinez la structure du tableau révisé et assurez-vous qu'elle est
conforme aux éléments du tableau idéal.
La clé primaire doit désormais identifier exclusivement les valeurs des champs
restants de la table. Cela signifie que la clé primaire est vraiment saine et que
vous pouvez la désigner comme clé primaire officielle de la table. Supprimez le
« CK » à côté du nom du champ dans la structure du tableau et remplacez-le
par un « PK ». (Une clé primaire composée de deux champs ou plus est
appelée clé primaire composite et vous la marquez avec les lettres « CPK ».) La
figure 8.7 montre la structure révisée de la table FACTURES DE VENTES avec
le NUMÉRO DE FACTURE comme clé primaire. .
Figure 8.7 La table SALES INVOICES révisée avec sa nouvelle clé primaire.
Règles d'établissement d'une clé primaire
Lorsque vous créez une clé primaire pour chaque table de la base de données,
gardez ces deux règles à l'esprit :
1. Chaque table doit avoir une (et une seule) clé primaire. La clé
primaire devant être conforme à chacun des éléments qui la régissent, une
seule clé primaire est nécessaire pour une table particulière.
2. Chaque clé primaire de la base de données doit être unique : deux tables ne
doivent pas avoir la même clé primaire, sauf si elles entretiennent une
relation un-à-un ou si l'une d'entre elles est une table de sous-
ensemble. Vous avez appris au début de cette section que la clé primaire
identifie exclusivement une table dans la structure de la base de
données ; par conséquent, chaque table doit avoir sa propre clé
primaire unique pour éviter toute confusion ou ambiguïté possible
concernant l'identité de la table. Une table de sous-ensemble est exclue de
cette règle car elle représente une version plus spécifique du sujet d'une
table de données particulière : les deux tables doivent partager la même clé
primaire.
Plus tard dans le processus de conception de base de données, vous
apprendrez à utiliser la clé primaire pour établir une relation entre une paire de
tables.
Clés alternatives
Maintenant que vous avez sélectionné une clé candidate pour servir de clé
primaire pour une table particulière, vous allez désigner les clés candidates
restantes comme clés alternatives . Ces clés peuvent vous être utiles dans un
programme SGBDR car elles fournissent un moyen alternatif d'identifier de
manière unique un enregistrement particulier dans la table. Si vous choisissez
d'utiliser une clé alternative de cette manière, marquez son nom avec « AK »
ou « CAK » (clé alternative composite) dans la structure du tableau ; sinon,
supprimez sa désignation en tant que clé alternative et remettez-la simplement
au statut de champ normal. Vous ne vous soucierez pas des clés alternatives
pour le reste du processus de conception de la base de données, mais vous
travaillerez à nouveau avec elles.lorsque vous implémentez la base de données
dans un programme SGBDR. (La mise en œuvre et l'utilisation de clés
alternatives dans les programmes SGBDR dépassent la portée de ce travail ;
notre seul objectif ici est de les désigner comme appropriées. Ceci est
conforme à l'objectif du livre, qui est la conception logique d'une base de
données.)
La figure 8.8 montre la structure finale de la table EMPLOYEES avec la
désignation appropriée pour la clé primaire et les clés alternatives.
Figure 8.8 La table EMPLOYEES avec les clés primaires et secondaires
désignées.
Non-clés
Une non-clé est un champ qui ne sert pas de clé candidate, primaire,
alternative ou étrangère . Son seul objectif est de représenter une
caractéristique du sujet de la table et sa valeur est déterminée par la clé
primaire. Il n'y a pas de désignation particulière pour une non-clé, vous n'avez
donc pas besoin de la marquer dans la structure du tableau.
Intégrité au niveau de la table
L'intégrité au niveau des tables est un élément majeur de l'intégrité globale
des données et garantit les éléments suivants :
• Il n'y a pas d'enregistrements en double dans une table.
• La clé primaire identifie exclusivement chaque enregistrement d'une table.
• Chaque valeur de clé primaire est unique.
• Les valeurs de clé primaire ne sont pas nulles.
Vous avez commencé à établir l'intégrité au niveau des tables lorsque vous
avez défini une clé primaire pour chaque table et assuré son application en
vous assurant absolument que chaque clé primaire était entièrement conforme
aux éléments d'une clé primaire. Dans le chapitre suivant, vous améliorerez
davantage l'intégrité de la table en établissant les spécifications de
champ pour chaque champ de la table.
Révision des structures de table initiales
Maintenant que les définitions fondamentales des tableaux sont terminées,
vous devez mener des entretiens avec les utilisateurs et la direction pour revoir
le travail que vous avez effectué jusqu'à présent. Cette série d’entretiens est
assez simple et devrait être relativement facile à mener.
Lors de ces entretiens, vous accomplirez ces tâches :
• Assurez-vous que les sujets appropriés sont représentés dans la base de
données. Même s'il est très peu probable qu'un sujet important manque à
ce stade du processus de conception de la base de données, cela peut
arriver. Lorsque cela se produit, identifiez le sujet, utilisez les techniques
appropriées pour le transformer en tableau et développez-le au même degré
que les autres tableaux de la base de données.
• Assurez-vous que les noms et les descriptions des tables sont adaptés et
significatifs pour tout le monde. Lorsqu'un nom ou une description semble
prêter à confusion ou ambiguë à plusieurs personnes de l'organisation,
travaillez avec elles pour clarifier l'élément autant que possible. Il est
courant que certains noms et descriptions de tables s'améliorent au cours
du processus d'entretien.
• Assurez-vous que les noms de champs sont appropriés et significatifs pour
tout le monde. La sélection des noms de champs génère généralement de
nombreuses discussions, en particulier lorsqu'une base de données
existante est en place. Vous trouverez généralement des personnes qui font
habituellement référence à un champ particulier par un certain nom, car «
c'est ainsi qu'il s'appelle sur mon écran ». Lorsque vous modifiez le nom
d'un champ (vous avez de bonnes raisons de le faire), vous devez expliquer
diplomatiquement à ces personnes que vous avez renommé le champ afin
qu'il soit conforme aux normes imposées par la nouvelle base de
données. Vous pouvez également leur indiquer que le champ peut
apparaître avec un nom plus familier une fois la base de données
implémentée dans un programme SGBDR. Ce que vous dites est vrai ; de
nombreux SGBDR vous permettent d'utiliser un nom pour la définition
physique du champ et un autre nom à des fins d'affichage. Cependant, cette
fonctionnalité ne modifie, ne réduit ou n'annule pas la nécessité de suivre
les instructions de création de noms de champs que vous avez apprises
au chapitre 7 , « Établir des structures de table ».
• Vérifiez que tous les champs appropriés sont affectés à chaque table. C'est
votre meilleure occasion de vous assurer que toutes les caractéristiques
nécessaires relatives au sujet du tableau sont en place. Vous découvrirez
souvent que vous avez accidentellement oublié une ou deux
caractéristiques plus tôt dans le processus de conception. Lorsque cela se
produit, identifiez les caractéristiques, utilisez les techniques appropriées
pour les transformer en champs et suivez toutes les étapes nécessaires pour
les ajouter au tableau.
Une fois les entretiens terminés, vous passerez à la phase suivante du
processus de conception de la base de données et établirez les spécifications
de champ pour chaque champ de la base de données.
EXEMPLE : ÉTABLISSEMENT DE CLÉS
Il est maintenant temps d'établir des clés pour chaque table de la base de
données Mike's Bikes. Comme vous le savez, votre première tâche consiste à
établir des clés de candidat pour chaque table. Supposons que vous décidiez
de commencer par la table CUSTOMERS de la figure 8.9 .
Figure 8.9 Structure de la table CUSTOMERS dans la base de données Mike's
Bikes.
Lorsque vous examinez chaque champ, vous essayez de déterminer s'il est
conforme aux éléments d'une clé de candidat. Vous déterminez que S TATUS ,
C UST H OME T HONE et la combinaison de C UST FIRST N AME et C UST L AST N AME
sont des clés candidates potentielles, mais vous n'êtes pas sûr que l'une d'entre elles soit
entièrement conforme à tous les éléments. Vous décidez donc de tester les clés
en chargeant la table avec des exemples de données, comme le montre
la figure 8.10 .
Figure 8.10 Test des clés candidates dans la table CUSTOMERS.
N'oubliez jamais qu'un champ doit être conforme à tous les éléments d'une clé
candidate pour être considéré comme une clé candidate. Vous devez
immédiatement disqualifier le champ s'il ne remplit pas cette condition.
En examinant le tableau, vous tirez ces conclusions :
• S TATUS n'est pas éligible car il contiendra probablement des valeurs en
double. À mesure que l'entreprise se développe, Mike aura de nombreux
clients « précieux ».
• C UST H OME P HONE n'est pas éligible car il contiendra probablement des
valeurs en double et est susceptible de changer à mesure que les gens
s'éloignent des lignes fixes et migrent vers les smartphones. Les données
échantillonnées révèlent que deux clients peuvent vivre dans la même
résidence et avoir le même numéro de téléphone.
• C UST FIRST N AME et C UST L AST N AME ne sont pas éligibles car ils
contiendront probablement des valeurs en double . Les exemples de
données révèlent que la combinaison du prénom et du nom peut
représenter plusieurs clients distincts.
Ces résultats vous convainquent d’établir une clé candidate artificielle pour
cette table. Vous créez ensuite un champ appelé ID CLIENT , confirmez qu'il est
conforme aux exigences d'une clé candidate et ajoutez le nouveau champ à la
structure de la table avec la désignation appropriée.
La figure 8.11 montre la structure révisée de la table CLIENTS.
Figure 8.11 La table CUSTOMERS avec la nouvelle clé candidate artificielle,
C USTOMER ID.
Vous allez maintenant répéter cette procédure pour chaque table de la base de
données. N'oubliez pas de vous assurer que chaque table possède au
moins une clé candidate.
La prochaine étape consiste à établir une clé primaire pour chaque
table. Comme vous le savez, vous sélectionnez la clé primaire d'une table
particulière dans le pool de clés candidates disponibles de la table. Voici
quelques points à garder à l’esprit lorsque vous choisissez une clé primaire
pour une table comportant plusieurs clés candidates :
• Choisissez une clé candidate simple (à champ unique) plutôt qu’une clé
candidate composite.
• Si possible, choisissez une clé candidate dont le nom de la table est
incorporé dans son propre nom.
• Sélectionnez la clé du candidat qui identifie le mieux le sujet du tableau ou
qui est la plus significative pour tous les membres de l'organisation.
Vous commencez par travailler avec la table EMPLOYEES de la figure 8.12 . En
examinant les clés des candidats, vous décidez que le NUMÉRO D' EMPLOYÉ est un
bien meilleur choix pour une clé primaire que la combinaison du PRENOM
EMP et du NOM DE FAMILLE EMP , car les employés de Mike sont déjà habitués à
s'identifier par leurs numéros attribués. Utiliser EMPLOYEE N UMBER est
parfaitement logique, vous le sélectionnez donc comme clé primaire de la
table.
Figure 8.12 Structure de la table EMPLOYEES dans la base de données Mike's
Bikes.
Vous effectuez maintenant une dernière tâche avant de désigner le
NUMÉRO D' EMPLOYÉ comme clé primaire officielle de la table : vous vous assurez
absolument qu'il identifie exclusivement la valeur de chaque champ dans un
enregistrement donné. Ainsi, vous testez le NUMÉRO D' EMPLOYÉ en suivant ces
étapes.
1. Chargez la table EMPLOYEES avec des exemples de données.
2. Sélectionnez un enregistrement à des fins de test et notez la valeur actuelle
du NUMÉRO D' EMPLOYÉ .
3. Examinez la valeur du premier champ (celui immédiatement
après NUMÉRO D' EMPLOYÉ ) et posez-vous cette question :
Cette valeur de clé primaire identifie-t-elle exclusivement la valeur actuelle
de <fieldname> ?
1. Si la réponse est « oui », passez au champ suivant et répétez la question.
2. Si la réponse est « non », supprimez le champ du tableau, passez au
champ suivant et répétez la question. (Assurez-vous de déterminer si
vous pouvez ajouter le champ que vous venez de supprimer à une autre
structure de table, le cas échéant, ou le supprimer complètement car il
est vraiment inutile.)
4. Continuez cette procédure jusqu'à ce que vous ayez examiné chaque valeur
de champ de l'enregistrement.
Vous savez que vous devrez supprimer tout champ contenant une valeur que
le NUMÉRO D' EMPLOYÉ n'identifie pas exclusivement. Cependant,
EMPLOYEE N UMBER identifie exclusivement la valeur de chaque champ dans
l'enregistrement de test, vous l'utilisez donc comme clé primaire officielle pour
la table EMPLOYEES et marquez son nom avec les lettres « PK » dans la
structure de la table . Vous répétez ensuite ce processus avec le reste des
tables de la nouvelle base de données de Mike jusqu'à ce que chaque table ait
une clé primaire.
N'oubliez pas de garder ces règles à l'esprit lorsque vous établissez les clés
primaires pour chaque table.
• Chaque table doit avoir une (et une seule) clé primaire.
• Chaque clé primaire de la base de données doit être unique ; deux tables ne
doivent pas avoir le même champ de clé primaire (sauf si elles
entretiennent une relation un-à-un ou si l'une d'entre elles est une table de
sous-ensemble).
Lorsque vous parcourez les tables de la base de données de Mike, vous vous
souvenez que la table SERVICES est une table de sous-ensemble. Vous l'avez
créé pendant leétape précédente du processus de conception (au chapitre 7 ),
et il représente une version plus spécifique du sujet représenté par la table
PRODUITS. Le champ P RODUCT N AME est ce qui relie actuellement la table
PRODUCTS à la table du sous-ensemble SERVICES. Cependant, vous savez
maintenant qu'une table de sous-ensemble doit avoir la même clé primaire que
la table à laquelle elle est liée, vous utiliserez donc P RODUCT N UMBER (la clé
primaire de la table PRODUCTS) comme clé primaire des SERVICES. tableau. La
figure 8.13 montre les tables PRODUITS et SERVICES avec leurs clés primaires.
Figure 8.13 Établissement de la clé primaire pour la table du sous-ensemble
SERVICES.
La dernière chose à faire est de mener des entretiens avec Mike et son équipe
et de passer en revue tout le travail que vous avez effectué sur les tables de la
base de données. Pendant que vous menez ces entretiens, assurez-vous de
vérifier les points suivants :
• Les sujets appropriés sont représentés dans la base de données.
• Les noms et descriptions des tables sont adaptés et significatifs pour tout le
monde.
• Les noms de champs conviennent et ont un sens pour tout le monde.
• Tous les champs appropriés sont affectés à chaque table.
A la fin de l'entretien, chacun s'accorde sur le fait que les tableaux sont en bon
état et que tous les sujets qui les concernent sont représentés dans la base de
données. Un seul point mineur est revenu au cours des discussions : Mike
souhaite ajouter un champ C ALL P RIORITY à la table VENDORS. Il existe des cas
dans lesquels plusieurs fournisseurs fournissent un produit particulier, et Mike
souhaite créer un moyen d'indiquer quel fournisseur il doit appeler en premier
si ce produit est inopinément en rupture de stock. Ainsi, vous ajoutez le
nouveau champ à la table VENDORS et mettez fin à l’entretien.
Résumé
Le chapitre s'ouvre sur une discussion sur l'importance des clés. Vous avez
appris qu’il existe différents types de clés et que chaque type joue un rôle
différent dans la base de données. Chaque clé remplit une fonction particulière,
telle que l'identification unique des enregistrements, l'établissement de
différents types d'intégrité et l'établissement de relations entre les tables. Vous
savez maintenant que vous pouvez garantir une structure de table solide en
vous assurant que les clés appropriées sont établies pour chaque table.
Nous avons ensuite discuté du processus d'établissement des clés pour chaque
table. Nous avons commencé par identifier les quatre principaux types de
clés : candidates, primaires, étrangères et non-clés. Tout d’abord, nous avons
examiné le processus d’établissement des clés candidates pour chaque
table. Vous avez découvert les éléments d'une clé candidate et comment vous
assurer qu'un champ (ou un ensemble de champs) est conforme à ces
éléments. Vous avez ensuite appris que vous pouvez créer et utiliser une clé
candidate artificielle lorsqu'aucun des champs d'une table ne peut servir de clé
candidate ou lorsqu'un nouveau champ constituerait une clé candidate plus
forte que n'importe lequel des champs de clé candidate existants.
Le chapitre s'est poursuivi avec une discussion sur les clés primaires. Vous
avez appris que vous sélectionnez une clé primaire dans le pool de clés
candidates d'une table et que la clé primaire est régie par un ensemble
d'éléments spécifiques. Nous avons ensuitea couvert un ensemble de
directives qui vous aident à déterminer quelle clé candidate utiliser comme clé
primaire. Ensuite, vous avez appris à vous assurer que la clé primaire choisie
identifie exclusivement un enregistrement donné et son ensemble de valeurs
de champ. Lorsque la clé primaire n'identifie pas exclusivement une valeur de
champ particulière, vous savez que vous devez supprimer le champ de la table
pour garantir l'intégrité structurelle de la table. Vous savez également que
chaque table doit avoir une clé primaire unique.
Vous avez ensuite appris à désigner toutes les clés candidates restantes
comme clés alternatives . Ces clés vous seront très utiles lorsque vous
implémenterez la base de données dans un programme SGBDR car elles
fournissent un moyen alternatif d'identifier un enregistrement donné. Nous
avons ensuite discuté du champ non-clé , qui est tout champ non désigné
comme clé candidate, primaire, alternative ou étrangère. Vous savez désormais
qu'un champ non clé représente une caractéristique du sujet de la table et que
la clé primaire identifie exclusivement sa valeur.
L'intégrité au niveau de la table a été le prochain sujet de discussion, et vous
avez appris qu'elle est établie grâce à l'utilisation de clés primaires et
appliquée par les éléments d'une clé primaire.
Le chapitre s'est terminé par quelques conseils sur la manière de mener
d'autres entretiens avec les utilisateurs et la direction. Vous savez maintenant
que ces entretiens vous permettent de revoir le travail que vous avez effectué
sur les tables et vous aident à vérifier et valider la structure actuelle de la base
de données.
Questions de révision
1. Énoncez les trois raisons pour lesquelles les clés sont importantes.
2. Quels sont les quatre principaux types de clés ?
3. A quoi sert une clé candidat ?
4. Énoncez quatre éléments des éléments d’une clé de candidat.
5. Vrai ou faux : une clé candidate peut être composée de plusieurs champs.
6. Une table peut-elle avoir plusieurs clés candidates ?
7. Qu'est-ce qu'une clé candidate artificielle ?
8. Quelle est la clé la plus importante que vous attribuez à une table ?
9. Pourquoi cette clé est-elle importante ?
10. Comment établir une clé primaire ?
11. Énoncez quatre éléments des éléments d'une clé primaire .
12. Que devez-vous faire avant de finaliser votre sélection de clé primaire ?
13. Qu'est-ce qu'une clé alternative ?
14. Que garantissez-vous en établissant l’intégrité au niveau de la table ?
15. Pourquoi devriez-vous revoir les structures initiales des tableaux ?
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
8. Clés
9. Spécifications du terrain
10. Relations entre les tables
7h 5min restantes
Spécifications du terrain
C’est depuis longtemps un axiome pour moi que les petites choses sont
infiniment les plus importantes.
—SHERLOCK H OLMES , LES AVENTURES DE S HERLOCK H OLMES _
Sujets abordés dans ce chapitre
Pourquoi les spécifications de terrain sont importantes
Intégrité au niveau du terrain
Anatomie d'une spécification de champ
Utilisation de spécifications de champ uniques, génériques et de réplication
Définition des spécifications de champ pour chaque champ de la base de
données
Exemple : Définition des spécifications de champ
Résumé
Questions de révision
Les champs constituent la base de la base de données. Ils représentent les
caractéristiques des sujets qui sont importants pour une organisation. Les
champs stockent les données que l'organisation utilise comme base
d'informations, informations essentielles à ses opérations quotidiennes, à son
succès et à sa croissance future. Malgré leur valeur inhérente, les domaines
restent les atouts les plus négligés, sous-utilisés et négligés de
l’organisation ! Souvent, peu ou pas de temps est consacré à garantir
l’intégrité structurelle et logique des champs de la base de données.
On dit et écrit beaucoup sur l’intégrité des données, mais peu est fait à ce
sujet. De nombreuses personnes pensent que garder un œil sur leur personnel
de saisie des données et disposer d’une interface utilisateur « infaillible » pour
la base de données minimisera considérablement les problèmes potentiels liés
aux données. Cette approche superficielle de l’intégrité des données découle
généralement d’une croyance erronée selon laquelle une bonne intégrité des
données prend trop de temps à établir. Il est important de noter, cependant,
que les personnes qui n'ont pas le temps d'établir l'intégrité des données
passent généralement beaucoup de temps à réparer leurs bases de données
mal conçues - généralement jusqu'à trois fois plus de temps qu'il leur en aurait
fallu pour concevoir la base de données. base de données correctement en
premier lieu !
Dans ce chapitre, vous apprendrez comment établir l'intégrité des données en
définissant les spécifications de champ pour chaque champ de la base de
données. Tout d’abord, vous découvrirez les trois ensembles d’éléments qui
composent une spécification de champ ; vous apprendrez ensuite à mener des
entretiens avec les utilisateurs et la direction pour solliciter leur aide dans la
définition des spécifications des champs.
Pourquoi les spécifications de terrain sont importantes
Malgré ce que vous avez peut-être entendu, le temps nécessaire pour établir
les spécifications de chaque champ de la base de données est
un investissement dans la création de données cohérentes et d'informations de
qualité : vous ne perdez pas de temps en effectuant ce processus. En fait, vous
perdrez plus de temps au final si vous n'effectuez que partiellement ce
processus ou si vous le négligez entièrement. Si vous ne respectez pas cette
obligation, vous serez forcément confronté (et souffrirez) de données
incohérentes et erronées et d'informations inexactes.
Les spécifications de terrain sont cruciales pour plusieurs raisons :
• Les spécifications de champ aident à établir et à appliquer l’intégrité au
niveau du champ. La mise en œuvre de ces spécifications vous permet de
garantir que les données de chaque champ sont cohérentes et valides.
• La définition des spécifications de champ pour chaque champ améliore
l’intégrité globale des données. N'oubliez pas que l'intégrité au niveau du
champ est l'une des quatre composantes de l'intégrité globale des
données. L'intégrité au niveau du champ améliore (dans une certaine
mesure) l'intégrité au niveau de la table que vous avez établie lors de
l'étape précédente du processus de conception. (Cela deviendra évident
lorsque vous travaillerez avec les éléments logiques de la spécification du
champ.)
• Définir les spécifications des champs vous oblige à acquérir une
compréhension complète de la nature et de la finalité des données
contenues dans la base de données. Comprendre les données signifie que
vous pouvez juger si les données sont vraiment nécessaires et importantes
pour l'organisation, et que vous pouvez apprendre à les utiliser à votre
meilleur avantage.
• Les spécifications des champs constituent le « dictionnaire de données » de
la base de données. Chaque spécification de champ stocke des données sur
les caractéristiques d'un champ particulier dans la base de
données. L'ensemble complet de spécifications que vous établissez pour
tous les champs de la base de données constitue un dictionnaire littéral de
la structure de la base de données. Ce dictionnaire de données est
particulièrement utile lorsque vous implémentez votre base de données
dans un SGBDR : vous pouvez l'utiliser comme guide pour créer les champs
et définir leurs propriétés fondamentales. Ces spécifications vous aideront
également à déterminer le type de procédures de saisie et de validation des
données que vous devez mettre en œuvre dans toute application d'interface
utilisateur que vous créez pour la base de données.
Gardez à l’esprit que les niveaux de cohérence, de qualité et d’exactitude des
données de la base de données (et des informations extraites de ces données)
sont directement proportionnels à la mesure dans laquelle vous remplissez ces
spécifications. L'établissement complet de chaque spécification de champ est
d'une importance primordiale si votre organisation dépend fortement des
informations que vous récupérez de la base de données.
Intégrité au niveau du terrain
Un champ atteint l'intégrité au niveau du champ une fois que vous avez défini
un ensemble complet de spécifications de champ pour le champ. L’intégrité au
niveau du terrain garantit ce qui suit.
• L'identité et la fonction d'un champ sont claires et tous les tableaux dans
lesquels il apparaît sont correctement identifiés.
• Les définitions de champs sont cohérentes dans toute la base de données.
• Les valeurs d'un champ sont cohérentes et valides.
• Les types de modifications pouvant être appliquées aux valeurs du champ
sont clairement identifiés.
Vous pouvez garantir qu’une structure de terrain est solide et conçue de
manière optimale lorsqu’elle dispose d’un ensemble complet de spécifications
de terrain et qu’elle est entièrement conforme aux éléments du champ
idéal. En fait, s’assurer que le champ est conforme aux éléments du champ
idéal rend la définition d’un ensemble de spécifications relativement facile.
Si vous avez des doutes persistants quant à la conformité d'un champ
particulier aux éléments du champ idéal, c'est le bon moment pour revoir ce
champ une fois de plus. Si vous déterminez qu'il n'est pas conforme, utilisez les
techniques appropriées pour résoudre le problème et apportez les ajustements
appropriés au tableau ; sinon, vous pouvez commencer le processus de
définition des spécifications de champ pour chaque champ de la base de
données. Voici à nouveau les éléments du champ idéal pour votre commodité.
• Il représente une caractéristique distincte du sujet du tableau.
• Il ne contient qu'une seule valeur.
• Il ne peut pas être déconstruit en composants plus petits.
• Il ne contient pas de valeur calculée ou concaténée.
• Il est unique dans toute la structure de la base de données.
• Elle conserve la majorité de ses caractéristiques lorsqu'elle apparaît dans
une ou plusieurs tables sous forme de clé étrangère.
Anatomie d'une spécification de champ
Une spécification de champ intègre divers éléments qui définissent chaque
attribut d'un champ. Tous les éléments de la spécification sont classés
en éléments généraux, éléments physiques ou éléments logiques. Ces
catégories d'éléments vous permettent de vous concentrer sur un aspect
distinct du domaine lorsque vous définissez la spécification et vous permettent
de trouver assez facilement un élément particulier.
Voici les éléments au sein de chaque catégorie.
• Éléments généraux : nom du champ, table parent, type de spécification,
spécification source, partagé par, alias, description.
• Éléments physiques : type de données, longueur, décimales, prise en
charge des caractères
• Éléments logiques : type de clé, structure de clé, unicité, prise en charge
nulle, valeurs saisies par, valeur requise, plage de valeurs, règle d'édition
La figure 9.1 montre un exemple de feuille de spécifications de terrain. Nous
utiliserons cette feuille (ou diverses parties de celle-ci) pour travailler sur des
exemples de spécifications de champ dans le reste du livre.
Figure 9.1 Feuille de spécifications sur le terrain.
Éléments généraux
Les éléments de la catégorie Éléments généraux représentent les attributs les
plus fondamentaux du domaine. Ils fournissent des informations sur l'objectif
du champ, le nom de la ou des tables dans lesquelles le champ apparaît et les
pseudonymes que le champ prend dans certaines circonstances.
Nom de domaine
Le nom du champ est l'ensemble de mots minimaux absolus qui identifient de
manière unique un champ particulier dans la base de données. Vous avez créé
et affiné les noms de champs plus tôt dans le processus de conception de la
base de données (voir Chapitre 7 , « Établir des structures de table »), vous
allez donc simplement prendre chaque nom et l'utiliser comme paramètre pour
cet élément.
Tableau parent
La table qui intègre un champ donné dans sa structure est appelée table
parent du champ . C'est le seul tableau dans lequel le champ apparaîtra sauf
si le champ participe à l'établissement d'une relation. (Vous en apprendrez
davantage sur cette exception au chapitre 10 , « Relations entre les tables ».)
Par exemple, STUDENTS est la table parent du champ STUDENT FIRST N AME .
Type de spécification
Les éléments que vous définissez pour un champ donné dépendent du type de
spécification que vous définissez pour le champ. Vous pouvez définir une
spécification de trois manières.
1. Unique : il s'agit de la spécification par défaut pour tous les champs, à
l'exception de ceux qui servent de modèle pour d'autres champs ou de ceux
qui participent à une relation de table en tant que clés étrangères. Vous
pouvez incorporer tous les éléments à l'exception de l'élément Spécification
source pour ce type de spécification, et les paramètres d'élément que vous
définissez s'appliqueront uniquement au champ indiqué dans l'élément Nom
du champ.
2. Générique : cette spécification sert de modèle pour d'autres spécifications
de champ et vous aide à garantir des définitions cohérentes pour les
champs ayant la même signification générale . Par exemple, vous pouvez
créer ce type de spécification pour un champ S TATE générique , puis l'utiliser
comme base pour tous les autres champs S TATE de la base de données. Les
champs tels que C UST S TATE ,E MP S TATE et V END S TATE ont tous la même
signification (ils représentent un État aux États-Unis), mais il existe une
distinction suffisamment évidente entre eux pour exiger qu'ils restent des
champs distincts. . (Si vous vous en souvenez, vous avez découvert les
champs génériques au chapitre 6 , « Analyse de la base de données
actuelle », lorsque vous développiez la liste préliminaire des champs et
au chapitre 7 lorsque vous travailliez avec les éléments du champ idéal.)
Une spécification générique nécessite que vous utilisiez un nom de champ
non spécifique et des paramètres d'élément aussi larges et généraux que
possible. Vous pouvez cependant incorporer n'importe quel élément à
l'exception de la table parent, partagé par, des alias et de la spécification
source.
3. Réplique : il s'agit de la spécification par défaut d'un champ basé sur un
champ générique ou d'un champ qui sert de clé étrangère dans une relation
de table, et elle tire la majorité de ses paramètres d'élément d'une
spécification existante. Vous pouvez incorporer des éléments qui n'étaient
pas déjà incorporés par la spécification source et vous pouvez modifier tous
les paramètres d'élément tirés de la spécification source.
Vous apprendrez comment définir chaque type de spécification dans la section
« Utilisation des spécifications de champ uniques, génériques et de réplication
» plus loin dans ce chapitre.
Spécification source
L'élément Source Spécification est défini uniquement sur une spécification de
réplication et indique le nom de la spécification de champ spécifique sur
laquelle la spécification actuelle est basée. (Vous verrez un bon exemple de cet
élément dans la section suivante.)
Partagé par
L'élément Shared By indique les noms des autres tables qui partagent ce
champ. Les seuls noms de table qui doivent apparaître ici sont ceux qui ont
une relation explicite avec la table parent du champ. Par exemple, supposons
que vous disposiez d'une table de données appelée EMPLOYEES qui est liée à
deux sous-ensembles de tables appelés PART-TIME EMPLOYEES et FULL-TIME
EMPLOYEES via un champ appelé E MPLOYEE ID N UMBER . Lorsque vous créez une
spécification de champ pour le NUMÉRO D'ID D' EMPLOYÉ , vous utiliserez «
EMPLOYÉS À TEMPS PARTIEL, EMPLOYÉS À TEMPS PLEIN » comme paramètre
pour cet élément.
Alias
L'alias est un nom (ou un ensemble de noms) que vous utilisez pour le champ
dans de très rares circonstances. Un cas dans lequel vous utiliseriez un alias
est celui où il doit y avoir deux occurrences du champ dans
la même table. Supposons qu'une organisation soit habituée à identifier ses
employés par des valeurs uniques dans un
champ EMPLOYEE ID NUMBER . Considérons maintenant la structure de la table
SUBSIDIAIRES dans la figure 9.2 (il s'agit d'une structure partielle uniquement).
Figure 9.2 Une table nécessitant deux occurrences du même champ.
Dans ce cas, chaque filiale a un président et un vice-président. Ces deux
personnes doivent être représentées dans le tableau en raison de leurs
positions au sein de la filiale. Il y a donc deux champs NUMÉRO D' ID
D' EMPLOYÉ dans la structure du tableau. Toutefois, une conception correcte de la
base de données impose qu'il ne puisse y avoir qu'une seule occurrence de ce
champ dans la table ; il y a un problème évident ici. La seule solution consiste à
utiliser un alias pour une ou les deux occurrences du champ E MPLOYEE ID
N UMBER . Par exemple, vous pouvez (par souci de clarté) utiliser P RESIDENT ID
comme alias pour la première occurrence de E MPLOYEE ID N UMBER et
V ICE P RESIDENT ID comme alias pour la deuxième occurrence de E MPLOYEE ID
N UMBER . Une fois les alias en place, les deux employés sont correctement
représentés dans le tableau. La figure 9.3 montre la structure révisée du
tableau.
Figure 9.3 Utilisation d'alias à la place des champs NUMÉRO D'ID D' EMPLOYÉ .
Bien que l’utilisation d’un alias soit acceptable dans ces circonstances, vous
devez l’utiliser de manière très judicieuse ; sinon, ils peuvent devenir difficiles
à gérer et à maintenir, éventuellement cacher ou déguiser la véritable
signification des champs d'origine et vous amener à mal comprendre ce que
représentent réellement les données. Ce problème deviendra encore plus clair
lorsque vous commencerez à établir des relations entre les tables.
Description
La description est une interprétation complète du domaine. Rédiger une
description de champ est extrêmement bénéfique car cela vous oblige (ainsi
que tous les membres de l'organisation) à réfléchir attentivement à la nature
des données qui seront stockées sur le terrain. Vous pouvez être relativement
sûr que le champ doit être affiné davantage si vous avez des difficultés à
rédiger une description appropriée.
Plus tôt dans le processus de conception de base de données, vous avez appris
un ensemble de directives pour rédiger une description de table. De même, il
existe un ensemble de directives qui régissent la manière dont vous rédigez
une description de champ appropriée :
Lignes directrices pour rédiger une description de champ
• Utilisez une déclaration qui identifie avec précision le champ et indique
clairement son objectif. La description doit compléter le nom du champ en
définissant ce que le champ représente. Il doit également indiquer le rôle du
champ dans la table ou sa relation avec le sujet de la table. Voici un
exemple d'une telle description :
CustCity : zone métropolitaine dans laquelle un client réside ou exerce ses
activités. Ceci fait partie intégrante de l’adresse complète d’un client.
• Rédigez une déclaration claire et succincte. La description doit être exempte
de phrases confuses ou ambiguës. Même si la description doit être aussi
complète que possible, utilisez le nombre minimum de mots nécessaire pour
transmettre les informations requises. Comme vous l'avez constaté avec les
descriptions de tableaux, les déclarations verbeuses sont difficiles à lire et à
comprendre.
• Évitez de reformuler ou de reformuler le nom du champ. Aucune de ces
pratiques ne fait quoi que ce soit pour éclairer l’identité ou le but du
domaine. N'oubliez pas que le but d'une description est de fournir une
interprétation complète du domaine. Voici un exemple de mauvaise
description :
CustLast Name : nom de famille d'un client.
Une description est bien plus utile lorsque vous l’écrivez de cette manière :
CustLast Name : le nom de famille d'un client, qu'il soit original ou par
mariage, que nous utilisons dans toutes les communications et
correspondances formelles avec ce client.
• Évitez d'utiliser du jargon technique, des acronymes ou des
abréviations. Même si certaines personnes au sein de l'organisation
comprennent ces types d'idiomes, il est préférable que vous utilisiez une
terminologie que tout le monde comprend. N'oubliez pas qu'une description
doit être aussi claire quepossible à quiconque le lit. Par exemple, vous
devriez éviter ce type de déclaration :
Numéro d'identification de l'employé : numéro unique utilisé pour identifier
un employé au sein de l'organisation. C'est une composante du SSP.
Le problème avec cette description est qu’il n’existe aucun moyen inhérent
de déterminer la signification de l’acronyme SSP. Vous pourriez résoudre ce
problème en épelant le terme complet, mais il serait préférable que vous
réaffirmiez l'objectif du champ.
• N’incluez pas d’informations spécifiques à la mise en œuvre. Il n'y a aucune
raison d'inclure le fait qu'un champ donné apparaît sur un écran de saisie de
données particulier ou est utilisé dans un morceau spécifique de code de
programmation. Ce type d'informations est plus approprié pour la phase de
mise en œuvre du processus global de développement de la base de
données.
• Ne faites pas dépendre cette description de la description d’un autre
champ. Chaque description doit être aussi complète que possible et
indépendante de toute autre description de la base de données. Les
descriptions interdépendantes introduisent une confusion inutile et peuvent
obscurcir par inadvertance la véritable identité et le véritable objectif du
domaine. Évitez d'utiliser une description telle que celle-ci :
Niveau de réapprovisionnement des articles : nombre minimum d'articles
qui doivent exister pour un produit particulier. (Voir la description pour la
quantité disponible.)
• N'utilisez pas d'exemples. Comme vous l'avez appris au chapitre 7 , utiliser
des exemples dans une description est une mauvaise idée car ils dépendent
d'informations supplémentaires pour transmettre leur pleine
signification. Vous pouvez garantir qu’une description est claire et succincte
en la gardant absolument exempte d’exemples.
La figure 9.4 montre la section Éléments généraux d'une feuille de
spécifications de champ pour un champ NUMÉRO D'ID D' EMPLOYÉ .
Figure 9.4 La catégorie Éléments généraux pour un champ NUMÉRO D'ID
D' EMPLOYÉ .
Éléments physiques
La catégorie Éléments physiques concerne la structure d'un champ. Ses
éléments sont exprimés en termes généraux car chaque programme SGBDR
les implémente de manière légèrement différente. L'établissement de ces
éléments au cours de cette phase du processus de conception vous aide à
garantir des définitions de champs cohérentes dans toute la base de données
et réduit le temps qu'il vous faudra pour implémenter les structures de champs
dans un programme SGBDR.
Type de données
L'élément Type de données indique la nature des données stockées par le
champ. Les trois types de données que nous utiliserons comme paramètre pour
cet élément sont :
1. Alphanumérique : ce type de données stocke toute combinaison de lettres,
de chiffres, de caractères du clavier ou de caractères spéciaux. Les
caractères du clavier incluent la virgule, le signe dollar, le point
d'exclamation, le signe de pourcentage et le point. Les caractères spéciaux
incluent le symbole du droit d'auteur, le symbole de la marque et le symbole
de pi.
2. Numérique : ce type de données stocke uniquement des nombres entiers et
des nombres réels. Il n'acceptera pas les nombres comportant des zéros non
significatifs (par exemple, 0000234) car ce ne sont pas de véritables
nombres.
3. DateTime : ce type de données stocke les dates, les heures ou une
combinaison des deux.
Gardez à l’esprit que le programme SGBDR que vous utilisez pour implémenter
la base de données disposera d’une plus grande variété de types de données à
votre disposition. J'utilise cependant ces types de données généraux pour
garder les choses aussi simples et claires que possible pendant le processus de
conception.
Longueur
L'élément Longueur spécifie le nombre total de caractères qu'un utilisateur
peut saisir pour une valeur de champ donnée. Le programme SGBDR que vous
utilisez pour implémenter la base de données déterminera le nombre
maximum de caractères que vous pouvez définir pour cet élément. Bien que
vous puissiez théoriquement définir l'élément de longueur pour n'importe quel
type de données, sachez que certains programmes SGBDR ne vous permettent
pas de spécifier une longueur pour un champ numérique. Au lieu de cela, le
programme SGBDR définit la longueur d'un champ numérique en fonction
du type de nombre stocké par le champ, tel qu'un entier, un entier long ou un
nombre réel.
Décimales
L'élément Decimal Places indique le nombre de chiffres à droite de la virgule
décimale dans un nombre réel. Le nombre de chiffres détermine la précision du
nombre réel. Par exemple, de nombreuses entreprises exigent que toutes les
valeurs monétaires comportent quatre chiffres de précision à droite de la
virgule décimale.
Prise en charge des personnages
L'élément Character Support indique le type de caractères qu'un utilisateur
peut saisir dans une valeur de champ donnée. La définition et l'application de
cet élément vous aident à garantir que l'utilisateur ne peut pas introduire de
données dénuées de sens dans le champ, améliorant ainsi l'intégrité au niveau
du champ.
Disons que vous travaillez avec un champ C UST S TATE et que son type de
données est alphanumérique. Ce type de données est approprié pour le champ
car il permet à un utilisateur d'incorporer des lettres dans le cadre d'une valeur
de champ donnée. Mais cela lui permet également d'utiliser des chiffres, des
caractères du clavier et des caractères étendus, ce qui signifie qu'il peut saisir
une valeur dénuée de sens dans le champ : il n'y a pas de noms d'état ni
d'abréviations d'état contenant des caractères autres que des lettres. Vous
résolvez ce problème en utilisant l'élément Character Support pour définir les
caractères que l'utilisateur peut incorporer dans une valeur de
champ. (J'aborde la question d'une combinaison valide de lettres plus loin dans
la section « Éléments logiques ».)
Vous pouvez choisir d'inclure ou d'exclure l'un des types de caractères
suivants.
• Lettres : toutes les lettres de l'alphabet , y compris les lettres de langues
étrangères telles que é et ñ.
• Nombres : de 0 à 9.
• Caractères du clavier : tout caractère standard autre que les lettres et les
chiffres, tel qu'un astérisque, une esperluette, un crochet, un signe
d'insertion, une virgule, un signe égal, un point d'exclamation, une
parenthèse, un signe de pourcentage, un point, un signe dièse, un point
d'interrogation, une citation, un point-virgule, une barre oblique ou barre
verticale. Notez que la feuille Spécifications des champs comprend des
exemples de caractères appartenant à cette catégorie.
• Caractères spéciaux : tout caractère que vous pouvez produire uniquement
via des combinaisons spécifiques de touches standard et des touches CTRL,
ALT et/ou SHIFT, ou à l'aide d'un logiciel spécial. Les caractères de cette
catégorie comprennent des symboles mathématiques complexes, le
symbole du droit d'auteur, les fractions, le symbole pi et le symbole de la
marque. La feuille Spécifications du champ comprend également des
exemples de ces caractères.
La figure 9.5 montre la section Éléments physiques d'une feuille de
spécifications de champ pour un champ NUMÉRO D'ID D' EMPLOYÉ .
Figure 9.5 La catégorie Éléments physiques pour un champ NUMÉRO D'ID
D' EMPLOYÉ .
Éléments logiques
La catégorie Éléments logiques concerne principalement les valeurs contenues
dans un champ. Ses éléments régissent des questions telles que son rôle dans
un tableau, si chaque valeur doit être unique, quand une valeur doit être saisie
et si une valeur peut être modifiée. La définition de ces éléments vous aide à
établir et à appliquer une grande partie de l’intégrité au niveau du champ.
Type de clé
L'élément Key Type désigne le rôle d'un champ dans une table, que vous avez
identifié lors de l'établissement d'une clé primaire pour la table. Comme vous
le savez déjà, un champ peut servir de clé non-clé, de clé primaire ou de clé
alternative. Au chapitre 10 , vous apprendrez tout sur les clés étrangères et
quand désigner un champ comme clé étrangère sur la feuille Spécifications du
champ.
Structure clé
L'élément Key Structure indique si un champ désigné comme clé primaire agit
comme une clé primaire simple (à champ unique) ou comme partie d'une clé
primaire composite (à champs multiples).
Unicité
Cet élément indique si les valeurs d'un champ sont uniques. Vous le définissez
sur « Unique » lorsque l' élément Key Type est défini sur « Primary » ; sinon,
vous définirez généralement cet élément comme « Non unique ».
Lorsque vous travaillez avec un champ non clé , réfléchissez à la manière dont
ses valeurs vont être utilisées afin de pouvoir déterminer si elles doivent être
uniques. Considérez la structure de la table DEPARTMENTS dans la figure 9.6 .
Figure 9.6 Les valeurs du NUMÉRO D'IDENTIFICATION DE L' EMPLOYÉ doivent -elles
être uniques ?.
Dans cet exemple, le champ EMPLOYEE ID N UMBER identifie la personne qui gère
un service particulier. En supposant qu'une personne ne soit autorisée à gérer
qu'un seul service à la fois, les valeurs de ce champ doivent être uniques ; par
conséquent, vous devez définir l'élément Unicité pour ce champ sur
« Unique ».
Prise en charge nulle
Null Support spécifie si un champ accepte Null. « Aucune valeur nulle » est le
paramètre que vous utiliserez couramment pour cet élément, en particulier
lorsqu'un champ sert de clé primaire ou de clé alternative, ou lorsque l'élément
Valeur requise du champ est défini sur « Oui ». Vous pouvez toutefois définir
cet élément sur « Nulls autorisés », lorsqu'il existe une raison valable pour
qu'un champ accepte les valeurs NULL. Le champ AC UST C OUNTY , par exemple,
doit accepter les valeurs nulles car un client peut ne pas connaître le nom du
comté dans lequel il vit. (Bien sûr, ce ne sera plus Null une fois qu'elle aura
fourni le nom du comté.)
N'oubliez pas que Null ne représente pas un espace : il représente une
valeur manquante ou inconnue . Les utilisateurs font souvent l'erreur d'utiliser
un espace pour représenter une valeur significative , telle que « Aucun », « Non
applicable », « Aucune réponse » et « Non recherché ». Si ces valeurs sont
valides pour un champ particulier, assurez-vous de les inclure dans l'élément
Plage de valeurs du champ. Surtout, utilisez les Nulls judicieusement
et n’utilisez pas de blancs !
Valeurs saisies par
L'élément Valeurs entrées par indique la source des valeurs d'un champ. Soit
un utilisateur entrera manuellement les valeurs dans le champ, soit un
programme d'application de base de données les saisira automatiquement ; le
programme d'application ne peut fournir des valeurs pour le champ que si la
personne qui a développé le programme lui a fourni un moyen de générer les
valeurs. Notez que le paramètre qui représente le programme d'application de
base de données est « Système ».
Valeur requise
L'élément Valeur requise indique si un utilisateur doit saisir une valeur pour un
champ. Bien que vous définissiez généralement cet élément sur « Non » pour
la plupart des champs d'une table, vous devez le définir sur « Oui » lorsque le
champ sert de clé primaire. Vous devrez peut-être également définir la valeur
requise sur « Oui » pour un champ tel que C UST Z IPCODE : une lettre ou un colis
que vous envoyez à un client donné doit inclure un code postal pour que le
service postal puisse le traiter correctement et avec précision.
Plage de valeurs
L'élément Range of Values spécifie toutes les valeurs valides possibles pour un
champ. Vous pouvez définir cet élément de différentes manières, par exemple
avec une limite inférieure et supérieure (1 000 à 9 999) ou avec une liste
spécifique de valeurs (« WA », « OR », « ID », « MT »). Vous pouvez établir une
plage de valeurs sous trois catégories :
1. Général : une collection complète de toutes les valeurs possibles pour ce
champ. Par exemple, la plage générale de valeurs d'un champ
C UST S TATE peut inclure toutes les abréviations valides pour chaque État des
États-Unis.
2. Spécifique à l'intégrité : une collection de valeurs basée sur le rôle du
champ dans une relation de table. (Vous apprendrez tout sur cette catégorie
au chapitre 10. )
3. Spécifique à l'entreprise : ensemble de valeurs générées par une exigence
commerciale particulière. Les organisations ont généralement diverses
exigences qui limitent la plage de valeurs d'un champ. Dans une
organisation qui exerce ses activités strictement dans le nord-ouest du
Pacifique, par exemple, la plage de valeurs valide pour un champ
C UST S TATE est « WA », « OR », « ID » et « MT ». (Vous en apprendrez
davantage sur cette catégorie au chapitre 11 , « Règles métier . »)
Vous vous préoccupez uniquement de la plage générale de valeurs au cours de
cette étape du processus de conception de base de données et vous reviendrez
sur l'élément Plage de valeurs ultérieurement lorsque vous établirez des
relations entre tables et des règles métier.
Il est important de noter que « Autre » et « Divers » sont deux valeurs que
vous ne souhaitez définir dans aucune catégorie de l'élément Plage de
valeurs. Les deux valeurs ne sont pas spécifiques et absolument dénuées de
sens dans ce contexte et sont un signe de paresse mentale dans la mesure où
leur simple présence indique la nécessité de revoir le domaine pour un
éventuel raffinement. Vous pouvez éviter toute confusion inutile et tout
problème potentiel en vous abstenant d'utiliser ces valeurs.
Modifier la règle
Cet élément désigne à quel moment un utilisateur peut saisir une valeur dans
un champ et s'il peut modifier cette valeur. Vous définissez cet élément sur
l'une de ces cinq options.
1. Entrez maintenant, modifications autorisées : un utilisateur doit saisir une
valeur pour ce champ lorsqu'il crée un nouvel enregistrement dans la table
parent du champ. Elle peut alors modifier la valeur à tout moment.
2. Entrer plus tard, modifications autorisées : un utilisateur a la possibilité de
saisir une valeur pour ce champ lors de la création d'un nouvel
enregistrement dans la table parent du champ. Cela n'implique en aucun
cas que la valeur du champ puisse être nulle à tout moment ; l'utilisateur
doit saisir une valeur pour ce champ à un moment donné dans un avenir
proche. Après avoir saisi la valeur, elle peut alors la modifier à tout moment.
3. Entrer maintenant, modifications non autorisées : un utilisateur doit saisir
une valeur pour ce champ lorsqu'il crée un nouvel enregistrement dans la
table parent du champ, mais il ne peut le modifier à aucun moment.
4. Saisir plus tard, modifications non autorisées : un utilisateur a la
possibilité de saisir une valeur pour ce champ lorsqu'il crée un nouvel
enregistrement dans la table parent du champ. Cela n'implique en aucun
cas que la valeur du champ puisse être nulle à tout moment ; l'utilisateur
doit saisir une valeur pour ce champ à un moment donné dans un avenir
proche. Après avoir saisi la valeur, elle ne peut à aucun moment la modifier.
5. Non déterminé à ce moment : la règle d'édition sera déterminée au moment
où la base de données est implémentée dans un programme SGBDR.
Note
Les options deux et quatre donnent à l'utilisateur le choix de saisir une valeur
dans le champ ultérieurement. Le temps dont dispose l'utilisateur pour saisir
une valeur sera déterminé et appliqué d'une manière ou d'une autre lorsque la
base de données sera implémentée dans un programme SGBDR.
La figure 9.7 montre la section Éléments logiques d'une feuille de spécifications
de champ pour un champ NUMÉRO D'ID D' EMPLOYÉ .
Figure 9.7 La catégorie Éléments logiques pour un champ NUMÉRO D'ID
D' EMPLOYÉ .
Utilisation de spécifications de champ uniques, génériques
et de réplication
Plus tôt dans ce chapitre, vous avez appris que vous pouviez définir une
spécification comme Unique, Générique ou Réplique. Vous pouvez vous assurer
que vous définissez le type de spécification approprié pour un champ donné en
suivant ces directives simples :
• Utilisez une spécification Unique pour tout champ qui n'apparaîtra qu'une
seule fois dans l'ensemble de la base de données ou pour un champ qui sert
de clé primaire.
• Utilisez une spécification générique pour un champ qui sert de modèle pour
d'autres champs de la base de données. N'oubliez pas d'utiliser un nom de
champ non spécifique et des paramètres d'élément aussi larges et généraux
que possible.
• Utilisez une spécification de réplication pour un champ que vous basez sur
un champ générique donné ou pour un champ qui sert de clé étrangère
dans une relation de table.
La figure 9.8 montre la spécification complète du champ Unique pour un champ
V ENDOR ID N UMBER .
Figure 9.8 Spécification de champ unique pour le champ V ENDOR ID N UMBER .
Voici quelques points à noter à propos de cette spécification.
1. Ce champ apparaît également dans la table PRODUITS, comme l'indique
l'élément général Partagé par. Ceci est à la fois raisonnable et nécessaire
car chaque produit doit être associé à un fournisseur spécifique. (Vous en
apprendrez davantage sur ce type de problème dans le chapitre suivant.)
2. Examinez les paramètres des éléments logiques Unicité, Prise en charge des
valeurs nulles, Valeur requise et Modifier la règle. Ils sont définis de cette
manière car l'élément Key Type est défini sur « Primary ». Vous devez en fait
utiliser ces paramètres d'élément pour tout champ servant de clé primaire.
La figure 9.9 montre la spécification complète du champ générique pour un
champ générique S TATE .
Figure 9.9 Spécification de champ générique pour un champ générique S TATE .
Prenez note de ces éléments :
1. La description est très générale, comme il se doit pour ce type de
spécification.
2. L’élément logique Étendue de valeurs est suffisamment large.
Ce champ (et sa spécification) sert désormais de modèle pour tous les autres
champs d'état que vous créez dans la base de données. Par exemple, vous
pouvez créer un champ V END S TATE basé sur le champ générique S TATE . Vous
allez définir une spécification de réplica pour le champ V END S TATE basée sur la
spécification générique du champ S TATE . Bien que la spécification de
réplication du champ V END S TATE tire ses paramètres d'élément initiaux de la spécification
générique du champ S TATE , vous pouvez modifier n'importe lequel des paramètres
d'élément de la spécification de réplication afin de pouvoir les personnaliser
complètement pour le V END S TATE . champ. La figure 9.10 montre les
spécifications personnalisées du champ Réplica pour le champ V END S TATE .
Figure 9.10 Spécifications du champ Réplique personnalisé pour le champ
V END S TATE .
Voici quelques points à noter concernant cette spécification.
1. Le nom du champ (V END S TATE ) indique avec précision ce que le champ
représente.
2. L’élément général Source Spécification fait correctement référence à la
spécification du champ générique S TATE .
3. L'élément Description est désormais spécifique à ce champ. Rappelons que
la description est plus générale dans la spécification source.
4. L'élément Plage de valeurs est désormais spécifique à ce champ ; c'était
beaucoup plus large dans la spécification de la source.
Dans le chapitre suivant, vous apprendrez comment définir une spécification de
champ de réplication pour un champ qui sert de clé étrangère.
Définition des spécifications de champ pour chaque champ
de la base de données
Maintenant que tous les champs nécessaires sont affectés à chaque table et
que vous comprenez les différents éléments d'une spécification de champ,
vous pouvez commencer le processus de définition d'une spécification de
champ pour chaque champ de la base de données. Ce processus vous prendra
beaucoup de temps, mais n'oubliez pas que vous travaillez avec diligence pour
établir l'intégrité au niveau du champ en vous assurant que les données sont
cohérentes, valides et aussi exemptes d'erreurs que possible. Tout votre travail
acharné portera ses fruits, car les informations que vous récupérez de la base
de données seront toujours actuelles et précises, et vous disposerez d'un
ensemble fiable de plans structurels que vous pourrez utiliser lorsque vous
implémenterez la base de données dans un programme SGBDR.
Vous pouvez garantir que les spécifications sont aussi complètes et précises
que possible en travaillant avec les utilisateurs et la direction pour les
définir. Ils peuvent fournir des informations sur les données et peuvent être
d'une aide particulière pour affiner les éléments logiques de la
spécification. Vous n'êtes pas obligé de parler à tout le monde dans
l'organisation, mais vous souhaitez essayer de rencontrer un nombre
représentatif de personnes qui connaissent très bien les données et la façon
dont elles sont utilisées. Planifiez autant de réunions que nécessaire (ou
possible) pour terminer le processus d’entretien et prenez le temps dont vous
avez besoin pour être aussi minutieux que possible. Surtout, ne vous précipitez
pas dans cette phase ! Cela ne fait que diminuer les avantages de votreefforts
globaux et augmente vos chances de commettre des erreurs inutiles.
La meilleure stratégie pour cette tâche est de définir autant de spécifications
que possible (aussi complètement que possible), puis de travailler avec les
participants pour compléter le reste. Lorsque vous travaillez avec les
spécifications d'un champ, faites preuve de discernement pour définir les
paramètres de chaque élément. Ne vous inquiétez pas si vos paramètres
semblent légèrement incorrects ou si vous avez des difficultés à définir les
paramètres de certains éléments : vous les examinerez de toute façon avec les
participants. Après avoir défini les spécifications pour tous les champs qui vous
sont familiers, commencez à rencontrer les participants pour travailler sur les
spécifications des champs restants.
Votre première tâche lors de la réunion initiale est d'expliquer les différents
éléments d'une spécification de domaine et de vous assurer que tout le monde
les comprend autant que possible. Fournir aux participants une formation brève
et succincte sur les éléments de la spécification leur donne les connaissances
dont ils ont besoin pour vous aider à définir correctement une
spécification. (Lors des réunions suivantes, examinez simplement les éléments
pour vous assurer que chacun se souvient de ce qu'ils représentent.)
Ensuite, passez en revue toutes les spécifications que vous avez définies et
demandez aux participants si les paramètres des éléments sont adaptés et
corrects. Dans certains cas, les participants révéleront de nouvelles
informations sur un champ qui affecteront la spécification de ce champ. Par
exemple, un participant peut se rappeler (incité par un sujet de discussion)
qu'un ensemble spécifique de valeurs a toujours été utilisé pour un domaine
particulier ; par conséquent, vous définissez l’élément Plage de valeurs du
champ pour refléter ces nouvelles informations. Assurez-vous d'examiner
chaque partie de la spécification, puis de passer à la spécification suivante
lorsque les participants n'ont plus de suggestions d'amélioration. Répétez ce
processus pour chaque spécification.
Travaillez désormais avec les participants sur les spécifications que vous n’avez
pas pu définir ou compléter. Essayez de travailler avec les personnes
les plus connaissent bien les champs en discussion, car ils savent
probablement quels paramètres doivent être utilisés pour la catégorie
Éléments logiques. Identifiez les paramètres d'élément appropriés pour chaque
champ et marquez-les sur la feuille Spécifications du champ. Une fois que vous
avez défini les spécifications pour chaque champ de la base de données,
l'ensemble du processus est terminé.
La conception de la nouvelle base de données est désormais presque
terminée. Dans le chapitre suivant, vous apprendrez comment établir des
relations entre les tables de la base de données. Les relations sont importantes
car elles permettent à une vue d'extraire simultanément des données de
plusieurs tables.
EXEMPLE : DÉFINITION DES SPÉCIFICATIONS DU TERRAIN
Maintenant que tous les champs appropriés sont attribués aux tables de la
base de données Mike's Bikes, il est temps de définir les spécifications de
champ pour chaque champ. Avant de rencontrer Mike et son équipe, vous
définissez autant de spécifications de terrain que possible. Aucun des tableaux
n'est inhabituel et les champs sont assez simples, vous n'aurez donc aucune
difficulté à définir les spécifications. La figure 9.11 montre les spécifications du
champ D ESCRIPTION DE PRODUIT dans la table PRODUITS.
Figure 9.11 Spécifications du champ D ESCRIPTION DU PRODUIT .
Vous rencontrez maintenant Mike et son équipe pour discuter des spécifications
de terrain que vous avez définies. Personne ne semble avoir de problèmes avec
aucune des spécifications ; tout le monde confirme que tous les réglages des
éléments semblent adaptés et corrects. Vous avez cependant une question
concernant le champ C ATEGORY de la table PRODUCTS : Vous souhaitez
connaître le paramètre approprié pour l'élément Range of Values. La réponse à
votre question est mitigée : personne ne semble connaître la liste complète des
catégories valides pour le champ, vous décidez donc de spécifier une plage
générale de valeurs pour l'instant. La figure 9.12 montre les éléments logiques
révisés pour le champ CATEGORIE .
Figure 9.12 Les éléments logiques du champ C ATEGORY dans la table PRODUITS.
Vous reviendrez sur ce champ (et ses éléments) lorsque vous établirez des
règles métier pour la base de données. Une fois ce problème résolu, votre
réunion, ainsi que le processus d'établissement des spécifications sur le terrain,
est terminé.
Résumé
Le chapitre s'ouvre sur une explication de l'importance des spécifications de
champ et des avantages que vous retirez de leur définition. Vous avez appris
que la définition de spécifications vous aide à établir et à appliquer l'intégrité
au niveau du champ, améliore l'intégrité globale des données et vous oblige à
acquérir une compréhension complète de la nature et de l'objectif des données
dans la base de données. Ce niveau de compréhension vous permet d’exploiter
les données à votre meilleur avantage.
Ensuite, nous avons discuté de l’anatomie d’une spécification de champ. Vous
connaissez désormais les trois catégories d'éléments du cahier des charges et
la feuille que vous utilisez pour les enregistrer. Nous avons ensuite discuté en
détail de chaque catégorie et de ses éléments. Comme vous le savez
désormais, la catégorie Éléments généraux représente les attributs les plus
élémentaires du domaine. Au cours de cette discussion, vous avez appris un
ensemble de lignes directrices qui vous aideront à rédiger une bonne
description de domaine. Vous avez également appris que vous pouviez définir
trois types de spécifications, vous permettant ainsi d'établir et de maintenir
des définitions de champs cohérentes. Nous avons ensuite examiné la
catégorie Éléments physiques et vous avez appris qu'elle se rapporte à la
structure du domaine. La catégorie Éléments logiques était le dernier sujet de
discussion dans cette section. Vous savez maintenant qu'il concerne
principalement les valeurs d'un champ et qu'il comprend des éléments tels que
le type de clé, la prise en charge des valeurs nulles, la plage de valeurs, la
règle d'édition.
Nous avons ensuite discuté de la manière d'utiliser chaque type de
spécification et vous avez appris un ensemble de lignes directrices qui vous
aideront à déterminer laquelle définir pour un domaine donné. Vous avez
également examiné des échantillons de spécifications et vous savez en quoi
elles diffèrent.
Le chapitre s'est terminé par une discussion sur la définition des spécifications
de champ pour chaque champ. Ici, vous avez appris que la meilleure façon de
garantir des spécifications complètes et précises est de travailler avec les
utilisateurs et la direction pour les définir. Vous devez d'abord définir autant de
spécifications que possible, puis travailler avec le personnel pour définir les
spécifications des champs restants. Vous avez également appris que vous
pouviez travailler avec le personnel pour affiner les spécifications que vous
aviez initialement définies.
Questions de révision
1. Énoncez deux raisons principales pour lesquelles les spécifications de terrain
sont importantes.
2. Que gagnez-vous à établir l’intégrité au niveau du terrain ?
3. Quelles sont les trois catégories d’éléments dans une spécification de champ
4. Nommez les trois types de spécifications.
5. Pourquoi est-il avantageux pour vous de rédiger une description de domaine
appropriée ?
6. Qu'indique l'élément Type de données ?
7. Qu'indique l'élément Support de personnage ?
8. Quels types de clés sont indiqués sur une spécification de champ ?
9. Vrai ou Faux : Null représente une valeur vide.
10. Quelle est la signification de l’élément Plage de valeurs ?
11. Quel est le but d'une règle de modification ?
12. Quand utilisez-vous une spécification générique ?
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
9. Spécifications du terrain
10. Relations entre les tables
11. Règles commerciales
4h 43min restantes
dix
Relations entre les tables
Rien ne remplace le confort procuré par une relation totalement considérée
comme allant de soi.
—IRIS MURDOCH __
Sujets abordés dans ce chapitre
Pourquoi les relations sont importantes
Types de relations
Identifier les relations existantes
Établir chaque relation
Affiner toutes les clés étrangères
Établir les caractéristiques de la relation
Intégrité au niveau des relations
Exemple : Identifier et établir des relations
Résumé
Questions de révision
Vous avez appris au chapitre 3 , « Terminologie », qu'une relation existe entre
deux tables lorsque l'on peut, d'une manière ou d'une autre, associer les
enregistrements de la première table à ceux de la seconde. Vous avez
également appris que chaque relation possède trois caractéristiques
distinctes : le type de relation qui existe entre les tables, la manière dont
chacune participe et le degré de participation de chaque table.
Dans ce chapitre, j'aborderai ces sujets plus en détail. Vous apprendrez d'abord
à identifier et à établir les relations entre les tables dans unbase de données,
puis comment définir les caractéristiques de chaque relation. Vous apprendrez
également à schématiser des tables et des relations, ce qui vous permettra de
créer une représentation graphique de l'ensemble de la structure de la base de
données.
Pourquoi les relations sont importantes
Une relation est un élément important d'une base de données relationnelle.
• Il établit une connexion entre une paire de tables logiquement liées les unes
aux autres. Une paire de tables est logiquement liée via les données que
chacune contient. Par exemple, considérons les tableaux de la figure 10.1 .
Figure 10.1 Une paire de tables logiquement liées.
Il existe une relation logique entre les données de la table STUDENTS et les
données de la table STUDENT INSTRUMENTS. Un élève peut consulter un ou
plusieurs instruments au cours d'une année scolaire. Ainsi, un
enregistrement de la table ÉTUDIANTS (représentant l'élève) peut être lié à
un ou plusieurs enregistrements de la table INSTRUMENTS ÉTUDIANTS
(représentant les instruments particuliers que l'élève vérifie). dehors).
• Cela permet d'affiner davantage les structures des tables et de minimiser
les données redondantes. Au fur et à mesure que vous établissez une
relation entre une paire de tables, vous apporterez inévitablement des
modifications mineures à la table.structures. Ces améliorations rendront les
structures plus efficaces et minimiseront les données redondantes que les
tables peuvent contenir.
• C'est le mécanisme qui vous permet d'extraire des données de plusieurs
tables simultanément. Dans le chapitre 12 , « Vues », vous découvrirez
comment une relation vous permet de construire une vue à l'aide des
champs de deux ou plusieurs tables liées.
Une relation correctement définie garantit l’intégrité de la relation, ce qui
garantit que la relation elle-même est fiable et solide. (Rappelez-vous que
l'intégrité au niveau des relations est une composante de l'intégrité globale des
données.) Vous ne pouvez profiter des nombreux avantages qu'offre une base
de données relationnelle que lorsque vous établissez chaque relation avec soin
et correctement. Si vous ne le faites pas, vous aurez du mal à travailler avec
les données de plusieurs tables et vous rencontrerez certainement des
problèmes lorsque vous tenterez d'insérer, de mettre à jour ou de supprimer
des enregistrements dans des tables associées. Vous en apprendrez davantage
sur ces types de problèmes plus tard, au fur et à mesure du déroulement du
processus de conception.
Types de relations
Avant de commencer à établir des relations entre les tables de la base de
données, vous devez savoir quels types de relations peuvent exister entre une
paire de tables donnée. Savoir les identifier correctement est une compétence
inestimable pour réussir la conception d’une base de données.
Trois types spécifiques de relations peuvent exister entre une paire de
tables : un-à-un, un-à-plusieurs et plusieurs-à-plusieurs. Les tables ne
participent qu'à un seul type de relation à un moment donné. (Si vous avez
défini votre énoncé de mission et vos objectifs de mission aussi précisément
que possible, vous aurez rarement besoin de modifier le type de relation entre
une paire de tables. Seuls des changements majeurs dans l'une ou l'autre des
structures de la table pourraient vous amener à modifier la relation. .)
Note
La discussion sur chaque type de relation commence par un exemple
générique de relation. Apprendre à visualiser une relation de manière
générique vous permet de comprendre le principe qui se cache derrière la
relation elle-même. Après avoir compris comment et pourquoi la relation
fonctionne, vous serez en mesure de déterminer assez facilement si elle existe
entre une paire de tables donnée.
Chaque discussion comprend également un exemple de la façon de
schématiser la relation. Je fournis des instructions spéciales concernant le
processus de création de diagrammes, le cas échéant, et j'explique les
symboles incorporés dans le diagramme si nécessaire. Cela vous permet
d'apprendre la méthode de création de diagrammes à un rythme raisonnable et
vous évite d'avoir à mémoriser l'ensemble des symboles du diagramme en
même temps.
La figure 10.2 montre les premiers symboles que vous utiliserez pour
schématiser une relation entre tables.
Figure 10.2 Symboles de diagramme pour une table de données et une table
de sous-ensembles.
Relations individuelles
Une paire de tables entretient une relation un-à-un lorsqu'un seul
enregistrement de la première table est lié à un seul enregistrement de la
deuxième table et qu'un seul enregistrement de la deuxième table est lié à un
seul enregistrement de la première table. La figure 10.3 montre un exemple
générique de relation un-à-un.
Figure 10.3 Un exemple générique de relation un-à-un.
Comme vous pouvez le constater, un seul enregistrement de la TABLE A est lié
à un seul enregistrement de la TABLE B, et un seul enregistrement de la TABLE
B est lié à un seul enregistrement de la TABLE A. Une relation un-à-un est
généralement (mais pas toujours) ) implique une table de sous-ensembles . La
figure 10.4 montre un exemple de relation individuelle typique que vous
pourriez trouver dans une base de données du service des ressources
humaines d'une organisation. Cet exemple illustre également une situation
dans laquelle aucune des tables n'est une table de sous-ensemble.
Figure 10.4 Un exemple typique de relation un-à-un.
Bien que les champs de ces tables puissent être combinés en une seule table,
le concepteur de la base de données a choisi de placer les champs visibles par
toute personne dans l'organisation dans la table EMPLOYÉS et les champs
visibles uniquement par le personnel autorisé dans la table
RÉMUNÉRATION. . Un seul enregistrement est requis pour stocker les données
de rémunération d'un employé donné. Il existe donc une relation univoque
distincte entre un enregistrement de la table EMPLOYEES et un enregistrement
de la table COMPENSATION.
La figure 10.5 montre un exemple générique de la façon dont vous créez un
diagramme de relation pour une relation un-à-un.
Figure 10.5 Schéma d'une relation un-à-un.
La ligne qui apparaît entre les tableaux du diagramme indique le type de
relation et vous utilisez une ligne particulière pour chaque type. Plus loin dans
ce chapitre, vous apprendrez comment modifier la ligne afin qu'elle affiche
également les caractéristiques de la relation. La figure 10.6 montre le
diagramme de relation pour les tables EMPLOYÉS et RÉMUNÉRATION de
la figure 10.4 . (Notez qu'un symbole de table de données représente chaque
table.)
Figure 10.6 Le diagramme de relation pour les tables EMPLOYÉS et
RÉMUNÉRATION.
Relations un-à-plusieurs
Une relation un-à-plusieurs existe entre une paire de tables lorsqu'un seul
enregistrement de la première table peut être lié à un ou plusieurs
enregistrements de ladeuxième table, mais un seul enregistrement de la
deuxième table ne peut être lié qu'à un seul enregistrement de la première
table. Regardons un exemple générique de ce type de relation.
Supposons que vous travaillez avec deux tables, TABLE A et TABLE B, qui ont
une relation un-à-plusieurs entre elles. En raison de la relation, un seul
enregistrement de la TABLE A peut être lié à un ou plusieurs enregistrements
de la TABLE B. La figure 10.7 montre la relation du point de vue de la TABLE A.
Figure 10.7 Une relation un-à-plusieurs du point de vue du TABLEAU A.
À l'inverse, un seul enregistrement du TABLEAU B peut être lié à un seul
enregistrement du TABLEAU A. La figure 10.8 montre la relation du point de vue
du TABLEAU B.
Figure 10.8 Une relation un-à-plusieurs du point de vue du TABLEAU B.
Il s’agit de loin de la relation la plus courante qui existe entre une paire de
tables dans une base de données, et la plus facile à identifier. C’est crucial du
point de vue de l’intégrité des données, car cela permet d’éliminer les données
en double et de maintenir les données redondantes au minimum absolu. La
figure 10.9 montre un exemple courant de relation un-à-plusieurs que vous
pourriez trouver dans une base de données pour un magasin de location
d'équipement.
Figure 10.9 Un exemple typique de relation un-à-plusieurs.
Un client peut extraire n'importe quel nombre d'articles, de sorte qu'un seul
enregistrement de la table CLIENTS peut être associé à un ou plusieurs
enregistrements de la table LOCATIONS CLIENTS. Toutefois, un seul article est
associé à un seul client à un moment donné, de sorte qu'un seul
enregistrement de la table CUSTOMER RENTALS est lié à un seul
enregistrement de la table CUSTOMERS.
La figure 10.10 montre un exemple générique de la façon dont vous créez un
diagramme de relation pour une relation un-à-plusieurs.
Figure 10.10 Représentation schématique d'une relation un-à-plusieurs.
Notez que le symbole de la patte d'oie est toujours situé à côté du tableau du
côté « plusieurs » de la relation. La figure 10.11 montre le diagramme de
relations pour les tables CLIENTS et LOCATIONS CLIENTS de la figure 10.9 .
Figure 10.11 Le diagramme de relation pour les tables CLIENTS et LOCATIONS
CLIENTS.
Relations plusieurs-à-plusieurs
Une paire de tables entretient une relation plusieurs-à-plusieurs lorsqu'un seul
enregistrement de la première table peut être lié à un ou plusieurs
enregistrements de la deuxième table et qu'un seul enregistrement de la
deuxième table peut être lié à un ou plusieurs enregistrements de la premier
tableau.
Supposons encore une fois que vous travaillez avec TABLE A et TABLE B et qu'il
existe une relation plusieurs-à-plusieurs entre elles. En raison de la relation, un
seul enregistrement de la TABLE A peut être lié à un ou plusieurs
enregistrements (mais pas nécessairement tous) de la TABLE B. Inversement,
un seul enregistrement de la TABLE B peut être lié à un ou plusieurs
enregistrements (mais pas nécessairement tous) ) dans le TABLEAU A. La figure
10.12 montre la relation du point de vue de chaque tableau.
Il s'agit de la deuxième relation la plus courante qui existe entre une paire de
tables dans une base de données. Cela peut être un peu plus difficile à
identifier qu’une relation un-à-plusieurs, vous devez donc vous assurer
d’examiner attentivement les tableaux. La figure 10.13 montre un exemple
typique de relation plusieurs-à-plusieurs que vous pourriez trouver dans une
base de données scolaire, ce qui s'avère être un exemple classique de ce type
de relation.
Figure 10.12 Une relation plusieurs-à-plusieurs du point de vue du TABLEAU A
et du TABLEAU B.
Figure 10.13 Un exemple typique de relation plusieurs-à-plusieurs.
Un élève peut fréquenter un ou plusieurs cours au cours d'une année scolaire,
donc un seul enregistrement de la table ÉTUDIANTS peut être lié à un ou
plusieurs enregistrements de la table CLASSES. A l’inverse, un ou plusieurs
étudiants fréquenteront un cours donné, donc un seul enregistrement de la
table CLASSES peut être lié à un ou plusieurs enregistrements de la table
ÉTUDIANTS.
La figure 10.14 montre un exemple générique de la façon dont vous créez un
diagramme de relation pour une relation plusieurs-à-plusieurs.
Figure 10.14 Représentation schématique d'une relation plusieurs-à-
plusieurs.
Dans ce cas, un symbole de patte d'oie est situé à côté de chaque table. La
figure 10.15 montre le diagramme de relation pour les tables ÉTUDIANTS et
CLASSES de la figure 10.13 .
Figure 10.15 Le diagramme de relation pour les tables ÉTUDIANTS et
CLASSES.
Problèmes avec les relations plusieurs-à-plusieurs
Une relation plusieurs-à-plusieurs présente une particularité inhérente que
vous devez traiter avant de pouvoir utiliser efficacement les données des
tables impliquées dans la relation. Le problème est le suivant : comment
associer facilement les enregistrements de la première table aux
enregistrements de la deuxième table pour établir la relation ? Cette question
est importante car vous rencontrerez des problèmes tels que ceux-ci si vous
n'établissez pas correctement la relation :
• Récupérer des informations de l'une des tables sera fastidieux et quelque
peu difficile.
• L'une des tables contiendra une grande quantité de données redondantes.
• Des données en double existeront dans les deux tables.
• L'insertion, la mise à jour et la suppression de données seront difficiles.
Les développeurs novices et inexpérimentés utilisent deux méthodes courantes
dans une tentative futile de résoudre cette situation. Je vais vous montrer
comment appliquer ces méthodes en utilisant les tableaux ÉTUDIANTS et
CLASSES de la figure 10.16 comme exemples.
Figure 10.16 Structures des tables ÉTUDIANTS et CLASSES.
Note
À mesure que cet exemple se déroule, gardez à l’esprit que chaque relation
plusieurs-à-plusieurs que vous rencontrerez présentera les mêmes problèmes.
Comme vous pouvez le constater, aucune connexion réelle n'existe entre les
deux tables. Vous n'avez donc aucun moyen d'associer les enregistrements
d'une table aux enregistrements de l'autre table. La première méthode que
vous pouvez utiliser pour tenter d'établir une connexion consiste à prendre un
champ d'une table et à l'incorporer un nombre donné de fois dans l'autre
table. (Cette approche plaît généralement aux personnes habituées à travailler
avec des feuilles de calcul.) Par exemple, vous pouvez prendre le champ
ID ÉTUDIANT de la table ÉTUDIANTS et l'incorporer dans la structure de la table
CLASSES, créant ainsi autant de copies du champ que nécessaire. pour
représenter le nombre maximum d’élèves pouvant assister à n’importe quel
cours. La figure 10.17 montre la version révisée de la structure du tableau
CLASSES.
Figure 10.17 Incorporation des champs STUDENT ID dans la structure de la table
CLASSES.
Cette structure est probablement problématique, vous pouvez donc essayer de
prendre le champ C LASS ID de la table CLASSES et de l'incorporer à la place
dans la structure de la table STUDENTS. La figure 10.18 montre la version
révisée de la structure du tableau STUDENTS.
Figure 10.18 Incorporation des champs C LASS ID dans la structure de la table
STUDENTS.
Ces structures vous semblent-elles (vaguement) familières ? Ils devraient. En
utilisant cette méthode, tout ce que vous avez fait est d'introduire un champ à
plusieurs valeurs « aplati » dans la structure de la table. Ce faisant, vous avez
également présenté les problèmes associés à un champ à valeurs multiples. (Si
nécessaire, consultez le chapitre 7 , « Établir des structures de table ».) Bien
que vous sachiez comment résoudre un champ à plusieurs valeurs, ce n'est pas
une bonne manière d'établir la relation.
La deuxième méthode que vous pourriez essayer d’utiliser est simplement une
variante de la première méthode. Dans ce cas, vous prenez un ou plusieurs
champs d'une table et incorporez une seule instance de chaque champ dans
l'autre.tableau. Par exemple, vous pouvez prendre les champs C LASS ID,
C LASS N AME et I NSTRUCTOR ID de la table CLASSES et les incorporer dans la table
STUDENTS pour identifier les classes dans lesquelles un étudiant est
actuellement inscrit. Cela peut sembler être une nette amélioration par rapport
à la première méthode, mais vous verrez que des problèmes découlent de
telles modifications lorsque vous chargez la table ÉTUDIANTS révisée avec des
exemples de données.
La figure 10.19 illustre clairement les problèmes que vous rencontrerez en
utilisant cette méthode.
Figure 10.19 Tableau ÉTUDIANTS révisé avec des exemples de données.
• Le tableau contient des champs en double inutiles. Vous avez tout appris
sur les champs en double inutiles et les problèmes qu'ils posent au chapitre
7 , vous savez donc que les utiliser ici n'est pas une bonne idée. En outre, il
est très probable que les champs NOM DE LA COURSE et ID DE L' INSTRUCTEUR ne
soient pas appropriés dans la table ÉTUDIANTS : le champ ID DE
LA COURSE identifie suffisamment la classe, et c'est en réalité tout ce dont
vous avez besoin pour identifier les cours qu'un élève suit. .
• Il existe une grande quantité de données redondantes. Même si vous
supprimez les champs C LASS N AME et I NSTRUCTOR ID de la table STUDENTS, le
champ C LASS ID produira toujours beaucoup de données redondantes.
• L'insertion d'un nouvel enregistrement est difficile. Si vous saisissez un
enregistrement dans la table ÉTUDIANTS pour une nouvelle classe (au lieu
de le saisir dans la table CLASSES) sans saisir également les données de
l'étudiant, les champs relatifs à l'étudiant seront nuls, y compris la clé
primaire de la table ÉTUDIANTS ( Étudiant IDENTIFIANT). Cela déclenchera
automatiquement une violation des éléments d'une clé primaire car la clé
primaire ne peut pas être nulle ; par conséquent, vous ne pouvez pas
insérer l'enregistrement dans la table tant que vous n'êtes pas en mesure
de fournir une valeur de clé primaire appropriée.
• Supprimer un enregistrement est difficile. Cela est particulièrement vrai si
les seules données concernant une nouvelle classe ont été enregistrées
dans le dossier de l'élève que vous souhaitez supprimer. Notez par exemple
le record de Diana Price. Si Diana décide de ne suivre aucun cours cette
année et que vous supprimez son dossier, vous perdrez les données du
cours « Introduction à la conception de bases de données ». Cela pourrait ne
pas créer de problème sérieux, à moins que quelqu'un ait négligé de saisir
également les données sur cette classe dans la table CLASSES. Après avoir
supprimé l'enregistrement de Diana, vous devrez ressaisir toutes les
données de la classe dans la table CLASSES.
Heureusement, vous n'aurez à vous soucier d'aucun de ces problèmes car vous
allez apprendre la bonne façon d'établir une relation plusieurs-à-plusieurs.
Relations d'auto-référencement
Une relation d'auto-référencement n'existe pas entre une paire de tables, c'est
pourquoi elle n'est pas mentionnée au début de cette section. Il s'agit plutôt
d'une relation qui existe entre les enregistrements d'une table. Ironiquement,
vous considérerez toujours cela tout au long du processus de conception
comme une relation de table.
Une table entretient une relation d'auto-référencement (également appelée
relation récursive ) avec elle-même lorsqu'un enregistrement donné de la table
est lié à d'autres enregistrements de la table. Semblable à son homologue à
double table,une relation d'auto-référencement peut être un-à-un, un-à-
plusieurs ou plusieurs-à-plusieurs.
Un par un
Une relation un-à-un d'auto-référencement existe lorsqu'un enregistrement
donné de la table ne peut être lié qu'à un seul autre enregistrement de la
table. La table MEMBERS de la figure 10.20 est un exemple de table avec ce
type de relation. Dans ce cas, un membre donné ne peut parrainer qu'un seul
autre membre au sein de l'organisation ; le champ ID S PONSOR stocke le numéro
d'identification du membre agissant en tant que sponsor. A noter que Susan
Black est la marraine de Tom Wickerath.
Figure 10.20 Exemple de relation un-à-un auto-référencée.
La figure 10.21 montre comment schématiser ce type de relation.
Figure 10.21 Représentation schématique d'une relation un-à-un auto-
référencée.
Un à plusieurs
Une table entretient une relation un-à-plusieurs auto-référencée avec elle-
même lorsqu'un enregistrement donné dans la table peut être lié à un ou
plusieurs autres enregistrements.dans le tableau. La figure 10.22 montre un
exemple dans lequel un client donné peut référer d'autres clients à
l'organisation. Le champ RÉFÉRÉ PAR stocke le numéro d’identification du client
effectuant la référence. Notez que Paul Litwin a fait référence à la fois à Andy
Baron et à Mary Chipman.
Figure 10.22 Exemple de relation un-à-plusieurs auto-référencée.
La figure 10.23 montre comment schématiser une relation un-à-plusieurs auto-
référencée.
Figure 10.23 Représentation schématique d'une relation un-à-plusieurs auto-
référencée.
Plusieurs à plusieurs
Une relation plusieurs-à-plusieurs auto-référencée existe lorsqu'un
enregistrement donné dans la table peut être lié à un ou plusieurs autres
enregistrements dans la table et qu'un ou plusieurs enregistrements peuvent
eux-mêmes être liés à l'enregistrement donné. Cela peut paraître quelque peu
déroutant au premier abord, mais l'exemple de la figure 10.24 devrait aider à
clarifier la question.
Figure 10.24 Exemple de relation plusieurs-à-plusieurs auto-référencée.
Dans ce cas, une pièce particulière peut comprendre plusieurs pièces
constitutives différentes, et elle peut elle-même être un composant d'autres
pièces. Par exemple, un ensemble de serrage (ID de pièce 704) est composé
d'un boulon de fixation (ID de pièce 703), d'une pince inférieure (ID de pièce
702) et d'une pince supérieure (ID de pièce 701). De plus, l'ensemble de
serrage est lui-même un composant d'un ensemble siège (ID de pièce 707) et
d'un ensemble cadre (ID de pièce 711). La figure 10.25 montre comment
schématiser ce type de relation.
Figure 10.25 Représentation schématique d'une relation plusieurs-à-plusieurs
auto-référencée.
Note
Avant de commencer à travailler sur les exemples du reste du chapitre, c'est le
bon moment pour vous rappeler un principe que j'ai présenté dans
l'introduction :
Concentrez-vous sur le concept ou la technique et les résultats escomptés, et
non sur l'exemple utilisé pour l'illustrer .
Il existe sans aucun doute de nombreuses façons de relier les tables dans ces
exemples (et également dans les études de cas), en fonction du rôle de chaque
table dans une base de données donnée. La manière dont j’utilise les exemples
ici n’est pas importante ; ce qui est important, ce sont les techniques que
j'utilise pour identifier et établir des relations entre les tables. Après avoir
appris ces techniques, vous pouvez identifier et établir des relations pour
n'importe quelle paire de tables dans n'importe quel contexte que vous
pourriez rencontrer.
Maintenant que vous connaissez les différents types de relations entre tables,
votre tâche suivante consiste à identifier les relations qui existent actuellement
entre les tables de la base de données.
Identifier les relations existantes
Lorsque vous rédigiez les descriptions des tables plus tôt dans le processus de
conception de la base de données (au chapitre 7 , pour être exact), vous avez
réuni un groupe représentatif d'utilisateurs et de direction pour vous aider dans
cette tâche. Ces personnes ont également été désignées comme représentants
de l'organisation et ont reçu le pouvoir d'aider au processus de prise de
décision tout au long du processus de conception de la base de données. (Au
moins, c'est l'hypothèse actuelle à des fins de discussion et d'exemple.) Vous
allez maintenant organiser à nouveau des réunions avec ce groupe afin qu'il
puisse vous aider à identifier les relations de table existantes. Ces personnes
peuvent apporter une contribution précieuse car elles ont probablement une
bonne perspective sur la manière dont les différents sujets (ou tableaux) sont
liés. Même si leurs perceptions de la manière dont ces sujets sont liés ne sont
pas toujours complètes ou exactes, leurs contributions seront néanmoins utiles
pour identifier la plupart des relations.
Commencez le processus d'identification des relations en créant une matrice
de toutes les tables de votre base de données. (Vous pouvez le faire sur une
feuille de papier, untableau blanc ou un tableur.) Par exemple, supposons que
vous travaillez avec ces tableaux :
BÂTIMENTSLA FACULTÉÉTUDIANTS
DES CLASSESPIÈCES
COMPENSATIONPERSONNEL
Répertoriez chacun des tableaux en haut de la matrice, puis à nouveau en bas
à gauche de la matrice ; assurez-vous que les noms des tables sont dans le
même ordre. La figure 10.26 illustre à quoi devrait ressembler la matrice.
Figure 10.26 Mise en place d'une matrice de tableau pour aider à identifier
les relations existantes.
Sélectionnez un tableau sur la gauche comme point de départ et déterminez
s'il a une relation avec l'un des tableaux répertoriés en haut, tout en
parcourant la matrice. (Peu importe que vous travailliez par le haut ou par le
côté. Assurez-vous simplement de travailler de manière cohérente, car cela
rendra la tâche beaucoup plus facile.)
Gardez à l'esprit que vous recherchez uniquement des relations directes : il doit
exister une connexion spécifique entre les tables participant à la relation. Par
exemple, la table CLASSES a une relation directe avec la table STUDENTS car
un ou plusieurs étudiants peuvent assister à un cours donné. A l'inverse, la
table CLASSES a une relation indirecte avec la table STAFF via la table
FACULTY ; c'est un membre du corps professoral quienseigne une classe, pas
un membre du personnel. (Vous n'avez pas encore à vous soucier des relations
indirectes.)
Pendant que vous travaillez avec deux tableaux, posez des questions aux
participants sur les enregistrements de chaque tableau. Votre objectif est de
déterminer la relation entre un seul enregistrement d'une table et un ou
plusieurs enregistrements de l'autre table, et vice versa. (N'oubliez pas que
chaque enregistrement représente une instance unique du sujet représenté par
le tableau.) Lorsque vous arrivez à un point où vous examinez le même tableau
des deux côtés de la matrice, essayez de déterminer la relation entre un
enregistrement donné dans le table vers un ou plusieurs autres
enregistrements dans la table elle-même.
Les deux types de questions que vous pouvez poser sont :
1. Associative : Il s'agit d'un type de question simple et directe que vous
pouvez formuler de manière générique comme suit : Un seul enregistrement
dans (nom de la première table) peut-il être associé à un ou plusieurs
enregistrements dans (nom de la deuxième table) ? En considérant la
matrice de la figure 10.26 , vous pourriez poser une question associative
telle que celle-ci :
Un seul enregistrement dans CLASSES peut-il être associé à un ou plusieurs
enregistrements dans BUILDINGS ?
Vous pouvez utiliser ce type de question pour déterminer si une table a une
relation d'auto-référencement en apportant deux modifications mineures à
la question elle-même : Une seule ( forme singulière du nom de la table )
peut-elle être associée à une ou plusieurs ( forme plurielle du nom de la
table). nom de la table )? Par exemple, voici une question que vous pourriez
poser pour la table STAFF :
Un même membre du personnel peut-il être associé à un ou plusieurs autres
membres du personnel ?
2. Contextuel : ce type de question oppose une seule instance du sujet
représenté par le premier tableau à plusieurs instances du sujet représenté
par le deuxième tableau. LàIl existe deux catégories dans ce type de
questions : orientées vers la propriété et orientées vers l'action.
1. Les questions axées sur la propriété incluent des mots ou des
expressions tels que posséder, posséder, faire partie de et contenir. Voici
un exemple de ce type de question :
Une seule commande peut-elle contenir un ou plusieurs produits ?
Vous pouvez utiliser cette question pour tester une relation d'auto-
référence en apportant les mêmes modifications que vous avez
apportées à la question associative. Voici un exemple de question que
vous pourriez poser pour une table PARTS :
Une seule pièce peut-elle contenir une ou plusieurs autres pièces ?
2. Les questions orientées vers l'action intègrent des verbes d'action tels
que fabriquer, visiter, placer, enseigner et assister. Voici un exemple de
ce type de question :
Un seul instructeur de vol enseigne-t -il un ou plusieurs types de cours ?
Comme vous l'avez peut-être déjà deviné, vous pouvez également
utiliser cette question pour tester une relation d'auto-référencement en
apportant les mêmes modifications :
Un seul membre du personnel gère-t-il un ou plusieurs autres membres
du personnel ?
Utilisez le type de question que vous estimez le plus approprié pour la paire de
tables avec laquelle vous travaillez. Au fur et à mesure que vous parcourez la
liste des tableaux de la matrice, vous vous rendrez compte que vous posez
deux fois des questions sur une paire de tableaux donnée : une fois du point de
vue du premier tableau, puis de nouveau du point de vue du deuxième
tableau. Les réponses à ces deux questions identifieront le type de relation qui
existe entre les tables.
En continuant avec l'exemple, supposons que vous ayez décidé de commencer
par la table CLASSES et voici votre première question :
Un seul cours a-t-il lieu dans un ou plusieurs bâtiments ?
La réponse à cette question révélera le type de relation qui existe entre ces
tables du point de vue de la table CLASSES . Si vous recevez la réponse
suivante, alors une relation un-à-un existe entre ces tables :
Un seul cours a lieu dans un seul bâtiment.
Cependant, si vous recevez cette réponse, alors une relation un-à-
plusieurs existe entre les deux tables :
Un même cours peut avoir lieu dans plusieurs bâtiments.
Après avoir identifié la relation, indiquez le type de relation dans la case située
à la jonction de la ligne du tableau CLASSES (à gauche) et de la colonne du
tableau BÂTIMENTS (en haut). Vous pouvez utiliser les symboles abrégés
suivants pour les types de relation :
1:1 – un à un
1:N—un à plusieurs
M:N—plusieurs à plusieurs
Note
Vous n'aurez pas besoin du symbole abrégé plusieurs-à-plusieurs à ce stade,
mais je l'ai inclus ici par souci d'exhaustivité.
La figure 10.27 montre à quoi ressemble la matrice de table une fois que vous
avez fini d'identifier les relations pour la table CLASSES. N'oubliez pas que les
relations indiquées ici sont du point de vue du tableau CLASSES .
Figure 10.27 Entrées de table-matrice complétées pour la table CLASSES.
Vous avez probablement remarqué que certaines boîtes de jonction sont
vides ; c'est parfaitement acceptable. Entrer quoi que ce soit dans la boîte de
jonction estinutile s’il n’existe aucune relation entre les tables à chaque
extrémité de la jonction.
Maintenant, répétez ce processus pour chaque tableau du côté gauche de la
matrice. N'oubliez pas que vous pouvez commencer avec n'importe quelle
table. Supposons que vous décidiez de continuer avec la table BUILDINGS et
que vous tentiez d'identifier la relation entre celle-ci et la table CLASSES. Oui,
je sais que vous en avez déjà parlé une fois, mais dans ce cas, vous identifiez
la relation du point de vue de la table BUILDINGS . Supposons maintenant que
vous posiez cette question :
Un seul bâtiment offre-t-il de l’espace pour plus d’une classe ?
Si la réponse est « oui », alors une relation un-à-plusieurs existe entre ces
tables ; sinon, c'est une relation individuelle. Après avoir identifié la relation,
indiquez le type de relation dans la case située à la jonction de la ligne du
tableau BÂTIMENTS (à gauche) et de la colonne du tableau CLASSES (en
haut). La figure 10.28 montre la matrice du tableau révisé avec vos entrées
pour le tableau BUILDINGS.
Figure 10.28 Entrées de table-matrice complétées pour la table BUILDINGS.
Vous venez de voir deux exemples montrant comment identifier une relation
entre une paire de tables distincte. Voyons donc comment identifier une
relation d'auto-référencement pour une seule table. Supposons que vous
travaillez avec la table STAFF et que vous êtes maintenant à la jonction entre la
table STAFF de gauche et la table STAFF du haut. En utilisant letechniques que
vous avez apprises plus tôt dans cette section, vous pourriez poser une
question telle que celle-ci :
Un même membre du personnel peut-il être associé à un ou plusieurs autres
membres du personnel ?
Comme pour les exemples précédents, la réponse indiquera le type de
relation. Disons que vous avez reçu cette réponse :
Oui, un membre du personnel donné peut être le conjoint d'un autre membre
du personnel.
Cela indique (de manière assez évidente) qu'il existe une relation un-à-
un d'auto-référencement pour la table STAFF. Mais supposons que vous ayez
plutôt reçu cette réponse :
Oui, un seul collaborateur peut gérer plusieurs autres collaborateurs.
Vous avez probablement rapidement compris que cette réponse indique qu'il
existe une relation un-à-plusieurs d'auto-référence pour la table
STAFF. Identifier ces deux types de relations est une tâche relativement
facile ; identifier une relation plusieurs-à-plusieurs auto-référencée peut être
légèrement plus difficile.
C'est le type de question que vous devez poser pour déterminer si une table a
une relation plusieurs-à-plusieurs auto-référencée : une seule ( forme singulière
du nom de la table ) peut-elle être associée à un ou plusieurs autres ( forme
plurielle du nom de la table) ? nom de la table ), et l'un d'entre eux ( forme
plurielle du nom de la table ) peut-il alors être associé à un ou plusieurs autres
( forme plurielle du nom de la table ) ? Par exemple, voici une question que
vous pourriez poser pour la table STAFF :
Un seul membre du personnel peut-il être associé à un ou plusieurs autres
membres du personnel, et l'un de ces membres du personnel peut-il ensuite
être associé à un ou plusieurs autres membres du personnel ?
Une réponse telle que la suivante (ou une réponse très similaire) indique que la
table STAFF a une relation plusieurs-à-plusieurs auto-référencée :
Oui, un membre du personnel donné peut gérer plusieurs autres membres du
personnel, et n'importe laquelle de ces personnes peut alors superviser un ou
plusieurs autres membres du personnel.
Après avoir identifié le type de relation d'auto-référence qui existe pour la
table, vous l'indiquez dans la matrice du tableau comme vous le feriez pour
toute autre relation.
Les relations diffèrent souvent d’une perspective à l’autre, et vous devez savoir
déterminer quel type de relation existe officiellement entre chaque paire de
tables de la matrice. Vous effectuez cette détermination à l'aide de l'ensemble
de formules suivant : chaque formule correspond à une définition de type de
relation particulière. (J'ai fourni les définitions comme point de référence.)
1:1 + 1:1 = 1:1 Une paire de tables entretient une relation un-à-un lorsqu'un
seul enregistrement de la première table est lié à un seul enregistrement de la
deuxième table et à un seul enregistrement de la deuxième table. est lié à un
seul enregistrement de la première table.
1:N + 1:1 = 1:N Une relation un-à-plusieurs existe entre une paire de tables
lorsqu'un seul enregistrement de la première table peut être lié à un ou
plusieurs enregistrements de la deuxième table, mais qu'un seul
enregistrement dans la deuxième table ne peut être liée qu'à un
seul enregistrement de la première table.
1:N + 1:N = M:N Une paire de tables entretient une relation plusieurs-à-
plusieurs lorsqu'un seul enregistrement de la première table peut être lié à un
ou plusieurs enregistrements de la deuxième table et à un seul enregistrement
de la seconde. La table peut être liée à un ou plusieurs enregistrements de la
première table.
Voici la procédure spécifique que vous utiliserez pour identifier la relation
officielle entre une paire de tables de la matrice. (Il intègre les formules de
relation de la liste précédente.) Examinons d'abord une version générique de la
procédure.
1. Sélectionnez une paire de tables et notez l'entrée à la jonction entre la
première table et la deuxième table.
2. Localisez le deuxième tableau du même côté de la matrice sur laquelle vous
travaillez et notez l'entrée à la jonction entre celui-ci et le premier tableau
du côté opposé de la matrice.
3. Appliquez la formule appropriée aux deux entrées et identifiez la relation
officielle entre les tables.
4. Diagramme de la relation de la manière appropriée.
5. Rayez les deux entrées sur la matrice.
Voyons maintenant comment appliquer cette procédure à une paire de tables
de la matrice. (Dans cet exemple, vous travaillez sur le côté gauche de la
matrice.)
1. Supposons que vous ayez sélectionné les tables BÂTIMENTS et
CLASSES. Vous remarquez que l'entrée à la jonction entre BÂTIMENTS et
CLASSES est 1:N.
2. Maintenant, continuez sur le côté gauche de la matrice jusqu'à ce que vous
localisiez la table CLASSES, puis notez que l'entrée à la jonction entre la
table CLASSES et BUILDINGS est 1:1.
3. En utilisant ces entrées avec la formule appropriée, vous déterminez que la
relation officielle entre les tables BÂTIMENTS et CLASSES est 1:N. (1:N + 1:1
= 1:N)
4. Vous créez un diagramme de relations un-à-plusieurs pour les tables
BUILDINGS et CLASSES.
5. Vous rayez les entrées sur la matrice.
La figure 10.29 montre les résultats de votre travail.
Figure 10.29 Identification de la relation officielle entre les tables BÂTIMENTS
et CLASSES.
Notez que le diagramme de relations est construit du point de vue de la table
BUILDINGS. Cela est dû au fait que la table BUILDINGS se trouve du côté « un »
de la relation. Lorsque vous créez un diagramme simple comme celui-ci, je
vous recommande de toujours montrer le côté « un » duà gauche et le côté
« plusieurs » à droite. Suivre cette pratique rendra vos diagrammes faciles à
lire et vous aidera à garantir que vous les créez de manière cohérente. (Cette
pratique n'est toutefois pas nécessaire lorsque vous créez un diagramme
complexe montrant les relations entre plusieurs tables.)
À tout le moins, vous devez inclure la clé primaire de chaque table dans le
diagramme. Cela s’avérera être une aide visuelle précieuse lorsque vous
commencerez à établir les relations. Vous pouvez aller jusqu'à afficher la
structure complète de chaque table (comme vous le voyez sur la figure 10.30 ),
en supposant que vous disposez d'espace sur le diagramme. Afficher les
structures de cette manière contribue souvent à renforcer la décision que vous
avez prise concernant le type de relation qui existe entre les tables. (J'utilise les
deux types de diagrammes dans le reste du livre.)
Figure 10.30 Affichage de la structure de chaque table dans un diagramme
de relations.
Note
Vous aurez parfois du mal à identifier la relation exacte entre une paire de
tables donnée. Lorsque cela se produit, chargez simplement les tables avec des
exemples de données. Cela permet généralement de révéler le type de relation
qui existe entre les tables.
Il convient de mentionner que cette procédure est beaucoup plus simple et
plus courte lorsque vous travaillez avec une table ayant une relation d'auto-
référence, telle que la table STAFF. Comme l'illustre la figure 10.31 , tout ce que
vous avez à faire ici est de schématiser la relation et de rayer l'entrée sur la
matrice.
Figure 10.31 Travailler avec une relation d'auto-référencement.
Continuez cette procédure jusqu'à ce que vous ayez éliminé toutes les entrées
de la matrice. Lorsque vous avez fini d'identifier les relations officielles entre
les tables de la base de données, vous pouvez alors passer par le processus
d' établissement de chaque relation de la manière appropriée.
Établir chaque relation
Ce processus implique de définir une connexion logique explicite entre une
paire de tables liées. Le type de relation qui existe entre les tables détermine la
manière dont vous définissez la connexion.
Relations un-à-un et un-à-plusieurs
Vous utilisez une clé primaire et une clé étrangère pour établir la connexion
entre les tables participant à une relation un-à-un ou un-à-plusieurs. (Vous
apprendrez la définition d'une clé étrangère dans un instant.)
La relation individuelle
Dans ce type de relation, une table sert de table parent et l’autre de table
enfant. Un enregistrement doit exister dans la table parent avant que vous
puissiez saisir un enregistrement associé dans la table enfant ; Autrement dit,
un enregistrement dans la table enfant doit avoir un enregistrement associé
dans la table parent. Les rôles que vous attribuez aux tables dépendent
généralement des sujets qu'elles représentent, bien qu'il y ait des cas où vous
pourrez attribuer les rôles de manière plutôt arbitraire. Dans la figure 10.32 ,
par exemple, vous assignerez très probablement le rôle parent à la table STAFF
et le rôle enfant à la table COMPENSATION. Il s'agit d'une hypothèse
raisonnable car avoir un enregistrement dans la table RÉMUNÉRATION qui n'est
pas lié à un enregistrement dans la table PERSONNEL serait complètement
illogique.
Figure 10.32 Quelle table choisiriez-vous comme table parent ?
Dans le cas où l'une des tables est une table de sous-ensemble , vous
attribuerez généralement le rôle enfant à la table de sous-ensemble. Il existe
cependant des cas où vous pouvez attribuer le rôle parent à la table de sous-
ensemble.
Vous établissez une relation un-à-un en prenant une copie de la clé primaire de
la table parent et en l'incorporant dans la structure de la table enfant, où elle
devient alors une clé étrangère. (Le terme clé étrangère est dérivé du fait que
la table enfant possède déjà une clé primaire(elle est propre et la clé primaire
que vous introduisez à partir de la table parent est « étrangère » à la table
enfant.) Cependant, dans la plupart des relations un-à-un, la clé étrangère
sert également de clé primaire de la table enfant .
La figure 10.33 illustre comment établir la relation entre les tables STAFF et
FACULTY. STAFF est la table parent dans ce cas car un enregistrement de la
table FACULTY doit être lié à un enregistrement de la table STAFF ; les membres
du corps professoral sont issus du personnel de l'école. Si vous deviez suivre la
procédure que vous venez d'apprendre, vous prendriez une copie de la clé
primaire de la table STAFF et l'incorporerez comme clé étrangère dans la table
FACULTY. Cela n'est cependant pas nécessaire, car FACULTY est déjà une table
de sous-ensembles correctement définie. (Rappelez-vous qu'une table de sous-
ensemble et la table de données à partir de laquelle elle est dérivée doivent
partager la même clé primaire. Vous avez appris à définir une table de sous-
ensemble au chapitre 7 et à établir sa clé primaire au chapitre 8 , « Clés ».)
Figure 10.33 Établissement de la relation un-à-un entre les tables STAFF et
FACULTY.
La figure 10.34 montre un exemple légèrement différent de relation un-à-
un. Supposons que MANAGERS soit un sous-ensemble de table EMPLOYEES
mais qu'il ait une relation directe avec DEPARTMENTS : un seul manager est
associé à un seul département et un seul département est associé à un seul
département.associé à un seul gestionnaire. Supposons en outre que
MANAGERS est la table parent et DEPARTMENTS est la table enfant. (Il s'agit
d'un bon exemple de scénario dans lequel vous pouvez choisir les rôles de
manière plutôt arbitraire. C'est également un cas où une table de sous-
ensemble joue le rôle de parent au sein de la relation.)
Figure 10.34 Une relation un-à-un avec une table de sous-ensemble dans le
rôle parent.
Établissez la relation entre ces tables en utilisant la procédure que vous venez
d'apprendre, puis identifiez la nouvelle clé étrangère de la table DEPARTMENTS
(E MPLOYEE ID) en plaçant les lettres « FK » à côté de son nom. La figure
10.35 montre le diagramme de relation révisé avec les résultats de vos
modifications.
Figure 10.35 Établissement de la relation entre les tables MANAGERS et
DEPARTMENTS.
Tant que vous pouvez visualiser ce processus de manière générique, vous serez
en mesure d'établir n'importe quelle relation individuelle que vous
rencontrerez.
Note
De nombreux concepteurs de bases de données utiliseront M ANAGER ID comme
nom de clé primaire dans la table MANAGERS et comme nom de clé étrangère
dans la table DEPARTMENTS. J'ai choisi d'utiliser E MPLOYEE ID à la place pour ces
raisons.
• MANAGERS est un sous-ensemble de la table EMPLOYEES, il partage donc la
même clé primaire (E MPLOYEE ID).
• Il maintient le champ en conformité avec les éléments du champ idéal. (Il
conserve la majorité de ses caractéristiques lorsqu'il apparaît dans plus d'un
tableau.)
• Il maintient le champ conforme aux éléments d'une clé étrangère. (Vous en
apprendrez davantage sur les clés étrangères plus loin dans ce chapitre.)
• Cela supprime toute ambiguïté ou doute possible sur la véritable nature
d’une clé étrangère. (J'expliquerai cela plus en détail lors de la discussion
sur les éléments d'une clé étrangère.)
Il n’y a pas de bonne ou de mauvaise manière absolue de procéder. En fin de
compte, l’approche que vous utilisez est simplement une question de
style. Cependant, après avoir décidé quelle approche vous souhaitez utiliser,
assurez-vous de l’utiliser de manière cohérente.
Il y a un petit changement dans la façon dont vous schématiserez les relations
à partir de maintenant. Vous devez maintenant utiliser la clé primaire comme
point de départ et la clé étrangère comme point final de la ligne de relation. (La
seule exception sera lorsque vous schématisez la relation entre une table de
sous-ensemble et sa table de données parent.)cette modification mineure vous
aidera à visualiser plus clairement les relations et à identifier plus facilement
les champs qui établissent la relation.
La relation un-à-plusieurs
La technique que vous utilisez pour établir une relation un-à-plusieurs est
similaire à celle que vous avez utilisée pour établir une relation un-à-un. Il vous
suffit de prendre une copie de la clé primaire de la table du côté « un » de la
relation et de l'incorporer dans la structure de la table du côté « plusieurs », où
elle devient alors une clé étrangère. Par exemple, considérons la relation un-à-
plusieurs entre les tables BUILDINGS et ROOMS illustrées dans la figure 10.36 .
Figure 10.36 Relation un-à-plusieurs existante entre les tables BUILDINGS et
ROOMS.
La relation entre ces deux tables est telle qu'un seul bâtiment peut contenir
une ou plusieurs pièces, mais qu'une seule pièce est contenue dans un seul
bâtiment. À l'aide de la procédure décrite précédemment, vous établissez cette
relation en prenant une copie de la clé primaire (B UILDING N UMBER ) de la table
BUILDINGS et en l'incorporant en tant que clé étrangère dans la table
ROOMS. Maintenant, révisez le diagramme de relation et effectuez le même
type d'ajustements que vous avez fait avec le diagramme pour la relation un-à-
un. Votre diagramme révisé devrait ressembler à celui de la figure
10.37 . (Notez que la ligne médiane du symbole de la patte d'oie est le point de
connexion important : elle doit pointer directement vers la clé étrangère.)
Figure 10.37 Établissement de la relation un-à-plusieurs entre les BÂTIMENTS
et les PIÈCES.
Résolution des champs à valeurs multiples : revisitée
Au chapitre 7, vous avez appris comment résoudre un champ à plusieurs
valeurs en utilisant cette procédure générique :
1. Supprimez le champ de la table et utilisez-le comme base pour une nouvelle
table. Si nécessaire, renommez le champ conformément aux directives de
dénomination des champs que vous avez apprises plus tôt dans ce chapitre.
2. Utilisez un champ (ou un ensemble de champs) de la table d'origine pour
associer la table d'origine à la nouvelle table ; essayez de sélectionner des
champs qui représentent le plus fidèlement possible le sujet du
tableau. Le(s) champ(s) que vous choisissez apparaîtront dans les deux
tableaux.
3. Attribuez un nom, un type et une description appropriés à la nouvelle table
et ajoutez-la à la liste finale des tables.
Vous avez utilisé cette procédure pour résoudre un champ à plusieurs valeurs
appelé C ATEGORIES T AUGHT dans une table INSTRUCTORS. La figure
10.38 montre la version originale du tableau et les résultats de l'application de
la procédure.
Il existe un dernier fait concernant un champ à plusieurs valeurs que vous
devez apprendre : il existe une relation un-à-plusieurs inhérente entre un
ensemble donné de valeurs au sein d'un champ à plusieurs valeurs et
l'enregistrement dans lequel elles résident. Vous le verrez lorsque vous
examinerez la table INSTRUCTORS d'origine dans la figure 10.38 . Un seul
instructeur (comme Kira Bently) peut enseigner une ou plusieurs catégories
(DTP, SS, WP). Cela est vrai pour chaque enregistrement de la table.
Figure 10.38 La résolution originale du champ multivalué CATEGORIES ENSEIGNÉES .
Lorsque vous résolvez correctement le champ à plusieurs valeurs, les tables
produites par la procédure héritent de la relation. C’est clairement le cas des
tableaux révisés des INSTRUCTEURS et des nouveaux tableaux INSTRUCTEURS
DES CATÉGORIES. Vous pouvez maintenant établir cette relation un-à-plusieurs
comme vous le feriez pour n’importe quelle autre. (Bien entendu, cela suppose
que vous ayez attribué une clé primaire à la table INSTRUCTORS.) La figure
10.39 montre les résultats de l'établissement correct de cette relation.
Figure 10.39 Établissement de la relation un-à-plusieurs entre les tables
INSTRUCTEURS et INSTRUCTEURS CATEGORIES.
Le champ I NSTRUCTOR ID de la table INSTRUCTOR CATEGORIES sert de clé
étrangère et permet d'établir la relation un-à-plusieurs entre les tables
INSTRUCTORS et INSTRUCTOR CATEGORIES. I NSTRUCTOR ID fait également
partie de la clé primaire composite de la table INSTRUCTOR CATEGORIES ; une
combinaison donnée de valeurs I NSTRUCTOR ID et C ATEGORY T AUGHT identifie de
manière unique un enregistrement spécifique dans la table.
La relation plusieurs-à-plusieurs
Vous établissez une relation plusieurs-à-plusieurs avec une table de liaison . Il
s'agit d'un nouveau tableau que vous allez créer à l'aide de la procédure en
trois étapes suivante.
1. Définissez la table de liaison en prenant des copies de la clé primaire de
chaque table de la relation et en utilisant ces clés pour former la structure
de la table. Ces champs auront deux objectifs distincts au sein de la table de
liaison : ensemble, ils constituent la clé primaire composite de la table, et
chacun est une clé étrangère unique qui permet d'établir une relation entre
sa table parent et la table de liaison.
2. Donnez à la table de liaison un nom qui représente la nature de la relation
entre les deux tables. Par exemple, si vous établissez une relation plusieurs-
à-plusieurs entre une table PILOTS et une table CERTIFICATIONS, vous
pouvez choisir d'appeler la table de liaison PILOT CERTIFICATIONS.
3. Ajoutez la table de liaison à la liste finale des tables et effectuez les entrées
appropriées pour « Type de table » et « Description de la table ».
La figure 10.40 montre comment établir la relation plusieurs-à-plusieurs entre
les tables STUDENTS et CLASSES. (Notez le nouveau symbole de diagramme
utilisé pour représenter une table de liaison.)
Figure 10.40 Établissement de la relation plusieurs-à-plusieurs entre les
tables STUDENTS et CLASSES.
Note
Vous auriez pu utiliser STUDENT SCHEDULES ou CLASS SCHEDULES comme
nom de la table de liaison ; Il se trouve que les COURS POUR ÉTUDIANTS sont
ma préférence personnelle. Le point à retenir est que vous devez utiliser un
nom qui a le plus de sens pour vous ou pour l’organisation.
La création d'une table de liaison produit quelques résultats remarquables :
• La relation plusieurs-à-plusieurs d'origine a été dissoute car il n'existe plus
de relation directe entre les tables STUDENTS et CLASSES. La relation
d'origine a été remplacée par deux relations un-à-plusieurs : une entre
ÉTUDIANTS et CLASSES D'ÉTUDIANTS et une autre entre CLASSES et
CLASSES D'ÉTUDIANTS. Dans la première relation, un seul enregistrement
dans STUDENTS peut être associé à un ou plusieurs enregistrements dans
STUDENT CLASSES, mais un seul enregistrement dans la table STUDENT
CLASSES ne peut être associé qu'à un seul enregistrement dans
STUDENTS. Dans la deuxième relation, un seul enregistrement de la table
CLASSES peut être associé à un ou plusieurs enregistrements de STUDENT
CLASSES, mais un seul enregistrement de STUDENT CLASSES ne peut être
associé qu'à un seul enregistrement de STUDENT CLASSES.
• La table de liaison STUDENT CLASSES contient deux clés
étrangères. S TUDENT ID et C LASS ID sont tous deux des copies des clés
primaires des tables STUDENTS et CLASSES, respectivement ; par
conséquent, chacun est une clé étrangère par définition. En tant que tels, ils
aident à établir la relation entre leurs tables parentes et la table de liaison.
• La table de liaison STUDENT CLASSES possède une clé primaire composite
composée des champs Student ID et Class ID . Sauf dans de rares cas, une
table de liaison contient toujours une clé primaire composite. (Cette règle
s'applique uniquement à la conception logique de la base de données. Il
existe diverses raisons pour lesquelles vous pourriez enfreindre cette règle
lorsque vous transformez la conception logique en une conception physique,
mais cette discussion dépasse le cadre de ce livre.) Il est important de notez
que vous devrez occasionnellement ajouter plus de champs à la table de
liaison pour garantir une valeur de clé primaire unique. Par exemple,
supposons que l'école décide d'enregistrer les horaires des élèves pour
chaque trimestre de l'année scolaire (automne, hiver et printemps). Vous
devrez ajouter un nouveau champ, peut-être appelé T ERM , et le désigner
comme faisant partie de la clé primaire composite. Cela vous permettrait
d'entrer une autre instance d'un élève et d'une classe donnés dans le
tableau, mais pour un terme différent ; un étudiant peut devoir reprendre un
cours au trimestre de printemps parce qu’il a échoué au cours du
trimestre d’automne .
• La table de liaison permet de limiter les données redondantes au minimum
absolu. Il n'y a aucune donnée superflue dans ce tableau. En fait, le
principal avantage de cette structure de tableau est qu'elle vous permet de
saisir autant de classes que nécessaire pour un seul élève. Plus tard dans le
processus de conception de base de données, vous apprendrez à créer des
vues pour rassembler les données de ces tables afin de les présenter sous
forme d'informations significatives.
• Le nom de la table de liaison reflète l'objectif de la relation qu'elle contribue
à établir. Les données stockées dans la table STUDENT CLASSES
représentent un élève et les classes dans lesquelles il est inscrit.
Lorsque vous travaillez avec des relations plusieurs-à-plusieurs, vous devrez
parfois ajouter des champs à la table de liaison pour réduire la redondance des
données et affiner davantage les structures des tables participant à la
relation. Par exemple, supposons que vous travaillez sur une nouvelle base de
données avec un collègue et qu'il vient de porter à votre attention les tables
ORDERS et PRODUCTS de la figure 10.41 .
Figure 10.41 Y a-t-il un problème avec l'une ou l'autre de ces tables ?
Vous remarquez qu'il existe une relation plusieurs-à-plusieurs entre les tables,
puis réalisez que votre collègue a essayé d'établir cette relation en prenant une
copie des champs NUMÉRO DE PRODUIT et PRIX DE DEVIS de la table PRODUITS et
en les incorporant dans le champ PRODUITS. Tableau COMMANDES. Il pensait
que c'était la meilleure façon d'associer différents produits à une commande
particulière. La présence de ces champs dans la table ORDERS produit
cependant une grande quantité de données redondantes. La figure
10.42 illustre assez clairement ce problème.
Figure 10.42 Données redondantes causées par une relation plusieurs-à-
plusieurs mal établie.
Vous ne pouvez saisir qu'un seul numéro de produit, une seule quantité
commandée et un seul prix proposé pour un enregistrement donné ; par
conséquent, vous devrez saisir un nouvel enregistrement dans le tableau pour
chaque article qu'un client place sur sa commande. Le client numéro 9001, par
exemple, comprenait huit articles sur une commande qu'il a passée le 16 mai.
Il y a donc huit enregistrements dans le tableau pour cette seule commande.
D’après ce que vous avez appris plus tôt dans ce chapitre, vous savez qu’il
s’agit d’une manière inappropriée d’établir cette relation. Vous savez
également que vous pouvez établir correctement la relation en créant et en
utilisantune table de liaison. Vous supprimez donc le champ
NUMÉRO DE PRODUIT de la table COMMANDES, établissez la relation de la
manière appropriée et révisez le diagramme de relation. La figure
10.43 montre les résultats de votre travail.
Figure 10.43 Établir correctement la relation plusieurs-à-plusieurs entre les
tables ORDERS et PRODUCTS.
Vous avez éliminé les données redondantes de la table ORDERS, mais vous
rencontrez toujours deux problèmes mineurs.
1. Les champs DEVIS P RICE et Q UANTITY O RDERED ne sont plus appropriés pour la
table COMMANDES ; la clé primaire de la table ORDERS n'identifie pas
exclusivement leurs valeurs et elles n'ont aucun rapport avec les autres
champs de la table. Ils se rapportent cependant à un NUMÉRO DE PRODUIT
particulier qui fait partie d'une commande donnée dans la table DÉTAILS DE LA
COMMANDE.
2. Vous avez des données en double car il existe deux copies du champ
Q UOTE P RICE : une dans la table ORDERS et une autre dans la table
PRODUCTS.
Ainsi, vous résolvez le premier problème en supprimant les champs
Q UOTE P RICE et Q UANTITY O RDERED de la table ORDERS et en les incorporant
dans la table ORDER DETAILS. Vous résolvez ensuite le deuxième problème en
supprimant le champ Q UOTE P RICE de la table PRODUCTS ; il est plus logique
d'associer un prix devis à un produit au fur et à mesure de sa
commande. Enfin, vous modifiez le diagramme de relations pour refléter les
modifications que vous avez apportées aux structures. La figure 10.44 montre
votre diagramme révisé.
Figure 10.44 Tableau de liaison révisé DETAILS DE LA COMMANDE.
Lorsque vous établissez une relation plusieurs-à-plusieurs entre une paire de
tables, assurez-vous de vérifier chaque table et de déterminer s'il existe des
champs que vous devez transférer vers la table de liaison. En cas de doute,
chargez tous les tableaux avec des exemples de données ; cela révélera
généralement tout problème potentiel.
Note
Vous ne rencontrerez pas ce problème très souvent si vous suivez fidèlement le
processus de conception que vous avez appris jusqu'à présent. Cependant,
cela se produit généralement lorsque vous essayez d'incorporer une paire de
tables à partir d'une base de données existante ou d'une base de données
héritée et que vous n'avez pas pris le temps d'affiner correctement leurs
structures. Vous rencontrerez également ce problème lorsque vous travaillerez
avec quelqu'un qui a peu ou pas d'expérience en conception de bases de
données.
Relations d'auto-référencement
Établir une relation d'auto-référencement sera une tâche relativement simple
maintenant que vous savez comment établir une relation entre une paire de
tables.
Un à un et un à plusieurs
Vous utilisez une clé primaire et une clé étrangère pour établir des relations un-
à-un et un-à-plusieurs auto-référencées, tout comme vous le faites avec leurs
homologues à double table. La différence ici, cependant, est que la clé
étrangère résidera dans la même table que la clé primaire à laquelle elle fait
référence. Vous constaterez souvent que la clé étrangère fait déjà partie de la
structure de la table. Si la clé étrangère n’existe pas déjà, vous en créerez
simplement une.
Reprenons l'exemple de la table MEMBERS de la figure 10.20 . Rappelons que
cette table a une relation un-à-un d'auto-référence car un membre donné ne
peut parrainer qu'un seul autre membre au sein de l'organisation ; le champ ID
S PONSOR stocke le numéro d'identification du membre agissant en tant que
sponsor. Étant donné que le champ S PONSOR ID tire ses valeurs exclusivement
du champ M EMBER ID, il agit comme la clé étrangère de la relation. Vous
établissez la relation en désignant officiellement le champ S PONSOR ID comme
clé étrangère et en le notant comme tel dans le diagramme de relation. La
figure 10.45 montre le diagramme de relation révisé pour la table MEMBERS.
Figure 10.45 Établissement de la relation un-à-un d'auto-référencement pour
la table MEMBERS.
Considérons maintenant l'exemple de la table STAFF de la figure 10.46 . Vous
vous souvenez peut-être que cette table a une relation un-à-plusieurs auto-
référencée, car un seul membre du personnel peut gérer un ou plusieurs autres
membres du personnel.
Figure 10.46 La structure actuelle de la table STAFF.
Actuellement, aucun moyen n'existe pour associer un membre du personnel
donné à d'autres membres du personnel au sein du tableau ; par conséquent,
vous devez créer un nouveau champ qui fera office de clé étrangère et vous
permettra d'établir la relation. Supposons que vous créiez un nouveau champ
de clé étrangère appelé M ANAGER IDqui tirera ses valeurs exclusivement du
champ S TAFF ID. Vous établissez maintenant la relation en désignant
officiellement M ANAGER ID comme clé étrangère et en la notant comme telle
dans le diagramme de relation. La figure 10.47 montre le diagramme de
relation révisé pour la table STAFF.
Figure 10.47 La table STAFF révisée avec la nouvelle clé étrangère MANAGER ID.
Vous avez probablement remarqué que le côté « un » de la ligne de relation
pointe vers le champ ID DU GÉRANT et que le côté « plusieurs » de la ligne pointe
vers le champ ID DU PERSONNEL . Ceci est parfaitement acceptable car un
manager va gérer un ou plusieurs membres du personnel, mais un membre du
personnel donné ne rapporte qu'à un seul manager. (Comme vous l'avez peut-
être initialement supposé intuitivement, généralement le côté « un » de la
ligne pointe vers la clé primaire et le côté « plusieurs » vers la clé étrangère.
Dans ce cas, cependant, l'inverse est vrai.)
Pendant que vous travaillez avec des relations un-à-un et un-à-plusieurs auto-
référencées, prenez un moment et examinez attentivement la structure de
chaque table. Vous constaterez occasionnellement que vous pouvez (ou
devrez) modifier et améliorer la structure existante pour éliminer la relation. Je
sais ce que vous vous demandez : « Mais pourquoi voudrais-je faire ça ? »
Récupérer des informations à partir de tables comportant ces types de
relations peut être fastidieux et quelque peu difficile. (Une discussion sur les
raisons de cela sort malheureusement du cadre de ce travail.) De plus, la
présence même de la relation peut indiquer la nécessité de nouvelles
structures de champs et de tables.
Considérez à nouveau la table STAFF. Vous vient-il à l’esprit que s’il est
nécessaire de suivre les membres du personnel qui sont des managers, il
pourrait être nécessaire de suivre les départements qu’ils dirigent ? Si cela est
vrai, il doit y avoir d'autres facettes des départements que vous devez suivre
dans la base de données. Vous devez maintenant mener un entretien rapide
avec les membres du personnel concernés pour répondre à ces questions, puis
prendre les mesures appropriées en fonction de leurs réponses.
Supposons que vous aviez raison et que l'organisation souhaite suivre les
données des départements. La figure 10.48 montre une approche possible que
vous pourriez utiliser pour accomplir cette tâche.
Figure 10.48 Résultats de l'élimination de la relation d'auto-référencement et
de l'ajout de nouvelles structures pour suivre les données ministérielles.
Ces nouvelles structures et relations vous permettront de suivre efficacement
les données et fourniront une grande variété d'informations sur les
départements. (Vous veillerez bien entendu à ce que les nouveaux champs et
tables soient conformes aux différents éléments de conception que vous avez
appris jusqu'à présent.)
Il est important de noter que les relations d’auto-référencement ont leur place
dans une base de données bien conçue. Il faudra cependant être vigilantet
assurez-vous que chaque relation d'auto-référencement sert effectivement un
objectif utile.
Plusieurs à plusieurs
Vous utilisez une table de liaison pour établir une relation plusieurs-à-plusieurs
auto-référencée, tout comme vous le faites avec son homologue à double
table. L'établissement de cette relation est légèrement différent dans la mesure
où les champs que vous utilisez pour créer la table de liaison proviennent de la
même table parent.
Reprenons l'exemple de table PARTS de la figure 10.24 . Rappelez-vous que ce
tableau a une relation plusieurs-à-plusieurs auto-référencée, car une partie
particulière peut comprendre plusieurs composants différents, et cette partie
elle-même peut être un composant d'autres parties. Vous établissez cette
relation comme vous le feriez pour toute autre relation plusieurs-à-plusieurs :
avec une table de liaison. Actuellement, il n'existe aucun moyen d'associer une
pièce donnée à d'autres pièces au sein de la table, vous devez donc créer un
nouveau champ à cet effet. Supposons, par exemple, que vous créiez un
champ appelé ID COMPOSANT . Ce champ stockera le numéro d'identification
d'une pièce qui sert de composant à une pièce parent. Vous pouvez désormais
utiliser les champs P ART ID et C OMPONENT ID comme base pour la table de
liaison. Pour les besoins de notre exemple, nous supposerons que le nom de la
nouvelle table de liaison est PART COMPONENTS. Après avoir créé et nommé la
table de liaison, veillez à réviser le diagramme de relations de la table
PARTS. La figure 10.49 montre les résultats de votre travail.
Figure 10.49 Établissement de la relation plusieurs-à-plusieurs d'auto-
référencement pour la table PARTS.
Comme vous pouvez le constater, la table PARTS a désormais deux relations
un-à-plusieurs distinctes avec la table PART COMPONENTS. La première relation
est établie via le champ P ART ID, et la seconde relation est établie via le champ
C OMPONENT ID. La figure 10.50 illustre le fonctionnement de ces relations. Notez
qu'un ensemble de serrage (ID de pièce 704) contient trois composants et est
lui-même un composant d'un ensemble de siège (ID de pièce 707) et d'un
ensemble de cadre (ID de pièce 711).
Figure 10.50 Relations de données entre les tables PARTS et PART
COMPONENTS.
Maintenant, utilisez les techniques que vous venez d'apprendre pour établir
toutes les relations que vous avez identifiées entre les tables de la base de
données. Assurez-vous absolument de créer un diagramme pour chaque
relation ; vous allez ajouter de nouvelles informations à ces diagrammes au fur
et à mesure que le processus de conception se déroulera.
Examen de la structure de chaque table
Passez en revue toutes les structures de table après avoir établi les relations
entre les tables. N'oubliez pas que vous avez apporté des modifications aux
structures de tables existantes et créé plusieurs nouvelles structures de tables
au fur et à mesure que vous établissiez les relations ; par conséquent, vous
voulez vous assurer que chaque table est conforme aux éléments de la table
idéale.
Éléments de la table idéale
• Il représente un sujet unique, qui peut être un objet ou un événement.
• Il possède une clé primaire.
• Il ne contient pas de champs en plusieurs parties ou à valeurs multiples.
• Il ne contient pas de champs calculés.
• Il ne contient pas de champs en double inutiles.
• Il ne contient qu’un minimum absolu de données redondantes.
Lorsque vous déterminez qu'un tableau n'est pas conforme aux éléments du
tableau idéal, identifiez le problème et apportez les modifications
nécessaires. Ensuite, parcourez le tableau à travers les étapes appropriées du
processus de conception de base de données jusqu'à ce que vous reveniez à ce
point. Vous ne devriez rencontrer aucun problème avec les tables si vous avez
suivi les procédures appropriées jusqu'à présent.
Affiner toutes les clés étrangères
Vous savez maintenant qu'une clé primaire devient une clé étrangère lorsque
vous l'utilisez pour établir une relation entre une paire de tables dans une
relation un-à-un ou un-à-plusieurs. Comme pour toute autre clé avec laquelle
vous avez travaillé jusqu'à présent, une clé étrangère doit être conforme à un
ensemble spécifique d'éléments. Ces éléments sont collectivement connus
sous le nom d’éléments d’une clé étrangère.
Éléments d'une clé étrangère
• Elle porte le même nom que la clé primaire à partir de laquelle elle a été
copiée. Vous devez respecter cette règle à moins qu’il n’existe une raison
absolument impérieuse de ne pas le faire. (Revoyez la discussion sur
l'élément de spécification de champ Alias au chapitre 9 , « Spécifications de
champ ». Il fournit un exemple d'occasion où vous pourriezdécidez
d'enfreindre cette règle.) Considérez le diagramme de relations de la figure
10.51 et notez que les clés étrangères ont des noms différents de ceux des
clés primaires auxquelles elles font référence.
Figure 10.51 Clés primaires et clés étrangères avec des noms
incompatibles.
Le fait que les noms soient différents pose problème car on ne peut pas être
sûr que les clés étrangères sont réellement valides et font réellement
référence aux clés primaires. Le numéro E MP est -il vraiment équivalent
au NUMÉRO D' EMPLOYÉ ? « Emp » est-il vraiment une version abrégée de «
Employé » ou cela signifie-t-il autre chose ? Pourquoi quelqu'un a-t-il choisi
d'utiliser le numéro C LIENT dans la table COMMANDES au lieu de
l'ID CLIENT ? Y a-t-il une différence entre les deux? Stockent-ils le même type
de données ? Vous devez répondre à ces questions avant de pouvoir faire
quoi que ce soit d'autre avec ces tables et leurs relations respectives.
Vous pourriez faire valoir un argument relativement raisonnable selon lequel
les noms sont suffisamment proches pour supposer que les clés étrangères
sont effectivement valides. En cas de doute, vous pouvez tester votre
hypothèse en chargeant les tableaux avec des exemples de
données. Cependant, vous ne devriez vraiment pas avoir à prendre le temps
de le faire. Imaginez devoir faire cela pendant 15 ou 20 relations ; la
quantité de temps perdu s’additionne.
Vous n’aurez pas du tout à poser ces questions ni à effectuer ces tests
lorsque vous adhérerez à cet élément. La figure 10.52 montre une version
révisée du diagramme qui utilise les noms de clés étrangères
appropriés. Dans ce cas, il n’y a aucune ambiguïté et il ne fait aucun doute
queles clés étrangères sont appropriées. Vous pourrez examiner ce
diagramme dans neuf mois et, d'un simple coup d'œil, déterminer en toute
confiance le type de relations entre les tables et la manière dont elles sont
établies.
Figure 10.52 Clés étrangères conformes au premier élément d'une clé
étrangère.
Note
Je rencontre ce problème assez souvent lorsqu'on me demande d'analyser
certains types de problèmes de bases de données. Dans de nombreux cas,
les clés étrangères sont soit totalement inappropriées, soit manifestent de
graves problèmes d’intégrité des données et des relations. Après avoir
identifié les clés étrangères appropriées (ou révisé celles existantes) et
vérifié qu'elles respectent cet élément particulier, un certain nombre de
problèmes disparaissent.
La seule fois où je peux justifier et approuver l’utilisation d’un nom différent
pour le champ de clé étrangère, c’est lorsque j’établis une relation d’auto-
référence pour une table donnée. Cela est raisonnable car la clé primaire et
la clé étrangère résident toutes deux dans la table (dans la plupart des cas)
et chacune doit avoir un nom unique.
• Il utilise une réplique des spécifications de champ pour la clé primaire à
partir de laquelle elle a été copiée. Cela prend en charge le sixième élément
d'un champ idéal, que vous avez appris au chapitre 7 (« Il conserve la
majorité de ses propriétés lorsqu'il apparaît dans plus d'un tableau »). Une
clé étrangère, cependant, possède quelques paramètres dans les éléments
générauxet les catégories d'éléments logiques légèrement différentes de
celles de sa clé primaire parente.
Vous modifierez quatre éléments dans la catégorie Éléments généraux
lorsque vous définirez une spécification de champ pour une clé étrangère :
1. Type de spécification : étant donné qu'une clé étrangère est basée sur
une clé primaire existante, elle hérite d'une réplique des spécifications de
champ de la clé primaire ; par conséquent, vous désignez le type de
spécification de la clé étrangère comme « Réplique ». Cette désignation
vous aide à garantir que les spécifications de votre clé étrangère sont
cohérentes et vous rappelle de garder cette spécification synchronisée
avec la spécification de la clé primaire.
2. Table parent : le nom de la table parent de la clé étrangère est placé ici.
3. Spécification source : c'est ici que vous indiquez le nom de la clé primaire
parent. (Assurez-vous d'inclure également le nom de la table parent de la
clé primaire ; cela vous permettra de trouver plus facilement la
spécification de la clé primaire si vous souhaitez la comparer à la
spécification de la clé étrangère.)
4. Description : rédigez une description indiquant l'objectif de la clé
étrangère dans le tableau. La figure 10.53 montre un exemple de ces
modifications pour un champ EMPLOYEE ID N UMBER servant de clé étrangère
dans une table ORDERS.
Figure 10.53 Éléments généraux pour le champ de clé étrangère
E MPLOYEE ID N UMBER dans la table ORDERS.
Vous allez également ajuster cinq éléments de la catégorie Éléments
logiques pour la spécification du champ de clé étrangère :
5. Type de clé : définissez cet élément sur « Étranger ». Il s’agit d’un
changement plutôt évident, mais que vous pouvez accidentellement
ignorer si vous n’y faites pas attention.
6. Unicité : vous désignez cet élément comme « Non unique » car vous
souhaitez pouvoir associer une seule valeur de clé étrangère à n'importe
quel nombre d'enregistrements dans la table parent. Dans notre
exemple, vous souhaitez pouvoir associer un employé spécifique à
n'importe quel nombre de commandes. Si vous le définissez plutôt sur
« Unique », vous pourriez associer un employé donné à une seule
commande, ce qui limiterait grandement son potentiel de vente ! (Dans
le cas d'une relation un-à-un , cependant, vous désignerez cet élément
comme « Unique » car vous souhaitez associer une seule valeur de clé
étrangère dans la table enfant à un seul enregistrement dans la table
parent.)
7. Valeurs entrées par : contrairement à la clé primaire parent, vous (ou un
utilisateur) entrerez des valeurs dans la clé étrangère ; par conséquent,
vous définissez cet élément sur « Utilisateur ».
8. Plage de valeurs : vous devez définir cet élément de telle manière que
vous (ou un utilisateur) puissiez saisir uniquement les valeurs existantes
de la clé primaire parent. (Vous en apprendrez davantage à ce sujet et
verrez un bon exemple dans un instant.)
9. Règle de modification : vous définissez normalement cette valeur sur
"Entrer maintenant, modifications autorisées", bien qu'il puisse y avoir
des cas (par exemple lorsque la clé étrangère provient d'une table de
validation) où vous pouvez définir cette valeur sur "Entrer plus tard,
modifications autorisées". Autoriser la modification des valeurs de clé
étrangère vous permet de corriger les erreurs. Par exemple, vous avez
peut-être saisi par erreur le numéro d'identification d'employé « 100 »
pour une commande donnée alors que vous vouliez saisir « 110 ».
La figure 10.54 montre un exemple de ces modifications pour le champ de
clé étrangère E MPLOYEE ID N UMBER . (Notez le paramètre de plage de
valeurs : c'est un bon moyen de définir cet élément.)
Figure 10.54 Éléments logiques pour le champ de clé étrangère E MPLOYEE ID
N UMBER dans la table ORDERS.
Afin que vous puissiez voir l'importance de ces modifications, la figure
10.55 montre la catégorie Éléments logiques de la spécification
source. (Rappelez-vous que cet élément fait partie de la catégorie Éléments
généraux ; reportez-vous à la figure 10.53 .)
Figure 10.55 Éléments logiques pour le champ de clé primaire E MPLOYEE ID
N UMBER dans la table EMPLOYEES.
• Il tire ses valeurs de la clé primaire à laquelle il se réfère. Par définition, la
plage de valeurs d'une clé étrangère est limitée aux valeurs existantes de la
clé primaire à laquelle elle fait référence. Par exemple, vous ne pouvez pas
saisir un NUMÉRO D'ID D' EMPLOYÉ non valide dans la table
COMMANDES. Tout NUMÉRO D'ID D' EMPLOYÉ que vous entrez dans la table
COMMANDES doit d'abord exister en tant que NUMÉRO D' ID D' EMPLOYÉ dans la
table EMPLOYEES. Cela garantit la cohérence entre les valeurs des deux
champs dans les deux tables et contribue à établir l'intégrité au niveau des
relations.
Examinez les clés étrangères de chaque table pour vous assurer qu'elles sont
conformes aux éléments d'une clé étrangère et apportez les modifications
appropriées à celles qui ne le font pas. Vous ne devriez vraiment rencontrer
aucun problème si vous avez suivi fidèlement le processus de conception
jusqu'à présent.
Établir les caractéristiques de la relation
Vous allez maintenant établir les caractéristiques de chaque relation. Ces
caractéristiques indiquent ce qui se passe lorsque vous supprimez un
enregistrement, le type de participation de chaque table dans la relation et le
degré de participation de chaque table à la relation.
Définir une règle de suppression pour chaque relation
La première caractéristique que vous établirez pour la relation est une règle de
suppression . Cette règle détermine ce que votre SGBDR doit faire lorsque vous
effectuez une demande de suppression d'un enregistrement donné dans la
table parent de la relation. Les règles de suppression sont cruciales pour
l'intégrité au niveau des relations, car elles permettent de se prémunir contre
les enregistrements orphelins , c'est-à-dire les enregistrements de la table
enfant qui n'ont aucune relation avec les enregistrements de la table parent.
Voici les cinq types de règles de suppression que vous pouvez définir et les
actions que le SGBDR doit entreprendre lorsqu'une règle donnée est en
vigueur :
1. Refuser : le SGBDR ne supprimera pas l'enregistrement dans la table parent,
mais conservera l'enregistrement et le désignera comme « inactif ».
2. Restreindre : le SGBDR ne supprimera pas l'enregistrement dans la table
parent si des enregistrements associés existent dans la table enfant. Vous
devez demander au SGBDR de supprimer tous les enregistrements associés
dans la table enfant avant de pouvoir lui demander de supprimer
l'enregistrement dans la table parent.
3. Cascade : le SGBDR effectuera deux actions spécifiques : il supprimera
l'enregistrement dans la table parent et il supprimera également
automatiquement tous les enregistrements associés dans la table enfant.
4. Annuler : le SGBDR supprimera l'enregistrement dans la table parent et
mettra ensuite à jour les valeurs de clé étrangère des enregistrements
associés dans la table enfant sur Null. Si vous envisagez d'utiliser cette
règle de suppression, vous devez modifier les spécifications du champ de la
clé étrangère et définir l'élément logique Null Support sur « Nulls Allowed ».
5. Définir par défaut : le SGBDR supprimera l'enregistrement dans la table
parent et mettra ensuite à jour les valeurs de clé étrangère des
enregistrements associés dans la table enfant avec une valeur par défaut
spécifiée que vous avez définie dans le SGBDR. Évidemment, vous devez
définir une valeur par défaut pour utiliser cette règle.
Utilisez une règle Restreindre la suppression systématiquement et les autres
règles le cas échéant. La meilleure façon de déterminer quelle règle de
suppression est appropriée pour une relation donnée consiste à examiner le
diagramme de relation. Considérez le diagramme de la figure 10.56 .
Figure 10.56 Quelle règle de suppression est appropriée pour une relation
donnée ?
Sélectionnez une relation, regardez le diagramme et posez la question
suivante :
Lorsqu'un enregistrement de la table ( nom de la table parent ) est supprimé,
que doit-il arriver aux enregistrements associés dans la table ( nom de la table
enfant ) ?
Ici, la question est formulée de manière générique afin que vous puissiez
comprendre le principe qui la sous-tend. Lorsque vous posez cette question
pour une paire de tables dans une relation particulière, remplacez les
expressionsentre parenthèses avec les noms de table appropriés. Si vous
travaillez avec la relation entre les tables EMPLOYEES et ORDERS, vous pouvez
poser la question de cette manière :
Lorsqu'un enregistrement de la table EMPLOYEES est supprimé, que doit-il
arriver aux enregistrements associés dans la table ORDERS ?
La réponse que vous recevez dépend de la manière dont l'organisation utilise
les données contenues dans les tables et indiquera généralement la règle de
suppression que vous devez utiliser pour la relation.
Vous ne pouvez pas supprimer un dossier d'employé ; vous devez désigner le
salarié comme inactif. (Utilisez une règle de refus .)
Vous ne pouvez pas supprimer un enregistrement d'employé s'il existe des
enregistrements de commande associés. (Utilisez une règle de restriction .)
Vous devez d'abord supprimer les commandes associées à l'employé de la
table ORDERS, puis supprimer l'employé de la table EMPLOYEES. (Utilisez la
règle Restreindre .)
Toutes les commandes associées à l'employé doivent également être
supprimées de la table ORDERS. (Utilisez la règle de la Cascade .)
Le numéro d'employé pour toutes les commandes associées à l'employé doit
être supprimé. (Utilisez une règle Nullify .)
Le numéro d'employé de toutes les commandes associées à l'employé doit être
réinitialisé au numéro d'employé du vendeur principal. (Utilisez une
règle Définir par défaut .)
Si vous (ou les personnes avec lesquelles vous travaillez) ne parvenez pas
facilement à fournir une réponse, prenez note de la relation et poursuivez une
autre relation. Vous reverrez toutes ces relations lorsque vous établirez des
règles métier pour la base de données au chapitre 11 , « Règles métier ». Pour
l'instant, supposons que vous avez reçu la première réponse et que vous allez
utiliser une règle de refus pour la relation.
Après avoir identifié le type de règle de suppression que vous souhaitez utiliser
pour la relation, désignez la règle sur le diagramme de relation. Utilisez (D)
pour Refuser, (R) pour Restreindre, (C) pour Cascade, (N) pour Annuler et (S)
pour Définir par défaut. Placez la désignation sous la ligne de connexion de la
table parent . La figure 10.57 montre le diagramme de relation révisé pour les
tables EMPLOYEES et ORDERS.
Figure 10.57 Désignation d'une règle de refus de suppression pour la relation
entre les tables EMPLOYEES et ORDERS.
Vous définissez toujours la règle de suppression du point de vue de la table
parent, car il s'agit de la plus importante des deux tables au sein de la
relation. La suppression d'un enregistrement dans la table parent aura toujours
un certain effet sur les enregistrements associés dans la table enfant, mais la
suppression d'un enregistrement dans la table enfant aura peu ou pas d'effet
sur l'enregistrement associé dans la table parent. (Il existe une circonstance
spécifique pour laquelle vous souhaiterez peut-être établir une règle de
restriction de suppression pour la table enfant, et vous en apprendrez
davantage au chapitre 11. )
La question que vous utilisez pour déterminer la règle de suppression pour une
relation d'auto-référencement est légèrement différente de celle que vous
venez d'utiliser pour une relation à double table :
Lorsqu'un enregistrement de la table ( nom de la table parent ) est supprimé,
que doit-il arriver aux valeurs de clé étrangère des autres enregistrements qui
lui étaient associés ?
Si vous travaillez avec la relation d'auto-référence pour la table EMPLOYEES,
vous pouvez poser la question de cette manière :
Lorsqu'un enregistrement de la table EMPLOYEES est supprimé, que doit-il
arriver aux valeurs de clé étrangère des autres enregistrements qui lui étaient
associés ?
Encore une fois, la réponse indiquera généralement quelle règle de suppression
vous devez utiliser pour la relation :
Vous ne pouvez pas supprimer un enregistrement pour un employé qui gère
actuellement d'autres employés. (Utilisez une règle de restriction .)
Si l'employé que vous souhaitez supprimer est un manager, vous ne pouvez
pas supprimer son enregistrement tant que vous n'avez pas affecté les
employés qu'il gère à un autre manager. (Utilisez la règle Restreindre .)
Si l'employé dont vous souhaitez supprimer l'enregistrement est un
gestionnaire, l' ID MANAGER doit être supprimé de l'enregistrement de chaque
employé qu'il gère actuellement. (Utilisez une règle Nullify .)
Si l'employé dont vous souhaitez supprimer l'enregistrement est un
gestionnaire, l'ID DU GÉRANT doit être réinitialisé au numéro d'employé du
cadre supérieur dans l'enregistrement de chaque employé qu'il gère
actuellement. (Utilisez une règle Définir par défaut .)
Note
La règle Cascade est notamment absente de cet exemple car elle ne s'applique
pas du tout à la relation ; vous ne voulez pas licencier des employés
simplement parce que leur manager quitte l'organisation. Cette règle reste une
option viable dans certains cas, alors gardez-la à l'esprit lorsque vous
établissez des règles de suppression pour d'autres relations d'auto-
référencement.
Supposons que vous ayez reçu la dernière réponse de la liste précédente et
que vous ayez déterminé que vous allez utiliser une règle de suppression
Définir par défaut pour la relation. Vous terminez maintenant le processus en
désignant la règle sur le diagramme de relations. La figure 10.58 montre les
résultats de votre travail.
Figure 10.58 Désignation d'une règle de suppression Définir par défaut pour
la relation d'auto-référencement de la table EMPLOYEES.
Identifier le type de participation pour chaque table
Lorsque vous établissez une relation entre deux tables, chaque table participe
d'une manière particulière. Le type de participation que vous attribuez à une
table donnée détermine si un enregistrement doit exister dans cette table
avant que vous puissiez saisir des enregistrements dans la table associée. Les
deux types de participation sont :
1. Obligatoire : au moins un enregistrement doit exister dans cette table avant
que vous puissiez saisir des enregistrements dans la table associée.
2. Facultatif : Il n'est pas nécessaire que des enregistrements existent dans
cette table avant de pouvoir saisir des enregistrements dans la table
associée.
Vous déterminerez généralement le type de participation pour la plupart des
tables plus tard lorsque vous définirez les règles métier, bien que vous puissiez
très souvent établir le type de participation pour les tables dans des relations
où le type de participation pour chaque table est évident, est le résultat de
relève du bon sens ou est conforme à un ensemble particulier de normes. Par
exemple, considérons la relation un-à-plusieurs entre les tables EMPLOYEES et
CUSTOMERS dans la figure 10.59 . (Il s'agit de versions légèrement différentes
des tableaux de la figure 10.56 .)
Figure 10.59 Quel type de participation devez-vous attribuer à chaque table ?
Supposons que chaque client doit être attribué à un employé particulier. Cet
employé agit en tant que représentant du compte du client et s'occupe de
toutes les transactions et communications entre l'organisation et ce client. Bien
que chaque client doive être associé à un employé particulier, un employé
donné ne doit pas nécessairement être associé à un client. De nombreux
employés exercent d'autres fonctions au sein de l'organisation qui ne
nécessitent pas d'interaction avec les clients.
Ce scénario n'implique ni ne définit de circonstances particulières mais indique
la manière dont l'organisation mène cette partie de ses activités. En tant que
tel, vous pouvez déduire ce qui suit.
• Vous devez désigner un type de participation obligatoire pour le tableau
EMPLOYÉS. Cela garantit que vous avez au moins un employé à affecter à
un client donné.
• Vous devez désigner un type de participation facultatif pour la table
CLIENTS. Cela vous permet d'inscrire toute personne employée par
l'organisation.
Après avoir déterminé le type de participation de chaque table au sein de la
relation, désignez la participation de chaque table sur le diagramme de
relation. Utilisez une ligne verticale pour représenter un type de participation
obligatoire et un cercle pour représenter un type de participation facultatif. La
figure 10.60 montre le diagramme de relation révisé pour les tables EMPLOYÉS
et CLIENTS et montre également comment indiquer chaque type de
participation. Notez que vous placez le symbole représentant le type de
participation à l'extérieur du symbole qui représente le type de relation.
Figure 10.60 Désignation du type de participation pour les tables EMPLOYÉS
et CLIENTS.
Le type de participation s’applique également à une relation d’auto-référence,
bien que d’une manière légèrement différente. En raison de la nature d'une
relation d'auto-référencement, vous désignez le type de participation pour les
champs de clé primaire et de clé étrangère dans la table. La figure
10.61 montre un diagramme de relation révisé pour la table STAFF avec
laquelle vous avez travaillé plus tôt dans ce chapitre.
Figure 10.61 Désignation du type de participation pour les clés primaires et
étrangères de la table STAFF.
Dans ce cas, vous devez avoir au moins un membre du personnel possédant un
numéro d'identification du personnel valide (la clé primaire) qui peut agir en
tant que manager.À l’inverse, vous n’avez pas besoin de fournir un numéro
d’identification de manager (la clé étrangère) pour un tout nouveau membre
du personnel ; cette personne vient peut-être d'être embauchée plus tôt dans
la journée et n'a pas encore été affectée à un département ou à un projet
particulier.
Identifier le degré de participation pour chaque table
Maintenant que vous avez déterminé la manière dont chaque table participera
à la relation, vous devez déterminer le degré de participation de chaque
table. Le degré de participation indique le nombre minimum d'enregistrements
qu'une table donnée doit avoir associés à un seul enregistrement de la table
associée et le nombre maximum d'enregistrements que la table est autorisée
à associer à un seul enregistrement de la table associée. Les facteurs que vous
utilisez pour déterminer le degré de participation (circonstances évidentes, bon
sens ou conformité à un ensemble de normes) sont les mêmes que ceux que
vous avez utilisés pour déterminer le type de participation. Vous identifierez
généralement le degré de participation de certaines tables maintenant et
revisiterez les tables restantes lorsque vous définirez des règles métier pour la
base de données.
Vous utilisez deux nombres séparés par une virgule et placés entre
parenthèses pour représenter le degré de participation pour une table
donnée. Le premier chiffre indique le nombre minimum requis
d'enregistrements associés et le deuxième chiffre indique le nombre maximum
autorisé d'enregistrements associés. Par exemple, un degré de participation tel
que (2,11) indique que la table doit avoir au moins 2 mais pas plus de 11 de
ses enregistrements liés à un seul enregistrement de l'autre table.
Considérez à nouveau les tables EMPLOYÉS et CLIENTS. Il existe une relation
un-à-plusieurs entre ces tables, ce qui signifie qu'un client donné peut être
associé à un seul employé et qu'un employé donné peut être associé à
n'importe quel nombre de clients. (Oui, je sais ; c'est la partie la plus évidente.)
Supposons cependant que votre organisation vient d'instituer une nouvelle
politique fortement axée sur un service client de qualité. Afin de garantir que
chaque représentant de compte puisse fournir le niveau de service requis par
l'organisation, la politique stipule qu'il ne peut pas être affecté à plus de 15
clients à la fois. Sur la base de ce scénario, vous pouvez déduire que le degré
de participation de la table EMPLOYÉS est (1,1) et que le degré de participation
de la table CLIENTS est (0,15).
Après avoir identifié le degré de participation pour une table particulière,
ajoutez les informations au diagramme de relations. Désignez le degré de
participation sur la ligne de connexion du tableau approprié. La figure
10.62 montre le diagramme de relation révisé pour les tables EMPLOYÉS et
CLIENTS.
Figure 10.62 Désignation du degré de participation pour les tables EMPLOYÉS
et CLIENTS.
Le degré de participation s'applique également à une relation d'auto-
référencement, même si vous le désignez pour les champs de clé primaire et
de clé étrangère dans la table, tout comme vous l'avez fait pour le type de
participation.La figure 10.63 montre une version mise à jour du diagramme de
relation pour la table STAFF qui inclut les informations sur le degré de
participation.
Figure 10.63 Désignation du degré de participation pour les clés primaires et
étrangères de la table STAFF.
S TAFF ID a un degré de participation de (0,12) car un manager peut gérer
jusqu'à 12 collaborateurs ; un nouveau manager qui n'a pas encore été affecté
à un département ou à un projet n'aura aucun (ou 0) membre du personnel à
gérer. Le degré de participation pour MANAGER ID est de (1,1) car un membre
du personnel donné est géré par un seul manager.
Vous pouvez désigner un degré de participation illimité pour n'importe quelle
table dans une relation à double table ou champ clé dans une relation d'auto-
référence en utilisant un « N » à la place du deuxième chiffre. Par exemple, la
table ORDERS de la figure 10.64 a un degré de participation illimité. Même si
un nouveau client n’a pas encore passé de commande, vous lui permettrez de
passer autant de commandes qu’il le souhaite. Imaginez l'impact sur l'activité
de votre organisation si vous limitiez chaque client à 35 commandes ! Votre
organisation serait bientôt en faillite si elle ne parvenait pas à acquérir
continuellement et systématiquement de nouveaux clients.
Figure 10.64 Désignation d'un degré de participation illimité pour la table
ORDERS.
Votre tâche consiste maintenant à définir les caractéristiques de chaque
relation que vous avez établie jusqu'à présent. Au fur et à mesure que vous
travaillez sur une relation donnée, veillez à mettre à jour le diagramme de
relation afin qu'il reflète les résultats de votre travail.
Vérification des relations entre les tables avec les utilisateurs et la
direction
La toute dernière chose à faire est de vérifier les relations. Vous pouvez
effectuer cette tâche relativement facilement en utilisant la liste de contrôle
suivante.
1. Assurez-vous d'avoir correctement identifié chaque relation.
2. Assurez-vous que vous avez correctement établi chaque relation.
3. Assurez-vous que chaque clé étrangère est conforme aux éléments d'une
clé étrangère.
4. Assurez-vous d'avoir établi une règle de suppression appropriée pour
chaque relation.
5. Assurez-vous d'avoir identifié le type de participation approprié pour chaque
table au sein d'une relation à deux tables et pour les champs clés appropriés
dans une relation d'auto-référencement.
6. Assurez-vous d'avoir identifié le degré de participation approprié pour
chaque table au sein d'une relation à deux tables et pour les champs clés
appropriés dans une relation d'auto-référencement.
Si toutes les relations sont vérifiées et que toutes les personnes avec lesquelles
vous travaillez acceptent cette évaluation, vous pouvez être sûr que les
relations sont solides et prêtes à être intégrées aux points de vue.
Une note finale
La mesure dans laquelle vous pouvez facilement mettre en œuvre ces trois
caractéristiques de relation dépend grandement de votre SGBDR. La plupart
des SGBDR ne prennent pas entièrement ou intrinsèquement en charge toutes
les caractéristiques, mais ils le font.fournissent un support de base pour la
règle de suppression et le type de participation. Dans la plupart des cas,
cependant, vous pouvez utiliser SQL et du code de programmation pour
implémenter ces caractéristiques pour n'importe quelle relation dans votre
base de données.
Intégrité au niveau des relations
Une relation atteint l'intégrité au niveau relationnel après avoir vérifié qu'elle
est correctement établie et que ses caractéristiques sont correctement
définies. L’intégrité au niveau relationnel garantit ce qui suit.
• La connexion entre les deux tables (ou champs clés) dans une relation est
solide. Pour ce faire, vous avez utilisé des champs de clé primaire et
étrangère pour établir une relation un-à-un ou un-à-plusieurs et une table de
liaison pour établir une relation plusieurs-à-plusieurs.
• Vous pouvez insérer de nouveaux enregistrements dans chaque table de
manière significative. Vous vous en êtes assuré en désignant le type de
participation approprié pour chaque table (ou champ clé) au sein de la
relation.
• Vous pouvez supprimer un enregistrement existant sans produire d'effets
indésirables. Vous l'avez garanti en attribuant une règle de suppression
appropriée à la relation.
• Il existe une limite significative au nombre d'enregistrements pouvant être
interconnectés au sein de la relation. Vous avez mis en œuvre cela en
désignant le degré de participation approprié pour chaque table (ou champ
clé) au sein de la relation.
Comme vous le savez, l’intégrité au niveau relationnel est le troisième élément
de l’intégrité globale des données. (Le premier est l'intégrité au niveau de la
table et le second est l'intégrité au niveau du champ.) Vous établirez le dernier
composant de l'intégrité globale des données dans le chapitre suivant lorsque
vous apprendrez à établir des règles métier pour la base de données.
EXEMPLE : IDENTIFIER ET ÉTABLIR DES RELATIONS
Il est maintenant temps d'identifier les relations qui existent pour les tables qui
apparaissent sur la liste finale des tables de Mike's Bikes. Vous travaillez
actuellement avec ces tables :
CLIENTS
EMPLOYÉS
FACTURES
DES PRODUITS
VENDEURS
Votre première tâche consiste à identifier les relations qui existent
actuellement entre les tables. Vous décidez de rencontrer uniquement Mike car
il y a peu de tables dans cette base de données et vous pensez que Mike
devrait être suffisamment familier avec les tables pour l'aider à vérifier les
relations.
Avant de rencontrer Mike, vous créez une matrice de tableau et identifiez
autant de relations que possible. La figure 10.65 montre votre matrice
complétée.
Figure 10.65 Identification des relations entre les tables de la base de
données Mike's Bikes.
Vous étudiez ensuite attentivement la matrice du tableau et utilisez la formule
appropriée pour déterminer la véritable relation entre chaque paire de
tableaux. Voici ce que vous avez découvert jusqu'à présent.
Les CLIENTS et les FACTURES entretiennent une relation un-à-plusieurs.
(1:1 + 1:N = 1:N)
Les EMPLOYÉS et les FACTURES entretiennent une relation un-à-plusieurs.
(1:1 + 1:N = 1:N)
LES PRODUITS et les FACTURES entretiennent une relation plusieurs-à-
plusieurs.
(1:N + 1:N = M:N)
Maintenant, vous schématisez les relations, les rassemblez dans un dossier,
puis utilisez votre ordinateur portable pour contacter Mike pour votre réunion
en ligne.
Pendant la réunion, vous et Mike travaillez à vérifier les relations. Vous
déterminez tous les deux que les trois relations sont effectivement correctes,
puis vous attirez l'attention de Mike sur les tables PRODUITS et
VENDEURS. Vous n'êtes pas sûr de la relation qui les unit, alors vous en
discutez avec Mike.
TOI :«Je voulais vous poser des questions sur la relation entre les tables
PRODUITS et VENDEURS. Un seul produit peut-il être associé à un ou plusieurs
fournisseurs ? »
MIKE :« Oui, d'une manière de parler. Ce que je veux dire, c'est qu'un seul type
de produit, comme un antivol de vélo, peut être associé à un ou plusieurs
fournisseurs. Mais je donne à chaque serrure son propre numéro de produit et
je la traite comme un article distinct, quel que soit le fournisseur qui la
fournit. Maintenant, si le véritable sens de votre question est de savoir si un
seul enregistrement de la table PRODUCTS peut être associé à un ou plusieurs
enregistrements de la table VENDORS, alors la réponse est « non » car chaque
enregistrement de la table PRODUCTS contient une référence uniquement
à un fournisseur dans la table VENDORS.
TOI :"C'est ce que je pensais. Dans ce cas, il existe une relation un-à-plusieurs
entre les tables VENDORS et PRODUCTS. J'ai automatiquement pensé qu'un
seul fournisseur pouvait être associé à plusieurs produits dans la table
PRODUITS.
Vous allez maintenant schématiser la relation un-à-plusieurs entre les tables
VENDORS et PRODUCTS et passer à l'étape suivante.
Vous établissez chaque relation un-à-plusieurs en prenant une copie de la clé
primaire de la table parent et en l'incorporant dans la structure de la table
enfant (où elle sert de clé étrangère), puis révisez le diagramme de relation en
conséquence. La figure 10.66 montre l'un de vos diagrammes révisés.
Figure 10.66 Le diagramme de relation pour les tables EMPLOYÉS et
FACTURES.
Vous établissez maintenant la relation plusieurs-à-plusieurs entre les tables
INVOICES et PRODUCTS en créant une nouvelle table de liaison appelée
INVOICE PRODUCTS. Vous basez la nouvelle table sur le champ
I NVOICE N UMBER de la table INVOICES et le champ P RODUCT N UMBER de la table
PRODUCTS. La figure 10.67 montre le diagramme de relation révisé pour les
tables FACTURES et PRODUITS.
Figure 10.67 établissant et schématisant la relation plusieurs à plusieurs
entre les tables de factures et de produits.
Vous examinez chaque structure de tableau pour vous assurer qu’elle est
conforme aux éléments du tableau idéal. Heureusement, vous n'avez aucune
modification à apporter car toutes les structures des tables sont solides. Vous
allez maintenant affiner les clés étrangères de chaque table en vous assurant
que chacune est conforme aux éléments d'une clé étrangère. Enfin, vous
modifiez les éléments appropriés dans les sections Éléments généraux et
Éléments logiques de la feuille Spécifications de champ de chaque clé
étrangère. La figure 10.68 montre les modifications que vous avez apportées
pour l'une des clés étrangères. (J'ai mis en évidence les changements afin que
vous puissiez les reconnaître plus facilement.)
Figure 10.68 Les sections des éléments généraux et des éléments logiques
de la feuille de spécifications de champ pour le champ de clé étrangère de l'ID
de la c ustomer dans le tableau des factures.
Votre prochaine tâche consiste à établir les caractéristiques relationnelles
appropriées pour chaque relation. Vous commencez par définir une règle de
suppression pour chaque relation, puis vous identifiez à la fois le type de
participation et le degré de participation pour chaque tableau dans la
relation. Vous accomplissez votre tâche en désignant ces caractéristiques sur le
diagramme de relations. La figure 10.69 montre l'un des diagrammes terminés.
Figure 10.69 Le diagramme de relation complété pour les tables EMPLOYÉS et
FACTURES.
Mike et vous examinez et vérifiez toutes les relations une dernière fois. Vous
êtes tous les deux d’accord sur le fait que tout est terminé, alors maintenant
vous en avez terminé avec cette partie du processus.
Résumé
Nous avons ouvert ce chapitre avec une discussion des trois types de relations
qui peuvent exister entre une paire de tables particulière: un à un, un à
plusieurs et plusieurs à plusieurs. Vous savez maintenant que la relation un-à-
plusieurs est le type de relation à table double le plus courant et que la relation
plusieurs-à-plusieurs donne lieu à des problèmes qui doivent être résolus. Vous
avez ensuite appris une relation d'auto-référence , qui est un type de relation
qui se produit entre les enregistrements dans un tableau donné. Elle est
similaire à une relation à double table dans la mesure où elle peut être un-à-un,
un-à-plusieurs ou plusieurs-à-plusieurs.
Ensuite, nous avons discuté de la façon d' identifier les relations qui existent
entre les tableaux d'une base de données. Vous avez d’abord appris à
construire et à utiliser une matrice de tableau, puis à utiliser des
questions associatives et contextuelles pour vous aider à identifier une relation
donnée. Nous avons ensuite discuté de trois formules que vous pouvez utiliser
pour déterminer la véritable relation qui existe entre les tables dans une
relation à deux tables ou entre les enregistrements dans une relation d'auto-
référencement.
Le chapitre se poursuit avec une discussion sur la manière dont les relations
sont établies. Vous avez appris que un à un et un à plusieursles relations sont
établies à l'aide de clés primaires et de clés étrangères, et les relations
plusieurs-à-plusieurs sont établies à l'aide de tables de liaison. Nous avons
ensuite brièvement revisité des champs multivus, et vous avez appris à utiliser
une relation un-à-plusieurs appropriée pour résoudre un champ multivaleur
plus efficacement. Ensuite, nous avons discuté des relations d'auto-
référencement, et vous savez maintenant que vous les établissez d'une
manière très similaire aux relations à double table. Vous avez alors appris que
vous devez revoir toutes les structures de table et vous assurer qu'elles sont
toujours conformes aux éléments de la table idéale.
Les clés étrangères ont été le prochain sujet de discussion et vous avez appris
que chaque clé étrangère doit être conforme aux éléments d'une clé
étrangère. Vous savez maintenant qu'il peut être très important qu'une clé
étrangère partage le même nom que sa clé primaire parent, que vous devez
modifier certains éléments d'une spécification de champ pour un champ qui
sert de clé étrangère, et qu'une clé étrangère doit tirer ses valeurs de la clé
primaire parent.
Nous avons ensuite discuté des caractéristiques relationnelles. Vous avez
appris comment définir une règle de suppression pour une relation et que vous
pouvez la définir de quatre manières. Ensuite, vous avez appris à identifier
le type de participation et le degré de participation pour chaque table dans une
relation à double table et pour chaque champ clé dans une relation d'auto-
référence. Comme vous le savez maintenant, vous pouvez désigner le type de
participation comme obligatoire ou facultatif. Vous savez également que le
degré de participation évalue le nombre minimum et maximum
d'enregistrements interdépendants qui peuvent exister dans une relation
donnée. Enfin, vous avez appris que vous devez vérifier les relations avec les
utilisateurs et la direction et que vous pouvez utiliser une liste de contrôle pour
accomplir cette tâche.
Le chapitre a clôturé avec un aperçu de l'intégrité au niveau de la
relation. Vous avez appris qu'une relation atteint ce type d'intégrité après avoir
vérifié qu'elle est correctement établie et que ses caractéristiques sont
convenablement définies.
Questions de révision
1. Énoncez deux principales raisons pour lesquelles une relation est
importante.
2. Nommez les trois types de relations.
3. Quelle relation posera le plus de problèmes?
4. Énoncez deux problèmes que vous pourriez éventuellement rencontrer avec
une relation plusieurs-à-plusieurs.
5. Qu'est-ce qu'une relation d'auto-référence ?
6. Comment commencer le processus d' identification des relations entre les
tables de la base de données ?
7. Quels sont les deux types de questions que vous pouvez poser pour vous
aider à identifier les relations existantes ?
8. Quel symbole raccourci utilisez-vous pour désigner une relation un-à-
plusieurs dans la matrice de la table?
9. Comment déterminez-vous quel type de relation existe officiellement entre
chaque paire de tableaux de la matrice ?
10. Comment établir une relation un-à-plusieurs ?
11. Vrai ou faux : Récupérer des informations à partir de tables avec une
relation d'auto-référencement peut être fastidieux et quelque peu difficile.
12. Comment établissez-vous une relation de plusieurs à plusieurs références?
13. Comment affiner les clés étrangères dans la base de données ?
14. Quelles deux catégories d'éléments devez-vous modifier pour la
spécification de champ d'une clé étrangère ?
t
a
b Quelle est la fonction d’une règle de suppression ?
15.
l
e
16. Quels deux types de participation pouvez-vous désigner pour une table ?
d
e17. Qu'indique le degré de participation ?
s
P
ar
rem Quand une relation atteint -elle l’intégrité au niveau relationnel ?
18.
ac
ht
m
dq
èei
ou
trè
se
rc
u
eh
e
se
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
10. Relations entre les tables
11. Règles commerciales
12. Vues
3h 32min restant
11
Règles commerciales
On se souvient de vous pour les règles que vous enfreignez.
—G d ouglas m ac a rthur _
Sujets abordés dans ce chapitre
Que sont les règles commerciales?
Catégories de règles métier
Définir et établir des règles métier
Tableaux de validation
Examiner les feuilles de spécifications des règles commerciales
Exemple : définir et établir des règles métier
Résumé
Questions de révision
Tout au long du processus de conception de la base de données, vous avez
effectué des tâches qui ont contribué à établir différents niveaux d'intégrité des
données. Vous avez établi l'intégrité au niveau du tableau, l'intégrité au niveau
du champ et l'intégrité au niveau de la relation jusqu'à présent. Ce faisant,
vous avez veillé à ce que les structures de table et de champs soient solides,
que les données entrées dans les champs seront cohérentes et essentiellement
valides, et que les relations sont significatives et correctement établies. Dans
ce chapitre, vous apprendrez à établir le composant final de l'intégrité globale
des données: les règles métier .
Que sont les règles commerciales?
Une règle commerciale est une déclaration qui impose une forme de contrainte
sur un aspect spécifique de la base de données, tels que les éléments dans une
spécification de champ pour un champ particulier ou les caractéristiques d'une
relation donnée. Vous basez une règle métier sur la manière dont l'organisation
perçoit et utilise ses données, que vous déterminez à partir de la manière dont
l'organisation fonctionne ou mène ses activités.
Un aspect important de tout processus de conception consiste à faire des
choix. Dans la conception de la base de données, par exemple, vous devez
choisir les données à stocker dans la base de données; Vous ne voudriez pas
nécessairement stocker ou avoir besoin de stocker toutes les dernières
données que l'organisation pourrait éventuellement utiliser. Les données que
vous choisissez enfin de stocker et comment vous décidez de les stocker seront
déterminées par la façon dont l'organisation utilise ses données. Un hôpital
peut vouloir stocker des temps de divers événements à la seconde, tandis
qu'un entrepôt ne nécessite que la date pour un événement donné.
Pour guider ces choix et d'autres, vous devrez faire pendant le processus de
conception de la base de données (et plus tard, lorsque vous implémentez la
base de données dans un SGBDR), vous avez besoin d'une déclaration formelle
des règles commerciales de l'organisation. Ces règles influenceront une grande
variété de problèmes de base de données, tels que les données que vous
collectez et stockez, la manière dont vous définissez et établissez des relations,
les types d'informations que la base de données peut fournir et la sécurité et la
confidentialité même des données elle-même . La création d'un ensemble
générique de règles commerciales qui pourrait s'appliquer à deux organisations
ou plus est presque impossible. Chaque organisation possède ses propres
exigences de données et d'informations, et chacune a sa propre façon unique
de mener ses activités; par conséquent, chaque organisation a besoin de son
propre ensemble spécifique de règles métier.
La déclaration suivante est un exemple de règle commerciale typique:
Comme la hanche ne peut pas être avant un o rder pour une commande donnée.
Cette règle métier particulière impose une contrainte sur l’élément Range of
Values des spécifications de champ pour un champ S HIP D ATE . Cela permettra
de garantir que la valeur de S HIP D ATE est significative dans le contexte d'une
commande client. Sans cette contrainte, vous pourriez saisir n'importe quelle
date dans le champ (y compris une date antérieure à la DATE DE
COMMANDE ) , rendant la valeur du champ DATE D' EXPÉDITION absolument dénuée
de sens. La règle d'entreprise est ce qui rend la valeur du champ de la hanche .
Parce que les règles métier dépendent de la manière dont une organisation
perçoit et utilise ses données, il est fort possible que plusieurs organisations
utilisent une règle particulière, mais pour des raisons
complètement différentes .
Par exemple, dites que le département de musique de Bel Air High School est
connu de loin pour la qualité de la musicalité qu'elle développe chez ses
étudiants musiciens. Les étudiants sont capables d'atteindre ce niveau de
musicalité parce qu'ils sont encouragés à concentrer leurs études musicales et
à se limiter à apprendre à jouer de deux instruments au maximum. Dans une
autre partie de la ville, le département de musique de Lake City High School
(une école privée) confère également à ses étudiants musiciens une grande
qualité musicale en les aidant à concentrer leurs études musicales. Les élèves
de cette école sont également limités à l'apprentissage de ne pas jouer plus de
deux instruments en raison de la politique de l'école; L'inventaire des
instruments de musique de l'école est très limité.
Par coïncidence, les deux écoles sont en train de concevoir leur propre base de
données. Dans chaque cas, l'école utilisera la base de données pour soutenir
ses opérations quotidiennes et ses fonctions administratives. Il se trouve que
chaque base de données contient les tables présentées dans la figure 11.1 .
Figure 11.1 Tableaux des bases de données des lycées Bel Air et Lake City.
Les deux écoles sont au même stade du processus de conception de bases de
données et établissent actuellement des règles métier. Il s'avère que chaque
école utilise la règle commerciale suivante dans sa base de données
respective:
Un élève ne peut pas faire vérifier plus de deux instruments en même temps.
Cette règle d'entreprise s'applique au degré de participation entre le tableau
des étudiants et le tableau des instruments des étudiants. Dans ce cas, un seul
enregistrement dans le tableau des étudiants ne peut pas être associé à plus
de deux enregistrements dans le tableau des instruments des étudiants où la
valeur de C Heck -i n d ate pour chaque enregistrement est nul; Un caractère nul
dans le champ C HECK -I N D ATE indique que l'instrument est toujours en
possession de l'étudiant.
La règle s'applique aux deux écoles, mais chaque école l'exige pour une raison
différente. Bel Air High School exige la règle en raison de la manière dont son
programme de musique a été établi, tandis que le Lake City High School
nécessite la contrainte en raison des limites physiques de son inventaire
d'instruments. Le fait que les deux écoles aient développé une règle identique
est une pure coïncidence. Cet exemple illustre qu'une règle d'entreprise est en
effet basée sur la façon dont unl’organisation fonctionne ou mène ses activités
et démontre pourquoi chaque organisation doit avoir son propre ensemble
spécifique de règles commerciales.
L'exemple illustre également un autre problème : vous ne pouvez pas établir de
contraintes imposées par certaines règles métier, comme celle-ci, dans la
conception logique de la base de données. Par exemple, il n'existe aucun
moyen clair pour indiquer que les valeurs C HECK -I N D ATE doivent être testées
pour déterminer si un étudiant peut vérifier un autre instrument. Vous devez
plutôt aborder et établir la contrainte en dehors de la conception logique de la
base de données. Comment déterminez-vous si vous pouvez représenter
correctement une contrainte donnée dans ce processus? Vous le faites en
identifiant le type de règle commerciale que vous définissez.
Types de règles métier
Les deux principaux types de règles métier sont orientés vers la base de
données et orientés vers l'application. Les deux types de règles commerciales
imposent une certaine forme de contrainte et aident à appliquer et à maintenir
l'intégrité globale des données, mais elles diffèrent en ce qui concerne l'endroit
et comment elles sont établies.
Les règles métier orientées base de données imposent des contraintes que
vous pouvez établir dans le cadre de la conception logique de la base de
données. Vous implémentez une contrainte donnée en modifiant divers
éléments de spécification de champ, caractéristiques relationnelles ou une
combinaison des deux. La déclaration à partir de laquelle vous dérivez la
contrainte est une règle commerciale orientée vers la base de données si vous
pouvez établir de manière significative et clairement la contrainte par l'un ou
l'autre de ces moyens. Par exemple, disons que vous avez une table de
fournisseurs et définissez la règle commerciale suivante pour le champ
de fin de fin dans ce tableau:
Nous faisons affaire exclusivement avec des fournisseurs du nord-ouest du
Pacifique.
Cette règle métier limite les valeurs que vous pouvez saisir dans le champ
V END S TATE à WA, OR, ID et MT. Vous pouvez créer l'entrepriseLa contrainte de
la règle de manière significative en modifiant l'élément de plage de valeurs
dans les spécifications de champ pour le champ de fin de fin . La figure
11.2 montre la modification.
Figure 11.2 Implémentation d'une contrainte imposée par une règle
d'entreprise orientée vers la base de données.
Les règles métier orientées applications imposent des contraintes que vous ne
pouvez pas établir dans le cadre de la conception logique de la base de
données. Vous devez plutôt les établir dans la conception physique de la base
de données ou dans la conception d'une application de base de données , où
ils seront plus applicables et plus significatifs. (J'utilise le terme application de
base de données ici pour désigner un programme écrit dans certains logiciels
qui permet aux personnes de l'organisation d'utiliser facilement la base de
données et d'effectuer des tâches liées à leurs activités de travail
quotidiennes.)
Voici un exemple d'une règle commerciale axée sur les applications typique:
Un client avec un statut « Préféré » bénéficie d'une réduction de 15 % sur tous
les achats.
Cette règle d'entreprise détermine le montant de la remise appliquée aux
achats d'un client, en fonction d'un statut particulier. Vous ne pouvez pas
établir cette contrainte de manière significative dans la conception logique
pour deux raisons: il n'y a pas de champ dans lequel stocker le montant de
réduction (le montant est le résultat d'un calcul, et les champs calculés ne sont
pas autorisés dans un tableau), et il n'y a pas moyen d'indiquer le critère utilisé
- lele statut du client – pour déterminer la remise. Vous devez établir cette
règle dans la conception physique de la base de données ou dans la conception
de l' application de base de données.
Note
La manière dont vous définissez et établissez réellement les règles
commerciales axées sur les applications est un sujet qui dépasse le cadre de ce
livre. Certains RDBDS fournissent des outils qui vous permettent d'implémenter
relativement facilement les règles commerciales axées sur les applications; La
plupart des RDBS vous obligeront à écrire du code de programmation pour
implémenter et appliquer ces règles.
Bien que les deux types de règles métier soient importants, vous vous
concentrerez sur les règles métier orientées base de données au cours de cette
étape du processus de conception de base de données.
Note
Tout au long du reste du livre, je me référerai aux règles commerciales axées
sur la base de données simplement en tant que règles métier .
Catégories de règles métier
Comprendre et définir les règles métier est plus facile si vous les divisez en
deux catégories distinctes : spécifiques au domaine et spécifiques à la relation.
Règles métier spécifiques au champ
Les règles commerciales dans la catégorie spécifique au champ imposent des
contraintes aux éléments d'une spécification de champ pour un champ
particulier. Le nombre d'éléments affectés par une règle donnée dépend de la
manière dont vous définissez cette règle. Par exemple, cette règle n'affecte
qu'un seul élément:
Les dates de commande ne peuvent pas être antérieures au 16 mai 2018, date
de création de notre entreprise.
Cette règle affecte la plage de dates qui peuvent être saisies dans le champ
O RDER D ATE d'une table ORDERS. Vous établissez cette règle en modifiant
l'élément Plage de valeurs des spécifications du champ DATE DE COMMANDE pour
indiquer la plage de dates valides.
Voici une règle qui affecte plusieurs éléments :
Nous devons être en mesure de stocker un code postal pour nos clients
canadiens.
Cette règle affecte les éléments Type de données, Longueur et Prise en charge
des caractères des spécifications de champ pour le champ C UST Z IPCODE dans
une table CUSTOMERS. Les codes postaux étendus contiennent des tirets et les
codes postaux canadiens incluent des lettres, vous devez donc apporter les
modifications suivantes à ces éléments pour imposer les contraintes définies
par cette règle.
1. Modifiez le paramètre Type de données sur « Alphanumérique ».
2. Définissez le réglage de longueur sur «9». (Cela vous permet d'inclure des
codes postaux étendus.)
3. Incluez « Lettres » et « Clavier » sous l'élément Support de personnage.
La figure 11.3 montre la section modifiée des éléments physiques des
spécifications de champ de C UST Z IPCODE .
Figure 11.3 Établissement d'une règle commerciale spécifique au champ pour
C ust z ipcode .
Règles métier spécifiques à la relation
Les règles métier spécifiques à une relation imposent des contraintes qui
affectent les caractéristiques d'une relation. Par exemple, supposons que vous
travaillez avec les tables et les relations de la figure 11.4 .
Figure 11.4 Tableaux et relations provenant d'une base de données scolaire.
Supposons que vous déterminiez qu'il doit y avoir une limite au nombre
d'étudiants pour chaque classe et que vous définissiez la règle métier
suivante :
Chaque classe doit compter au minimum cinq élèves, mais ne peut en accueillir
plus de 20.
Cette règle métier affecte le degré de participation entre les tables CLASSES et
STUDENT CLASSES. Vous appliquez la contrainte définie par cette règle en
modifiant le diagramme de relations pour montrer qu'un seul enregistrement
de la table CLASSES doit être lié à au moins cinq (mais pas plus de 20)
enregistrements dans la table STUDENT CLASSES. (Selon votre point de vue,
vous pourriez également déduire de cette règle métier que le type de
participation pour la table COURS D'ÉTUDIANTS est désormais obligatoire. Vous
pouvez saisir une nouvelle classe ou conserver une classe existante dans la
table CLASSES si et seulement si à au moins cinq étudiants sont inscrits dans
ce cours.) La figure 11.5 montre la modification que vous devez apporter au
diagramme pour établir la règle métier.
Figure 11.5 Établissement d'une règle métier spécifique à la relation.
Définir et établir des règles métier
Vous définissez et établirez des règles métier pour la base de données au cours
de cette étape du processus de conception. N'oubliez pas que vous devez
fonder ces règles sur la manière dont votre organisation perçoit et utilise ses
données, qui (comme vous le savez) dépendra de la façon dont l'organisation
fonctionne ou mène ses activités. La meilleure approche de cette tâche
consiste à définir et à établir d'abord les règles commerciales spécifiques au
domaine, suivies des règles commerciales spécifiques à la relation. Cette
approche vous aide à rester concentré sur le type de règle que vous
définissez. Cela vous empêche également de sauter dans les différents types
de règles commerciales, ce qui peut souvent conduire à la confusion et une
certaine frustration.
Travailler avec les utilisateurs et la gestion
Encore une fois, vous travaillerez avec le groupe représentatif des utilisateurs
et de la direction. Planifiez de nouvelles réunions avec eux afin que vous
puissiez travailler ensemble pour définir et établir les règles commerciales
appropriées pourla base de données. Travailler en groupe vous permet de vous
assurer que les contraintes imposées par les règles métier que vous définissez
ont du sens et qu'il n'y a pas de confusion ou d'ambiguïté quant à la nécessité
d'imposer chaque contrainte. Si vous ou quelqu'un dans le groupe avez un
doute sur une contrainte, vous pouvez discuter de l'effet qu'elle aura sur le
terrain ou la relation impliquée et les avantages et les inconvénients d'imposer
la contrainte. Vous pouvez alors décider de conserver la règle ou de l’ignorer
complètement en fonction des résultats de votre discussion.
Définir et établir des règles métier spécifiques au domaine
Commencez le processus d'établissement de règles métier pour la base de
données en travaillant sur des règles spécifiques au champ. Vous définissez et
établissez chaque règle en utilisant ces étapes.
1. Sélectionnez un tableau.
2. Passez en revue chaque champ et déterminez si cela nécessite des
contraintes.
3. Définir les règles métier nécessaires pour le terrain.
4. Établissez les règles en modifiant les éléments de spécification de champ
appropriés.
5. Déterminez quelles actions testent la règle.
6. Enregistrez la règle sur une feuille de spécifications des règles métier. (Nous
avons travaillé avec des morceaux de la feuille jusqu'à présent, mais
regardez la figure 11.8 pour voir une feuille complète.)
Examinons maintenant chaque étape plus en détail.
Étape 1 : Sélectionnez une table
Peu importe la table que vous sélectionnez en premier, car vous appliquerez
éventuellement cette procédure à chaque table de la base de données. Si vous
choisissez une table avec une structure familière, vous pouvez vous concentrer
un peu plussur l'apprentissage des étapes de la procédure. Cet effort
supplémentaire versera des dividendes lorsque vous commencerez à travailler
avec des tables contenant des champs qui portent une attention et un examen
plus approfondis.
Pensez au sujet que représente le tableau, puis posez ces questions:
Comment l'organisation utilise-t-elle des informations en fonction ou liées à ce
sujet?
Quelles relations cette table entretient-elle avec elle-même ou avec d'autres
tables de la base de données ?
Si nécessaire, consultez la liste finale des tableaux, lisez la description de ce
tableau et référez-vous à tous les diagrammes de relations qui intègrent ce
tableau. Les réponses à ces questions vous seront utiles pendant que vous
définissez des règles pour ce tableau et que vous vous concentrez sur le
tableau de cette manière vous prépare à la prochaine étape.
Étape 2 : Examinez chaque champ et déterminez s'il nécessite des contraintes
Examinez la feuille Spécifications du champ pour chaque champ et déterminez
si vous devez appliquer une contrainte à l'un de ses éléments. Gardez les
questions de l’étape 1 à l’esprit lorsque vous examinez une fiche technique
donnée, puis posez cette question :
Sur la base de la façon dont la table est utilisée dans la base de données, une
contrainte est-elle nécessaire pour tout élément de cette spécification?
Si la réponse est «non», passez au champ suivant; Sinon, passez à l'étape
suivante. Par exemple, supposons que vous travaillez avec le champ
C UST C OUNTY dans une table CUSTOMERS et que vous venez de poser la
question sur la nécessité d'une contrainte. ( La figure 11.6 montre la catégorie
des éléments logiques actuels pour ce champ.)
Figure 11.6 Paramètres actuels de la catégorie Éléments logiques du champ
C UST C OUNTY .
Vous devriez passer à l'étape suivante si vous recevez une réponse telle que
celle-ci :
« Eh bien, le patron veut commencer à suivre nos clients par comté, nous
devons donc nous assurer d'enregistrer un comté pour chaque client. En fait,
nous venons d'ajouter les comtés de Pierce et de Snohomish à notre région de
vente, il sera donc impératif que les noms des comtés soient enregistrés.
Cette réponse est clairement « oui », vous allez donc définir les règles métier
pour ce domaine à l'étape suivante.
Étape 3 : Définir les règles métier nécessaires pour le terrain
Vous définissez les règles métier appropriées pour le champ C UST C OUNTY en
identifiant les contraintes impliquées par la réponse à l'étape 2. Vous
transformez ensuite chaque contrainte en règle.
La réponse à l'étape 2 suggère deux contraintes possibles que vous devriez
imposer au champ C UST C OUNTY : Un nom de comté est requis pour chaque
client et la plage de valeurs pour ce champ est limitée à quatre comtés
spécifiques (les deux actuellement sur le spécification du champ et les deux
nouveaux comtés indiqués dans la réponse). Voici deux instructions que vous
pouvez utiliser pour commencer à transformer ces contraintes en règles
métier :
Un comté doit être associé à chaque client.
Les seuls comtés pouvant être saisis dans ce champ sont King, Kitsap, Pierce et
Snohomish.
Après avoir défini les règles métier appropriées, vous pouvez passer à l'étape
4.
Étape 4 : Établir les règles en modifiant les éléments de spécification de champ
appropriés
Établissez chaque règle métier que vous avez définie à l'étape 3 en modifiant
les éléments appropriés sur la feuille Spécifications du champ. (N'oubliez pas
que certaines règles peuvent affecter plusieurs éléments.) Toutefois, vous
devez d'abord identifier les éléments des spécifications de champ affectés par
la règle. Par exemple, considérez la première règle commerciale que vous avez
définie pour le champ CustCounty à l'étape 3:
Un comté doit être associé à chaque client.
Vous pouvez en déduire que la règle affecte les éléments Valeur requise, Prise
en charge nulle et Modifier la règle, car elle indique explicitement qu'un comté
« doit être associé » à un client. Vous pouvez maintenant apporter les
modifications appropriées à ces éléments. Dans ce cas particulier, vous
définirez la valeur requise sur « Oui », la prise en charge des valeurs nulles sur
« Aucune valeur nulle » et la règle de modification sur « Entrer maintenant,
modifications autorisées ».
Comme vous pouvez le constater, il est important que vous examiniez très
attentivement chaque règle métier afin de déterminer les éléments de
spécification de champ qu'elle affectera. Lorsque vous commencez à définir
des règles métier, il est préférable d'avoir une feuille de spécifications de
champ à portée de main afin de pouvoir vous y référer si nécessaire. De
nombreux éléments vous viendront plus facilement à l’esprit à mesure que
vous deviendrez plus expérimenté dans l’établissement de règles
commerciales.
Considérons maintenant la règle métier suivante dans l'exemple :
Les seuls comtés pouvant être saisis dans ce champ sont King, Kitsap, Pierce et
Snohomish.
Cette règle métier affecte l'élément Plage de valeurs et vous allez maintenant
modifier son paramètre sur « King, Kitsap, Pierce et Snohomish ». La figure
11.7 montre la catégorie des éléments logiques révisés de la feuille de
spécifications de champ pour le champ C ust C OUNTY .
Figure 11.7 Paramètres révisés pour la catégorie Éléments logiques du champ
C UST C OUNTY .
Étape 5 : Déterminer quelles actions testent la règle
La contrainte imposée par la règle métier est testée lorsque vous tentez
d'effectuer l'une des trois actions suivantes : insérer un enregistrement dans la
table ou une entrée dans un champ, supprimer un enregistrement de la table
ou une valeur dans un champ, ou mettre à jour la valeur d'un
champ. Maintenant que vous avez établi une règle métier et compris la
contrainte qu'elle imposera, déterminez les actions qui testent la règle en
identifiant le moment où une violation de la règle est la plus susceptible de se
produire. Vous pouvez rendre cette tâche relativement facile en vous posant les
questions suivantes :
Cette règle sera-t-elle violée si j'entre un nouvel enregistrement dans cette
table ?
Cette règle sera-t-elle violée si je n'entre pas de nouvel enregistrement dans
cette table ?
Cette règle sera-t-elle violée si je supprime un enregistrement de cette table ?
Cette règle sera-t-elle violée si j'entre une valeur dans ce champ ?
Cette règle sera-t-elle violée si je ne saisis pas de valeur dans ce champ ?
Cette règle sera-t-elle violée si je mets à jour la valeur de ce champ ?
Cette règle sera-t-elle violée si je supprime la valeur de ce champ ?
Après avoir déterminé quelles actions déclencheront une violation de la règle,
notez-les ; vous les utiliserez à l'étape suivante. Ces informations vous aideront
également à établir cette règle de la manière la plus efficace possible lorsque
vous implémentez la base de données dans vos SGBDR.
Dans ce cas, la règle commerciale du champ C ust C OUNTY sera testée lorsque
vous essayez d' insérer une valeur dans le champ car la valeur doit être dans
une plage spécifique de valeurs. La règle sera également testée lorsque vous
tenterez de supprimer une valeur dans le champ car la valeur ne peut pas être
Null.
Étape 6: Enregistrez la règle sur une feuille de spécifications de règles commerciales
Vous pouvez documenter une règle commerciale donnée pour référence future
en remplissant une feuille de spécifications de règles commerciales. C'est
quelque chose que vous devez faire pour chaque règle, quel que soit son type
ou sa catégorie. La feuille de spécifications des règles métier offre trois
avantages.
1. Il vous permet de documenter chaque règle commerciale axée sur la base
de données. Cela vous aide à vous assurer que vous avez correctement
défini et correctement établi chaque règle.
2. Il vous permet de documenter chaque règle commerciale axée sur les
applications. Bien que vous ne puissiez pas établir ce type de règle dans la
conception logique de la base de données, vous pouvez au moins indiquer
ses éléments de base. Les informations que vous documentez pour ce type
de règle commerciale vous seront inestimables lorsque vous implémentez la
base de données dans votre SGBDR ou lorsque vous créez le programme
d'application que les gens utiliseront pour travailler avec la base de
données.
3. Il fournit une méthode standard pour enregistrer toutes les règles
métier. Les règles commerciales sont plus faciles à suivre et à entretenir si
vous les enregistrez de manière cohérente. L'utilisation d'un format
uniforme facilite également le dépannage des règles métier ; Chaque aspect
de la règle apparaît sur la fiche de spécification.
La feuille Spécifications des règles métier contient les éléments suivants.
• Déclaration: Ceci est le texte de la règle commerciale elle-même. Il doit être
clair et succinct et doit transmettre les contraintes requises sans aucune
confusion ni ambiguïté. Voici un exemple de déclaration bien cadrée:
Un agent de réservation ne peut être affecté à plus de 25 artistes.
• Contrainte : ceci est une brève explication de la façon dont la contrainte
s'applique aux tables et aux champs. Par exemple, vous pouvez utiliser
l'explication suivante de la contrainte imposée par la règle d'entreprise dans
l'exemple précédent:
Un seul enregistrement de la table AGENTS ne peut pas être associé à plus
de 25 enregistrements de la table ENTERTAINERS.
• Type : C'est ici que vous indiquez si la règle est orientée base de données ou
orientée application.
• Catégorie: c'est là que vous indiquez si la règle est spécifique au champ ou
spécifique à la relation.
• Test on: Voici où vous indiquez quelles actions (insérer, supprimer, mettre à
jour) testera la contrainte que la règle commerciale impose.
• Structures affectées: Selon le type de règle commerciale, la contrainte
affectera soit un champ ou une relation. C'est ici que vous désignez le nom
du ou des champs que la règle affectera ou le nom de la ou des tables
impliquées dans la relation affectée par la règle.
• Éléments de champ affectés : une règle métier relative à un champ peut
affecter un ou plusieurs éléments des spécifications de ce champ. C'est là
que vous indiquez les éléments que la règle affecte.
• Caractéristiques relationnelles affectées: Une règle d'entreprise qui
concerne une relation affectera une ou plusieurs des caractéristiques de la
relation. C'est là que vous indiquez les caractéristiques que la règle affecte.
• Action prise: Ici, vous indiquez les modifications que vous avez apportées
aux éléments d'une spécification de champ ou à un diagramme
relationnel. Commencez votre entrée avec la date à laquelle la modification
a été effectuée et le nom ou les initiales de la personne qui a autorisé ou
effectué le changement. Il est très important que la déclaration que vous
entrez ici soit aussi claire et sans ambiguïté que possible. Si un problème
survient suite à l'application de cette règle métier, cette déclaration
constitue une documentation précise des étapes que vous avez suivies pour
établir la règle. Vous pouvez utiliser cette déclaration pour vous assurer que
ces étapes ont été réellement effectuées et que la règle a été correctement
établie.
Maintenant, remplissez une feuille de spécifications des règles métier pour la
règle que vous avez établie à l'étape 4. La figure 11.8 montre une feuille de
spécifications des règles métier complétée qui documente les règles métier
que vous avez établies pour le champ C UST C OUNTY .
Figure 11.8 Un exemple de feuille de spécifications de règles commerciales.
Définir et établir des règles commerciales spécifiques aux relations
Après avoir défini et établi des règles commerciales spécifiques au terrain , le
prochain ordre des affaires est de lutter contre les règles
commerciales spécifiques aux relations . La procédure pour effectuer cette
tâche implique les étapes suivantes:
1. Sélectionnez une relation.
2. Passez en revue la relation et déterminez si elle nécessite des contraintes.
3. Définissez les règles commerciales nécessaires pour la relation.
4. Établissez la règle en modifiant les caractéristiques de la relation
appropriées.
5. Déterminez quelles actions testeront la règle.
6. Enregistrez la règle sur une feuille de spécifications des règles métier.
Comme vous pouvez le voir, cette procédure est similaire à celle que vous avez
utilisée pour les règles métier spécifiques au terrain. Examinons maintenant
chaque étape plus en détail.
Note
Vous pouvez appliquer l’intégralité de cette procédure aux relations d’auto-
référencement et aux relations à double table. Cependant, j'ai basé le reste de
la discussion sur une relation à double table, car c'est le type de relation que
vous êtes susceptible de travailler avec la majorité du temps.
Étape 1 : Sélectionnez une relation
La relation que vous choisissez est une question relativement triviale, car vous
finirez par appliquer cette procédure à chaque relation de toute façon. Après
avoir sélectionné une relation spécifique, passez en revue son schéma de
relation. Pensez à ce que les tableaux représentent et pourquoi ils sont liés et
posent les questions suivantes:
Quel type d’informations ces tableaux fournissent-ils ?
Pourquoi la relation entre ces deux tables est-elle importante?
La réponse à ces questions vous aidera à définir toutes les règles commerciales
nécessaires pour la relation, et les garder à l'esprit vous préparera à la
prochaine étape.
Étape 2 : Examiner la relation et déterminer si elle nécessite des contraintes
Passez en revue brièvement chaque caractéristique relationnelle et gardez à
l'esprit son cadre actuel. Examinez la relation dans son ensemble et
déterminez si elle nécessite une certaine forme de contrainte. Pendant que
vous examinez la relation, souvenez-vous des réponses aux questions que vous
avez posées à l'étape 1.Vous posez maintenant une question comme celle-ci
pour vous aider à déterminer si une contrainte est nécessaire :
Y a-t-il besoin d'imposer un certain type de limitation à cette relation en
fonction de la façon dont l'organisation fonctionne ou mène ses activités?
Si la réponse est « oui », passez à l’étape suivante ; sinon, passez en revue la
relation suivante et effectuez à nouveau cette étape. Par exemple, supposons
que vous concevez une base de données pour un petit studio de danse et que
vous travaillez avec la relation entre les tables INSTRUCTORS et INSTRUCTOR
CLASSES illustrées dans la figure 11.9 .
Figure 11.9 Un diagramme de relations pour les tables d'une base de
données de studio de danse.
Posez maintenant une question pour vous aider à déterminer si la relation
nécessite une contrainte :
Est-il nécessaire d’imposer une certaine forme de limitation à cette relation en
fonction de la manière dont le studio de danse fonctionne ou mène ses
activités ?
Passez à l'étape suivante si vous recevez une réponse telle que celle-ci :
Oui il y a. Nous exigeons que tous les instructeurs donnent au moins un
cours. Nous les limitons cependant à enseigner dans un maximum de huit
classes.
Vous utiliserez cette réponse comme base d’une règle métier à l’étape
suivante.
Étape 3: Définissez les règles commerciales nécessaires pour la relation
Ensuite, définissez une règle commerciale appropriée en fonction de la réponse
que vous avez reçue à l'étape 2. Identifiez la contrainte que la réponse
implique, puis transformez-la en règle commerciale. Par exemple, vous pouvez
déduire deux contraintes de la réponse: le nombre minimum de classes qu'un
instructeur peut enseigner en est un, et le nombre maximum est de
huit. Transformez ces contraintes en règle métier en composant une instruction
telle que celle-ci :
Un instructeur doit enseigner une classe, mais pas plus de huit classes.
Après avoir défini la règle, passez à l'étape suivante.
Étape 4: Établissez la règle en modifiant les caractéristiques de la relation
appropriées
Établissez la règle métier que vous venez de définir en modifiant les
caractéristiques appropriées dans le diagramme de relations. Avant d'apporter
des modifications, examinez à nouveau l'énoncé de la règle métier et identifiez
les caractéristiques de relation affectées par la règle :
Un instructeur doit enseigner une classe, mais pas plus de huit classes.
La contrainte affecte le nombre de cours qu'un instructeur peut enseigner,
vous modifiez donc la caractéristique de degré de participation de la table
INSTRUCTOR CLASSES en la définissant sur « (1,8) ». Cette règle affecte
également le type de participation caractéristique du tableau COURS
D'INSTRUCTEUR. Vous devez définir le type de participation de la table à «
Obligatoire » car un seul enregistrement de la table INSTRUCTEURS doit être
associé à au moins un enregistrement de la table INSTRUCTEURS CLASSES. La
figure 11.10 montre le diagramme de relation révisé avec vos modifications.
Figure 11.10 Le diagramme de relations révisé qui établit la nouvelle règle
commerciale.
Étape 5 : Déterminer quelles actions testeront la règle
Comme vous le savez, la contrainte imposée par la règle métier est testée
lorsque vous tentez d'insérer, de supprimer ou de mettre à jour un
enregistrement de table ou une valeur de champ. Maintenant que vous avez
établi la règle métier et compris comment elle affecte la relation, déterminez
les actions qui testent la règle en identifiant le moment où une violation de la
règle est la plus susceptible de se produire. Utilisez les questions suivantes
pour vous aider à prendre votre décision:
Y a-t-il des circonstances dans lesquelles cette règle sera violée si j'entre un
nouveau dossier dans ce tableau?
Cette règle sera-t-elle violée si je n'entre pas de nouvel enregistrement dans
cette table ?
Cette règle sera-t-elle violée si je supprime un enregistrement de cette table ?
Après avoir déterminé quelles actions déclencheront une violation de la règle,
notez-les ; vous les utiliserez à l'étape suivante. Ces informations vous aideront
également à établir cette règle de la manière la plus efficace possible lorsque
vous implémentez la base de données dans vos SGBDR.
Voici un point important à noter : lorsque vous déterminez qu'une règle sera
violée lorsque vous tenterez de supprimer un enregistrement, vous devez
modifier en conséquence la règle de suppression actuelle pour la relation ou
ajouter une nouvelle règle de suppression à la relation.
Vous avez appris au chapitre 10 , « Relations entre tables », que vous n'avez
pas à vous soucier de la suppression d'enregistrements dans la
table enfant d'une relation, car cela ne peut avoir aucun effet négatif. Nous
devons maintenant modifier cette affirmation en indiquant qu'une exception se
produit lors de la suppression d'un dossier dans le tableau des enfants violerait
une règle commerciale requise. Vous gérez cette exception en établissant une
règle de suppression de restriction pour la table des enfants. Faites en
sorte que vous gardez cela à l'esprit lorsque vous déterminez quand une règle
sera testée.
La nouvelle règle commerciale de la base de données de Dance Studio sera
testée lorsque vous tenterai d'insérer un enregistrement dans le tableau des
classes d'instructeurs; Vous pouvez associer un maximum de seulement huit
enregistrements à un instructeur particulier. La règle sera également testée
lorsque vous tentez de supprimer un enregistrement du tableau des classes
d'instructeurs; Chaque instructeur doit être associé à au moins une classe. En
conséquence, vous devez établir une règle de suppression de restriction pour
ce tableau. La figure 11.11 montre les modifications que vous avez apportées
au diagramme de cette relation.
Figure 11.11 Établissement d'une règle de suppression de restriction pour le
tableau des classes d'instructeurs pour soutenir la nouvelle règle commerciale.
Étape 6: Enregistrez la règle sur une feuille de spécifications de règles commerciales
Enfin, remplissez une feuille de spécifications des règles métier pour la règle
métier que vous avez établie à l'étape 4. La figure 11.12 montre la feuille de
spécifications des règles métier complétée pour votre nouvelle règle.
Figure 11.12 Feuille de spécifications des règles métier complétée pour la
nouvelle règle métier.
Tableaux de validation
Lorsque vous définissez des règles métier spécifiques à un champ, il y aura des
cas dans lesquels une règle imposera une contrainte qui définit un ensemble
distinct de valeurs valides pour la plage de valeurs d'un champ donné. (Cela
affecte l'élément Plage de valeurs du champ dans sa spécification de champ.)
Cet ensemble de valeurs comprend généralement un nombre relativement fixe
d'entrées, et les valeurs elles-mêmes changeront rarement. Cependant, si le
nombre d’entrées est plutôt élevé, vous découvrirez peut-être que la mise en
œuvre de cette règle va être légèrement difficile. Par exemple, vous
manquerez probablement de place très rapidement lorsque vous essayez
d'énumérer chacune des valeurs dans l'élément de plage de valeurs sur la
feuille de spécifications de champ, et la mise en œuvre de l'ensemble des
valeurs dans les SGBDR pourrait s'avérer quelque peu compliquée . Vous
pouvez éviter de tels problèmes en stockant toutes les valeurs dans une table
de validation .
Que sont les tables de validation ?
Comme vous l'avez appris au chapitre 3 , « Terminologie », une table de
validation (également appelée table de recherche ) stocke les données que
vous utilisez spécifiquement pour implémenter l'intégrité des données. Vous
n’insérez, ne mettez pas à jour ou ne supprimez pas souvent des
enregistrements dans la table après avoir rempli la table avec les données dont
vous avez besoin. Les tables de validation comprennent généralement (mais
pas toujours) deux champs : le premier fait office de clé primaire et est ce que
vous utiliserez pour vous aider à garantir l'intégrité des données, et le second
est simplement un champ non clé qui stocke un ensemble de valeurs requises.
par un autre champ de la base de données. La figure 11.13 montre deux
exemples de tables de validation.
Figure 11.13 Exemples de tables de validation.
Dans cette section, vous apprendrez à utiliser le champ de clé primaire pour
contribuer à appliquer une règle métier. Vous apprendrez à utiliser le champ
non clé au chapitre 12 , « Vues ».
Utilisation de tables de validation pour prendre en charge les règles
métier
Lorsqu'une règle métier limite la plage de valeurs d'un champ, vous pouvez
appliquer la contrainte à l'aide d'une table de validation ; le champ tirera
ensuite ses valeurs d'un champ approprié dans la table de
validation. L'établissement de ce type de règle implique deux étapes : définir
une relation entre la table parent du champ concerné par la règle et la table de
validation, et apporter une modification à l'élément Plage de valeurs des
spécifications du champ concerné dans la table parent. .
Par exemple, supposons que vous travaillez avec le champ S UPP S TATE d'une
table SUPPLIERS et que vous avez défini la règle métier suivante :
Tout fournisseur que nous utilisons doit être basé dans l’un des 11 États
contigus de l’Ouest, en Alaska ou à Hawaï.
Vous pouvez voir que cette règle impose une contrainte sur la plage de valeurs
du champ S UPP S TATE , les limitant à AK, AZ, CA, CO, HI, ID, MT, NM, NV, OR,
UT, WA et WY. (Selon la règle, vous ne pouvez pas utiliser unfournisseur basé
dans un autre État.) Le moyen le plus simple et le plus efficace d'établir cette
règle est de stocker ces valeurs dans une table de validation appelée STATES,
puis d'utiliser la table de validation comme source de la plage de valeurs du
champ S UPP S TATE ..
Considérez les tableaux de la figure 11.14 . (Remarquez le nouveau symbole
utilisé pour représenter un tableau de validation.) Le tableau des fournisseurs
stocke toutes les données requises sur les fournisseurs engagés par
l'organisation, et le tableau des États est un nouveau tableau de validation qui
stockera les noms et abréviations de la spécifiée États.
Figure 11.14 La table SUPPLIERS et la table de validation STATES.
Votre première tâche consiste à établir une relation entre ces tables. Comme
vous pouvez le constater, il existe une relation un-à-plusieurs entre eux : un
seul enregistrement dans STATES peut être associé à un ou plusieurs
enregistrements dans SUPPLIERS, mais un seul enregistrement dans SUPPLIERS
sera associé à un seul enregistrement dans STATES. Vous savez déjà que vous
établissez une relation un-à-plusieurs en prenant une copie de la clé primaire
de la table parent et en l'incorporant dans la structure de la table enfant où elle
devient une clé étrangère. Bien que le tableau des fournisseurs ait déjà un
champ nommé S Tate SP , vous le remplacerez par le champ S Tate de la table de
validation des états. (Il s'agit d'une modification raisonnable car elle est
conforme aux éléments du champ idéal et est cohérente avec la manière dont
vous établissezrelations un-à-plusieurs.) La figure 11.15 montre le nouveau
diagramme de relations pour ces deux tables.
Figure 11.15 Un diagramme de relations pour les tables SUPPLIERS et
STATES.
Maintenant que le champ S TATE est une clé étrangère dans la table SUPPLIERS,
assurez-vous qu'il est conforme aux éléments d'une clé étrangère (comme
décrit au chapitre 10 ) et définissez sa spécification de champ de la manière
appropriée. Définissez ensuite les caractéristiques de la relation de cette
manière.
• Règle de suppression: définir une règle de suppression de restriction pour
cette relation. Vous ne souhaitez pas supprimer un état de la table STATES
qui est référencé par les enregistrements de la table SUPPLIERS.
• Type de participation : Désignez un type de participation Facultatif pour la
table FOURNISSEURS et un type de participation Obligatoire pour la table
ÉTATS. Bien qu'il ne soit pas nécessaire que la table SUPPLIERS contienne
des enregistrements avant de pouvoir saisir un nouvel enregistrement dans
la table STATES, il doit y avoir au moins un enregistrement dans la table
STATES avant de pouvoir saisir des enregistrements dans la table
SUPPLIERS.
• Degré de participation : Attribuez un (1,1) degré de participation à la table
ÉTATS ; comme vous le savez déjà, il doit y avoir au moins un
enregistrement dans la table STATES avant de pouvoir saisir des
enregistrements dans la table FOURNISSEURS. Affecter un (0, n) degré de
participation pour le tableau des fournisseurs; Tout nombre
d'enregistrements dans ce tableau peut être associé à un enregistrement
particulier dans le tableau des États.
Ensuite, modifiez l'élément Range of Values de la spécification de champ pour
le champ S TATE dans la table SUPPLIERS à l'aide d'un paramètre tel que celui-
ci :
Toute valeur contenue dans le champ S TATE de la table STATES.
La figure 11.16 montre les paramètres que vous avez créés dans la catégorie
des éléments logiques de la feuille de spécifications de champ pour ce champ.
Figure 11.16 Définition de la catégorie Éléments logiques pour le champ de
clé étrangère S TATE dans la table SUPPLIERS.
Vous devez maintenant décider quelles actions testent la règle. Lorsque vous
utilisez une table de validation pour appliquer une règle commerciale, vous
souhaitez généralement tester la règle lorsqu'un utilisateur tente d' insérer une
nouvelle valeur dans le champ ou de mettre à jour une valeur existante dans le
champ. Dans les deux cas, une violation se produira lorsque l'utilisateur tentera
de saisir une valeur qui n'existe pas dans la table de validation.
Enfin, remplissez une feuille de spécifications de règles commerciales pour la
règle d'entreprise que vous venez d'établir. Assurez-vous d'indiquer les
modifications que vous avez apportées au domaine et à la nouvelle relation. La
figure 11.17 montre la feuille de spécifications de règle commerciale terminée
pour votre nouvelle règle.
Figure 11.17 Feuille de spécifications des règles métier complétée pour la
nouvelle règle métier.
Examiner les feuilles de spécifications des règles
commerciales
Après avoir établi les règles commerciales que vous croyez appropriées, passez
en revue leurs feuilles de spécification. Examinez attentivement chaque fiche
technique et assurez-vous que vous avez correctement établi la règle et que
vous avez clairement marqué toutes les zones appropriées sur la feuille. Si
vous trouvez une erreur, effectuez les modifications nécessaires et révisez-la
une fois de plus. Répétez ce processus jusqu'à ce que vous ayez examiné
chaque règle métier.
Les règles métier sont un élément important de la base de données. Ils
contribuent à l’intégrité globale des données et imposent des contraintes
d’intégrité spécifiques à l’organisation. Comme vous l'avez vu, ces règles
contribuent à assurer la validité et la cohérence des données selon la manière
dont l'organisation fonctionne ou mène ses activités. De plus, ces règles
finiront par influencer la manière dont vous implémentez la base de données
dans votre SGBDR et la manière dont vous concevez et développez des
programmes d'application pour l'utilisateur final pour la base de données.
Il est important de comprendre que vous revisiterez ces règles assez
souvent. Par exemple, lorsque vous examinez la structure finale, vous pouvez
déterminer que des règles métier supplémentaires sont nécessaires. Vous
découvrirez peut-être que certaines règles ne fourniront pas les résultats que
vous aviez initialement envisagés, vous devrez donc les modifier. Il vous est
également possible de déterminer que certaines règles ne sont finalement pas
nécessaires. (Dans ce cas, veillez absolument à examiner attentivement les
règles avant de les supprimer.)
Gardez à l’esprit que les règles métier que vous définissez maintenant
nécessiteront forcément des modifications à l’avenir ; vous devrez
probablement ajouter des règles métier en temps utile en raison de
changements dans la manière dont l'organisation fonctionne ou mène ses
activités. La nécessité de modifier les règles métier existantes ou d’en
développer de nouvelles est tout à fait normale : l’organisation grandit et mûrit
inévitablement, tout comme la manière dont elle évolue.dans lequel il agit ou
réagit à des forces extérieures. Ces forces affectent la manière dont
l'organisation perçoit et utilise ses données, ce qui, à son tour, modifie la
nature des exigences des règles métier de l'organisation.
La tâche de définition et d'établissement de règles métier est continue, comme
tant d'autres tâches au sein du processus de conception de bases de
données. Ne vous découragez pas si vous devez effectuer cette tâche plusieurs
fois. Vos efforts porteront de grands fruits à long terme.
EXEMPLE : DÉFINIR ET ÉTABLIR DES RÈGLES COMMERCIALES
Il est maintenant temps d'établir des règles métier pour la base de données de
Mike. Vous planifiez une réunion avec Mike et son équipe pour examiner les
tables et les relations dans leur base de données. La première chose à faire est
de définir et d’établir des règles métier spécifiques au domaine.
Vous commencez le processus en examinant le tableau des produits. Lorsque
vous examinez chaque champ, vous déterminez si cela nécessite des
contraintes. Lorsque vous arrivez sur le champ C Ategory , vous vous souvenez
qu'il y avait une question concernant sa gamme de valeurs. (Reportez-vous à
l'exemple du chapitre 9 , « Spécifications de champ ».) Vous discutez encore
une fois de cette question avec Mike et son personnel, et vous vous êtes enfin
consensuel sur une liste distincte de catégories. Mike décide alors que les
valeurs du champ Category devraient être limitées à ceux de cette liste pour
s'assurer que le personnel n'invente pas arbitrairement de nouvelles
catégories. Sur la base de la décision de Mike, vous définissez une règle
commerciale appropriée pour établir la contrainte:
Les catégories de produits invalides ne sont pas autorisées.
Un certain nombre d'éléments figurent dans la liste des catégories possibles.
Vous décidez donc que la meilleure façon d'établir cette règle est d'utiliser une
table de validation. Toicréez une nouvelle table appelée CATEGORIES, puis
établissez une relation entre celle-ci et la table PRODUCTS. Vous allez ensuite
schématiser la relation et définir ses caractéristiques de manière
appropriée. La figure 11.18 montre les résultats de votre travail.
Figure 11.18 Le diagramme de relations pour les tables PRODUITS et
CATÉGORIES.
Voici les paramètres que vous avez utilisés pour les caractéristiques de la
relation.
• Il existe une règle de suppression de restriction pour la relation.
• Le tableau des catégories a un type de participation obligatoire .
• Le tableau des produits a un type de participation facultatif .
• Le tableau des catégories a un (1,1) degré de participation.
• Le tableau des produits a un (0, n) degré de participation.
N'oubliez pas qu'en établissant cette relation, vous avez remplacé le
champ Category existant dans le tableau des produits par une copie du champ
d'identification C Ategory à partir du tableau des nouvelles catégories. Vous devez
maintenant vous assurer que le champ d'identification C Ategory dans le tableau
des produits est conforme aux éléments d'une clé étrangère, puis apporter les
modifications appropriées à sa spécification de champ. Enfin, définissez
l'élément de plage de valeurs du champ sur quelque chose comme celui-ci:
Toute valeur dans le champ d'ID C Ategory dans le tableau des catégories.
La figure 11.19 montre les paramètres que vous avez créés à la catégorie des
éléments logiques des spécifications de champ pour le champ d'identification
de la category dans le tableau des produits.
Figure 11.19 Paramètres des éléments logiques pour le champ de clé
étrangère C ATEGORY ID dans la table PRODUCTS.
Vous devez maintenant décider quand la règle doit être testée. Comme vous le
savez déjà, vous souhaitez généralement tester une règle établie avec une
table de validation si l'utilisateur tente d'insérer une valeur dans le champ ou
de mettre à jour une valeur existante dans le champ.
Enfin, vous complétez une feuille de spécifications de règles commerciales pour
cette nouvelle règle commerciale. Cette fiche de spécification reflétera les
modifications que vous avez apportées aux spécifications du champ pour le
champ d'identification C Ategory , ainsi que les caractéristiques de la relation
entre les catégories et les tableaux de produits. La figure 11.20 montre la
feuille de spécifications des règles commerciales terminée.
Figure 11.20 Feuille de spécifications des règles métier complétée pour la
nouvelle règle métier.
Vous répétez ce processus pour les champs restants de cette table et pour les
champs des tables restantes. Une fois que vous avez terminé, vous passez à la
tâche suivante.
La prochaine étape consiste à établir des règles commerciales spécifiques à la
relation. Vous commencez par examiner la relation entre les tables EMPLOYEES
et INVOICES, puis vous examinez le diagramme de relation pour déterminer si
la relation nécessite des contraintes. Tout semble être en ordre, vous passez
donc à la relation entre les tables VENDORS et PRODUCTS. La figure
11.21 montre le diagramme de relations pour ces tables.
Figure 11.21 Le diagramme de relation pour les tables VENDORS et
PRODUCTS.
Alors que vous et Mike discutez si vous devez imposer des contraintes à cette
relation, Mike détermine qu'il devrait y avoir une contrainte sur le tableau des
produits. Il veut s'assurer que chaque fournisseur de la table des vendeurs est
associé à au moins un produit; Il estime qu'il n'est pas nécessaire de conserver
des données sur un fournisseur qui ne lui fournit aucun produit. Vous définissez
donc la règle commerciale suivante pour cette contrainte:
Chaque vendeur doit fournir au moins un produit.
Vous allez maintenant établir la règle en modifiant les caractéristiques de
relation appropriées. Vous commencez par désigner un type de participation
obligatoire et attribuer un (1, n) degré de participation aux
produitstableau. Vous définissez ensuite une règle Restreindre la suppression
pour la relation basée sur la table PRODUCTS ; cela vous évitera de supprimer
accidentellement le seul produit associé à un fournisseur donné. La figure
11.22 montre les résultats de vos modifications.
Figure 11.22 Le diagramme de relation révisé pour les tables VENDORS et
PRODUCTS.
Vous savez déjà que ce type de règle métier sera testé lorsqu'un utilisateur
tentera d'insérer ou de supprimer un enregistrement dans la table PRODUITS.
Vous devez donc terminer ce processus en remplissant une feuille de
spécifications de règle métier pour cette règle. La figure 11.23 montre la fiche
technique complétée.
Figure 11.23 Une feuille de spécifications de règles commerciales terminée.
Répétez maintenant ce processus pour les relations restantes. Lorsque vous
avez terminé, le processus est terminé et vous êtes prêt pour la prochaine
étape du processus de conception de la base de données.
Résumé
Ce chapitre s'est ouvert avec une définition des règles commerciales. Vous
avez appris qu'une règle d'entreprise est une contrainte imposée sur un
domaine ou une relation basée sur la façon dont l'organisation perçoit et utilise
ses données et qu'elle dérive de la manière dont l'organisation fonctionne ou
mène ses activités. Vous savez maintenant qu'il existe deux principaux types
de règles métier: orientée vers la base de données et orienté vers
l'application. Bien que nous nous concentrions ici sur les règles métier
orientées base de données, vous savez que vous pouvez au moins enregistrer
les éléments de base des règles métier orientées application pour les utiliser
ultérieurement dans le processus de mise en œuvre.
Vous avez ensuite appris que les règles commerciales axées sur la base de
données sont divisées en deux catégories: les règles commerciales spécifiques
au champ , qui affectent les éléments d'une spécification de champ pour un
champ particulier; et les règles commerciales spécifiques à la relation , qui
affectent les caractéristiques d'une relation.
Le chapitre s'est poursuivi avec une discussion sur la définition et
l'établissement de règles commerciales. Ici, vous avez appris que vous
travaillez avec les utilisateurs et la direction pour définir les règles métier
requises par l'organisation. Vous avez également appris qu'il est préférable
d'établir d'abord les règles commerciales spécifiques au domaine, suivies des
règles commerciales spécifiques aux relations.
Ensuite, vous avez appris les étapes nécessaires pour définir et établir chaque
type de règle d'entreprise. Vous savez maintenant que, en général, vous
travaillez avec un domaine ou une relation, passez en revue le domaine ou la
relation à la lumière de la règle pour déterminer si des contraintes sont
nécessaires, définissez la règle commerciale appropriée, établissez la règle en
modifiant les éléments de spécification de champ appropriés ou les
caractéristiques de la relation, décidez quelles actions testent la règle, puis
complétez une feuille de spécifications de règle commerciale pour la règle.
Le chapitre s'est poursuivi avec une discussion sur les éléments de la feuille de
spécifications de règles commerciales et comment chaque élément de la feuille
est défini. L'utilisation de feuilles de spécifications de règles commerciales vous
permet de documenter toutes vos règles et vous fournit une méthode standard
pour les enregistrer et les examiner.
Nous avons fermé le chapitre en discutant des tables de validation. Vous avez
appris que vous pouvez créer et utiliser un tableau de validation pour soutenir
une règle commerciale qui limite la plage de valeurs pour un champ
particulier. De cette manière, le tableau de validation aide à appliquer
l'intégrité des données. Vous avez également appris que vous devez établir de
nouvelles relations lorsque vous utilisez des tables de validation et que ces
relations ont les mêmes types de caractéristiques que tous les autres types de
relations dans la base de données.
Questions de révision
1. Qu'est-ce qu'une règle d'entreprise?
2. Nommez les deux principaux types de règles commerciales.
3. Pouvez-vous établir des règles commerciales orientées vers
l'application dans la conception logique de la base de données?
4. Quelles sont les deux catégories de règles commerciales axées sur la base
de données ?
5. Qu'est-ce qu'une règle commerciale spécifique au terrain?
6. Quand une règle d'entreprise est-elle testée?
7. Comment documentez-vous une règle commerciale?
8. Énoncez deux avantages que la feuille de spécifications de règles
commerciales fournit.
9. Quel est le but de la section des mesures prises d'une feuille de
spécifications de règles commerciales?
10. Quel est le but d'un tableau de validation?
11. Quelle est la structure typique d'un tableau de validation?
12. Quelle est l'association entre une règle d'entreprise et un tableau de
tvalidation?
a
b
13.
l Pourquoi devriez-vous consulter toutes vos feuilles de spécifications de
e
règles commerciales terminées?
d
re
dqP
ouaes
serc
uahm
a
em
èrt
itc
èrh
re
es
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
11. Règles commerciales
12. Vues
13. Examen de l'intégrité des données
2h 39min restant
12
Vues
Il n’existe aucun objet sur Terre qui ne puisse être observé d’un point de vue
cosmique.
—F YODOR MIKHAYLOVITCH D OSTOYEVSKY _
Sujets abordés dans ce chapitre
Que sont les vues ?
Anatomie d'une vue
Détermination et définition des vues
Exemple : détermination et définition de vues
Résumé
Questions de révision
Que sont les vues ?
Comme vous l'avez appris au chapitre 3 , « Terminologie », une vue est
une table virtuelle composée de champs provenant d'une ou plusieurs tables
de la base de données ; il peut également inclure des champs provenant
d'autres vues. Les tables qui composent une vue donnée sont appelées tables
de base de la vue. Une vue est « virtuelle » car elle extrait des données de
tables de base plutôt que de stocker des données seules. En fait, la seule
information sur une vue stockée dans la base de données est sa structure ; le
SGBDR reconstruit et « repeuple » la vue chaque fois que vous y accédez d'une
manière ou d'une autre. De nombreux programmes SGBDR majeurs prennent
en charge les vues et les appellent requêtes enregistrées. Votre programme
SGBDR spécifique déterminera si vous faites référence à cet objet en tant que
requête ou vue.
Note
Bien que tous les principaux fournisseurs de bases de données prennent en
charge la vue que je viens de décrire, plusieurs fournisseurs prennent en
charge ce que l'on appelle une vue indexée (ou matérialisée ). Une vue
indexée est différente d'une vue standard dans la mesure où elle stocke des
données et ses champs peuvent être indexés pour améliorer la vitesse à
laquelle le SGBDR traite les données de la vue. Une discussion complète sur les
vues indexées dépasse le cadre de ce livre car il s'agit d'un problème
d'implémentation spécifique au fournisseur. Cependant, vous devriez
approfondir vos recherches sur ce sujet si vous travaillez avec un programme
SGBDR client/serveur ou mainframe.
Les vues vous permettent de voir les informations de votre base de données
sous de nombreux aspects différents, vous offrant ainsi une grande flexibilité
lorsque vous travaillez avec vos données. Vous pouvez créer des vues de
différentes manières, et elles sont particulièrement utiles lorsque vous les
basez sur plusieurs tables liées.
Il existe plusieurs raisons pour lesquelles vous devez définir et utiliser des vues
dans votre base de données :
• Vous pouvez les utiliser pour travailler simultanément avec les données de
plusieurs tables. Au cours du processus de conception de la base de
données, vous avez établi des relations entre différentes paires de tables
ayant des relations un-à-plusieurs ou plusieurs-à-plusieurs. (Rappelez-vous
que vous avez résolu les relations plusieurs-à-plusieurs via des tables de
liaison.) Une vue fournit le mécanisme qui vous permet de travailler
simultanément avec les données de deux ou plusieurs tables liées.
• Ils reflètent les informations les plus récentes. Étant donné que le SGBDR
reconstruit et remplit à nouveau la vue à chaque fois que vous y accédez,
les informations affichées par la vue présentent les modifications les plus
récentes apportées aux données dans ses tables de base.
• Vous pouvez les personnaliser selon les besoins spécifiques d'un individu ou
d'un groupe d'individus. Vous pouvez créer une vue adaptée à n'importe
quel ensemble d'exigences, par exemple fournir les données d'un rapport
particulier ou fournir un moyen d'examiner des informations spécifiques
communes à plusieurs services d'une organisation.
• Vous pouvez les utiliser pour aider à appliquer l'intégrité des données. Vous
pouvez définir une vue de validation qui fonctionne de la même manière
qu'une table de validation - son objectif est de fournir une plage de valeurs
valide pour un champ donné dans la base de données.
• Vous pouvez les utiliser à des fins de sécurité ou de confidentialité. Vous
pouvez déterminer quelles données sont disponibles pour un utilisateur ou
un groupe d'utilisateurs particulier en définissant une vue sur des champs
sélectionnés à partir des tables de base de la vue.
Définissez vos vues avec soin et habileté, et elles deviendront un atout
précieux une fois que vous aurez implémenté la base de données dans votre
SGBDR.
Anatomie d'une vue
Vous pouvez définir trois types de vues ( données, agrégat et validation )
lorsque vous concevez la structure logique de la base de données et deux
types de vues ( matérialisée et partitionnée ) lorsque vous implémentez votre
base de données dans un SGBDR. La capacité à définir ces deux derniers types
de vues et la manière dont vous le faites dépendent fortement de votre SGBDR
et dépassent donc le cadre de ce livre. Nous concentrerons donc notre
attention sur les trois premiers types de vues.
Affichage des données
Vous utilisez ce type de vue pour examiner et manipuler les données d'une
seule table de base ou de plusieurs tables de base.
Vue de données à table unique
Bien que vous puissiez utiliser tous les champs de la table de base pour créer
ce type de vue, vous utiliserez généralement uniquement les champs
sélectionnés. (Créer une vue utilisant tous les champs de la table de base
produirait simplement une copie virtuelle de la table de base.) Par exemple,
supposons que vous souhaitiez créer une liste de noms et de numéros de
téléphone d'employés accessibles à tous les membres de l'organisation. Vous
pouvez créer une vue LISTE TÉLÉPHONIQUE DES EMPLOYÉS basée sur la table
EMPLOYEES en utilisant uniquement les champs E MPLOYEE ID ,E MP FIRST N AME ,
E MP L AST N AME et E MP T HONE N UMBER . La figure 12.1 montre un diagramme de
cette vue particulière. (Notez le nouveau symbole utilisé pour indiquer une
vue.)
Figure 12.1 La vue LISTE TÉLÉPHONIQUE DES EMPLOYÉS.
Votre SGBDR reconstruira et remplira à nouveau la vue LISTE TÉLÉPHONIQUE
DES EMPLOYÉS à chaque fois que vous y accéderez, et la vue reflétera les
dernières modifications que vous avez apportées aux données de la table
EMPLOYEES. La figure 12.2 montre comment un SGBDR affiche généralement
les données dans une vue.Notez que l’apparence de la vue est assez similaire à
celle d’un tableau ; c'est encore une autre raison pour laquelle une vue est
connue sous le nom de « table virtuelle ».
Figure 12.2 Informations de la vue LISTE TÉLÉPHONIQUE DES EMPLOYÉS.
Vous pouvez modifier les données dans une vue de données à table unique à
tout moment, et les modifications que vous apportez seront transmises à
travers la vue et dans la table de base. Gardez toutefois à l’esprit que les
spécifications des champs et les règles métier détermineront les types de
modifications que vous pourrez apporter aux données. Par exemple, vous ne
pourrez pas supprimer un nom de famille dans la vue LISTE TÉLÉPHONIQUE
DES EMPLOYÉS si l'élément Prise en charge des valeurs nulles de la
spécification du champ E MP L AST N AME est défini sur « Aucune valeur nulle ».
Note
La mise en œuvre de View varie dans une certaine mesure selon la plupart des
logiciels SGBDR. Assurez-vous d'examiner la documentation de votre SGBDR
pour déterminer dans quelle mesure le SGBDR prend en charge les vues et
quels types de contraintes il impose (le cas échéant) lors de la modification des
données dans une vue.
Affichage des données multitables
Comme je l'ai mentionné au début de cette section, vous pouvez définir une
vue de données à l'aide de deux tables ou plus. La seule exigence est que les
tables que vous utilisez pour créer la vue doivent entretenir une relation les
unes avec les autres ; cela permet de garantir que les informations présentées
par la vue sont à la fois valides et significatives. Par exemple, supposons que
vous conceviez une base de données pour uncollège communautaire local et
que les tableaux de la figure 12.3 font partie de la base de données. Vous
venez de décider que vous devez créer une vue appelée CLASS ROSTER qui
affiche le nom de chaque classe et les noms des étudiants actuellement
inscrits pour y assister. Ce sera une tâche facile à réaliser car vous pouvez
utiliser les trois tableaux comme base de la vue ; ils contiennent les champs
dont vous avez besoin pour définir la vue et ils entretiennent une relation les
uns avec les autres.
Figure 12.3 Tableaux de base pour la vue CLASS ROSTER.
Vous définissez maintenant la vue CLASS ROSTER en utilisant le champ
C LASS N AME de la table CLASSES et les champs S TUD FIRST N AME et
S TUD L AST N AME de la table STUDENTS. Les noms d'élèves appropriés
apparaîtront pour chaque classe car les CLASSES et les ÉTUDIANTS sont liés (et
donc connectés) via la table de liaison CLASSES D'ÉTUDIANTS. La figure
12.4 montre le diagramme de la vue CLASS ROSTER. Notez qu’aucune
modification n’a été apportée aux tables de base.
Figure 12.4 Le diagramme de la vue CLASS ROSTER.
Chaque fois que vous accédez à la vue CLASS ROSTER, le SGBDR le
reconstruira et le repeuplera en utilisant les données les plus récentes des
tables de base de la vue. La figure 12.5 montre un échantillon des données de
la vue.
Figure 12.5 Un échantillon partiel de données de la vue CLASS ROSTER.
Vous pouvez modifier certaines données dans une vue de données multitable à
tout moment, et les modifications que vous apporterez seront transmises à
travers la vue et aux tables de base. Bien évidemment, vous ne pouvez pas
modifier la valeur des clés primaires que vous incorporez à partir des tables de
base. Comme dans le cas d'une vue à table unique, les spécifications des
champs et les règles métier détermineront les types de modifications que vous
pouvez apporter aux données. (Encore une fois, assurez-vous de vérifier la
documentation de votre SGBDR pour connaître toute autre contrainte qu'il
pourrait imposer à vos vues.)
Les données redondantes dans la vue CLASS ROSTER (que vous auriez dû
remarquer) sont le résultat de la fusion d'un enregistrement de la table
CLASSES avec deux ou plusieurs enregistrements de la table STUDENTS ; le
nombre de fois qu'un nom de classe particulier apparaît est égal au nombre
d'étudiants inscrits pour assister à ce cours. Cette redondance apparente est
acceptable car les données ne sont pas physiquement stockées dans la vue ; il
est plutôt extrait des tables de base de la vue, où il est stocké conformément
aux règles de conception appropriée de la base de données. Les SGBDR
affichent généralement les données des vues multitables de cette manière.
Un autre point à noter est qu'une vue de données ne contient pas sa propre clé
primaire. Il lui manque une clé primaire car ce n’est pas une table ; une vraie
table stocke les données et nécessite une clé primaire pour servir d'identifiant
unique pour chacun de ses enregistrements. Vous pouvez incorporer une clé
primaire de n'importe laquelle (ou de toutes) des tables de base dans la vue,
cependant, lorsque vous déterminez qu'elle contribuera aux informations
fournies par la vue.
Note
Pour éviter toute ambiguïté ou confusion inutile, assurez-vous de ne pas avoir
d'indicateurs clés primaires dans le symbole de vue lorsque vous schématisez
une vue de données .
Vue globale
Vous utilisez ce type de vue pour afficher des informations produites en
agrégeant un ensemble particulier de données d'une manière
spécifique. Comme pour une vue de données,vous pouvez définir une vue
agrégée à l'aide d'une ou plusieurs tables de base. Vous pouvez ensuite inclure
un ou plusieurs champs calculés qui intègrent les fonctions qui agrègent les
données et un ou plusieurs champs de données (tirés des tables de base de la
vue) pour regrouper les données agrégées. Somme, Moyenne (moyenne
arithmétique), Minimum, Maximum et Nombre sont les fonctions d'agrégation
les plus courantes que vous pouvez appliquer à un ensemble de données, et
tous les principaux SGBDR les prennent en charge.
Supposons que vous vouliez savoir combien d'élèves sont inscrits dans chaque
classe et que vous utilisiez les tableaux de l'exemple d'école présenté dans la
figure 12.3 . Votre première impulsion est de définir une vue de données
appelée CLASS REGISTRATION qui fournira les informations dont vous avez
besoin pour répondre à votre question. Ainsi, vous utilisez le champ
C LASS N AME de la table CLASSES et le champ S TUDENT ID de la table STUDENT
CLASSES pour créer la vue. La figure 12.6 montre un diagramme pour la
nouvelle vue ENREGISTREMENT DE CLASSE.
Figure 12.6 Diagramme de vue pour la nouvelle vue INSCRIPTION DE CLASSE.
Vous accédez maintenant à la vue afin de pouvoir répondre à votre
question. La figure 12.7 montre un échantillon partiel des données dans la vue.
Figure 12.7 Un échantillon partiel de données de la vue CLASS
REGISTRATION.
Pour répondre à votre question, vous devez maintenant compter chaque
instance d'un nom de classe donné afin de pouvoir déterminer combien
d'élèves sont inscrits dans cette classe. Imaginez le travail qui vous attend : ce
ne sera pas une tâche facile ! Plutôt que de faire tout ce travail fastidieux, vous
pouvez répondre à votre question assez facilement (et plus efficacement) en
utilisant une vue globale.
Il n'est pas nécessaire de définir une nouvelle vue car vous pouvez modifier
celle que vous avez actuellement. Supprimez le champ ID ÉTUDIANT de la vue et
remplacez-le par un champ calculé appelé T OTAL ÉTUDIANTS INSCRITS qui compte le
nombre d' élèves par classe. (Lorsque vous travaillez avec un champ calculé,
assurez-vous de lui donner un nom significatif et qui le distinguera des autres
champs calculés dans la vue.) Le champ calculé utilisera une fonction Count
pour compter le nombre d' ID D' ÉTUDIANT . S dans la table STUDENT CLASSES qui
sont associés à chaque ID C LASS dans la table STUDENT CLASSES. (Plus tard,
vous apprendrez à documenter un(voir et enregistrer l'expression que le champ
calculé utilisera.) La figure 12.8 montre le diagramme révisé pour la vue
INSCRIPTION DE CLASSE.
Figure 12.8 Diagramme révisé pour la vue INSCRIPTION DE CLASSE.
Comme ce fut le cas pour la vue des données, le SGBDR reconstruira et
remplira à nouveau la vue CLASS REGISTRATION à chaque fois que vous y
accéderez, en utilisant les données les plus récentes des tables de base de la
vue. La figure 12.9 montre un échantillon des données de la vue.
Figure 12.9 Un échantillon de données de la vue révisée ENREGISTREMENT
DE CLASSE.
Il y a trois choses à noter à propos de ce point de vue :
1. Le champ T OTAL DES ÉTUDIANTS INSCRITS affiche un nombre unique pour
chaque nom de classe, qui représente le nombre total d'étudiants inscrits
dans cette classe .
2. La redondance dans le champ C LASS N AME a été éliminée ; toutes les
instances d'un nom de classe donné ont été regroupées en une seule
instance. En conséquence, C LASS N AME est désormais un champ de
regroupement et ses valeurs ne peuvent en aucun cas être modifiées.
Note
Tous les champs de données d'une vue agrégée sont des champs de
regroupement.
3. Étant donné qu’une vue agrégée est entièrement composée de champs de
regroupement et de champs calculés, vous ne pouvez modifier aucune de
ses données.
Une vue globale est particulièrement utile comme base d'un rapport ou comme
moyen de fournir divers types d'informations statistiques. Vous apprendrez plus
tard que vous pouvez appliquer des critères de filtrage à cette vue (ou à toute
autre) pour contrôler et restreindre les données affichées par la vue.
Vue de validation
Une vue de validation est similaire à un tableau de validation en ce qu'il peut
aider à implémenter l'intégrité des données. Lorsqu'une règle métier limite la
plage de valeurs d'un champ particulier, vous pouvez appliquer la contrainte
aussi facilement avec une vue de validation qu'avec une table de validation. La
différence entre les deux réside dans leur construction : une table de validation
stocke ses propres données, tandis qu'une vue de validation extrait les
données de sa base.les tables. Bien que vous puissiez définir une vue de
validation à l'aide d'une ou plusieurs tables de base, vous définirez
généralement une table de validation à l'aide d'une seule table de base et
incorporerez uniquement deux ou trois champs de la table de base. (Cette
structure est assez similaire à celle d'une table de validation.)
Par exemple, disons que vous concevez une base de données pour un petit
entrepreneur et que vous travaillez avec les tableaux de la figure 12.10 .
Figure 12.10 Tableaux d'une base de données pour un petit entrepreneur.
Comme vous pouvez le voir, le champ d'ID S UBContractor dans le tableau des
sous-traitants fournit la plage de valeurs pour le champ d'ID S ubContractor dans
le tableau des sous-traitants du projet. (Rappelez-vous qu'une clé étrangère
tire ses valeurs de la clé primaire à laquelle elle fait référence.) Vous avez
toutefois décidé de restreindre l'accès des utilisateurs à certains champs de la
table SOUS-TRAITANTS ; vous avez décidé que les seuls champs auxquels les
utilisateurs devraient pouvoir accéder sont les champs ID SOUS- TRAITANT ,
SCN AME , SCP HONE NUMBER et S CEMAIL . Ainsi, vous définissez une vue de
validation appelée sous-traitants approuvés qui incorporera ces champs et
fourniront toujours la plage de valeurs pour le champ d'ID S ubContractor dans le
tableau des sous-traitants du projet. La figure 12.11 montre un diagramme
révisé des tables, y compris la nouvelle vue.
Figure 12.11 Diagramme de table révisé; Notez la nouvelle vue de sous-
traitants approuvée.
La vue SOUS-TRAITANTS APPROUVÉS permet désormais aux utilisateurs
d'accéder uniquement aux champs que vous avez indiqués et fournit la plage
de valeurs appropriée pour le champ ID SOUS- TRAITANT dans la table SOUS-
TRAITANTS DU PROJET. De plus, la vue appliquera toujours les caractéristiques
de relation qui existent pour la table SOUS-TRAITANTS car il s'agit (comme vous
vous en souviendrez) de la table de base de la vue.
Détermination et définition des vues
Vous avez probablement déjà réalisé que les vues peuvent constituer un atout
considérable pour la base de données. Au cours de cette étape du processus
de conception de la base de données, vous définissez un ensemble
fondamental de vues pour la base de données. Votre définition des vues ne
s'arrêtera pas là ; Vous définissez probablement plus de vues lorsque vous
implémenterez la base de données au sein de vos SGBDR et que vous créez
vos programmes d'application de l'utilisateur final. Dans ces cas, vous utiliserez
les vues comme un outil pour prendre en charge des aspects particuliers du
programme d'implémentation ou d'application. Cependant, les vues que vous
définissez pendant le processus de conception de la base de données se
concentreront strictement sur l'accès aux données et les problèmes de
récupération des informations.
Travailler avec les utilisateurs et la gestion
Vous travaillerez à nouveau avec le groupe représentatif d'utilisateurs et de
direction de l'organisation pour identifier les types de vues dont l'organisation a
besoin. Après avoir identifié ces points de vue, vous les établirez et les
documenterez, puis vous et le groupe examinerez les points de vue pour vous
assurer qu'ils sont correctement définis.
Avant de mener votre première réunion avec le groupe, passez en revue les
notes que vous avez prises tout au long du processus de conception. Votre
objectif est d’avoir une idée des types de vues dont l’organisation pourrait
avoir besoin. Presque toutes les organisations consacrent beaucoup de temps à
produire et à lire des rapports. Vous devez donc vous concentrer sur cet aspect
de vos notes. Vous devez également examiner les échantillons de rapport que
vous avez rassemblés au cours du processus d'analyse.
Lorsque vous et le groupe vous rencontrez, tenez compte des points suivants
pour vous aider à identifier les exigences en matière de vue.
• Passez en revue vos notes avec le groupe. Dans de nombreux cas, parler
d'un sujet spécifique suscitera une idée pour une vue nouvelle ou
requise. Par exemple, quelqu'un peut réaliser un besoin de vue lors d'une
discussion sur les objectifs de la mission.
• Passez en revue les exemples de saisie de données, de rapports et de
présentations que vous avez rassemblés au cours des premières étapes du
processus de conception. L’examen de ces échantillons, en particulier des
rapports de type résumé, pourrait facilement mettre en lumière la nécessité
de certains types de points de vue.
• Examinez les tableaux et les sujets qu’ils représentent. Certaines personnes
du groupe peuvent identifier le besoin d’un point de vue basé uniquement
sur un sujet spécifique. Si quelqu'un mentionne un sujet, tel que les
employés, quelqu'un d'autre peut dire : « Nous avons absolument besoin
d'une vue qui restreint certaines données des employés pour des raisons de
confidentialité. »
• Analysez les relations entre les tables. Vous allez très probablement
identifier un certain nombre de vues multiples que vous devriez créer pour
de nombreuses relations. Plusieurs de ces vues coïncidront avec les vues
que vous avez identifiées pour les échantillons de rapport.
• Étudiez les règles commerciales. Comme vous le savez déjà, vous pouvez
utiliser une vue de validation pour appliquer une règle imposant une
contrainte sur la plage de valeurs d'un champ particulier.
Vous et le groupe devriez être en mesure d’identifier un certain nombre de
points de vue en parcourant les éléments de cette liste. Après avoir identifié
autant de vues requises que possible, votre tâche suivante consiste à les
définir.
Définir des vues
Vous allez maintenant définir chaque vue que vous avez identifiée à l'aide des
tables et des champs appropriés. Examinez les diagrammes de relations pour
identifier les tables et les champs dont vous avez besoin pour la structure de la
vue. Lorsque vous avez déterminé ce dont vous avez besoin, définissez la vue
et enregistrez-la dans un diagramme de vue.
Par exemple, supposons que vous ayez déterminé que vous pouvez utiliser une
vue pour le rapport présenté dans la figure 12.12 ; le nom de la nouvelle vue
sera LISTE D'APPELS CLIENTS.
Figure 12.12 Exemple de rapport nécessitant une vue.
Les notes que vous avez prises tout au long du processus de conception
redeviennent utiles. Vous avez examiné ce rapport au cours de la phase
d'analyse du processus de conception et vous avez noté que ce rapport
représente des informations sur les clients et leurs commandes ; c'est à partir
des données de commande que vous pouvez déterminer quand un client donné
a effectué son dernier achat. Maintenant, examinez le diagramme de relation
pour les tables CUSTOMERS et ORDERS ; vous utiliserez les champs de ces
tables pour créer la vue LISTE D'APPELS CLIENTS. La figure 12.13 montre le
diagramme de relations pour ces tables.
Figure 12.13 Diagramme de relations pour les tables CLIENTS et
COMMANDES.
Après avoir examiné le diagramme de relations, vous déterminez que vous
devez utiliser cinq champs pour créer cette vue : C UST F IRST N AME ,
C UST L AST N AME ,NUMÉRO DE TÉLÉPHONE DU CLIENT et VILLE DU DÉTAIL dans la table
CLIENTS et DATE DE LA COMMANDE dans la table COMMANDES . Vous définissez
maintenant la vue LISTE D'APPELS CLIENTS en affectant les champs à la vue,
puis en les enregistrant dans un diagramme de vue. Lorsque vous avez
terminé, votre diagramme devrait ressembler à celui de la figure 12.14 .
Figure 12.14 Diagramme de vue pour la vue LISTE D'APPELS CLIENT.
Utilisation des champs calculés le cas échéant
Plus tôt dans le processus de conception de la base de données, vous avez
appris que les tables ne pouvaient pas contenir de champs calculés pour
plusieurs bonnes raisons. Mais l’une des caractéristiques d’une vue qui la rend
si utile est qu’elle peut contenir des champs calculés. Rappelez-vous que les
champs calculés afficheront le résultat deune fonction de concaténation,
d'expression ou d'agrégation ; cela en fait une structure extrêmement flexible à
inclure dans une vue.
Par exemple, considérons la nouvelle vue LISTE D'APPELS CLIENTS. Bien que
vous disposiez des champs dont vous avez besoin pour la vue, vous devrez
apporter une modification mineure à la vue afin qu'elle puisse afficher les
données appropriées. L'une des exigences de cette vue est qu'elle doit afficher
la date du dernier achat effectué par chaque client. Pour récupérer et afficher
la date appropriée, vous devrez ajouter un champ calculé à la vue. Ce champ
utilisera la fonction Maximum [communément appelée Max()] pour récupérer la
date correcte du champ O RDER D ATE . Nommez le nouveau
champ DATE DU DERNIER ACHAT et ajoutez-le au diagramme de vue LISTE
D'APPELS CLIENT . (Vous n'avez plus besoin du champ O RDER D ATE dans la vue,
vous pouvez donc le supprimer de la structure de la vue.) C'est l'expression
que vous utiliserez dans le champ calculé pour récupérer la date appropriée :
Max (Date de commande)
Plus loin dans cette section, vous apprendrez où et comment enregistrer cette
expression.
Note
Assurez-vous de vous référer à la documentation de votre RDMBS pour
déterminer la syntaxe correcte pour cette fonction et toutes les autres
fonctions utilisées dans ce chapitre.
Un autre champ calculé que vous pouvez inclure dans cette vue est celui qui affiche le nom
complet du client en concaténant C UST FIRST N AME et C UST L AST N AME . Dites,
par exemple, que vous souhaitez afficher le nom du client de cette manière:
"Hernandez, Michael." Créez un champ calculé appelé C ustomer n AME et utilisez
l'expression de concaténation suivante:
Nom de famille & ", " & Prénom du client
Ajoutez le nouveau champ calculé au diagramme de vue de la liste des appels
clients et supprimez les champs C ust f irst n ame et c ust l ast n ame de la
vue; Vous n'avez plus besoin de ces champs parce que vous utilisez
maintenant le champ calculé C ustomer n AME . (Vous enregistrerez bientôt
également correctement cette expression.)
La figure 12.15 montre à quoi devrait ressembler votre diagramme de vue
révisé une fois ces modifications terminées.
Figure 12.15 Diagramme de vue révisé pour la LISTE D'APPELS CLIENTS.
Comme vous venez de l'apprendre, un champ calculé peut être tout à fait un
atout car vous pouvez l'utiliser pour améliorer les informations fournies par une
vue. Vous avez également appris plus tôt dans ce chapitre que les champs
calculés sont particulièrementcrucial dans les vues agrégées. Une bonne règle
générale à suivre lorsque vous pensez que vous pourriez avoir besoin de
champs calculés est de les utiliser s'ils fournissent des informations pertinentes
et significatives ou s'ils améliorent la manière dont la vue utilise ses données.
Si vous vous en souvenez, vous avez créé une liste de champs calculés plus tôt
dans le processus de conception (reportez-vous au Chapitre 6 , « Analyse de la
base de données actuelle »). Vous pouvez désormais utiliser cette liste comme
source de champs calculés que vous pourriez (ou devriez) utiliser dans vos
vues. Examinez la liste à mesure que vous définissez chaque nouvelle vue et
déterminez si vous pouvez utiliser l'un des champs calculés de la liste. Lorsque
vous en trouvez un que vous pouvez utiliser, créez-le de la même manière que
dans les exemples précédents. (Si vous créez un nouveau champ calculé qui
n'apparaît pas dans votre liste, assurez-vous toutefois de l'ajouter à la liste.
Cela vous aidera à maintenir votre liste de champs calculés à jour et en ordre.)
Imposer des critères pour filtrer les données
Les vues ont une autre caractéristique qui les rend extrêmement utiles : vous
pouvez imposer des critères à un ou plusieurs champs de la vue pour filtrer les
enregistrements qu'elle affiche. Par exemple, supposons que la vue CUSTOMER
CALL LIST inclue le champ C UST S TATE . Même si la vue continue d'afficher
l'ensemble d'enregistrements qu'elle affichait auparavant, vous verrez
également l'état dans lequel vit chaque client. Supposons toutefois que vous
souhaitiez que la vue affiche un ensemble particulier d’enregistrements, tels
que ceux des clients résidant à Washington. Vous pouvez y parvenir en
définissant un critère spécifique dans le champ C UST S TATE qui filtrera les
données afin que la vue affiche uniquement les enregistrements des clients de
Washington.
Note
Dans le travail sur les bases de données, le mot critère fait référence à une
expression qui est testée par rapport à la valeur d'un champ particulier. La vue
inclura un enregistrement donné si la valeur du champ répond au critère.
C'est l'expression que vous utiliserez pour filtrer les enregistrements de la vue
LISTE D'APPELS CLIENT :
État client = « WA »
Désormais, la vue affichera uniquement les clients de Washington. Si vous
souhaitez filtrer davantage les enregistrements pour afficher uniquement les
clients qui vivent dans des villes spécifiques, vous ajoutez un critère tel que
celui-ci :
CustCity In (« Bellevue », « Olympia », « Redmond », « Seattle », « Spokane »,
« Tacoma »)
La vue affichera désormais les clients de Washington qui vivent dans les villes
spécifiées dans l'expression. Vous vous demandez peut-être pourquoi les deux
critères sont nécessaires : le critère du champ C UST C ITY devrait récupérer lui-
même les enregistrements appropriés. Le problème est que de nombreuses
villes portent le nom d’autres villes, de sorte que des villes situées dans deux
ou trois États différents peuvent porter le même nom. Par exemple, il existe un
Portland, dans l'Oregon, et un Portland, dans le Maine, tous deux nommés
d'après Portland, en Angleterre. Le point à retenir est que vous devez faire
preuve de jugement lorsque vous établissez des critères pour une vue. Utilisez
le nombre minimum de critères qui permettront à la vue d'afficher les
enregistrements dont vous avez besoin.
Lorsque vous utilisez un critère dans une vue, vous devez vous assurer que le
champ que vous testez dans le critère est inclus dans la structure de la vue. Si
vous n'incluez pas le champ dans la vue, vous n'avez aucun moyen d'imposer
le critère. C'est un point important à retenir car c'est une exigence lorsque
vous définissez logiquement une vue et lorsque vous implémentez la vue dans
votre SGBDR.
Le seul problème lié à l’application d’un filtre à une vue est qu’il n’existe aucun
moyen de l’indiquer sur un diagramme de vue ; par conséquent, vous devez
l'enregistrer sur une feuille Afficher les spécifications .
Utilisation d'une feuille de spécifications de vue pour enregistrer la vue
Une feuille de spécifications de vue doit accompagner chaque diagramme de
vue que vous créez. Vous noterez les caractéristiques de la vue sur cette
feuille. La feuille Afficher les spécifications contient les éléments suivants :
• Nom : C'est ici que vous indiquez le nom de la vue. Cependant, avant
d'enregistrer le nom, testez-le par rapport aux instructions de création de
noms de table que vous avez apprises au chapitre 7 , « Établir des
structures de table ». Ces directives régissent également la dénomination
des vues, à une exception près : le nom d'une vue peut identifier
implicitement ou explicitement plusieurs sujets. En effet, vous pouvez
définir des vues à partir de deux ou plusieurs tables de base, elles
représentent donc effectivement plus d'un sujet.
• Type : c'est ici que vous indiquez si vous définissez une vue de données,
d'agrégation ou de validation. Assurez-vous de sélectionner le type qui
définit le mieux l’objectif spécifique de la vue.
• Tables de base : c'est ici que vous spécifiez les noms des tables de base de
la vue. Bien que le diagramme de vue montre ces tableaux, ils apparaissent
ici par souci de commodité. Toutefois, la feuille Spécifications de la vue
n'inclut pas les noms de champs, car vous pouvez les enregistrer et les
afficher plus facilement et plus efficacement sur le diagramme de vue.
• Expressions de champs calculés : c'est ici que vous enregistrez les
expressions des champs calculés que vous avez inclus dans la vue. Pendant
que vous enregistrez le nom du champ calculé, testez-le par rapport aux
directives de création de noms de champ que vous avez apprises
au chapitre 7 . Les noms de champs calculés sont régis par ces directives à
deux exceptions près : vous pouvez identifier implicitement ou
explicitement plusieurs caractéristiques dans un nom et vous pouvez utiliser
la forme plurielle du nom. Cependant, il est toujours souhaitable d’utiliser le
singulier du nom autant que possible.
• Filtres : C'est ici que vous enregistrez les critères que la vue utilisera pour
filtrer les enregistrements qu'elle affiche. Vous enregistrerez à la fois le
champ testé et l’expression utilisée pour le tester.
Note
Lorsque vous remplissez les sections Expressions de champs calculés et Filtres
d'une feuille Spécifications de vue, utilisez les expressions avec lesquelles vous
êtes le plus familier. Vous les modifierez si nécessaire lorsque vous
implémenterez la base de données dans un SGBDR.
Remplissez une feuille de spécifications de vue pour chaque vue que vous
créez et joignez la feuille au diagramme de vue approprié. Ces deux éléments
serviront à documenter pleinement la vue. La figure 12.16 montre une feuille
de spécifications de vue complétée pour la vue LISTE D'APPELS CLIENT. (Gardez
à l'esprit que la vue a été mise à jour pour inclure le champ C UST S TATE .)
Figure 12.16 Feuille de spécifications de la vue complétée pour la vue LISTE
D'APPELS CLIENTS.
Révision de la documentation pour chaque vue
Une fois que vous avez terminé la tâche de définition et de documentation de
chaque vue, examinez à nouveau toutes vos vues, en vous assurant que la
qualité des informations fournies par chaque vue en vaut la peine. Lorsque
vous examinez chaque vue, gardez les points suivants à l’esprit.
• Assurez-vous que vous avez correctement défini la vue. Pensez aux
informations que la vue devrait fournir. Établissez-vous le type de vue
correct pour les informations requises ? Avez-vous utilisé les tables de base
appropriées pour définir la vue ? Avez-vous inclus tous les champs
nécessaires dans la structure de la vue ? Seuls les champs nécessaires sont-
ils inclus dans la structure de la vue ?
• Assurez-vous que les champs calculés que vous avez créés conviennent à la
vue. Fournissent-ils des informations pertinentes et significatives ? Est-ce
qu'ils servent à améliorer la manière dont la vue affiche ses données ?
• Assurez-vous que les filtres récupéreront les enregistrements requis. Tout
d’abord, avez-vous besoin d’un filtre pour cette vue ? Si la réponse est
« oui », savez-vous exactement quels enregistrements vous souhaitez que la
vue affiche ? Pensez-vous que le filtre fonctionnera correctement ?
• Surtout, assurez-vous de disposer d'un diagramme de vue et d'une feuille
de spécifications de vue pour chaque vue. Cette documentation vous sera
très utile lorsque vous implémenterez enfin la base de données dans un
SGBDR.
EXEMPLE : DÉTERMINATION ET DÉFINITION DE VUES
Votre travail sur la base de données de Mike touche enfin à sa fin. Vous
rencontrez Mike et son équipe pour déterminer s'il est nécessaire d'établir des
vues pour la base de données. L'ordre du jour que vous avez établi pour la
réunion comprend les étapes suivantes.
1. Passez en revue les notes que vous avez compilées pendant le processus de
conception.
2. Passez en revue chacun des différents échantillons que vous avez
rassemblés au cours des premières étapes du processus de conception.
3. Examinez les sujets représentés par les tableaux de la base de données.
4. Analysez les relations entre les tables.
5. Réviser et étudier les règles métier.
Au fur et à mesure que la réunion progresse, vous identifiez plusieurs vues que
vous devez définir, notamment une vue CLIENTS PRIVILÉGIÉS et une vue
COMPTE DE PRODUITS VENDEURS. La première vue fournira le nom et le
numéro de téléphone de chaque client ayant le statut « Préféré », et la
deuxième vue fournira des informations sur le nombre total de produits
différents fournis par chaque fournisseur.
Vous basez la vue PREFERRED CUSTOMERS sur la table CUSTOMERS et utilisez
les champs C USTOMER ID, CUST
FIRST N AME , CUST L AST NAME , CUST H OME T HONE et S TATUS pour la structure de l
a vue. Avant toiconstruisez la vue, cependant, Mike demande s'il existe un
moyen d'afficher le prénom et le nom ensemble. Vous répondez que cela peut
être fait, vous créez donc un champ calculé appelé C USTOMER N AME qui
concatène les deux champs ensemble ; ce champ remplacera désormais les
champs C UST FIRST N AME et C UST L AST N AME . La figure 12.17 montre le
diagramme de vue pour la vue CLIENTS PRIVILÉGIÉS.
Figure 12.17 Diagramme de vue pour la vue CLIENTS PRIVILÉGIÉS.
Après avoir créé le diagramme de vue, vous notez l'expression que vous
utiliserez pour filtrer les données de la vue :
Statut = « Préféré »
Ensuite, vous remplissez une feuille de spécifications de vue pour la vue
CLIENTS PRIVILÉGIÉS. La figure 12.18 montre les résultats de votre travail.
Figure 12.18 La feuille Spécifications de la vue pour la vue CLIENTS
PRIVILÉGIÉS.
Vous définissez maintenant la vue VENDOR PRODUCT COUNT en utilisant les
tables VENDORS et PRODUCTS comme tables de base de la vue. Vous utilisez
le champ V ENDOR N AME de la table VENDORS pour afficher les noms des
fournisseurs. Ensuite, vous créez un champ calculé appelé P RODUCT C OUNT pour
afficher le nombre total de produits fournis par chaque fournisseur. Voici
l'expression utilisée par le champ pour calculer le total :
Nombre(NomProd)
Créez maintenant un diagramme pour la vue, comme le montre la figure
12.19 .
Figure 12.19 Diagramme de vue pour la vue VENDOR PRODUCT COUNT.
Après avoir déterminé qu'un filtre n'est pas nécessaire pour cette vue, vous
terminez de documenter la vue en remplissant la feuille Spécifications de la
vue illustrée dans la Figure 12.20 .
Figure 12.20 Afficher la feuille de spécifications pour la vue VENDOR
PRODUCT COUNT.
Vous répétez ensuite ce processus pour chaque vue que vous avez identifiée
pour la base de données de Mike.
Résumé
Nous avons commencé ce chapitre par une définition d'une vue et vous avez
appris qu'il s'agit d'une table virtuelle qui ne contient ni ne stocke de
données. Les vues sont utiles pour plusieurs raisons : elles vous permettent de
travailler avec des données provenant de plusieurs tables, elles contribuent à
renforcer l'intégrité des données et à préserver la sécurité ou la confidentialité
des données.
Nous avons ensuite discuté des trois types de vues : données,
agrégation et validation. Vous avez appris que chaque type de vue peut être
basé sur une ou plusieurs tables, d'autres vues ou une combinaison des
deux. Votre SGBDR reconstruira et remplira à nouveau une vue à chaque fois
que vous y accéderez, en utilisant les données les plus récentes des tables de
base de la vue. Comme vous le savez maintenant, il doit y avoir des relations
entre les tables dans une vue multitable (rendant ainsi les informations de la
vue valides et significatives), et les caractéristiques de ces relations sont
transmises à travers la vue. De plus, vous pouvez modifier les données
présentées par de nombreuses vues, et toutes les modifications que vous
apportez aux données sont transmises via la vue aux tables de base. Vous avez
également appris que les vues de validation fonctionnent de la même manière
que les tables de validation et qu'elles présentent des avantages distincts par
rapport aux tables de validation. Par exemple, les vues de validation peuvent
incorporer des données provenant de plusieurs tables.
Le chapitre s'est ensuite poursuivi avec une discussion sur la détermination et
la définition des vues pour la base de données. Ici, vous avez appris plusieurs
points spécifiques à garder à l'esprit lorsque vous travaillez avec les utilisateurs
et la direction pour identifier les exigences d'affichage de l'organisation. Nous
avons ensuite expliqué comment définir une vue et vous avez appris à créer
un diagramme de vue pour documenter la vue. Vous savez maintenant
comment sélectionner des champs dans les tables de base et les affecter à la
vue.
Nous avons ensuite expliqué comment utiliser les champs calculés dans une
vue. Vous avez appris que vous pouviez les utiliser pour fournir des
informations pertinentes et améliorer la façon dont la vue affiche ses
données. Vous avez également appris que les champs calculés sont
particulièrement cruciaux dans les vues globales et que chaqueLe champ
calculé utilise une expression pour dériver la valeur qu'il affiche. Ensuite, vous
avez appris à appliquer un filtre à une vue afin qu'il récupérera et affiche un
ensemble spécifique d'enregistrements. La vue affichera un enregistrement
donné uniquement s'il répond aux critères que vous avez imposés à un ou
plusieurs champs dans la vue. Vous encadrez chaque critère comme une
expression et l'utilisez pour tester la valeur d'un champ particulier.
Le chapitre a clôturé avec une discussion sur la feuille de spécifications de la
vue. Ici, vous avez appris à documenter les caractéristiques de la vue, telles
que son nom et son type. Vous avez également découvert les éléments qui
composent la feuille Spécifications de la vue et comment les utiliser pour
enregistrer les caractéristiques de la vue.
Questions de révision
1. Pourquoi pouvez-vous vous référer à une vue comme une table virtuelle?
2. Énoncez deux raisons pour lesquelles les opinions sont précieuses.
3. Nommez les types de vues que vous pouvez définir lors de la conception de
la structure logique de la base de données.
4. Que fait votre RDMBS chaque fois que vous accédez à une vue de
données (ou à tout type de vue, d'ailleurs) ?
5. Qu'est-ce qui détermine le type de modifications que vous pouvez apporter
aux données d'une vue?
6. Quelle est la seule condition que vous devez remplir pour définir une vue de
données multitable ?
7. Pourquoi une vue de données ne contient-elle pas sa propre clé principale?
8. A quoi sert une vue globale ?
9. Quelles sont les fonctions d'agrégation les plus courantes que vous pouvez
appliquer à un ensemble de données ?
10. Qu'est-ce qu'un champ de regroupement ?
11. Vrai ou faux: vous pouvez modifier les données dans une vue agrégée.
12. Quelle est la différence entre une table de validation et une vue de
validation ?
13. Nommez deux points que vous prendriez en compte lors de l'identification
des exigences en matière de vue.
14. Quand faut-il utiliser les champs calculés ?
15. Comment définir une vue qui affiche uniquement des livres de science-
fiction ?
16. Pourquoi devez-vous remplir une feuille de spécifications de vue pour
chaque vue de la base de données ?
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
12. Vues
13. Examen de l'intégrité des données
Partie III : Autres problèmes de conception de bases de données
2h 30min restant
13
Examen de l'intégrité des données
Une fois l’impossible éliminé, tout ce qui reste, aussi improbable soit-il, doit
être la vérité.
—SHERLOCK H OLMES , LE SIGNE DE QUATRE __
Sujets abordés dans ce chapitre
Pourquoi devriez-vous examiner l'intégrité des données
Examen et affinement de l'intégrité des données
Assemblage de la documentation de la base de données
C'est enfin fait !
Exemple—Récapitulatif
Résumé
Vous êtes maintenant à la dernière étape du processus de conception de la
base de données. Vous avez accompli beaucoup de choses depuis que vous
avez commencé le processus. Jusqu'à présent, vous avez
• Perception des avantages du modèle de base de données relationnelle et de
sa comparaison avec d'autres modèles de bases de données
• Création d'un énoncé de mission pour une nouvelle base de données
• Objectifs de mission définis pour la nouvelle base de données
• Effectuer une analyse complète d'une ancienne base de données
• Identifier les besoins d'information de l'organisation
• Définir toutes les structures de table appropriées
• Attribué une clé primaire à chaque table
• Spécifications de terrain établies pour chaque domaine
• Relations de table établies
• Des règles métier définies et établies
• Définir toutes les vues appropriées
• Intégrité globale des données établie
À toutes fins utiles, votre nouvelle base de données est complète ; néanmoins,
il serait à votre avantage d'effectuer un dernier examen de l'intégrité globale
des données de votre base de données.
Pourquoi devriez-vous examiner l'intégrité des données
Vous vous demandez probablement pourquoi vous devriez revoir la structure
de la base de données une dernière fois, étant donné que vous avez prêté
attention à chaque détail et que vous vous êtes concentré sur l'intégrité des
données tout au long du processus de conception. La réponse est simple : vous
voulez vous assurer que l'intégrité des données que vous avez pris soin
d'établir est absolument aussi solide que possible. Comme vous le savez bien,
une faille dans l’intégrité pourrait entraîner des données incohérentes ou des
informations inexactes. Aussi improbable soit-il, il est possible que vous ayez
oublié quelque chose. La tranquillité d’esprit que vous obtenez en sachant que
vous disposez d’une base de données solidement conçue vaut bien
l’investissement de votre temps et de vos efforts lors de cet examen final.
Note
N'oubliez pas : les déchets rentrent, les déchets sortent !
Examen et affinement de l'intégrité des données
L'examen de l'intégrité des données est une tâche simple si vous adoptez une
approche modulaire ; c'est-à-dire si vous examinez séquentiellement chaque
composant de l'intégrité globale des données : intégrité au niveau de la table,
au niveau du champ et au niveau de la relation.et les règles
commerciales. Vous ne devriez rencontrer ici que très peu de problèmes si vous
avez suivi attentivement la méthode de conception présentée dans ce
livre. Les sections suivantes décrivent brièvement les points que vous devez
garder à l'esprit lors de la révision et contiennent des références aux chapitres
précédents au cas où vous rencontreriez des problèmes.
Intégrité au niveau de la table
Pour vous assurer que vous avez correctement établi l’intégrité au niveau des
tables, examinez chaque table et assurez-vous qu’elle est conforme à tous les
points suivants.
• Aucun champ en double n'existe dans le tableau.
• Aucun champ calculé n'existe dans la table.
• Aucun champ à valeurs multiples n'existe dans la table.
• Aucun champ en plusieurs parties n'existe dans la table.
• Aucun enregistrement en double n'existe dans la table.
• Chaque enregistrement de la table est identifié par une valeur de clé
primaire.
• Chaque clé primaire est conforme aux éléments d'une clé primaire.
Si vous pensez rencontrer des problèmes avec l'un de ces éléments, résolvez-
les à l'aide des techniques et des concepts abordés dans le chapitre 6 ,
« Analyse de la base de données actuelle », le chapitre 7 , « Établissement des
structures de table » et le chapitre 8 , « Clés ».
Intégrité au niveau du terrain
Vous pouvez vous assurer que vous avez correctement établi l’intégrité au
niveau du champ après avoir effectué les opérations suivantes :
• Assurez-vous que chaque champ est conforme aux éléments du champ idéal
• Assurez-vous d'avoir défini un ensemble de spécifications de champ pour
chaque champ.
Vous pouvez résoudre les problèmes d'intégrité au niveau du champ avec les
techniques décrites dans le Chapitre 9 , « Spécifications du champ ».
Intégrité au niveau des relations
Examinez chaque relation de table pour vous assurer que vous avez
correctement établi l’intégrité au niveau de la relation. Vous avez atteint ce
niveau d'intégrité lorsque vous avez accompli ces tâches :
• Bien établir la relation
• Définir les règles de suppression appropriées
• Bien identifié le type de participation pour chaque table
• Établir le degré de participation approprié pour chaque table
Si vous identifiez un problème avec une relation, utilisez les techniques
du chapitre 10 , « Relations entre tables » pour le résoudre.
Règles commerciales
Vous pouvez vous assurer que vos règles commerciales sont solides en vous
assurant que ces tâches sont terminées :
• Vous êtes sûr que chaque règle impose une contrainte significative .
• Vous avez déterminé la catégorie appropriée pour la règle.
• Vous avez correctement défini et établi chaque règle.
• Vous avez modifié les éléments de spécification de champ ou les
caractéristiques de relation de table appropriés.
• Vous avez établi les tables de validation appropriées.
• Vous avez rempli une feuille de spécifications des règles métier pour chaque
règle.
Si vous rencontrez des problèmes avec l'une de vos règles métier, reportez-
vous au Chapitre 11 , « Règles métier », pour connaître les techniques
nécessaires pour les résoudre.
Vues
Bien que les vues ne soient directement liées à aucun composant de l’intégrité
des données, vous devez néanmoins revoir toutes vos structures de
vues. Lorsque vous examinez chaque vue, assurez-vous d'avoir répondu aux
éléments suivants :
• Chaque vue est construite sur les tables de base nécessaires pour fournir les
informations requises.
• Vous avez attribué les champs appropriés à chaque vue.
• Chaque champ calculé fournit des informations pertinentes ou améliore la
manière dont la vue présente ses données.
• Chaque filtre renvoie l'ensemble d'enregistrements approprié.
• Chaque vue possède un diagramme de vue.
• Chaque diagramme de vue est accompagné d'une feuille de spécifications
de vue.
Si vous rencontrez des problèmes avec une vue, résolvez-les en utilisant les
techniques décrites dans le chapitre 12 , « Vues ».
Après avoir effectué cet examen complet, vous pouvez être sûr que la structure
de la base de données est solide, que les données contenues dans la base de
données sont cohérentes et valides et que les informations que vous extrayez
de la base de données seront exactes.
Assemblage de la documentation de la base de données
Tout au long du processus de conception de la base de données, vous avez
généré un certain nombre de listes, de fiches techniques et de diagrammes
utilisés pour enregistrer divers aspectsde la conception de la base de
données. Vous devez maintenant les rassembler dans un référentiel central, de
préférence dans un ensemble de classeurs ou dans un ensemble organisé de
dossiers et de fichiers sur un ordinateur. Le référentiel de conception doit être
composé des ensembles de documents suivants :
• Liste de la table finale
• Fiches de spécifications de terrain
• Liste des champs calculés
• Diagrammes de structure de table
• Diagrammes de relations
• Fiches de spécifications des règles métier
• Voir les diagrammes
• Voir les fiches techniques
Deux ensembles supplémentaires d'éléments que vous pouvez envisager de
conserver avec cette documentation sont les notes que vous avez compilées
pendant le processus de conception et les échantillons que vous avez collectés
pendant la phase d'analyse du processus de conception. Vous pouvez
conserver chacun de ces éléments dans une annexe distincte à la fin de la
documentation.
Tous ces éléments constituent l'ensemble complet de la documentation pour la
conception logique de la base de données. Cette documentation est vitale pour
trois raisons.
1. Il fournit un enregistrement complet de la structure de la base de
données. Vous pouvez retrouver tous les aspects de la structure logique de
la base de données dans la documentation. De plus, vous pouvez répondre
à presque toutes les questions concernant la base de données en vous
référant simplement à la documentation.
2. Il fournit un ensemble complet de spécifications et d'instructions sur la
manière dont la base de données doit être créée pendant le processus de
mise en œuvre. Cette documentation est similaire à celle d'un
architecteplans : il indique comment la base de données doit être
construite. Il identifie également l'intégrité qui doit être établie pour la base
de données. Étant donné que la conception de la base de données n'est pas
orientée vers un SGBDR particulier, les personnes qui mettent en œuvre la
base de données ont toute latitude quant à la manière dont elles
implémentent physiquement la base de données.
3. S'il semble nécessaire de modifier la structure de la base de données au
cours du processus de mise en œuvre, la documentation de conception peut
être utilisée pour déterminer les effets et les conséquences de toute
modification. Toute modification que vous apportez à la structure de la base
de données doit être le résultat d'une décision éclairée. Vous pouvez vous
assurer qu'une modification proposée n'aura pas d'effet négatif sur la
structure de la base de données en référençant d'abord la documentation.
C'est enfin fait !
Maintenant que vous avez terminé l'examen d'intégrité et rassemblé toute la
documentation de la base de données, le processus de conception logique de
la base de données est terminé. Vous pouvez être assuré que vous disposez
d’une base de données correctement conçue et que sa mise en œuvre se
déroulera sans problème. Passons au prochain client et à la prochaine
conception de base de données !
EXEMPLE : RÉCUPÉRATION
C'est votre dernière rencontre avec Mike et son équipe. Votre objectif est de
revoir une dernière fois sa base de données et son intégrité. Même si vous êtes
sûr de ne rencontrer aucun problème, vous souhaitez effectuer un dernier
contrôle qualité de la base de données.
Lors de la réunion, vous examinez chacune des structures de bases de données
pour vous assurer qu'elles sont conformes aux différents éléments qui les
régissent. Vous examinez ensuite chaque composant de l’intégrité globale des
donnéespour vous assurer que vous avez correctement établi l'intégrité au
niveau de la table, du champ et de la relation, ainsi que les règles métier. Enfin,
vous rassemblez toute la documentation que vous avez générée tout au long
du processus de conception. Après avoir rassemblé toute la documentation
dans un ensemble de classeurs, vous remettez les classeurs à Mike et déclarez
que sa base de données est désormais complète. Mike exprime ses
remerciements et sa gratitude pour un travail bien fait et promet que votre
chèque sera envoyé par la poste le 15 du mois. Vous exprimez vos
remerciements à Mike et à son équipe, dites au revoir et partez vers de
nouveaux horizons. Alors que vous partez, Mike regarde dans votre
direction ; Une dernière pensée lui vient à l’esprit :
"Maintenant, si je pouvais juste vous demander d' implémenter ma base de
données pour moi. . . .»
Résumé
Le chapitre s'ouvre sur une liste de vos réalisations depuis le début du
processus de conception de base de données. Il s'est ensuite poursuivi avec
une discussion sur les raisons pour lesquelles vous devriez examiner une
dernière fois l'intégrité globale des données. Cela a été suivi d'une brève
discussion sur les points à garder à l'esprit lorsque vous examinez chaque
composant de l'intégrité globale des données. Nous avons clôturé le chapitre
en discutant de l'importance de la documentation que vous avez rassemblée
tout au long du processus de conception.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
Partie III : Autres problèmes de conception de bases de données
14. Mauvaise conception : ce qu'il ne faut pas faire
15. Enfreindre ou enfreindre les règles
2h 12min restantes
14
Mauvaise conception : ce qu'il ne faut pas faire
Les erreurs sont toujours initiales.
—C ESARE PAVESE _
Sujets abordés dans ce chapitre
Conception de fichiers plats
Conception de feuille de calcul
Conception de base de données basée sur le logiciel de base de données
Une dernière pensée
Résumé
Vous vous êtes peut-être demandé pourquoi ce chapitre apparaît à la fin du
livre plutôt qu'au début. La raison est simple : vous pouvez comprendre les
dangers présentés par une base de données mal conçue maintenant que vous
avez appris à concevoir correctement une base de données. De plus, vous
serez en mesure de déterminer par vous-même pourquoi une conception
particulière est mauvaise : vous examinerez la conception et serez en mesure
d'identifier immédiatement les problèmes de la structure. Vous possédez
également les connaissances nécessaires pour identifier des solutions possibles
à ces problèmes.
Dans ce chapitre, vous découvrirez les trois approches de conception les plus
courantes qui conduisent à des bases de données mal structurées. Les
discussions sont brèves car elles visent uniquement à illustrer les types de
conception que vous devriez éviter. Il devrait maintenant être évident que la
manière de résoudre une base de données mal conçue consiste à la suivre à
travers le processus de conception complet que vous venez d'apprendre.
Conception « fichier plat »
La conception de fichiers plats (parfois connue sous le nom de conception
« tout mettre dans une seule grande table ») existe depuis de nombreuses
années et est courante dans les bases de données conçues pour être mises en
œuvre dans des systèmes de gestion de bases de données non
relationnelles. Une conception de fichier plat pose de nombreux problèmes,
comme vous pouvez le constater en examinant la structure de la figure 14.1 .
Figure 14.1 Un exemple de structure de fichier plat.
Ce diagramme représente la structure d'une seule table. (Imaginez comment
les autres tables de la base de données sont structurées !) Vous pouvez
facilement voir que cette structure entraînera inévitablement des problèmes de
données redondantes et incohérentes et qu'elle souffre d'un manque
d'intégrité des données. Comme vous l'avez probablement déjà remarqué,
cette structure présente quelques autres problèmes :
• Champs en plusieurs parties : S ALES R EP N AME inclut le prénom et le nom du
commercial, C USTOMER N AME inclut le prénom et le nom du client et
C USTOMER A DDRESS inclut l'adresse postale, la ville, l'état et le code postal du
client.
• Champs calculés : le champ COMMANDER UN MONTAGE contient une valeur qui
est très probablement calculée manuellement, surtout si le client
commande plus de trois articles. Les champs I TEM #E XTENSION sont
également tous susceptibles d'être calculés manuellement. La valeur d'un
champ I TEM #E XTENSION donné est le résultat de la multiplication de la
valeur d'un champ Q UANTITY # associé par la valeur d'un champ P RICE #
associé (par exemple, I TEM 3E XTENSION =Q UANTITY 3xP RIZ 3)
• Champs en double inutiles : chacun des champs relatifs à un élément
particulier est un doublon. Par exemple, les champs I TEM 1, I TEM 2 et I TEM 3
sont des champs en double inutiles.
• Aucune véritable clé primaire : aucun champ ou groupe de champs ne peut
identifier de manière unique un seul enregistrement dans cette table. Le
champ NUMÉRO DE COMMANDE n'est pas une clé primaire dans cette
table ; si un client commande plus de trois articles, vous devrez saisir un
autre enregistrement dans le tableau en utilisant le même numéro de
commande.
• Le tableau représente plusieurs sujets : ce tableau représente trois sujets :
les clients, les commandes et les articles. (Selon votre point de vue, il
représente également les commerciaux.)
Maintenant que vous connaissez les éléments d’une bonne conception de base
de données, vous êtes sûr d’éviter une telle conception.
Conception de feuille de calcul
Une feuille de calcul est certainement un excellent outil si vous l’utilisez
correctement et dans le but pour lequel elle a été conçue. Par exemple, il est
tout à fait adapté aux travaux impliquant des calculs mathématiques
complexes et des analyses statistiques. Cependant, contrairement au mythe
populaire, une feuille de calcul ne constitue pas une bonne base de données
relationnelle. Si votre organisation a besoin de collecter, stocker, conserver et
manipuler différents types de données, utilisez l'outil approprié pour le travail
en concevant et en mettant en œuvre une véritable base de données. Par
exemple, considérons la feuille de calcul de la figure 14.2 .
Figure 14.2 Un exemple de « base de données » typique d’une feuille de
calcul.
Cette feuille de calcul est utilisée pour suivre les gérants de magasin d'une
petite chaîne de magasins de détail. Comme vous pouvez le constater, cette
approche pose également des problèmes :
• Champs en double : chaque champ de cette feuille de calcul est un champ
en double. Si vous prenez les champs à leur valeur nominale, chaque
instance comporte essentiellement trois
champs : NUMÉRO DE MAGASIN , NOM DU MANAGER et NOM DU MANAGER A SSISTA
NT .
• Champs en plusieurs parties : chaque champ contient deux valeurs. Le
premier champ stocke le numéro du magasin et le numéro de téléphone, le
deuxième champ stocke le prénom et le nom du responsable et le troisième
champ stocke le prénom et le nom du directeur adjoint.
• Champs à valeurs multiples : Le champ Gérant adjoint est un champ à valeurs
multiples car plusieurs directeurs adjoints peuvent être affectés à un
magasin particulier.
• Difficile à utiliser : les tâches orientées données qui peuvent être effectuées
facilement dans un programme SGBDR sont fastidieuses et longues à
réaliser dans une feuille de calcul. Par exemple, créer une liste contenant
uniquement le nom de chaque gérant de magasin et son numéro de
téléphone prendrait un certain temps.
Après avoir vu les problèmes associés à une simple « base de données » de
feuille de calcul telle que celle-ci, vous pouvez imaginer les types de problèmes
que vous rencontreriez avec une base de données plus complexe. Si vous
utilisez actuellement une feuille de calcul comme base de données, vous
pouvez améliorer la qualité, la vitesse et la polyvalence de la base de données
si vous la supprimez de la feuille de calcul, la suivez tout au long du processus
de conception de la base de données et l'implémentez dans un SGBDR
approprié.
Gérer la mentalité de la vue feuille de calcul
Lorsque vous commencez à travailler avec une véritable base de données et un
SGBDR, vous devez vous éloigner de l'état d'esprit d'une feuille de calcul. Cela
signifie que vous devrez vous résigner au fait que certaines manières de
visualiser les données ne sont désormais plus disponibles : vous ne pouvez plus
utiliser les mises en page typiques des feuilles de calcul. (En fait, cela vous
offre une excellente opportunité d'explorer de nouvelles voies de travail avec
les données et d'élargir vos compétences.) Par exemple, considérons un
rapport de feuille de calcul typique illustré à la figure 14.3 .
Figure 14.3 Un exemple de rapport de feuille de calcul typique.
Vous ne pouvez pas produire un rapport avec ce type de mise en page à l'aide
d'une base de données. Alors qu'une feuille de calcul stocke les données
exactement telles que vous la voyez sur le rapport, une base de données la
stockerait dans quatre champs distincts dans un tableau. La figure 14.4 montre
un exemple de rapport de base de données que vous pouvez générer pour les
mêmes données. La présentation de la base de données n'est pas la même que
la présentation de la feuille de calcul, mais elle est tout aussi claire.
Figure 14.4 Un exemple de rapport de base de données typique.
Le point à retenir est que vous devrez ajuster la manière dont vous pensez
travailler avec les données de votre base de données. Une vraie base de
données est une ressource partagée; tous les membres de l'entreprise
autorisés à accéder aux données de la base de données peuvent le faire eux-
mêmes, et tout le monde recevra le même ensemble de valeurs de
données. Ceci est différent du tableur, où une « feuille maîtresse » est
conservée sur l'ordinateur portable d'une personne et où tous les autres
tentent en vain de garder leurs copies synchronisées avec la feuille
maîtresse. En fin de compte, il y a bien plus d’avantages à stocker et à utiliser
vos données dans une base de données réelle qu’à essayer d’utiliser une
feuille de calcul de la même manière. Une base de données vous donne
beaucoup plus de contrôle sur l'intégrité des données et la cohérence et la
validité des données. Il offre également un nombre presque illimité de façons
de récupérer les données, vous permettant d'obtenir une grande variété
d'informations.
Conception de base de données basée sur le logiciel de base
de données
Un SGBDR ne fournit pas de base, de procédure ni même de raison pour
concevoir une base de données d'une manière particulière : il fournit
uniquement les outils dont vous avez besoin pour mettre en œuvre une
conception. En revanche, une méthode formelle de conception de base de
données fournit à la fois les principes et la justification nécessaires pour définir
une base de données correctement et efficacement.
De nombreuses personnes tombent involontairement dans le piège de la
conception d'une base de données basée uniquement sur le logiciel RDBMS
qu'ils utiliseront pour son implémentation. Dans de nombreux cas, ils le font
parce qu'ils sont déjà quelque peu familiers et qualifiés avec un SGBDR
particulier ou leur entreprise ou organisation utilise déjà un RDMB particulier. Il
s'agit d'une approche imprudente que vous devez éviter (autant que possible)
pour plusieurs raisons:
• Vous prendrez probablement des décisions de conception en fonction de vos
perceptions de ce que votre SGBDR peut ou ne peut pas faire. Par exemple,
vous pouvez déciderne pas imposer un certain degré de participation pour
une relation donnée parce que vous estimez que le SGBDR ne vous en
donne pas les moyens.
• Vous laisserez par inadvertance le SGBDR dicter la conception de la base de
données, au lieu de piloter la conception strictement en fonction des
besoins en informations de l'organisation. Cela se produit généralement
lorsque vous découvrez que votre SGBDR ne fournit qu'une prise en charge
limitée pour certains aspects de la base de données, tels que les
spécifications de champ et les caractéristiques des relations.
• Votre conception sera limitée par votre connaissance du SGBDR. Par
exemple, vous pouvez décider de ne pas mettre en œuvre les
caractéristiques relationnelles simplement parce que vous ne savez pas
comment le faire.
• Votre conception sera limitée par vos compétences avec votre SGBDR. Votre
niveau de compétence affecte l'efficacité avec laquelle vous pouvez mettre
en œuvre divers aspects de la base de données, tels que les spécifications
de champ et les règles métier.
• L'utilisation de cette approche pour concevoir une base de données entraîne
généralement une conception structurelle incorrecte, une intégrité des
données insuffisante et des problèmes de données incohérentes et
d'informations inexactes. Définir une base de données dans un SGBDR peut
être trompeusement simple. Vous pouvez créer une base de données qui
fonctionne, mais vous aurez très probablement une mauvaise conception
sans le savoir.
• En fin de compte, le SGBDR que vous connaissez et aimez si bien n'est
peut-être pas adapté aux exigences de base de données de votre
organisation .
Vous devez toujours concevoir la structure logique de votre base de données
sans tenir compte d'un quelconque SGBDR. Ce faisant, vous êtes plus
susceptible de concevoir une structure solide, car vous vous concentrerez sur
les besoins en informations de l'organisation. Une fois votre conception
terminée, vous pouvez alors déterminer clairement comment vous devez
implémenter la base de données (application mono-utilisateur, client/serveur,
basée sur le Web, etc.) et quel SGBDR vous devez utiliser pour faciliter la mise
en œuvre.
Une dernière pensée
Au fil des années passées à enseigner la conception de bases de données et à
expliquer aux gens comment utiliser divers logiciels SGBDR, j'ai observé un
phénomène intéressant : les personnes qui connaissent les principes
fondamentaux de la conception de bases de données appropriées comprennent
mieux leur SGBDR et les outils qu'il fournit. que ceux qui connaissent peu, voire
pas du tout, la conception de bases de données. Je pense que cela est dû au
fait que les personnes qui connaissent la conception de bases de données sont
capables de comprendre pourquoi le SGBDR fournit certains outils
et comment elles peuvent (et doivent) les utiliser. Pour cette raison, ainsi que
pour les nombreuses autres raisons présentées dans ce livre, il est tout à fait
avantageux d'apprendre et de comprendre les bonnes techniques de
conception de bases de données. Ce livre ne trace pas la seule route, mais
c'est, je crois, une route droite, sûre et la plus facile à parcourir.
Résumé
Ce chapitre a comparé la conception de bases de données relationnelles avec
des formats de conception plus faibles et moins efficaces. Tout d’abord, nous
avons examiné la conception de fichiers plats. Vous avez appris que cette
approche comporte de nombreux problèmes fatals et que vous devez l’éviter
complètement. Nous avons ensuite examiné la conception d'un tableur et vous
avez constaté à quel point cette approche peut être contrainte. Le chapitre
s'est terminé par une discussion sur la conception d'une base de données à
l'aide d'un logiciel SGBDR. Vous avez appris que ce type de conception dépend
dangereusement de votre familiarité et de votre niveau de compétence avec le
logiciel. Contrairement à une bonne méthode de conception de base de
données, la conception d'une base de données autour d'un SGBDR ne vous
fournit pas de principes ni de justification pour concevoir une structure de base
de données appropriée. En apparence, à court terme, le produit logiciel semble
aussi bon, mais il ne fonctionne tout simplement pas aussi bien à long terme
que la méthode de conception évoquée dans ce livre.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
14. Mauvaise conception : ce qu'il ne faut pas faire
15. Enfreindre ou enfreindre les règles
16. En conclusion
2h 3min restant
15
Contourner ou enfreindre les règles
La nature n'enfreint jamais ses propres lois.
-LÉONARD DE VINCI _
Sujets abordés dans ce chapitre
Quand pouvez-vous contourner ou enfreindre les règles ?
Documenter vos actions
Résumé
Je préconise toujours de suivre les techniques appropriées de conception de
bases de données. Comme vous l'avez déjà appris, il y a de nombreuses
raisons pour le faire. Mais avant tout, vous devez utiliser une bonne méthode
de conception pour garantir l’intégrité de la base de données. Je ne peux pas
surestimer à quel point cela est important. Vous connaissez maintenant les
conséquences de l'établissement mal de l'intégrité des données, donc suivre
les règles est d'une importance capitale.
Quand pouvez-vous contourner ou enfreindre les règles ?
Il n’existe que deux circonstances spécifiques dans lesquelles il est permis de
contourner ou d’enfreindre les règles de conception appropriée d’une base de
données. À moins que l’un ou l’autre de ces éléments ne constitue un impératif
incontournable, vous devez utiliser des techniques de conception de base de
données appropriées lors de la conception de votre base de données.
Conception d'une base de données analytique
Comme vous l'avez appris au chapitre 1 , « Bases de données relationnelles »,
une base de données analytique stocke et suit les données historiques et
temporelles. Ce type de base de données contient souvent des champs
calculés dans certaines de sesstructures de tableaux. Les expressions utilisées
dans bon nombre de ces domaines sont destinées à enregistrer l’état d’un
ensemble particulier de données à un moment donné ; d'autres champs
stockent les résultats des fonctions d'agrégation.
Vous avez peut-être déjà déduit de la description que ce type de base de
données viole la conception appropriée de la base de données car ses tables
contiennent des champs calculés (reportez-vous au chapitre 7 , « Établir des
structures de table »). Dans ce cas particulier , la violation est acceptable en
raison de la manière dont les données de la base de données sont utilisées. Je
vous recommande d'abord de concevoir correctement la base de données, puis
d'enfreindre les règles seulement après un examen judicieux. Vous devez
prendre la décision délibérée d'enfreindre une règle et comprendre pourquoi
cela est nécessaire dans un cas spécifique.
Note
La conception d'une base de données analytique nécessite une méthodologie
de conception radicalement différente de celle que vous avez apprise dans ce
livre. Si vous déterminez que votre organisation a besoin d'une base de
données analytique, je vous recommande fortement d'acquérir un bon livre sur
le sujet et d'apprendre à concevoir correctement une telle base de données.
Améliorer les performances de traitement
Même à notre époque (2020 au moment d’écrire ces lignes), l’amélioration des
performances de traitement reste la raison la plus courante pour laquelle les
gens se sentent obligés de contourner ou d’enfreindre les règles. Chaque fois
qu'un SGBDR prend ce qui semble être un temps excessif pour traiter des
requêtes multitables ou des rapports complexes, de nombreuses personnes
pensent que la solution au problème consiste à modifier les structures de
tables sous-jacentes. Par exemple, ils vous demanderaient de modifier un
tableau de manière à ce qu'il inclue tous les champs nécessaires à la requête
ou au rapport. Bien que cette modification augmente effectivement la vitesse à
laquelle le SGBDR traite la requête ou le rapport (en particulier dans les
systèmes plus anciens), elle introduit également un certain nombre de
nouveaux problèmes, tels que des champs en double inutiles, des données
redondantes et des problèmes lors de l'édition des données ; en gros, vous
continuez à en échanger unproblème de performances pour un autre. Ce n’est
clairement pas une solution souhaitable car elle viole la bonne conception de la
base de données.
Malheureusement, la vie réelle n'est pas aussi idéale que nous le souhaiterions,
vous constaterez donc parfois que vous devez choisir entre améliorer les
performances de traitement et respecter les principes de conception
appropriés.
Est-ce que ça vaut le coup?
Lorsque vous prenez un moment pour réfléchir sérieusement à ce dilemme,
vous vous rendrez vite compte que la question n'est pas vraiment une question
de performance ; c'est une question d'intégrité des données. Chaque fois que
vous enfreignez les règles pour des raisons de performances (ou pour toute
autre raison, d'ailleurs), vous allez sûrement introduire des problèmes
d'intégrité des données. La question que vous devez alors vous poser est la
suivante : l’augmentation perçue des performances de traitement vaut-elle le
prix d’une intégrité des données réduite (et donc affaiblie) ? Comme vous le
savez, les conséquences de modifications imprudentes de vos structures de
données finiront par se propager, comme des ondulations dans un étang, à
l’ensemble de votre base de données. Voici quelques-uns des problèmes que
vous rencontrerez :
• Données incohérentes : cela résulte de l'introduction de champs en double
inutiles dans une table. Il sera de votre responsabilité (ou celle de votre
programme d'application) de vous assurer que les données de ces champs
sont synchronisées ; si vous modifiez la valeur dans un champ en double
particulier, vous devrez vous assurer que la même modification est apportée
aux champs en double restants.
• Données redondantes : les données redondantes résultent également de
l'introduction de champs en double inutiles dans une table. Lorsque vous
modifiez une valeur particulière dans un champ contenant des données
redondantes, vous devez vous assurer d'effectuer la même modification
pour chaque instance de cette valeur.
• Intégrité des données altérée : le contournement ou la violation des règles
viole souvent un ou plusieurs composants de l'intégrité globale des
données, tels que l'intégrité au niveau des tables et l'intégrité au niveau des
relations. Il sera de votre responsabilité (ou celle de votre programme de
candidature) de compenserpour le manque d’intégrité – quelle que soit la
manière dont il se manifeste – du mieux que vous pouvez.
• Informations inexactes : vous ne pouvez pas vous attendre à ce que la base
de données fournisse des informations exactes si elle présente l'un des
problèmes susmentionnés.
Améliorer d’abord les performances par d’autres moyens
Si vous pensez toujours vouloir poursuivre cette action pour améliorer les
performances de traitement, ne le faites qu'en dernier recours. Cependant,
avant de prendre ces mesures, essayez d’abord d’améliorer les performances
par d’autres moyens. Considérez ces alternatives :
• Améliorer ou mettre à niveau le matériel informatique. Le matériel a
vraiment parcouru un long chemin au cours des 25 dernières années, c'est
donc toujours le moyen le plus simple d'augmenter les performances de
traitement. Des éléments tels qu'un processeur plus rapide, plus de
mémoire, le passage à des périphériques à semi-conducteurs, l'obtention
d'une imprimante qui répond mieux à vos besoins d'impression et la mise à
niveau du réseau contribueront tous à réduire considérablement le temps
nécessaire au SGBDR pour traiter une requête ou un rapport complexe. .
• Affinez le logiciel du système d’exploitation. Assurez-vous que le système
d'exploitation de l'ordinateur est optimisé pour les performances de
pointe. Ceci est particulièrement important pour les ordinateurs en réseau
et le matériel de serveur. Vous pouvez améliorer considérablement les
performances du traitement général en travaillant avec les paramètres
d'options de configuration. Les types de modifications que vous apportez au
système d'exploitation en général dépendra de votre système
d'exploitation, vous devrez donc vous référer à votre documentation pour
déterminer les types de modifications que vous pouvez apporter.
• Examinez la structure de la base de données. Assurez-vous absolument que
la base de données est correctement conçue. Cela fait toute une
différence. Des bases de données mal conçues contribuent en réalité à de
mauvaises performances de traitement.
• Vérifiez la mise en œuvre de la base de données. Examinez comment la
base de données est actuellement mise en œuvre dans les SGBDR. Assurez-
vous que vous avez pleinement profité des capacités du SGBDR et que vous
avez défini la base de données aussi efficacement et complètement que
possible.
• Passez en revue le programme d'application utilisé pour travailler avec la
base de données. Voici un autre domaine que vous devriez examiner de très
près. Le programme de candidature est-il bien rédigé ? Utilise-t-il au mieux
les outils fournis par le SGBDR ? Les composants de l'application sont-ils
bien définis ? Dans certains cas, un rapport peut imprimer plus lentement
car il est mal conçu - il peut y avoir des moyens plus efficaces de concevoir
et de générer le même rapport. Les requêtes peuvent s'exécuter lentement
car elles sont mal définies. Assurez-vous que chaque requête est définie
correctement et de la manière la plus efficace possible.
Si vous pensez que vous devez vous éloigner des techniques appropriées de
conception de la base de données, examinez attentivement votre
situation. Comme je l'ai mentionné plus tôt, il est acceptable de suspendre les
règles si vous concevez une base de données analytique. Mais je vous
recommande tout de même fortement de concevoir votre base de données
correctement et minutieusement et d'assouplir les règles uniquement pour des
raisons très spécifiques.
Documenter vos actions
Si vous avez épuisé toutes les autres options et que vous arrivez toujours à la
conclusion que vous devez plier ou enfreindre les règles, vous devez
documenter chaque règle que vous enfreignez et chaque action que vous
prenez! Documenter vos modifications est important car cela vous obligera à
réfléchir aux conséquences de ce que vous êtes sur le point de faire et fournit
un moyen d'enregistrer les modifications que vous apportez à la structure de la
base de données. Si vous décidez plus tard que les modifications n'ont pas
fourni d'avantages significatifs, vous pouvez utiliser la documentation comme
guide pour inverser les modifications que vous avez initialement apportées.
Ce sont les éléments que vous devez enregistrer.
• La raison pour laquelle vous enfreignez les règles : L'augmentation des
performances de traitement et la réduction du temps nécessaire à
l'impression de rapports complexes sont deux des raisons les plus courantes
pour lesquelles vous enfreignez les règles. Quelle que soit votre raison,
assurez-vous de l’énoncer de manière complète et claire.
• Le principe de conception que vous violez: enregistrer comment vous avez
modifié la conception de la base de données vous donnera les moyens
d'inverser ces modifications ultérieurement si vous déterminez que les
performances ne s'amélioraient pas de manière significative. Vous pourriez
indiquer que vous modifiez la structure d'une table, par exemple.
• L'aspect de la base de données que vous modifiez : indiquez le champ, la
table, la relation ou la vue que vous allez modifier. Encore une fois, ces
informations vous seront précieuses si vous décidez d’annuler les
modifications.
• Les modifications spécifiques que vous apportez : après avoir déterminé
quel élément vous devez modifier, enregistrez les modifications exactes que
vous apportez à cet élément. Par exemple, si vous devez modifier une
relation, notez les modifications exactes que vous apportez à ses
caractéristiques.
• Les effets attendus sur la base de données et le programme
d'application : Toute modification que vous apportez à la base de données
affectera tous les programmes d'application de l'utilisateur final qui
l'accompagnent. Par exemple, la modification de la structure d'un tableau
particulier peut affecter l'intégrité des données, les structures de
visualisation, les formulaires de saisie de données et les rapports construits
sur le tableau (partiellement ou totalement) et le code de programmation
qui fait référence au tableau. Vous devez vous assurer de lister tous les
effets.
Ajoutez ce document à la documentation que vous avez compilée pour la base
de données. Même si vous inversez les changements plus tard, ce dossier
pourrait vous empêcher de céder à une future impulsion pour tenter les mêmes
types de changements.
Résumé
Le chapitre s'ouvre sur l'examen des deux circonstances dans lesquelles vous
pourriez vous sentir obligé de vous écarter des techniques appropriées de
conception de bases de données. Vous avez appris que le fait de enfreindre les
règles est acceptable si vous concevez une base de données analytique; sinon,
vous devez d’abord concevoir correctement la base de données, puis prendre
des décisions délibérées pour enfreindre ou contourner des règles
spécifiques. Vous avez ensuite appris que la raison la plus courante de quitter
les techniques de conception appropriées est d'améliorer les performances de
traitement. Bien que ce ne soit pas une raison satisfaisante de enfreindre les
règles, il y a des moments où les circonstances dictent que vous devez
considérer de tels changements.
Nous avons ensuite poursuivi en discutant des mesures alternatives que vous
pouvez prendre pour améliorer les performances de traitement, telles que
l'amélioration ou la mise à niveau du matériel et la révision de la mise en
œuvre de la base de données. Vous avez appris que vous devriez faire tout ce
que vous pouvez d'abord améliorer les performances et vous éloigner des
techniques de conception appropriées uniquement en dernier recours. Le
chapitre a ensuite clôturé avec une liste d'éléments que vous devez enregistrer
tsi vous devez enfreindre les règles.
a
b
rl
dqP
ouaee
serc
uahd
em
e
èrs
tc
rhm
ea
st
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
15. Enfreindre ou enfreindre les règles
16. En conclusion
Partie IV : Annexes
2h 3min restant
16
En conclusion
Je ne suis pas un enseignant : seulement un compagnon de voyage à qui vous
avez demandé le chemin. J'ai pointé devant moi, devant moi et devant vous.
-GEORGE BERNARD SHAW ___
J'ai toujours pensé qu'il ne fallait pas être un génie pour concevoir
correctement une base de données. Cela devrait être une tâche relativement
simple que toute personne possédant une bonne dose de bon sens peut
accomplir. Tant que vous suivez une bonne méthode de conception de base de
données, vous devriez être capable de concevoir une structure de base de
données solide et fiable.
Vous possédez désormais les connaissances et les compétences nécessaires
pour concevoir une base de données relationnelle. Vous savez définir les
structures nécessaires, établir des relations entre les tables et mettre en œuvre
différents niveaux d'intégrité des données. Si vous rencontrez des structures
mal ou mal conçues, vous savez désormais comment les améliorer.
L'apprentissage de la conception de bases de données est un processus
continu. Je devrais le savoir. J'y travaille depuis très longtemps maintenant.
Vous pouvez en apprendre suffisamment pour concevoir les types de bases de
données dont vous avez besoin, vous pouvez en faire un métier ou même en
faire une étude permanente. Quelle que soit votre approche, vous serez
confronté à un fait incontournable : plus vous en apprenez, plus vous réalisez
que vous ne savez pas tout. Mais ne vous découragez pas ; cela est vrai pour
n'importe quelle matière majeure que vous essayez d'apprendre, comme la
musique, le théâtre, l'art, la philosophie ou la science des fusées !
J'espère sincèrement que vous avez pris autant de plaisir à lire l'édition du 25 e
anniversaire de ce livre que j'ai eu à l'écrire. Je sais que la plupart des
livres techniques de cette nature peuvent être un peu secs, alors j'ai essayé
d'injecter un peude l'humour de temps en temps, notamment dans les
dialogues d'entretien et de réunion. Ceux d'entre vous qui pensaient que les
conversations étaient relativement réalistes sont assez perspicaces : elles
étaient très vaguement basées sur un certain nombre d'entretiens et de
conversations que j'ai eus avec mes clients au fil des ans.
En guise de dernier conseil, permettez-moi de vous laisser avec ces sept mots :
Apprenez toujours. Prendre des risques. Ne jamais dire jamais.
N'ayez pas peur, intimidé ou réticent à apprendre quelque chose de
nouveau. L'apprentissage ouvre la porte à de nouvelles choses, à de nouvelles
idées, à des concepts différents et à de nouvelles perceptions. Et n'ayez pas
peur ou n'hésitez pas à prendre des risques dans la vie. C'est un excellent
moyen de changer de cap dans votre vie et peut vous aider à mener une vie
plus épanouie. Comme le dit le vieil adage : « Rien ne risque rien ne gagne
». Enfin, apprenez à ne pas dire « Jamais » : « Je ne ferai jamais ça », « Cela
n’arrivera jamais », « Je n’y vivrai jamais ». Quand vous dites « Jamais »,
l’Univers a une drôle de façon de dire « Pas tellement. . . .» J'ai passé toute ma
vie à apprendre et à prendre des risques. C'est comme ça que j'ai pu faire tant
de choses dans ma vie. Et j'ai enfin vraiment compris comment ne pas dire «
Jamais » dans ma vie.
Je peux certainement vous dire, d'après ma propre expérience personnelle, que
tout ce que je viens de dire est absolument vrai.
Un voyage commence par un seul pas. Vous avez fait le premier pas dans
l'apprentissage de la conception d'une base de données en lisant ce livre. Vous
allez maintenant poursuivre votre voyage en découvrant d’autres facettes de la
gestion de bases de données.
Mon livre se termine ici, mais votre voyage ne fait que commencer. . . .
t
a
bdqP
r
louae
eserc
ahu
dem
eèr
stc
rh
m
e
as
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
Partie IV : Annexes
A : Réponses aux questions de révision
B: Diagramme du processus de conception de la base de données
1h 37min restant
UN
Réponses aux questions de révision
Chapitre 1
1. Les deux principaux types de bases de données utilisées aujourd’hui
sont opérationnelles et analytiques.
2. Une base de données analytique stocke des données statiques .
3. Vrai. Une base de données opérationnelle est utilisée principalement dans
les scénarios OLTP.
4. Le modèle relationnel est basé sur deux branches des mathématiques : la
théorie des ensembles et la logique des prédicats du premier ordre.
5. Une base de données relationnelle stocke les données dans les relations, ce
que l'utilisateur perçoit comme des tables.
6. Voici les types de relations dans une base de données relationnelle :
1. Un par un
2. Un à plusieurs
3. Plusieurs à plusieurs
7. Vous récupérez des données dans une base de données relationnelle
principalement en utilisant SQL, un langage de requête structuré.
8. Ce sont les avantages d'une base de données relationnelle:
1. Intégrité multiniveau intégrée
2. Les données logiques et physiques indépendance des applications de base
de données
3. Cohérence et précision des données garanties
4. Récupération des données facile
9. Un système de gestion de base de données relationnelle, ou SGBDR, est un
logiciel que vous utilisez pour créer, maintenir, modifier et manipuler une base
de données relationnelle.
10. Faux. Les appareils mobiles peuvent avoir des gigaoctets ou des téraoctets
de stockage.
11. Les éditeurs de logiciels ont eu du mal à mettre en œuvre initialement la
base de données relationnelle car la vitesse de traitement, la mémoire et le
stockage étaient tout simplement insuffisants pour fournir aux éditeurs de
logiciels de bases de données une plate-forme sur laquelle construire une
implémentation complète.
Chapitre 2
1. Le meilleur moment pour utiliser les outils de conception du programme du
SGBDR est après avoir conçu la structure logique de la base de données.
2. Vrai. La conception est cruciale pour la cohérence, l’intégrité et l’exactitude
des données.
3. Le résultat le plus préjudiciable d’une mauvaise conception de base de
données est l’inexactitude des informations.
4. Le fait que le modèle de base de données relationnelle soit basé sur la
théorie des ensembles et la logique des prédicats de premier ordre rend la
base de données relationnelle structurellement solide et capable de garantir
des informations précises.
5. Voici les avantages de l’apprentissage d’une méthodologie de conception :
1. Il vous donne les compétences dont vous avez besoin pour concevoir une
structure de base de données solide.
2. Il vous fournit un ensemble organisé de techniques qui vous guideront pas à
pas dans le processus de conception.
3. Cela vous aide à minimiser vos faux pas et vos réitérations de conception.
4. Cela facilite le processus de conception et réduit le temps que vous
consacrez à la conception de la base de données.
5. Il vous aidera à comprendre et à utiliser votre logiciel SGBDR de plus en plus
et efficacement.
6. C'est vrai. Comprendre la conception de bases de données vous aidera à
utiliser votre programme SGBDR de manière plus efficace et efficiente.
7. Voici les objectifs d’une bonne conception :
1. La base de données prend en charge requise et récupération des
informations ad hoc.
2. Les tables sont construites correctement et efficacement.
3. L'intégrité des données est imposée au niveau du champ, de la table et des
relations.
4. La base de données prend en charge les règles métier pertinentes pour
l'organisation.
5. La base de données se prête à une croissance future.
8. L'intégrité des données permet de garantir que les structures de données et
leurs valeurs sont valides et exactes à tout moment.
9. Ce sont les avantages de l'application de bonnes techniques de conception:
1. La structure de la base de données est facile à modifier et à maintenir.
2. Les données sont faciles à modifier.
3. Les informations sont faciles à récupérer.
4. Les applications des utilisateurs finaux sont faciles à développer et à créer.
10. Faux. Vous ne pouvez pas prendre de raccourcis dans certains processus de
conception tout en parvenant à une bonne conception solide.
chapitre 3
1. La terminologie est importante pour les raisons suivantes :
1. Il est utilisé pour exprimer et définir les idées et concepts particuliers du
modèle de base de données relationnelle.
2. Il est utilisé pour exprimer et définir le processus de conception de la base
de données lui-même.
3. Il est utilisé partout où une base de données relationnelle ou le RDBM est
discutée.
2. Les quatre catégories de termes sont liés aux valeurs , liés à la structure ,
liés aux relations et liés à l'intégrité .
3. Les valeurs que vous stockez dans la base de données sont des
données. Les informations sont des données que vous traitez de manière à les
rendre significatives et utiles lorsque vous les utilisez ou les consultez.
4. Null représente une valeur manquante ou inconnue.
5. L'inconvénient majeur de NULL est qu'il a un effet négatif sur les opérations
mathématiques.
6. Les tables sont les principales structures de la base de données.
7. Les trois types de tableaux sont des tables de données , des tables de
liaison et des tables de validation .
8. Une vue est une table virtuelle composée de champs provenant d'une ou
plusieurs tables de base de la base de données.
9. Une clé est une structure logique que vous utilisez pour identifier les
enregistrements dans un tableau, et un index est une structure physique que
vous utilisez pour optimiser le traitement des données.
10. Les trois types de relations qui peuvent exister entre une paire de tables
sont un à un, un à plusieurs et plusieurs à plusieurs.
11. Vous pouvez caractériser chaque relation de trois manières : par le type de
relation qui existe entre les tables, la manière dont chaque table participe et le
degré de participation de chaque table.
12. Une spécification de champ représente tous les éléments d'un champ.
13. Une spécification de terrain intègre les trois types d'éléments
suivants : généraux, physiques et logiques.
14. L'intégrité des données fait référence à la validité, à la cohérence et à la
précision des données dans une base de données.
15. Les quatre types d'intégrité des données sont les règles de niveau champ ,
de table , de relation et de gestion .
Chapitre 4
1. Il est important de compléter soigneusement le processus de conception car
il vous aide à assurer une structure sonore et une intégrité des données.
2. Vrai. Le niveau d’intégrité structurelle est directement proportionnel à la
façon dont vous suivez minutieusement le processus de conception.
3. L' énoncé de mission identifie le but de votre base de données.
4. Les objectifs de mission sont des déclarations qui représentent les tâches
générales que vos utilisateurs peuvent effectuer par rapport aux données de la
base de données.
5. La liste des champs et des calculs que vous compilez au cours de la
deuxième phase du processus de conception constitue les exigences
fondamentales en matière de données de votre organisation.
6. Vous déterminez les différents sujets que les tableaux représenteront à partir
des objectifs de mission que vous avez rédigés au cours de la première phase
du processus de conception et des exigences en matière de données que vous
avez recueillies au cours de la deuxième phase.
7. FAUX. Vous établissez les spécifications de champ pour chaque champ de la
base de données au cours de la troisième phase du processus de conception de
la base de données.
8. Vous établissez une connexion logique entre les tables en relation soit avec
des clés primaires et des clés étrangères, soit avec une table de liaison.
9. La manière dont votre organisation visualise et utilise ses données
déterminera un ensemble de limitations et d'exigences que vous devez
intégrer à la base de données.
10. Vous pouvez définir et implémenter des tables de validation si nécessaire
pour prendre en charge certaines règles métier.
11. Vous identifiez les types de vues que vous devez créer dans la base de
données en interviewant les utilisateurs et en gestion et en déterminant
comment ils fonctionnent avec leurs données respectives.
12. Vous pouvez implémenter la structure de la base de données logique dans
un programme SGBDR après avoir terminé l'ensemble du processus de
conception de la base de données.
Chapitre 5
1. Les entretiens sont importants car ils constituent un lien de communication
précieux entre vous (le développeur) et les personnes pour lesquelles vous
concevez la base de données. Ils contribuent à garantir le succès de vos efforts
de conception et fournissent des informations critiques qui peuvent affecter la
conception de la structure de la base de données.
2. Le problème qui se pose lorsque vous effectuez une entrevue avec un grand
nombre de personnes est que le niveau d'intimidation de certains participants
augmentera en proportion directe avec le nombre de participants participant à
l'entretien dans son ensemble.
3. La principale raison de mener des entretiens distincts avec les utilisateurs et
la direction est que chaque groupe a un autrePerspective sur l'organisation
dans son ensemble et sur la façon dont l'organisation utilise quotidiennement
ses données.
4. Faux. Vous utiliserez généralement des questions ouvertes dans vos
entretiens.
5. Vous devriez essayer d'obtenir des réponses complètes et descriptives de la
part des participants à l'entretien.
6. La ligne directrice la plus importante pour chaque entretien que vous menez
est de toujours garder le contrôle de l’entretien.
7. Un énoncé de mission déclare l'objectif spécifique de la base de données en
termes généraux.
8. Un énoncé de mission bien écrit a les caractéristiques suivantes:
1. C’est sans ambiguïté.
2. C’est succinct et pertinent.
3. Ce sont exempts de phrases ou de phrases qui décrivent explicitement des
tâches spécifiques.
9. Faux. Vous devez en savoir plus sur l'organisation pour composer un énoncé
de mission.
10. Votre énoncé de mission est complet lorsque vous disposez d'une phrase
qui décrit l'objectif spécifique de la base de données et qui est comprise et
acceptée par toutes les personnes concernées.
11. Un objectif de mission est une déclaration qui représente une seule tâche
générale prise en charge par les données maintenues dans la base de données.
12. Un objectif de mission bien écrit a les caractéristiques suivantes:
1. Il s'agit d'une phrase déclarative qui définit clairement une tâche générale
et est exempte de détails inutiles.
2. Il s'exprime en termes généraux.
3. C’est succinct et pertinent.
4. C’est sans ambiguïté.
13. C'est vrai. Vous devez interroger les utilisateurs et la direction pour vous
aider à définir les objectifs de la mission.
14. Le travail quotidien du personnel concerne les objectifs de la mission dans
la mesure où bon nombre des tâches qu'ils effectuent deviendront des objectifs
de la mission.
15. Faux. Un objectif de mission ne peut pas décrire plus d'une tâche.
16. Un objectif de mission peut être dérivé d'une réponse explicitement ou
implicitement.
17. Un objectif de mission est complet lorsqu'il est à la fois correctement défini
et bien défini, et quand il est logique pour vous et pour ceux pour qui vous
concevez la base de données.
Chapitre 6
1. Les objectifs de l'analyse de la base de données actuelle sont de déterminer
les éléments suivants :
1. Quels types de données que l'organisation utilise
2. Comment l'organisation utilise ses données
3. Comment l'organisation gère et maintient ses données
2. Faux. Vous ne devez pas adopter la structure de la base de données actuelle
comme base de la nouvelle structure.
3. Une base de données existante est une base de données qui existe et est
utilisée depuis cinq ans ou plus.
4. Le processus d'analyse intègre ces trois étapes:
1. Examiner la façon dont les données sont collectées
2. Examiner la manière dont les informations sont présentées
3. Mener des entretiens avec des utilisateurs et la direction
5. Les types de logiciels informatiques que vous devez examiner lors de
l'analyse comprennent les traitements de texte, les feuilles de calcul, les bases
de données et les pages Web.
6. Vous devez mener des entretiens après avoir collecté des échantillons de
collecte de données et de présentation d'informations pour les raisons
suivantes :
1. Ils fournissent des détails sur les échantillons que vous avez assemblés lors
des examens précédents.
2. Ils renseignent sur la manière dont l’organisation utilise ses données.
3. Ils jouent un rôle déterminant dans la définition des structures préliminaires
des champs et des tables.
4. Ils aident à définir les futurs besoins d’information.
7. Vous utilisez des questions ouvertes pour vous concentrer sur des sujets
spécifiques et des questions fermées pour vous concentrer sur des détails
spécifiques d'un sujet donné.
8. La technique d'identification du sujet vous permet d'identifier les sujets dans
la réponse d'un participant à une question donnée.
9. Vous identifiez des attributs spécifiques pour un sujet particulier en utilisant
la technique d'identification des caractéristiques.
10. Faux. Vous devez interroger les utilisateurs et la gestion séparément.
11. Les trois types de base d'informations que vous devez identifier
sont actuels, supplémentaires et futurs.
12. La liste préliminaire des champs représente les exigences fondamentales
en matière de données de l'organisation et constitue l'ensemble principal des
champs que vous devez définir dans la base de données.
13. Chaque élément de la liste de champs préliminaire doit avoir un nom
unique pour s'assurer que la caractéristique n'apparaît qu'une seule fois sur la
liste.
14. Une liste de valeurs spécifie la plage acceptable de valeurs pour une
caractéristique particulière et applique souvent une règle commerciale donnée.
15. Un champ calculé stocke le résultat d'une concaténation de chaînes ou
d'une expression mathématique comme valeur. Vous devez supprimer les
champs calculés de la liste des champs préliminaires et les placer sur une liste
de champs calculée dédiée.
Chapitre 7
1. Vous identifiez et établissez des tables pour une nouvelle base de données à
l'aide de la liste de tables préliminaire.
2. Vous utilisez la liste de champs préliminaire pour vous aider à définir des
tables pour la base de données, car les champs de la liste peuvent impliquer
des sujets que la base de données doit suivre.
3. Lorsqu'un élément sur la liste des sujets et un élément nommé différemment
sur la liste de table préliminaire représentent tous deux le même sujet, vous
sélectionnez le nom qui représente le mieux le sujet et l'utilisez comme seul
identifiant pour ce sujet.
4. La liste des tableaux finales fournit le nom, le type et la description de
chaque table dans la base de données.
5. Ce sont les directives pour créer des noms de table:
1. Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation.
2. Créez un nom qui identifie avec précision, clarté et sans ambiguïté le sujet
du tableau.
3. Utilisez le nombre minimum de mots nécessaire pour transmettre le sujet du
tableau.
4. N'utilisez pas de mots qui véhiculent des caractéristiques physiques.
5. N'utilisez pas d'acronymes et d'abréviations.
6. N'utilisez pas de noms propres ou d'autres mots qui restreindraient
indûment les données pouvant être saisies dans le tableau.
7. N'utilisez pas de nom qui identifie implicitement ou explicitement plus d'un
sujet.
8. Utilisez la forme plurielle du nom.
6. Ce sont les directives pour composer des descriptions de table:
1. Incluez une déclaration qui définit avec précision le tableau.
2. Incluez une déclaration expliquant pourquoi ce tableau est important pour
l’organisation.
3. Rédigez une description claire et succincte.
4. N'incluez pas d'informations spécifiques à l'implémentation dans la
description de votre table, telles que la manière et l'endroit où la table est
utilisée.
5. Ne faites pas dépendre la description d'une table de la description d'une
autre table.
6. N'utilisez pas d'exemples dans une description de tableau.
7. Vous attribuez des champs à un tableau sur la liste des tableaux finaux en
déterminant les champs qui représentent le mieux les caractéristiques du sujet
du tableau.
8. Ce sont les directives pour créer des noms de champ:
1. Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation.
2. Créez un nom qui identifie avec précision, clarté et sans ambiguïté la
caractéristique qu'un champ représente.
3. Utilisez le nombre minimum de mots nécessaire pour transmettre la
signification de la caractéristique représentée par le champ.
4. N'utilisez pas les acronymes et utilisez judicieusement les abréviations.
5. N'utilisez pas de mots qui pourraient confondre la signification du nom du
champ.
6. N'utilisez pas de noms qui identifient implicitement ou explicitement plus
d'une caractéristique.
7. Utilisez la forme singulière du nom.
9. Les champs mal conçus peuvent entraîner des problèmes de données en
double et de données redondantes.
10. Vous pouvez résoudre les anomalies du champ en vous assurant que le
champ est conforme aux éléments du champ idéal.
11. Ce sont les éléments du champ idéal:
1. Il représente une caractéristique distincte du sujet du tableau.
2. Il ne contient qu'une seule valeur.
3. Il ne peut pas être déconstruit en composants plus petits.
4. Il ne contient pas de valeur calculée ou concaténée.
5. Il est unique dans toute la structure de la base de données.
6. Il conserve la majorité de ses caractéristiques lorsqu'il apparaît dans plus
d'un tableau.
12. Les données redondantes sont acceptables lorsqu'elle est le résultat de la
résolution d'un champ multivaleur ou d'un champ en double inutile, mais
uniquement lorsque vous êtes dans les étapes initiales de la conception de
tables.
13. En termes généraux, ce sont les trois étapes que vous suivez pour résoudre
un champ multivaleur:
1. Supprimez le champ de la table et utilisez-le comme base pour une nouvelle
table.
2. Utilisez un champ (ou un ensemble de champs) de la table d'origine pour
associer la table d'origine à la nouvelle table.
3. Attribuez un nom, un type et une description appropriés à la nouvelle table
et ajoutez-la à la liste des tables finales.
14. La seule instance dans laquelle l'utilisation d'un champ en double dans un
tableau est nécessaire est lorsque le champ sert à établir une relation entre
deux tables.
15. Vous pouvez affiner les structures des tableaux en vous assurant que
chaque tableau est conforme aux éléments du tableau idéal.
16. Voici les éléments de la table idéale :
1. Il représente un sujet unique, qui peut être un objet ou un événement.
2. Il possède une clé primaire.
3. Il ne contient pas de champs en plusieurs parties ou à valeurs multiples.
4. Il ne contient pas de champs calculés.
5. Il ne contient pas de champs en double inutiles.
6. Il ne contient qu’un minimum absolu de données redondantes.
17. Un tableau de sous-ensemble est un tableau qui représente un sujet
subordonné d'une table de données particulière.
Chapitre 8
1. Les clés sont importantes pour les raisons suivantes :
1. Ils s'assurent que chaque enregistrement dans un tableau est correctement
identifié.
2. Ils aident à établir et à faire respecter divers types d’intégrité.
3. Ils servent à établir des relations entre les tables.
2. Les quatre principaux types de clés sont candidates, primaires,
étrangères et non.
3. Le but d'une clé candidate est d'identifier de manière unique une seule
instance du sujet du tableau.
4. Voici les éléments d’une clé de candidat :
1. Il ne peut pas s'agir d'un champ en plusieurs parties.
2. Il doit contenir des valeurs uniques.
3. Il ne peut pas contenir Null.
4. Sa valeur n'est pas facultative en tout ou en partie.
5. Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité.
6. Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table.
7. Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné.
8. Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes.
5. Vrai. Une clé candidate peut être composée de plusieurs champs.
6. Oui, une table peut avoir plusieurs clés candidates.
7. Un champ que vous créez dans le seul but de servir de clé de candidat est
connu comme une clé de candidat artificiel. Vous créez ce type de clé lorsqu’il
n’y a pas de clés candidates « naturelles » dans une table.
8. La clé primaire est la clé la plus importante que vous attribuez à une table.
9. La clé principale est importante pour les raisons suivantes:
1. Un champ de clé primaire identifie exclusivement la table dans la structure
de la base de données et permet d'établir des relations avec d'autres tables.
2. Une valeur de clé primaire identifie de manière unique un enregistrement
donné dans une table et représente exclusivement cet enregistrement dans
l'ensemble de la base de données. Cela permet également de se prémunir
contre les enregistrements en double.
10. Vous établissez une clé primaire en examinant le pool de clés candidats
disponibles de la table, puis en en sélectionnant une comme clé principale.
11. Voici les éléments d'une clé primaire :
1. Il ne peut pas s'agir d'un champ en plusieurs parties.
2. Il doit contenir des valeurs uniques.
3. Il ne peut pas contenir Null.
4. Sa valeur n'est pas facultative en tout ou en partie.
5. Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité.
6. Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table.
7. Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné.
8. Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes.
12. Avant de finaliser votre sélection d'une clé primaire, vous devez vous
assurer absolument qu'elle identifie exclusivement la valeur de chaque champ
au sein d'un enregistrement donné et répond à tous les éléments d'une clé
primaire.
13. Une clé alternative est une clé candidate qui n'a pas été choisie pour servir
de clé primaire de la table.
14. En établissant l'intégrité au niveau de la table, vous garantissez ce qui
suit :
1. Il n'y a pas d'enregistrements en double dans une table.
2. La clé primaire identifie exclusivement chaque enregistrement d'une table.
3. Chaque valeur de clé primaire est unique.
4. Les valeurs de clé primaire ne sont pas nulles.
15. Vous devez revoir les structures initiales des tableaux pour les raisons
suivantes :
1. S'assurer que les sujets appropriés sont représentés dans la base de
données
2. S'assurer que les noms et les descriptions des tables sont adaptés et
significatifs pour tout le monde
3. Pour s'assurer que les noms de champs sont appropriés et significatifs pour
tout le monde
4. Pour vérifier que tous les champs appropriés sont affectés à chaque table
Chapitre 9
1. Les spécifications de terrain sont importantes pour les raisons suivantes :
1. Ils aident à établir et à faire respecter l’intégrité sur le terrain.
2. Ils contribuent à améliorer l’intégrité globale des données.
3. Ils vous obligent à acquérir une compréhension complète de la nature et de
la finalité des données contenues dans la base de données.
4. Ils constituent le « dictionnaire de données » de la base de données.
2. L'intégrité sur le terrain garantit ce qui suit :
1. L'identité et le but d'un champ sont clairs et tous les tableaux dans lesquels
il apparaît sont correctement identifiés.
2. Les définitions de champs sont cohérentes dans toute la base de données.
3. Les valeurs d'un champ sont cohérentes et valides.
4. Les types de modifications, de comparaisons et d'opérations pouvant être
appliquées aux valeurs du champ sont clairement identifiés.
3. Les trois catégories d'éléments dans une spécification de champ
sont générales, physiques et logiques.
4. Les trois types de spécifications sont Unique, Générique et Réplique.
5. Rédiger une description de champ appropriée est extrêmement bénéfique
car cela vous oblige (ainsi que tous les membres de l'organisation) à réfléchir
attentivement à la nature des données qui seront stockées sur le terrain.
6. L' élément Type de données indique la nature des données stockées par le
champ.
7. L' élément Prise en charge des caractères indique le type de caractères
qu'un utilisateur peut saisir dans une valeur de champ donnée.
8. Les types de clés indiqués dans une spécification de champ sont non,
primaires, alternatives et étrangères.
9. Faux. Null ne représente pas un espace : il représente une
valeur manquante ou inconnue .
10. L' élément Range of Values spécifie toutes les valeurs valides possibles
pour un champ.
11. Une règle d'édition désigne à quel moment un utilisateur peut saisir une
valeur dans un champ et s'il peut modifier cette valeur.
12. Vous utilisez une spécification générique pour un champ qui sert de modèle
pour d'autres champs de la base de données.
Chapitre 10
1. Une relation est importante pour les raisons suivantes :
1. Il établit une connexion entre une paire de tables logiquement liées les unes
aux autres.
2. Cela permet d'affiner les structures des tables et de minimiser davantage
les données redondantes.
3. C'est le mécanisme qui vous permet d'extraire des données de plusieurs
tables simultanément.
2. Les trois types de relations sont un à un, un à plusieurs et plusieurs à
plusieurs.
3. La relation plusieurs-à-plusieurs posera le plus de problèmes.
4. Vous pourriez éventuellement rencontrer des problèmes tels que ceux-ci
avec une relation plusieurs-à-plusieurs :
1. Il vous sera fastidieux et quelque peu difficile de récupérer des informations
dans l'une des tables.
2. L'une des tables contiendra une grande quantité de données redondantes.
3. Des données en double existeront dans les deux tables.
4. Il sera difficile d'insérer, de mettre à jour et de supprimer des données.
5. Une relation d'auto-référence est une relation qui existe entre les
enregistrements dans un tableau donné.
6. Vous commencez le processus d' identification des relations entre les
tableaux de la base de données en créant une matrice de toutes les tables.
7. Les deux types de questions que vous pouvez poser pour vous aider à
identifier les relations existantes sont associatives et contextuelles.
8. Vous utilisez un symbole de sténographie 1: n pour désigner une relation un-
à-plusieurs dans la matrice de la table.
9. Vous déterminez quel type de relation existe officiellement entre chaque
paire de tables dans la matrice à l'aide de formules qui correspondent aux trois
définitions de type relation.
dix. Vous établissez une relation un-à-plusieurs en prenant une copie de la clé
primaire du tableau du côté «un» de la relation et en l'intégrant dans la
structure du tableau du côté «beaucoup», où il devient alors une clé
étrangère .
11. Vrai. La récupération des informations des tables avec une relation d'auto-
référence peut être fastidieuse et quelque peu difficile.
12. Vous établissez une relation de plusieurs à plusieurs références comme
vous le feriez pour une relation à double table et plusieurs à plusieurs - avec un
tableau de liaison.
13. Vous affinez les clés étrangères dans la base de données en vous assurant
que chacun est conforme aux éléments d'une clé étrangère.
14. Les deux catégories d'éléments que vous devez modifier pour les
spécifications du champ d'une clé étrangère sont les éléments généraux et les
catégories d'éléments logiques.
15. Une règle de suppression détermine ce que vos SGBDR devraient faire
lorsque vous placez une demande pour supprimer un enregistrement donné
dans le tableau parent de la relation.
16. Les deux types de participation que vous pouvez désigner pour une table
sont obligatoires et facultatives.
17. Le degré de participation indique le nombre minimum d'enregistrements
qu'une table donnée doit avoir associés à un seul enregistrement de la table
associée et le nombre maximum d'enregistrements que la table est autorisée
à associer à un seul enregistrement de la table associée.
18. Une relation atteint l'intégrité au niveau relationnel après avoir vérifié
qu'elle est correctement établie et que ses caractéristiques sont correctement
définies.
Chapitre 11
1. Une règle d'entreprise est une déclaration qui impose une forme de
contrainte sur un aspect spécifique de la base de données, tels que les
éléments dans une spécification de champ pour un champ particulier ou les
caractéristiques d'une relation donnée.
2. Les deux principaux types de règles métier sont orientés vers la base de
données et orientés vers l'application.
3. Non. Les règles métier orientées application imposent des contraintes que
vous ne pouvez pas établir dans la conception logique de la base de données.
4. Les deux catégories de règles commerciales axées sur la base de données
sont spécifiques au champ et spécifiques à la relation.
5. Une règle commerciale spécifique au champ est celle qui impose des
contraintes aux éléments d'une spécification de champ pour un champ
particulier.
6. La contrainte que la règle commerciale impose est testée lorsque vous
essayez d'effectuer l'une des trois actions: insérer un enregistrement dans le
tableau ou une entrée dans un champ, en supprimant un enregistrement du
tableau ou une valeur dans un champ, ou à la mise à jour d'un champ valeur.
7. Vous documentez une règle commerciale en remplissant une feuille de
spécifications de règles commerciales pour la règle.
8. La feuille de spécifications de règles commerciales offre ces avantages:
1. Il vous permet de documenter chaque règle commerciale axée sur la base
de données.
2. Il vous permet de documenter chaque règle commerciale axée sur les
applications.
3. Il fournit une méthode standard pour enregistrer toutes les règles métier.
9. La section des mesures prises d'une feuille de spécifications de règles
commerciales est le domaine où vous indiquez les modifications que vous avez
apportées aux éléments d'une spécification de champ ou à un diagramme de
relations.
10. Un tableau de validation (également appelé tableau de recherche ) stocke
les données que vous utilisez spécifiquement pour implémenter l'intégrité des
données en restreignant la plage de valeurs qui peuvent être utilisées pour un
champ.
11. Les tables de validation comprennent généralement (mais pas toujours)
deux champs: le premier agit comme la clé principale et est ce que vous
utiliserez pour vous aider à appliquer l'intégrité des données, et le second est
simplement un champ non clé qui stocke un ensemble de Valeurs requises par
un autre champ dans la base de données.
12. Vous pouvez utiliser un tableau de validation pour appliquer une contrainte
qu'une règle d'entreprise impose à la plage de valeurs d'un champ donné.
13. Vous devez consulter chaque feuille de spécifications de règles
commerciales pour vous assurer que vous avez correctement établi la règle
qu'il enregistre et que vous avez clairement marqué tous les domaines
appropriés de la feuille.
Chapitre 12
1. Vous pouvez qualifier une vue de table virtuelle car elle extrait les données
des tables de base plutôt que de les stocker seules.
2. Les opinions sont précieuses pour les raisons suivantes :
1. Vous pouvez les utiliser pour travailler simultanément avec les données de
plusieurs tables.
2. Ils reflètent les informations les plus récentes contenues dans les tableaux
de base.
3. Vous pouvez les personnaliser selon les besoins spécifiques d'un individu ou
d'un groupe d'individus.
4. Vous pouvez les utiliser pour contribuer à renforcer l’intégrité des données.
5. Vous pouvez les utiliser à des fins de sécurité ou de confidentialité.
3. Les types de vues que vous pouvez définir lors de la conception de la
structure logique de la base de données sont les vues de données,
d'agrégation et de validation .
4. Chaque fois que vous accédez à une vue, votre SGBDR le reconstruira et le
remplira à nouveau en utilisant les données les plus récentes des tables de
base de la vue.
5. Les spécifications de champ et les règles métier déterminent les types de
modifications que vous pouvez apporter aux données d'une vue.
6. La seule condition que vous devez remplir pour définir une vue de données
multitable est que les tables que vous utilisez pour créer la vue doivent
entretenir une relation les unes avec les autres.
7. Une vue de données ne contient pas sa propre clé primaire car ce n'est pas
une table ; une vraie table stocke les données et nécessite une clé primaire
pour servir d'identifiant unique pour chacun de ses enregistrements.
8. Le but d'une vue globale est d'afficher les informations produites en
agrégeant un ensemble particulier de données d'une manière spécifique.
9. Somme, Moyenne (moyenne arithmétique), Minimum,
Maximum et Nombre sont les fonctions d'agrégation les plus courantes que
vous pouvez appliquer à un ensemble de données.
10. Un champ de regroupement est un champ de données dans une vue
agrégée qui « regroupe » plusieurs instances d'une valeur donnée en une seule
instance de la valeur.
11. Faux. Vous ne pouvez pas modifier les données dans une vue agrégée car
elles sont entièrement composées de champs de regroupement et de champs
calculés.
12. La différence entre une table de validation et une vue de validation réside
dans leur construction : une table de validation stocke ses propres données,
tandis qu'une vue de validation extrait les données de ses tables de base.
13. Vous devez garder les points suivants à l’esprit lorsque vous identifiez les
exigences en matière d’affichage :
1. Révisez vos notes avec le groupe.
2. Passez en revue les exemples de saisie de données, de rapports et de
présentations que vous avez rassemblés au cours des premières étapes du
processus de conception.
3. Examinez les tableaux et les sujets qu’ils représentent.
4. Analysez les relations entre les tables.
5. Étudiez les règles commerciales.
14. Vous devez utiliser des champs calculés lorsqu'ils fourniront des
informations pertinentes et significatives ou lorsqu'ils amélioreront la manière
dont la vue utilise ses données.
t
15.
a Vous définissez une vue qui affiche uniquement les livres de science-fiction
ben appliquant un filtre au champ approprié dans la vue.
l
e
16. Vous devez compléter une feuille de spécifications de vue pour chaque vue
d
de la base de données car c'est sur cette feuille que vous enregistrerez les
e
scaractéristiques de la vue.
P
ar
rem
dqac
oum
ht
seèei
utrè
erc
eh
se
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
A : Réponses aux questions de révision
B: Diagramme du processus de conception de la base de données
C : Directives de conception
53m restants
Schéma du processus de conception de base de données
Le diagramme des pages suivantes vous fournit une carte de l’ensemble du
processus de conception de base de données. Il indique chaque phase de
conception, les procédures au sein de la phase, les tâches au sein de la
procédure et, dans certains cas, les sous-tâches au sein d'une tâche.
Cette légende montre le type de symboles que vous verrez dans le diagramme.
rtd
qP
ouaeAller au contenu
sercbLes sujets
uahlCommencer à apprendre
En
em vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
èr
B: Diagramme du processus de conception de la base de données
tcdC : Directives de conception
rhe D : Formulaires de documentation
es
44 minutes restantes
s
m
a
t
i
è
r
e
s
Directives de conception
Voici, par ordre alphabétique, les différents ensembles de directives de
conception qui apparaissent tout au long du livre.
Définir et établir des règles métier spécifiques au domaine
1. Sélectionnez un tableau.
2. Passez en revue chaque champ et déterminez si cela nécessite des
contraintes.
3. Définir les règles métier nécessaires pour le terrain.
4. Établissez les règles en modifiant les éléments de spécification de champ
appropriés.
5. Déterminez quelles actions testent la règle.
6. Enregistrez la règle sur une feuille de spécifications des règles métier.
Définir et établir des règles commerciales spécifiques aux
relations
1. Sélectionnez une relation.
2. Passez en revue la relation et déterminez si elle nécessite des contraintes.
3. Définissez les règles commerciales nécessaires pour la relation.
4. Établissez la règle en modifiant les caractéristiques de la relation
appropriées.
5. Déterminez quelles actions testeront la règle.
6. Enregistrez la règle sur une feuille de spécifications des règles métier.
Éléments d'une clé de candidat
• Il ne peut pas s'agir d'un champ en plusieurs parties.
• Il doit contenir des valeurs uniques.
• Il ne peut pas contenir de valeurs Null.
• Sa valeur ne peut pas entraîner une violation des règles de sécurité ou de
confidentialité de l'organisation.
• Sa valeur n'est pas facultative en tout ou en partie.
• Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité.
• Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table.
• Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné.
• Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes.
Éléments d'une clé étrangère
• Elle porte le même nom que la clé primaire à partir de laquelle elle a été
copiée.
• Il utilise une réplique des spécifications de champ pour la clé primaire à
partir de laquelle elle a été copiée.
• Il tire ses valeurs de la clé primaire à laquelle il se réfère.
Éléments d'une clé primaire
• Il ne peut pas s'agir d'un champ en plusieurs parties.
• Il doit contenir des valeurs uniques.
• Il ne peut pas contenir de valeurs Null.
• Sa valeur ne peut pas entraîner une violation des règles de sécurité ou de
confidentialité de l'organisation.
• Sa valeur n'est pas facultative en tout ou en partie.
• Il comprend un nombre minimum de champs nécessaires pour définir
l'unicité.
• Ses valeurs doivent identifier de manière unique et exclusive chaque
enregistrement de la table.
• Sa valeur doit identifier exclusivement la valeur de chaque champ au sein
d'un enregistrement donné.
• Sa valeur ne peut être modifiée que dans des cas rares ou extrêmes.
Règles d'établissement d'une clé primaire
• Chaque table doit avoir une (et une seule) clé primaire.
• Chaque clé primaire de la base de données doit être unique : deux tables ne
doivent pas avoir la même clé primaire, sauf si l'une d'elles est une table de
sous-ensemble.
Éléments du champ idéal
• Il représente une caractéristique distincte du sujet du tableau.
• Il ne contient qu'une seule valeur.
• Il ne peut pas être déconstruit en composants plus petits.
• Il ne contient pas de valeur calculée ou concaténée.
• Il est unique dans toute la structure de la base de données.
• Il conserve la majorité de ses caractéristiques lorsqu'il apparaît dans
plusieurs tableaux.
Éléments de la table idéale
• Il représente un sujet unique, qui peut être un objet ou un événement.
• Il possède une clé primaire.
• Il ne contient pas de champs en plusieurs parties ou à valeurs multiples.
• Il ne contient pas de champs calculés.
• Il ne contient pas de champs en double inutiles.
• Il ne contient qu’un minimum absolu de données redondantes.
Intégrité au niveau du terrain
L'intégrité au niveau du terrain garantit les éléments suivants :
• L'identité et le but d'un champ sont clairs et tous les tableaux dans lesquels
il apparaît sont correctement identifiés.
• Les définitions de champs sont cohérentes dans toute la base de données.
• Les valeurs d'un champ sont cohérentes et valides.
• Les types de modifications, de comparaisons et d'opérations pouvant être
appliquées aux valeurs du champ sont clairement identifiés.
Lignes directrices pour rédiger une description de champ
• Utilisez une déclaration qui identifie avec précision le champ et indique
clairement son objectif.
• Rédigez une déclaration claire et succincte.
• Évitez de reformuler ou de reformuler le nom du champ.
• Évitez d'utiliser du jargon technique, des acronymes ou des abréviations.
• N’incluez pas d’informations spécifiques à la mise en œuvre.
• Ne faites pas dépendre cette description de la description d’un autre champ.
• N'utilisez pas d'exemples.
Lignes directrices pour composer une description de tableau
• Incluez une déclaration qui définit avec précision le tableau.
• Incluez une déclaration expliquant pourquoi ce tableau est important pour
l’organisation.
• Rédigez une description claire et succincte.
• N'incluez pas d'informations spécifiques à l'implémentation dans la
description de votre table, telles que la manière et l'endroit où la table est
utilisée.
• Ne faites pas dépendre la description d'une table de la description d'une
autre table.
• N'utilisez pas d'exemples dans une description de tableau.
Lignes directrices pour la création de noms de champs
• Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation.
• Créez un nom qui identifie avec précision, clarté et sans ambiguïté la
caractéristique qu'un champ représente.
• Utilisez le nombre minimum de mots nécessaire pour transmettre la
signification de la caractéristique représentée par le champ.
• N'utilisez pas les acronymes et utilisez judicieusement les abréviations.
• N'utilisez pas de mots qui pourraient confondre la signification du nom du
champ.
• N'utilisez pas de noms qui identifient implicitement ou explicitement plus
d'une caractéristique.
• Utilisez la forme singulière du nom.
Directives pour la création de noms de table
• Créez un nom unique et descriptif qui ait du sens pour l'ensemble de
l'organisation.
• Créez un nom qui identifie avec précision, clarté et sans ambiguïté le sujet
du tableau.
• Utilisez le nombre minimum de mots nécessaire pour transmettre le sujet du
tableau.
• N'utilisez pas de mots qui véhiculent des caractéristiques physiques.
• N'utilisez pas d'acronymes et d'abréviations.
• N'utilisez pas de noms propres ou d'autres mots qui restreindraient
indûment les données pouvant être saisies dans le tableau.
• N'utilisez pas de nom qui identifie implicitement ou explicitement plus d'un
sujet.
• Utilisez la forme plurielle du nom.
Identifier les relations
Utilisez cette procédure pour identifier la relation officielle entre une paire de
tables dans une matrice de table :
1. Sélectionnez une paire de tables et notez l'entrée à la jonction de la
première table et de la deuxième table.
2. Localisez le deuxième tableau du même côté de la matrice sur laquelle vous
travaillez et notez l'entrée et la jonction entre celui-ci et le premier tableau
du côté opposé de la matrice.
3. Appliquez la formule appropriée (affichée ci-dessous) aux deux entrées et
identifiez la relation officielle entre les tables.
1:1 + 1:1 = 1:1
1:N + 1:1 = 1:N
1:N + 1:N = M:N
4. Diagramme de la relation de la manière appropriée.
5. Rayez les deux entrées sur la matrice.
Identifier les exigences de vue
Utilisez cette procédure pour identifier les exigences de vue de votre
organisation.
• Passez en revue vos notes avec le groupe de représentants des
utilisateurs/gestionnaires.
• Passez en revue les exemples de saisie de données, de rapports et de
présentations que vous avez rassemblés au cours des premières étapes du
processus de conception.
• Examinez les tableaux et les sujets qu’ils représentent.
• Analysez les relations entre les tables.
• Étudiez les règles commerciales.
Lignes directrices pour les entretiens
Lignes directrices pour les participants
• Faites prendre conscience aux participants de vos intentions.
• Faites savoir aux participants que vous appréciez leur participation à
l'entretien et que leurs réponses aux questions de l'entretien sont
précieuses pour le projet de conception global.
• Assurez-vous que tout le monde comprend que vous êtes l'arbitre officiel en
cas de litige.
Lignes directrices pour les intervieweurs
• Choisissez une plateforme de réunion appropriée pour mener votre réunion.
• Fixez une limite raisonnable et pratique pour le nombre de personnes
participant à chaque entretien.
• Mener des entretiens séparés pour les utilisateurs et la direction.
• Lorsque vous devez interviewer plusieurs groupes de personnes, désignez
un chef de groupe pour chaque groupe.
• Préparez vos questions avant l’entretien.
• Si vous n'êtes pas très doué pour prendre des notes, confiez cette tâche à
un transcripteur fiable pour chaque entretien ou informez le groupe à
l'avance que vous allez enregistrer l'entretien à des fins de référence.
• Accordez à chacun votre attention égale et sans partage.
• Gardez le rythme de l’entretien en mouvement.
• Gardez toujours le contrôle de l’entretien.
Énoncés de mission
Un énoncé de mission bien rédigé présente les attributs suivants :
• Il exprime son point de vue de manière succincte et immédiate.
• Il évite les déclarations ou les détails inutiles et est bien défini.
• Il évite les expressions ou phrases qui décrivent explicitement des tâches
spécifiques.
• Cela a du sens pour vous (le développeur de la base de données) et pour
ceux pour qui vous concevez la base de données.
Objectifs de la mission
Un objectif de mission bien rédigé possède les attributs suivants.
• Il comprend une phrase déclarative qui définit clairement une tâche
générale et est exempte de détails inutiles.
• Il s’exprime en termes généraux, succincts et sans ambiguïté.
• Cela a du sens pour vous et pour ceux pour qui vous concevez la base de
données.
Intégrité au niveau des relations
Ce type d’intégrité garantit ce qui suit.
• La connexion entre les deux tables (ou champs clés) dans une relation est
solide.
• Vous pouvez insérer de nouveaux enregistrements dans chaque table de
manière significative.
• Vous pouvez supprimer un enregistrement existant sans produire d'effets
indésirables.
• Il existe une limite significative au nombre d'enregistrements pouvant être
interconnectés au sein de la relation.
Résolution d'un champ à valeurs multiples
Utilisez cette procédure générique pour résoudre un champ à plusieurs
valeurs :
1. Supprimez le champ de la table et utilisez-le comme base pour une nouvelle
table. Si nécessaire, renommez le champ conformément aux directives de
nom de champ que vous avez apprises précédemment.
2. Prenez la clé primaire de la table d'origine et intégrez-la dans la nouvelle
structure de table. Ce champ remplira deux fonctions spécifiques dans la
nouvelle table : il fera partie de la clé primaire composite de la table et il
servira de clé étrangère permettant d'établir la relation entre la nouvelle
table et la table d'origine.
3. Attribuez un nom, un type et une description appropriés à la nouvelle table
et ajoutez-la à la liste des tables finales.
Intégrité au niveau de la table
Ce type d'intégrité garantit les éléments suivants :
• Il n'y a pas d'enregistrements en double dans une table.
• La clé primaire identifie exclusivement chaque enregistrement d'une table.
• Chaque valeur de clé primaire est unique.
• Les valeurs de clé primaire ne sont pas nulles.
rtd
qP
ouaeAller au contenu
sercbLes sujets
uahlCommencer à apprendre
En
em vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
èr
C : Directives de conception
tcdD : Formulaires de documentation
rhe E : Symboles des diagrammes de conception de base de données
es
44 minutes restantes
s
m
a
t
i
è
r
e
s
Formulaires de documentation
J'ai fourni ici des copies vierges de la feuille de spécifications de champ, de la
feuille de spécifications de règles métier et de la feuille de spécifications de
vue pour que vous puissiez les copier et les utiliser dans vos projets de base de
données.
rtd
qP
ouaeAller au contenu
sercbLes sujets
uahlCommencer à apprendre
En
em vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
èr
D : Formulaires de documentation
tcdE : Symboles des diagrammes de conception de base de données
rhe F : Échantillons de conceptions
es
44 minutes restantes
s
m
a
t
i
è
r
e
s
Symboles des diagrammes de conception de base de données
Les symboles que j'ai utilisés tout au long du livre pour schématiser les
structures de données, les relations, les caractéristiques des relations et les
désignations clés sont présentés ici pour une référence rapide et facile.
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
E : Symboles des diagrammes de conception de base de données
F : Échantillons de conceptions
G : Sur la normalisation
26 minutes restantes
Exemples de conceptions
J'ai fourni ces exemples de conceptions pour vous servir d' idées pour les bases
de données que vous souhaiterez ou devrez peut-être créer. J'insiste sur le
mot idées car cinq personnes peuvent regarder le même design et proposer
cinq variantes distinctes en fonction de leurs besoins, de leurs antécédents et
de leurs points de vue personnels. N'oubliez pas qu'il n'y a pas de bonne ou de
mauvaise façon de concevoir une base de données donnée, mais vous devez
vous assurer que les tables, les champs, les relations et les vues sont tous
conformes aux directives que vous avez apprises dans ce livre.
J'ai intentionnellement omis tous les champs de chaque table, à l'exception des
champs de clé primaire et étrangère, car je ne voulais pas vous influencer
grandement sur la façon dont les tables devraient être remplies. J'ai également
omis la majorité des caractéristiques relationnelles pour la même raison.
Si vous voyez une conception que vous pourriez utiliser, exécutez-la tout au
long du processus de conception de base de données et traitez-la comme une
base de données existante. À la fin du processus, vous devriez disposer d’une
base de données adaptée à vos besoins.
t
a
b
l
e
d
e
s
P
ar
rem
ac
ht
m
dq
èeiqd
ou
trèuo
se
rces
u
ehu
e
se
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
F : Échantillons de conceptions
G : Sur la normalisation
H : Lecture recommandée
8 millions restants
Sur la normalisation
Je chérirai toujours les premières idées fausses que j’avais à votre sujet.
-INCONNU _
Les gens se demandent souvent pourquoi je n'ai pas abordé la normalisation
dans les éditions précédentes de ce livre, étant donné qu'elle fait partie de la
conception de bases de données traditionnelles depuis si longtemps. Le fait est
qu’il est inutile pour moi d’en discuter pour deux raisons :
1. Une discussion approfondie qui rendrait justice au sujet dépasse la portée
de ce travail, en particulier compte tenu de la méthodologie de conception
non traditionnelle que je présente ici et de la nature « pour les simples
mortels » de l’approche du matériau.
2. De toute façon, la normalisation est intégrée à mon processus de
conception. (Je vais vous expliquer comment dans un instant.)
Je reçois toujours des questions sur ce problème et je vois des commentaires à
ce sujet sur la page Amazon.com du livre . J'ai donc décidé d'inclure une
discussion sur la manière dont le processus de normalisation traditionnel est
intégré dans mon processus de conception. Ceux d'entre vous qui étudient
actuellement le processus traditionnel de conception et de normalisation
comprendront probablement plus clairement ma méthodologie de conception
après avoir lu ce document.
Veuillez noter. . .
Je souhaite clarifier quelques points avant de poursuivre la lecture :
• Veuillez lire « La méthode de conception présentée dans ce livre » et les
sections « Normalisation » vers la fin du chapitre 2 , « Objectifs de
conception »avant de lire quoi que ce soit d'autre dans cette annexe. Ces
sections fournissent une explication globale du pourquoi et du comment j'ai
élaboré ma méthodologie de conception. Ils vous fournissent également le
contexte dont vous avez besoin pour les points dont je discute dans les
sections qui suivent.
• Il ne s'agit pas d'une discussion formelle ou d'un didacticiel sur le
processus de normalisation traditionnel. J'ai recommandé des livres
dans l'Annexe H , « Lectures recommandées », qui traitent de ce sujet assez
bien et de manière très approfondie.
• Je suppose que vous comprenez déjà le processus de normalisation
traditionnel et ses concepts et terminologies associés. Tout au long de la
durée de vie de ce livre, j'ai constaté que les seules personnes
généralement intéressées par cette discussion sont soit des programmeurs
d'applications de bases de données, des personnes connaissant déjà la
normalisation, ou des étudiants qui étudient la normalisation. Ainsi, je
suppose que vous appartenez à un ou plusieurs de ces groupes si vous lisez
cette annexe.
• Il n’existe pas de correspondance littérale entre le processus de
normalisation dans son ensemble et ma méthodologie de conception. La
normalisation est effectivement intégrée à ma méthodologie, mais pas de
manière séquentielle distincte. Alors que la normalisation est une étape
spécifique du processus de conception logique traditionnel, elle est intégrée
de manière transparente tout au long du processus de conception dans ma
méthodologie. Cela deviendra plus clair à mesure que vous lirez le matériel.
• Ma méthodologie de conception produira des tableaux entièrement
normalisés. Cela n’est vrai, cependant, que si vous suivez ma méthodologie
aussi fidèlement que vous le feriez avec la méthodologie traditionnelle ou
toute autre méthodologie. Prendre des raccourcis ou ne pas suivre certaines
parties du processus entraînera de mauvaises structures de table et une
mauvaise intégrité. Mais cela est également vrai si vous faites la même
chose avec toute autre méthodologie, traditionnelle ou autre.
J'espère que vous venez de terminer la lecture des deux sections du chapitre
2 que je vous ai signalées dans le premier point. Je vais maintenant vous
expliquer comment j'ai intégré la normalisation dans ma méthodologie de
conception.
Un bref récapitulatif
Je vais commencer par un bref aperçu de la façon dont j'ai élaboré ma
méthodologie, que vous avez apprise en lisant ces deux sections du chapitre
2.
Commençons cependant par passer en revue les étapes générales de la
méthode de conception traditionnelle :
• Identifiez les principales entités.
• Identifiez les types de relations.
• Déterminez les clés primaires.
• Déterminez les clés étrangères.
• Associez des attributs à des types d’entité ou de relation.
• Déterminez les domaines d’attributs.
• Validez le modèle à l’aide de la normalisation.
• Définir les contraintes d’intégrité.
Les deux choses qui m'ont le plus dérangé dans cette méthodologie étaient le
processus de normalisation (dans son ensemble) et les itérations apparemment
infinies nécessaires pour arriver à une conception appropriée.
Je savais déjà que le but de la normalisation est de transformer un ensemble
de tables mal ou mal conçues en tables aux structures saines. J'ai également
compris le processus : prenez un tableau donné et testez-le par rapport à des
formulaires normaux pour déterminer s'il est correctement conçu. S'il n'est pas
conçu correctement, apportez les modifications appropriées, testez-le à
nouveau et répétez l'ensemble du processus jusqu'à ce que la structure du
tableau soit saine. La figure G.1 montre comment j'ai visualisé le processus à
ce stade.
Figure G.1 Comment j'ai perçu le processus général de normalisation.
Il existe un certain nombre de formes normales, et chacune est utilisée pour
tester un ensemble particulier de problèmes ou de caractéristiques, tels que
des anomalies de modification, des dépendances fonctionnelles, des
dépendances transitives, des dépendances à valeurs multiples, des
dépendances de jointure, des domaines et des clés. Le problème avec les
formes normales est qu’elles peuvent être assez déroutantes pour quiconque
n’a pas pris le temps d’étudier la théorie formelle des bases de données
relationnelles.
À un moment donné, je me suis demandé : « Pourquoi prenons-nous le temps
de créer la base de données aux trois quarts du processus, de nous arrêter
brutalement, puis de déterminer si nous avons conçu nos structures
correctement ? Je pensais que c'était une façon ridicule de faire les choses.
En gardant à l’esprit l’objectif de la normalisation, j’ai ensuite posé les
questions suivantes :
1. Si nous supposons qu'une table entièrement normalisée est conçue
correctement et efficacement, ne devrions-nous pas être en mesure
d'identifier les caractéristiques spécifiques d'une telle table et de les
considérer comme les attributs d'une structure de table idéale ?
2. Ne pourrions-nous pas alors utiliser cette table idéale comme modèle pour
toutes les tables que nous créons pour la base de données tout au long du
processus de conception ?
La réponse à ces deux questions, bien sûr, est « oui », j’ai donc utilisé ce
principe comme base pour ma « nouvelle » méthodologie de conception. J'ai
d'abord compilé des ensembles distincts de lignes directrices pour créer des
structures sonores en identifiant les caractéristiques finales d'une base de
données bien définie qui a réussi les tests de chaque forme normale. J'ai
ensuite effectué quelques tests, en utilisant les nouvelles directives, pour créer
des structures de tables pour une nouvelle base de données et pour corriger
des défauts dans les structures de tables d'une base de données existante. Ces
tests se sont très bien déroulés, j'ai donc décidé d'appliquer cette technique à
l'ensemble de la méthodologie de conception traditionnelle. J'ai formulé des
lignes directrices pour résoudre d'autres problèmes associés à la méthode de
conception traditionnelle, tels que les domaines, les sous-types, les relations,
l'intégrité des données et l'intégrité référentielle. Après avoir suivi les nouvelles
directives, j'ai effectué davantage de tests et j'ai constaté que ma
méthodologie fonctionnait plutôt bien.
Ma méthodologie de conception supprime de nombreux aspects de la
méthodologie de conception traditionnelle que les nouveaux développeurs de
bases de données trouvent intimidants. Par exemple, la normalisation, au sens
traditionnel, est désormais transparente pour le développeur car elle est
intégrée (via les nouvelles directives) tout au long du processus de
conception. La méthodologie est également claire et facile à mettre en œuvre,
ce qui, je pense, est dû au fait que les lignes directrices sont rédigées dans un
anglais simple, ce qui les rend faciles à comprendre pour la plupart des gens.
Je pense que le processus de conception d’une base de données n’est pas et
ne devrait pas être difficile à comprendre. Tant que le processus est présenté
de manière simple et que chaque concept ou technique est clairement
expliqué, n'importe qui devrait être capable de concevoir correctement une
base de données.
Comment la normalisation est intégrée dans ma
méthodologie de conception
Comme je l'ai mentionné plus tôt, il n'existe pas de correspondance directe
entre la normalisation et ma méthodologie de conception. Au contraire, divers
éléments de ma méthodologie travaillent ensemble de manière transparente
pour résoudre les problèmes habituellement abordés par le processus de
normalisation. Mon approche aborde et résout en outre et de manière
transparente d'autres problèmes de conception traditionnels tels que les
valeurs scalaires, les déterminants, les dépendances fonctionnelles, les
domaines, les anomalies de modification, l'intégrité référentielle, la cardinalité
et l'optionnalité.
Examinons d'abord le tableau G.1 et considérons les problèmes fondamentaux
abordés par chaque formulaire normal avant de vous montrer comment mon
système les traite spécifiquement.
Tableau G.1 Questions fondamentales abordées par chaque forme normale
Première forme Traite les dépendances fonctionnelles et à valeurs
normale multiples
Deuxième forme Traite les dépendances fonctionnelles, les
normale dépendances transitives et les champs calculés
Troisième forme Traite les dépendances fonctionnelles et les anomalies
normale de modification
Quatrième forme
Traite les dépendances à valeurs multiples
normale
Cinquième forme
Traite les dépendances de jointure
normale
Sixième forme normale Principalement utilisé sur les données spatiales
Boyce/Codd Forme Traite les clés déterminées et candidates
normale
Forme normale de
Traite les domaines et les clés
domaine/clé
En gardant cela à l’esprit (ainsi que les autres problèmes auxquels j’ai fait
référence plus tôt), je me suis efforcé à l’origine de développer une
méthodologie de conception intégrant tout cela et l’abordant de manière plus
efficace et beaucoup moins répétitive. Je souhaitais également que ma
méthodologie soit claire et facilement compréhensible par quiconque décide de
l'adopter. C'est pourquoi j'ai spécifiquement décidé de m'éloigner du jargon
traditionnel et de l'approche mathématique et d'utiliser plutôt un anglais
simple pour décrire les processus que j'ai développés.
Le tableau G.2 montre comment les différents composants de ma
méthodologie de conception répondent aux problèmes traditionnels de
normalisation et de conception.
Tableau G.2 Comment ma méthodologie répond aux problèmes de
normalisation et de conception traditionnels
Composante de ma
Problèmes de normalisation ou de conception
méthodologie de
traditionnels auxquels il répond
conception
Spécifications des règles
Domaines logiques, tables de validation
métier
Éléments d'une clé Dépendances fonctionnelles, dépendances
candidate/primaire multivaluées, dépendances transitives, déterminés
Éléments d'une clé Clés étrangères, intégrité référentielle, anomalies de
étrangère modification
Éléments du champ Valeurs scalaires, champs à plusieurs valeurs et en
idéal plusieurs parties, valeurs calculées
Éléments de la table Dépendances fonctionnelles, dépendances à valeurs
Composante de ma
Problèmes de normalisation ou de conception
méthodologie de
traditionnels auxquels il répond
conception
multiples, dépendances transitives, dépendances de
idéale jointure, champs en double, données en double et
redondantes, anomalies de modification, sous-types
Intégrité au niveau du Valeurs scalaires, domaines physiques, domaines
terrain logiques, intégrité du domaine
Valeurs scalaires, domaines physiques, domaines
Spécifications du terrain
logiques, intégrité du domaine
Caractéristiques de la
Cardinalité, optionnalité, règles de suppression
relation
Intégrité au niveau des
Intégrité référentielle, clés étrangères
relations
Résolution des champs
Valeurs scalaires, domaines logiques
multiparties
Résolution de champs à
Valeurs scalaires, domaines logiques
valeurs multiples
Intégrité au niveau de la Intégrité de la clé primaire, enregistrements en
table double, dépendances fonctionnelles
Comme je l'ai toujours dit, mon approche traite effectivement de tous les
problèmes que vous aborderiez généralement avec le processus de
normalisation, et elle produira des tableaux entièrement
normalisés. Cependant, cela ne se fera que si vous suivez ma méthodologie
aussi fidèlement que vous le feriez avec la méthodologie traditionnelle ou toute
autre méthodologie. Gardez à l'esprit que vous traitez réellement tous ces
problèmes lorsque vous développez la base de données au lieu d'attendre de
les résoudre jusqu'à ce que vous ayez environ les deux tiers du processus selon
la méthode traditionnelle. J'ai trouvé que c'était une bien meilleure approche
de conception : il y a moins de répétitivité et la conception de la base de
données prend certainement moins de temps.
Conception logique versus conception physique et mise en
œuvre
On me demande parfois pourquoi je n'ai pas inclus davantage de discussions
sur SQL et les problèmes d'implémentation tels que l'indexation, le
partitionnement et la distribution. La réponse est assez simple : j'ai toujours
pensé que le processus de conception logique et les processus de conception
physique et de mise en œuvre devaient être séparés.
Je continue de croire que de nombreuses personnes tombent involontairement
dans le piège de concevoir une base de données basée uniquement sur le
logiciel SGBDR qu'ils utiliseront pour sa mise en œuvre. Dans de nombreux cas,
ils le font parce qu’ils sont déjà assez familiers et compétents avec un SGBDR
particulier ou que leur entreprise ou organisation utilise déjà un SGBDR
particulier. Il s’agit d’une approche peu judicieuse que vous devriez éviter
(autant que possible) pour plusieurs raisons :
• Vous prendrez probablement des décisions de conception en fonction de vos
perceptions de ce que votre SGBDR peut ou ne peut pas faire. Par exemple,
vous pouvez décider de ne pas imposer un certain degré de participation
pour une relation donnée parce que vous pensez que le SGBDR ne vous en
donne pas les moyens.
• Vous laisserez par inadvertance le SGBDR dicter la conception de la base de
données, au lieu de piloter la conception strictement en fonction des
besoins en informations de l'organisation. Cela se produit généralement
lorsque vous découvrez que votre SGBDR ne fournit qu'une prise en charge
limitée pour certains aspects de la base de données, tels que les
spécifications de champ et les caractéristiques des relations.
• Votre conception sera limitée par votre connaissance du SGBDR. Par
exemple, vous pouvez décider de ne pas mettre en œuvre les
caractéristiques relationnelles simplement parce que vous ne savez pas
comment le faire.
• Votre conception sera limitée par vos compétences avec votre SGBDR. Votre
niveau de compétence affecte l'efficacité avec laquelle vous pouvez mettre
en œuvre divers aspects de la base de données, tels que les spécifications
de champ et les règles métier.
• L'utilisation de cette approche pour concevoir une base de données entraîne
généralement une conception structurelle incorrecte, une intégrité des
données insuffisante et des problèmes de données incohérentes et
d'informations inexactes. Définir une base de données dans un SGBDR peut
être trompeusement simple. Vous pouvez créer une base de données qui
fonctionne, mais vous aurez très probablement une mauvaise conception
sans le savoir.
• En fin de compte, le SGBDR que vous connaissez et aimez si bien n’est
peut-être pas adapté aux exigences de base de données de votre
organisation.
Je pense que vous devez toujours concevoir la structure logique de votre base
de données sans tenir compte d'un SGBDR. Ce faisant, vous êtes plus
susceptible de concevoir une structure solide, car vous vous concentrerez sur
les besoins en informations de l'organisation. Une fois votre conception
terminée, vous pouvez alors déterminer clairement comment vous devez
implémenter la base de données (application mono-utilisateur, client/serveur,
basée sur le Web, etc.) et quel SGBDR vous devez utiliser pour faciliter la mise
en œuvre.
(Le contenu précédent se trouve dans la section « Conception de base de
données basée sur le logiciel de base de données » du chapitre 14 ,
« Mauvaise conception : ce qu'il ne faut pas faire », mais j'ai pensé qu'il valait
la peine de le répéter ici.)
J'espère que cela dissipera enfin toute confusion et répondra à toutes vos
questions concernant ma méthodologie de conception et ma normalisation. J'ai
certainement atteint mon objectif si vous comprenez au moins mon approche
un peu plus clairement et voyez comment elle aborde les mêmes problèmes
que la normalisation.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s
Aller au contenu
Les sujets
Commencer à apprendre
En vedette
Recherchez plus de 50 000 cours, événements, titres et bien plus encore
H : Lecture recommandée
Glossaire
Les références
8 millions restants
Glossaire
Récupération d'informations ad hoc Processus d'utilisation de requêtes ad
hoc pour récupérer des informations qui n'apparaissent actuellement dans
aucun rapport ou écran de gestion de données existant.
Requête ad hoc Une requête non prédéfinie que vous posez à l'application de
base de données.
Fonction d'agrégation Un extrait de code de programmation qui exécute un
type particulier d'agrégation mathématique sur un ensemble de données et
renvoie une valeur unique.
Vue agrégée Une vue utilisée pour afficher des informations produites en
agrégeant un ensemble particulier de données d'une manière spécifique.
Clé alternative Clé candidate qui n'a pas été désignée comme clé primaire.
Base de données analytique Type de base de données qui stocke des
données statiques et est utilisée lorsqu'il est nécessaire de suivre des
tendances, d'afficher des données statistiques sur une longue période ou de
faire des projections commerciales tactiques ou stratégiques ; il est
généralement associé à OLAP.
Application Logiciel commercial ou personnalisé généralement hébergé sur
un appareil personnel tel qu'un smartphone et utilisé pour fournir une interface
conviviale pour une base de données.
Application Un logiciel commercial ou personnalisé généralement hébergé sur
un ordinateur personnel ou une tablette PC et utilisé pour fournir une interface
conviviale pour une base de données.
Développement d'applications Processus de conception et de création
d'une application qui servira d'interface utilisateur pour une base de données.
Règle métier orientée application Règle qui impose des contraintes que
vous devez établir dans la conception physique de la base de données ou dans
la conception de l'application de base de données.
Programme d'application Logiciel commercial ou personnalisé qui sert
d'interface utilisateur à une base de données.
Clé de candidat artificielle Un champ créé dans le seul but de servir de clé
de candidat. Son existence est due à l’absence de clés candidates « naturelles
» dans le tableau.
Table associative Voir Table de liaison .
Attribut L'équivalent d'un champ dans le modèle relationnel.
Tables de base Tables qui constituent la base d'une vue.
Spécification de règle métier Représente toutes les caractéristiques d'une
règle métier, telles que l'énoncé de la règle, la contrainte qu'elle impose, les
structures qu'elle affecte, etc.
Règles métier Restrictions ou limitations sur certains aspects d'une base de
données en fonction de la manière dont une organisation perçoit et utilise ses
données.
Champ calculé Champ qui contient une valeur de texte concaténée ou le
résultat d'une expression mathématique.
Liste des champs calculés Une liste de champs qui peuvent être définis
uniquement dans un SGBDR. (Rappelez-vous que vous ne pouvez pas définir de
champs calculés dans une structure de table.)
Cardinalité Type de relation qui existe entre une paire de tables dans une
base de données relationnelle. Voir Relation .
Table enfant Dans une relation donnée, table contenant des enregistrements
qui dépendent explicitement de l'existence d'enregistrements dans la table
associée.
SGBDR client/serveur Type de SGBDR dans lequel les données résident sur
un ordinateur agissant comme serveur de base de données et les utilisateurs
interagissent avec les données via des applications résidant sur leur propre
ordinateur, appelées client de base de données.
Question fermée Une question qui a un ensemble définitif et fini de
réponses. Ce type de question laisse peu de place à d’autres questions de
suivi.
Cloud Type de stockage qui repose sur un pool partagé de ressources
physiques et/ou virtuelles. Il vous permet de stocker et d'accéder à des
données et des programmes via Internet ou un service Internet, ce qui rend
inutile leur conservation sur le disque dur de votre ordinateur. Vous pouvez
accéder à un cloud n’importe où et à tout moment tant que vous disposez
d’une connexion Internet.
Clé primaire composite Clé primaire composée de deux champs ou plus.
Données Les valeurs stockées dans la base de données.
Cohérence des données Chaque occurrence d'une valeur de champ donnée
dans l'ensemble de la base de données est exactement la même.
Formulaire de saisie de données Un écran dans un programme
d'application utilisé pour rassembler et collecter des données.
Intégrité des données Un ensemble de règles ou de lignes directrices qui
régissent la validité, la cohérence et l'exactitude des données dans une base
de données. Les quatre types d'intégrité des données sont les règles de niveau
table, de champ, de relation et de gestion.
Structure de données Construction particulière utilisée pour stocker des
données, telles qu'un champ ou une table.
Table de données Une table qui stocke les données utilisées pour fournir des
informations ; c'est le type de table le plus courant dans une base de données
relationnelle.
Vue de données Une vue utilisée pour examiner et manipuler les données
d'une ou plusieurs tables de base.
Application de base de données Voir Application .
Programme d'application de base de données Voir Programme
d'application .
Processus de conception de base de données Ensemble d'actions
requises pour concevoir la structure logique d'une base de données.
Règle métier orientée base de données Règle qui impose des contraintes
que vous pouvez établir dans la conception logique de la base de données.
SGBD (Database Management System) Un logiciel utilisé pour créer,
maintenir, modifier et manipuler une base de données.
Degré de participation Considérant une relation donnée entre une paire de
tables au sein d'une base de données relationnelle, il s'agit du nombre
minimum et maximum d'enregistrements qu'une table peut avoir associé à un
seul enregistrement dans la table associée.
Règle de suppression Règle qui détermine ce que le SGBDR doit faire
lorsqu'un utilisateur demande la suppression d'un enregistrement donné dans
la table parent d'une relation.
Domaine Voir Spécification du champ .
Intégrité du domaine Voir Intégrité au niveau du champ .
Données en double Valeur de clé non primaire qui apparaît dans plusieurs
tables de la base de données.
Champ en double Un champ qui apparaît dans deux ou plusieurs tables pour
l'une des raisons suivantes : Il est utilisé pour relier un ensemble de tables
entre elles ; cela indiqueplusieurs occurrences d'un type particulier de
valeur ; ou il existe un besoin perçu d’informations supplémentaires.
Données dynamiques Données qui changent constamment et reflètent
toujours les informations les plus récentes.
Éléments d'une clé candidate Un ensemble de lignes directrices utilisées
pour déterminer si un champ donné est apte à servir de clé candidate.
Éléments d'une clé étrangère Un ensemble de directives utilisées pour
déterminer si un champ donné est apte à servir de clé étrangère.
Éléments d'une clé primaire Ensemble de lignes directrices utilisées pour
déterminer si un champ de clé candidat donné est apte à servir de clé primaire.
Éléments du champ idéal Un ensemble de lignes directrices utilisées pour
créer des structures de champ sonore et pour aider à identifier les champs mal
conçus.
Éléments de la table idéale Un ensemble de lignes directrices utilisées pour
créer des structures de table solides et pour aider à identifier les tables mal
conçues.
Utilisateur final Personne qui utilise et travaille avec une base de données ou
un programme d'application de base de données.
Application pour utilisateur final Logiciel commercial ou personnalisé
généralement hébergé sur un appareil personnel tel qu'un smartphone et
utilisé pour fournir une interface conviviale pour une base de données.
Application utilisateur final Logiciel commercial ou personnalisé
généralement hébergé sur un ordinateur ou une tablette et utilisé comme
interface conviviale vers une base de données.
Intégrité de l'entité Voir Intégrité au niveau de la table .
Événement Quelque chose qui se produit à un moment donné (comme un
rendez-vous chez le médecin ou une transaction boursière) et qui peut être
représenté par un tableau.
Informations explicites Informations clairement indiquées dans la réponse à
une question donnée.
Champ La plus petite structure de la base de données. Il représente une
caractéristique du sujet de la table à laquelle il appartient et constitue la seule
structure qui stocke réellement les données dans la base de données.
Intégrité au niveau du champ Ce type d'intégrité des données garantit ce
qui suit : L'identité et le but d'un champ sont clairs, et tous les tableaux dans
lesquels il apparaît sont correctement identifiés ; les définitions des champs
sont cohérentes dans toute la base de données ; les valeurs d'un champ sont
cohérentes et valides ; et les types de modifications, de comparaisons et
d'opérations pouvant être appliquées aux valeurs du champ sont clairement
identifiés.
Spécification de champ Représente tous les éléments généraux, physiques
et logiques d'un champ. (C'est ce qu'on appelle traditionnellement un
domaine.)
Règle métier spécifique au champ Règle qui impose des contraintes sur les
éléments d'une spécification de champ pour un champ donné.
Filtre Un ensemble d'une ou plusieurs contraintes imposées à une vue qui
l'amènent à renvoyer un ensemble spécifique d'informations.
Liste des tables finales Cette liste contient des informations clés (nom, type
et description) sur chaque table de la base de données.
Logique des prédicats du premier ordre Une des deux branches des
mathématiques sur lesquelles est basé le modèle relationnel.
Processus de mise en œuvre L'ensemble des actions requises pour
concevoir une base de données logique et l'incorporer dans un SGBDR
spécifique.
Informations implicites Informations qui ne sont pas expressément
indiquées dans une réponse à une question donnée ; vous devez le déduire de
votre examen de la réponse.
Index Structure au sein d'un programme SGBDR qui peut être utilisée pour
améliorer le traitement des données.
Informations Données traitées de manière à les rendre significatives et utiles
à la personne qui les utilise ou les consulte.
Exigences en matière d'informations Informations qui doivent être prises
en charge par les données de la base de données pour que l'organisation
fonctionne correctement, efficacement et efficacement.
Base de données héritée Voir Base de données héritée .
Clés Champs spéciaux qui jouent des rôles très spécifiques dans une table ; le
type de clé détermine son objectif dans le tableau. Les quatre principaux types
de clés sont candidats, primaires, alternatifs et étrangers.
Base de données héritée Base de données qui existe et est utilisée depuis
plusieurs années ou plus.
Table de liaison Table qui permet d'établir une relation plusieurs-à-plusieurs
entre une paire de tables donnée.
Liste des caractéristiques Une collection de noms qui impliquent divers
attributs des éléments de la liste des sujets.
Liste de sujets Une collection de noms qui représentent des sujets
susceptibles d'intéresser l'organisation.
Indépendance logique des données Les modifications apportées à la
conception logique de la base de données ne doivent pas nécessairement
affecter négativement les applications construites sur la base de données.
Table de recherche Voir Table de validation .
Ordinateur central Un grand ordinateur haut de gamme et extrêmement
puissant, conçu pour gérer littéralement des millions de calculs très intensifs
simultanément.
Relation plusieurs-à-plusieurs Relation entre une paire de tables dans une
base de données relationnelle dans laquelle un seul enregistrement de la
première table peut être lié à plusieurs enregistrements de la deuxième table,
et un seul enregistrement de la deuxième table peut être lié à plusieurs.
enregistrements dans le premier tableau.
Valeur manquante Une valeur de données qui n'a pas été saisie dans un
champ donné en raison d'une erreur humaine.
Objectif de la mission Une instruction qui représente une tâche générale
qu'un utilisateur effectuera sur les données de la base de données.
Énoncé de mission Un énoncé qui établit l'objectif de la base de données et
fournit une orientation distincte pour votre travail de conception.
Appareil mobile Un appareil informatique que vous pouvez facilement
transporter avec vous, comme un smartphone ou une tablette.
Intégrité multiniveau Cela intègre au moins deux des éléments suivants :
l'intégrité au niveau du champ, l'intégrité au niveau de la table, l'intégrité au
niveau des relations et les règles métier.
Champ en plusieurs parties Un champ qui contient plusieurs types de
valeurs distinctes.
Champ à valeurs multiples Un champ qui contient plusieurs instances du
même type de valeur.
Non-clé Un champ qui ne sert pas de clé candidate, primaire, alternative ou
étrangère.
Forme normale Un ensemble spécifique de règles qui peuvent être utilisées
pour tester une structure de table afin de garantir qu'elle est solide et exempte
de problèmes.
Normalisation Processus de décomposition de grandes tables en tables plus
petites pour éliminer les données redondantes et les données en double.
Null Il s'agit d'une condition qui représente une valeur manquante ou inconnue
; il ne représente pas un zéro ou une chaîne de texte composée d'un ou
plusieurs espaces vides.
Objet Un élément tangible (tel qu'une personne, un lieu ou une chose) qui
peut être représenté par un tableau.
OLAP (Online Analytical Processing) Méthode de présentation des données
d'une base de données analytique dans laquelle les données sont résumées et
présentées sous la forme d'un tableau ou d'un cube.
OLTP (Online Transaction Processing) Système permettant de traiter les
transactions dès que l'ordinateur les reçoit et de mettre à jour immédiatement
les fichiers maîtres dans un système de gestion de base de données.
Relation un-à-plusieurs Relation entre une paire de tables dans une base
de données relationnelle dans laquelle un seul enregistrement de la première
table peut être lié à plusieurs enregistrements de la deuxième table, mais un
seul enregistrement de la deuxième table ne peut être lié qu'à un
enregistrement dans la première table.
Relation un-à-un Relation entre une paire de tables dans une base de
données relationnelle dans laquelle un seul enregistrement de la première
table est lié à un seul enregistrement de la deuxième table, et un seul
enregistrement de la deuxième table est lié à un seul enregistrement.
enregistrer dans le premier tableau.
Traitement analytique en ligne Voir OLAP .
Traitement des transactions en ligne Voir OLTP .
Question ouverte Une question à laquelle on peut répondre de diverses
manières et qui peut conduire à d'autres questions de suivi.
Système d'exploitation Ensemble complet de logiciels requis pour gérer et
fournir des services pour le matériel informatique, les équipements
périphériques (tels que les imprimantes et les scanners) et tous les autres
logiciels. L'ordinateur ne peut pas fonctionner sans le système d'exploitation.
Base de données opérationnelle Un type de base de données qui stocke
des données dynamiques et est utilisée dans des situations où il existe un
besoin de collecter, de modifier et de maintenir des données
quotidiennement ; il est généralement associé à OLTP.
Base de données papier Une collection lâche de formulaires, de papiers, de
dossiers en papier, etc., utilisée pour collecter et conserver des données.
Table parent Au sein d'une relation donnée, table contenant des
enregistrements qui ne dépendent pas de l'existence d'enregistrements dans la
table associée.
Analyser Pour décomposer une valeur de données donnée en parties plus
petites et distinctes.
Indépendance physique des données Les modifications apportées par le
fournisseur du logiciel de base de données à la mise en œuvre physique de la
base de données n'affecteront pas négativement les applications construites
sur la base de données.
Liste de champs préliminaire Une liste de champs qui représente les
exigences fondamentales en matière de données de l'organisation et constitue
l'ensemble principal de champs qui doivent être définis dans la base de
données.
Liste de tables préliminaires Ensemble principal de tables qui doivent être
définies dans la base de données.
Clé primaire Champ ou groupe de champs qui identifie de manière unique
chaque enregistrement dans une table.
Environnement de programmation Combinaison d'une plate-forme
informatique donnée (ordinateur central, PC, client/serveur, cloud, etc.), d'un
système d'exploitation et d'un langage de programmation.
Langage de programmation Un logiciel qui peut être utilisé pour définir des
ensembles d'instructions qui seront finalement traitées et exécutées par
l'ordinateur.
Requête Une demande d'informations posée à la base de données via une
instruction de requête SQL.
Query Builder Un outil au sein d'un logiciel de base de données qui permet à
un utilisateur de créer une requête via une interface graphique facile à utiliser.
RDBMS (Relational Database Management System) Un logiciel utilisé
pour créer, maintenir, modifier et manipuler une base de données relationnelle.
Enregistrement Structure composée d'un ensemble complet de valeurs
singulières (qu'elles soient nulles ou non) pour chaque champ d'une table et
représentant une instance unique du sujet de la table.
Relation récursive Voir Relation d'auto-référencement .
Données redondantes Valeur répétée dans un champ en raison de la
participation du champ à la mise en relation de deux tables ou en raison d'une
anomalie dans un champ ou une table.
Champ de référence Voir Champ en double .
Intégrité référentielle Voir Intégrité au niveau relationnel .
Relation L'équivalent d'une table dans le modèle relationnel.
Base de données relationnelle Type de base de données qui stocke les
données dans des relations (perçues par l'utilisateur sous forme de
tables). Chaque relation est composée de tuples (enregistrements) et
d'attributs (champs).
Système de gestion de base de données relationnelle Voir SGBDR .
Modèle relationnel Un modèle de données basé sur la théorie des ensembles
et la logique des prédicats de premier ordre inventée par le Dr Edgar F. Codd.
Relation Interdépendance qui existe entre deux tables lorsque les
enregistrements de la première table peuvent d'une manière ou d'une autre
être associés aux enregistrements de la seconde table. Les trois types de
relations dans une base de données relationnelle sont un à un, un à plusieurs
et plusieurs à plusieurs.
Diagramme de relation Représentation graphique de la relation entre une
paire de tables donnée ou entre un ensemble donné d'enregistrements au sein
d'une table.
Intégrité au niveau des relations Type d'intégrité des données qui garantit
que la relation entre une paire de tables est solide et que les enregistrements
des tables sont synchronisés chaque fois que des données sont saisies, mises à
jour ou supprimées de l'une ou l'autre des tables.
Règle métier spécifique à la relation Règle qui impose des contraintes qui
affectent les caractéristiques d'une relation.
Rapport Tout document manuscrit, dactylographié ou généré par ordinateur
utilisé pour organiser et présenter des données de manière à ce qu'elles soient
significatives pour la ou les personnes qui les consultent.
Présentation par écran Une série d'écrans qui traitent de divers sujets de
manière organisée.
Relation plusieurs-à-plusieurs auto-référencée Une relation qui existe
lorsqu'un enregistrement donné dans une table peut être lié à un ou plusieurs
autres enregistrements dans la table et qu'un ou plusieurs enregistrements
peuvent eux-mêmes être liés à l'enregistrement donné.
Relation un-à-plusieurs auto-référencée Relation qui existe lorsqu'un
enregistrement donné dans une table peut être lié à un ou plusieurs autres
enregistrements dans la table.
Relation un-à-un auto-référencée Relation qui existe lorsqu'un
enregistrement donné dans une table peut être lié à un seul autre
enregistrement dans la table.
Relation d'auto-référencement Relation qui existe entre les
enregistrements d'une table. Semblable à son homologue à table double, une
relation d'auto-référencement peut être un-à-un, un-à-plusieurs ou plusieurs-à-
plusieurs.
Théorie des ensembles Une des deux branches des mathématiques sur
lesquelles est basé le modèle relationnel.
SQL (Structured Query Language) Langage standardisé utilisé pour créer,
maintenir, modifier et interroger des bases de données relationnelles.
Données statiques Données qui ne sont jamais (ou très rarement) modifiées.
Intégrité structurelle Un ensemble de règles ou de directives qui régissent la
manière dont les champs, les tables et les vues sont définis.
Langage de requête structuré Voir SQL .
Table de sous-ensemble Table qui représente un sujet subordonné d'une
table de données particulière.
Table La structure principale d'une base de données. Il est composé de
champs et d'enregistrements et représente toujours un sujet unique et
spécifique.
Description du tableau Une déclaration qui fournit une définition claire du
sujet représenté par le tableau et indique pourquoi le sujet est important pour
l'organisation.
Intégrité au niveau de la table Ce type d'intégrité des données garantit
qu'une table est exempte d'enregistrements en double et que les valeurs de la
clé primaire de la table sont uniques, ne sont jamais nulles et identifient
exclusivement les enregistrements de la table.
Tuple L'équivalent d'un enregistrement dans le modèle relationnel.
Type de participation La manière dont une table participe à une relation
donnée dans une base de données relationnelle. Le type de participation peut
être obligatoire ou facultatif.
Type de relation La manière dont une paire de tables donnée peut être liée
(un à un, un à plusieurs, plusieurs à plusieurs).
Valeur inconnue Une valeur pour un champ spécifique qui n'a pas encore été
déterminée ou définie.
URL Acronyme de Uniform Resource Locator. Il représente une adresse pour
une ressource donnée sur Internet, telle que www.ForMereMortals.com .
Table de validation Table qui stocke les données spécifiquement utilisées
pour mettre en œuvre l'intégrité des données. (Ceci est également connu sous
le nom de table de recherche.)
Vue de validation Une vue utilisée spécifiquement pour implémenter
l'intégrité des données.
Afficher Une table virtuelle composée de champs provenant d'une ou plusieurs
tables de base dans la base de données.
Spécification de la vue Représente toutes les caractéristiques d'une vue,
telles que le nom, le type, les tables de base, etc.
Page Web Un document composé d'un fichier HTML (Hypertext Markup
Language) et des fichiers de support associés accessibles via Internet.
Chaîne de longueur nulle Deux guillemets simples consécutifs sans espace
entre eux.
rtd
qP
ouae
sercb
uahl
em
èr
tcd
rhe
es
s
m
a
t
i
è
r
e
s