文档库 最新最全的文档下载
当前位置:文档库 › 数据库原理与技术(补充习题)

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

第二章 关系代数(补充习题)

1. 根据下面图给出的三个关系S1、S2、S3,求运算结果:S1∪S2、S2-S1、S1∩S2、

∏A ,C (S2)、σ

A=“a1”(S1)

、S2S3

2. 设有一数据库GradeManager (成绩管理),包括四个表:学生表(Student )、课程表

(Course )、班级表(Class )以及成绩表(Grade )。

Student

Course

Class

Grade

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

Grade

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

假设所有的函数依赖和约束都已显示在数据中,请在函数依赖范畴内回答以下问题:

(1)写出该关系的函数依赖集。

(2)该关系的码是什么?

(3)该关系属于第几范式?

第五章数据库设计(补充习题)

1.三个实体集间的多对多联系和三个实体集两两之间的三个多对多联系等价吗?为什

么?

2.试述聚簇设计的原则。

3.试述选择索引的原则。

4.现有关于班级、学生、课程的信息如下:

描述班级的属性有:班级号、班级所在专业、入校年份、班级人数、班长的学号;

描述学生的属性有:学号、姓名、性别、年龄;

描述课程的属性有:课程号、课程名、学分。

假设每个班有若干学生,每个学生只能属于一个班,学生可以选修多门课程,每个学生选修的每门课程有一个成绩记载。根据语义,画出它们的实体-联系模型E-R模型

5.若在上题中再加入实体集教师和学会,其中:

描述教师的属性有:教师号、姓名、职称、专业;

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

换为关系模型(添上必要的属性)。

(a )

(b )

三个实体集的两种概念模型

7. 下图(a )、(b )、(c )给出了三个不同的局部E-R 模型,请将其合并成一个全局E-R 概

念模型(可在联系集中增加必要的属性,也可将有关的基本实体集的属性选作联系的属性)。

(a

(c )

图 三个局部E-R 模型

各实体的构成如下:

部门:部门号,部门名,电话,地址

职员:职员号,职员姓名,职务(干部/工人),年龄,性别 设备处:单位号,电话,地址

工人:工人编号,姓名,年龄,性别

设备:设备号,名称,位置,价格

零件:零件号,名称,规格,价格

生产处:单位号,名称,电话,地址

8.工厂(包括厂名和厂长名)需要建立数据库,用来管理存储以下信息:

?一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话;

?一个车间内有多个工人,每个工人有职工号、姓名、年龄、性别和工种;

?一个车间生产多种产品,产品有产品号和价格;

?一个车间生产多种零件,一个零件也可能由多个车间制造。零件有零件号、重量和价格;

?一个产品由多种零件组成,一种零件也可装配在多种产品内;

?产品与零件均存入仓库中,厂内有多个仓库,仓库有仓库号、仓库保管员姓名和电话。

根据以上信息,画出该系统的实体-联系模型E-R模型,再给出相应的关系数据模型。

相关文档
相关文档 最新文档