Published on

June 6, 2017

Como Documentar Objetos de Banco de Dados do SQL Server

Introdução

A documentação é uma parte essencial do desenvolvimento de software, incluindo o desenvolvimento de banco de dados do SQL Server. Ela não apenas ajuda os desenvolvedores a entender seu próprio código, mas também auxilia futuros mantenedores a compreender o sistema. Neste artigo, exploraremos diferentes abordagens para documentar objetos de banco de dados do SQL Server e discutiremos seus prós e contras.

Solução da Microsoft: Propriedades Estendidas

O SQL Server oferece um recurso chamado Propriedades Estendidas, que permite aos desenvolvedores associar metadados aos objetos de banco de dados. Essas propriedades podem ser acessadas usando consultas T-SQL na tabela sys.extended_properties. A Microsoft também oferece componentes CRUD integrados, como sys.sp_addextendedproperty, sys.sp_updateextendedproperty e sys.sp_dropextendedproperty, para criar, atualizar e excluir propriedades estendidas.

Embora as Propriedades Estendidas pareçam úteis, elas são frequentemente subutilizadas devido à falta de conhecimento, falta de tempo e à complexidade de usar os componentes CRUD integrados. Além disso, as propriedades estendidas estão vinculadas a um banco de dados específico, o que dificulta a consulta de propriedades estendidas de vários bancos de dados em uma única instrução SELECT.

Solução 1: Propriedades Estendidas Gerenciadas

Para superar as limitações das Propriedades Estendidas, podemos implementar um procedimento armazenado que gerencia propriedades estendidas em vários bancos de dados. Esse procedimento armazenado, chamado Utils.ManageExtendedProperty, recebe parâmetros como DatabaseName, PropertyName, PropertyValue e OperationMode para criar, atualizar ou excluir propriedades estendidas. Ele simplifica o processo tratando verificações de propriedades existentes e permite operações em massa.

No entanto, essa solução ainda tem algumas desvantagens. Ela não aborda a questão da persistência da documentação após a exclusão do objeto e requer a execução manual do procedimento armazenado para cada banco de dados.

Solução 2: Solução de Documentação Caseira

Para abordar as limitações das Propriedades Estendidas e da solução gerenciada, podemos projetar nossa própria solução de documentação. Essa solução envolve a criação de objetos de banco de dados principais, como SchemaObjectDictionary e SchemaObjectsAttributes, para armazenar informações sobre objetos de banco de dados e seus atributos. Podemos então popular essas tabelas usando um procedimento armazenado chamado PopulateSchemaObjectDictionary.

Uma vez que as tabelas principais estejam populadas, podemos revisar e descrever ativos não documentados usando a visualização SchemaObjectDictionaryMissingDescription. Essa visualização fornece uma lista de objetos e atributos que requerem documentação. Podemos atualizar a documentação editando as instruções T-SQL fornecidas e executando-as.

Por fim, podemos aplicar a documentação às Propriedades Estendidas usando o procedimento armazenado ApplyDictionaryDefinitionsToExtendedProperties. Esse procedimento recupera a documentação das tabelas principais e chama o procedimento armazenado Utils.ManageExtendedProperty para atualizar as propriedades estendidas.

Conclusão

A documentação de objetos de banco de dados do SQL Server é crucial para manter um sistema bem documentado e facilmente mantido. Embora o recurso de Propriedades Estendidas da Microsoft forneça um ponto de partida, ele tem limitações que podem ser superadas com soluções personalizadas. Ao implementar uma solução de documentação caseira, os desenvolvedores podem garantir que seu código esteja bem documentado e facilmente acessível para futuros mantenedores.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.