2.3.3 参照完整性(Referential Integrity)
设F是基本关系R的一个或一组属性,单不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码(Foreign Key)。并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。关系R和S不一定是不同的关系。
[img]http://dl2.iteye.com/upload/attachment/0121/2855/6076c837-7c86-3858-90f1-2c4713917cd7.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0121/2865/028c0527-4b91-365b-8104-361a1099d0e8.jpg[/img]
[color=red]参照完整性规则就是定义外码与主码之间的引用规则[/color]
[b]参照完整性规则[/b] 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
- 或者取空值(F的每个属性值均为空值);
- 或者等于S中每个元组的主码值。
例如,学生关系中每个元组的“专业号”属性只能取下面两类值:
(1)空值,表示尚未给该学生分配专业;
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。
设F是基本关系R的一个或一组属性,单不是关系R的码。Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码(Foreign Key)。并称基本关系R为参照关系(Referencing Relation),基本关系S为被参照关系(Referenced Relation)或目标关系(Target Relation)。关系R和S不一定是不同的关系。
[img]http://dl2.iteye.com/upload/attachment/0121/2855/6076c837-7c86-3858-90f1-2c4713917cd7.jpg[/img]
[img]http://dl2.iteye.com/upload/attachment/0121/2865/028c0527-4b91-365b-8104-361a1099d0e8.jpg[/img]
[color=red]参照完整性规则就是定义外码与主码之间的引用规则[/color]
[b]参照完整性规则[/b] 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
- 或者取空值(F的每个属性值均为空值);
- 或者等于S中每个元组的主码值。
例如,学生关系中每个元组的“专业号”属性只能取下面两类值:
(1)空值,表示尚未给该学生分配专业;
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。