2008-11-11 26 views
5

¿Usted genera su diccionario de datos? ¿Si es así, cómo?¿Generas tu diccionario de datos?

Utilizo procedimientos extendidos en SQL Server 2005 para mantener la información de tabla y campo. Tengo algunas consultas que crean un diccionario de ellos, pero es ... meh. ¿Tienes una consulta o herramienta particular que usas? ¿Lo generas fuera de tus diagramas de base de datos?

Google para el "servidor SQL del diccionario de datos" genera muchas consultas, pero todas son igualmente atractivas. Es decir, buenos puntos de partida, pero no listos para producción.

+0

puede generar diccionario de datos mediante el uso de instrucciones sql simples. puede encontrar el exapmle aquí http://csharpalley.com/create-sql-server-data-dictionary-using-extended-properties/ – imonweb

+0

Puede buscar una herramienta aquí: http://tools.dataedo.com. Una gran lista de herramientas de diccionario de datos. –

Respuesta

4

SchemaSpy es una herramienta muy agradable que se puede realizar ingeniería inversa a la descripción de una base de datos. Esto incluye:

  • ERD
  • Lista de tablas, columnas y restricciones
  • Conjunto de advertencias sobre DB anomalied (por ejemplo, tablas sin índices)
+0

Yo también solía tener una BBC; -} – ConcernedOfTunbridgeWells

+0

Bienvenido, hermano. –

1

Lo genero desde INFORMATION_SCHEMA vistas más otras tablas de metadatos que son específicas de la aplicación.

También uso búsquedas con comodines de INFORMATION_SCHEMA.ROUTINES para rastrear patrones de uso dentro del código e identificar columnas y tablas no utilizadas.

En este artículo se acaba de aparecer en una de mis fuentes de noticias: http://www.mssqltips.com/tip.asp?tip=1619

0

Generamos dictionnary de la base de datos en el lado del revelador de la aplicación. Tenemos un buen procedimiento usando una conexión ADODB + objetos y colecciones ADOX. Este procedimiento explorará todas las tablas en la base de datos. Los siguientes datos principales se recogen:

  1. NombreTabla
  2. ColumnName
  3. ColumnType
  4. ColumnSize
  5. bool_ColumnIsThePrimaryKey
  6. bool_ColumnHasReferentialIntegrityConstraint

También puede seguir los valores por defecto de campo, etc.

A continuación, es posible, por ejemplo:

  • cheque en cuántas mesas mi campo currency_id (clave principal de la tabla Tbl_currency) se hace referencia, y si la integridad referencial es cada vez implementado correctamente (Nosotros muy a menudo creamos el campo sin implementando las reglas correspondientes ...).
  • Asegúrese de que los campos de tipo lógico similar (como "description" campos) sean de tipo 0 tamaño similar a . Nada es tan frustrante que tiene un campo item_Description nvarchar(50) en una tabla, y un document_Description ntext en otra tabla !
  • etc.

Todos los datos extraídos a través del procedimiento se inserta en una tabla local (podría ser un archivo XML, etc.) y se guarda para su uso posterior.

Una columna dictionnary/informe se puede generar a partir de estos datos a través

SELECT DISTINT columnName FROM Tbl_Column 
0

Personalmente prefiero para crear el diccionario de datos, mientras que la base de datos está siendo diseñado. Por supuesto, esto no es siempre una opción ...

Creo que la respuesta depende del estado actual de la base de datos? ¿Está hecho y en producción? ¿Todavía tienes que empezar? (Etc.)

En el pasado, como Cade Roux, He sacado la información de INFORMATION_SCHEMA en una base de datos de acceso. Actualmente, los desarrolladores ocasionalmente agregan información sobre las diferentes tablas, columnas, procedimientos almacenados, funciones, etc. a la base de datos de Access. Dentro de la base de datos de Access, hemos creado informes para generar una impresión nítida de "Diccionario de datos".

No es la forma más eficaz de lograr la creación de un diccionario de datos, pero dado que el proyecto había pasado 3 años sin ningún signo de un diccionario de datos, esto es lo que teníamos que hacer.

Por lo tanto, en última instancia, la respuesta a esto depende del estado de su base de datos.

Best Regards,
Frank

5

Utilizamos las propiedades extendidas. Para leerlos, usamos sys.extended_properties Hace las cosas mucho más fáciles.

También utilizamos Red Gate SQL Doc

0

Escribimos nuestra propia utilidad diccionario de datos que utiliza las propiedades extendidas, pero cuando nos encontramos herramienta de Redgate, que abandonó por su herramienta. Funcionó muy bien para nosotros! Creo que ayudó que ya teníamos descripciones de campos y tablas en propiedades extendidas. No anunciar para una empresa, pero tienen una prueba gratuita de 14 días. Vale la pena echarle un vistazo. http://www.red-gate.com/products/SQL_Doc/index.htm

6

Recientemente tuve una tarea de documentar una base de datos bastante grande (alrededor de 500 objetos) y los detalles que se encuentran aquí realmente me ayudó.

Aquí es un poco de información sobre cómo se implementó este - de esperar que alguien le resultará útil a pesar de que es bastante tarde.

Técnica:

  • propiedades extendidas en todos los objetos + third party tool para generar documentos

Lo que fue documentado:

  • Todas las tablas y algunas columnas (que se agregaron buenas descripciones para toda la tabla s realmente asegurarse de que está claro lo que la mesa está a punto)

  • Todas las visitas - descripciones sobre por qué se creó la vista, lo que las tablas están incluidos en los datos y tal y cuándo utilizar

  • todos almacenados procedimientos: al pasar por el proceso, descubrimos que teníamos muchos procedimientos almacenados duplicados (los desarrolladores no se molestaron en ver si existe un proceso así que crearon otros nuevos)

  • Todas las UDF y algunos otros objetos también pero no todo (no teníamos realmente la necesidad de documentar los factores desencadenantes)

Lo que terminamos haciendo es que nuestro DBA rechace todas las actualizaciones DDL que provienen de los desarrolladores a menos que haya propiedades extendidas.

También tenemos una tarea programada para volver a crear automáticamente la documentación cada 2 semanas.

Cuestiones relacionadas