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

MySQL Discussion :

Conventions de nommage d'une base de données


Sujet :

MySQL

  1. #21
    Membre chevronné
    Avatar de kedare
    Homme Profil pro
    Network Automation Engineer
    Inscrit en
    Juillet 2005
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Network Automation Engineer

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 548
    Points : 1 861
    Points
    1 861
    Par défaut
    Ca me parait pourtant évident d'utiliser l'anglais partout, de toute façon l'anglais est déjà partout, 90% de la documentation est en anglais, 90% du support et de l'assistance est en anglais.
    De toute façon, tout les (bon) professionnels de l'informatique doivent avoir une parfaite maîtrise de l'anglais.

  2. #22
    Membre habitué

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 156
    Points
    156
    Par défaut
    Au sujet des majuscules/minuscules :
    Tous les EDI gérant la coloration syntaxique, le code SQL entre guillemets se retrouve coloré et donc déjà différencié du reste du code (Java, PHP, C++, etc.). Ceci étant, il parait plus facile d’utiliser des majuscules et minuscules dans le code SQL pour distinguer les instructions des noms de table et colonne.

    Une question concernant le préfixage :
    Lors d’une génération automatique des entités ORM à partir d’une base de données, le préfixage se retrouve dans les noms d’entité et de leurs attributs. Conseilleriez-vous de garder ces préfixes dans les entités ou de réaliser tout un travail de conversion à la main ?

  3. #23
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Lors d’une génération automatique des entités ORM à partir d’une base de données, le préfixage se retrouve dans les noms d’entité et de leurs attributs. Conseilleriez-vous de garder ces préfixes dans les entités ou de réaliser tout un travail de conversion à la main ?
    Mieux : Ne pas utiliser d'Objet Réellement Merdique !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  4. #24
    Membre habitué

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Novembre 2008
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Novembre 2008
    Messages : 65
    Points : 156
    Points
    156
    Par défaut
    Certes j'ai aussi été un peu déboussolé au départ avec les ORM, pourtant à l'utilisation j'ai constaté qu'ils pouvaient s'avérer vraiment très pratiques. Rien n'oblige à les utiliser tout le temps au lieu d'utiliser directement une requête SQL quand cela est plus judicieux (ou obligatoire).

    Quant à ma question je pense que les conventions de nommage du monde relationnel deviennent caduques au sein d'entités ORM. J'aurais toutefois souhaité avoir des avis pertinent sur le sujet.

  5. #25
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Je serais intéressé moi aussi pour connaître les bonnes pratiques des conventions de nommage pour les entités lors de leur génération à partir d'une base de données. Est-ce qu'il existe des outils qui font le sale boulot (suppression des préfixes, etc.) ?

    Merci

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    J'aimerais avoir des avis sur des questions que je me pose, notamment ceux de SQLpro et CinePhil qui me semblent experts en la matière. Je suis chargé, avec mes collègues de travail, de remodéliser un système d'information avec plus de 100 tables donc nous souhaitons le faire correctement.

    J'ai appris Merise en BTS Informatique de Gestion et on m'a enseigné de modéliser comme ça : "bdd1.gif" (ci-dessous).

    J'ai volontairement pris un exemple simple, modélisé avec SQLYog.
    J'utilise donc un suffixe (ex:_client) sur les champs, reprenant le nom de la table, ce qui m'assure de ne pas avoir de doublon. Pour moi, ça me semble revenir au même que la méthode de SQLpro avec des préfixes.
    Je trouve ça pratique également car je trouve que ça décrit bien l'information (ex:nom_client) et je me sers toujours de ce même nom, que ce soit dans ma BDD ou dans mes variables PHP. C'est ainsi facile à retenir et à relire par d'autres développeurs.

    Mes collègues de travail, qui n'ont pas étudié Merise, utilisent une modélisation différente : "bdd2.gif" (ci-dessous).

    Pour simplifier les champs de la BDD, ils utilisent donc parfois des doublons (ex:nom).

    Ma question est de savoir si leur solution peut poser problème et surtout d'avoir des exemples concrets de problème.

    Personnellement, je trouve également que les champs de table sont plus faciles à lire (car plus simples), mais ça me dérange car on m'a appris à ne jamais avoir de doublon et ça alourdit également les requètes SQL :

    Avec ma façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
      C.nom_client,
      C.prenom_client,
      V.nom_ville
    FROM client C
    NATURAL JOIN ville V
    Avec leur façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
      C.nom AS nom_client,
      C.prenom,
      V.nom AS nom_ville
    FROM client C
    NATURAL JOIN ville V
    Ils sont donc contraints de mettre des alias sur les champs portant le même nom, ce qui pourrait provoquer des risques d'erreur si on oublie que plusieurs champs portent le même nom. Dans une grosse BDD, le risque me semble élevé.
    Ou alors il faudrait mettre des alias de champs partout, ce qui alourdit l'écriture et la lisibilité de la requète.

    Je crois me souvenir que le dictionnaire de données servait justement à détecter qu'il n'y avait pas de doublon dans la BDD, donc leur modélisation poserait problème, mais je ne l'ai jamais vu ou utilisé en entreprise. Est-il souvent utilisé ? par qui et dans quel but ?

    Est-ce que leur méthode peut poser problème également au niveau de la rétro ingénierie au niveau MCD, comme l'évoquait SQLpro ? Si oui, est-ce souvent utilisé en entreprise et quels sont les outils ?

    Merci d'avance pour vos réponses.
    Images attachées Images attachées   

  7. #27
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.

    2) Vos schémas ne sont pas tout à fait des schémas merisiens.
    Cela ressemble plus au "schéma des relations" d'Access ou, à la rigueur, à un "entity/relationship diagram" à la mode MySQL Workbench.

    D'ailleurs, ton message n'a pas grand chose à voir avec Merise qui est une méthode de conception et développement de systèmes d'informations.

    3) Les logiciels de modélisation ont certains automatismes pour dériver un MCD en MLD ou en diagramme entité/association ou pour directement proposer un nom pour les nouvelles propriétés dans les entités types...

    Analyse SI interdisait deux propriétés de même nom. Je ne sais pas si c'est toujours le cas. C'est peut-être paramétrable dans d'autres modeleurs.

    4) Évite le NATURAL JOIN.
    Si un nom de colonne impliqué dans une jointure change, la jointure naturelle ne fonctionnera plus. Il vaut bien mieux écrire les conditions de jointure en clair afin de lever toute ambiguïté.

    Comme je l'ai déjà dit ici ou ailleurs, j'ai adapté le standard de nommage de SQLPro et je m'en porte très bien. Voir mon message du 20/10/2010 15h27 dans cette discussion pour le détail de mes adaptations.


    Puisque ton boulot semble être de reconcevoir la BDD, déduis le MLD de la structure actuelle implémentée puis essaie de retrouver le MCD correspondant, corrige-le, améliore-le pour faire le nouveau MCD (ou s'il est vraiment pourri, repars de zéro ! ) puis dérive en MLD afin de générer ensuite les nouvelles tables.

    Et adopte un standard de nommage.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Tout d'abord merci pour ta réponse
    Malgré tout je n'ai pas la réponse à ma question : est-ce que leur modélisation peut poser des problèmes concrets ?

    Citation Envoyé par CinePhil Voir le message
    1) Les champs sont à la campagne ou dans les formulaires, pas dans les tables SQL qui ne sont composées que de colonnes et de lignes.
    Coupable

    Citation Envoyé par CinePhil Voir le message
    2) Vos schémas ne sont pas tout à fait des schémas merisiens.
    Pas tout à fait coupable, ma modélisation découle directement de Merise (CLIENT 1,1 --- CIF --- 1,n VILLE), c'est juste un exemple simple pour que tout le monde comprenne, même s'il est contestable au niveau des cardinalités, mais là n'est pas le propos.

    Citation Envoyé par CinePhil Voir le message
    3) Les logiciels de modélisation ont certains automatismes pour dériver un MCD en MLD ou en diagramme entité/association ou pour directement proposer un nom pour les nouvelles propriétés dans les entités types....
    Merci mais ils sont souvent utilisé en entreprise ?

    Citation Envoyé par CinePhil Voir le message
    4) Évite le NATURAL JOIN
    En fait, j'évite aussi de l'utiliser mais je l'ai écris ici car j'ai vu que plusieurs personnes sur ce sujet l'utilisent, je préfère utiliser USING ou écrire les critères de jointure comme tu le fais.

    Citation Envoyé par CinePhil Voir le message
    ou s'il est vraiment pourri, repars de zéro !
    Il est hyper pourri malheureusement, ce n'était pas un vrai informaticien qui l'a créé, mieux vaut repartir de zéro.

  9. #29
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    est-ce que leur modélisation peut poser des problèmes concrets ?
    Tu avais donné toi même une source de problèmes :
    Ils sont donc contraints de mettre des alias sur les champs portant le même nom, ce qui pourrait provoquer des risques d'erreur si on oublie que plusieurs champs portent le même nom. Dans une grosse BDD, le risque me semble élevé.
    Il m'est arrivé plusieurs fois dans les forums ici même de me demander de quelle table provient telle colonne et de recommander dans ma réponse que l'auteur de la discussion utilise au moins des alias et complète les blancs dans ma réécriture de sa requête.

    Quitte à repartir de zéro, et pour faire les choses bien dès le départ, je répète : définis une norme de nommage qui tienne la route.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta réponse.

    Si quelqu'un a d'autres idées, je suis preneur.

  11. #31
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Au fait, tu as le droit de demander de l'aide pour le nouveau MCD dans le forum Schéma.

    Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  12. #32
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    Joe Celko a écrit un ouvrage sur le sujet de nom "SQL Style", adoptant la notation américaine pointée...Je lui ais simplement fait remarquer que pour certaines recherches, notamment dans les vues cette méthode conduisait à des impasses que la notation trigramisée, lorsqu'elle est correctement appliquée, évite totalement. Voici ce que j'ai publié à ce sujet :
    http://blog.developpez.com/sqlpro/p7...ention_help_to

    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/ * * * * *

  13. #33
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    C'est quoi la "notation américaine pointée" ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  14. #34
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 758
    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 758
    Points : 52 535
    Points
    52 535
    Billets dans le blog
    5
    Par défaut
    MonObjet.MonMachin.MonBidule.MonTruc.Monzigouigoui.MaChose...

    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/ * * * * *

  15. #35
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    C'est sûr que si on utilise ça dans du SQL, ça risque d'être mal interprété !
    SELECT MonObjet.MonMachin = Sélectionne la colonne MonMachin de la table MonObjet.
    On ne peut pas nommer un objet de la sorte dans une BDD SQL !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. Réponses: 9
    Dernier message: 06/12/2014, 19h01
  3. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12
  4. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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