database - online - sql server documentation pdf
DocumentaciĆ³n de la base de datos SQL? (11)
específicamente, uso SQL Server 2005, pero la solución puede ser independiente de la marca.
Necesidad : Tiene 40 tablas de base de datos, en algunas, puede tener una columna que es un valor entero del 1 al 9 que representa alguna enumeración. Claro que tiene sentido en el código, pero no si necesita SQL el DB en un informe obteniendo solo filas de tipo "activo", pero no tiene ni idea si activo es 1,2 o 3 ...
mi solución : tengo una página wiki y le digo a cada desarrollador que cada tabla debe estar allí, con el esquema y para cada columna los posibles valores con explicación. También genero el diagrama de la base de datos de SQL Server 2005, pero eso solo es marginalmente útil ya que tiene tantas tablas y tantas líneas conectadas.
¿Hay alguna manera mejor de documentar qué es una tabla, qué es una columna y publicarla?
Nota con respecto a las respuestas: ¡No responda esta pregunta pensando como un ingeniero! Respuestas como "si tiene una tabla adicional vinculada con una clave externa, entonces cualquiera puede ver los valores" pasa por alto el punto. Una solución es buena si:
- Puedo imprimirlo y enviarlo a un compañero
- Puedo escribir texto libre, documentando datable / clm. No todo en la vida se auto documenta. Es posible que desee decir "esta tabla es una tabla de respaldo de informes y es información desnormalizada de las tablas XYZ".
¿Su tienda tiene algún tipo de herramienta de modelado de datos que los desarrolladores pueden usar? La mayoría de estas herramientas tienen buenas características de documentación integradas, por lo que se convierte en un simple trabajo de dos clics tras generación o actualizaciones para actualizar la documentación.
Actualmente uso Toad Data Modeler (he estado usando sus ciclos beta desde hace un tiempo: gratis y de poco o ningún error) y tienen una gran herramienta de documentación HTML que proporciona todo, incluidos los diagramas ER.
En el caso de esta enumeración que está describiendo, puede simplemente configurar la columna como una clave externa en una tabla que define los valores enum. Entonces su base de datos es auto-documentada; y nadie te obliga a unirte a la mesa si tu código sabe qué valores necesita.
Hay una herramienta llamada Creador de Diccionario de Datos que puede usar para tener su documentación sincronizada con sus tablas. Puede usar las herramientas Red-gate. Yo uso el primero.
Genera un informe HTML que puedes imprimir.
Propiedades extendidas es donde mi equipo almacena documentación de DB. Luego tenemos un conjunto de herramientas que extrae los datos y los escribe en una página wiki para la documentación centralizada.
Prueba dbdesc . Tiene un editor de propiedades extendidas incorporado que le permite anotar fácilmente cualquier objeto de base de datos (tablas, campos, procedimientos almacenados, parámetros, etc.).
Genera documentación en varios formatos que son fáciles de compartir: PDF, Word, HTML, etc. Esta herramienta tiene, por mucho, el mejor formato listo para imprimir.
He encontrado que schemaSpy es bastante útil para documentar (y comprender) un esquema de base de datos. Conecta el DB y produce documentación analizando los metadatos. Incluso produce diagramas ER y puede alimentarlo con un archivo XML que contiene los comentarios de tablas y columnas.
¡No responda esta pregunta pensando como un ingeniero!
Si alguien que no sean los ingenieros revisa su base de datos, tiene problemas.
Puedo imprimirlo y enviarlo a un compañero
Puedo escribir texto libre ...
Si está estableciendo requisitos de 1. impresión y 2. compartiendo ... vaya con un documento wiki o una palabra.
Lo siento, nadie tiene tu respuesta mágica. Las bases de datos simplemente no se prestan a la documentación más allá de sus características de auto-documentación (las propiedades extendidas que Stu mencionó).
También te sugiero que evites Magic Numbers por exactamente la razón que describes: ¡Nadie sabe a qué diablos se refieren! En su lugar, use una clave externa, como ya he recomendado, para que los datos sean autodocumentados.
Mi herramienta basada en navegador web, LiveDoco hace que sea muy fácil agregar / editar notas a cualquier base de datos SQL Server. Los agrega como propiedades extendidas (MS_Description) a los objetos de DB afectados, por lo que es totalmente compatible con los generadores de documentos como SQLSpec, SQLDoc ApexSQL Doc, etc.
Puede ser bastante difícil persuadir a los desarrolladores para que actualicen la documentación de su BD incluso si piensan que no les importa usarla una vez que ya está allí. Esta es en realidad la razón principal por la que se creó el programa. LiveDoco intenta hacer que el proceso de usar Y actualizar documentos de DB sea lo más fácil posible, incluso agradable (lo sé, "agradable" y "actualizar la documentación" en una sola frase ... pero de todos modos, entendiste el punto :))
Creo que esta es una mejor manera de documentar su base de datos que decir un Wiki porque lo que ve en su navegador apuntando a su base de datos de desarrollo (usando LiveDoco) siempre está sincronizado con el estado actual de las cosas por definición. Dado que todos los metadatos DB están disponibles para LiveDoco, esto también posibilita la ejecución de búsquedas más inteligentes: puede limitar la búsqueda de una subcadena solo para ver los nombres de las columnas o sus descripciones, por ejemplo.
Si el nombre de la columna es "StatusID", y hay una tabla de "Estado", con los campos "StatusID" y "Name", creo que debería ser dolorosamente obvio.
Además, compre una impresora más grande. No hay nada como una impresora de 36 "para obtener un esquema del tamaño de un póster en la pared.
Además, lee en propiedades extendidas. Parecen ser lo que quieres, aunque, como se dijo, no debería ser necesario.
Comience aquí: uso de propiedades extendidas en objetos de base de datos
Realmente no documentamos valores en la empresa para la que trabajo, pero escribimos descripciones para cada objeto de base de datos utilizando propiedades extendidas y funciona muy bien.
Después de realizar las propiedades extendidas, generamos documentación usando esta herramienta que recoge todos los valores de propiedades extendidas.
Aquí es cómo puede funcionar en este caso.
Si no le gustan las herramientas de terceros, puede usar una consulta simple como esta para obtener todos los valores.
select t.name as [Table Name],
p.name as [Extended Property Name],
p.value as [Extended Property Value]
from sys.extended_properties p
inner join sys.tables t on p.major_id = t.object_id
Puedes usar Dataedo para esto. Lee todas las tablas y columnas automáticamente y tiene un repositorio global para que todos los desarrolladores puedan describir tablas y columnas (y todos los demás objetos) al mismo tiempo (tipo de wiki, excepto que todas las tablas y columnas se extraen automáticamente).
Los desarrolladores pueden acceder a la documentación con GUI o exportar a PDF y HTML interactivo (HTML está disponible solo en Pro) e imprimirlo o publicarlo en Intranet.
Vea muestras aquí .
Piotr, Gerente de producto de Dataedo