Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
801 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Modélisation BD] Besoin d'infos sur les spécialisations

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Modélisation BD] Besoin d'infos sur les spécialisations

n°159949
Masure
Posté le 15-06-2002 à 18:26:14  profilanswer
 

Voila je modélise une base de données, et celle ci nécessite pas mal de spécialisation si je veux suivre parfaitement la logique. Par manque d'experience, je ne sais pas quelles sont les consequences d'une abondance de spécialisation dans une base.  
 
J'aimerais savoir si ca ne pose pas de probleme au nivo rapidité et cohérence ds les requetes future.  
 
Sinon quelles sont les alternatives aux spécialisations ?

mood
Publicité
Posté le 15-06-2002 à 18:26:14  profilanswer
 

n°159985
MelloW
Posté le 15-06-2002 à 19:25:02  profilanswer
 

Masure a écrit a écrit :

Voila je modélise une base de données, et celle ci nécessite pas mal de spécialisation si je veux suivre parfaitement la logique. Par manque d'experience, je ne sais pas quelles sont les consequences d'une abondance de spécialisation dans une base.  
 
J'aimerais savoir si ca ne pose pas de probleme au nivo rapidité et cohérence ds les requetes future.  
 
Sinon quelles sont les alternatives aux spécialisations ?  



Je suppose que tu parles de "subtyping", sinon tu peux ignorer le reste...
J'en ai aucune idée, je ne me suis jamais pênché sur la question et ca remonte à assez loin (l'année passé :D ) Mais tu pourrais à partir de ton modèle, génèrer qq tableaux. Et je dirais que si tes spécialisations génèrent plus de tableaux que sans spécialisations  (donc si les différents attributs se retrouvent plus éparpiler à gauche et à droite) -> la performance sera moindre à cause des "cross joins" que tu devras utiliser pour chercher les valeurs dans les différents tableaux.
Une alternative aux spécialisations, c'est tout bêtement de reprendre les attributs du niveau au dessus et de les réutiliser en ajoutant les spécialisations que t'as besoin...
Avec quoi modèlises tu ta BD? ORM? ER? ...


Message édité par MelloW le 15-06-2002 à 19:30:42
n°159996
Masure
Posté le 15-06-2002 à 19:34:46  profilanswer
 

euh g pas tout compris dslé, mais sinon je modelise avec windesign... je c pas si c connu

n°160013
MelloW
Posté le 15-06-2002 à 20:18:15  profilanswer
 

Masure a écrit a écrit :

euh g pas tout compris dslé, mais sinon je modelise avec windesign... je c pas si c connu  



Connait pô, désolé... avec l'ORM (object role modeling) et ER (entity relationship), tu dessines des diagrammes (un peu dans le style de l'uml) et avec un programme (comme certaines versions de Visio de M$) tu sais génèrer des BD (dans le normal form que tu veux) à partir du diagramme.

n°160023
Masure
Posté le 15-06-2002 à 20:41:27  profilanswer
 

ouais mon prog fait ca aussi, la spécialisation est modélise sous forme d'un triangle qui "aiguille" vers plusieurs propriétes en fonction de la valeur prise par une propriété maitresse.
 
http://aragorn.dunadan.free.fr/mcd_specialisation.gif


Message édité par Masure le 15-06-2002 à 20:48:41
n°160047
MelloW
Posté le 15-06-2002 à 22:20:26  profilanswer
 

Je vois, c'est dans le même style que les 2 autres (surtout ER, mais perso je trouve l'ORM bien mieux foutu).
Tu devrais essayer de génèrer ta BD avec les spécialisations et puis sans spécialisations. Tu regardes si les attributs de Majeur, de Mineur et Enfant (pour enfant j'emploierais plutôt Personne pour l'identifier ;) ) se retrouvent plus ou moins éparpiller à travers les diffèrents tableaux (selon la méthode employée -> avec ou sans spécialisation). Au plus ces attributs seront éparpiller, au plus les requetes sur ces attributs prendront du temps à être éffectué (pcq il devra aller chercher des données dans différents tableaux). La requete sera aussi plus dure à formuler.
Pour enlever les spécialisations tu rajoutes tout les attributs d' Enfant à Majeur et Mineur (et tu vires Enfant) et tu rajoutes des liens vers Point de Rammassage. Je ne sais pas si WinDesign le permet par contre... (on dirait pas...)
En ORM tu peux génèrer des diagrammes intermediaire (des database schemas -> une représentation prôche des tableaux) avec les quels tu peux bidouiller pour optimiser les performances de ta BD.
Tout ca reste hypothétique, je ne sais pas si le fait d'utiliser des spécialisations ont une influence sur la base de donée. En tout cas moi j'utilisais assez bien de spécialisations et on ne m'a jamais dit que cela avait une influence sur la BD (et j n'ai jamais vérifier... pcq cela m'étonerait très fort. Les spécialisations sont la pour faciliter le boulot au niveau conceptuel et donc nôtre boulot. Ce serait bien môche que cela ait des répercutions sur la BD).

n°160051
Masure
Posté le 15-06-2002 à 22:26:18  profilanswer
 

je crois que tu parles du mld, qui présente les tables je l ai généré d'apres le mcd du haut (avec spécialisation). Dis moi ce que tu en pense :
 
http://aragorn.dunadan.free.fr/mld.gif

n°160170
MelloW
Posté le 16-06-2002 à 11:51:49  profilanswer
 

Une autre manière de le faire (j y avais pas pensé), c'est d'absorber tout de Majeur et de Mineur dans Enfant. Tu perderas qq "constraint" en chemin (comme le fait que Mineur a un lien de parenté avec Parent, mais Majeur pas). Donc tu rajoutes Numéro_Sécu, Groupe_Sanguin, Adresse, ID_Parent, Lien_Parenté à Enfant (tu vires Majeur et Mineur).
Fais ça et regardes cmt les différents attributs de Mineur, Majeur, et Enfant sont distribué à travers les différents tableaux.
J'ai ouvert un de mes bouquin ce matin, pour regarder cmt le mapping se faisait. Il y a 3 méthode: l'absorption -> les attributs des spécialisations (Majeur et Mineur) sont absorbé dans le tableau génèral (Enfant), la séparation -> les attributs des spécialisations sont mits dans des tableaux séparés (donc un tableau pour chaque spécialisation + un tableau avec les attributs de la génèralisation), une partition -> si les spécialisations forment une partition de la génèralisation: un tableaux pour chaque spécialisation et chacun de ces tableaux reprend les attributs de la génèralisation.
Comme tu peux le voir il y a 3 possibilité, je ne sais pas laquelle des 3 est exploité dans WinDesign (pour les autres non plus d'ailleurs). Essaies et tu veras...
 
ps: La spécialisation est utilisé pour explicitement mettre l'accent sur les rôles optionels. Si tu enleves les spécialisations tu ne sais pas éxprimer ce côté optionnel des chôses... à toi de voir cmt le traduction est fait (du diagramme vers les tableaux).

n°160177
Masure
Posté le 16-06-2002 à 12:30:26  profilanswer
 

Je ne pense pas que l'absorption se fasse en fonction du logiciel, c'est pas plutot en fonction des cardinalités (0,n - 1,1 - 0,1) ?
 
Faudrait que je garde le coté optionnel, mais en fait c'est pas trop la rapidité qui va primer mais surtout le respect des informations (options) donc je pense que je vais garder mes spécialisations et générer comme ça. Si je vois que c'est la panique, je teste un autre modèle

n°160181
MelloW
Posté le 16-06-2002 à 12:48:51  profilanswer
 

Masure a écrit a écrit :

Je ne pense pas que l'absorption se fasse en fonction du logiciel, c'est pas plutot en fonction des cardinalités (0,n - 1,1 - 0,1) ?
 
Faudrait que je garde le coté optionnel, mais en fait c'est pas trop la rapidité qui va primer mais surtout le respect des informations (options) donc je pense que je vais garder mes spécialisations et générer comme ça. Si je vois que c'est la panique, je teste un autre modèle  



C'est en fonction de l'algorithme de conversion. Par exemple VisioModeler (un logiciel comme WinDesign) permet d'influencer l'éxècution de l'algorithme... j crois pas que les cardinalités ont qq chôse à voir.
L'absorption a un désavantages -> tu perds le côté optionnel de la chôse, puisque tout se retrouve dans un et même tableau.
J crois que garder les options est le mieux à faire et comme tu dis, si la performance en prend un coup -> tu changes ton modèle.

mood
Publicité
Posté le 16-06-2002 à 12:48:51  profilanswer
 

n°160182
Masure
Posté le 16-06-2002 à 12:50:40  profilanswer
 

et bien vraiment merci pour tout, c'est pas evident de trouver qqun qui sy connait en modelisation ici, ca soulage d'avoir un autre avis !

n°160187
MelloW
Posté le 16-06-2002 à 13:02:39  profilanswer
 

Masure a écrit a écrit :

et bien vraiment merci pour tout, c'est pas evident de trouver qqun qui sy connait en modelisation ici, ca soulage d'avoir un autre avis !  



De rien, :hello: . C'est à cause de 2 de mes profs qu'ont travaillé sur l'ORM... un qui nous a soualer avec l'ORM ;) (tu devrais voir, on dirait que WinDesign à pompé dessus ou le contraire ;) ) et qui d'ailleurs a rajouté les spécialisations dans l'ORM (véridique) :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Modélisation BD] Besoin d'infos sur les spécialisations

 

Sujets relatifs
Besoin d'aide sur une routine dos ... aidez moi mercibesoin tutoriaux pour mvs ou neogeo
[JAVASCRIPT] menu dynamique : besoin d'aide !!!![JAVASCRIPT] menu dynamique : besoin d'aide !!!!
[VC++] URGENT !!! Besoin d'aideurgent besoin tutorial
urgent besoin tutorial[VB] Recuperer des infos dans winamp
[javascript] j'ai besoin d'aide c bizarre comme trucBesoin d'aide en c++ , Gestion fichier et repertoire !
Plus de sujets relatifs à : [Modélisation BD] Besoin d'infos sur les spécialisations


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR