1 .试述关系模型的三个组成部分。
关系数据结构、关系操作集合和关系完整性约束三部分组成。
2 .试述关系数据语言的特点和分类。
关系代数语言。
关系演算语言:元组关系演算语言和域关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
共同特点,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。
3 定义并解释下列术语
域 域是一组具有相同数据类型的值的集合
笛卡尔积 域上面的一种集合运算,通俗点说就是集合相乘
关系 一个关系对应通常说的一张表
元组 表中的一行即为一个元组
属性 表中的一列即为一个属性
候选码 某一属性组的值能唯一的标识一个元组,而其子集不能,则称改属性为候选码
主码 若一个关系由多个候选码,则选定其中一个作为主码
关系模式 关系的描述称为关系模式
关系数据库 关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就被称为关系数据库
4 .关系模式和关系之间的区别:
关系模式是静态的,关系是动态的。 关系模式为我们看到的一张二维表的表头,即有哪些列构成,每个列的名称,类型长度等等。
5 . 述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
答:实体完整性规则是指若属性A是基本关系R的主属性,则属性A不能取空值。属性F本身不是主属性,则可以取空值,否则不能取空值。
6.关系的完整性
实体完整性:若属性A是基本关系R的主属性,则A不能取空值
参照完整性:
例:
学生(学号,姓名,性别,专业号,年龄)
专业(专业号,专业名)
外码不一定要与相应的主码同名。
若属性(或者属性组)F是基本关系R的外码,他与基本关系S的主码K(S)相对应,则对于R中每个元组在F上的取值要么取空值,要么等于S中某个元组的主码值。
用户定义完整性:
实体完整性和参照完整性是关系模型必须满足的完整性约束条件,(关系的两个不变性)
用户定义的约束条件就是针对某一具体关系数据库的约束条件,它反映了某一具体应用所涉及的数据必须满足的语义要求。
例如在学生关系中,要求学生不能没有姓名,学生课程成绩关系中要求成绩必须在0到100之间。
练习
针对书上的学生选课数据库S_T,用关系代数完成以下查询:
1、 查询“CS”系所有学生的学号和姓名。
2、 查询所有姓“刘”的学生的信息。
3、 查询年龄超过18岁的男生的姓名及所在系。
4、 查询年龄在18至20岁之间的学生信息。
5、 查询不在“CS”系也不在“MA”系的学生的所有信息。
6、 查询“CS”系所有学生的平均年龄。
7、 查询课程名是以“系统”结尾的课程信息。
8、 查询先行课为“6”号课程的课程信息。
9、 查询间接先行课为“5”号课程的课程号及课程名。
10、 查询没有先行课的课程名。
11、 对student及sc表做等值连接。
12、 对student及sc表做自然连接。
13、 查询选修了“1”号课程的学生选课信息。
14、 查询成绩为90分以上的学生姓名和课程名。
15、 查询被选修了的课程号及课程名。
16、 查询没有选修课程的学生学号及姓名。
17、 查询没有选修“1”号课程的学生姓名。
18、 查询既选修了“数据结构”又选修了“操作系统”的学生姓名。
19、 查询既选修了“2”号又选修了“4”号课程的学生学号。
20、 查询选修了“2”号或“4”号课程的学生学号。
21、 查询至少选修了“95002”学生所选课程的学生学号。
22、 查询至少选修了一门其间接先行课为“7”号课程的学生姓名。
23、 查询选修了所有课程的学生姓名。
24、 查询“李勇”同学所选课程的平均成绩。
25、 查询“操作系统”这门课的最高分及最低分。
26、 查询“数据结构”这门课的选课人数。
27、 查询“CS”系的所有学生的学号、姓名、课程名及成绩。
28、 查询“CS”系选修课程的成绩在90分以上的所有女生的姓名、课程名和成绩。
在这里插入图片描述
更正13
还要连接sc表--查询选修了1号课程的学生课程信息
```
select sc2.*
from sc sc1, sc sc2
where sc1.sno=sc2.sno
and sc1.cno='1'
select *
from sc
where cno='1'
更正22,用连接不用÷