Je trouve que la plupart de mes clients ne documentent pas du tout leurs bases de données et je trouve cela plutôt effrayant. Pour introduire de meilleures pratiques, j'aimerais savoir quels outils / processus les gens utilisent.
- Comment documentez-vous votre base de données? (Serveur SQL)
- Quel outil utilisez-vous?
- Format de stockage de documentation pour schéma de base de données / métadonnées?
- Documents Word
- Feuille de calcul Excel
- Texte brut
- Processus ou politiques de documentation?
Je ne parle pas de l’ingénierie inverse / de la documentation d’une base de données existante, mais principalement des meilleures pratiques en matière de documentation pendant le développement de votre système / base de données.
la source
Microsoft Visio Pro de (jusqu'à Visio 2010) peut désosser une base de données peut CA ERwin . Visio est l'option la moins chère, mais ERwin est l'option la plus détaillée et la plus complète. Les propriétés étendues sont bien, si les gens prennent la peine de les regarder. Vous pouvez également utiliser quelque chose comme SQL Doc de Red Gate pour générer la documentation au format HTML.
Je trouve que les conventions de nommage et la configuration correcte des clés étrangères conduisent à une base de données presque auto-documentée. Vous devez toujours disposer de documents externes pour une meilleure compréhension du but.
la source
Essayez SchemaSpy: http://schemaspy.sourceforge.net/
la source
Pour SQL Server, j'utilise des propriétés étendues.
Avec le script PowerShell suivant, je peux générer des scripts de création de table pour une seule table ou pour toutes les tables du schéma dbo.
Le script contient une
Create table
commande, des clés primaires et des index. Les clés étrangères sont ajoutées en tant que commentaires. Les propriétés étendues des tables et des colonnes de table sont ajoutées en tant que commentaires. Oui, les propriétés multilignes sont prises en charge.Le script est adapté à mon style de codage personnel.
pas de classement individuel pour les colonnes simples.
actuellement, il nécessite l'authentification du serveur SQL.
Voici le code complet pour transformer les propriétés étendues en un bon vieux document ASCII (BTW, il est valide pour recréer vos tables):
Vous pouvez soit écrire le schéma complet du schéma dbo d’une base de données donnée.
Ou filtrer pour une seule table
la source
Jetez un coup d’œil à SchemaCrawler - c’est mon outil gratuit en ligne de commande que j’ai conçu pour faire ce que vous cherchez. SchemaCrawler génère un fichier texte avec tous les objets du schéma de base de données. Cette sortie texte est conçue pour être à la fois lisible par l'homme et différable par rapport à une sortie similaire d'un autre serveur.
En pratique, j'ai constaté que la sortie d'un fichier texte du schéma de base de données est utile, lorsqu'elle est effectuée dans le cadre de la construction. De cette façon, vous pouvez archiver le fichier texte dans votre système de contrôle de code source et disposer d'un historique des versions de l'évolution de votre schéma. SchemaCrawler est conçu pour automatiser cela aussi, à partir de la ligne de commande.
la source
Si elle est écrite, la documentation consiste en un document Word. Deux diagrammes de relation seront inclus. Listes des tables et brève description de ce que chaque table contient et de sa relation avec les autres tables. Un chapitre de la documentation inclut les paramètres de sécurité: de quelles autorisations l’utilisateur at-il besoin?
Généralement, dans les entreprises pour lesquelles j'ai travaillé, la documentation de base de données n'est écrite que lorsque le client est celui qui effectue les audits, ce qui tend à en limiter l'utilisation aux clients financiers et gouvernementaux.
Clause de non-responsabilité: beaucoup trop de développeurs pensent que le code est la documentation , et je m'en suis aussi rendu coupable.
la source
J'utilise des propriétés étendues et Red Gates SQL Doc. Fonctionne très bien!
la source
C'est marrant, je me demandais comment les autres faisaient ça aussi ..
Lors du développement de mon premier grand projet de base de données, j’ai constaté que Microsoft SQL Server Management Studio 10.0.1600.22 prenait en charge les diagrammes de base de données que vous pouviez exporter vers un document Word ou un autre logiciel de documentation dans lequel vous pouviez ajouter autant de détails que vous le souhaitez. Développez simplement la base de données à laquelle vous vous êtes connecté sur SQL Management Studio, cliquez avec le bouton droit de la souris sur "diagrammes de base de données" dans l'explorateur d'objets et sélectionnez "Nouveau diagramme de base de données" pour générer un diagramme interactif montrant toutes les relations entre les différentes tables. Vous pouvez même spécifier les tables que vous souhaitez inclure dans les diagrammes, de sorte que l'image ne devienne pas indécente si vous essayez simplement de la documenter pièce par pièce. Exportez l'image vers un autre logiciel de montage et commentez autant que vous le souhaitez.
Je recommande également beaucoup de / comments / dans le script qui génère votre base de données.
Généralement, c'est beaucoup de travail d'écrire ce que c'est, mais c'est une bonne idée pour le long terme, comme lorsque vous ou une autre pauvre âme revenez pour mettre à jour votre création quelques années plus tard! :)
la source
J'ai défini la propriété étendue MS_description pour tous les objets, puis documenté l'ensemble de la base de données à l'aide d' ApexSQL Doc . J'avais l'habitude de créer des documents HTML plus tôt, mais dernièrement, je préfère les PDF
la source
J'utilise des outils de modélisation de données, car ils me permettent de documenter des informations importantes sur la base de données autres que celles "insérées" dans une base de données. Les métadonnées telles que les problèmes de confidentialité / sécurité / sensibilité, la gérance, la gouvernance, etc.
Cela peut aller au-delà de ce dont certains ont besoin pour documenter une base de données, mais ces éléments sont importants pour les entreprises et les aident à gérer leurs données.
Les outils formels m'aident également à gérer les données stockées dans plusieurs bases de données / instances / serveurs. Cela n'a jamais été aussi vrai que dans notre monde d'applications packagées.
la source
Pour Documenting sql server, je recommande vivement la publication récente:
Documentation SQL Server & Windows Utilisation de Windows PowerShell écrit par Kendal Van Dyke
Brève description du lien:
SQL Power Doc est un ensemble de scripts et de modules Windows PowerShell permettant de découvrir, de documenter et de diagnostiquer les instances SQL Server et leurs configurations sous-jacentes de système d'exploitation Windows et de machine. SQL Power Doc fonctionne avec toutes les versions de SQL Server de SQL Server 2000 à 2012, ainsi que toutes les versions de Windows Server et les systèmes d'exploitation Windows grand public de Windows 2000 et Windows XP à Windows Server 2012 et Windows 8. SQL Power Doc est également capable de documenter Bases de données SQL Windows Azure.
la source
DB Dictionnaire Creator
est un outil de documentation de base de données open source avec une interface graphique et des options d'exportation / importation décentes. Il utilise les propriétés étendues pour stocker la documentation. Il va également générer des descriptions automatiques pour les colonnes de clé primaire et les colonnes de clé étrangère.
la source
En effet, les propriétés étendues (MS_Description) sont la voie à suivre. Disposer facilement de ces descriptions dans les métadonnées pourrait être utilisé non seulement par les générateurs de documents, mais aussi (espérons-le un jour) par des outils fournissant "intellisense", par exemple l'excellent assistant SQL de Softtree http://www.softtreetech.com/ isql.htm (la dernière fois que j'ai vérifié, ils ne l'ont pas fait) ou intégré à Intellisense (depuis sql2008) de SQL Server Management Management
Je pense également que les développeurs et les administrateurs de bases de données devraient pouvoir facilement ajouter ces notes car, comme Tangurena et Nick Chammas l'ont correctement souligné, les développeurs hésitent beaucoup à tenir les docs à jour et à détester le travail en double, ce qui est juste assez pour une personne à qui l'apprentissage a été enseigné. optimiser les choses tout au long de leur vie professionnelle. Donc, à moins que ce ne soit vraiment facile de mettre à jour des documents à un endroit proche du code source - cela ne fonctionnera pas. À un moment donné, j'ai cherché sur le Web et je n'ai pas trouvé de solution. J'ai donc écrit LiveDoco (pas gratuit, désolé) pour tenter de le rendre facile. Plus d'infos ici si vous êtes intéressé: http://www.livedoco.com/why-livedoco
la source
Vous pouvez également consulter wsSqlSrvDoc . C'est un joli petit outil qui fonctionne avec les propriétés étendues de SQL Server et crée un document MS Word.
L’impression de toutes les propriétés de la colonne (avec des relations de clé étrangère) s’effectue par défaut. Pour des descriptions supplémentaires sur chaque champ, vous devez configurer les propriétés étendues de ces colonnes dans SQL Server Management Studio.
Ce n'est pas gratuit mais assez abordable. Si vous avez juste besoin de créer une documentation pour une base de données "pas de travail en cours" qui est plus ou moins terminée que ce serait suffisant pour utiliser la version d’essai gratuite.
Site Web de l'outil
la source
Nous utilisons Dataedo pour créer un dictionnaire de données, documenter des procédures stockées et des fonctions. Nous collons les DER créées dans Visio. Toute la documentation est stockée dans le référentiel de métadonnées Dataedo (texte formaté) et nous l'exportons au format HTML pour un usage interne ou au PDF pour un document imprimé.
Nous assignons chaque objet à un module et assignons chaque module à une personne. Dataedo est fourni avec des rapports sur l'état de la documentation afin que nous puissions savoir s'il existe une nouvelle colonne ou un nouveau tableau à documenter.
la source
Vous pouvez utiliser des
--
commentaires standard pré-préfixés dans le.sql
fichier.Parmi les avantages, citons le fait que la documentation contient le code du schéma de base de données et que vous pouvez facilement l'enregistrer dans un système de contrôle de version tel que Git .
Exemple:
Peut-être que vous pourriez aussi utiliser XML.
Vous pouvez également utiliser une syntaxe avec la ressemblance de jsDoc / phpDoc .
Ou vous pouvez utiliser la syntaxe MarkDown.
la source
Les diagrammes ERD (Database Diagrams) ont toujours été les plus utiles pour mon équipe
Mais il existe une règle pour écrire " Decription " dans les propriétés de chaque table et colonne que nous créons.
Ensuite , nous utilisons un nom de logiciel est Enterprise Architect pour documenter
Tables
avec tousIndexes
,Foreign Keys
etColumns
avecType
et description .la source
Pour MySQL en particulier, nous utilisons toujours MySQL Workbench . Nous créons nos conceptions de base de données dans le concepteur, puis nous l'exportons sous la forme d'un script SQL exécutable. L'application de toutes les modifications apportées à la conception, puis l'exécution du script généré garantissent que la conception et la base de données réelle sont parfaitement synchronisées les unes avec les autres et que la documentation ne deviendra pas aussi obsolète.
la source