您要做什么?
了解参照完整性规则
参照完整性规则可避免数据库用户无意中破坏相关列之间的映射关系。
假设您有一个名为标题和作者的两个表与称为书籍的数据库。此示例的目的,每个标题具有一个作者,而每个作者可以具有多个标题,创建所谓的一对多关系。关系的"一"方表称为父表。"多"方表称为子表。
收集有关每个簿及其作者的信息,以便查询使用关键字以匹配的作者表中作者标题表中每个本书。父表 (作者) 必须具有一个唯一标识每一行的主键。标题表必须保存每个标题作者 Id 的列。此列被称为外键。主键标识每个作者,和外键标识的作者编写的资料。
如果用户在父表中更改了作者的作者 ID,而未在“书名”表中更新此作者 ID,则“书名”表中的书就不再具有有效的作者。
您可以设置参照完整性规则来完成您所需的动作,而不必在两个表中更改作者 ID。可以选择让数据库模型在父表中的关键字被更改或删除时执行特定的动作。
注意: 术语父级和子级用于表示在类别与父表与类别、类别和类别与子形状创建非常不同的地方。类别的详细信息,请参阅在数据库模型图中的定义类别。
为参照完整性设置动作
-
双击要为其设置参照动作的关系。
-
在“数据库属性”窗口的“类别”下,单击“参照动作”。
-
单击所需的数据库,才能在子表中的对应值的操作。您可以选择下列操作︰
-
执行任何操作 不更改父表的主键中的值被更改或删除,子表的外键中相应的值时。
-
级联 父表的主键中的值已更改或删除时,更改或删除以匹配的主键子表的外键中相应的值。
-
设置空 当更改或删除父表的主键中的值时,则将子表的外键中相应的值设置为 NULL。
-
设置默认值 父表的主键中的值已更改或删除时,子表的外键中相应的值设置为您选择的默认值。
-
不强制实施 此操作将关闭参照完整性此关系的规则。
-
注意: 如果“设置为 NULL”和“设置默认值”选项被禁用,有可能在“数据库属性”窗口的“杂项”选项卡上将关系设置为“可选”。
为列设置默认值
要使用“设置默认值”动作,必须提供列的默认值。
-
在图中双击表打开“数据库属性”窗口。
-
在“类别”下,单击“列”,单击要为其创建默认值的列,然后单击“编辑”。
-
在“列属性”对话框的“定义”选项卡上,输入一个值作为默认值。
使用符号显示参照完整性
您可以将“文档选项”设置为隐藏或显示模型中关系线旁的参照完整性符号。
参照完整性符号中的字母的含义是什么?
参照完整性表示法显示关系两个字母用冒号,在窗体 [父表中执行的操作]: [导致子表]。例如,d:C 意味着当父表中删除内容时,此更改会层叠到子表。
父表中的动作用小写字母表示:
-
更新u 父表中的数据。
-
d 父表中的数据被删除。
子表中的结果用大写字母表示:
-
R 无操作 不更改子表。
-
C 级联 复制子表中的更改。
-
D 设置默认值 插入您以前设置子表中的列的默认值。
-
设置空 N 将子表设置为 NULL。
-
(空白) 实施参照完整性,在这种关系。
注意: 这些设置影响实际数据库中的行为,而不是影响模型中的行为。在从现有数据库进行了反向工程的模型中,您可以看到数据库在参照完整性方面是如何设计的。在从头创建的模型中,可以使用这些设置记录您希望所建模的数据库表现出的行为。
显示参照完整性
-
在“数据库”菜单上,指向“选项”,然后单击“文档”。
-
在“关系”选项卡的“显示”下,选中“参照完整性”复选框。