在 Visio 中,使用数据库模型图模板,可创建新模型或将现有数据库逆向转换为模型。
本文介绍如何创建数据库模型以及在创建模型后可以对模型执行的操作。
注意: 数据库模型图仅可在某些版本的 Visio 中可用。 若要了解详细信息,请参阅找不到数据库建模功能?
1:启动数据库模型图
2:优化图结构
创建数据库模型图后,开始对其进行优化。 可以添加和自定义模型的三个主要组成部分:
-
实体(或表)、
-
列(描述有关表的事实)和
-
关系(表之间的关联)。 关系可以是一对一、一对多或多对多。
选择下面的标题以打开有关向模型添加功能的说明。
数据库模型图模板随附了两个模具。 当你开始优化图结构时,请使用适合你的模具:
使用“实体”形状在图中创建表格:
-
从“实体关系”或“对象关系”模具中,将“实体”形状拖到绘图上。
-
双击形状以打开“数据库属性”窗口。
-
在“类别”下,单击“定义”并键入表格名称。
-
在“类别”下,单击“列”,键入名称并选择数据类型。
-
为不能具有 NULL 值的列选中“必需”复选框。
-
为对数据库表中的每行进行唯一标识的列选中“PK”(主键)复选框。
-
在“类别”下,单击“索引”、“触发器”、“检查”或“扩展”以创建这些可选元素。
使用“数据库属性”窗口添加或更改列的属性,包括数据类型和主键:
-
在图中双击表格。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
单击第一个空的“物理名称”单元格,并键入名称。
-
若要更改列的数据类型,单击列的“数据类型”字段,然后选择列表中的数据类型或将其键入列表中。 例如,可以键入 decimal(8,2) 或 char(30)。
-
若要防止出现 NULL 值,选中“必需”复选框。
-
若要将列指定为主键,选中“PK”复选框。
-
若要查看单击“列”类别后所显示的列属性以外的其他列属性,选择相应列,然后单击“编辑”。
关系通过使用主键和外键,让数据库能够将表格中的行与相关表格中的行匹配。 可以在图中显示这些关系。 此外,可以设置它们的基数(例如,一对多)并使用 Crow's feet 表示法、关系表示法或 IDEF1X 表示法来显示基数。 无法在“数据库模型图”模板中使用上述任一表示法显示多对多关系。
在表之间创建关系:
-
请确保两个表在图中均可见。 如果通过反向工程将现有数据库转换为模型,可能需要将一个表或两个表从“表和视图”窗口拖到绘图页上。
-
双击用于关系主键一侧的表。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
在网格中,单击要用于唯一标识表中每行的列,然后选中“PK”复选框,将其设置为主键。
-
从“对象关系”或“实体关系”模具中,将某个“关系”形状拖放到页面上的空白区域。
-
将较高的一端连接到包含父表的表。
-
将另一端连接到子表。
如果第二个表尚未包含与主键同名的列,则建模器会向第二个表中添加此列作为外键。
注意: 如果关系行消失,在“数据库”选项卡的“管理”组中,单击“显示选项”。 在“关系”选项卡的“显示”下,选中“关系”复选框。
设置关系的基数:
-
双击此关系。
-
在“数据库属性”窗口的“类别”下,单击“杂项”。
-
在“基数”下,选中最适合关系的基数。 对于一对多关系,最佳选择是“大于或等于 0”或“大于或等于 1”。 对于一对一关系,最佳选择是“0 或 1”或“精确为 1”。
3:添加用于搜索和更新数据的功能
若要对图进行其他优化(例如创建索引、检查子句和触发器),请选择下面的标题,以打开有关添加以下任何内容的说明:
运行查询时,索引可以提高数据库的性能或速度。
-
打开数据库模型图。
-
双击要添加索引的表,在“数据库属性”窗口的“类别”列表中,单击“索引”。
-
单击“新建”。
-
在“创建索引”对话框中,为该索引键入一个名称,然后单击“确定”。
-
在“索引类型”中,选择创建唯一或非唯一索引。
-
在“可用列”列表中,选择要包含在此索引中的每个列的名称,然后单击“添加 >”。
-
在“索引列”列表中,选中“Asc”复选框以创建升序排序的索引,或清除复选框以创建降序排序的索引。
数据库模型图随即更新。
可将视图视为已保存的查询。 如果需要从多个表重复访问相同的信息,或者希望在不允许用户更改实际表的情况下向用户公开数据,使用视图会非常方便。
从“实体关系”或“对象关系”模具中,将“视图”形状拖到绘图页上。
也许可以设置表或视图的扩展属性,用于确定其存储位置,具体取决于所使用的数据库管理系统 (DBMS)。
双击要设置扩展属性的表或视图,在“数据库属性”窗口的“类别”列表中,单击“扩展”。
使用 Check 子句可确保列中输入的数据处于特定值范围内。 例如,可以创建一个 Check 子句,要求名为“Age”的列中的数据超过 65。
-
双击表以打开“数据库属性”窗口。
-
在“类别”下,单击“列”然后单击要在其中添加 Check 子句的列。
-
单击“编辑”。
-
在“列属性”对话框的“检查”选项卡上,输入所需的约束。 有关所选内容的详细信息,请参阅列和字段属性对话框(“检查”选项卡)。
Check 子句已添加到“局部代码”下的“代码”窗口中。
使用存储过程和用户定义的函数创建可重复使用的代码包,用于重复执行相同的操作。 用户定义的函数和存储过程的主要区别在于,前者返回一个值,而后者执行代码,不返回值。
-
在“数据库”选项卡的“显示/隐藏”组中,选中“代码”复选框以打开“代码”窗口。
-
单击“全局代码”,然后单击“新建”。
-
在“代码编辑器”的“属性”选项卡上,单击要创建的代码类型,并键入代码名称。
-
在“正文”选项卡上,键入代码,然后单击“确定”。
数据库中发生特定事件时,触发器会引发触发器中定义的 SQL 代码运行。
-
双击表以打开“数据库属性”窗口。
-
在“类别”下,单击“触发器”,然后单击“添加”。
-
在“属性”选项卡上,键入触发器的名称。
-
在“正文”选项卡上,键入代码,然后单击“确定”。
触发器已添加到“局部代码”下的“代码”窗口。
找不到数据库建模功能?
某些版本的 Visio 缺少部分或全部数据库建模功能:
-
Visio Standard 不包含数据库模型图模板。
-
Visio Professional 和 Premium 版本支持数据库模型图模板反向工程功能(即,使用现有数据库在 Visio 中创建模型),但它们不支持正向工程(即使用 Visio 数据库模型生成 SQL 代码)。
-
Visio for Enterprise Architects 中有全套数据库建模功能,包括反向工程和正向工程。 Visio for Enterprise Architects 包含在 MSDN Premium 订阅中,可通过 Visual Studio Professional 和 Visual Studio Team System 基于角色的版本获取。
若要了解你拥有的 Visio 版本,请在 “帮助 ”菜单上,选择“关于Microsoft Office Visio”。 版本名称位于对话框中文本的第一行。 或者,可以选择“ 文件 > 关于”,然后在“产品信息” 和“关于 Visio”下查看版本信息。
如果正在使用 Visio 计划 2 并且希望了解如何将现有数据库工程转换为数据库模型,请参阅对现有数据库进行反向工程。 Visio 支持对 SQL Server 2016 和更早版本进行反向工程。 Visio 不支持 SQL Server 2019 或更高版本的反向工程。