数据库原理A卷加答案.docx
《数据库原理A卷加答案.docx》由会员分享,可在线阅读,更多相关《数据库原理A卷加答案.docx(13页珍藏版)》请在冰豆网上搜索。
数据库原理A卷加答案
班级:
姓名:
准考证号:
任课教师考场教室
――――――――――――――――――――――――――装订线――――――――――――――――――――――――――――――-
姓名
中国民航大学2007-2008学年第二学期
《数据库原理与应用》期末考试试卷
课程编号:
试卷类型:
A考试形式:
闭卷笔试考试日期:
2008-7-11
题号
一
二
三
四
五
六
总分
得分
注意事项:
1.答案写在试卷上;2.不准携带任何书籍、资料、纸张等。
一、简答题(共20分,每题5分)
1.简述事务的ACID特性
2.简述数据库系统的三级模式结构及其对数据独立性的支持。
3.简述关系模型的参照完整性约束
4.简述如何保证多个事务的并发执行是正确的
二、设数据库中有三个关系:
(共10分,每题2分)
职工表EMP(E#,ENAME,AGE,SEX,ECITY)
其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表WORKS(E#,C#,SALARY)
其属性分别表示职工工号、工作的公司编号和工资。
公司表COMP(C#,CNAME,CITY)
其属性分别表示公司编号、公司名称和公司所在城市。
试用关系代数表达式写出下列操作:
1)检索超过30岁的男职工的工号和姓名。
2)假设每个职工只能在一个公司工作,检索工资超过2000元的男性职工工号和姓名。
3)假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号。
4)检索在“LIANHUA”公司工作、工资超过2000元的男性职工的工号和姓名。
5)检索‘A’城市的所有公司编号和公司名称
三、设有四个关系模式(共30分)
仓库(仓库号,城市,面积)
职工(仓库号,职工号,工资)
供应商(供应商号,供应商名,地址)
订购单(职工号,供应商号,订购单号,订购日期)
用SQL完成以下操作:
1.检索所有职工的仓库号及工资。
(2分)
2.检索在上海的仓库的面积。
(2分)
3.插入一条供应商号=‘S7’,地址在北京的供应商信息。
(2分)
4.将订购单号为D2的订购日期修正为当前日期。
(2分)
5.删除职工号为空的订购单信息。
(2分)
6.检索和职工号为E1或E4有联系的供应商的名称。
(2分)
7.检索出向供应商号S3发过订购单的职工的职工号和仓库号。
(2分)
8.检索出目前与S3供应商没有联系的职工信息。
(3分)
9.检索出与工资在1220元以下的职工没有联系的供应商的名称。
(3分)
10检索出目前和华通电子公司有业务联系的每个职工的工资。
(2分)
11检索出向S4供应商发出订购单的仓库所在的城市。
(2分)
12检索出有最大面积的仓库信息。
(2分)
13检索出向S4供应商发出订购单的仓库的平均面积。
(2分)
14检索出每个仓库中工资多于1220元的职工个数。
(2分)
四、有基于图书馆数据库的3张表,完成以下操作。
(共15分,每题5分)
图书(书号,书名,作者,出版社,单价,图书类别)
读者(学号,姓名,性别,年龄,所在系)
借阅(学号,书号,借出日期,归还日期)
1、视图
创建视图V1,查询学生的借阅历史清单(图书已经归还),包括以下内容:
学号,姓名,书名,出版社,借出日期,归还日期
2、存储过程
创建存储过程P1,按出版社和书名关键字查询图书信息,输入参数为出版社和书名(书名支持模糊查询),输出内容包括:
书号,书名,作者,出版社,单价。
3、触发器
编写触发器T1,在学生归还图书时(更新归还日期字段),检查图书是否已经超期(假设允许借阅期限为30天),如果已经超期,则打印“图书已经超期”,并rollback还书操作。
五、设有如图所示的关系R(共10分)
职工号
职工名
年龄
性别
单位号
单位名
E1
ZHAO
20
F
D3
CCC
E2
QIAN
25
M
D1
AAA
E3
SEN
38
M
D3
CCC
E4
SEN
25
F
D3
CCC
(1)请指出关系R中存在的函数依赖和R的候选码(4分)
(2)R属于3NF吗?
为什么?
若不是,它属于第几范式?
并如何规范化为3NF?
(6分)
六、已知新华书店销售订单的格式如下所示。
(共15分)
订单编号:
1379465
客户编号:
NC200574
日期:
2005-09-08
客户名称:
光华学校
客户电话:
65798641
地址:
光华路17号
图书编号
书名
定价
数量
金额
英语
23.00
100
2300.00
哲学
25.00
100
2500.00
总价
4800.00
备注
书店的业务描述如下:
每一个订单有唯一的订单编号;
一个订单可以订购多种图书,且每一种图书可以在多个订单中出现;
一个订单对应一个客户,且一个客户可以有多个订单;
每一个客户有惟一的客户编号;
每一种图书有惟一的图书编号。
(1)据上述语义设计E-R模型,要求标注联系类型,可省略属性。
(5分)
(2)将E-R模型转换成关系数据模型,并指出每一个关系的主码和外码(如果存在)。
(10分)
中国民航大学2007-2008学年第二学期
《数据库原理与应用》期末考试A卷答案
一、简答题(共20分,每题5分)
1.简述事务的ACID特性
答案要点:
●原子性(Atomicity):
指事务是数据库的逻辑工作单位,事务中的操作要么都做,要么都不做。
●一致性(Consistency):
指事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
●隔离性(Isolation):
指数据库中一个事务的执行不能被其它事务干扰。
●持久性(Durability):
也称为永久性指事务一旦提交,则其对数据库中数据的改变就是永久的。
2.简述数据库系统的三级模式结构及其对数据独立性的支持。
答案要点:
●三级模式结构:
内模式、模式和外模式。
●两级映像:
外模式/模式映像,模式/内模式映像。
●两级独立性:
三级模式结构和两级映像支持应用程序与数据之间的物理独立性和逻辑独立性。
3.简述关系模型的参照完整性约束
回答要点:
●外码的概念
●参照完整性规则就是定义外码与主码之间的引用规则。
●对于外码,一般应符合如下要求:
或者值为空;
或者等于其所应用的关系中的某个元组的主码值。
4.简述如何保证多个事务的并发执行是正确的
回答要点:
●并发事务正确性的准则:
可串行性
●可串行性的保证:
两阶段锁协议
●两段锁协议:
将每个事务分成两个时期:
申请封锁期和释放封锁期,申请期申请要进行的封锁,释放期释放所占有的封锁。
在申请期不允许释放任何锁,在释放期不允许申请任何锁。
二、设数据库中有三个关系:
(共10分,每题2分)
职工表EMP(E#,ENAME,AGE,SEX,ECITY)
其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表WORKS(E#,C#,SALARY)
其属性分别表示职工工号、工作的公司编号和工资。
公司表COMP(C#,CNAME,CITY)
其属性分别表示公司编号、公司名称和公司所在城市。
试用关系代数表达式写出下列操作:
6)检索超过30岁的男职工的工号和姓名。
∏E#,ENAME(σAGE>30andSEX=’M’(EMP))
7)假设每个职工只能在一个公司工作,检索工资超过2000元的男性职工工号和姓名。
∏E#,ENAME(σSALARY>2000andSEX=’M’(EMP
WORKS))
8)假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号。
∏E#,C#(WORKS)÷∏C#(σC#=’C4’orC#=’C8’(COMP))
9)检索在“LIANHUA”公司工作、工资超过2000元的男性职工的工号和姓名。
∏E#,ENAME(∏C#(σCNAME="LIANHUA"(COMP))
σSALARY>2000(WORKS)
σSEX=’M’(EMP))
10)检索‘A’城市的所有公司编号和公司名称
∏C#,CNAME(σCITY=’A’(COMP))
三、设有四个关系模式(共30分)
仓库(仓库号,城市,面积)
职工(仓库号,职工号,工资)
供应商(供应商号,供应商名,地址)
订购单(职工号,供应商号,订购单号,订购日期)
用SQL完成以下操作:
3.检索所有职工的仓库号及工资。
(2分)
Select仓库号,工资from职工
4.检索在上海的仓库的面积。
(2分)
select面积from仓库where城市=’上海’
3.插入一条供应商号=‘S7’,地址在北京的供应商信息。
(2分)
Insertinto供应商values(‘S7’,NULL,‘北京’)
4.将订购单号为D2的订购日期修正为当前日期。
(2分)
Update订购单set订购日期=getdate()where订购单号=’D2’
5.删除职工号为空的订购单信息。
(2分)
Deletefrom订购单where职工号isnull
6.检索和职工号为E1或E4有联系的供应商的名称。
(2分)
select供应商名from供应商,订购单where供应商.供应商号=订购单.供应商号and(职工号=’E1’or职工号=’E4’)
7.检索出向供应商号S3发过订购单的职工的职工号和仓库号。
(2分)
select职工号,仓库号from职工,订购单where职工.职工号=订购单.职工号and供应商号=’s3’
8.检索出目前与S3供应商没有联系的职工信息。
(3分)
select*from职工where职工号notin(select职工号from订购单where供应商号=’S3’)
9.检索出与工资在1220元以下的职工没有联系的供应商的名称。
(3分)
select供应商名from供应商where供应商号notin(select供应商号from订购单,职工where订购单.职工号=职工.职工号and工资<1220)
10检索出目前和华通电子公司有业务联系的每个职工的工资。
(2分)
select工资from职工where职工号in(select职工号from订购单join供应商on订购单.供应商号=供应商.供应商号where供应商名=‘华通电子公司’)
11检索出向S4供应商发出订购单的仓库所在的城市。
(2分)
select城市from仓库,职工,订购单where仓库.仓库号=职工.仓库号and职工.职工号=订购单.职工号and供应商号=’S4’
12检索出有最大面积的仓库信息。
(2分)
select仓库号,城市,面积from仓库where面积=(selectmax(面积)from仓库)
13检索出向S4供应商发出订购单的仓库的平均面积。
(2分)
selectavg(面积)from仓库,职工,订购单where仓库.仓库号=职工.仓库号and职工.职工号=订购单.职工号and供应商号=’S4’
14检索出每个仓库中工资多于1220元的职工个数。
(2分)
select仓库号,count(*)from仓库,职工where仓库.仓库号=职工.仓库号and工资>1220groupby仓库号
四、有基于图书馆数据库的3张表,完成以下操作。
(共15分,每题5分)
图书(书号,书名,作者,出版社,单价,图书类别)
读者(学号,姓名,性别,年龄,所在系)
借阅(学号,书号,借出日期,归还日期)
4、视图
创建视图V1,查询学生的借阅历史清单(图书已经归还),包括以下内容:
学号,姓名,书名,出版社,借出日期,归还日期
CreateviewV1as
Select读者.学号,书名,出版社,借出日期,归还日期
From读者join借阅on读者.学号=借阅.学号
Join图书on图书.书号=借阅.书号
Where归还日期isnotnull
5、存储过程
创建存储过程P1,按出版社和书名关键字查询图书信息,输入参数为出版社和书名(书名支持模糊查询),输出内容包括:
书号,书名,作者,出版社,单价。
Createviewp1
@出版社varchar(20),@书名varchar(20)
as
Select书号,书名,作者,出版社,单价
From图书where出版社=@出版社and书名like‘%‘+@书名+’%’
6、触发器
编写触发器T1,在学生归还图书时(更新归还日期字段),检查图书是否已经超期(假设允许借阅期限为30天),如果已经超期,则打印“图书已经超期”,并rollback还书操作。
CreatetriggerT1on借阅forupdate
As
Ifupdate(归还日期)
Ifexists(select*frominsertedwheredatediff(day,借出日期,归还日期)>30)
Begin
Print‘图书已经超期’
rollback
end
五、设有如图所示的关系R(共10分)
职工号
职工名
年龄
性别
单位号
单位名
E1
ZHAO
20
F
D3
CCC
E2
QIAN
25
M
D1
AAA
E3
SEN
38
M
D3
CCC
E4
SEN
25
F
D3
CCC
(1)请指出关系R中存在的函数依赖和R的候选码(4分)
函数依赖:
(工程号,材料号)→(数量,价格)工程号→(开工日期,完工日期)(2分)
候选码:
(工程号,材料号)(2分)
(2)R属于3NF吗?
为什么?
若不是,它属于第几范式?
并如何规范化为3NF?
(6分)
R不是2nf,存在非主属性开工日期,完工日期对码(工程号,材料号)的部分依赖。
(2分)
R分解为2nf:
R1(工程号,材料号,数量,价格);R2(工程号,开工日期,完工日期)(4分)
六、已知新华书店销售订单的格式如下所示。
(共15分)
订单编号:
1379465
客户编号:
NC200574
日期:
2005-09-08
客户名称:
光华学校
客户电话:
65798641
地址:
光华路17号
图书编号
书名
定价
数量
金额
英语
23.00
100
2300.00
哲学
25.00
100
2500.00
总价
4800.00
备注
书店的业务描述如下:
每一个订单有唯一的订单编号;
一个订单可以订购多种图书,且每一种图书可以在多个订单中出现;
一个订单对应一个客户,且一个客户可以有多个订单;
每一个客户有惟一的客户编号;
每一种图书有惟一的图书编号。
(1)据上述语义设计E-R模型,要求标注联系类型,可省略属性。
(5分)
(5分)
(2)将E-R模型转换成关系数据模型,并指出每一个关系的主码和外码(如果存在)。
(10分)
订单(订单编号,日期,总价,备注,……)主码:
订单编号(2分)
客户(客户编号,名称,电话,地址,订单编号…..)主码:
客户编号;外码:
订单编号(3分)
图书(图书编号,书名,定价,….)主码:
图书编号(2分)
隶属(订单号,图书编号,数量)主码:
(订单号,图书编号)外码:
订单号,图书编号(3分)