在 SQL Server 2008+ 中对现有复杂数据库图表进行逆向工程的免费软件

软件推荐 视窗 数据库 造型
2021-10-12 20:12:10

直到几年前,我还使用 Microsoft Visio 将现有数据库逆向工程为图表。这个功能现在已经被弃用了一段时间,我宁愿坚持寻找替代方案。

要求

这个新的 SE 站点的常见问题解答指示我在要求方面要精确,所以我会尽力而为。大多数这些要求都在 Visio 中,但不是全部。我想找到一个拥有所有这些的软件是不可行的,但我想接近。

重要的:

  • SQL Server 2012数据库;

  • 具有所有列和主/外键指示的逆向工程表;

  • 反向工程外键作为表之间的连接器;

  • 盒子和连接器的手动布局(我想直观地对东西进行分组);

  • 基本主题:为表格选择背景颜色;

  • 能够处理复杂的模型,例如100多个表格

  • 能够选择显示或不显示哪些项目(例如省略某些表格等);

  • 至少可以免费试用

  • 导出为各种格式用于分发和打印,最喜欢的是 PDF,我猜 PNG 也可以;

  • 所见即所得

主要奖励积分:

  • 在 Windows 8 上运行(尽管我会为满足所有重要要求的软件安装 Linux VM)

  • 自动布局和连接器布线,以尽量减少重叠;

  • 能够做SQL Server 2008 和 2008R2 ;

  • 能够逆向工程视图

  • 免费(或免费版本);

  • 增量更新,例如再次进行逆向工程并添加/删除表格等,同时保持主题、现有布局等。

  • 漂亮的图表(现代外观、抗锯齿、字体选择、颜色、渐变、阴影、主题等);

  • 友好的学习曲线(我可以处理许多复杂的功能,只要容易快速完成基础知识);

一定有:

  • 安装程序不会偷偷在我的浏览器中安装工具栏或更改我的主页!;-)

我的研究

当然,这个问题以前也有人问过,即使在姐妹网站上也是如此(尽管它们在那里没有话题,但也取得了一些成功)。这里有几个:

与 DBA.SE 稍有相似:

此外,维基百科有一个表格比较了几个软件包的“逆向工程”功能:

试过了

这些是我尝试过的事情:

  • Visio 2003(这是我以前使用的)。不是免费的,过时的,但除此之外它符合大多数积分的要求。虽然不再是一个选择。

  • Visio 2010 和 2013(这是我目前拥有的)。不再支持逆向工程。不过,我考虑过编写插件或使用 VBA 来破解。不知道那会有多难。它不是免费的(除了我想我个人已经拥有它),但在许多其他方面都符合要求。

  • 图形化很久以前尝试过,据我记得它的学习曲线有点陡峭,我不太能够手动确定最终布局。

  • SSMS图。这适用于小案例,但对于较大的案例可能会很麻烦。

  • Visual Studio 2012 ADO.NET 实体数据模型。连接器的手动布局是有限的,根本不存在主题,它实际上是为了文档以外的目标,它显示(例如,默认你得到“导航属性”等),它不适用于 100+表。这可能对较小的场景有用,但不适合我。

而且我想我可能已经尝试过来自 SO 线程的一些建议,尽管我真的不记得具体细节了。

那么:你会推荐什么?

4个回答

这是我最终使用的建议(经过大量研究并尝试了许多不同的选择):

为此使用普通的 Visio。

这就是为什么。

这种方法的解释:

没有一种工具可以方便地满足所有提到的要求,甚至没有一种只满足主要要求的工具。Visual Studio 2012 非常接近,但缺乏主题支持,并且不能很好地处理大量表格。

以下过程对我有用:

  1. 创建一个空白的 Visio 流程图1模板。选择你喜欢的设计。将页面和打印尺寸设置为您想要的(我选择横向 A3 格式和“线性”主题)。

  2. 在旁边的 SSMS 中打开查询2以获取稍后需要的详细信息:表、列名和IS NULL信息。

  3. 开始一张一张地添加表格。手动选择要包含的表和列。

这是最终结果的示例:

放大示例

或者是整个模型的缩小屏幕截图(因为是体力劳动,我选择包含的表格远远少于所有 100 多个表格):

缩小示例

我用来制作“表格”的过程如下所示:

  • 标题为粗体且字体较大。
  • 分隔符不是线条,而只是一系列粗体的破折号。
  • 四个“部分”:表名、主键、外键、普通列。
  • 粗体表示NOT NULL列。
  • 白色表示 TableName 和分隔符,黑色表示列名。

此外,我为外键选择了:

  • 绝不允许交叉连接器,而是创建小的“参考”块来引用模型另一侧某处的表。
  • 不包括所有表(即外键多于连接器)。

希望以上内容对其他人也有用。

问题的要求:

作为底线,我确实推荐这种方法,主要是因为你最终会得到一个视觉上吸引人的模型和高度的控制。但是,这种方法并不适合整个法案。以下是它如何满足要求:

数据连接:

  • SQL Server 2012 数据库
  • 具有所有列和主/外键指示的逆向工程表
  • 反向工程外键作为表之间的连接器

±这一切都是可能的,但不是自动化的。所以“或多或少”。

控制和视觉效果:

  • 手动布局,基本主题,能够选择要显示的项目
  • 能够处理复杂的模型,例如 100 多个表格

是的,这一切都适用于普通的 Visio。

金钱:

  • 至少提供免费试用

AFAIK 有免费的 Office 试用版。我没有调查过这个,因为我有 Visio。

其他:

  • 导出为各种格式
  • 所见即所得;

是的,这在 Visio 中可用。

奖励积分:

它有大约一半的奖励积分:

  • 在 Windows 8 上运行
  • 还支持 SQL 2008
  • 漂亮
  • 友好的学习曲线

1. 我也尝试过 UML 模板和形状,但这对连接器路由有令人愤怒的行为不建议!

2. 这是我的查询:

  SELECT  t.name TableName,
          c.name ColumnName,
          CASE WHEN c.is_nullable = 1 THEN '' ELSE 'BOLD' END AS IsNotNullable
  FROM    sys.tables AS t
          JOIN sys.columns AS c ON t.object_id = c.object_id
  WHERE   c.name NOT IN ('Excluded1', 'Excluded2')
  ORDER BY t.name,
          CASE WHEN c.name = t.name + 'Id' THEN 0
               WHEN c.name LIKE '%Id' THEN 1
               ELSE 2
          END,
          c.column_id

SQL Power 架构师徽标

查看SQL Power Architect它可以连接到您可以为其配置 JDBC 连接器的几乎所有数据库,并且可以执行您正在寻找的所有逆向工程。不过,我只处理基本数据类型,因此在导入它们时必须将 DATETIME 等内容转换为 DATE。

您可以更改“表格颜色”,但实际上,这实际上是在更改表格名称/标题的颜色,而不是更改整个表格的背景颜色。

SQL Power Architect 屏幕截图:打开屏幕

SQL Power Architect 截图:实体关系图

SchemaCrawler是一个免费的开源数据库发现工具,可以对现有数据库进行逆向工程。

重要的:

  • SQL Server 2012 数据库 - SchemaCrawler与 SQL Server 2012 数据库一起使用
  • 具有所有列和主/外键指示的逆向工程表 - SchemaCrawler将创建具有所有列和外键的图表
  • 反向工程外键作为表之间的连接器SchemaCrawler将创建包含所有列和外键的图表
  • 盒子和连接器的手动布局(我想直观地对东西进行分组) - SchemaCrawler也可以生成 GraphViz DOT 输出,您可以使用其他工具来微调布局
  • 基本主题:为表格选择背景颜色 - SchemaCrawler也可以生成 GraphViz DOT 输出,您可以使用其他工具来微调布局
  • 能够处理复杂的模型,例如 100 多个表 - SchemaCrawler可以处理大量的表 - 更好的是,您可以提供正则表达式搜索条件来创建多个图表,您的模式的子集
  • 能够选择显示或不显示哪些项目(例如,省略某些表等) - SchemaCrawler允许您提供正则表达式搜索条件来创建多个图表,您的模式的子集
  • 至少提供免费试用版 - SchemaCrawler是开源且免费的
  • 导出为用于分发和打印目的的各种格式,最喜欢的是 PDF,我猜 PNG 也可以 - SchemaCrawler是开源且免费的
  • WYSIWYG - SchemaCrawler是命令行

主要奖励积分:

  • 在 Windows 8 上运行(尽管我会为满足所有重要要求的软件安装 Linux VM)- SchemaCrawler 是跨平台的
  • 自动布局和连接器路由以最小化重叠 - SchemaCrawler在幕后使用 GraphViz 进行自动布局
  • 能够做 SQL Server 2008 和 2008R2 - SchemaCrawler支持所有版本的 SQL Server
  • 能够逆向工程视图 - SQL Server 可以逆向工程视图
  • 免费(或免费版本)- SchemaCrawler是开源且免费的
  • 增量更新,例如再次进行逆向工程并添加/删除表格等,同时保留主题、现有布局等 - 保存SchemaCrawler命令行命令,然后重新运行
  • 漂亮的图表(现代外观和感觉、抗锯齿、字体选择、颜色、渐变、阴影、主题等) -来自 SchemaCrawler 网站的一些示例
  • 友好的学习曲线(我可以处理许多复杂的功能,只要很容易快速完成基础知识)_取决于你:-)

一定有:

  • 安装程序不会偷偷在我的浏览器中安装工具栏或更改我的主页!;-) - SchemaCrawler没有安装程序 - 解压缩并运行

Sualeh Fatehi,SchemaCrawler