Si os dedicáis a esto, seguro os habréis encontrado en la situación de incorporaros a un proyecto del que no conocéis su modelo de datos, ni siquiera si está documentado de alguna manera. Seguramente, también os haya pasado que hayáis tenido que integrar bases de datos de las que desconocíais sus tablas y la relación entre ellas.
El objetivo de este artículo es destacar la importancia de tener una buena documentación de bases de datos y, en concreto, haremos mención a SchemaSpy, una forma sencilla de documentar las bases de datos.
- Importancia de documentar la base de datos.
- Recomendaciones básicas para documentar la base de datos.
- Qué es un SchemaSpy.
- Conclusiones.
Importancia de documentar la base de datos
La base de datos de una empresa es una de sus piezas clave para su correcto desarrollo a cualquier nivel.
Las compañías guardan los datos que posteriormente se convierten en información útil. Después, esta información pasa a ser conocimiento y know– how; en otras palabras, es el núcleo de una compañía y sector sobre el que aplica.
En muchas ocasiones, no solemos preguntar y desconocemos lo que realmente significan los datos recogidos en una base de datos. Es esencial conocer bien la información que se maneja y los objetivos que se persiguen para poder hacer una correcta puesta en marcha de esta información y conocimiento útiles.
Además de las tablas recogidas en las bases de datos, existen otras piezas como funciones, procedimientos almacenados, triggers, restricciones, vistas, tablas de secuencias… y teniendo el conocimiento de esto y de la información que se necesita, se puede llegar a tener un conocimiento muy alto del funcionamiento de una empresa a cualquier nivel, entre otros:
- Procesos de trabajo
- Alineamiento departamental entre IT – Negocio
- Volumetrías de uso
Mejorar la “calidad de vida” en las compañías a nivel de gestión de conocimiento y de datos, implica tener toda esta información bien atada, para adquirir el conocimiento necesario y poder aplicarlo a la compañía y al sector de manera trasversal y vertical, evitando incertidumbre y consiguiendo mayor control del entorno.
Recomendaciones básicas para documentar la base de datos
- Tratar de documentar lo máximo posible en alguno de los sistemas: documento, wiki, etc.
- En caso de no poder documentar casi todo, es aconsejable elegir aquello con lo que se debe tener más cuidado o consideración y aplicar un Enfoque Defensivo.
- Cuando se tenga claro qué es lo que se quiere documentar, se debe tratar de llevarlo al día y cumplirlo.
- Es recomendable disponer de algún elemento o diagrama visual que explique cómo se relacionan las tablas.
- Se aconseja tener documentados los procedimientos y funciones y otros elementos que normalmente tienen un ciclo de mantenimiento más frecuente que las tablas.
- Utilizar frameworks como Liquibase o Flyway para el tracking de cambios en la base de datos.
- El uso de otras herramientas que faciliten y ayuden en cada una de las casuísticas.
Qué es SchemaSpy
SchemaSpy es una herramientadefinida comolibrería de Javaque ofreceuna documentación visual en HTML sobre la plataforma de base de datos. Entreotros,destaca por ser agnóstica de la plataforma (SQL Server, MySQL,Postgresql, …) y muysencilla, intuitiva yfácil de utilizaren procesos continuos.
¿Qué información muestra de la base de datos analizada?
- Información sobre sus propiedades.
- Información sobre el total de tablas: nombre, tablas hijas, tablas padre, volumetría de columnas, volumetría de filas, comentarios, etc.
- Información sobre una tabla específica: nombre, estructura de columnas, estructura de índices y diagrama de relación de la tabla con otros por niveles, volumetría de columnas, volumetría de filas, comentarios, etc.
- Información sobre el total de vistas: nombre, vistas hija, vistas padre, etc.
- Información sobre una vista: nombre, estructura de columnas, diagrama de relación, definición de la vista y tablas con las que se relacionan.
- Información sobre las columnas: nombre y características (tabla, tipo, valor por defecto, etc.)
- Información sobre las relaciones a nivel de restricciones: nombre, columna a la que aplica, columna con la que está relacionada, etc.
- Información visual sobre las relaciones de todas tablas en diferentes formatos: compacto (menos información) y largo (más información).
- Información sobre las tablas huérfanas Información sobre ciertas anomalías:
- Columnas cuyo nombre y tipo indican la relación con la primary key de otra tabla.
- Tablas SIN índices.
- Tablas que contienen una única columna.
- Tablas que podrían indicar desnormalización.
- Columnas que tienen como valor por defecto ‘NULL’ o ‘null‘.
- Información sobre total de rutinas y sobre una única rutina – procedimientos /funciones.
Otras características:
- Generación de informes de algunos de sus elementos: PDF, CSV, xlsx. etc.
- Opciones de buscador.
- Opciones de paginación.
- Exportación de la representación a XML.
- Capacidad de mostrar en un diagrama la relación entre los elementos.
- Generación de informes de algunos de sus elementos: PDF, CSV, xlsx. etc.
- Opciones de buscador.
- Opciones de paginación.
- Exportación de la representación a XML.
- Capacidad de mostrar en un diagrama la relación entre los elementos.
Aplicaciones de uso
SchemaSpy es verdaderamente sencillo de configurar y utilizar. Algunas de las aplicaciones interesantes que podríamos destacar de esta herramienta son:
- Posibilidad de verificar el comportamiento que debería tener una funcionalidad en base a las restricciones que tenía en la base de datos y a su diagrama con referencia a otras tablas.
- Permite tener una foto actual de todo lo desarrollado hasta el momento.
- Ayuda a verificar que el área o persona responsable ha aplicado los cambios sobre la base de datos.
- Facilita encontrar problemas de mapeo de entidades en el desarrollo.
- Permite comparar versiones de análisis para ver los cambios realizados a alto nivel.
- Verifica que la base de datos tiene lo definido en un principio y que el driver de conexión utilizado en el desarrollo es compatible con la plataforma actual o ante un posible upgrade.
Connect