Recientemente fui contratado como el único chico de TI en una determinada empresa X y tengo la tarea de corregir sus aplicaciones, y en mi opinión, la mejor manera de comenzar es entender la base de datos.
Su base de datos actual es una base de datos MySQL con 186 tablas (tenga en cuenta que algunas tablas están vacías porque Dios sabe por qué). Y la aplicación se está comunicando con la base de datos a través de una interfaz de base de datos MS Access. (Me pregunto por qué los desarrolladores también hicieron eso)
La pregunta es, ¿cómo empiezo a abordar esta gran base de datos indocumentada? Sí, no está documentado porque los desarrolladores de la aplicación no están dispuestos a darme un ERD o un diccionario de datos o cualquier información sobre la base de datos para facilitarme la vida. ¿Cómo sugeriría asumir este peligroso esfuerzo de comprender cada rincón de la base de datos bastante grande?
Pregunta relacionada: ¿Cómo sumergirse en una base de datos fea?
Respuestas:
La respuesta vinculada aborda el problema de abajo hacia arriba, primero la base de datos. Como sus responsabilidades abarcan las aplicaciones y la base de datos, me inclinaría a atacar esto de arriba hacia abajo comenzando en las aplicaciones.
Concentre su atención en comprender las funciones más utilizadas de la aplicación mediante consultas con la base de usuarios. Rastree las interacciones de la base de datos de esas características a través de herramientas de creación de perfiles / registro para que pueda identificar las tablas y procedimientos clave.
De esta manera, sus primeros esfuerzos se limitan a las "cosas que importan", en lugar de perder el tiempo documentando tablas y consultas que pueden ser raramente o nunca utilizadas. El enfoque también debería hacer que el Principio de Pareto se destaque en sus esfuerzos de corrección de errores ( eso dice Microsoft de todos modos ).
fuente
Posiblemente intentaría obtener MySQL Workbench y luego crear un modelo EER a partir de la base de datos. Esto significa que puede ver qué enlaces a qué y descubrir qué podrían haber estado pensando los desarrolladores. Todo depende de la aplicación también de cómo está estructurado.
fuente
Encuentro que DBLint es útil para la identificación de problemas con la base de datos. Tiene las siguientes propiedades agradables:
Para la identificación rápida de puntos de acceso en la base de datos MySQL, Neor Profile SQL es un proxy que se encuentra entre la aplicación y la base de datos. Lo bueno de esto es que es rápido de configurar.
Para el descubrimiento de las claves primarias y externas de hecho en la base de datos, que, sin embargo, no están definidas en la base de datos, puede usar Linkifier . Para el trazado de ERD, las estimaciones se pueden exportar a yEd , que tiene muchos algoritmos de diseño para el posicionamiento de las tablas. BPMN es mi favorito para ERD.
fuente
Hay una herramienta de Oracle (My SQl Workbench) para acceder a la base de datos My Sql, es una interfaz que podría proporcionarle el ERD de la base de datos.
fuente