我最近继承了维护数据库的工作,该数据库设计得不是很好,设计师无法提出任何问题。在不久的将来,我还会有更多的事情发生。

在没有任何视觉辅助或数据库图表的情况下,试图弄清楚表格之间的关系是很困难的。

我想知道为此建议使用哪些工具。我知道Visio,但我希望有一些很好的开源/免费软件应用程序。我根本不需要它来更改数据库。只需阅读它并创建一些视觉辅助,以帮助我理解事物的布局,并试图弄清楚设计师正在考虑数据应该如何相关。


其他答案数据:SchemaSpy是我一直在寻找的东西,但是由于多年来没有使用命令行做过很多,我选择使用 SchemaSpyGUI 。还有一些配置需要习惯,因为我不使用Java很多,但最终结果是我正在寻找的(在Visio的ER图的开源替换)。

有帮助吗?

解决方案

尝试 SchemaSpy 。我在一个相当复杂的数据库上运行它,我对结果感到非常满意,并提出了优化建议。

其他提示

您使用的是什么DBMS(数据库管理系统)?许多现代DBMS如SQL Server和Access都可以为您创建一个E-R图。

Microsoft Visio是一款出色的工具,可以从任何数据源对SQL进行反向工程。

DDT(数据库设计工具)可以进行逆向工程来自Windows上的原始SQL,非常轻量级(非常小的免费下载)。

MySQL Workbench是比较流行的MySQL工具之一,可以免费下载。

SQLFairy可以在Linux上为MySQL做同样的事情。

dbdesc 不是免费的,但我听说过非常好的事情。它适用于那里的几个主要数据库。

我很幸运,因为我还没有解密其他人的数据库模式。我使用了 CodeSmith 附带的一组模板。

首先,我可以说我感受到你的痛苦! 以下是我的一些提示:

  1. 通常,只有设计人员正确定义了所有主键和外键时,工具才会有用,因此请注意,工具可能无法获取所有重要关系。
  2. 最有用的是查看客户端代码正在执行哪些查询。这将告诉您不仅存在哪些关系,而且最常使用哪些表和关系 - 这是您需要集中精力的地方。

有一些开源软件,但Visio Professional的逆向工程数据库模式工具非常好,因为它解耦了逆向工程和图表的过程。我经常使用它,因为它在大多数网站上都很容易获得。

visio的一个很好的功能是你可以逆向工程,然后从反向工程模式构建自己的图表。这样做是探索模式并理解它的一种非常好的方法,因为您正在以交互方式构建模式的参考文档来完成此工作。我使用这种技术对从基于活动的成本计算系统到< a href =“http://www.roomsolutions.net/insurance-software/policy-administrator-system/subscribe.aspx”rel =“nofollow noreferrer”>保险承保系统,通常没有来自供应商的帮助。使用Visio图表进行修补是非常轻松的。

在这个和一个关于FK关系的假设测试之间(如果FK没有实际出现在桌面上),你可以理解相当复杂的模式。我发现这种图表方法使得Visio成为一个头肩领导者,因为您可以以相当方便的方式轻松地与反向工程模型进行交互。您可以填写缺少的外键,构建主题区域图并在图表上添加注释。这个过程的互动性使它成为一个很好的学习工具。

这是一种有点主观的看法,但互动性对我来说非常适合作为一种学习过程,这是迄今为止我的首选方法。大多数网站都不会吝啬你的许可证 - 如果他们还没有可用的话。我曾经在他们必须得到它的地方工作的唯一网站是因为他们有Visio Standard而不是Pro。我问得很好,PHB签了字。

我使用mysql workbench( http://www.mysql.com/products/workbench/ )用于mysql数据库。您可以将工作台附加到数据库,它将为您绘制ER数据库。

使用pgsql / win32我发现最简单的解决方案是编写一个使用CPAN中的Graph :: Easy的perl脚本。查询数据库中的外键关系,制作一个有表格作为节点和FK关系作为链接的有向图。如果这是您的设置,我可以发布代码。

我喜欢尝试查看使用数据库的应用程序是否有记录他们使用的SQL的方法(或者DB后端本身,但这往往不那么易处理)。了解对数据库执行的请求有助于您专注于重要的表格。

与大多数事情一样,80/20规则适用于此:20%的表格将完成80%的有趣内容。一旦你弄明白了,很少需要图表。

查看已设置为起始位置的主键外键关系。

由于没有现有图表的数据库,可能没有正式设置关系,我查看表格结构和名称,并尽可能猜测可能与什么有关,然后挖掘结构,看看是否有明显的(但未定义的)外键。我查看存储过程以了解表格如何连接以及正在查询哪些字段。

虽然找出数据库的自动化工具可能很精简,但我发现当我真正深入研究数据库的细节时,我最终会比从任何自动创建的图片中获得更好的理解。

我对使用 Aqua Data Studio 进行逆向工程数据库架构有一些非常好的经验。它功能非常丰富,支持更多异国情调的数据库,如Informix或Sybase。

这有助于我在MS SQL Server 2012上生成ER图表:

MS SQL Server管理Studio&gt;文件菜单&gt; “连接对象资源管理器” 选择您的数据库节点并展开它。在这个节点下,你会发现一个名为“数据库图”的子节点。 右键单击“Database Diagrams”和“Database Diagrams”。 &GT; “新数据库图” &GT;添加您希望查看其列,关系......的表

使用Visio。如果使用Vision 2010,则需要使用适用于SQL Server的通用OLEDB提供程序,以确保连接到Visio驱动程序时不会出现任何问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top