用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

java    -  云代码空间

—— 员工第一,客户第二。没有他们,就没有阿里巴巴。也只有他们开心了,我们的客户才会开心。而客户们那些鼓励的言语,鼓励的话,又会让他们像发疯一样去工作,这也使得我们的

参照完整性的定义

2014-05-05|3493阅||

摘要:参照完整性的定义:如果基本关系R2的属性中,包含与另一个基本关系R1的主码K相对应的属性组F,那么F则称为外部码;对R2每个元组在F上的取值只能只允许两种可能:一是空值;二是等于R1中某个元组的主码值。这里R1和R2不一定是不同的关系;K与F是定义在同一域中的。 举一个实例

参照完整性的定义:如果基本关系R2的属性中,包含与另一个基本关系R1的主码K相对应的属性组F,那么F则称为外部码;对R2每个元组在F上的取值只能只允许两种可能:一是空值;二是等于R1中某个元组的主码值。这里R1和R2不一定是不同的关系;K与F是定义在同一域中的。
举一个实例,教职工关系(职工号,职工名,工资,部门号)和部门关系(部门号,部门名),其中部门关系中的部门号是主码,职工关系中,对每个职工也有部门号这一项,表明这个职工是在哪个部门工作的。职工关系中的部门号属性和部门关系中的部门号属性相对应,职工关系中部门号则是外部码。
从上面的例子可以看到:在职工关系中部门号一项,要么取空值,表示这个职工还未分配到任何一个部门工作;要么取值必须和部门关系中某个元组的部门号相同,表示这个职工分配到某个部门工作。这就是参照完整性。上例中若是教职工关系中某个职工的部门号取值不能与部门关系中任何一个元组的部门号一致,表示这个职工被分配到不属于这个单位的部门工作,这与实际应用环境是不相符的,显然是错误的。这就是为什么关系模型中定义了参照完整性约束规则。
在参照完整性定义中,还注明R1、R2不一定是不同的关系。现再给出一个同一关系的实例:若有教职工关系(职工号,职工名,系主任-职工号,工资),其中职工号是主码。系主任的职工号是外部码,它与本关系职工关系中主码职工号相对应,系主任职工号的取值要么为空值,表示这个系还未任命主任;要么等于职工关系中某个职工号。
实体完整性与参照完整性是由系统自动支持的,即:在建立关系(表)时只要说明了"谁是主码","谁参照于谁",系统将自动进行此类完整性的检查。
顶 0踩 0收藏
文章评论
    发表评论

    个人资料

    • 昵称: java
    • 等级: 初级设计师
    • 积分: 2378
    • 代码: 93 个
    • 文章: 51 篇
    • 随想: 7 条
    • 访问: 83 次
    • 关注

    站长推荐