lunes, 13 de diciembre de 2010

SchemaSpy: Documentando tu base de datos

Sabemos lo importante que es generar y mantener una buena documentación de nuestro código fuente, al igual que de la estructura de nuestras bases de datos. 

Cuando iniciamos un proyecto nuevo se supone que antes de hacer algún cambio a la base de datos directamente, ya paso por un proceso de análisis y se plasmo en algún modelo, llámese Modelo Relacional, Entidad-Relación, UML, etc.

Pero aveces sucede que los cambios se hacen de manera directa, y con el tiempo se van olvidando detalles ó partes importantes de la estructura, en otros casos la base de datos ya fue generada por alguien más y te ha sido heredada sin documentación, aquí es donde entra la utilidad de ésta herramienta SchemaSpy (LGPL), la cual genera un diagrama Entidad-Relación de tu base de datos en formato HTML, permitiendo poder navegar entre las relaciones de las tablas mediante links. Aparte de representar las relaciones de una manera muy clara, también genera otros datos, como el número de tablas que dependen de cada relación, el número de filas, el número de columnas por tabla, una lista de todos los constraints, una lista de todas las columnas con su nombre, tipo de datos, tamaño, si es NULL o no, si es serial, su valor que tiene por default, y por si fuera poco un lista donde muestra posibles anomalías dentro de la base de datos.

Requerimientos:
SchemaSpy puede generar el diagrama de la mayoria de los gestores de bases de datos, solo se necesita su driver de conexión.



Es una herramienta para la linea de ordenes y su sintaxis básica es:
java -jar schemaSpy_5.0.0.jar -dp rutaDriver -t tipoGestor -db nombreBase -s esquema -host host -p contraseña -port puerto -u usuario -o directorioSalida

El resultado se vería algo como esto:


Para ver la documentación completa favor de ir a http://schemaspy.sourceforge.net/
Si deseas ver un ejemplo de como queda, puedes acceder a http://schemaspy.sourceforge.net/sample/

También existe la posibilidad de utilizar esta herramienta de manera gráfica mediante SchemaSpyGUI (LGPL) ésta tiene control completo de schemaSpy.  Para iniciar el programa solamente hay que escribir:
java -jar schemaSpyGUI.jar