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

Décisions SGBD Discussion :

Méta-modèle et lien entre les tables


Sujet :

Décisions SGBD

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieure novice !
    Inscrit en
    Juin 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Ingénieure novice !
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2012
    Messages : 21
    Points : 10
    Points
    10
    Par défaut Méta-modèle et lien entre les tables
    Bonjour à tous!

    Je me permets de relancer la discussion car je me posais justement la même question que AsyNew.
    J'aimerais modéliser ma base de données selon le méta modèle tel que défini dans l'article http://sqlpro.developpez.com/cours/m...n/metadonnees/ car la flexibilité que cela permet correspond exactement à mes besoins.

    SQLpro a déjà répondu :
    L'intérêt du méta modèle est de rajouter quelques colonnes d'information à certaines tables à la demande de l'utilisateur. Certainement pas de réinventer le concept de bases de données relationnelles !
    Ok. Néanmoins il doit y avoir une subtilité qui m'échappe encore...
    Dans le méta modèle, si j'ai bien compris, chaque table (nécessitant des méta données) est listée dans la table TR_TABLES_TBL (selon l'exemple de l'article). Ensuite, des jointures permettent de les associer aux données et aux caractéristiques, ok.
    Or, si j'ai une table nécessitant d'être listée par TR_TABLES_TBL, mais que cette table possède également des associations vers d'autres tables, dont une auto association réflexive, etc... Comment le faire apparaître sur le MCD ? (Et donc comment le traduire en SQL).

    Je m'explique un peu plus.
    Dans mon schéma, je dois modéliser l'ensemble d'un processus d'analyse impliquant des objets subissant des traitements. Un ou plusieurs objets peuvent être parents d'un autre objet (d'où l'auto association réflexive). Un traitement peut produire 1 à plusieurs objets (d'où l'association Produit). (Je vous passe les détails qui me semblent hors sujet)
    Ci joint en PJ la façon dont j'ai modélisé ma BD en intégrant le méta modèle. Je n'ai pas utilisé la table TR_TABLES_TBL , mais ai plutot distingué mes deux tables principales Objet et Traitement, car comme vous pouvez le constater ma table Objet possède de nombreuses associations. Je ne vois pas d'autres solutions ne serait-ce que pour modéliser l'association "Produit" entre Traitement et Objet.
    Du coup, au lieu d'une clé étrangère TBL_ID dans DONNEE, j'ai deux clé étrangères, correspondant l'une à Objet, l'autre à Traitement. Cela voudrait dire que dans un modèle plus grand encore, j'aurais autant de clés étrangères que de tables à utiliser...

    Est-ce une bonne idée que de modéliser ainsi ? Y a t il une manière plus élégante d'intégrer un méta modèle tout en conservant les associations entre mes tables ?

    J'espère recevoir vos avis éclairés !
    Images attachées Images attachées  

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Cet article, dont je suis l'auteur, est aujourd'hui un peu obsolète... Une technique très intéressante est d'utiliser le type XML pour ce faire à condition que :
    1) vous puissiez faire des requêtes XML/SQL (donc XQuery et XPath avec SQL) (donc exit PostGreSQL et MySQL)
    2) vous puissiez indexer le XML (donc exit PostGreSQL et MySQL)
    3) que vous puissiez faire des mise à jour de fragment XML
    4) si possible que vous ayez des déclencheur DDL pour automatiser le tout (publication automatique de vue avec création automatique des trigger INSTAED OF...)

    Bref, il faut utiliser SQL Server ou Oracle.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Cet article, dont je suis l'auteur, est aujourd'hui un peu obsolète... Une technique très intéressante est d'utiliser le type XML pour ce faire à condition que :
    1) vous puissiez faire des requêtes XML/SQL (donc XQuery et XPath avec SQL) (donc exit PostGreSQL et MySQL)
    2) vous puissiez indexer le XML (donc exit PostGreSQL et MySQL)
    3) que vous puissiez faire des mise à jour de fragment XML
    4) si possible que vous ayez des déclencheur DDL pour automatiser le tout (publication automatique de vue avec création automatique des trigger INSTAED OF...)

    Bref, il faut utiliser SQL Server ou Oracle.

    A +
    Bonjour!
    Je suis moi même très intéressé par le sujet. En effet nous avons en tête de baser notre futur application sur un méta modèle de ce type.
    Le but étant que les utilisateurs puissent eux même ajouter leurs objets et attributs.

    J'ai trouvé l'article très intéressant mais j'ai cependant 2 questions:

    En quoi est il obsolète? Je n'ai pas bien saisi en quoi le XML pouvait être une solution alternative? (et de toute façon nous devons être compatible MySQL)

    Et surtout, même question que Marine_Arctica, quid des éventuelles jointures entre différents objets de la base.
    Les utilisateurs pourront par exemple créer une table voiture, et un table pilote, puis associer les 2.
    Aujourd'hui, nous prévoyons une table qui servirait à stocker les jointures entre 2 objets, en indiquant les cardinalités. Je ne suis pas complètement convaincu, et je me demande si il n'existerait pas des solutions plus simple.

    D'autre part, comme il y aura de nombreuses relations entre nos objets, nous avons peur que le fait de stocker tout les données dans une seul table puisse être problématique, dans le sens ou pour des requêtes complexes, il faudrait faire de nombreuses jointures sur la même table. Nous avons donc opté pour, à partir du méta modèle, générer une base, qui sera ensuite exploiter via réflexion. Pareil, je ne suis pas encore convaincu que nous ne fassions pas fausse route.

    J'ai cherché des outils sur lequel on pourrait s'appuyer pour éviter de réinventer la roue mais sans succès.

    Merci d'avance pour vos avis!
    Guilllaume

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par chaps357 Voir le message
    Bonjour!
    ...
    de toute façon nous devons être compatible MySQL...
    Soyons sérieux. MySQL est une grosse merde farci de bug et d'erreur (par exemple sa gestion des NULL plus que loufoque).

    A lire : http://blog.developpez.com/sqlpro/p9...oudre_aux_yeux

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Citation Envoyé par chaps357 Voir le message
    Les utilisateurs pourront par exemple créer une table voiture, et un table pilote, puis associer les 2.
    SQLpro dit:
    L'intérêt du méta modèle est de rajouter quelques colonnes d'information à certaines tables à la demande de l'utilisateur. Certainement pas de réinventer le concept de bases de données relationnelles !
    SQLpor, puisque la question est assez récurrente et que vous déconseillez la première solution, pourquoi ne pas faire un article sur la deuxième dès que vous avez un peut de temps.
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    SQLpor, puisque la question est assez récurrente et que vous déconseillez la première solution, pourquoi ne pas faire un article sur la deuxième dès que vous avez un peut de temps.
    @+
    Excellente idée! ^^

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut

    SQLpro dit:

    SQLpor, puisque la question est assez récurrente et que vous déconseillez la première solution, pourquoi ne pas faire un article sur la deuxième dès que vous avez un peut de temps.
    @+

    Mon gros problème est que je n'ai pas de temps.

    Je suis même en retard sur la parution de mon livre sur SQL Server !!!!!

    mais c'est dans les tuyaux.

    Cela dit, dans le tuyau, j'ai plus de 20 articles en attente !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Méta-modèle et lien entre les tables
    Par AsyNew dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/11/2008, 14h28
  2. lien entre les tables
    Par Nacera dans le forum Oracle
    Réponses: 2
    Dernier message: 23/07/2007, 16h11
  3. Liens entre les tables
    Par zevince dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 25/10/2005, 16h25
  4. lien entre les tables
    Par cedric12 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 04/10/2005, 00h39
  5. lien entre les table de paradox
    Par salim_intic1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/05/2004, 17h00

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