IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Classification botanique : hiérarchie de compositions … ou presque


Sujet :

Schéma

  1. #1
    Invité
    Invité(e)
    Par défaut Classification botanique : hiérarchie de compositions … ou presque
    Bonjour

    J'ai un problème pour passer du MCD au MLD présenté ci-dessous.

    Les règles :
    • Une plante peut faire partie d’une variété et ne peut en faire partie que d’une seule.
    • Une variété peut comporter une ou plusieurs plantes.
    • Une plante peut faire partie d’une espèce et ne peut en faire partie que d’une seule.
    • Une espèce peut comporter une ou plusieurs plantes.
    • Une plante fait obligatoirement partie d’un genre et seulement d’un.
    • Un genre peut comporter une ou plusieurs plantes.
    • Une variété peut faire partie d’une espèce et ne peut en faire partie que d’une seule.
    • Une espèce peut comporter une ou plusieurs variétés.
    • Une variété fait obligatoirement partie d’un genre et seulement d’un.
    • Un genre peut comporter une ou plusieurs variétés.
    • Une espèce fait obligatoirement partie d’un genre et seulement d’un.
    • Une genre peut comporter une ou plusieurs espèces.


    La version graphique du MCD est disponible en pièce jointe.


    La hiérarchie est normalement la suivante :
    Une plante possède une variété qui possède une espèce qui possède un genre.
    Cependant, la variété et/ou l'espèce est parfois absente de cette hiérarchie. Du coup, on peut se retrouver avec une des hiérarchies suivantes :
    • Une plante possède une variété qui possède un genre (pas d'espèce).
    • Une plante possède une espèce qui possède un genre (pas de variété).
    • Une plante possède un genre (ni variété ni espèce).


    C'est ce caractère optionnel qui m'embête car dans tous les cas une plante fait partie d'un genre. Dans le cas où la plante fait aussi partie d'une variété et d'une espèce, on pourrait donc retrouver le genre de trois manières différente :
    • plante -> genre
    • plante -> espèce -> genre
    • plante -> variété -> espèce -> genre


    Edit (06/05/2012 14:20) : on pourrait donc retrouver le genre de quatre manières différentes :
    • plante -> genre
    • plante -> espèce -> genre
    • plante -> variété -> espèce -> genre
    • plante -> variété -> genre


    Bien entendu, il faut que le genre soit le même peu importe la manière dont on le retrouve.

    Quelqu'un aurait-il une idée pour modéliser ce problème de manière normalisée ?

    Merci
    Images attachées Images attachées  
    Dernière modification par Invité ; 06/06/2012 à 14h20.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Bonsoir titinetine,


    Une approche possible est de considérer que les plantes (classe ou entité-type P ci-dessous) sont classifiables selon trois catégories : celles qui appartiennent à des variétés (PV), celles qui n’appartiennent pas à des variétés mais à des espèces (PE) et enfin celles qui n’appartiennent pas à ces deux catégories, mais seulement à des genres (PG).

    Du point de vue de la modélisation, cette classification se traduit par la spécialisation de P en sous-classes (sous-types) PV, PE, PG. Selon la représentation graphique de Power AMC :



    La demi-lune contient la lettre X, ce qui signifie qu’une plante est d’une sous-classe et une seule (exclusion).
    La demi-lune est soulignée, ce qui signifie que l’ensemble PV PE PG est complet, il n’existe pas de plante qui n’appartienne à l’union des trois sous-classes (totalité).

    PV, PE et PG constituent des partitions de P.


    On définit ensuite les relations de ces sous-classes avec les classes (entités-types) V (Variété), E (Espèce) et Genre (G).

    A noter que la patte connectant E et PEE est 0,N et non pas 1,N, car même si une espèce comporte au moins une plante, il es préférable de modéliser le fait que certaines plantes ne se rattachent qu’indirectement aux espèces, c'est-à-dire via des variétés. Même principe pour la patte connectant G et PGG, toutes choses égales :



    A son tour, la sous-classe V des variétés peut faire l’objet d’une spécialisation en variétés rattachées soit à des espèces (sous-classe VG), soit à des genres (sous-classe VE) :




    On peut alors compléter les relations :



    Pour en revenir aux cardinalités 0,N, il faut modéliser le fait que 0,N + 0,N = 1,N (sic), c'est-à-dire qu’il n’existe pas d’espèce qui ne soit en relation soit avec des plantes (via PEE), soit avec des variétés (via VEG) et de la même façon qu’il n’existe pas de genre qui ne soit en relation soit avec des plantes (via PGG), soit avec des variétés (via VGG), soit avec des espèces (via EG).

    A cet effet on peut représenter des contraintes de totalité, telles qu’elles sont définies en Merise/2.

    Ainsi, chaque cercle (ici en rouge) symbolise une contrainte de totalité (T). Les traits pleins (en rouge) permettent de connecter les associations-types impliquées dans les contraintes et les traits en pointillés symbolisent les pivots des contraintes, c'est-à-dire l’implication directe des entités-types dans les contraintes :



    Si l’on se place au niveau du Modèle Relationnel de Données, on doit vérifier la contrainte :
    E{EspeceId} = PE{EspeceId} UNION VE{EspeceId} ;

    C'est-à-dire que la projection de la variable relationnelle (relvar) E sur l’attribut EspeceId doit être égale à l’union des projections des variables PE et VE sur ce même attribut.

    De même, on doit vérifier la contrainte :
    G{GenreId} = PG{GenreId} UNION E{GenreId} UNION VG{GenreId} ;


    Notez l’absence de cardinalités 0,1 dans le MCD.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour et merci pour cette réponse agréablement claire et pédagogique !

    Beaucoup de notions sont nouvelles pour ma part et je vais m'empresser de lire votre tutorial afin d'éclaircir tout ça.

  4. #4
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Titinetine et Fsmrel,

    Pour compléter la réponse de Fsmrel, nous ne coupons pas, en final, au développement de "contrôles croisés" dans tous les coins et recoins via des triggers.

    Vite fait :
    Genre(IdGenre, ...)

    Espece(IdEspece, #IdGenre, ...)
    ==> trigger de contrôle : Genre de Espece = Genre de Espece de Plante_Espece
    Variete(IdVariete, #IdGenre, ...)
    ==> trigger de contrôle : Genre de Variete = Genre de Variete de Plante_Variete
    Plante(IdPlante, #IdGenre, ...)
    ==> trigger de contrôle : Genre de Plante = Genre de Espece de Plante_Espece
    ==> trigger de contrôle : Genre de Plante = Genre de Variete de Plante_Variete
    ==> trigger de contrôle : Genre de Plante = Genre de Variete de Variete_Espece
    Variete_Espece(#IdVariete, #IdEspece, ...)
    ==> trigger de contrôle : Genre de Espece de Variete_Espece = Genre de Espece
    Plante_Espece(#IdPlante, #IdEspece, ...)
    ==> trigger de contrôle : Genre de Espece de Plante_Espece = Genre de Plante
    Plante_Variete(#IdPlante, #IdVariete, ...)
    ==> trigger de contrôle : Genre de Variete de Plante_Variete = Genre de Plante

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour Richard_35

    Merci également de l'attention que vous portez à mon souci.

    Je ne vois pas tout à fait comment interpréter vos triggers de contrôle mais il me semble que le modèle proposé par fsmrel a pour qualité de garantir l'intégrité de manière référentielle et non par une série de triggers.

    En ce qui concerne les contraintes de spécialisation et de totalité, je ne vois pas, pour l'instant, comment les mettre en place mais je n'ai effectivement pas terminé mes recherches pour implémenter cette modélisation. Mais peut-être que pour ces contraintes et pour ces contraintes uniquement, alors les triggers seront nécessaires.

    Pour les entités, j'imagine plutôt quelque chose comme cela :

    Plante(IdPlante, ...)
    Variete(IdVariete, ...)
    Espece(IdEspece, #IdGenre, ...)
    Genre(IdGenre, ...)
    Plante_Variete(#IdPlante, #IdVariete, ...)
    Plante_Espece(#IdPlante, #IdEspece, ...)
    Plante_Genre(#IdPlante, #IdGenre, ...)
    Variete_Genre(#IdVariete, #IdGenre, ...)
    Variete_Espece(#IdVariete, #IdEspece, ...)

  6. #6
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Titinetine
    Plante_Genre(#IdPlante, #IdGenre, ...)
    Variete_Genre(#IdVariete, #IdGenre, ...)
    ==> ne semble pas nécessaire car :
    Citation Envoyé par Titinetine
    • Une plante fait obligatoirement partie d’un genre et seulement d’un.
    • Une variété fait obligatoirement partie d’un genre et seulement d’un.
    Variete(IdVariete, #IdGenre, ...)
    Plante(IdPlante, #IdGenre, ...)
    devrait être nécessaire et suffisant.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Effectivement, ma connaissance fait défaut pour le moment.
    Quand il va falloir que je représente/implémente ma contrainte de spécialisation de P en sous-classes PV, PE, PG, ne faut-il pas que je conserve une entité PG ? Même question pour l'autre spécialisation.

  8. #8
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Citation Envoyé par Titinetine
    Quand il va falloir que je représente/implémente ma contrainte de spécialisation de P en sous-classes PV, PE, PG, ne faut-il pas que je conserve une entité PG ? Même question pour l'autre spécialisation.
    ==> je ne maîtrise pas trop cette partie, désolé : Fsmrel te répondra, sans aucun doute.

    Sinon, les entités et leurs attributs collent bien aux règles de gestion que tu as énoncées.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci de votre aide.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 348
    Points : 36 871
    Points
    36 871
    Par défaut
    Salut,

    Tout cela me semble fort compliqué!

    En fait les plantes sont des objets et leur classification permet de construire une relation "is a" entre Plante et sa Classification.

    Côté Classification, c'est une hiérarchie simple: genre/espèce/variété i.e
    ses éléments ont une relation "part of": une relation réflexive entre items de la classification.
    Ce qui est intéressant est que nombre de contraintes sont satisfaites par les propriétés de la structure - pas besoin d'en ajouter.

    Enfin c'est une autre approche.

    Cordialement,
    - W

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour wiztricks

    La classification n'est pas une hiérarchie 'simple' : genre/espèce/variété/plante.
    Ici l'espèce et/ou la variété ne font pas forcément partie de la hiérarchie. Par exemple, je n'ai pas dis :
    Une plante fait obligatoirement partie d’une variété et seulement d'une.
    mais :
    Une plante peut faire partie d’une variété et ne peut en faire partie que d’une seule.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 348
    Points : 36 871
    Points
    36 871
    Par défaut
    Salut,

    Citation Envoyé par titinetine Voir le message
    La classification n'est pas une hiérarchie 'simple' : genre/espèce/variété/plante.
    Ici l'espèce et/ou la variété ne font pas forcément partie de la hiérarchie.
    Ecrivons:
    • Plante 1 ---- is a ---> 0, 1 Classification
    • Classification 1 ---part of ---> 0, 1 Classification


    La relation entre Plante et leur classification Genre/Espèce/Variété n'est plus la spécialisation mais des associations particulières entre des entités séparées: Plante et Classification.

    La classification est une hiérarchie simple.
    Ses éléments peuvent être un "genre", "espèce" ou "variété" et seront "part of" suivant leur type.

    Par exemple, je n'ai pas dis :
    Une plante fait obligatoirement partie d’une variété et seulement d'une.
    mais :
    Une plante peut faire partie d’une variété et ne peut en faire partie que d’une seule.
    Une plante a au plus une classification, appelons la C.
    Si C est de type "variété", la plante sera associé qu'à une seule variété V, à une seule espèce E (dont V est part of) et à un seul genre G - dont E est "part of".
    Rien n'empêche que C soit seulement espèce ou genre.

    - W

  13. #13
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 112
    Points : 31 586
    Points
    31 586
    Billets dans le blog
    16
    Par défaut
    Bonjour,


    Citation Envoyé par Richard_35 Voir le message

    Citation Envoyé par titinetine Voir le message
    Plante_Genre(#IdPlante, #IdGenre, ...)
    Variete_Genre(#IdVariete, #IdGenre, ...)
    ==> ne semble pas nécessaire car :
    Citation Envoyé par titinetine Voir le message
    Une plante fait obligatoirement partie d’un genre et seulement d’un.
    Une variété fait obligatoirement partie d’un genre et seulement d’un.
    Variete(IdVariete, #IdGenre, ...)
    Plante(IdPlante, #IdGenre, ...)
    devrait être nécessaire et suffisant.
    Non, vous revenez à la case départ et je me suis donc donné du mal pour rien : je vous prie de noter que, sans en faire explicitement mention, j’ai appliqué la règle de la transitivité selon laquelle :

    Si A -> B et B -> C alors A -> C

    C’est le sens de ce que j’ai écrit, dans le but de faire la chasse aux redondances :
    Citation Envoyé par fsmrel Voir le message
    il est préférable de modéliser le fait que certaines plantes ne se rattachent qu’indirectement aux espèces, c'est-à-dire via des variétés.
    Ainsi, si une plante P1 se rattache à une variété V1 qui se rattache à une espèce E1 alors la plante P1 se rattache à l’espèce E1.

    De la même façon, si une plante P1 se rattache à une variété V1 qui se rattache à une espèce E1 qui se rattache elle-même à un genre G1, alors cette plante se rattache au genre G1.

    En conséquence, une plante fait certes « obligatoirement partie d’un genre et d’un seul », mais c'est une conclusion inférée de prémisses dont vous n'avez pas tenu compte :
    La plante P1 fait partie de la variété V1,
    La variété V1 fait partie de l’espèce E1,
    L’espèce E1 fait partie du genre G1 ;
    La plante P1 fait partie du genre G1.
    Autrement dit, en faisant l’impasse sur l’aspect syllogistique des choses, votre conclusion « devrait être nécéssaire et suffisant » ne vaut pas ici, sinon, outre programmer les prémisses, il faudrait programmer de façon redondante la conclusion et si Guillaume d'Ockham passait par là, il sortirait son rasoir, timeo referens...

  14. #14
    Invité
    Invité(e)
    Par défaut
    @wiztricks

    Je ne comprends pas bien votre idée, pensez-vous à quelque chose comme ça (voir pièce jointe) ?

    Edit : avec l'attribut type étant de type énuméré ('variété', 'espèce' ou 'genre')
    Images attachées Images attachées  

  15. #15
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour Fsmrel,

    Citation Envoyé par Fsmrel
    Ainsi, si une plante P1 se rattache à une variété V1 qui se rattache à une espèce E1 alors la plante P1 se rattache à l’espèce E1.
    ==> j'entends bien, mais une plante Px peut se rattacher, directement, à l'espèce Ex, sans "passer" par une quelconque variété : il faut donc bien prévoir une association directe Plante_Espece. Du fait même de l'existence de cette association, il faut mettre en place tous les contrôles de cohérence nécessaires.


    Citation Envoyé par Fsmrel
    De la même façon, si une plante P1 se rattache à une variété V1 qui se rattache à une espèce E1 qui se rattache elle-même à un genre G1, alors cette plante se rattache au genre G1.
    ==> idem. Une plante Px peut se rattacher, directement, à un genre Gx, sans "passer" par une quelconque variété et/ou espèce : il faut donc bien prévoir une association directe Plante_Genre. Du fait même de l'existence de cette association, il faut mettre en place tous les contrôles de cohérence nécessaires.


    Pour reprendre ton exemple :
    Citation Envoyé par Fsmrel
    La plante P1 fait partie de la variété V1,
    La variété V1 fait partie de l’espèce E1,
    L’espèce E1 fait partie du genre G1 ;
    La plante P1 fait partie du genre G1.
    ==> il faut absolument interdire la création des couples P1/G2, E1/G2 et V1/G2. Et V1/E2.

    Tout cela, si j'ai bien tout compris car parfois, je l'avoue, les termes que tu utilises nécessitent, de ma part, une analyse approfondie. Sauf ton respect, bien entendu, car j'avoue, là, une certaine ignorance de ma part.

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 348
    Points : 36 871
    Points
    36 871
    Par défaut
    Citation Envoyé par titinetine Voir le message
    @wiztricks

    Je ne comprends pas bien votre idée, pensez-vous à quelque chose comme ça (voir pièce jointe) ?

    Edit : avec l'attribut type étant de type énuméré ('variété', 'espèce' ou 'genre')
    Oui mais il faut retravailler les cardinalités
    je n'aime pas Plantes 1, 1 ---- is_a ---> 1, N Classifications.
    Une plante est classé (ou pas) mais elle aura au plus une classification.

    A toutes les classifications (ou lignes dans la table Classifications), ne correspondront pas nécessairement des "plantes".

    Pour faire simple, imaginons G1/E1 et G1/E2 deux espèces sans s/variétés .
    Le genre G1 est (donc) subdivisé en 2 espèces E1, E2.
    Pourra-t-on avoir des plantes dans G1, G1/E1 et G1/E2 ou est-ce que la classification d'une plante est nécessairement "feuille" (i.e. un nœud sans fils) comme G1/E1 ou G1/E2 mais surtout pas G1.

    Nota, cela n'empêche pas les plantes classées dans G1/E1 ou G1/E2, d'être du genre G1.

    Cordialement
    - W

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Plantes 1, 1 ---- is_a ---> 1, N Classifications.
    Pour moi les cardinalités sont bonnes et signifient (description des cardinalités en lisant de gauche à droite) :

    • Une plante a au minumum 1 classification.
    • Une plante a au maximum 1 classification.
    • Une classification correspond au minimum à 1 plante.
    • Une classification correspond au maximum à N plantes.


    Note : J'ai écrit 'une plante a', verbe 'avoir' alors que l'association IS_A a une toute autre signification (héritage/spécialisation (IS_A) VS composition (HAS_A)). Peut-on re-écrire l'association avec has_a à la place où y avait-il une raison particulière d'utiliser is_a ?

    Pour information, une classification (telle que décrit ici) n'est pas nécessairement feuille de notre arbre de classifications.

    Bon, ce qui m'embète avec cette modédisation, c'est le risque d'incohérences.
    Qu'est qui va empécher un genre d'être "part of" un autre genre, d'une espèce ou d'une variété ?
    Qu'est qui va empécher une espèce d'être "part of" une autre espèce ou d'une variété ?
    Qu'est qui va empécher une variété d'être "part of" une autre variété ?

    J'imagine qu'on peut s'en tirer avec des triggers, non ?

    De plus, si je veux obtenir le genre d'une plante donnée, je ne sais pas à l'avance à quel niveau de profondeur (dans l'arbre de classification) se trouve la classification associée à cette plante. Va-t-il me falloir une requête récursive (si tout du moins cela existe) ?

  18. #18
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    L'idée de Wiztricks est intéressante mais elle remet quelque peu en cause tes règles de gestion, il me semble.

    En effet, la partie gauche (en rouge) sera imposée à toutes les classifications. Il faudra donc choisir entre :
    Plantes 1, 1 ---- is_a ---> 1, N Classifications
    et
    Plantes 0, 1 ---- is_a ---> 1, N Classifications
    alors que tes règles de gestion mixent les deux ("peux" et "doit").

    D'autre part, peut-être que tes entités Variete/Espece/Genre posséderont des attributs non communs entre elles.

  19. #19
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par titinetine Voir le message
    Les règles :
    • ...
    • Une plante fait obligatoirement partie d’un genre et seulement d’un.
    • ...
    Donc :

    • Une plante fait obligatoirement partie d’une classification.


    Ainsi il n'y a pas de choix à faire :
    Plantes 1, 1 ---- is_a ---> 1, N Classifications

    En ce qui concerne votre dernière remarque, il est vrai que les entités Variétés, Espèces et Genres n'ont pas une structure commune.

  20. #20
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 348
    Points : 36 871
    Points
    36 871
    Par défaut
    Citation Envoyé par titinetine Voir le message
    Note : J'ai écrit 'une plante a', verbe 'avoir' alors que l'association IS_A a une toute autre signification (héritage/spécialisation (IS_A) VS composition (HAS_A)). Peut-on re-écrire l'association avec has_a à la place où y avait-il une raison particulière d'utiliser is_a ?
    Dans le jargon UML HAS_A et IS_A sont effectivement connotés.
    Comment traduire des phrases "métiers" telle que "La plante P1 fait partie de la variété V1" en une relation qui se "parle" tout en disant que c'est une traduction et en évitant de tagger (R001)? J'ai l'habitude de coller une construction "globish" qui signale que c'est une "traduction".
    "HAS A" est certainement plus approprié puisqu'il s'agit d'une aggrégation (UML).

    Bon, ce qui m'embète avec cette modédisation, c'est le risque d'incohérences.
    Qu'est qui va empécher un genre d'être "part of" un autre genre, d'une espèce ou d'une variété ?
    Qu'est qui va empécher une espèce d'être "part of" une autre espèce ou d'une variété ?
    Qu'est qui va empécher une variété d'être "part of" une autre variété
    De toute façon il faudra faire quelque chose pour "garantir" que... la vraie question c'est où (application ou BDD), quand et comment.

    Pour illustrer le comment.

    Votre classification (genre, espèce et variété) sont des types 1, 2, 3 qui correspondent à des niveaux 1, 2, 3.
    nota, rien de magique une hiérarchie est un trellis au sens mathématique.
    => X pourra être "part of" de Y ssi la différence de la valeur absolue des types est 1

    Pour ce qui est du "où" et du "quand", la hiérarchie et la classification ne devrait pas bouger souvent: une fois crée "proprement" pas de raison de changer quoi que ce soit sauf erreur de saisie.

    De plus, si je veux obtenir le genre d'une plante donnée, je ne sais pas à l'avance à quel niveau de profondeur (dans l'arbre de classification) se trouve la classification associée à cette plante. Va-t-il me falloir une requête récursive (si tout du moins cela existe) ?
    Le cas échéant SQLPRO a fait un tuto sur la partie SQL de la chose.

    Dans les faits, puisque les données sont plutôt accédées en lecture, rien n'empêche de faire des requête spécifique et les résoudre dans différents niveau de cache mais ce sera la quantité d'information et l'architecture technique qui dira quoi faire.

    Cordialement,
    - W

Discussions similaires

  1. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 20h30
  2. hiérarchie et asso réflexive
    Par Mathusalem dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/06/2004, 15h13
  3. [jonas] presque presque... mais pas encore
    Par stailer dans le forum JOnAS
    Réponses: 6
    Dernier message: 26/05/2004, 10h59
  4. clés composites
    Par Yuna dans le forum Administration
    Réponses: 12
    Dernier message: 08/01/2004, 09h14
  5. [WSAD] Composition visuelle d'une applet
    Par schum11 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/04/2003, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo