当前位置:文档之家› 数据库原理与技术(补充习题)

数据库原理与技术(补充习题)

第二章 关系代数(补充习题)
1. 根据下面图给出的三个关系S1、S2、S3,求运算结果:S1∪S2、S2-S1、S1∩S2、∏A,C(S2)、σA=“a1”(S1)、S2 S3






2. 设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。
Student
Sno Sname Ssex Sage Clno
2000101 李勇 男 20 00311
2000102 刘诗晨 女 19 00311
2000103 王一鸣 男 20 00312
2000104 张婷婷 女 21 00312
2001101 李勇敏 女 19 01311
2001102 贾向东 男 22 01311
2001103 陈宝玉 男 20 01311
2001104 张逸凡 男 21 01311

Course
Cno Cname Credit
1 数据库 4
2 离散数学 3
3 管理信息系统 2
4 操作系统 4
5 数据结构 4
6 数据处理 2
7 C语言 4

Class
Clno Speciality Inyear Number Monitor
00311 计算机软件 2000 120 2000101
00312 计算机应用 2000 140 2000103
01311 计算机软件 2001 220 2001103



Grade
Sno Cno Gmark
2000101 1 92
2000101 3 88
2000101 5 86
2000102 1 78
2000102 6 55
2000103 3 65
2000103 6 78
2000103 5 66
2000104 1 54
2000104 6 83
2001101 2 70
2001101 4 65
2001102 2 80
2001102 4 90
2001102 6 83
2001103 4 76
2001103 6 56
试用关系代数完成以下各项操纵:
1) 找出所有被学生选修了的课程号;
2) 找出01311班女学生的个人信息;
3) 找出01311班、01312班的学生姓名、性别、出生日期;
4) 找出年龄介于14与20岁之间的学生信息;
5) 找出选修了课程操作系统的学生学号和姓名;
6) 找出所有没有选修1号课程的学生姓名;
7) 找出选修了全部课程的学生姓名。
8) 找出选修了1号课程和4号课程的学生学号。
9) 找出“贾向东”同学不学课程的课程号。


第三章 SQL基础(补充习题)
1. 设有一数据库GradeManager(成绩管理),包括四个表:学生表(Student)、课程表(Course)、班级表(Class)以及成绩表(Grade)。四个表的结构如图下所示,具体数据如第二章习题2所示。用SQL语句创建四个表。

Student
属性名 数据类型 可否为空 含义 完整性约束
Sno Char(7) 否 学号 主码
Sname VarChar(20) 否 学生姓名 非空
Ssex Char(2) 否 性别 男或女,默认为男
Sage Smallint 可 年龄 大于14,小于65
Clno Char(5) 否 学生所在班级 外码

Course
属性名 数据类型 可否为空 含义 完整性约束
Cno Char(1) 否 课程号 主码
Cname VarChar(20) 否 课程名称
Credit Smallint 可 学分 1,2,3,4,5,6之一

Class
属性名 数据类型 可否为空 含义 完整性约束
Clno Char(5) 否 班级号 主码
Speciality VarChar(20) 否 班级所在专业
Inyear Char(4) 否 入校年份
Number Integer 可 班级人数 大于1,小于300
Monitor Char(7) 可 班长学号 外码

Grade
属性名 数据类型 可否为空 含义 完整性约


Sno Char(7) 否 学号 外码
Cno Char(1) 否 课程号 外码
Gmark Decimal(4,1) 可 成绩 大于0,小于100

2. 针对以上四个表,用SQL语言完成以下各项操作:
① 给学生表增加一属性Nation(民族),数据类型为Varchar(20);
② 删除学生表中新增的属性Nation;
③ 向成绩表中插入记录(”2001110”,”3”,80);
④ 修改学号为”2001110”的学生的成绩为70分;
⑤ 删除学号为”2001110”的学生的成绩记录;
⑥ 为学生表创建一个名为IX_Class的索引,以班级号的升序排序;
⑦ 删除IX_Class索引。
3. 针对以上四个表,用SQL语言完成以下各项查询:
① 找出所有被学生选修了的课程号;
② 找出01311班女学生的个人信息;
③ 找出01311班、01312班的学生姓名、性别、出生日期;
④ 找出所有姓李的学生的个人信息;
⑤ 找出学生李勇所在班级的学生人数;
⑥ 找出课程名为操作系统的平均成绩、最高分、最低分;
⑦ 找出选修了课程的学生人数;
⑧ 找出选修了课程操作系统的学生人数;
⑨ 找出2000级计算机软件班的成绩为空的学生姓名。
4. 针对以上四个表,用SELECT的嵌套查询完成以下各项查询:
① 找出与李勇在同一个班级的学生信息;
② 找出所有与学生李勇有相同选修课程的学生信息;
③ 找出年龄介于学生李勇和25岁之间的学生信息;
④ 找出选修了课程操作系统的学生学号和姓名;
⑤ 找出所有没有选修1号课程的学生姓名;
⑥ 找出选修了全部课程的学生姓名。
(提示:可找出这样的学生,没有一门课程是他不选修的。)
5. 针对以上四个表,用SQL语言完成以下各项查询:
① 查询选修了3号课程的学生学号及其成绩,并按成绩的降序排列;
② 查询全体学生信息,要求查询结果按班级号升序排列,同一班级学生按年龄降序排列;
③ 求每个课程号及相应的选课人数;
④ 查询选修了3门以上课程的学生学号。
6. 针对以上四个表,用SQL语言完成以下各项操作:
① 对每个班,求学生的平均年龄,并把结果存入数据库;
② 将01311班的全体学生的成绩置零;
③ 删除2001级计算机软件的全体学生的选课记录;
④ 学生李勇已退学,从数据库中删除有关他的记录。
7. 视图操作:
① 建立01312班选修了1号课程的学生视图Stu_01312_1;
② 建立01312班选修了1号课程并且成绩不及格的学生视图Stu_01312_2;
③ 建立视图Stu_year,由学生学号、姓名、出生年份组成。
④ 查询1983年以后出生的学生姓名。
⑤ 查询01312班选修了1号课程并且成绩不及格的学生的学号、姓名、出生年份。
第四章 关系规范化(补充习题)
1. 在函数依赖范围内,试问下列关系模式最高属

于第几范式,码是什么?并解释原因:
① R(A,B,C,D),F= { B→D,AB→C };
② R(A,B,C,D,E),F= { AB→CE,E→AB,C→D };
③ R(A,B,C,D),F= { B→D,D→B,AB→C };
④ R(A,B,C),F= { A→B,B→A,A→C };
⑤ R(A,B,C),F= { A→B,B→A,C→A };
⑥ R(A,B,C,D),F= { A→C,D→B };
⑦ R(A,B,C,D),F= { A→C,CD→B };
2. 关系模式Activity的定义如下:
Activity(SID,Activity,Fee),其中SID是学生的学号,Activity是学生参加的活动,Fee是参加活动所需的费用。如果一个学生只能参加一项活动,每一项活动对于所有同学的收费是相同的。请回答以下问题:
(1) 以下哪些陈述是对的?
a.SID → Activity
b.SID → Fee
c.(SID,Activity)→ Fee
d.(SID,Fee)→ Activity
e.(Activity,Fee)→ SID
f.Activity → SID
g.Fee → Activity
(2) 该关系中有哪些决定因素?
(3) Activity的码是什么?
(4) 更新该关系时,会遇到更新异常吗?如果有,请加以描述。
(5) 该关系包含部分函数依赖吗?如果有,是什么?
(6) 该关系包含传递函数依赖吗?如果有,是什么?
(7) 在函数依赖范围内,该关系在第几范式中?
(8) 重新设计该关系,消除更新异常。
3. 如果上题的语义变为:一个学生可以参加多项活动,每一项活动对于所有同学的收费是相同的,请重新回答上题中的所有问题。
4. 如果9题的语义变为:一个学生可以参加多项活动,每一项活动对于所有同学的收费是不相同的,则关系的码是什么?该关系属于第几范式?
5. 考虑如下的关系模式定义和样本数据:
Project(Pname,Ename,Salary),其中PID是项目名称,Ename是参加项目的雇员名,Salary是雇员的薪水。
PID Ename Salary
100A 胡一民 2400
100A 张小华 2100
100B 张小华 2100
200A 胡一民 2400
200B 胡一民 2400
200C 李红卫 1500
200C 张小华 2100
200D 李红卫 1500
假设所有的函数依赖和约束都已显示在数据中,请在函数依赖范畴内回答以下问题:
(1) 写出该关系的函数依赖集。
(2) 该关系的码是什么?
(3) 该关系属于第几范式?

第五章 数据库设计(补充习题)
1. 三个实体集间的多对多联系和三个实体集两两之间的三个多对多联系等价吗?为什么?
2. 试述聚簇设计的原则。
3. 试述选择索引的原则。
4. 现有关于班级、学生、课程的信息如下:
描述班级的属性有:班级号、班级所在专业、入校年份、班级人数、班长的学号;
描述学生的属性有:学号、姓名、性别、年龄;
描述课程的属性有:课程号、课程名、学分。
假设每个班有若干学生,每个学生只能属于一个班,学生可以选修多门课程,每个学生选

修的每门课程有一个成绩记载。根据语义,画出它们的实体-联系模型E-R模型
5. 若在上题中再加入实体集教师和学会,其中:
描述教师的属性有:教师号、姓名、职称、专业;
描述学会的属性有:学会名称、成立时间、负责人姓名、会费。
假设每门课程可由多位教师讲授,每位教师可讲授多门课程;每个学生可加入多个学会,学生进入学会有一个入会年份。请根据语义,画出班级、学生、课程、教师和学会间的实体-联系模型E-R模型。并将得到的E-R模型转换为关系模式。
6. 下图(a)、(b)是三个实体集供应商、项目、零件之间的两种概念模型,将它们分别转换为关系模型(添上必要的属性)。



m m
m
n p
n n
m n


(a)
(b)
三个实体集的两种概念模型

7. 下图(a)、(b)、(c)给出了三个不同的局部E-R模型,请将其合并成一个全局E-R概念模型(可在联系集中增加必要的属性,也可将有关的基本实体集的属性选作联系的属性)。


1 m

1 1 m


m m n


(a) (b)
m n


(c)
图 三个局部E-R模型
各实体的构成如下:
部门:部门号,部门名,电话,地址
职员:职员号,职员姓名,职务(干部/工人),年龄,性别
设备处:单位号,电话,地址
工人:工人编号,姓名,年龄,性别
设备:设备号,名称,位置,价格
零件:零件号,名称,规格,价格
生产处:单位号,名称,电话,地址
8. 工厂(包括厂名和厂长名)需要建立数据库,用来管理存储以下信息:
? 一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话;
? 一个车间内有多个工人,每个工人有职工号、姓名、年龄、性别和工种;
? 一个车间生产多种产品,产品有产品号和价格;
? 一个车间生产多种零件,一个零件也可能由多个车间制造。零件有零件号、重量和价格;
? 一个产品由多种零件组成,一种零件也可装配在多种产品内;
? 产品与零件均存入仓库中,厂内有多个仓库,仓库有仓库号、仓库保管员姓名和电话。
根据以上信息,画出该系统的实体-联系模型E-R模型,再给出相应的关系数据模型。

相关主题
文本预览
相关文档 最新文档