在数据库模型图中保持参照完整性

注意: 数据库模型图仅可在某些版本的 Visio 中可用。 若要了解详细信息,请参阅找不到数据库建模功能?

了解参照完整性规则

引用完整性规则阻止数据库用户意外破坏相关列之间的映射。

假设你有一个名为 "书籍" 的数据库, 其中包含两个名为 "标题和作者" 的表。 出于此示例的目的, 每个标题只有一个作者, 但每个作者可以有多个标题, 从而创建称为一对多关系的内容。 关系 "一" 方的表称为父表。 "多" 方的表称为子表

为了收集有关每本书及其作者的信息, 查询使用键将 Titles 表中的每本书与 Authors 表中的作者相匹配。 父表 (作者) 必须具有唯一标识每一行的主键。 Titles 表必须有一个列, 其中包含每个标题的作者。 此列称为外键。 主键标识每个作者, 外键标识由哪些作者编写的书籍。

如果用户在父表中更改了作者的作者姓名, 而不更新 Titles 表中的作者姓名, Titles 表中的书籍将不再具有有效的作者。

不必在两个表中更改作者, 可以设置引用完整性规则来执行所需的操作。 你可以选择让数据库模型在父表中更改或删除某个键时执行特定操作。

注意: 术语 "父" 和 "子术语" 用于表示不同类别中的内容, 这些类别是使用 "父项到类别"、"类别" 和 "子形状"类别创建的。 有关类别的详细信息, 请参阅在数据库模型图中定义类别

设置引用完整性的操作

  1. 双击要为其设置引用操作的关系。

  2. 在 "数据库属性" 窗口的 "类别" 下, 单击 "引用操作"。

  3. 单击希望数据库对子表中相应值执行的操作。 可以从以下操作中进行选择:

    • 无操作     更改或删除父表的主键中的值时, 子表的外键中的相应值保持不变。

    • 排列     更改或删除父表的主键中的值时, 更改或删除子表中外键中的相应值以匹配主键。

    • 设置 NULL     更改或删除父表的主键中的值时, 子表的外键中的相应值设置为 NULL。

    • 设置默认值     更改或删除父表的主键中的值时, 子表的外键中的相应值设置为您选择的默认值。

    • 不要强制执行     此操作将关闭此关系的参照完整性规则。

注意: 如果 "设置为 NULL " 和 "设置默认值" 选项处于禁用状态, 则可能是关系的 "数据库属性" 窗口的 "杂项" 选项卡上的关系设置为 "可选"。

为列设置默认值

若要使用 "设置默认值" 操作, 必须为列提供默认值。

  1. 双击图表中的表以打开 "数据库属性" 窗口。

  2. 在 "类别" 下, 单击 "", 单击要为其创建默认值的列, 然后单击 "编辑"。

  3. 在 "列属性" 对话框的 "定义" 选项卡上, 输入默认值。

使用表示法显示参照完整性

你可以将文档选项设置为隐藏或显示模型中关系线旁边的引用完整性符号。

引用完整性符号中的字母的含义是什么?

引用完整性表示法显示以冒号分隔的两个字母之间的关系, 格式为 [在父表中执行的操作]: [子表中的结果]。 例如, d:C 意味着当父表中的内容被删除时, 更改会级联到子表。

父表中的操作由小写字母表示:

  • &    父表中的数据已更新。

  • 3-d    父表中的数据将被删除。

子表中的结果由大写字母表示:

  • R 无操作    不要更改子表。

  • C 级联     复制子表中的更改。

  • D 设置默认值    插入以前为子表中的该列设置的默认值。

  • N 设置为 Null     将子表设置为 NULL。

  • 空白     不要对此关系实施参照完整性。

注意: 这些设置影响实际数据库 (而不是在模型中) 所发生的情况。 在从现有数据库中反向工程的模型中, 你可以查看数据库相对于引用完整性的设计方式。 在从头开始创建的模型中, 你可以使用这些设置来记录你希望建模数据库的行为方式。

在 Visio 2010 中显示参照完整性

  1. 在“数据库”选项卡的“管理”组中,单击“显示选项”。

  2. 在 "关系" 选项卡上的 "显示" 下, 选中 "引用操作" 复选框。

找不到数据库建模功能?

某些版本的 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 Online 计划 2 并想了解如何将现有数据库工程到数据库模型中, 请参阅主题对现有数据库进行反向工程

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×