DBS各章习题集.docx
《DBS各章习题集.docx》由会员分享,可在线阅读,更多相关《DBS各章习题集.docx(18页珍藏版)》请在冰豆网上搜索。
DBS各章习题集
数据库系统原理及应用各章习题
第1章绪论
1.1什么是信息?
什么是数据?
数据和信息有何联系与区别?
1.2数据处理和数据管理有何不同?
各包括哪些内容?
1.3什么是数据库和数据库系统?
数据库系统在计算机系统中处于哪个层次?
1.4随着计算机技术的发展,你认为未来数据库系统还应具备什么功能?
1.5数据库系统和文件系统有何区别?
数据库系统有什么优点?
1.
6数据库系统的模式结构如何构成?
数据独立性如何保证?
1.7试述客户机/服务器结构的工作原理,客户机/服务器结构有何优缺点?
1.8试述浏览器/服务器结构的工作原理,浏览器/服务器结构有何优缺点?
1.9数据库管理系统由哪几部分构成,有哪些基本功能?
1.10DBA的主要职责有哪些?
1.11简述数据库系统的工作过程。
1.12实现数据库管理系统有哪些方案?
各方案有何优缺点?
1.13名词解释
实体、属性、码、实体集、实体型、域、主码、元组、关系模式、概念模型、数据模型、类、对象、实例、继承。
1.14一种产品由多种零件组成,画出产品零件的概念模型。
1.15递归联系和多元联系如何处理?
1.16学校有若干系,每个系有若干班级和教职室,每个教职室有若干教员,其中有的教授和副教授各带若干研究生,每个班级有若干学生,每个学生选修若干课程,每门课程可由若干学生选修,试用ER图画出该校的概念模型。
1.7在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理.画出该物资管理系统的ER图。
1.18在活期存款业务中,设一个储户可在多个储蓄所存取款,画出该ER图。
1.19在课程管理系统中,涉及到班级,学生,课程,教师,参考书等实体,假设,一个教师只可上一门课程,一门课程可由多个教师讲授,可使用多本参考书,画出该系统的概念模型。
1.20简述数据模型的构成。
1.21简述层次数据模型的结构特点及优缺点。
1.22简述网状数据模型的结构特点及优缺点。
1.23简述关系数据模型的结构特点及优缺点。
1.24简述如何将ER模型转化为关系模式。
1.25简述关系数据模型的完整性规则。
1.26简述面向对象数据模型的结构特点及优缺点。
。
第2章关系数据库
3.1解释下列概念,并说明它们之间的联系与区别:
(1)超键、主码,候选码,外部码
(2)关系、元组、属性、域
(3)关系模式、关系模型、关系实例、关系数据库
(4)实体完整性规则参照完整性规则
(5)笛卡儿积、等值联接、自然联接
3.2关系模型的完整性规则有哪几类?
3.3在关系模型的参照完整性规则中,为什么外码的值可以为空?
什么情况下才可以为空?
3.4常用的关系数据语言有哪几种?
3.5为什么关系中的元组没有先后顺序?
3.6为什么关系中不允许有重复元组?
3.7关系与普通表格、文件有什么区别?
3.8简述关系的性质。
3.9等值连按与自然连接的区别是什么?
3.10关系代数的基本运算有哪些?
如何用这些基本运算来表示其他的关系基本运算?
3.11什么是关系运算的安全限制?
3.12关系代数表达式优化的一般策略有哪些?
3.13简述无限关系、无穷验证有什么区别?
3.14设有关系R和S。
R
S
A
B
C
A
B
C
5
3
2
2
6
7
2
6
7
6
3
4
6
3
4
5
5
2
计算R∪S,R-S,R∩S,R×S,∏3,2(R),δB<4(R),RS。
3.15有三个关系,试用关系代数表达式表示下列查询语句:
S(sno,sname,age,sex,sdept)
C(cno,cname,cdept,tname)tname表示授课老师名
SC(sno,cno,grade)
(1)检索年龄小于22岁的男学生的学号与姓名。
(2)检索学号为S3学生所学课程的课程名与任课教师名。
(3)检索JIANG老师所授课程的课程号、课程名。
(4)检索至少选修JIANG老师所授课程中一门课的男学生姓名。
(5)检索ZHNAG同学不学的课程的课程号。
(6)检索全部学生都选修的课程的课程号、课程名。
(7)检索选修课程包含JIANG老师所授课程的学生学号。
(8)检索至少选修两门课程的学生学号。
3.16试用元组表达式表示题3.15的各个查询语句。
3.17试用域表达式表示题3.15的各个查询语句。
3.18为什么要对关系代数表达式进行优化?
3.19设有下列四个关系模式:
S(SNO,SNAME,CITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNAME,CITY);
SPJ(SNO,PNO,JNO,QTY)。
其中,供应商关系S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成。
零件关系P由零件号(PNO)、零件名称(PNAME)、零件颜色(COLOR)、零件重量(WEIGHT)组成,用于记录各种零件的情况。
项目关系J由项目号(JNO)、项目名称(JNAME)、项目所在城市(CITY)组成。
供应情况关系SPJ由供应商号(SNO)、零件号(PNO)、项目号(JNO)、供应数量(QTY)组成。
完成以下操作:
(1)检索供应项目J2零件的供应商号(SNO)。
(2)检索供应项目J2零件P2的供应商号(SNO)。
(3)检索供应项目J2黑色零件的供应商姓名(SNAME)。
(4)检索没有使用天津供应商生产的黑色零件的项目号(JNO)。
(5)检索使用了S1供应所供应的全部零件的项目名称(JNAME)。
3.20对student,course,scg三个关系,完成以下查询:
(1)查询至少选修了2号课程和8号课程的学生姓名。
(2)查询张红的年龄。
(3)查询李明同学不及格的课程名称。
(4)查询选修了“计算机网络”的学生姓名。
(5)查询“计算机网络”成绩在90分以上的学生姓名。
第3章关系数据库标准语言SQL
3.1名词解释
SQL模式基本表视图实表虚表相关子查询联接查询嵌套查询交互式SQL嵌人式SQL共享变量游标滚动游标
3.2什么是数据库语言?
数据库语言是DBMS提供的用户界面(接口),是用户和数据库管理员用以完成数据的定义、查询、更新和控制的主要工具。
不同的数据模型对应不同的数据库语言。
3.3SQL语言分为哪几类?
有哪些主要功能?
有何特点?
3.4视图有什么作用?
哪些视图是不能更新的?
3.5如何在嵌入式SQL与主语言的通信?
3.6什么是游标?
有何作用?
如何使有游标?
3.7什么是授权粒度?
不同的数据对象有哪些权限?
3.8对student、course、scg三个表用SQL完成以下操作:
student(sno,sname,age,sex,sdept)
course(cno,cname,pcno,ccredit,cdept,tname)
scg(sno,cno,grade)
1.创建关系表stu1(sno,sname,ssex,sbirth,sdept)。
2.对student按姓名建立索引。
3.查询信息系所有年龄不大于21岁的女生。
4.查询1982年出生的男生的姓名。
5.查询信息系、金融系所有姓“王”的同学的姓名和年龄。
6.查询姓“王”的男同学的人数。
7.查询2号课程的最低分。
8.查询总分最高的学生的学号。
9.查询每个同学的平均分。
10.查询每个同学所选修的课程门数。
11.查询“计算机网络”90分以上的同学的姓名。
12.查询每门课程的课程名及选修人数。
13.查询选修了全部课程的学生姓名。
14.查询总学分已超过40学分的学生学号、姓名、总学分。
15.查询至少选修了学生“20021710233”选修的全部课程的学生姓名。
16.查询其他系中比“cs”系任一学生年龄都小的学生名单。
17.查询每一个同学的学号、姓名、选修的课程名及分数。
18.查询信息系学生或年龄小于20岁的学生。
19.查询信息系学生与年龄小于20岁学生的交集。
20.查询信息系学生与年龄小于20岁学生的差集。
21.向student增一新生(“20021710146”,“王飞”,“男”,12/22/1985,“is”)
22.删除“李军”同学的所有信息。
23.为信息系所有男生建一视图vs_ism。
24.利用视图vs_ism查询信息系“王强”同学。
25.查询年龄在25-30之间的学生姓名及性别。
SELECTsname,ssexFROMstudentWHEREsbirthBETWEEN25AND30;
26.查询姓“欧阳”的学生。
SELECT*FROMstudentWHEREsnamelike‘欧阳%’;
27.查询信息系is,数学系ma和计算机系cs的学生。
SELECT*FROMstudentWHEREsdeptIN(‘is’,’ma’,’cs’);
28.检索蒋炎焱老师所授课程的课程号和课程名。
29.检索年龄大于23岁的男学生的学号和姓名。
30.检索至少选修蒋炎焱老师所授课程中一门课程的女学生姓名。
31.检索wang同学不学的课程的课程号。
32.检索至少选修两门课程的学生学号。
33.检索全部学生都选修的课程的课程号与课程名。
34.检索选修课程包含蒋炎焱老师所授课程的学生学号。
35.统计有学生选修的课程门数。
36.求选修5号课程的学生的平均年龄。
37.求蒋炎焱老师讲授的每门课程的学生平均成绩。
38.统计每门课程的学生选修人数(超过10人的课程才统计)。
要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
39.检索学号比wang同学大,而年龄比他小的学生姓名。
40.检索姓名以wang打头的所有学生的姓名和年龄。
41.在scg中检索成绩为空值的学生学号和课程号。
42.求年龄大于女同学平均年龄的男学生姓名和年龄。
43.求年龄大于所有女同学年龄的男学生姓名和年龄。
44.在基本表student中检索每一门课程成绩都大于等于80分的学生学号、姓名和性别,并把检索到的值送往另一个已存在的基本表student2(sno,sname,sex)。
45.在基本表scg中删除尚无成绩的选课元组。
46.把wang同学的选课和成绩全部删去。
47.把选修maths课不及格的成绩全改为空值。
48.把低于总平均成绩的女同学成绩提高5%。
49.在基本表scg中修改3号课程的成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%(用两个UPDATE语句实现)。
50.将修改成绩的权限授用户“JYY”。
3.10设有两个基木表R(a,b,c)和S(d,e,f),试用SQL查询语句表达下列关系代数表达式:
(1)Пa(R)
(2)δb=‘17’(R)
(3)R×S
(4)Пa,f(δc=d(R×S))
3.11设有两个基本表R(a,b,c)和S(a,b,c),试用SQL查询语句表达下列关系代数表达式:
(1)R∪S
(2)R∩S
(3)R一S
(4)Пa,f(R)Пb,c(S)
3.12试叙述SQL语言的关系代数特点和元组演算特点。
3.13假设工程一零件数据库中有五个基本表:
供应商supplier(供应商号,姓名,所在城市,联系电话)
工程project(工程号,工程名,负责人,预算,日期)
零件part(零件号,零件名,规格,产地,颜色);
工程零件p_p(工程号,零件号,数量)
采购p_s(零件号,供应商号,数量)
试用SQL语句完成下列操作:
1.试用SQLDDL语句定义上述五个基本表,并说明主键和外键。
2.查找预算在5000-10000元之间的工程的信息,并将结果按预算降序排列。
3.找出使用供应商si所供零件的工程号。
4.找出工程项目j2使用的各种零件名称及其数量。
5.找出上海厂商供应的所有零件号。
6.找出使用上海产的零件的工程名称。
7.找出没有使用天津产零件的工程号。
8.把全部红色零件的颜色改成蓝色。
9.将由供应商s5供给工程号为j4的零件p6改为由s3供应,并作其他必要的修改。
10.从供应商关系中删除s2的记录,并从工程零件关系中删除相应的记录。
11.找出天津市供应商的姓名和电话。
12.试将project、p_p、part三个基本表的自然联接定义为一个视图VIEW1,将part、p_s、supplier三个基本表的自然联接定义为一个视图VIEW2。
13.在上述两个视图的基础上,检索上海的供应商所供应的零件的编号和名字。
14.在上述两个视图的基础上,检索项目所用零件的供应商编号和名字。
3.14对于教学数据库中基本表scg,已建立下列视图:
CREATEVIEWs_grade(s,c_num,AVG_grade)
AS
SELECTsno,COUNT(cno),AVG(grade)
FROMsc
GROUPBYsno;
试判断下列查询和更新是否允许执行。
若允许,写出转换到基本表scg上的相应操作:
1.SELECT*FROMs_grade
2.SELECTsno,c_num
FROMs_grade
whhereAVG_grade>80;
3.SELECTsno,AVG_grade
FROMs_grade
WHEREc_num>(SELECTc_num
FROMs_grade
sno='s4')
4.UPDATEs.grade
setc_num=c_num+1
WHEREsno='s4';
5.DELETEFROMs_grade
WHEREc_num>4;
3.16预处理方式对于嵌入式SQL的实现有什么重要意义?
3.17在宿主语言的程序中使用SQL语句有哪些规定?
3.18SQL的集合处理方式与宿主语言单记录处理方式之间如何协调?
3.19嵌人式SQL的DML语句何时不必涉及到游标?
何时必须涉及到游标?
3.20设职工一社团数据库有三个基本表:
职工(职工号,姓名,年龄,性别);
社会团体(社团号,名称,负责人,活动地点)
参加(职工号,社团号,参加日期)
其中:
(1)职工表的主码为职工号。
(2)社会团体表的主码为社团号;外码为负责人,被参照表为职工表,对应属性为职工号。
(3)参加表的职工号和社团号为主码;职工号为外码,其被参照表为职工表,对应属性为职工号;社团号为外码,其被参照表为社会团体表,对应属性为社团号。
试用SQL语句表达下列操作:
1.定义职工表、社会团体表和参加表,并说明其主码和参照关系。
2.建立下列两个视图:
社团负责人(社团号,名称,负责人职工号,负责人姓名,负责人性别);
参加人情况(职工号,姓名,社团社团号,社团名称,参加日期)。
3.查找参加唱歌队或篮球队的职工号和姓名。
4.查找没有参加任何社会团体的职工情况。
5.查找参加了全部社会团体的职工情况。
6.查找参加了职工号为“101”的职工所参加的全部社会团体的职工号。
7.求每个社会团体的参加人数。
8.求参加人数最多的社会团体的名称和参加人数。
9.求参加人数超过1的社会团体的名称和负责人。
10.把对社会团体和参加两个表的数据查看、插入和删除数据的权力赋给用户李平,并允许他再将此权力授予其他用户。
第4章关系数据库设计理论
4.1名词解释
数据依赖、函数依赖、平凡函数依赖、非平凡函数依赖、传递函数依赖、多值依赖、连接依赖、1NF、2NF、3NF、BCNF、4NF、5NF、码、无损联接性、无损联接性
4.2关系模式R(U,F)
U={Sno,SnameDname,Dmanager,Cname,Grade}
各属性分别表示学号、系名、系主任名、课程名和分数,
请分析存在的数据依赖。
F={Sno→Sname,Sno→Dname,Dname→Dmanager,(Sno,Cname)→Grade}
4.3分析下面关系模式中的函数依赖
Student(Sno,Sname,Grade,Class,Bh,Bplace,Sex)
XY
Sno→(Grade,Class,Bh)(Grade,Class,Bh)→Sno
Sno→Grade
BplaceSex
Class→Grade
4.4设计一个求关键字算法。
4.5判断F≡G的算法如何实现?
4.6如何判定函数依赖集F是否是冗余的?
如何计算出非冗余覆盖?
4.7思考:
如何判定函数依赖集F是否是规约函数依赖集?
如何计算?
4.8已知关系模式R(U,F),
U={SNO,CNO,GRADE,TNAME,TAGE,OFFICE},
F={(SNO,CNO)→GRADE,CNO→TNAME,TNAME→(TAGE,OFFICE)},
以及R上的两个分解ρ1={SC,CT,TO},ρ2={SC,GTO},
其中SC={SNO,CNO,GRADE},CT={CNO,TNAME},TO={TNAME,TAGE,OFFICE},
GTO={GRADE,TNAME,TAGE,OFFICE}。
试检验ρ1,ρ2的无损联接性。
答案:
ρ1是无损分解,ρ2不是无损分解。
4.9已知关系模式R(CITY,ST,ZIP),F={(CITY,ST)→ZIP,ZIP→CITY},以及R上的一个分解ρ={R1,R2},R1={ST,ZIP},R2={CITY,ZIP},求R1,R2,并检验分解的无损联接性和分解的函数依赖保持性。
答案:
R1=({ST,ZIP},{Φ})R2=(CITY,ZIP,{ZIP→CITY})
ρ是无损分解,但不具有函数依赖保持性
4.10判断下列结论对错。
1.任何一个二目关系都是3NF的。
2.任何一个二目关系都是BCNF的。
3.任何一个二目关系都是4NF的。
4.若R.A→R.B,R.B→R.C,则R.A→R.C。
5.若R.A→R.B,R.A→R.C,则R.A→R.(B,C)。
6.若R.B→R.A,R.C→R.A,则R.(B,C)→R.A。
4.11学生管理的情况:
一个系有若干名学生,一个学生只属于一个系,一个系只有一名系主任,一个学生可以选修多门课程,一门课程可由多名学生选修,每个学生学了每门课程有一个成绩,请设计一个数据库模式。
4.12分析SCT(SNO,CNO,CNAME,GRADE,TNAME,BDATE,SALARY)存在的问题,如何进行规范化?
F={SNO,CNO→GRADE
CNO→CNAME,CNO→TNAME
TNAME→BDATE,TNAME→SALARY}非2NF
存在问题:
1.数据冗余;2.插入,删除异常3.修改麻烦。
原因:
非主属性部分依赖于侯选关键字,
关键字是一个元组区别其它元组的依赖,同时也是一个元组赖以存在的依据。
分解为:
SC(SNO,CNO,GRADE),CT(CNO,CN,TNAME,BDATE,SALARY)
第5章数据库保护
5.1什么是数据库的安全性?
数据库安全性和计算机系统的安全性有什么关系?
5.2试述实现数据库安全性控制的常用方法和技术。
5.3什么是数据库的完整性?
完整性和安全性两者之间有什么联系和区别?
5.4什么是数据库的完整性约束条件?
可分为哪几类?
DBMS的完整性控制机制应具有哪些功能?
5.5RDBMS在实现参照完整性时需要考虑哪些方面?
5.6设有下面两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;
部门(部门号,名称,经理名,电话),其中部门号为主码;
用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:
(1)定义每个模式的主码;
(2)定义参照完整性;
(3)定义职工年龄不得超过60岁。
5.7对职工-部门关系模式,请用SQL的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。
(1)用户王勇对两个表有SELECT权力。
(2)用户李明对两个表有INSERT和DELETE权力。
(3)用户刘平对职工表有SELECT权利,对工资字段具有更新权力。
(4)用户张兰具有修改这两个表的结构的权力。
(5)用户周昆具有对两个表的所有权力(读、插、改、删数据),并具有给其他用户授权的权利。
(6)用户杨新具有从每个部门职工中SELECT最高工资,最低工资,平均工资的权力,他不能查看每个人的工资。
5.8把6.7中
(1)-(6)的每个用户所授予的权力予以撤消。
5.9SQL语言中提供了哪些数据控制(自主存取控制)的语句?
请试举几例说明它们的使用方法。
5.10什么是事务?
它有哪些属性?
5.11在数据库中为什么要并发控制?
5.12并发操作可能会产生哪几类数据不一致?
用什么方法能避免这些不一致的情况?
5.13什么是封锁?
基本的封锁类型有几种?
试述它们的含义。
5.14SQLServer为什么要引进意向锁?
意向锁的含义是什么?
5.15如何用封锁机制保证数据的一致性?
5.16什么样的并发调度是正确的调度?
5.17如何保证并行操作的可串行性?
5.18什么是封锁协议?
不同级别的封锁协议的主要区别是什么?
5.19不同封锁协议与系统一致性级别的关系是什么?
5.20试述两段锁协议的概念。
5.21试证明,若并发事务遵守两段锁协议,则对这些事务的并发调度是可串行化的。
5.22举例说明,对并发事务的一个调度是可串行化的,而这些并发事务不一定遵守两段锁协议。
5.23理解并解释下列术语的含义:
封锁、活锁、死锁、排它锁、共享锁、并发事务的调度、可串行化的调度、两段锁协议。
5.24什么是活锁?
什么是死锁?
试述死锁和活锁的产生原因和解决方法。
5.25设A的初值为1,T1、T2和T3是如下的三个事:
T1:
A=A+3;
T2:
A=A*3;
T3:
A=A**3;
(1)若这三个事务允许并行执行,则有多少可能的正确结束,请一一列举出来;
(2)请给出一个可串行化的调度,并给出执行结果;
(3)请给出一个非串行化的调度,并给如执行结果;
(4)若这三个事务都遵守两段锁协议,请给出一个不产生死锁的可串行化调度;
(5)若这三个事务都遵守两段锁协议,请给出一个产生死锁的调度。
5.26什么是数据库的备份与恢复?
5.27数据库转储的意义是什么?
试比较各种数据转储方法。
5.28什么是日志文件?
为什么要设立日志文件?
登记日志文件时为什么必须先写日志文件,后写数据库?
5.29数据库运行过程中常见的故障有哪几类?
各类故障如何恢复?