|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 92 ![]() |
Bonjour,
Voici un diagramme UML avec 4 classes : ![]()
Il existe pas mal de façon de modéliser le schéma de base de données correspondant. J'aurais tendance à ne créer que 3 tables (A, C et D), mais je trouve que ça fait pas mal de clés étrangères qui seront parfois vides... Quelle serait votre proposition de schéma de BD ? Par avance, merci pour votre aide ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 883 ![]() |
Bonjour thomine,
Une proposition : Du point de vue de la théorie relationnelle (ou Modèle Relationnel de Données), B mérite de faire l’objet d’une variable relationnelle (relvar, dont la table SQL est un avatar). En effet, cette théorie ne peut s’accommoder du bonhomme NULL, dont on se débarrassera en procédant ainsi. Par ailleurs, a vue de nez, votre système a un côté nomenclature prononcé, d’où le diagramme logique que je vous propose : Selon votre diagramme de classes, seul un objet C peut être composé. En conséquence, la contrainte (exprimée en Tutorial D) signifie : Une valeur de l’attribut IdbParent de la table N ne peut pas être une valeur de l’attribut IdB de la table D. Si vous utilisez SQL, la contrainte fera l’objet d’une assertion (ou d’un trigger si votre SGBD ne connaît pas l’instruction CREATE ASSERTION).
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
10
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 92 ![]() |
Bonjour fsmrel et merci pour votre réponse intéressante.
J'ai tardé à répondre mais j'avoue avoir eu du mal à bien comprendre les explications, certaines notions me faisant défauts (avatar, bonhomme null, nomenclature prononcée...) Bref, en étudiant plus attentivement le schéma, je crois avoir compris la logique. Pour reformuler avec mes mots :
Merci de me corriger si je me trompe... En tout cas je n'aurais pas pensé à cette solution qui me plait bien, la mienne étant plus basique et moins élégante. Si quelqu'un a une autre solution et souhaite contribuer, je suis preneur ! |
|
|
00
|
|
|
#4 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 883 ![]() |
Bonjour thomine,
Citation:
Citation:
Citation:
N.B. Attention au vocabulaire, le terme champ est disqualifié. En SQL on utilise celui de colonne et en Tutorial D (conforme à la théorie relationnelle), on utilise le terme attribut. Oui. Oui. Citation:
Si vous avez des questions sur le reste, n’hésitez pas à les poser. Bonne route !
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||||
|
|
10
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : octobre 2004 Messages : 92 ![]() |
Bonjour fsmrel.
Je n'avais pas encore vu ta réponse. Merci beaucoup pour ces explications très complètes et instructives (la modélisation d'une BD, ça s'improvise pas !) et le temps passé. Les explications sont claires, je passe en résolu ! |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com