26 de junio de 2012

¿Como generar el diccionario de datos de una Base de Datos en MySQL con Workbench?

Pues bueno, después de muchos días sin agregar alguna entrada a mi blog, aquí estoy de nuevo para mostrar como generar un diccionario de datos de una forma fácil y sencilla con la ayuda de Workbench.

Hace algunos meses necesitaba generar el diccionario de datos de una BD de MySQL. La verdad no pensaba realizarlo en Word. Así que busque información en la red si existía un programa para realizarlo. Para mi fortuna encontré un script hecho por tmsanchez (http://tmsanchezdev.blogspot.mx/2010/07/reporte-en-html-de-un-modelo-en.html) para obtener el diccionario de datos para Workbench. Aunque seguí las indicaciones que indicaba en su blog no logre añadir el script al Workbench, ni siquiera con su segunda versión (http://tmsanchezdev.blogspot.mx/2011/07/nueva-version-para-generar-reporte-en.html). Pero lo bueno que en la informática casi siempre existirá alguien más que tenga el mismo problema que tu y lo resolverá, y así fue, Carlos Acuña publico un comentario donde pone un script el cual si me funciono (http://dl.dropbox.com/u/38625994/db_doc_plugin.lua) y pude así obtener mi preciado diccionario de datos.

Mi aportación, que muestro en esta entrada, es agregar un formato amigable a las tablas, agregue los comentarios de cada campo y añadí la información de las vistas en la BD.

Y pues comenzare mostrando el codigo del script:



Solo es necesario copiar el código y guardarlo en un archivo con extensión ".lua". El siguiente paso es agregarlo al Workbench, entonces una vez abierto el programa es necesario ir al menú Scripting>Install Plugin/Module File...

Después elegimos el archivo con extensión ".lua" donde se guardo el script.

Una vez hecho lo anterior se abrirá la ventana del depurador de Workbench. Si todo salió bien se mostrara un mensaje indicando que la instalación fue exitosa y después se debe reiniciar el Workbench para que surtan efecto los cambios. Al abrir de nueva cuenta el programa se mostraran dos nuevos menús como se muestran en la siguiente imagen:

La diferencia entre las dos opciones es que el primero guarda el diccionario en un archivo y el otro lo copia al "portapapeles del sistema". Se debe tener en cuenta que genera código HTML. Con esto es suficiente para que se pueda generar el diccionario de datos de una BD de MySQL. Enseguida dejo el resultado que genera para una BD que tengo.

bdrfid

    Tablas

  1. carrera (2 campos)
  2. carrera_has_institucion (2 campos)
  3. departamento (3 campos)
  4. especialidad (3 campos)
  5. estados (2 campos)
  6. institucion (3 campos)
  7. item (7 campos)
  8. municipios (3 campos)
  9. persona (15 campos)
  10. registro (6 campos)
  11. tag (3 campos)
  12. Vistas

      1. carrera

        CAMPO TIPO NULO EXTRA COMENTARIOS
        idCarrera INT(11) NO AUTO_INCREMENT
        Nombre VARCHAR(45) SI -
      2. carrera_has_institucion

        CAMPO TIPO NULO EXTRA COMENTARIOS
        carrera_idCarrera INT(11) NO -
        institucion_idInstitucion INT(11) NO -
      3. departamento

        CAMPO TIPO NULO EXTRA COMENTARIOS
        idDepartamento INT(11) NO AUTO_INCREMENT
        Nombre VARCHAR(80) SI -
        institucion_idInstitucion INT(11) NO -
      4. especialidad

        CAMPO TIPO NULO EXTRA COMENTARIOS
        idEspecialidad INT(11) NO AUTO_INCREMENT
        Nombre VARCHAR(45) SI -
        carrera_idCarrera INT(11) NO -
      5. estados

        CAMPO TIPO NULO EXTRA COMENTARIOS
        id_estado INT(11) NO AUTO_INCREMENT
        estado VARCHAR(45) SI -
      6. institucion

        CAMPO TIPO NULO EXTRA COMENTARIOS
        idInstitucion INT(11) NO AUTO_INCREMENT
        Nombre VARCHAR(100) SI -
        municipios_id_municipios INT(11) NO -
      7. item

        CAMPO TIPO NULO EXTRA COMENTARIOS
        Id_item INT(11) NO AUTO_INCREMENT
        Nombre VARCHAR(45) SI -
        Tipo VARCHAR(45) SI -
        Descripcion TEXT SI -
        EPC VARCHAR(45) SI -
        persona_Id_persona INT(11) NO -
        tag_Id_tag INT(10) NO -
      8. municipios

        CAMPO TIPO NULO EXTRA COMENTARIOS
        id_municipios INT(11) NO AUTO_INCREMENT
        nombre_municipios VARCHAR(45) SI -
        estados_id_estado INT(11) NO -
      9. persona

        CAMPO TIPO NULO EXTRA COMENTARIOS
        Id_persona INT(11) NO AUTO_INCREMENT
        Nivel VARCHAR(45) SI -
        Clasificacion VARCHAR(45) SI -
        EPC VARCHAR(100) SI -
        Nombre VARCHAR(45) SI -
        Apellido_materno VARCHAR(45) SI -
        Apellido_paterno VARCHAR(45) SI -
        Edad INT(11) SI -
        Genero VARCHAR(9) SI -
        Fotografia LONGBLOB SI -
        institucion_idInstitucion INT(11) NO -
        tag_Id_tag INT(10) NO -
        carrera_idCarrera INT(11) SI -
        especialidad_idEspecialidad INT(11) SI -
        departamento_idDepartamento INT(11) SI -
      10. registro

        CAMPO TIPO NULO EXTRA COMENTARIOS
        idRegistro INT(11) NO AUTO_INCREMENT
        Nivel BINARY(1) SI -
        Entrada_salida BINARY(1) SI -
        Fecha DATE SI -
        Hora TIME SI -
        Tag_Id_tag INT(11) NO -
      11. tag

        CAMPO TIPO NULO EXTRA COMENTARIOS
        Id_tag INT(10) NO AUTO_INCREMENT
        EPC VARCHAR(100) NO -
        Tipo VARCHAR(45) SI -
       
      Referencias:

      http://tmsanchezdev.blogspot.mx/2010/07/reporte-en-html-de-un-modelo-en.html

      http://tmsanchezdev.blogspot.mx/2011/07/nueva-version-para-generar-reporte-en.html
      http://dl.dropbox.com/u/38625994/db_doc_plugin.lua

9 comentarios: