有没有好的工具可以可视化一个已经存在的数据库架构呢?如果有所区别,我正在使用MySQL。
目前我正在使用MySQL Workbench来处理一个SQL创建脚本转储,但它很笨重、速度慢,而且手动拖动所有表格是个麻烦的过程(如果速度不那么慢可能还行)。
有没有好的工具可以可视化一个已经存在的数据库架构呢?如果有所区别,我正在使用MySQL。
目前我正在使用MySQL Workbench来处理一个SQL创建脚本转储,但它很笨重、速度慢,而且手动拖动所有表格是个麻烦的过程(如果速度不那么慢可能还行)。
Visio专业版内置了一个数据库反向工程工具。您可以通过ODBC驱动程序将其与MySQL一起使用。当您通过从表和视图面板拖动它们来创建图表时,最好先反向工程数据库。它会拖动任何外键对象,并将它们放在图表上。
DeZign for Databases可能会对您感兴趣。您可以反向工程和修改现有的数据库。它具有自动布局功能,当将数据模型与数据库同步时,图表布局不会混乱。
我使用 SQL::Translator 和 DBIx::Class
我已经在我的工具链中使用了 DBIx::Class,结合 SQL::Translator 可以将模式转换为许多不同的格式。主要是为不同的数据库服务器生成初始化 SQL 脚本(使得在 SQLite 上进行开发并在生产环境中迁移到 Postgresql 变得容易),但它也可以输出 GraphViz 数据,因此生成图表非常简单。
Embarcadero的ER/Studio是价格较高的工具之一,但它呈现的分层模式是迄今为止最适合理解数据库模型的。它使查询编写成为世界上最简单的任务。
它还非常擅长规范化、去规范化、数据仓库、文档等方面。
缺点是它是一个相当昂贵的工具,特别是当你需要跨多个平台时。
尝试使用 PHPMyAdmin,它具有一些非常好的可视化和编辑功能。我相信你甚至可以从中导出到Excel。
当你说可视化数据库模式时,是指所有表、存储过程等的文本文档,还是指模式和依赖关系的可视化表示?
我知道你提到了MySQL(现在很可能已经支持,但我不确定),但RedGate有许多工具可以使这变得非常简单。它的SQL Doc程序可以获取整个数据库并为其创建完整的数据库文档。SQL Dependency Tracker可以为您提供所有表的可视化表示,并显示它们之间的链接,或者您可以加载某些表或存储过程以显示使用它们的内容或它们自己正在使用的内容。
多年前,我曾经使用过Data Architect。我不知道它是否仍然存在。
您可以将现有模式反向工程为关系表图。
或者,您甚至可以进一步反向工程带有相应图表的实体关系模型。当与既非程序员也非数据库专家的人讨论数据时,ER图对我非常有用。
有时,在将其作为有用的沟通工具与利益相关者交流之前,需要对ER模型和ER图进行一些手动修复。
我尝试了DBSchema。功能很不错,但对于大约有75个表的数据库来说速度非常慢。无法使用。