数据库第二章

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,用连接不用÷ 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值