1.试述关系模型的三个组成部分。
答:关系数据结构、关系操作集合和关系完整性约束。
2.解释下列术语的含义:
(1)笛卡尔积:设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为:
D1×D2× …×Dn ={(d1,d2,…,dn) | di ∈Di,i=1,2,…,n }
(2)主键:也称主码为或主关键字,是表中的属性或属性组,用于惟一地确定一个元组。
(3)候选键:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选键。
(4)外键:设F是关系R的一个或一组属性,如果F与关系S的主键相对应,则称F是关系R的外键。
(5)关系:关系就是简单二维表。
(6)关系模式:二维表的结构称为关系模式。
(7)关系数据库:对应于一个关系模型的所有关系的集合称为关系数据库。
3.关系数据库的三个完整性约束是什么?各是什么含义?
答:实体完整性、参照完整性和用户定义的完整性。
实体完整性是保证关系中的每个元组都是可识别的和惟一的。
参照完整性也称为引用完整性,用于表达现实世界中的实体之间的关联关系。
用户定义的完整性也称为域完整性或语义完整性,用于保证数据库中存储的值与现实世界相符。
4.连接运算有哪些?等值连接和自然连接的区别是什么?
答:连接运算中最重要也是最常用的连接有两个,一个是等值连接,一个是自然连接。
自然连接与等值连接的差别为:
自然连接要求相等的分量必须有共同的属性名,等值连接则不要求;
自然连接要求把重复的属性名去掉,等值连接却不这样做。
5.对参与并、交、差运算的两个关系R、S有什么要求?
答:必须结构相同,且相应的属性值取自同一个值域。
6.对参与除运算的两个关系(R÷S)有什么要求?除运算的结果关系中包含哪些属性?
答:R中必须包含S的全部或部分属性,除运算的结果包含的属性是只属于R不属于S的属性。
7.对参与自然连接和等值连接操作的两个关系R、S有什么要求?
答:有语义相同的属性。
8.投影操作的结果关系中是否有可能存在重复的记录?为什么?
答:不可能,因为投影运算会自动去掉投影后重复的记录。
9.利用表3-10至3-12所示的三个关系,写出实现如下查询要求的关系代数表达式。
(1)查询“信息系”学生的选课情况,列出学号、姓名、课程号和成绩。
∏Sno, Sname, Cno, Grade(σSdept=‘信息系’(SC Student))
或:∏Sno, Sname, Cno, Grade(SC σSdept=‘信息系’(Student))
(2)查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩。
∏Sname, Sdept, Grade(σCname=‘VB’(Coure SC Student))
或:∏Sname, Sdept, Grade(σCname=‘VB’(Coure) SC Student)
(3)查询考试成绩高于90分的学生的姓名、课程名和成绩。
∏Sname, Cname, Grade(σGrade>90(Coure SC Student))
或:∏Sname, Cname, Grade(Coure σGrade>90(SC) Student)
(4)查询至少选修了0512101号学生所选的全部课程的学生的姓名和所在系。
∏Sname, Sdept(Student (SC ÷ ∏Cno(σsno=’0512101’(SC))))
(5)查询至少选了“C01”和“C02”两门课程的学生的姓名、所在系和所选的课程号。
∏Sname, Sdept, Cno(Student (SC ÷ ∏Sno(σcno=’C01’ V Cno=’C02’(SC))))
(6)查询没有选修第1学期开设的全部课程的学生的学号、姓名和所选的课程号。
∏Sno, Sname, Cno(Student SC (∏sno(SC) - ∏sno(σsemester=1(Course)SC)))
(7)查询计算机系和信息系选了VB课程的学生姓名。
∏Sname(σsdept=’计算机系’V sdept=’信息系’)∧ cname=’vb’(StudentSC Course))
或:∏Sname(σsdept=’计算机系’V sdept=’信息系’(Student)SC σcname=’vb’(Course))