数据库原理复习题.docx
《数据库原理复习题.docx》由会员分享,可在线阅读,更多相关《数据库原理复习题.docx(13页珍藏版)》请在冰豆网上搜索。
![数据库原理复习题.docx](https://file1.bdocx.com/fileroot1/2023-1/1/7fefe32c-0cd9-43e7-87c4-cc324663a03e/7fefe32c-0cd9-43e7-87c4-cc324663a03e1.gif)
数据库原理复习题
数据库原理与应用复习题资料
一、单项选择题
1.关系数据模型的基本数据结构是( D )。
A.树B.图C.索引D.关系
2.提供数据库定义、数据操纵、数据控制和数据库维护功能的软件称为( C )。
A.OSB.DSC.DBMSD.DBS
3.下面对关系中属性的描述,错误的是( B )。
A.属性的次序可以任意交换B.允许多值属性
C.属性名唯一D.每个属性中所有数据来自同一属性域
4.超码、候选码和主码之间的关系是( C )。
A.超码候选码主码B.超码主码候选码
C.主码候选码超码D.主码超码候选码
5.在图书借阅关系中,能够成为主关键字(或称主码)的属性是(C)。
A.图书名B.图书作者C.图书编号D.图书价格
6.在第一个关系中出现,同时在第二个关系也出现的记录组成的新关系称为(C)。
A.两个关系的和B.两个关系的并C.两个关系的交D.两个关系的差
7.如果要设计一个用于记录“真/假”、“开/关”等状态信息的数值,最佳的数据类型是(B)
A.charB.bitC.datetimeD.money
8.关系笛卡尔积运算记号R×S,(D)
A.R为关系名,S为属性名B.R和S均为属性名
C.R为属性名,S为关系名D.R和S均为关系名
9.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,C→E},该关系只满足第一范式,若要规范化为第二范式,则将被分解为(C)个关系。
A.1B.2C.3D.4
10.数据库设计阶段分为(D)
A.物理设计阶段、逻辑设计阶段、编程和调试阶段
B.模型设计阶段、程序设计阶段和运行阶段
C.方案设计阶段、总体设计阶段、个别设计和编程阶段
D.概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段
11.元组关系演算表达式{t|R(t)∧S(t)}表达的是( D )
A.R∪SB.R∩SC.R-SD.S-R
12.设有关系模式R(A,B,C,D),F是R上成立的函数依赖集,F={B→C,C→D},则属性C的闭包C+为( C )
A.BCD B.BD C.CD D.BC
13.关系运算中花费时间可能最长的运算是(C)。
A.投影B.选择C.笛卡尔积D.除
14.下列SQL语句中,实现唯一约束的是(A)。
A.学号char(8)notnullconstraintun_nounique
B.学号char(8)notnullpk_学生表
C.性别char
(2)notnullcheck(性别='男'or性别='女')
D.学号char(8)notnull
15.设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},那么ρ={ACD,BD}相对于F(B)
A.是无损联接分解,也是保持FD的分解
B.是无损联接分解,但不保持FD的分解
C.不是无损联接分解,但保持FD的分解
D.既不是无损联接分解,也不保持FD的分解
16.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是(B)。
A.属性冲突B.语法冲突C.结构冲突D.命名冲突
17.SQL中的“断言”机制属于DBS的(A)
A.完整性措施B.安全性措施C.物理安全措施D.恢复措施
18.事务是数据库进行的基本工作单位。
如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于(B)状态。
A.安全性B.一致性C.完整性D.可靠性
19.事务的原子性是指(A)。
A.事务中包括的所有操作要么都做,要么都不做
B.事务一旦提交,对数据库的改变是永久的
C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的
D.事务必须是使数据库从一个一致性状态变到另一个一致性状态
20.用于数据库恢复的重要文件是(C)。
A.数据库文件B.索引文件C.日志文件D.备注文件
21.在文件系统中,所具有的数据独立性是(D)
A.系统独立性B.物理独立性C.逻辑独立性D.设备独立性
22.数据库系统中存放三级结构定义的DB称为(A)。
A.DBSB.DDC.DDLD.DBMS
23.域是实体中相应属性的(A)。
A.取值范围B.值C.名称D.描述
24.设D1、D2和D3域的基数分别为2、3和4,则D1×D2×D3的元组数为(B)。
A.9B.24C.10D.20
25.若一个关系为R(学生号,姓名,性别,年龄),则(A)适合作为该关系色主码。
A.学生号B.姓名C.性别D.年龄
26.设一个集合A={3,4,5,6,7},集合B={1,3,5,7,9},则A和B的并集中包含有(C)个元素。
A.10B.8C.7D.6
27.在一个关系R中,若存在X→(Y,Z),则也隐含存在X→Y和X→Z,称此为函数依赖的(B)规则。
A.传递性B.分解性C.合并性D.增广性
28.若一个关系的任何非主属性都不部分依赖于任何候选码,则称该关系最高达到了(B)范式。
A.第一B.第二C.第三D.BC
29.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,C→E},该关系只满足第一范式,若要规范化为第二范式,则将被分解为(C)个关系。
A.1B.2C.3D.4
30.由概念设计进入逻辑设计时,原来的(C)联系通常都需要转换成对应的基本表。
A.一对一B.一对多C.多对多D.多对一
31.设有关系R(A,B,C)和关系S(B,C,D),那么与S⋈R等价的关系代数表达式(B)
A.σ1=5(S⋈R)B.σ1=5(S×R)C.σ1=2(S⋈R)D.σ1=2(S×R)
32.查询优化策略中,正确的策略是(D)
A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作
C.尽可能早地执行差操作D.尽可能早地执行选择操作
33.SQL中,“DELETEFROM表名”表示(A)
A.从基本表中删除所有元组B.从基本表中删除所有属性
C.从数据库中撤消这个基本表D.从基本表中删除重复元组
34.设关系模式R(A,B,C),F是R上成立的FD集,F={A→B,C→B},ρ={AB,AC}是R的一个分解,那么分解ρ(C)。
A.保持函数依赖集FB.丢失了A→BC.丢失了C→BD.丢失了B→C
35.在DB技术,未提交的随后被撤消了的数据,称为(D)
A.报废的数据B.过时的数据C.撤消的数据D.脏数据
36.SQL中的“断言”机制属于DBS的(A)
A.完整性措施B.安全性措施C.物理安全措施D.恢复措施
37.DBMS的并发控制子系统,保证了事务(C)的实现。
A.原子性B.一致性C.隔离性D.持久性
38.SQL中不一定能保证完整性约束彻底实现的是(D)
A.主键约束B.外键约束C.局部约束D.检查子句
39.事务日志的用途是(C)
A.事务处理B.完整性约束C.数据恢复D.安全性控制
二、填空题
1.数据库系统的三级模式结构和两级数据映象确保了数据的逻辑_独立性和_物理_独立性。
2.设一个集合A={3,4,5,6,7},集合B={1,3,5,7,9},则A和B的交集中包含有_3_个元素,A和B的差集中包含有__2__个元素。
3.在一个关系R中,“职工号”函数决定“姓名”既是_非平凡函数依赖,又是_完全_函数依赖。
4.在一个关系R中,若存在“学号→系号,系号→系主任”,则隐含存在着_学号__函数决定_系主任_。
5.在SQL中,主码约束的关键字为_PRIMARYKEY_,外码约束的关键字为_FOREIGNKEY_。
6.一个关系若存在部分函数依赖和传递函数依赖,则必然会造成_数据冗余_和_操作异常_。
7.SQL中将完整性约束分为基本表完整性约束、域完整性和断言完整性三种类型。
8.并发操作带来的数据不一致性通常表现为三类:
丢失修改、不可重复读和读“脏”数据。
9.概念设计阶段的主要任务是根据_需求分析_的结果找出所有数据实体,画出相应的_ER图__。
10.对于较复杂的系统,概念设计阶段的主要任务是:
首先根据系统的各个局部应用画出各自对应的_局部ER图_,然后再进行综合和整体设计,画出_整体ER图_。
11.改善数据库性能的主要措施有:
减少连接运算、减小关系的大小和数据量、尽可能使用快照。
12.数据库管理系统的主要功能有数据定义、数据操纵、数据库的运行管理和数据库的建立以及维护等4个方面。
13.数据库系统的三级模式结构和两级数据映象确保了数据的逻辑_独立性和_物理_独立性。
14.关系数据库系统具有数据结构单一、采用集合运算、数据完全独立、数学理论支持等优点。
15.在数据库体系结构中,两级数据映像分别是指外模式和模式之间的数据映像以及模式和内模式之间的数据映像。
16.设一个关系为R(A,B,C,D,E),它的最小函数依赖集为FD={A→B,C→D,B→E},则关系的候选码为(A,C),该候选码含有2属性。
17.在SQL中,主码约束的关键字为primarykey,外码约束的关键字为foreignkey。
18.在SQL中,CreateView和dropview命令分别为建立和删除视图的命令。
19.R的属性集合为{A,B,C},其函数依赖集合为F={B→A,C→B,A→B}。
R的候选键是C,属于第2范式。
20.改善数据库性能的主要措施有:
减少连接运算、减小关系的大小和数据量、尽可能使用快照。
21.在关系数据库的规范化理论中,在执行”分解”时,必须遵守规范化原则:
既要保持_函数依赖_关系,又要具有_无损__连接性。
22.在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用GRANT语句,收回所授的权限使用REVOKE语句。
23.实体完整性是指在基本表中,主属性不能取空值;参照完整性是指在基本表中,外码可以是空值或者另一个关系主码的有效值。
24.若事务T对数据对象A加了S锁,则其他事务只能对数据A再加S锁,不能加X锁,直到事务T释放A上的锁。
25.制作后援副本的过程称为转储。
它又分为和。
26.事务故障、系统故障的恢复是由系统自动完成的,介质故障是由DBA执行恢复操作过程完成的。
27.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的属性和码。
三、简答题
对给定的三个关系模式:
学生S(sno,sname,sex,age,nation,clname,place),其中sno:
学号,sname:
学生姓名,sex:
性别,age:
年龄,nation:
民族,clname:
班级名称,place:
地址。
课程C(cno,cname,term,period,credit),其中cno:
课程号,cname:
课程名,term:
学时,period:
学期,credit:
学分。
选课SC(sno,cno,grade),其中grade为成绩。
按要求完成下列各题。
1.检索年龄大于20岁的男学生。
(1)写出关系代数表达式
sex='男'∧age>'20'(S)
(2)写出元组关系演算表达式
{t|S(t)∧t[4]>'20'∧t[3]='男')}
(3)写出域表达式
{t1t2t3t4t5t6t7|S(t1t2t3t4t5t6t7)∧t4>'20'∧t3='男'}
2.检索选修全部课程的学生的姓名
(1)写出关系代数表达式
sname(((sno,cno(SC)÷cno(C))
S)
(2)写出元组关系演算表达式
{t|(u)(v)(w)(S(u)∧C(v)∧SC(w)∧u[1]=w[1]∧w[2]=v[1]∧t[1]=u[2])}
(3)写出域表达式
{t1|(u1u2u3u4u5u6u7)(v1v2v3v4v5)(w1w2w3)(S(u1u2u3u4u5u6u7)∧C(v1v2v3v4v5)∧SC(w1w2w3)∧u1=w1∧w2=v1∧t1=u2)}
3.检索英语班的全体学生。
(1)写出关系代数表达式
clname='英语'(S)
(2)写出元组关系演算表达式
{t|S(t)∧t[6]='英语')}
(3)写出域表达式
{t1t2t3t4t5t6t7|S(t1t2t3t4t5t6t7)∧t6='英语'}
4.检索同时选修课程号为C01和C03的学生的姓名
(1)写出关系代数表达式
sname(1(2='C01'∧5='C03'∧1=4(SC
SC))
S)
(2)写出元组关系演算表达式
{t|(u)(v)(w)(SC(u)∧SC(v)∧S(w)∧u[2]='C01'∧v[2]='C03'∧u[1]=v[1]∧u[1]=w[1]∧t[1]=u[2])}
(3)写出域表达式
{t1|(u1u2u3)(v1v2v3)(w1w2w3w4w5w6w7)(SC(u1u2u3)∧SC(v1v2v3)∧S(w1w2w3w4w5w6w7)∧u2='C01'∧v2='C03'∧u1=v1∧u1=w1∧t1=w2)}
5.用SQL语句写出下列查询操作
(1)查询选修了课程号为c01和c02两门课程的学生的学号
Selectsc1.snoFromscassc1,scassc2
Wheresc1.sno=sc2.snoando='c01'ando='c02'
(2)检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
Selectsc.sno,sname,cname,gradefromS,SC,C
whereS.sno=SC.snoANDSC.cno=C.cnoANDS.clname=’英语’
(3)查询学生表中所有不姓李的学生;
Select*fromS
wheresnameNOTLIKE'李%'
(4)查询每个学生考试的平均成绩,并列出学生的学号、姓名和平均成绩
SelectS.snoas学号,snameas姓名,avg(grade)as平均成绩FromS,SC
(1分)
WhereS.sno=SC.snogroupbyS.sno,sname
(5)查询选修课程号为c03课程的学生学号、姓名和成绩。
selectS.sno,sname,gradefromS,SC
whereS.sno=SC.snoANDSC.cno='C03'
6.用SQL语句写出下列更新操作
(1)插入一条课程C('c18','创造学','5','36',2)
InsertintoC(cno,cname,term,period,credit)
values('c18','创造学','5','36',2)
(2)将非英语班的学生的英语(课程号为c01)分数提高2%
UpdateSCsetgrade=grade*1.02
wheresnoin(selectsnofromSwhereclname<>'英语')andcno='C01'
(1分)
(3)删除成绩为空的修课记录
DeletefromSCwheregradeISNULL
(4)将李小林同学的性别修改为'男'
UpdateSsetsex='男'wheresname='李小林'
7.检索'英语1302'班选修的课程名称,关系查询表达式为cname(s.sno=o=os.clname='英语1302'(S×SC×C)),画出表达式对应的语法树并进行优化。
8.设某航班某日尚有余票100张,甲预订15张,乙预订25张,若按如下顺序执行有何问题?
如何实现并发控制?
甲
乙
(1)
读余票A
(2)
读余票A
(3)
A=A-15
(4)
写回A
(5)
A=A-25
(6)
写回A
答:
若按上述顺序执行,则最后的余票为75,显然不对,因为正确结果应为60。
这种错误属于“丢失修改”,即把甲写回的数据丢失了。
应采用封锁机制实现并发控制,具体修改如下:
甲
乙
(1)
XLOCKA
(2)
读A=100
(3)
XLOCKA
(4)
A=A-15
等待
(5)
写回A=85
等待
(6)
COMMIT(提交)
等待
(7)
UNLOCKA
等待
(8)
获得XLOCKA
(9)
读A=85
(10)
A=A-25
(11)
写回A=60
(12)
COMMIT(提交)
(13)
UNLOCK(A)
8.T1,T2两个事务并发操作,顺序如下表所示,
T1
T2
(1)读A=20
(2)A=A-10
(3)写回A=10
(4)
读A=10
(5)ROLLBACK
(6)恢复A=20
(1)该操作序列是否存在问题,属于什么问题?
答:
存在问题,属于读“脏”数据。
(2)如有问题,请采用封锁机制进行修改。
答:
应修改为:
T1
T2
(1)XLockA
(2)读A=20
(3)A=A-10
(4)写回A=10
(5)
SLockA
(6)ROLLBACK
等待
(7)恢复A=20
等待
(8)UnlockA
等待
(9)
SlockA
(10)
读A=20
(11)
UnlockA
四.应用题
1.请为洗衣机经销商设计一个数据库,要求包括生产厂商和产品的信息。
生产厂商的信息包括名称、地址、电话;产品的信息包括品牌、型号、价格;生产信息包括生产某产品的数量和日期。
要求:
(1)将数据库用E/R图来描述;
(2)转换成关系模型并注明函数依赖。
生产厂商(名称,地址,电话)名称→地址,电话
产品(品牌,型号,价格)品牌,型号→价格
生产(厂商名称,产品品牌,型号,数量,日期)厂商名称,产品品牌,型号→日期,数量
2.设有一教学管理数据库,其属性为:
学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。
这些数据有下列语义:
(1)学号和课程号分别与其代表的学生和课程一一对应;
(2)一个学生所修的每门课程都有一个成绩;
(3)每门课程只有一位任课教师,但每位教师可以有多门课程;
(4)教师中没有重名,每个教师只属于一个系。
(1)试根据上述语义确定函数依赖集和候选键。
(2)如果用上面所有属性组成一个关系模式,那么该关系模式为第几范式?
(3)将其分解为第3范式。
答:
(1)函数依赖集:
F={(S#,C#)→G,C#→TN,TN→D};候选键为(S#,C#)。
(2)存在非主属性对候选键的部分依赖(S#,C#)→TN,该关系模式为第1范式。
(3)将该关系模式分解为下列3个关系可满足第3范式。
R1=(S#,C#,G)
R2=(C#,TN)
R3=(TN,D)