una tablas stored script para hacer ejemplos ejemplo documentar datos crear como sql database documentation relational

tablas - script de base de datos sql ejemplos



¿Cómo documenta la estructura de su base de datos? (12)

Muchos sistemas de bases de datos no permiten comentarios o descripciones de tablas y campos, entonces, ¿cómo se puede documentar el propósito de una tabla / campo aparte de lo obvio de tener buenas convenciones de nomenclatura?

(Supongamos por ahora que los nombres de tablas y campos "excelentes" no son suficientes para documentar el significado completo de cada tabla, campo y relación en la base de datos).

Sé que muchas personas usan diagramas UML para visualizar la base de datos, pero rara vez, o nunca he visto, un diagrama UML que incluya comentarios de campo. Sin embargo, tengo buena experiencia en el uso de comentarios dentro de archivos .sql . La desventaja de este enfoque es que requiere que los archivos .sql se mantengan actualizados manualmente a medida que la estructura de la base de datos cambia con el tiempo, pero si lo hace, también puede tenerlo bajo control de versiones.

Algunas otras técnicas que he visto son documentos separados que describen la estructura y las relaciones de la base de datos y los comentarios mantenidos manualmente dentro del código ORM u otro código de mapeo de bases de datos.

¿Cómo has resuelto este problema en el pasado? ¿Qué métodos existen y cuáles son los diversos pros y contras asociados con ellos? ¿Cómo te gustaría que esto se resuelva en "un mundo perfecto"?

Actualizar

Como han señalado otros, la mayoría de los populares motores SQL permiten comentarios, lo cual es genial. Por extraño que parezca, la gente no parece estar usando estas características mucho. Al menos no en los proyectos en los que he estado involucrado en el pasado.


Comenta mis bases de datos al comentar mis programas. Al escribir buenos (espero) comentarios en el código fuente (el archivo SQL que contiene las instrucciones DDL).

Usar el COMENTARIO de SQL es otra posibilidad. Lo bueno de ellos es que siempre están con sus objetos, están respaldados con ellos, etc. Lo malo es que son más limitados (por ejemplo, en longitud).


Como usamos Rational Software Architect, utilizamos sus funciones de descubrimiento de datos para documentar nuestras bases de datos y luego anotarlas desde allí.


En Oracle puede comentar tablas y las almacena en el diccionario de datos.

Sin embargo, almaceno todos mis comentarios de tabla, columna, índice en una versión muy antigua de ERWin. Es la fuente principal de la verdad y genera el DDL para crear tablas, etc. A partir de ahí, puedo extraerlo en un documento de Word o PDF.


Es un enfoque realmente simplista, pero utilizo un par de páginas wiki: una con el mysqldump de la base de datos, y otra escrita en un formato ligeramente más similar al inglés.

Para los proyectos en los que he trabajado, eso ha sido suficiente (a través del nivel de docenas de tablas). No sé qué tan bien podría escalar a proyectos más grandes (por ejemplo, en cientos de tablas), pero hasta ahora ha sido bueno.


Estoy usando Firebird que tiene un campo de descripción para todos los objetos del sistema (tablas, columnas, vistas, procedimientos y parámetros, desencadenadores, etc.) Es agradable porque puedes compartirlo fácilmente con otros (los documentos van con la base de datos, no por separado) y tú nunca lo pierdas

La mayoría de los administradores las herramientas para Firebird le permiten editar estas descripciones y hay algunas herramientas especializadas (como IBDesc, por ejemplo) que crean buenos informes HTML o PDF que puede imprimir (para algunas o todas las tablas) fácilmente.


Hemos escrito un documento de Word que enumera las tablas, los campos y lo que hace todo. Esto está respaldado por un diagrama que muestra cómo todo se vincula / se relaciona entre sí. En realidad, es un documento bastante simple, solo un montón de tablas con Nombre de campo> Tipo de datos> Propósito


MySQL permite comentarios sobre tablas y filas. PostgreSQL también lo hace . De otras respuestas, Oracle y MSSQL también tienen comentarios.

Para mí, una combinación de diagrama UML para una actualización rápida de nombres de campo, tipos y restricciones, y un documento externo (TeX, pero podría ser cualquier formato) con descripción extendida de todo lo relacionado con la base de datos: valores especiales, comentarios de campo, acceso notas, lo que sea, funciona mejor.



Uso los comentarios adjuntos a tablas y columnas. SchemaSpy es una gran herramienta para generar archivos de documentación html fuera de su esquema, incluidos los comentarios.


Uno más tarde pero con suerte útil ... Este es un proceso que usamos al desarrollar una base de datos relativamente grande (alrededor de 100 tablas y alrededor de 350 objetos en total)

  • Los desarrolladores deben usar propiedades extendidas para agregar detalles a todos los objetos.
  • Los administradores rechazaron cualquier DDL que no tuviera propiedades extendidas
  • Se utilizó una herramienta de terceros para generar automáticamente documentación visual a través de la interfaz de línea de comandos todos los días. Usamos ApexSQL Doc y funcionó bien, pero también utilicé SQL Doc de Red Gate en otra compañía.

Este proceso aseguró que tenemos todos los objetos documentados y documentados al día.

Sin embargo, lo más difícil fue lograr que los desarrolladores escriban buenos comentarios constantemente;)


En un momento escribí un analizador SQL básico que analizaría las sentencias CREATE TABLE y eliminaría los comentarios formateados especialmente. Estos fueron luego procesados ​​en la fuente LaTeX y se procesaron en PDF. Esto se inspiró en Javadoc y se utilizó para crear la documentación de este producto . Posteriormente, se creó una función de diccionario de datos en el administrador de depósito y se utilizó una versión modificada del generador LaTeX para procesar el diccionario de datos del administrador de depósito.

En otro proyecto utilicé Visio: la versión que viene con Visual Studio Enterprise Architect reenviará una base de datos. El SQL así generado tenía los comentarios de tabla y columna representados en cadenas de comentarios que eran bastante sencillos de analizar. La herramienta que escribí generó archivos MIF que se incluyeron en un documento de especificaciones creado con FrameMaker.

Si tiene una herramienta de repositorio como Powerdesigner , puede mantener modelos de datos y obtener informes de repositorio que incluyan la documentación que ha ingresado. Si necesita una integración más profunda de su diccionario de datos con especificaciones funcionales (bastante útil para los sistemas de almacenamiento de datos donde el ETL es complejo e implica un cálculo significativo de los valores derivados) puede extraer los metadatos y escribir una utilidad para generar algo que integre los datos diccionario en un documento de especificación. Esto también permite la referencia cruzada entre los elementos del diccionario de datos y otros documentos de especificación y la generación de índices que cubren las definiciones del diccionario de datos y la documentación relacionada, como una especificación de cómo se calcula algo con ejemplos.


Recientemente he recurrido a la documentación de redacción de marcas, que incluye el enlace a archivos .sql tablas individuales (donde las tablas y los campos se llaman intuitivamente con muchos comentarios).

Mantengo el esquema de la tabla individual en el control de la versión, usando el siguiente comando:

mysqldump --no-data --tab=./tables dbname

El esquema para una sola tabla le permite ver comentarios, índices, claves únicas, etc. por lo que es bastante auto explicativo (bueno, esa es la idea al menos).

La documentación maestra de rebajas tiene hipervínculos, como la tabla de usuarios salpicada, para que el lector pueda acceder fácilmente a las diferentes tablas.