使用 DatabaseSpy 探索一个陌生的数据库
软件开发人员在开发新应用程序时,数据专业人士在各种企业中工作,甚至数据库管理员,经常会遇到不熟悉的数据库,并且需要一款数据库工具,以便快速了解其中的表结构和关系。
Altova DatabaseSpy 是一款独特的、多数据库查询、设计和比较工具,它配备了图形化的数据库设计编辑器,能够帮助用户快速了解不熟悉的数据库,直观地查看表、关系,甚至可以查看数据库类型之间可能存在的独特的数据类型定义。

DatabaseSpy 支持所有主流数据库:
- 火鸟
- IBM DB2®数据库系统
- Informix® (商标)
- Microsoft Access™ 数据库管理系统
- Microsoft® Azure SQL数据库服务
- Microsoft® SQL Server® 数据库系统
- MySQL®
- Oracle®
- PostgreSQL数据库系统
- Progress OpenEdge
- SQLite
- Sybase® (思贝)
Chinook是一个开源的示例数据库,适用于SQL Server、Oracle、MySQL、DB2、PostgreSQL、SQLite等多种数据库系统,它实现了针对数字媒体商店的数据模型。接下来,我们将使用DatabaseSpy来探索SQLite版本的Chinook数据库。
数据库侦察工具(DatabaseSpy)的连接向导可以快速连接到 SQLite 数据库,并将该数据库添加到新的 DatabaseSpy 项目中


一个 DatabaseSpy 项目可以包含对多个数据库的连接,甚至可以是不同类型的数据库。在线浏览器辅助窗口允许我们立即查看表列表并生成行数统计

对于更复杂的数据库,在线浏览器还会显示多个数据库模式、视图、存储过程、函数等。例如,在SQL Server AdventureWorks示例数据库的视图中,您可以看到这些内容

我们对数字音乐商店的数据库感兴趣,因为我们还拥有一个CSV文件,其中包含来自另一媒体文件库的元数据,我们希望将这些数据添加到数据库中。该CSV文件包含以下字段:

我们可以在在线浏览器窗口中,点击“曲目”表格旁边的加号按钮,或者更方便的方法是,在新的设计编辑器窗口中打开该表格

“跟踪”表格包含一些键,这些键引用了其他表格。通过右键单击,可以调出上下文菜单,从而添加被引用的表格,并展示它们之间的关系,从而构建一个更完整的视图,类似于实体关系图。

将此图表与 CSV 文件中的新字段进行对比,发现了一个问题。我们的数据中,对于每首歌曲,分别设置了“歌曲演唱者”和“专辑演唱者”两个字段。 这样做是为了适应一些类型的专辑,例如电影原声带等,这些专辑可能以“Various Artists”(各种艺术家)等泛泛的名称归属,但我们仍然希望记录每首歌曲的正确演唱者。
当前的“曲目”表格并未为每首曲目指定音乐人,而是引用“专辑ID”,而“专辑ID”又会引用“艺术家”表格,从而确定一张专辑的艺术家信息。
图形化编辑数据库表
没问题!我们可以在“跟踪”表格中,点击“单位价格”列下方显示的加号图标,以向表格添加新的列。DatabaseSpy 会添加该列,并为其设置默认值:

首先,我们可以重命名新的列,并为其指定数据类型。需要注意的是,DatabaseSpy 提供了方便的下拉列表,让我们能够为这个数据库选择任何有效的数据类型。用于存储歌曲演唱者的列通常很少使用,因为它只在我们需要覆盖专辑中的“艺术家ID”时才需要。我们可以简单地将其保留为文本类型,并设置一个长度限制,就像“作曲家”列一样。

请注意,在上面的截图中的“TrackArtist”列名旁边有一个加号。DatabaseSpy 实际上并没有直接修改数据库,而是在我们编辑图表时,它会自动在一个单独的窗口中创建一个数据库修改脚本。

这允许用户在设计编辑器中进行多次修改,而无需担心风险。当所有修改完成后,我们可以选择直接执行脚本、在新SQL窗口中打开脚本进行编辑、将脚本保存到文件中,或者放弃所有修改并丢弃脚本。
我们将打开脚本,并在SQL编辑器窗口中添加一个限制,用于限制文本字段的长度,使其与“Composer”列的限制保持一致

我们可以从编辑器窗口执行脚本,然后重新加载数据库,以便在设计编辑器中查看更新后的内容。

设计编辑器只是一个便捷、直观的功能,旨在帮助用户探索不熟悉的数据库。 下载免费试用版,亲身体验DatabaseSpy如何简化数据库查询、可视化、管理、比较以及呈现查询结果。