6

您是否生成数据字典?如果是这样,怎么做?

我使用 SQL Server 2005 中的扩展过程来保存表和字段信息。我有一些查询可以从中创建字典,但它是……嗯。您是否使用了特定的查询或工具?你是从你的数据库图表中生成它的吗?

谷歌搜索“数据字典 sql server”会出现许多查询,但它们都同样具有吸引力。也就是说,良好的起点,但还没有准备好生产。

4

9 回答 9

6

最近我的任务是记录一个相当大的数据库(大约 500 个对象),我在这里找到的细节确实很有帮助。

这里有一些关于我们如何实现它的反馈——希望有人会发现它很有用,即使它已经很晚了。

技术:

记录的内容:

  • 所有表格和一些列(我们为所有表格添加了良好的描述,以确保清楚表格的内容)

  • 所有视图 - 说明创建视图的原因、数据中包含哪些表等以及何时使用

  • 所有存储过程——在处理过程中,我们发现我们有很多重复的存储过程(开发人员没有费心去查看 proc 是否存在,所以他们创建了新的)

  • 所有 UDF 和其他一些对象也是如此,但不是全部(我们真的不需要记录触发器)

我们最终做的是让我们的 DBA 拒绝来自开发人员的所有 DDL 更新,除非有扩展属性。

我们还有一个计划任务,每 2 周自动重新创建文档。

于 2013-08-09T09:41:49.770 回答
5

我们使用扩展属性。

要阅读它们,我们使用sys.extended_properties 它使事情变得容易得多。

我们也使用 Red Gate SQL Doc

于 2008-11-14T20:29:20.340 回答
4

SchemaSpy是一个非常好的工具,可以对数据库的描述进行逆向工程。这包括:

  • ERD
  • 表、列和约束的列表
  • 关于数据库异常的一组警告(例如没有索引的表)
于 2008-11-13T14:45:43.920 回答
2

我使用这个工具(开源): http: //www.codeplex.com/datadictionary。我创建的所有信息都添加到数据库的扩展属性中。

于 2009-12-29T14:14:47.377 回答
1

我从INFORMATION_SCHEMA视图和其他特定于应用程序的元数据表中生成它。

我还使用通配符搜索INFORMATION_SCHEMA.ROUTINES来跟踪代码中的使用模式并识别未使用的列和表。

这篇文章刚刚出现在我的一个新闻提要中:http ://www.mssqltips.com/tip.asp?tip=1619

于 2008-11-11T20:46:15.667 回答
0

我们在应用程序的开发者端生成数据库的字典。我们有一个使用 ADODB 连接 + ADOX 对象和集合的好程序。此过程将浏览数据库中的所有表。收集到以下主要数据:

  1. 表名
  2. 列名
  3. 列类型
  4. 列大小
  5. bool_ColumnIsThePrimaryKey
  6. bool_ColumnHasReferentialIntegrityConstraint

您还可以跟进字段默认值等。

然后可以例如:

  • currency_id检查我的字段(表的主键 )被引用了多少表 Tbl_currency,以及每次是否正确实现了引用完整性(我们经常在没有实现相应规则的情况下创建字段......)。
  • 确保相似逻辑类型的字段(如“ description”字段)具有相似的数据类型/大小。item_Description nvarchar(50)没有什么比在一个表中有一个字段,而 在另一个表中有一个字段更令人沮丧的了document_Description ntext
  • 等等

通过该过程提取的所有数据都插入到本地表中(可以是 XML 文件或其他文件)并保存以供进一步使用。

可以从此数据生成列字典/报告

SELECT DISTINT columnName FROM Tbl_Column
于 2008-11-12T12:35:16.950 回答
0

我个人更喜欢在设计数据库时创建数据字典。当然,这并不总是一种选择......

我认为答案取决于数据库的当前状态?是否已完成并投入生产?你还没有开始吗?(ETC。)

过去,像 Cade Roux 一样,我将信息从 INFORMATION_SCHEMA 提取到访问数据库中。目前,我们有开发人员偶尔将有关不同表、列、存储过程、函数等的信息添加到 Access 数据库中。在 Access 数据库中,我们创建了报告以输出一个整洁的“数据字典”打印输出。

这不是完成创建数据字典的最有效方法,但鉴于该项目已经过去 3 年没有任何数据字典的迹象,这就是我们必须做的。

所以最终,这个问题的答案取决于你的数据库的状态。

最好的问候,
弗兰克

于 2008-11-12T18:35:37.847 回答
0

我们编写了自己的使用扩展属性的数据字典实用程序,但是当我们找到 Redgate 的工具时,我们放弃了它,取而代之的是他们的工具。为我们工作得很好!我想这有助于我们在扩展属性中已经有了字段和表描述。不是为公司做广告,但他们有 14 天的免费试用期。值得一看。 http://www.red-gate.com/products/SQL_Doc/index.htm

于 2008-11-17T19:47:32.203 回答
0

我对SQL Data Dictionary很幸运。

于 2014-05-01T06:26:57.663 回答