access参照完整性是什么?

如题所述

access参照完整性是:

实体完整性;

参照完整性;

用户定义的完整性

参照完整性是关系模型的完整约束之一,属于数据完整性的一种,其余还有:实体完整性、用户自定义完整性。

参照完整性规则:若属性或属性组F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:

(1)空值,F的每个属性值均为空值。

(2)S中某个元组中的主键值(主码值)。

即参照的关系中的属性值必须能够在被参照关系找到或者取空值,否则不符合数据库的语义。在实际操作时如更新、删除、插入一个表中的数据,通过参照引用相互关联的另一个表中的数据,来检查对表的数据操作是否正确,不正确则拒绝操作。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-02-02
当我们把2张表建立联系的时候,这2个表肯定是有关系的。它可以是一对一的关系;如果是多对多的关系,这是不允许出现的(说明表及其关系设置有问题);大多数都是一对多的关系,当建立了一对多关系时数据库引擎就自然建立完整性原则,它能保证2个表之间的关系及数据得到正确的维护,从最基本的意义上说,防止“多端”出现不完整的记录。
参照完整性规则要求:1、不允许在“多端”的字段中输入1个“一端”主键不存在的值;2、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许从“一端”删除这个记录(除非选择了级联删除相关字段,这样会同时删除“一端”和“多端”的记录,从而保证数据的完整性),因为如果允许又回出现第一种情况。3、如果某一记录有相关的记录存在于关系表中,那么数据库引擎不允许改变“一端”主键的值(除非选择了级联更新相关字段,这样会同时更新“一端”和“多端”的主键值,从而保证数据的完整性),因为如果允许又回出现第一种情况。
现在,回到你的问题。
1、如果你的2个表在没有数据时,建立上面的关系,肯定可以,并且可以“实施参照完整性”,以后你在zhongrenbiao表中输入“身份证号码”时,数据库会限定这个号码只能是fuzimiao表中存在的身份证号码,这是为了保证数据的完整性。
2、我可以肯定你的2个表是先有数据,后再想建立关系并想实施参照完整性的,而且zhongrenbiao表中至少有1个以上的“身份证号码”在fuzimiao表中没有相应的记录,此时如果你强行建立参照完整性,这就违反了参照完整性的要求(不允许在“多端”的字段中输入1个“一端”主键不存在的值),换句话说,你的多端(既zhongrenbiao表)存在了一端(既fuzimiao表)中没有的记录,数据库不允许出现这种情况,所以出现提示框的内容。
3、改进方法有3种,建议前2种。①、删除zhongrenbiao表中在fuzimiao表中没有相关身份证号码的记录,后再建立关系及参照完整性;②、在fuzimiao表中添加相关的身份证号码,以保证zhongrenbiao表中所有身份证号码在fuzimiao中都存在,然后再建立关系及参照完整性;③、像提示框所说的“清除参照完整性复选框”,这可以建立关系,但不能实施参照完整性,不建议这样做,因为不实施参照完整性会导致数据不完整,以后会有大麻烦的。
相似回答