Précédent   Forum des professionnels en informatique > Bases de données > Décisions SGBD
Décisions SGBD Forum de décisions sur le choix en bases de données. Le Comparatif
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/07/2006, 09h34   #1
Invité régulier
 
Inscription : mai 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 17
Points : 7
Points : 7
Par défaut Héritage => table sans attribut !?

Bonjour tout le monde

J’ai modélisé une base de données à l’aide de Merise.

Utilisant la notion de généralisation / spécialisation (hiérarchie), certaines de mes entités spécialisées (filles) ne contiennent aucun attributs.

Je me suis d’abord demandé si cette représentation était correcte, puis en générant le code à l’aide de Dbmain, je me suis aperçu que les tables créent à partir de ces entités (spécialisées sans attribut et avec une contrainte de partition (totalité et d’exclusion)) n’avaient aucun attribut.

Ex :
Entité générale
personne (prenom, nom, age, sexe)
Entités spécialisées
----> ami (annee_rencontre)
----> connaissance ()
----> famille (membre, lien_parente)

Avec une contrainte de partition, j'obtiendrai une table connaissance sans atrtribut (sous DBmain).

Une table sans aucun attribut ça n’a aucun sens, mais j’ai réellement besoin d’utiliser cette notion de généralisation / spécialisation.

# Dois-je ajouter la clé de la table personne dans les tables filles (ce que ne fait pas DMmain lorsque il y a une contrainte de partition) ?

Je ne sais pas trop comment m'y prendre donc si quelqu'un a un conseil, ça serait sympa, merci.
GnouDream est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2006, 16h12   #2
C_C
Membre du Club
 
Inscription : novembre 2005
Messages : 139
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 139
Points : 55
Points : 55
Envoyer un message via MSN à C_C
Salut,

Je n'ai jamais utilisé Merise donc mon avis est basé sur la conception de bases de données en général.
L'existance de tables sans attributs n'est pas une erreur de même que si la table n'existe pas cela ne sera pas une erreur. Si tu gardes la table connaisance() ton schéma sera plus lisible et plus facile à expliquer. Par conséquent, je pense que pendant la programmation de la BD ça t'évitera quelques confusions que tu puisses faire.
Quand il y a des généralisations, il faut que les tables filles aient la même clé que la table mère, donc, si DbMain ne le fait pa, tu devrais peut-être les ajouter.
C_C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2006, 16h40   #3
Membre habitué
 
Inscription : février 2006
Messages : 118
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 118
Points : 116
Points : 116
Je suppose que le but de ta base de données c'est quand même de pouvoir dresser la liste des "connaissances".

Pour que ce soit possible je vois 2 possibilités:
1) les enregistrements de "personne" contiennent un attribut donnant cette information.
2) La table connaissance contient les id de "personne".

Dans le 1er cas, alors tu ne pourras jamais avoir une personne faisant partie à la fois de "famille" et de "ami", ce qui je suppose n'est pas l'idéal.

Bref, moi je pense que le mieux c'est de mettre une FK dans les tables filles. Je pense d'ailleurs que c'est indispensable si on veut pouvoir affirmer qu'une personne est bien une "connaissance".

J'espère ne pas me tromper car j'ai assez peu utilisé ce type de lien.
yizashi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2006, 15h25   #4
Invité régulier
 
Inscription : mai 2005
Messages : 17
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 17
Points : 7
Points : 7
Merci, c'est quelques conseils me suffisent pour régler mon problème.
Merci d'avoir pris de votre temps
GnouDream est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h39.


 
 
 
 
Partenaires

Hébergement Web