database - online - easy db diagram
Descifrar el esquema de la base de datos (13)
¿Qué DBMS (Sistema de gestión de bases de datos) estás usando? Muchos DBMS modernos como el servidor SQL y Access pueden crear un diagrama ER para usted.
Microsoft Visio es una excelente herramienta y puede realizar ingeniería inversa de SQL desde cualquier fuente de datos.
DDT (Database Design Tool) puede realizar ingeniería inversa desde SQL sin formato en Windows y es muy liviano (descarga gratuita muy pequeña).
MySQL Workbench es una de las herramientas más populares de MySQL y tiene una versión descargable libremente.
SQLFairy puede hacer lo mismo con MySQL en Linux.
Hace poco heredé el trabajo de mantener una base de datos que no se diseñó muy bien y los diseñadores no están disponibles para hacer preguntas. Y tengo un par más en camino en el futuro cercano.
Ha sido difícil tratar de descubrir las relaciones entre las tablas sin ningún tipo de ayuda visual o diagrama de base de datos.
Me preguntaba qué herramientas se recomiendan para esto. Sé de Visio, pero esperaba que hubiera algunas buenas aplicaciones de código abierto / freeware. No necesito cambiar la base de datos. Solo léalo y cree algún tipo de ayuda visual para ayudarme a comprender cómo se presentan las cosas y tratar de descubrir qué pensaba el diseñador sobre cómo deberían relacionarse los datos.
Datos de respuesta adicionales: SchemaSpy era el tipo de cosa que estaba buscando, pero no habiendo hecho mucho con la línea de comandos en años, opté por usar SchemaSpyGUI . También tuve que acostumbrarme a algunas configuraciones, ya que no trabajo mucho con Java, pero el resultado final fue lo que estaba buscando (en el reemplazo de fuente abierta para los diagramas de ER de Visio).
Me gusta probar y ver si las aplicaciones que usan la base de datos tienen formas de registrar el SQL que usan (o el backend DB en sí mismo, pero eso tiende a ser menos manejable). Entender qué solicitudes se realizan en la base de datos lo ayuda a concentrarse en las tablas importantes.
Como con la mayoría de las cosas, la regla 80/20 se aplica aquí: el 20% de las tablas harán el 80% de las cosas interesantes. Una vez que los ha descubierto, rara vez es necesario un diagrama.
Mire las claves de claves externas relaciones clave que han sido configuradas como un punto de partida.
Dado que una base de datos sin diagramas existentes, puede no tener relaciones establecidas formalmente, miro las estructuras y los nombres de la tabla y hago mis mejores conjeturas sobre qué podría estar relacionado con qué, luego profundizo en las estructuras para ver si son obvias (pero indefinido) claves externas. Miro los procesos almacenados para tener una idea de cómo se unen las tablas y qué campos se están consultando.
Si bien las herramientas automatizadas para descifrar la base de datos pueden ser grandiosas, me parece que cuando realmente profundizo en los detalles de la base de datos, termino con una comprensión mucho mejor de la que puedo obtener de cualquier imagen creada automáticamente.
Pruebe DBVis - descargue en http://www.minq.se/products/dbvis/ - hay una versión pro (no es necesaria) y una versión abierta que debería ser suficiente.
Todo lo que tiene que hacer es obtener el JDBC correcto - controlador de base de datos, la herramienta muestra tablas y referencias ortogonales, hirarchical, en un círculo ;-) etc. simplemente presionando un solo botón. ¡Disfrutar!
Usando pgsql / win32 encontré que la solución más fácil era escribir un script de Perl que utilizara Graph :: Easy de CPAN. Consulte la base de datos para relaciones de claves externas, haga un gráfico dirigido con tablas como nodos y relaciones FK como enlaces. Si esta es su configuración, puedo publicar el código.
Yo uso mysql workbench ( http://www.mysql.com/products/workbench/ ) para bases de datos mysql. Puede adjuntar el banco de trabajo a su base de datos y dibujará el diagrama de ER para usted.
dbdesc no es gratis, pero he escuchado cosas muy buenas al respecto. Funciona con varias de las principales bases de datos que existen.
He tenido la suerte de no haber tenido que descifrar todavía los esquemas de bases de datos de otras personas. He usado un conjunto de plantillas que vienen con CodeSmith .
En primer lugar, ¡puedo decir que siento tu dolor!
Aquí hay algunos de mis consejos:
- En general, una herramienta solo será útil si los diseñadores han definido correctamente todas las claves primarias y externas, por lo que debe tener en cuenta que una herramienta puede no captar todas las relaciones importantes.
- Lo más útil es ver qué consultas está realizando el código del cliente. Esto le indicará no solo qué relaciones existen, sino qué tablas y relaciones son las más utilizadas, ahí es donde deseará concentrar su esfuerzo.
Tengo una muy buena experiencia con Aqua Data Studio para ingeniería inversa, un esquema DB. Es muy rico en funciones y es compatible con bases de datos aún más exóticas como Informix o Sybase.
Prueba SchemaSpy . Lo ejecuté contra una base de datos bastante compleja y quedé muy satisfecho con el resultado, con consejos sobre la optimización.
Hay un poco de software de código abierto, pero la herramienta de Visio Professional para esquemas de bases de datos de ingeniería inversa es bastante buena porque desacopla el proceso de ingeniería inversa y diagramación. Uso mucho esto porque suele estar disponible en la mayoría de los sitios.
Una buena característica de Visio es que puede realizar ingeniería inversa y luego construir sus propios diagramas a partir del esquema de ingeniería inversa. Hacer esto es una muy buena forma de explorar el esquema y comprenderlo mientras hace este trabajo como parte de la construcción interactiva de un documento de referencia para el esquema. Utilicé esta técnica para realizar ingeniería inversa de todo, desde los sistemas de costeo basados en actividades hasta los sistemas de suscripción de seguros , generalmente sin mucha ayuda del proveedor. Jugar con los diagramas de Visio es bastante relajante.
Entre esto y una pequeña prueba de hipótesis sobre las relaciones FK (si el FK no está físicamente presente en la mesa) puede dar sentido a esquemas bastante complejos. He descubierto que este enfoque de diagramación hace de Visio un líder de cabeza y hombros porque puede interactuar fácilmente con el modelo de ingeniería inversa de una manera bastante conveniente. Puede completar las claves externas faltantes, crear diagramas de áreas temáticas y agregar anotaciones en los diagramas. La interactividad de este proceso lo convierte en una buena herramienta de aprendizaje.
Esta es una visión un tanto subjetiva, pero la interactividad funciona muy bien como un proceso de aprendizaje para mí y es, con mucho, mi enfoque preferido. La mayoría de los sitios no le envidiarán las £ 300 o más por una licencia, si es que todavía no la tienen disponible. El único sitio donde trabajé donde tuvieron que ingresarlo fue porque tenían Visio Standard en lugar de Pro. Pregunté amablemente y el PHB lo firmó.
Esto me ayudó a generar los diagramas ER en MS SQL Server 2012:
Administración de MS SQL Server Studio> Menú Archivo> "Conectar Explorador de objetos" Elija su nodo Base de datos y amplíelo. debajo de este nodo encontrará un subnodo llamado "Diagramas de base de datos". Haga clic con el botón derecho en "Diagramas de base de datos"> "Nuevo diagrama de base de datos"> Agregue tablas donde desee ver sus columnas, relaciones, ...
Use Visio. Si utiliza Vision 2010, deberá usar el proveedor genérico OLEDB para SQL Server para asegurarse de que no haya problemas al conectarse al Visio Driver.