Question

Cette question a déjà une réponse ici :

Est-ce que quelqu'un connaît des articles/livres/etc.qui documente les modèles pour les bases de données ?Par exemple, une règle générale est que chaque table doit avoir une clé primaire et que la clé doit être dépourvu de contenu informatif.Je me demandais donc si quelqu'un avait écrit un livre ou publié des articles sur les modèles de conception pour la conception de bases de données relationnelles ?


@Gaïus,

C'est la question qu'un concepteur de base de données doit se poser : quelle est la stabilité probable de la structure de la base de données ?À un horizon suffisamment long, rien n’est stable.Ou, à l’inverse, à un horizon suffisamment long, tout est susceptible de changer.Une clé de substitution (en théorie) ne devrait jamais changer de signification car elle n'a jamais eu de signification au départ.

Je suppose que l’autre chose à considérer dans ce scénario de conception particulier est de savoir qui verra la clé primaire ?Si la clé primaire est quelque chose auquel les utilisateurs finaux devront réellement se référer, il est alors logique d’en faire quelque chose qu’ils peuvent comprendre.Mais je ne vois pas beaucoup de cas où un utilisateur final a besoin de voir une clé primaire ;généralement, la clé primaire est présente pour permettre au moteur de base de données d'accélérer certaines opérations.

Ma pensée initiale en posant la question était de trouver des modèles de conception pour la conception de bases de données codifiés par des concepteurs de bases de données plus expérimentés que moi afin d'éviter, espérons-le, certaines erreurs facilement évitables.Il serait intéressant de lire si quelqu'un avait déjà codifié les anti-modèles de conception de bases de données.

Était-ce utile?

La solution

Plus précisément, concernant les clés :Je suis fortement en désaccord avec l’idée étrange selon laquelle les clés doivent être dénuées de sens.En général, je considère une base de données comme un ensemble de faits ;dès que vous commencez à y ajouter des nombres arbitraires (comme des clés générées) et d'autres informations non pertinentes, cela devrait être un signe d'avertissement.je recommande ceci article par Joe Celko pour en savoir plus sur les clés.

Notes plus générales :

Suggestions de conceptions de schémas/modèles de données pour différentes entreprises :David C.Foins:Modèles de modèle de données :Conventions de pensée plutôt ancienne, mais il y a une raison pour laquelle il est toujours imprimé
http://www.dorsethouse.com/books/dmp.html

Peut-être pas très semblable à un motif, mais quand même très bien :Stéphane Faroult, Peter Robson :L'art du SQLhttp://oreilly.com/catalog/9780596008949/

Un autre que je peux recommander :Vadim Tropachko :Modèles de conception SQL - Le guide expert de la programmation SQLhttp://www.rampant-books.com/book_2006_1_sql_coding_styles.htm

Manuel systématique sur la modélisation des données :Graeme Simsion et Graham Witt, "Les essentiels de la modélisation des données"http://www.elsevierdirect.com/product.jsp?isbn=9780126445510

Peut-être recherchez-vous réellement un « guide de style » ?.Dans ce cas :Joe Celko :Style de programmation SQLhttp://www.elsevierdirect.com/product.jsp?isbn=9780120887972

Autres conseils

Livres d'E.F.Codd et C.J.La date sont les réponses les plus évidentes.Je n'ai pas lu ce livre en particulier mais je connais les auteurs, il est probablement plutôt bon.

Mathmatiques appliquées pour les professionnels des bases de données de Lexx de Haan et Toon Koppelaars.

En fait, je pense que la règle générale est généralement d'utiliser une clé naturelle plutôt qu'un substitut autant que possible...

Ainsi, si j'ai, par exemple, une table Invoice et une table InvoiceDetail, nous pouvons probablement utiliser InvoiceNumber comme clé primaire sur la première.Il existe déjà dans nos données et (je suppose ?) serait unique.Pour la deuxième table, nous allons probablement avoir besoin d'une clé de substitution, qu'elle soit jointe au numéro de facture en tant que composite ou non.

Quoi qu'il en soit, revenons à la question initiale...Le lien de hometoast devrait vous aider à démarrer.

-Kevin Fairchild

Pour répondre exactement : Oui.Il y a des tonnes d’informations écrites sur la « bonne » conception de base de données.Bien que votre exemple de règle empirique soit certainement discutable.

Anti-modèles SQL de Bill Karwin est très facile à lire (pas sec) et explique en termes assez clairs un certain nombre de pièges potentiels, comment vous pourriez vous retrouver à les utiliser et comment/pourquoi faire les choses correctement.

Utiliser des clés primaires ayant un sens métier (« clés naturelles ») a certes ses mérites, mais cela peut rendre nécessaire la refactorisation de votre base de données très difficile.Soyez prudent, surtout s'il y a des raisons de croire que la structure de la base de données va changer au fil du temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top