admin 管理员组

文章数量: 1086019


2024年4月14日发(作者:netstat命令没有找到)

2022 年数据库系统工程师下午题

问答题(共 5 题,共 80 分) 1/5

试题一(20 分):

阅读下列说明,回答问题 1 至问题 3 将解答填入答题纸的对应栏内。【说

明】

某市为了规范疫苗接种工作,提升效率,并为抗击疫情提供疫苗接种数据支

撑,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设

计。

【需求描述】

(1)记录疫苗供应商的信息,包括供应商名称、地址和一个电话。

(2)记录接种医院的信息,包括医院名称、地址和一个电话。

(3)记录被接种者个人信息,包括姓名、身份证号和一个电话。

(4)记录接种者的疫苗接种信息,包括接种医院信息、被接种者信息、疫苗

供应商名称和接种日期。为了提高免疫力,接种者可能需要进行多次疫苗接

种(每天最多接种一次),但每次都可以在全市任意一家医院进行疫苗接种。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图 1-1 所示。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

供应商(供应商名称,地址,电话)医院(医院名称,地址,电话)

供货(供应商名称,(a),供货内容)被接种者(姓名,身份证号,电话)

接种(被接种者身份证号,(b),医院名称,供应商名称)

【问题 1】(4 分)

根据问题描述,补充图 1-1 的实体联系图(不增加新的实体)。

【问题 2】(4 分)

补充逻辑结构设计结果中的(a)、(b)两处空缺,并标注主键和外键完整性约

束。

【问题 3】(7 分)

若医院还兼有核酸检测的业务,检测者可能需要进行多次核酸检测(每天最

多检测次),但每次都可以在全市任意一家医院进行检测。

请在图 1-1 中增加"被检测者"实体和相应的属性、医院和被检测者之间的"

检测"联系和必要的属性,并给出新增加的关系模式。

"被检测者"实体包括姓名、身份证号、住址和一个电话。"检测"联系需要包

括检测日期和检测结果等。

试题二(共 15 分)

阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

【说明】

某卡丁车场地为方便车手线上查询自己的圈速成绩,设计了相应的关系模

型。模型中有三个表:

冲线记录表(序列号,日期,冲线时刻,圈速,车号,组别,手机号,车手

姓名); 赛车表(车号,组别,车型);

车手表(车手姓名,手机号,年龄,性别)。

其中序列号唯一确定一条冲线记录,车型和组别可由车号确定,车手手机号

唯一,车手姓名可重复。

【问题 1】(3 分)

冲线记录表中是否含有数据冗余?如果存在冗余,请列出冗余属性。

【问题 2】(6 分)

请分别给出冲线记录表、赛车表和车手表的主码和外码。

【问题 3】(6 分)

题干描述的冲线记录表是否满足3NF?如果不满足,请给出导致不满足3NF

的函数依赖关系,并用 50字以内的文字简要说明解决方案。

试题三(共 15 分)

阅读下列说明,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。

【说明】

某工程项目管理系统的部分数据库关系模式如下:

项目:PROJECT(Ino,Jname,City,Date),各属性分别表示项目代码、项目

名称、项目所在城市和项目开始日期;

零件:PART(Pno,Pname,Color,Sno,Stock)各属性分别表示零件代码、零

件名称、零件颜色、零件所在仓库代码及库存量;

供应情况:PJC(Pno,Jno,Qty),各属性分别表示零件代码、项目代码、使

用量; 仓库:STORE(Sno,Sname,Address),各属性分别表示仓库代码、仓

库名称、仓库地址。有关上述关系

模式的说明如下:

(1)下划线标出的属性是表的主键。

(2)零件表的属性 Sno 参照了仓库表的主码。一种零件只存放在一个仓库,

库存量最低为 0。

(3)供应情况表的属性 Pno 和 Jno 分别参照了零件表和项目表的主码。

根据以上描述,回答下列问题,将 SQL 语句的空缺部分补充完整。

【问题 1】(4 分)

请将下面创建零件表 PART 的 SQL 语句补充完整,要求定义实体完整性约

束、参照完整性约束,以及其他完整性约束。

CREATE(a)PART(

Pno CHAR(10)(b)

Pname CHAR(20),

Color CHAR(4),

Sno CHAR(4)REFERENCES (c)(Sno)

Stock INT(d));

【问题 2】(3 分)

创建视图 PARTUSED,给出在项目中已使用零件的代码和使用量。此视图的

创建语句如下,请补全。

CREATE VIEW PARTUSED AS SELECT Pno,(e)AS Usage FROM PJ(f)BY(g);

【问题 3】(4 分)

在视图 PARTUSED 的基础上,查询所有零件的信息要求输出每种零件的零件

代码、零件名、零件颜色和零件总量(使用量与库存量之和),查询结果按照

零件总量降序排列。此功能由下面的 SQL 语句实现,请补全。 SELECT

Pno,Pname, Color,(h) AS Total FROM PARTPART USED

WHERE =PART (i)

SELECT Pno,PnameColorStock AS Total FROM PART WHERE Pno(i)

(SELECT DISTINCT Pno FROM PJ) ORDER BY Total(k)

【问题 4】(4 分) 由于某种原因,要拆除代码为'A006 的仓库,该仓库中

的零件转入'A002 仓库存放。据此更新数据库的功能由下面的 SQL 语句实

现,请补全。

UPDATE(1)SET(m)WHERE Sno=A006;(n)FROM(o)WHERE Sno=A006

试题四(共 15 分)

阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。

【说明】

某银行账务系统的部分简化后的关系模式如下:

账户表:accounts(a noa namea status a balop en branch noopen branch

namephone no);属性含义分别为:账户编码、账户名称、账户状态(1-正常、

2-冻结、3-挂失)、账户余额、开户网点编码、开户网点名称、账

户移动电话。

账户交易明细表:trade details(t dateoptr noserial no,t brancha not

typet amttresult);属性含义分别为:交易日期、操作员编码、流水号、交

易网点编码、账户编码、交易类型(1-存款、2-取款)、交易金额、交易结

果(1-成功、2-失败、3-异常、4-已取消)。

网点当日余额汇总表:branch sum(b nob datebna bal);属性含义分

别为:网点编码、汇总日期、网点名称、网点开户账户的总余额。

系统提供常规的账户存取款交易,并提供账户余额变更通知服务。该账务系

统是 7*24h 不间断的提供服务;网点当日余额汇总操作一般在当日晚上 12

点左右,运维人员在执行日终处理操作中完成。

【问题 1】(6 分)

下面是系统日终时生成网点当日余额汇总数据的存储过程程序,请补全空缺

处的代码。

CREATE PROCEDURE BranchBalanceSum(INs date char(8)) DECLARE

all balancenumber(142) V bran no varchar(10) v bran name

varchar(30);(a)c sum bal is SELECT open branch no,open branch name

sum(a_bal) FROM accounts GROUP BY open branch noopen branch name;

BEGIN

OPEN c sum bal; LOOP

(b)c sum bal INTO v branno,(c); IFcsum bal%%NOTFOUNDTHEN//未找到记

录(d); END IF;

INSERTINTO branch sum

VALUES(v bran nos datev bran nameall balanc e); END LOOP;

CLOSE_(e); COMMIT;

EXCEPTION WHEN OTHERS THEN (f) END;

【问题 2】(5 分)

当执行存取款交易导致用户账户余额发生变更时,账务系统需要给用户发送

余额变更短信通知。通知

内容为"某时间您的账户执行了某交易,交易金额为 XX 元,交易后账户余

额为 XXX 元"。默认系统先

更新账户表,后更新账户交易明细表。

下面是余额变更通知功能对应的程序,请补全空缺处的代码。

CREATE TRIGGER BalanceNotice(g)INSERTon(h)(i) WHEN(i)=1 DECLARE

vphonevarchar(30); vtype varchar(30) vbal number(142) vmsg

varchar(300); BEGIN

SELECT phone noa bal INTO v_phonev bal FROM accounts WHERE a

no=(k);

IF NEW.t type=1THENvtype:=存款;ENDIF; IFNEW.t type=2 THENvtype:=取

款;ENDIF; vmsg:=NEW.t date',您的账户 NEWa no'上执行了'vtype 交

易,交易金额为"to string(NEW t amt)元,交易

后账户余额为'to_string(v bal)元';

SendMsg(v_phone,v_msg);//发送短信 END;

【问题 3】(4 分)

假设日终某网点当日余额汇总操作和同一网点某账户取款交易同一时间发

生,对应事务的部分调度序

列如表 4-1 所示。

(1)在事务提交读隔离级别下,该网点的汇总和取款事务是否成功结束?

(2)如果该数据库提供了多版本并发控制协议,两个事务是否成功结束?

试题五(共 15 分)

阅读下列说明,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。

【说明】

某数据库系统采用数据转储方式对数据和日志文件进行离线备份,用检查点

机制进行恢复。假设其部分日志文件如表 5-1 所示。日志记录内容

中:CHECKPOINT 表示检查点,表示事务 Ti 开始执行,

MMIT>表示事务 Ti 提交,表示事务 Ti 将数据项 D 的值

由 V1 改为 V2,CRASH 表明系统发生断电故障。假设各数据项的初始值

为:I=3J=6,K=11。


本文标签: 账户 接种 网点