数据库复习题目1.docx
《数据库复习题目1.docx》由会员分享,可在线阅读,更多相关《数据库复习题目1.docx(9页珍藏版)》请在冰点文库上搜索。
数据库复习题目1
一、简答题
1、简述视图和基本表之间的联系和区别。
基本表是本身独立存在的表,在SQL中一个关系就对应一个表。
视图是从一个或几个基本表中导出的表。
视图本身不独立存储在数据库中,是一个虚表。
即数据库中只存放视图的定义而不存放视图对应的数据,这些数据仍存放在导出视图的基本表中。
视图在概念上与基本表等同,用户可以如同基本表那样使用视图,可以在视图上再定义视图。
2、说明关系的参照完整性的含义。
若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:
或者取空值(F的每个属性值均为空值)
或者等于S中某个元组的主码值。
3、试述事务的概念及事务的基本特征。
事务是用户定义的一个数据库操作序列,它具有原子性、一致性、隔离性和持续性。
4、解释下列术语:
关系、关系模式、关系数据库、关系数据库模式。
关系:
n个域的笛卡尔积的子集叫做在这n个域上的关系,关系表示实体以及实体之间的联系,实质上是一张二维表,是元组的集合;
关系模式:
关系的描述,指出关系的元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性和域之间的映象关系,可以形式化地表示为R(U,D,dom,F);
关系数据库模式是对关系数据库的描述,它包括若干域的定义以及这些域上定义的若干关系模式;
关系数据库是关系数据库模式的值,是上述关系模式在某一时刻对应的关系的集合。
5、什么是数据库的安全性?
什么是数据库的完整性?
二者有什么区别和联系?
数据库的完整性是指数据的正确性和相容性,数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改和破坏。
数据库的完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓的垃圾进和垃圾出所造成的无效操作和错误结果。
数据库的安全性是保护数据库防止恶意的破坏和非法的存取。
安全性措施防范的对象是非法用户和非法操作,完整性措施的防范对象是不符合语义的数据。
6什么是封锁?
基本的封锁类型有几种,简要说明它们的含义。
封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁。
加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。
基本封锁类型:
排它锁和共享锁。
排它锁又称为写锁:
若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁
共享锁又称为读锁:
若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
二、选择题
1、在数据库的三级模式结构中,描述数据库中全体数据的逻辑结构和特征的是D。
(也要掌握外模式内模式概念)
A.外模式B.内模式C.存储模式D.模式
2、数据库中,数据的物理独立性是指C。
(也要掌握逻辑独立性,P33页1.3.3节)
A.数据库与数据库管理系统的相互独立
B.用户程序与DBMS的相互独立
C.用户的应用程序与存储在磁盘上数据库中的数据是相互独立的
D.应用程序与数据库中数据的逻辑结构相互独立
3、关系模型中,一个关键字C。
A.可由多个任意属性组成
B.至多由一个属性组成
C.可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成
D.以上都不是
4、设W=R
S,且W、R、S的元组个数分别为p、m、n,那么三者之间满足—D—。
A.p<(m+n)B.p≤(m+n)
C.p<(m×n)D.p≤(m×n)
5、数据库系统的最大特点是___C_____。
A.数据的三级抽象和二级独立性B.数据共享性
C.数据的结构化D.数据独立性
6、在关系代数中,五种专门的关系运算符是_C____。
A.≥,∞,×,π和σB.∩,-,×,π和σ
C.÷,∞,×,π和σD.∪,-,×,π和σ
7、若系统在运行过程中,由于某种原因,造成系统停止运行,致使所有事务以非正常方式终止,这时内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为B。
(也要掌握其他故障特征)
A.事务故障B.系统故障C.介质故障D.运行故障
8、若事务T对数据R已加X锁,则其他事务对数据RD。
(补充X锁和S锁)
A.可以加S锁不能加X锁B.不能加S锁可以加X锁
C.可以加S锁也可以加X锁D.不能加任何锁
9、对并发操作若不加以控制,可能会带来D问题。
A.不安全B.死锁C.死机D.不一致
10、E-R图是数据库设计的工具之一,它适用于建立数据库的A。
A.概念模型B.逻辑模型C.结构模型D.物理模型
11、同一个关系的任意两个元组值A。
A.不能全同B.可全同C.必须全同D.以上都不是
12、事务的隔离性是指C。
(事务其他性质也要掌握!
10.1节P279)
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
13、候选关键字中属性称为B。
A.非主属性B.主属性C.复合属性D.关键属性
三、(已经讲了)
对学生-课程数据库有如下的查询:
SELECTCnameFROMStudent,Course,SC
WHEREStudent.Sno=SC.SnoANDSC.Cno=Course.CnoAND
Student.Sdept=‘CS’ANDCourse.Cpno=3;
1、画出用关系代数表示的语法树。
2、用关系代数表达式优化算法对原始的语法树进行优化处理,画出优化后的标准语法树。
答:
答案之一
四*、
已知关系模式R,其中U={A,B,C,D};
F={D→B,B→D,AD→B,AC→D}
1、求R的所有候选关键字、主属性和非主属性。
2、R属于第几范式?
为什么?
解答:
1AC是唯一候选码,AC是主属性,BD是非主属性
2R∈1NF,原因如下:
R的非主属性有B、D,
因为AD→B,(非主属性B对候选关键字AC部分函数依赖)
五*、试证明任何一个二目关系是属于BCNF的
设模式R,其中U={A,B};
1、若Fm={A→B} 则候选码是A,没有非主属性对码的部分函数依赖和传递函数依赖,且所有的决定因素都包含码,所以R∈BCNF
2、若Fm={B→A}同1)理由R∈BCNF
3、若Fm={A→B,B→A} 则候选码是A和B,因为没有非主属性,所以没有非主属性对码的部分函数依赖和传递函数依赖,且所有的决定因素都包含码,所以R∈BCNF
4、若Fm是空集,R的候选码是全码。
因为没有非主属性,所以不可能出现非主属性对码的部分依赖和传递函数依赖,也不会有决定因素是A或B的情况出现所以R∈BCNF
六、(已经讲了)
设有如下实体:
学生(Student):
学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、班级(Class)
课程(Course):
编号(Cno)、课程名(Cname)、开课系(Dept)
教师(Teacher):
教师号(Tno)、姓名(Tname)、性别(Tsex)、职称(Tpost)
系(Dept):
系名(Dept)、电话(Dtel)、教师号(Tno)、教师名(Tname)
其中学号(Sno)、编号(Cno)、教师号(Tno)、系名(Dept)是不重复的属性。
上述实体中存在如下联系:
·一个学生可选修多门课程,一门课程可为多个学生选修,选修后得到考试成绩(Grade);
·一个教师可讲授多门课程,一门课程可为多个教师讲授;
·一个系有多个教师和学生,一个教师或一个学生只能属于一个系。
·一个系可开设多门课程,一门课程只能为一个系所开设。
试完成如下工作:
1、根据这段话的意思,画出其E-R图;
2、将该E-R图转换为等价的关系模型结构,并指出每个关系模式的主码和外码;
七、
设有一个学生-课程数据库,包括Student、Course和SC三个关系模式:
学生表Student由学号(Sno),学生姓名(Sname),性别(Ssex),年龄(Sage),所在系(Sdept)组成;
课程表Course由课程号(Cno),课程名称(Cname),先修(Cpno),学分(Ccredit)组成;
学生选课表SC由(Sno),课程号(Cno),成绩(Grade)组成;按要求完成下列操作:
1、统计每门课程的选修人数(超过30人的课程才统计)。
要求输出课程号和选修人数,查询结果按课程号降序排列。
selectCno,Count(Sno)FromSC
GroupByCnoHavingCount(Sno)>30orderbycnodesc;
2、分别用SQL语言和关系代数查询选修了‘数据库原理’(课程名称)且成绩在60分以上的所有学生的学号、姓名和成绩;
SELECTStudent.Sno,student.Sname,SC.Grade
FROMStudent,Course,SC
WHEREStudent.Sno=SC.Sno
ANDCourse.Cno=SC.Cno
ANDCourse.Cname='数据库原理'
ANDSC.Grade>60;
πSno,Sname,Grade(σCname=‘数据库原理’∧Grade>=60(Course
SC
Student))
3、用SQL语言查询与“王海”(学生姓名)同性别并且同所在系的学生基本信息;
Select*FromStudent
WhereSdeptinSelectSdeptFromStudentWhereSname=‘王海’
AndSsexinSelectSsexFromStudentWhereSname=‘王海’;
4、分别用SQL语言和关系代数查询课程名是‘编译原理’(课程名称)的直接先行课的课程号和课程名;
πCno,Cname(πCpno(σCname=‘编译原理(Course))
Course)Cpno=Cno
SelectSecond.Cno,Second.Cname
FromCourseFirst,CourseSecond
WhereFirst.Cname=‘编译原理’andFirst.Cpno=Second.Cno;
5、往基本表student中插入一个学生元组,学号为52019,姓名是张三,年龄18岁。
InsertIntoStudentvalues(‘s9’,‘张三’,NULL,18,NULL)