Pregunta

Recientemente heredé el trabajo de mantener una base de datos que no fue diseñada muy bien y los diseñadores no están disponibles para hacer preguntas.Y tengo un par más en camino en un futuro próximo.

Ha sido difícil intentar 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.Conozco Visio, pero esperaba que existieran algunas buenas aplicaciones de código abierto/freeware.No lo necesito para cambiar la base de datos en absoluto.Simplemente léelo y crea algún tipo de ayuda visual que me ayude a comprender cómo se distribuyen las cosas y trata de descubrir qué estaba pensando el diseñador sobre cómo deberían relacionarse los datos.


Datos adicionales de respuesta:SchemaSpy era el tipo de cosa que estaba buscando, pero como no había hecho mucho con la línea de comandos en mucho tiempo, opté por usar esquemaSpyGUI.También hubo 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 código abierto para los diagramas ER de Visio).

¿Fue útil?

Solución

Intentar esquemaespy.Lo ejecuté en una base de datos bastante compleja y quedé bastante satisfecho con el resultado, con consejos sobre optimización.

Otros consejos

Pruebe DBVis - descárguelo en http://www.minq.se/products/dbvis/ - Hay una versión pro (no necesaria) y una versión abierta que debería ser suficiente.

Todo lo que tiene que hacer es obtener el controlador de base de datos JDBC correcto, la herramienta muestra tablas y referencias ortogonales, jerárquicas, en un círculo ;-), etc.simplemente presionando un solo botón.¡Disfrutar!

¿Qué DBMS (sistema de gestión de bases de datos) estás utilizando?Muchos DBMS modernos, como el servidor SQL y Access, pueden crear un diagrama E-R para usted.

Microsoft Visio es una herramienta excelente y puede aplicar ingeniería inversa a SQL desde cualquier fuente de datos.

DDT (herramienta de diseño de bases de datos) 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 MySQL más populares y tiene una versión que se puede descargar gratuitamente.

SQLFairy puede hacer lo mismo con MySQL en Linux.

dbdesc No es gratis, pero he oído cosas muy buenas sobre él.Funciona con varias de las principales bases de datos que existen.

He tenido suerte porque todavía no he tenido que descifrar los esquemas de bases de datos de otras personas.He usado un conjunto de plantillas que vienen con códigosmith.

En primer lugar, ¡puedo decir que siento tu dolor!
Éstos son algunos de mis consejos:

  1. En general, una herramienta sólo será útil si los diseñadores han definido correctamente todas las claves primarias y externas, así que tenga en cuenta que es posible que una herramienta no recoja todas las relaciones importantes.
  2. Lo más útil es ver qué consultas realiza el código del cliente.Esto le indicará no sólo qué relaciones existen, sino también qué tablas y relaciones se utilizan con más frecuencia; ahí es donde deberá concentrar su esfuerzo.

Existe 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 la diagramación.Lo uso mucho porque tiende a estar disponible en la mayoría de los sitios.

Una característica interesante 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 manera de explorar el esquema y comprenderlo mientras realiza este trabajo como parte de la creación interactiva de un documento de referencia para el esquema.He utilizado esta técnica para realizar ingeniería inversa en todo, desde Sistemas de costeo basados ​​en actividades a Sistemas de suscripción de seguros, normalmente 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), se pueden entender esquemas bastante complejos.Descubrí que este enfoque de diagramación convierte a Visio en un líder destacado porque puedes interactuar fácilmente con el modelo de ingeniería inversa de una manera bastante conveniente.Puede completar las claves foráneas que faltan, 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 algo subjetiva, pero la interactividad funciona muy bien como proceso de aprendizaje para mí y es, con diferencia, mi enfoque preferido.La mayoría de los sitios no le envidiarán las £ 300 aproximadamente por una licencia, si aún no la tienen disponible.El único sitio en el que trabajé donde tuvieron que incluirlo fue porque tenían Visio Standard en lugar de Pro.Pregunté amablemente y el PHB lo aprobó.

Yo uso el banco de trabajo mysql (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 ER por usted.

Usando pgsql/win32 encontré que la solución más fácil era escribir un script en Perl que hiciera uso de Graph::Easy de CPAN.Consulte la base de datos en busca de relaciones de clave externa, cree un gráfico dirigido con tablas como nodos y relaciones FK como enlaces.Si esta es su configuración, puedo publicar el código.

Me gusta intentar ver si las aplicaciones que usan la base de datos tienen formas de registrar el SQL que usan (o el backend de la base de datos en sí, pero eso tiende a ser menos manejable).Tener una idea de las solicitudes realizadas en la base de datos le ayuda a concentrarse en las tablas importantes.

Como ocurre con la mayoría de las cosas, aquí se aplica la regla 80/20:El 20% de las mesas harán el 80% de las cosas interesantes.Una vez que los haya descubierto, rara vez será necesario un diagrama.

Mire las relaciones de clave externa clave primaria que se han establecido como 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 las tablas y hago mis mejores conjeturas sobre qué podría estar relacionado con qué, luego profundizo en las estructuras para ver si hay cosas obvias (pero indefinido) claves foráneas.Miro los procesos almacenados para tener una idea de cómo se unen las tablas y qué campos se consultan.

Si bien las herramientas automatizadas para descubrir la base de datos pueden ser elegantes, encuentro 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.

Tengo una experiencia bastante buena con Estudio de datos acuáticos para realizar ingeniería inversa en un esquema de base de datos.Tiene muchas funciones y admite bases de datos aún más exóticas como Informix o Sybase.

Esto me ayudó a generar los diagramas ER en MS SQL Server 2012:

MS SQL Server Management Studio> Menú de archivos> "Conecte Object Explorer" Elija el nodo de su base de datos y expandalo.En este nodo encontrará un sub-nodo llamado "Diagramas de base de datos" Haga clic derecho en "Diagramas de base de datos"> "Nuevo diagrama de base de datos"> Agregar tablas que desea ver sus columnas, relaciones, ...

Utilice Visio.Si utiliza Vision 2010, deberá utilizar el proveedor OLEDB genérico para SQL Server para asegurarse de que no habrá problemas al conectarse al controlador Visio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top