欢迎各界计算机爱好者加入,弘扬极客精神!

简述关系模型的三类完整性约束。

0 喜欢 0 不喜欢
问题关闭原因: enough answers
最新提问 9月 11, 2016 分类:数据库 | 用户: calmjoy (538 分)  
已关闭 12月 9, 2016 用户:Re

15 个回答

0 喜欢 0 不喜欢
在关系模型中,关系完整性主要是指以下三方面:
1、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值;
        比如学生表的主码通常是取学号为主码

2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码;

     比如今天是9月2日是开学日,大学新生刚来报道,在学生表里,有的学生可能还没来得及分配具体的班,所以这些还未来得及分班的学生教务处可以在学生表里的班级属性取空值NULL(空值代表“不确定”),而哪些已分了班的学生就必须取班级表里的某些属性,比如班级类别,即学生属于哪个班。比如取“软件工程”,”计算机技术应用“等等。
            参照关系也称为外键表,被参照关系也称为主键表。
             
3、用户定义的完整性:指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。比如 性别属性只能取”男“或”女“  ,再就是年龄的取值范围,可以取值0-130 ,但不能取负数,因为年龄不可能是负数。
最新回答 9月 11, 2016 用户: 、Whiteˉ (594 分)  
0 喜欢 0 不喜欢

1、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值;

        比如学生表的主码通常是取学号为主码

2、参照完整性:是指参照关系中每个元素的外码要么为空(NULL),要么等于被参照关系中某个元素的主码;

     比如今天是9月2日是开学日,大学新生刚来报道,在学生表里,有的学生可能还没来得及分配具体的班,所以这些还未来得及分班的学生教务处可以在学生表里的班级属性取空值NULL(空值代表“不确定”),而哪些已分了班的学生就必须取班级表里的某些属性,比如班级类别,即学生属于哪个班。比如取“软件工程”,”计算机技术应用“等等。
            参照关系也称为外键表,被参照关系也称为主键表。
             
3、用户定义的完整性:指对关系中每个属性的取值作一个限制(或称为约束)的具体定义。比如 性别属性只能取”男“或”女“  ,再就是年龄的取值范围,可以取值0-130 ,但不能取负数,因为年龄不可能是负数。
最新回答 9月 11, 2016 用户: dav (1,796 分)  
0 喜欢 0 不喜欢
1,实体完整性规则(entity integrity rule)
要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。
 
2,参照完整性规则(reference  integrity  rule)
参照完整性规则的形式定义如下:
如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。
这条规则的实质是“不允许引用不存在的实体”。
 在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。 
 
下面各种情况说明了参照完整性规则在关系中如何实现的。
① 在关系数据库中有下列两个关系模式:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
这里斜体者为主键,带波浪线者为外键。据规则要求关系SC中的S# 值应该在关系S中出现。如果关系SC中有一个元组(S7,C4,80),而学号S7却在关系S中找不到,那么我们就认为在关系SC中引用了一个不存在的学生实体,这就违反了参照完整性规则。
外,在关系SC中S# 不仅是外键,也是主键的一部分,因此这里S# 值不允许空。
 
②设工厂数据库中有两个关系模式:
DEPT(D#,DNAME)
EMP(E#,ENAME,SALARY,D#)
车间模式DEPT的属性为车间编号、车间名,职工模式EMP的属性为工号、姓名、工资、所在车间的编号。每个模式的主键与外键已标出。在EMP中,由于D# 不在主键中,因此D# 值允许空。
 
③ 设课程之间有先修、后继联系。模式如下:
R(C# ,CNAME,PC#)
其属性表示课程号、课程名、先修课的课程号。如果规定,每门课程的直接先修课只有一门,那么模式R的主键是C#,外键是PC#.。这里参照完整性在一个模式中实现(即同一个关系中不同元组之间的联系)。即每门课程的直接先修课必须在关系中出现。
 
3,用户定义的完整性规则
在建立关系模式时,对属性定义了数据类型,即使这样可能还满足不了用户的需求。此时,用户可以针对具体的数据约束,设置完整性规则,由系统来检验实施,以使用统一的方法处理它们,不再由应用程序承担这项工作。例如学生的年龄定义为两位整数,范围还太大,我们可以写如下规则把年龄限制在15~30岁之间:CHECK(AGE  BETWEEN  15  AND  30)
最新回答 9月 11, 2016 用户: xkes❤Room (2,000 分)  
0 喜欢 0 不喜欢
1、实体完整性:所谓的实体完整性就是指关系(所谓的关系就是表)的主码不能取空值;
        比如学生表的主码通常是取学号为主码

2、参照完整性:是指参照关系中每个元素的外码要么为空(
NULL),要么等于被参照关系中某个元素的主码;
3、用户定义的完整性:指对关系中每个属性的取值作一
个限制(或称为约束)的具体定义。比如 性别属性只能取”男“或”女“  ,再就是年龄的取值范围,可以取值0-130 ,但不能取负数,因为年龄不可能是负数。
最新回答 9月 12, 2016 用户: 月影千姿 (2,020 分)  
0 喜欢 0 不喜欢
希望这个网站能帮到你

http://www.doc88.com/p-471114405080.html

;)
最新回答 9月 12, 2016 用户: Megan (2,582 分)  
0 喜欢 0 不喜欢
2 喜欢 0 不喜欢
http://www.doc88.com/p-471114405080.html

这里讲的挺详细的
最新回答 9月 12, 2016 用户: Alan (3,878 分)  
0 喜欢 0 不喜欢
1、与表有关的约束:是表中定义的一种约束。可在列定义是定义该约束,此时称为列约束,也可以在表定义时定义约束,此时称为表约束。

2、域约束:在于定义中被定义的一种约束,它与在特定域中定义的任何列都有关系。

3、断言:在断言定义时被定义的一种约束,它可以与一个或多个表进行关联。
最新回答 9月 12, 2016 用户: shenme (3,438 分)  
0 喜欢 0 不喜欢
http://www.doc88.com/p-471114405080.html

希望这里能帮到你
最新回答 9月 13, 2016 用户: longlong (2,000 分)  
0 喜欢 0 不喜欢
1,实体完整性规则(entity integrity rule)
要求关系中元组在组成主键的属性上不能有空值。如果出现空值,那么主键值就起不了惟一标织元组的作用。
 
2,参照完整性规则(reference  integrity  rule)
参照完整性规则的形式定义如下:
如果属性集K是关系模式R1的主键,K也是关系模式R2的外键,那么在R2的关系中,K的取值只允许两种可能,或者为空值,或者等于R1关系中某个主键值。
这条规则的实质是“不允许引用不存在的实体”。
 在上述形式定义中,关系模式R1的关系称为“参照关系”,关系模式R2的关系称为“依赖关系”。“主表”和“副表”,“父表”和“子表”。 
最新回答 9月 14, 2016 用户: 称霸幼稚园灬 (1,644 分)  
...