Acho que a maioria dos meus clientes não está documentando seus bancos de dados e acho isso bastante assustador. Para introduzir melhores práticas, gostaria de saber quais ferramentas / processos as pessoas estão usando.
- Como você documenta seu banco de dados? (Servidor SQL)
- Qual ferramenta você usa?
- Documentação Formato de armazenamento para esquema de banco de dados / metadados?
- Documentos do Word
- planilha do Excel
- Texto simples
- Processo ou políticas de documentação?
Não estou falando sobre engenharia reversa / documentar um banco de dados existente, mas principalmente sobre as práticas recomendadas da documentação enquanto você desenvolve seu sistema / banco de dados.
fonte
Do Microsoft Visio Pro (até Visio 2010) pode fazer engenharia reversa de um banco de dados como pode do CA ERwin . O Visio é a opção mais barata, mas o ERwin é a opção mais detalhada e completa. Propriedades ampliadas são boas, se as pessoas se preocupam em examiná-las. Você também pode usar algo como o SQL Doc do Red Gate para gerar documentação em formato HTML.
Acho que as convenções de nomenclatura e a configuração adequada de chaves estrangeiras levam a um banco de dados quase auto-documentado. Você ainda deve ter alguns documentos externos para entender melhor o objetivo.
fonte
Experimente o SchemaSpy: http://schemaspy.sourceforge.net/
fonte
Para o SQL Server, estou usando propriedades estendidas.
Com o seguinte script do PowerShell, posso gerar os scripts Criar tabela para uma única tabela ou para todas as tabelas no esquema dbo.
O script contém um
Create table
comando, chaves primárias e índices. Chaves estrangeiras são adicionadas como comentários. As propriedades estendidas das tabelas e colunas da tabela são adicionadas como comentários. Sim, as propriedades de várias linhas são suportadas.O script está ajustado no meu estilo de codificação pessoal.
sem agrupamentos individuais para colunas únicas.
atualmente, requer autenticação do servidor sql.
Aqui está o código completo para transformar as propriedades estendidas em um bom documento ASCII antigo (BTW, é válido o sql para recriar suas tabelas):
Você pode criar um script do esquema dbo completo de um determinado banco de dados
Ou filtre para uma única tabela
fonte
Dê uma olhada no SchemaCrawler - é minha ferramenta gratuita de linha de comando que eu projetei para fazer o que você está procurando. SchemaCrawler produz um arquivo de texto com todos os objetos de esquema do banco de dados. Essa saída de texto foi projetada para ser legível por humanos, além de ser diferente da saída semelhante de outro servidor.
Na prática, o que descobri é que a saída de um arquivo de texto do esquema do banco de dados é útil, quando realizada como parte da compilação. Dessa forma, você pode verificar o arquivo de texto no seu sistema de controle de código-fonte e ter um histórico de versão de como seu esquema evoluiu ao longo do tempo. O SchemaCrawler foi projetado para automatizar isso também, na linha de comando.
fonte
Se alguma vez for escrita, a documentação consiste em um documento do Word. Alguns diagramas de relacionamento serão incluídos. Lista as tabelas e uma breve descrição do que cada tabela contém e como ela se relaciona com outras tabelas. Um capítulo da documentação inclui as configurações de segurança: de que permissões o "usuário" que o aplicativo precisa?
Geralmente, nas empresas em que trabalhei, a documentação do banco de dados só é escrita quando o cliente é quem realiza auditorias, o que tende a limitar seu uso a clientes financeiros e governamentais.
Isenção de responsabilidade: muitos desenvolvedores adotam a atitude de que o código é a documentação , e eu também sou culpado.
fonte
Eu uso propriedades estendidas e Red Gates SQL Doc. Funciona muito bem!
fonte
Engraçado, eu queria saber como outras pessoas estão fazendo isso também ..
Ao desenvolver meu primeiro grande projeto de banco de dados, descobri que o Microsoft SQL Server Management Studio 10.0.1600.22 suporta diagramas de banco de dados que você pode exportar para um documento do Word ou outro software de documentação, onde você pode adicionar os detalhes da documentação que desejar. Apenas expanda o banco de dados ao qual você se conectou no SQL Management Studio e clique com o botão direito do mouse em "diagramas de banco de dados" no explorador de objetos e selecione "Novo diagrama de banco de dados" para gerar um diagrama interativo que mostrará todos os relacionamentos entre as diferentes tabelas. Você pode até especificar quais tabelas deseja incluir nos diagramas, para que a imagem não fique desorganizada se você estiver apenas tentando documentá-la peça por peça. Exporte a imagem para qualquer outro software de edição e comente o quanto quiser.
Eu também recomendo muitos / comentários / no script que gera seu banco de dados.
Geralmente, é muito trabalho escrever para que serve, mas é uma boa idéia a longo prazo, como quando você ou alguma outra alma pobre volta para atualizar sua criação alguns anos depois! :)
fonte
Defino a propriedade estendida MS_description para todos os objetos e depois documento o banco de dados inteiro usando o ApexSQL Doc . Eu costumava criar documentos HTML anteriormente, mas ultimamente prefiro PDF
fonte
Eu uso ferramentas de modelagem de dados porque elas me permitem documentar informações importantes sobre o banco de dados, além daquilo que "cabe" em um banco de dados. Meta dados, como preocupações com privacidade / segurança / sensibilidade, administração, governança etc.
Isso pode ir além do que alguns precisam para documentar um banco de dados, mas essas coisas são importantes para os negócios e para ajudá-los a gerenciar seus dados.
As ferramentas formais também me ajudam no gerenciamento de dados armazenados em mais de um banco de dados / instância / servidor. Isso nunca foi tão verdadeiro quanto em nosso mundo de aplicativos empacotados.
fonte
Para documentar o servidor sql, recomendo o lançamento recente:
Documentação do SQL Server e Windows usando o Windows PowerShell escrito por Kendal Van Dyke
Breve descrição no link:
O SQL Power Doc é uma coleção de scripts e módulos do Windows PowerShell que descobrem, documentam e diagnosticam instâncias do SQL Server e suas configurações subjacentes de SO e máquina do Windows. O SQL Power Doc funciona com todas as versões do SQL Server do SQL Server 2000 a 2012 e todas as versões do Windows Server e Windows Operating Systems do Windows 2000 e Windows XP ao Windows Server 2012 e Windows 8. O SQL Power Doc também é capaz de documentar Bancos de dados SQL do Windows Azure.
fonte
Criador de dicionário de banco de dados
é uma ferramenta de documentação de banco de dados de código aberto com GUI decente e opções de exportação / importação. Ele usa propriedades estendidas para armazenar a documentação. Também gera descrições automáticas para colunas de chave primária e colunas de chave estrangeira.
fonte
Na verdade, Propriedades Estendidas (MS_Description) é o caminho a percorrer. Ter essas descrições prontamente disponíveis como parte dos metadados pode ser utilizado não apenas pelos geradores de documentos, mas também (espero um dia) por ferramentas que fornecem "intellisense", por exemplo, o excelente Assistente SQL da Softtree http://www.softtreetech.com/ isql.htm (da última vez que verifiquei que não) ou construído no Intellisense do SQL Sever Management Studio (desde sql2008)
Também acredito que deve ser fácil para os desenvolvedores e DBAs adicionarem essas notas, porque, como Tangurena e Nick Chammas apontaram corretamente - os desenvolvedores relutam em manter os documentos atualizados e odeiam trabalhos duplicados - o que é justo o suficiente, especialmente para quem foi ensinado otimizar as coisas durante toda a sua vida profissional. Portanto, a menos que seja realmente fácil atualizar documentos em um local próximo ao código-fonte - isso não vai funcionar. Em algum momento, pesquisei na web e não encontrei uma solução para isso, então escrevi o LiveDoco (não livre, desculpe) na tentativa de facilitar. Mais informações aqui, se estiver interessado: http://www.livedoco.com/why-livedoco
fonte
Você também pode dar uma olhada no wsSqlSrvDoc . É uma ferramenta pequena e agradável que funciona com propriedades estendidas do SQL Server e cria um documento do MS Word.
A impressão de todas as propriedades da coluna (com relações de chave estrangeira) funciona imediatamente. Para obter mais descrições sobre cada campo, você deve configurar propriedades estendidas dessas colunas no SQL Server Management Studio.
Não é gratuito, mas é bastante acessível. Se você apenas precisar criar uma documentação para um banco de dados "sem trabalho em andamento" que esteja mais ou menos concluído do que seria suficiente para usar a avaliação gratuita.
Site da Ferramenta
fonte
Usamos o Dataedo para criar dicionário de dados, documentar procedimentos e funções armazenados. Colamos ERDs criados no Visio. Toda a documentação é armazenada no repositório de metadados Dataedo (texto formatado) e a exportamos para HTML para uso interno ou para PDF para documentos impressos.
Atribuímos cada objeto a um módulo e atribuímos cada módulo a uma pessoa. O Dataedo vem com o relatório de status da documentação, para que possamos saber se há uma nova coluna ou tabela que precisa ser documentada.
fonte
Você pode usar
--
comentários com prefixos regulares no.sql
arquivo.Os benefícios incluem que a documentação está com o código do esquema do banco de dados e você pode facilmente confirmá-la em um sistema de controle de versão como o Git .
Exemplo:
Talvez você possa usar XML também.
Você também pode usar alguma sintaxe com semelhança com jsDoc / phpDoc .
Ou você pode usar a sintaxe do MarkDown.
fonte
Os diagramas de ERD (diagramas de banco de dados) sempre foram os mais úteis para minha equipe
Mas existe uma regra para escrever " Decription " nas propriedades de cada tabela e coluna que criamos.
Em seguida, usamos um nome de software é Enterprise Architect para documentar
Tables
com todosIndexes
,Foreign Keys
EColumns
comType
e Descrição .fonte
Para o MySQL em particular, sempre usamos o MySQL Workbench . Criamos nossos designs de banco de dados no designer e depois exportamos como um script SQL executável. A aplicação de todas as alterações no design e a execução do script gerado garantem que o design e o banco de dados real estejam perfeitamente sincronizados entre si e que a documentação não fique desatualizada com tanta facilidade.
fonte