国开《数据库基础与应用》第二章 2-2-2:参照完整性
2-2-2:参照完整性
若一个关系R1中的外码,对应另一个关系R2中的主码,R1中的外码和R2中的主码不但要定义在同一个域上,而且要求外码的取值不能超出对应主码的已有取值范围,否则将为非法数据,不允许被输入和修改。
例如:R1(课程号,课程名,学分,所在系号),R2(系号,系名,系主任,办公电话),课程关系R1中每个元组的所在系号的值,或者为空,或者必须是院系关系R2中一个相应元组的系号属性的值。
参照完整性:在一个关系R1中,每个外码的取值要么为空,要么等于另一个被参照的关系R2中每个元组的主码。R1为参照关系、引用关系、子关系, R2为被参照关系、被引用关系、父关系。
在实施参照完整性的两个关系中,它们是父子联系,父关系中的一个元组对应子关系中的多个元组。
例如:设有如下5个关系:
订单(订单号,客户号,雇员号,订单日期)
订单明细(订单号,商品号,单价,订购数量)
客户(客户号,姓名,性别,联系电话,联系地址)
雇员(雇员号,姓名,性别,柜台,工作电话)
商品(商品号,品牌名,型号,类别,产地,电话)
其中每个客户可以签定多个订单,每个雇员(即销售员)也可以签定多个订单,每个订单的客户可以订购多种商品。