《数据库原理与应用》
计算题
- 设有关系模式R(ABCDEF),F={ A→BC,CD→E,B→DA }
1)求R的所有候选码。2)R最高属于第几范式
| AE,BE |
|---|
三个关系如下:教学管理系统包括下面3个表:
Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
Courses (Cno, Cname, Period, Credit)
SC (Sno, Cno, Grade)
写出下列查询的SQL语句:
-
查询全体学生的学号和姓名。
-
查询数据库成绩超过90分的学生的学号。
-
将成绩在55分和59分之间的成绩增加5分。
-
删除名学号为201205001的选课记录。
-
插入学号为95001学生选修C101课程的记录,其中成绩为95分。
| (1)SELECT Sno, Sname FROM Students; (2)SELECT Sno FROM SC WHERE Grade > 90; (3)UPDATE SC SET Grade = Grade + 5 WHERE Grade BETWEEN 55 AND 59; (4)DELETE FROM SC WHERE Sno = '201205001'; (5)INSERT INTO SC (Sno, Cno, Grade) VALUES ('95001', 'C101', 95); |
|---|
R(X, Y, Z) F={Y→Z, Y→X, X→YZ},R的码是?R是第几范式?
| R的候选码为X和Y. 非主属性:Z 不存在非主属性对候选键部分函数依赖 由于X→YZ 所以存在Y→X,X→Z 但是该范式却是BCNF,因为判断3NF有两个条件,Y→X,X→Z满足第一个条件,但不满足第二个条件:X不能推出Y. 然后三个函数依赖的左边都是候选键 因此此范式达到BCNF |
|---|
R(X, Y, Z) F={XY→Z},R的码是?R是第几范式?
| 候选码(X,Y),第四范式 R的候选码为XY
非主属性:Z
不存在非主属性对候选键部分函数依赖
不存在非主属性传递依赖于候选键
函数依赖的左边XY为候选键
| 因此此范式达到BCNF |
|---|
R(X, Y, Z) F={X→Y, X→Z},R的码是?R是第几范式?
| R的候选码为X. 非主属性:Y、Z 两个函数依赖的左边都是候选键 因此此范式达到BCNF |
|---|
R(X, Y, Z) F={Y→Z, XZ→Y},R的码是?R是第几范式?
| R的候选码为XY和XZ.
非主属性:无 因为非主属性的不存在所以至少达到3NF
第一个函数依赖Y→Z的左边Y不是候选键
| 因此此范式达到3NF |
|---|
假设学生选课系统包含如下关系:
Students (Sno, Sname, Gender, Enrollyear, Speciality)
Courses(Cno, Cname, Period, Credit)
SC(Sno,Cno,Grade)
说明下列关系代数的含义,并转换成等价的SQL语句:
p Sname,Cname,Grade (s Grade<60 (Students⋈SC⋈Courses))
| SELECT Sname, Cname, Grade FROM Students INNER JOIN SC ON Students.Sno = SC.Sno INNER JOIN Courses ON SC.Cno = Courses.Cno WHERE Grade < 60; |
|---|
考虑关系模式 CTHRSG ,其中 C 代表课程, T 代表教师, H 代表上课时间, R 代表上课地点(教室), S 代表学生,而 G 代表成绩。 CTHRSG 的函数依赖集为{C ® T , HR ® C ,HT ® R ,CS ® G , HS ® R }。求关系模式 CTHRSG 具有无损连接性的3NF分解。
- 设关系模式R(A,B,C,D,E),其上的函数依赖集为F={A→C,C→D,B→C,DE→C,CE→A},试解答下列问题:
(1)求R的所有侯选码;
(2)将R分解为R1(AD)、R2(AB)、R3(BC)、R4(CDE)、R5(AE)是否为无损连接分解?
(3)将R分解为BCNF,并保持分解的无损连接性。
-
设有关系模式R(A,B,C,D,E),其上的函数依赖集:F={A→BC, CD→E, B→D, E→A} (1) 计算B+ , (2) 求出R的所有关键字。
-
考虑航运数据库包含如下属性:S(船只名)、T(船只类型)、V(航运标识符)、C(一艘船一次航运所运输的货物)、P(港口)和D(日期)。假定一次航运将一种货物运送到一系列港口,一艘船一天只访问一个港口。这样,我们有如下函数依赖:S®T,V®SC和SD®PV。
(1) 找出R (S, T, V, C, P, D)的一个具有无损连接性的BCNF分解。
(2) 找出R的一个具有无损连接性和保持函数依赖的3NF分解。
(3) 解释R为什么不存在具有无损连接性和保持函数依赖的BCNF分解。

- 设供应商-工程-零件数据库包含如下关系:
Suppliers (Sno, Sname, Status, Scity)
Parts (Pno, Pname, Color, Weight)
Projects (Jno, Jname, Jcity)
SPJ (Sno, Pno, Jno, Quantity)
其中,各关系的主码用下横线标示。Sno, Sname, Status, Scity分别表示供应商的编号、名称、状态和所在城市;Pno, Pname, Color, Weight分别表示零件的编号、名称、颜色和重量;Jno, Jname, Jcity分别表示工程的编号、名称和所在城市;SPJ是供应关系,Quantity是特定供应商一次向特定工程供应的特定零件的数量。用SQL语句表示如下查询:
(1)求上海的所有供应商的信息。
(2)求位于郑州的所有工程的信息。
(3)求数量在100~150之间的供应。
(4)求为工程J1提供零件的供应商号。
(5)求供应工程J1红色零件的供应商号。
(6)求至少提供一种红色零件的供应商名称。
(7)求不提供零件P2的供应商名称。
(8)求没有使用天津供应商生产的红色零件的工程号。
(9)求使用了本地供应商提供的零件的工程号和工程名称。
(10)求未使用本地供应商提供的零件的工程号和工程名称。
(11)求至少用了供应商S1所供应的全部零件的工程号。
(12)求提供所有零件的供应商名称。
| (1)SELECT * FROM Suppliers WHERE Scity = '上海'; (2)SELECT * FROM Projects WHERE Jcity = '郑州'; (3)SELECT * FROM SPJ WHERE Quantity BETWEEN 100 AND 150; (4)SELECT Sno FROM SPJ WHERE Jno = 'J1'; (5)SELECT Sno FROM SPJ WHERE Jno = 'J1' AND Color = '红色'; (6)SELECT Sname FROM Suppliers WHERE Sno IN ( SELECT Sno FROM SPJ WHERE Pname = '红色' ); (7)SELECT Sname FROM Suppliers WHERE Sno NOT IN ( SELECT Sno FROM SPJ WHERE Pno = 'P2' ); (8)SELECT Jno FROM Projects WHERE Jno NOT IN ( SELECT Jno FROM SPJ WHERE Sno IN ( SELECT Sno FROM Suppliers WHERE Scity = '天津' ) AND Pname = '红色' ); (9)SELECT Jno, Jname FROM Projects WHERE Jno IN ( SELECT Jno FROM SPJ WHERE Sno IN ( SELECT Sno FROM Suppliers WHERE Scity = Jcity ) ); (10)SELECT Jno, Jname FROM Projects WHERE Jno NOT IN ( SELECT Jno FROM SPJ WHERE Sno IN ( SELECT Sno FROM Suppliers WHERE Scity = Jcity ) ); (11)SELECT Jno FROM SPJ WHERE Sno = 'S1' GROUP BY Jno HAVING COUNT(Pno) = ( SELECT COUNT(Pno) FROM SPJ WHERE Sno = 'S1' ); (12)SELECT Sname FROM Suppliers WHERE Sno IN ( SELECT Sno FROM SPJ GROUP BY Sno HAVING COUNT(Pno) = ( SELECT COUNT(Pno) FROM Parts ) ); |
|---|
绘图题1*10
- 某商场的数据库模式,请根据该模式画出ER图:
商场(商场编号,店名,地址,电话)
职工(职工号,姓名,性别,出生日期,职务,商场编号)
顾客(顾客编号,姓名,性别,年龄,联系电话)
购物(顾客编号,商场编号,消费金额,日期)
-
某公司有若干个部门;每个部门有若干职工、项目和办公室。每个职工都有工作经历,记录该职工做过的每项工作的起止年月和工资。每个办公室有若干部电话。对于部门,需要记录部门号(惟一)、部门名称、预算费和部门领导的职工号。对于职工,除工作经历外,还需要记录职工号(惟一)、职工姓名、家庭住址、当前参加的项目、所在办公室、电话等信息。对于项目,需要记录项目号(惟一)、项目名称和预算。对于办公室,需要记录办公室名称(惟一)、位置、电话。根据这些信息,为该公司的数据库设计E-R模型(用E-R图表示)。必要时,你可以做一些合理假设。
-
==已知图书馆数据库,有三个实体:图书、出版社、读者。每位读者可以借多本书,同一本书也可以被多个读者借阅,但必须登记借出日期和应还日期。
1.请自己设计适当的属性,画出E-R图。
2.将其转换为关系模型。
图书(图书编号,书名,作者,出版社,出版日期)
出版社(出版社编号,出版社名称)
读者(读者编号,读者姓名,读者性别,读者年龄,联系方式)
借阅(借阅记录ID,图书编号,读者编号,借出日期,应还日期)
- ==高校鼓励教师进行科学研究。每位教师可以发表多篇论文,并假设每篇论文可以由同一学校的一位或者多位教师共同发表。每个老师可以主持0项或者多项科研项目。教师属性有职工号,姓名,专业等,论文属性有论文编号,期刊/会议名称,出版时间,收录情况,他引次数,第一作者和通讯作者等。项目包含项目编号,类别,资助金额,开始年份,结束年份等。另外,当教师发表论文,或者主持项目时,有相应的科研积效(奖金)。
(1)根据上述信息,设计高校教师科研管理的E-R图。
(2)进一步转换为关系模型。
转换为关系模型:
指导教师(教工号,姓名,专业)学生(学号,姓名,专业,年级)
竞赛项目(竞赛名称,指导教师)
竞赛获奖证书(证书编号,竞赛名称,获奖等级)
参赛学生(证书编号,学号)
集体物质奖励(证书编号,学号,物质奖励)
-
工商银行有许多支行,每个具有唯一的名称,拥有一定的资产,坐落在某个城市的某条街道上。银行要记录每位客户的客户标识(如身份证号)、客户名、客户地址、联系电话等信息。银行的主要业务是办理客户的存款和贷款。每位客户可以有多个存款账户,并可以多次存取款;存款账户需要存放账号和存款余额等信息;每次存取款需要登记日期和存取款金额。一位客户可以多次贷款,但每笔贷款只能贷给一个客户。每笔贷款还与特定的支行相关联。每笔贷款需要登记贷款号、贷款日期和贷款金额。根据这些信息,为工商银行设计一个E-R图。



-
为汽车保险公司设计一个E-R图。每个客户拥有一辆或多辆汽车。每辆汽车可能发生0次或多次交通事故。客户需要登记的信息包括客户ID(如身份证号)、姓名、住址、电话等信息。车辆需要登记车辆编号、车型、出厂年份等信息。事故需要登记事故编号、事故发生日期、发生地点、损坏估计等信息。


-
高校鼓励大学生参加各种竞赛。特定竞赛项目有一位指导教师(假设每位教师至多是一种竞赛的指导教师)和一名或者多名学生;一名学生可以参加0项或者多项竞赛。教师属性有职工号,姓名,专业等,学生属性有学号,姓名,专业,年级等。竞赛获奖证书有证书编号,名称,级别,获奖等级,指导老师,学生成员等。指导教师和学生通过指导关系能够确定竞赛名称;学生因获得证书会得到集体物质奖励。
(1)根据上述信息,设计大学生竞赛管理的E-R图。
(2)进一步转换为关系模型。
简答题5*5
- 设关系模式R的函数依赖集F={A→B, BC→DE, AEH→G }。计算AC的闭包。F是否逻辑蕴涵函数依赖ACF→DG?
F不逻辑蕴涵函数依赖ACF一>DG,因为DG不在AC的闭包中.

- 设关系模式R的函数依赖集F包含如下函数依赖:AB®C, C®A, BC®D, ACD®B, D®EG, BE®C, CG®BD, CE®AG。求BD的闭包。
- 什么是数据库的物理独立性?
数据独立性是数据库系统的一个最重要的目标之一,它使数据能独立于应用程序.可以说数据处理的发展史就是数据独立性不断进化的历史.在手工管理阶段,数据和程序完全交织在一起,没有独立性可言,数据结构作任何改动,应用程序也需要做相应的修改;文件系统出现后,虽然将两者分离,但实际上应用程序中依然要反映文件在存储设备上的组织方法、存取方法等物理细节,因而只要数据作了任何修改,程序仍然需要作改动.而数据库系统的一个重要目标就是要使程序和数据真正分离,使它们能独立发展.
数据独立性包括数据的物理独立性和数据的逻辑独立性.物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的.即,数据在磁盘上怎样存储由DBMS(DataBase Management System 数据库管理系统)管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变.
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即,当数据的逻辑结构改变时,用户程序也可以不变.数据与程序的独立,把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改.
- 数据库领域常用的数据模型有哪些?
层次模型、网状模型、关系模型、面向对象模型
-
什么是强制存取控制?
-
并发调度与可串行化的关系是什么?
-
SQL的数据定义语言可以定义的对象有?
-
当违反参照完整性时,除了简单的拒绝之外,还可以有哪些操作?

-
简述数据库故障恢复技术的基本思想。
-
什么是事务,并说明事务有哪些性质。

-
恢复的基本思想是什么?
-
SQL的基本功能有哪些?
-
是否所有的视图都是可以更新的?为什么?哪些是可以更新的?哪些是不可以更新的?
-
叙述等值连接与自然连接的区别和联系。
-
不好的数据库模式,存在什么问题?怎么处理?
-
哪些情况会违反参照完整性规则?
-
简述延迟更新技术下系统故障的恢复。
-
三个关系如下:
S(学号,姓名,年龄,性别,籍贯)
C(课程号,课程名,教师名,办公室)
SC(学号,课程号,成绩)
试说明下列关系代数的实现功能:
(1)∏2,6,7(s籍贯=“郑州”(SSC))
(2)∏2,9,8(SSCs课程名=“数据库原理”(C))
(3)∏2,3(S(∏1,2 (SC)÷∏1(C)))

- 教学管理系统包括下面3个表:
Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno)
Courses (Cno, Cname, Period, Credit)
SC (Sno, Cno, Grade)
写出下列查询的SQL语句:
(1)查询全体女生的姓名和年龄。
(2)查询和王丽出生年月相同的学生的姓名。
(3)查询没有选修‘CS301’课程的学生的学号和姓名
(1) 查询全体女生的姓名和年龄。
SELECT Sname, YEAR(Birthday) - YEAR(CURDATE()) AS Age
FROM Students
WHERE Sex = '女';
(2) 查询和王丽出生年月相同的学生的姓名。
SELECT Sname
FROM Students
WHERE YEAR(Birthday) = YEAR((SELECT Birthday FROM Students WHERE Sname = '王丽'));
(3) 查询没有选修“CS301’课程的学生的学号和姓名。
SELECT Sno, Sname
FROM Students
WHERE Sno NOT IN (SELECT Sno FROM SC WHERE Cno = 'CS301');
-
什么是数据库的逻辑独立性?
-
简述即时更新技术下事务故障的恢复。
在使用即时更新技术时,如果事务故障发生,需要进行事务恢复以确保数据的完整性和一致性。在即时更新技术下,事务故障可能会导致数据的不一致,需要使用日志记录和回滚技术进行恢复。具体而言,当一个事务出现故障时,系统会将故障事务的操作和执行结果记录到日志中,然后回滚到事务开始之前的状态。通过回滚,可以撤销故障事务的影响,恢复到故障之前的状态。
在即时更新技术下,事务故障的恢复需要依赖于系统的日志记录和回滚技术。当事务发生故障时,系统会记录下故障事务的操作和执行结果,然后回滚到故障之前的状态。此外,还需要对其他相关事务进行检查和恢复,以确保数据的一致性和完整性。
- 假设学生选课系统包含如下关系:
Students (Sno, Sname, Gender, Enrollyear, Speciality)
Courses (Cno, Cname, Period, Credit)
SC (Sno,Cno,Grade)
说明下列关系代数的含义,并转换成等价的SQL语句:
**pSname,Cname (sSpeciality='SE'(Students⋈SC⋈**Courses))
- 简述关系的性质?
- 说明查询时用自然连接代替笛卡尔积的优点。
自然连接是一种关系数据库中的连接操作,它将两个表之间的共同列自动匹配,并将结果作为一个新表返回。相比于笛卡尔积,使用自然连接具有以下几个优点:
无需指定连接条件:自然连接会自动匹配两个表之间的共同列,无需手动指定连接条件。这样可以大大简化连接操作,减少用户的工作量。
返回结果更清晰:使用自然连接可以返回更加清晰、易于理解的结果。自然连接只返回两个表之间共同的列,从而减少了不必要的冗余信息,使结果更加易于理解。
减少运算量:自然连接可以减少连接操作中的冗余数据量,从而减少运算量,提高查询效率。这对于大型数据集和复杂查询操作尤为重要。
避免结果集膨胀:笛卡尔积连接操作往往会导致结果集的膨胀,从而使查询结果变得更加复杂和难以理解。而自然连接能够避免这种情况的发生,返回更加清晰和精简的结果集。
-
数据库提供的安全性手段有哪些?
-
在数据库中为什么要有并发机制?并发控制技术能保证事务的哪些特征?
-
数据库系统中故障的种类有哪些?
-
基本的封锁类型有几种?试述它们的含义?
-
下图中是基于检查点技术中5个事务的执行情况,当系统故障发生时,重启系统后恢复子系统对每个事务做什么样的操作?简要说明理由。

-
什么是日志文件?为什么要设立日志文件?
-
ER模型中的多对多联系转换成关系表时,其主码是怎样构成的**。**
-
说明弱实体集的主码是如何构成的。
-
不好的关系模式设计会导致哪些问题?
-
哪些情况会违反实体完整性规则?
-
在关系数据库设计时,又没有理由设计一个属于2NF,但不属于更高范式的关系模式?
-
SQL的基本特点是什么?
-
聚集索引和非聚集索引有什么异同?
-
简述数据库系统的三级模式结构以及两级映像的功能。
-
并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况?
-
什么是活锁?试述活锁产生的原因和解决方法。
-
联系的类型有哪些?
-
什么是死锁?请给出预防死锁的若干方法。
名词解释3*3
- 主码
- 数据库
- 可串行化调度
- 事务
- 外码
- 活锁
- 实体
- 弱实体集
- 派生属性
- 日志
- 视图
- BCNF
- 实体完整性规则
- 死锁
- 数据
- 超码
超码(Super Key)是数据库中的一个概念,它是一个或多个属性的集合,这些属性的组合可以使我们在一个实体集中唯一的标识一个实体。超码所包含的属性数必须等于实体集中的实体数,目每个实体都有一个唯一的超码。
- 参照完整性规则
- 复合属性
- 函数依赖
- 多值属性
- 两段锁协议
- 候选码
- 数据库管理系统
