可以将数据类型视为规则,它们限制了数据库表中可输入每列的信息类型。 例如,如果要确保没有人在应该只有日期的字段中输入名称,可将该字段的数据类型设置为日期数据类型。 首次创建表时,请在“数据库属性”窗口中设置每列的数据类型。
注意: 数据库模型图仅可在某些版本的 Visio 中可用。 若要了解详细信息,请参阅找不到数据库建模功能?
在数据库模型表中设置列的数据类型
-
对于要为其设置数据类型的列,双击这些列所属的表的形状。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
单击要更改的“数据类型”列中的单元格。
-
单击当前数据类型旁边的向下箭头,然后从列表中选择其他数据类型。
在可移植性数据类型和物理数据类型之间进行选择
可移植性数据类型是一般定义的类型,它们可映射到不同数据库系统中相似、兼容的物理数据类型。 物理数据类型是目标数据库支持的数据类型。 例如,如果将驱动程序设置为 Access,则 Microsoft Office Access 中所有可用的数据类型都能用作模型中的物理数据类型。
-
对于要为其设置数据类型的列,双击这些列所属的表的形状。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
在列的列表下方,单击“可移植性数据类型”或“物理数据类型”。
-
可移植性数据类型是一般定义的类型,它们可映射到不同数据库系统中相似、兼容的物理数据类型。
-
物理数据类型由模型的数据库驱动程序集决定。 要详细了解驱动程序的数据类型,请参阅其目标数据库管理系统 (DBMS) 的相关文档。
-
更改可用的物理数据类型集
不同的数据库管理系统支持不同的物理数据类型。 例如,如果将驱动程序设置为 Access,则 Access 中所有可用的数据类型都能用作模型中的物理数据类型。 如果未看到期望的数据类型,则可能需要更改在“驱动程序选项”对话框中设置的驱动程序。
要在模型中使用 DBMS 的数据类型集,请在“驱动程序选项”对话框中将驱动程序设置为该系统。
-
确定为图表设置的数据库驱动程序。
-
双击表,然后在“数据库属性”窗口的“类别”下,单击“列”。
-
在可移植性数据类型和物理数据类型的选项旁边,查看列的列表。
-
请注意括号中显示的目标数据库管理系统。
-
-
更改目标数据库驱动程序。
-
在“数据库”菜单上,指向“选项”,然后单击“驱动程序”。
-
在“驱动程序”选项卡上,为目标数据库管理系统选择 Visio 驱动程序。
-
单击“设置”,然后选中相应 ODBC 驱动程序的复选框。
-
创建用户定义的数据类型
用户定义的数据类型是自定义数据类型,你可自行创建并在创建它们的数据库模型中重复使用它们。 例如,如果表中的某一列具有用于资产跟踪的数字数据类型,则可能出现这种情况。 但请记住,你可将资产跟踪系统从基于数字更改为基于字符。 如果使用用户定义的数据类型,则可随时将其属性从数字更改为字符。 这样会更改具有该类型的所有受影响的列,而不会更改具有数字数据类型的任何其他列。
-
在“数据库”菜单上,单击“用户定义的类型”。
-
在“用户定义的类型”对话框中,单击“添加”。
-
在“添加用户定义的新类型”对话框中,输入名称。
-
要使新的数据类型基于现有数据类型,请选中“复制自”复选框,然后选择用户定义的现有数据类型的名称。
-
单击“确定”。 为数据类型指定可移植性数据类型特征。
-
单击“确定”。
设置列的集合类型
集合类型允许将多个值存储在一个字段中。 例如,如果有一个包含音乐信息的表,则可能需要古典、流行和民谣流派的集合类型。 集合类型可将数据存储在单个实体中而不是使用外键和辅助表,从而优化了数据库的性能。
-
双击要指定为集合类型的列所属的表。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
单击要设置为集合类型的列,然后单击“编辑”。
-
在“列属性”对话框中,单击“集合”选项卡,然后选择以下集合类型之一:
-
无序的非重复值组(集) 允许列中字段的填充实例具有多个值,但每个值都必须是唯一的。 由于这些值未关联任何排序条件;因此它们是无序的。
-
有序的值组(列表) 创建允许重复元素的有序元素集合。 集合中的每个元素都有一个序号位置。 通过序号位置可访问值。 由于两个值可以相同,因此可通过序号位置对其进行区分。
-
无序的重复值组(多重集) 创建可包含重复值的元素集合。 元素没有序号位置。
-
-
单击“确定”来关闭“列属性”对话框。
使用“类型”形状创建复合数据类型
数据库模型图模板支持关系和对象关系数据库模型,因此你既可使用简单数据类型,又可使用复合数据类型。 简单数据类型由关系数据库和对象关系数据库使用,它支持每列具有一个数据值。 对象关系数据库还支持复合数据类型,其中一个列可包含多个值或字段;每个字段可采用不同的数据类型。 例如,可将地址定义为包含省/直辖市/自治区、市/县、街道和邮政编码列的复合数据类型。
-
将“对象关系”模具中的“类型”形状拖动到数据库模型图中。
-
双击“类型”形状以打开“数据库属性”窗口,然后在“类别”下单击“字段”。
-
单击空白行,然后键入新的物理名称以添加字段。
-
通过键入内容或从该字段的列表中选择一个类型来指定数据类型。
-
为防止出现 NULL 值,请选中“必需”列中的复选框。
-
要将“类型”定义为“已命名”、“互异”或“域”,请在“类别”下单击“定义”。
-
选择所需选项:
-
“已命名”行类型 将其选中可指定该类型不是任何其他类型的别名。
-
互异类型 将其选中可指定类型是基于另一种类型,其表示形式与其所基于的类型相同,但其自身是一种完全不同的类型。
如果选择此选项,则无法在“字段”类别中选择选项。
-
域 将其选中可指定该类型是另一种类型的别名;它是同一类型的间接表示形式。
如果选择此选项,则“别名集合类型”选项可用,并且你将无法在“字段”类别中选择选项。
-
别名集合类型:(仅在选中“域”时可见)选择一个选项以指定属性的值是单个值、集、列表的集合还是多重集的集合。 在关系数据库中,所有属性集合类型都是单个值。 通过对象关系数据库,可指定其他集合类型。
-
将复合数据类型分配给列
如果使用“类型”形状创建复合类型,则可将其分配给列,从而将列定义为具有该类型的所有列。 例如,你可能拥有一个包含列 ID、名称、地址的表,其中地址是由省/直辖市/自治区、市/县、街道和邮政编码组成的类型。
-
双击要对其使用复合数据类型的表。
-
在“数据库属性”窗口的“类别”下,单击“列”。
-
单击当前数据类型旁边的向下箭头,然后从列表中选择其他数据类型。
创建类型化表
如果使用“类型”形状创建复合类型,则可将其分配给表,从而根据该类型定义表的所有列。 例如,如果类型包含第一列、第二列和第三列,则可将该类型分配给表,表会自动包含这些列。
注意: 该操作只能在空表上完成。
-
将“实体”形状拖动到模型图上。
-
双击该表,然后在“数据库属性”窗口的“类别”下,单击“定义”。
-
单击当前数据类型旁边的向下箭头,然后从列表中选择其他数据类型。
找不到数据库建模功能?
你的 Visio 版本很有可能不包含要查找的功能。 若要了解拥有的 Visio 版本,请单击“帮助”菜单上的“关于 Microsoft Office 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 计划 2 并且希望了解如何将现有数据库工程转换为数据库模型,请参阅主题对现有数据库进行反向工程。