|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : novembre 2008 Messages : 270 ![]() |
Bonjour,
J'ai une question concernant le passage du schéma conceptuel à la création de la base de données. Dans le schéma j'ai une entité mère A, deux entités B et C qui héritent de A et une quatrième entité D qui hérite de B. J'ai ajouté cet héritage à la conception pour éviter la répétition d'attributs : B, C et D ont plusieurs attributs en commun. Je veux avoir dans la base de données une table A qui contient toutes les entités qu'il y aura dans les tables B, C et D en plus de ces dernières. Est-ce que si je remplie les sous tables, la table A sera remplie automatiquement ? Et est-ce que cette conception vous semble-t-elle correcte ? Cordialement. |
|
|
00
|
|
|
#2 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Quel SGBD utilises tu?
Je pense qu'il faut évité l'héritage de le modèle entité association! Tu dois avoir un moyen beaucoup plus simple (sans héritage)! N'hésite pas à poster le détail de tes tables si tu veux qu'on t'aide à trouver un autre modèle de donnée
__________________
![]() ![]() ![]() David55 |
|
|
01
|
|
|
#3 | ||
![]() ![]() |
Citation:
A (a_id, colonnes communes...) B (b_id_A, colonnes spécifiques à B...) C (c_id_A, colonnes spécifiques à C...) D (d_id_B, colonnes spécifiques à D...) Citation:
Il faut d'abord insérer dans A puis dans B ou C puis éventuellement dans D. Pour récupérer tous les attributs de D, utilise une vue qui fera une jointure entre D et B et entre B et A. Si ton SGBD supporte les triggers INSTEAD OF sur les vues, tu pourras faire une requête qui insère dans la vue de D et le trigger répartira les données dans les trois tables.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
20
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Bonsoir,
Quelles sont les raisons déterminant votre position ?
__________________
_ 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 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Sinon il faut faire les insertions au sein d'une même transaction à fin de pouvoir annuler (rollback) l'insertion dans A si l'insertion dans B, C ou D échoue. Ce qui exclut l'utilisation du moteur MyIsam sur MySql si tel était ton choix de départ.
|
|
|
00
|
|
|
#6 | |||
|
Membre du Club
![]() Inscription : novembre 2008 Messages : 270 ![]() |
Je vous remercie de vos réponses.
J'utilise ArcCatalog de ArcGIS pour créer la GéoDataBase. David55 a dit : Citation:
CinePhil a dit : Citation:
Sinon, pour les trigger, je ne sais pas si ArcCatalog les supporte ou pas. skuatamad a dit : Citation:
|
|||
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
A lire sur l'héritage et les différentes techniques de passage du MCD au MPD :
http://sqlpro.developpez.com/cours/m...tion/heritage/ Pour ce qui est de l'insertion des données dans les multiples tables, le mieux est de créer une vue et implémenter un trigger INSTEAD OF, comme décrit ici : http://blog.developpez.com/sqlpro/p9...pping-ro-dire/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
10
|
|
|
#8 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Bonjour,
C'est en général comme ça qu'on me l'a appris dans toutes les écoles que j'ai faites ! On me disait que c’était souvent plus compliqué et inutile de le faire ainsi pour générer une base (Je parle bien du MEA et non du diagramme de classe). De plus, dans toutes les entreprises dans lesquelles j'ai travaillé on n'a jamais utilisé d’héritage! Ce qui est sur c'est qu'on peut le faire mais d’après mon apprentissage je l’éviterai ! Il se peut que j'aie tort ou que j'aie mal compris ! Dans ce cas je suis ravi de le savoir C'est en ça que ce site est bien, on en apprend toujours plus! Bon courage (et je suis de près cette conversation car apparemment j'ai tort
__________________
![]() ![]() ![]() David55 |
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Bonsoir,
Citation:
Citation:
Mais à votre âge, tous les espoirs vous sont permis. Je pense que vous tirerez profit de la lecture de la discussion avec Heledir, lequel a découvert avec grand intérêt l’héritage (plus précisément le principe de généralisation/spécialisation), voyez le message #10 et la réaction d'Heledir (message #11 et suivants). Si vous avez des questions, des états d’âme, n’hésitez pas à le faire savoir, tous autant que nous sommes, nous vous aiderons à repartir d’un bon pied. Considérez maintenant deux modèles conceptuels, figurant dans l’ouvrage de référence « La Méthode Merise, Tome 1, Principes et outils », modèles exprimant la même chose : Des constructeurs d’automobiles fabriquent des voitures de différents modèles. Ces constructeurs vendent les voitures à des garages, lesquels les revendent à des particuliers qui à leur tour peuvent les revendre à d’autres particuliers ou à des garages. Ces deux modèles conceptuels font l’objet de quelques réserves, mais lequel des deux vous paraît le plus clair ? 1) Sans héritage (version « Beaubourg ») ![]() 2) Avec héritage (généralisation) ![]() A titre d'exercice, je vous laisse le soin de procéder à la dérivation de ces modèles conceptuels en modèles "logiques" (et d'en profiter le cas échéant pour remédier à telle ou telle faiblesse de conception).
__________________
_ 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
|
|
|
#10 |
![]() ![]() David S.Etudiant en alternance Inscription : août 2010 Messages : 1 167 ![]() |
Merci pour l'info
PS: il ne faut pas remettre en question mes écoles et entreprises, ça peut être moi qui ait mal compris ! Maintenant je le sais
__________________
![]() ![]() ![]() David55 |
|
|
10
|
|
|
#11 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 882 ![]() |
Citation:
Allez en paix...
__________________
_ 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
|
|
|
#12 |
|
Membre du Club
![]() Inscription : novembre 2008 Messages : 270 ![]() |
Bonjour,
J'ai utilisé l'héritage avec Postgresql et la table mère se remplit automatiquement lorsque je remplis la table fille. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com