习题3
1.试述关系模型的3个组成部分。 1)数据结构
关系模型的数据结构非常简单,只包括单一的数据结构——关系。从用户角度,关系模型中数据的逻辑结构是一张扁平的二维表。 2)数据操作
关系操作采用集合操作方式,即操作的对象和结果都是集合。这种方式称为一次一集合的方式。而非关系数据结构的数据操作方式为一次一记录方式。
关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。 3)完整性约束
关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户定义完整性。
2.定义并理解下列术语,说明它们之间的联系与区别: 1)域、笛卡尔积、关系、元组、属性
①域(Domain)
域是一组具有相同数据类型的值的集合。 ②笛卡尔积(Cartesian Product)
定义 给定一组域D1,D2,…,Dn,这些域中可以有相同的域。 D1,D2,…,Dn的笛卡尔积为:
D1×D2×…×Dn ={(d1,d2,…,dn)|diDi,i=1,2,…,n} ③关系
D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为:
R(D1,D2,…,Dn),这里R是关系名。
④表的每行对应一个元组,也可称为记录(Record)。 ⑤表的每列对应一个域,也可以称为字段(Filed )。由于域可以相同,为了加以区分,必须为每列起一个名字,称为属性(Attribute)。 2)主码、候选码、外码
①若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该属性组为候选码或码(Key)。其中属性组中不能含有多余的属性。
②若一个关系有多个候选码,则选定其中一个作为主码(Primary Key)。每个关系有且仅有一个主码。
③如果一个属性或属性组不是所在关系的码,却是另一个关系的码,则称该属性或属性组为所在关系的外码。
3)关系模型、关系、关系数据库
①关系数据库中关系模式是型,关系是值,关系模式是对关系的描述,关系模式可以用一个五元组表示:R(U,D,DOM,F)。
②关系是笛卡尔积的有限集,关系是一个二维表。 ③采用关系模型的数据库称为关系数据库。
3.试述关系模型的完整性规则,在参照完整性中,为什么外码属性的值也可以为空什么情况下才可以为空
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码K相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
(1)或者取空值(F的每个属性值均为空值) (2)或者等于S中某个元组的主码值
对于选课表关系中每个元组的“课程号”属性只取两类值: (1)空值,表示该学生未选课。
(2)非空值,这时该值必须是课程表关系中出现的“课程号”值,表示该学生不可能选修一个未开设的课程。
参照完整性是不同关系之间或一个关系不同元组之间一种约束,通过外码和主码建立了不同关系之间的联系。
4.关系代数包含哪些运算
传统的集合运算:并、交、差和笛卡尔积。 专门的关系运算:选择、投影、连接和除。
5.试述笛卡尔积、等值连接与自然连接的区别和联系。
在进行等值连接和自然连接时,必须先做笛卡尔积,然后选择其中满足条件的元组。自然连接是特殊的等值连接,要求素有的公共属性都要相等,并且,在自然连接中最后要去掉重复的列。
6.设置有两个关系R和S(如下),计算R-S,R∪S ,R∩S,R-S,RXS,
?B,A(R),
?A?'4'(R),R?SR?S。
R.B?S.BR-S A 4 5 B 5 2
R∪S A 4 12 5 2 5 A 12 2 B 5 15 2 1 4 R∩S B 15 1 C 5 11 C 7 5 6 11 3 C 7 6 当两个表具有相同列时,不做除运算。
RXS 4 4 4 12 12 12 5 5 5 2 2 2 5 5 5 15 15 15 2 2 2 1 1 1 7 7 7 5 5 5 6 6 6 11 11 11 2 5 12 2 5 12 2 5 12 2 5 12 1 4 15 1 4 15 1 4 15 1 4 15 11 3 5 11 3 5 11 3 5 11 3 5 ?B 5 15 2 1 A 4 12 5 2 B,A(R),
?A?'4'(R)
A 12 5 B 15 2 C 5 6 R?S
R.B?S.B 4 4 12 12 5 5 5 15 15 2 7 7 5 5 6
2 5 2 5 2 1 4 1 4 1 11 3 11 3 11 R?S A 12 2
B 15 1 C 5 11