时间:2021-07-01 10:21:17 帮助过:83人阅读
专业(专业号,专业名)
这两个关系之间存在着属性的引用,即学生关系引用了专业关系的主码“专业号”。显然,学生关系中的“专业号”值必须是确实存在的专业的专业号,即专业关系中有该专业的记录。也就是说,学生关系中的某个属性的取值需要参照专业关系的属性取值。
例2 学生、课程、学生与课程之间的多对多联系
学生(学号,姓名,性别,年龄,系)
课程(课程号,课程名,学分,先行课)
选修(学号,课程号,成绩)
这3个关系之间也存在着属性的引用,即选修关系引用了学生关系的主码“学号”和课程关系的主码“课程号”。
不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。
例3 在学生(学号,姓名,性别,专业号,年龄,班长)关系中,“学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系“学号”属性,即“班长”必须是确实存在的学生的学号。
这三个例子说明关系与关系之间存在着相互引用,相互约束的情况。
引用分析:
设F是关系R的一个或一组属性,但不是关系R的码。如果F与关系S的主码Ks相对应,则称F是关系R的外码,关系R称为参照关系(Referencing Relation)关系,S称为被参照关系(Referenced Relation)或目标关系(Target Relation)。
若属性(或属性组)F是关系R的外码它与关系S的主码Ks相对应(关系R和S可是一个关系),则对于R中每个元组在F上的值必须为:
例1:学生关系中每个元组的“专业号”属性只取下面两类值:
(1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中
例2 :选修(学号,课程号,成绩)
“学号”和“课程号”是选修关系中的主属性,按照实体完整性和参照完整性规则,它们
只能取相应被参照关系中已经存在的主码值
例3 :学生(学号,姓名,性别,专业号,年龄,班长)
“班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长,或该学生本人即是班长;
(2)非空值,这时该值必须是本关系中某个元组的学号值
3) 用户定义的完整性
用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。
例:课程(课程号,课程名,学分)
关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。
关系数据库
标签:key dom div 示例 标识 order 条件 简单的 字符串