数据库期中
一、选择题(2分/题,共20分)
1.DBMS的含义是 C 。
A.数据库 B.数据库系统 C.数据库管理系统 D.数据库管理员
2.单个用户使用的数据视图的描述称为 A 。
A.外模式 B.概念模式 C.内模式 D.存储模式
3.有一个关系:学生(学号、姓名、系别),规定学号的值域是8个数字组成的字符串,这一规则属于 C 。(D是错误的)
A.实体完整性约束 B.参照完整性约束
C.用户自定义完整性约束 D.关键字完整性约束
4.存在一个等待事务集{T0,T1,…,Tn},其中T0正等待被T1锁住的数据项,T1正等待被T2锁住的数据项,Tn-1正等待被Tn锁住的数据项,Tn正等待被T0锁住的数据项,则系统的工作状态处于 D 。
A.并发处理 B.封锁 C.循环 D.死锁
5.数据库管理系统中数据操纵语言DML所实现的操作一般包括 A 。
A.查询、插入、修改、删除 B.排序、授权、删除
C.建立、插入、修改、删除 D.建立、授权、修改
6.在数据库技术中,E-R模型是一种 A 。
A.概念数据模型 B.结构数据模型 C.物理数据模型 D.逻辑数据模型
7.数据库系统依靠 B 支持了数据独立性。(C是错误的)
A.具有封装机制 B.模式分级、各级之间有映像机制
C.定义完整性约束条件 D.DDL语言和DML语言互相独立
8.SQL语言具有 C 等功能。
A.数据定义、数据操纵和关系规范化 B.数据定义、数据控制和关系规范化
C.数据定义、数据操纵和数据控制 D.数据操纵、数据控制和关系规范化
9.如果一个关系R中的所有非主属性都完全函数依赖于每个候选关键字,则称关系R属于 B 。
A.第一范式 B.第二范式 C.第三范式 D.第四范式
10.面向对象的数据库是数据库技术与 D 相结合的产物。
A.计算机网络技术 B.图形图像技术 C.计算机控制技术 D.面向对象技术
二、简答题(4分/题,共20分)
1.数据库管理系统的主要功能有哪些?
答:①数据库定义功能;②数据库操纵功能;③数据库查询功能;④数据库控制功能;⑤数据库通信功能。
详细版:
1. 数据库管理系统的主要功能有:
(1) 数据库定义功能:提供数据定义语言,定义数据库的结构和存储结构,定义数据库中数据之间的联系,定义数据的完整性约束条件和保证完整性的触发机制等。
(2) 数据库操纵功能:提供数据操纵语言,可完成对数据库中数据的操纵,可装入、删除、修改数据,可重新组织数据库的存储结构,可完成数据库的备份和恢复等操作。
(3)数据库查询功能:可以各种方式提供灵活的查询功能,使用户可以方便得使用数据库中数据。
(4)数据库控制功能:可完成对数据库的安全性控制、完整性控制、多用户环境下的并发控制等方面的控制。
(5)数据库通讯功能:在分布式数据库或提供网络操作功能的数据库中还必须提供数据库的通信功能。
2.什么是数据的完整性?它与数据库的安全性有何区别?
答:保证数据正确的特性在数据库中称之为数据完整性。 数据库安全性强调的是数据库中的数据不被非法使用和恶意破坏,防范非法用户的有意破坏, 而完整性防范的是合法用户的无意破坏。
3.简要说明数据库设计的主要步骤?
答:①概念模型设计;
②逻辑数据库设计;
③规范化理论的应用;
④物理数据库设计。
数据库设计分6个阶段:需求分析 ,概念结构设计 ,逻辑结构设计 ,物理结构设计 ,数据库实施 ,数据库运行和维护 。
4.分布式数据库的基本特点有哪些?
答:①数据的物理分布性;
②数据的逻辑整体性;
③数据的分布透明性;
④场地自治和协调工作;
⑤数据冗余。
5.什么是事务?请解释事务的四个性质。
答:事务是构成单一逻辑工作单元的操作集合。
事务是构成单一逻辑工作单元的操作集合。 事务的ACID性质指事务具有原子性(即不可分割) 、一致性(要能保证数据库的一致性) 、隔离性(事务的原子性和一致性不受其他事务的影响) 和持久性(事务对数据库所施加的所有更新都是永久的)。
三、画出ER图,并将其转化为相对应的关系模型(5分/题,共10分)
关系模型:
1. 投资者 ( 姓名, 股票账户, 身份证号), (1分)
股票( 股票代码, 股票名称),(1分)
投资(股票代码,股票账户,投资数量)(1分)
2. 车间 (车间号, 车间名称, 地点), (1.5分)
职工(职工姓名, 职工号, 车间号,工作年限) (1.5分)
四、用SQL和关系代数完成操作(2分/题,共20分)
1.检索出目前与S6供应商没有联系的职工信息。
2.检索出和职工E6、E8都有联系的西安的供应商信息。
3.检索出仓库的个数。
4.检索出向S6供应商发出订购单的那些仓库的平均面积。
5.检索出有最大面积的仓库信息。
6.插入一个新的供应商元组(S9,智通公司,沈阳)。
7.删除目前没有任何订购单的供应商。
8.给北京的所有仓库增加123平米的面积。
9.用关系代数完成:检索目前与职工E6有业务联系的供应商的名称。
10.用关系代数完成:检索和北京的所有供应商都有业务联系的职工的工资。
答:
1.SELECT * FROM职工 WHERE 职工号 NOT IN
(SELECT 职工号FROM 订购单 WHERE 供应商号=’S6’)
2.SELECT * FROM 供应商 WHERE 地址=’西安’ AND 供应商号 IN
(SELECT 供应商号 FROM 订购单 WHERE 职工号=’E6’)
AND 供应商号 IN
(SELECT 供应商号 FROM 订购单 WHERE 职工号=’E8’)
3.SELECT COUNT(*) FROM 仓库
4.SELECT AVG(面积) FROM 仓库 WHERE 仓库号 IN
(SELECT 仓库号 FROM 职工 WHERE 职工号 IN
(SELECT 职工号 FROM 订购单 WHERE 供应商号=’S6’))
5.SELECT * FROM 仓库 WHERE 面积=(SELECT MAX(面积) FROM 仓库)
6.INSERT INTO 供应商 VALUES(‘S9’,’智通公司’,’沈阳’)
7.DELETE FROM 供应商 WHERE 供应商号 NOT IN
(SELECT 供应商号 FROM 订购单)
8.UPDATE 仓库 SET 面积=面积+123 WHERE 城市=’北京’
9.π供应商名(σ职工号="E6"(订购单) * 供应商)
10.π职工号,工资(职工 * (订购单÷π供应商号(σ地址="北京"(供应商))))
五、模式分解(10分)
找出关系模式student(学号,姓名,出生日期,系名,系主任)的候选关键字、非主属性和所有的函数依赖,并将其分解为几个合理的关系模式。
候选关键字: (仓库号,商品号)。(1分)非主属性: 城市,商品名,库存。(2分)
函数依赖: 仓库号à城市,商品号à商品名, 学号à系名,(仓库号,商品号)à库存。(3分)
分解为S1(仓库号,城市)(1分),S2(商品号,商品名) (1分),S3(仓库号,商品号,库存) (2分)
六、编写并运行存储过程(5分)
在第四题的数据库中建立一个存储过程,查询工资大于某个值且在某个城市仓库上班的职工信息;并以工资大于2000元且在北京仓库上班的职工为例,执行该存储过程。
CREATE PROCEDURE get_eno(1分)
(@salary int) (1分)
AS
SELECT * FROM 职工 WHERE 工资>@salary(2分)
EXECUTE get_eno 2000(1分)
七、编写并运行触发器(5分)
在第四题的数据库中建立一个触发器,当插入一个订购单记录时,检查所参照的职工元组是否存在,若不存在,则撤销所做的插入操作。
CREATE TRIGGER ord_ins_trigger(1分)
ON 订购单 FOR INSERT(1分)
AS
IF not exists(select * from 职工 where 职工号=(select 职工号 from INSERTED)) (1分)
BEGIN
RAISERROR ('非法职工号或非法供应商号', 1, 1) (1分)
ROLLBACK TRANSACTION(1分)
END
八、证明题(10分)
设有关系模式R(A,B,C,D),其上函数依赖集为:{A→C,D→C,BD→A },试证明ρ={AB,ACD,ABD}相对于F是无损连接。
{A→C,D→C,BD→A}
AF+={AC} (2分),D F+={DC} (2分), (BD) F+={ABCD} (2分)
因为(BD) F+={ABCD}=U, (2分)
所以R的候选键是(BD)(2分)