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