2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)

上传人:住在山****ck 文档编号:98486696 上传时间:2022-05-29 格式:DOCX 页数:15 大小:21.27KB
收藏 版权申诉 举报 下载
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)_第1页
第1页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)_第2页
第2页 / 共15页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)_第3页
第3页 / 共15页
资源描述:

《2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)》由会员分享,可在线阅读,更多相关《2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷50(附答案解析)(15页珍藏版)》请在装配图网上搜索。

1、2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷(附答案解析)1. 问答题:阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某图书馆的图书借还业务使用如下关系模式:书目(ISBN,书名,出版社,在库数量)图书(书号,ISBN,当前位置)其中在库数量为当前书目可借出的图书的数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同的图书,每一本图书只能对应一条书目。借还书业务的基本流程如下描述:(1)读者根据书名查询书目,当前书目的在库数量大于0时可借阅。(2)读者借出一本图书时,进行出库操作:根据该图书的书号将该图书的当前位置

2、字段值改为空值,并根据其ISBN号将对应书目的在库数量减1。(3)读者归还一本图书时,进行入库操作:系统根据当前书架的空余位置自动生成该本书的存放位置,并根据该图书的书号将其当前位置字段值改为生成的存放位置,然后将对应书目的在库数量加1。(4)借还书时,逐一扫描每本图书的书号并进行出、入库操作。【问题1】引入两个伪指令:a=R(X)表示将在库数量X值读入到变量a中;W(a,X)表示将变量a的值写入到在库数量X中。入库操作用下标i表示,出库操作用下标o表示。将出库和入库操作分别定义为两个事务,针对并发序列:ao=Ro(X),aI=RI(X),ao=ao-1,Wo(ao,X),aI=aI+1,WI

3、(aI,X)。其中变量aI和ao分别代表入库事务和出库事务中的局部变量。(1)假设当前X的值为3,则执行完上述并发序列的伪指令后,X的值是多少?简述产生这一错误的原因(100字以内)。(2)为了解决上述问题,引入独占锁指令XLock(X)对数据X进行加锁,解锁指令Unlock(X)两对数据X进行解锁。入库操作用下标I表示,如XLockI(X);出库操作用下标o表示,如Unlocko(X)。请根据上述的并发序列,给出一种可能的执行序列,使其满足2PL协议。【问题2】 下面是用SQL实现的出入库业务程序的一部分,请补全空缺处的代码。CREATE PROCEDURE IOstack(IN BookN

4、o VARCHAR(20), IN Amount INT) 输入合法性验证 if not (Amount=1 or Amount=-1) return-1; 修改图书表当前位置 UPDATE图书SET当前位置=GetPos(BookN,Amount)系统生成 WHERE _(a)_;if error then ROLLBACK; return -2; 修改在库数量UPDATE 书目 SET 在库数量=_(b)_ WHERE EXISTS (SELECT * FROM 图书WHERE 书号=BookNo AND _(c)_ ); if error then ( ROLLBACK; return-

5、3; _(d)_;return 0;答案: 本题解析:本题考查事务并发控制知识的应用和事务程序的编写技能。(1)根据问题中给出的并发序列:ao=Ro(X),aI=RI(X),ao=ao-1,Wo(ao,X),aI=aI+1,WI(aI,X)及指令的说明,该序列为一个入库事务和一个出库事务的余发调度。X的当前值为3,执行完ao=Ro(X),aI=RI(X)后,变量ao和aI的值均为3;执行完ao=ao-1,Wo(ao,X)后,X的值被改为2;执行完aI=aI+1,WI(aI,X)后,X的值被改为4,即并发序列执行完后X的值。这两个事务分别是同一书目下两本书的出库和入库操作。根据事务并发正确性的判

6、定,其正确的必要条件是与某一次串行的结果相同。在X当前值为3的情况下,出库一本书和入库一本书,两个事务两种串行方式下,其结果都为3。因而题目给出的并发序列的执行结果是错误的。错误原因在于出库事务的指令Wo(ao,X)写入X的值后,被入库事务的指令加WI(aI,X)所覆盖,即丢失修改错误,出库事务的修改丢失了。(2)根据2PL协议的规定,在修改数据前需对该数据加独占锁,前提是在该数据上没有其他事务所加的锁,否则只能等待其他事务释放锁后再加锁。题目要求只加独占锁,因此出库事务的第一条语句ao=Ro(X)前应有加锁语句XLocko(X);入库事务第一条指令aI=RI(X)之前应有加锁语句XLockI

7、(X),但此时X上己有出库事务上的锁,故入库事务加锁被拒绝,只能等待,到出库事务释放锁之后才能加上锁,入库事务的后续指令才能得以执行。【问题2】本问题将出入库两项操作使用同一程序完成,通过形参Amount的值(1表示入库,-1表示出库)进行区别。空缺U)处应根据形参BookNo值确定要修改的图书记录。空缺(b)处为新的在库数量值,将形参Amount的值累加到在库数量上即可。空缺(c)处要通过当前图书记录确定要修改的书目记录。空缺(d)处应为提交指令。2. 问答题:某医院为了更好的为患者服务、提高医院管理水平,拟开发满足自身特点的信息系统。其部分需求及设计如下。【需求描述】(1)患者到医院就诊,

8、需提供本人医保卡或身份证,系统根据医保卡或身份证从外部医保信息库获取患者的其他详细信息,包括医保卡号、身份证号、姓名、性别、民族、出生日期等信息。(2)医生信息包括医生编号、姓名、性别、出生日期、职称等信息。(3)通过患者自述、化验结果分析等信息,医生对患者的病情进行诊断,开具处方,并填写病例。病例同时包含诊断和处方信息,包括编号、患者姓名、病情描述、诊断结论、主治医生、药品名称、药品数量、服用剂量等,处方中一般会有多种药品。(4)病人凭医生开具的处方可在医院购买药品。医院记录药品的条码、名称、价格、生产厂商等信息。【逻辑结构设计】根据上述需求,设计出如下关系模式医生(编号,姓名,性别,出生日

9、期,职称)患者(身份证号,医保卡号,姓名,性别,民族,出生日期)药品(条码,名称,价格,生产厂商)病例(编号,药品条码,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期,服用剂量,药品数量,购买日期)【问题1】对关系“患者”,请回答以下问题:(1)给出函数依赖集。(2)给出所有候选码。(3)判定属于第几范式,并说明理由。【问题2】对关系“病例”,存在如下的数据依赖:FD编号(患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期),(编号,药品条码)(服用剂量,药品数量,购买日期),请回答以下问题。(1)该关系模式存在哪些问题?(2)该关系模式是否属于 4NF?请给给出理由。(3)如

10、果“病例”不是 4NF,请分解,并指出分解后的关系模式所属范式。分解后的关系名依次为:病例 1,病例 2,.。【问题3】针对【问题 2】的规范化要求,如果设计者分解出的多个关系模式其中之一如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期)如果医院要求统计每名医生(编号和姓名)每天接诊的患者所购买的各个药品的条码和数量。基于上述设计,实现该统计共需哪几个关系?为提高该统计效率,允许对范式条件放宽要求,请修改“购药”关系模式以优化该统计。答案: 本题解析:【问题1】1)FD=身份证号-(医保卡号,姓名,性别,民族,出生日期),医保卡号-(身份证号,姓名,性别,民族,出生日期)2)候选码

11、:身份证号 或 医保卡号3)患者关系属于4NF,因为在FD不存在非主属性对码的部分和传递依赖,也不存在主属性对不包含它的码的部分和传递函数依赖,同时也不存在非平凡且非函数依赖的多值依赖。【问题2】1)由于将一对多的两个关系合并成为一个关系,在FD中存在非主属性对码的部分函数依赖,因此关系存在插入、删除、更新异常和数据冗余。2)不属于4NF,而是属于2NF,存在非主属性(患者身份证号等)对码(编号,药品条码)的部分函数依赖,同时也存在编号对条形码等属性的非平凡多值函数依赖。3)病例 1(编号,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期)病例 2(编号,药品条码,服用剂量,药品数量,

12、购买日期)【问题3】需要有的关系为:病例、医生、购药关系。如果仅为了提高该查询的效率,即尽量减少连接运算,可以考虑在修改购药关系如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期,医生编号,医生姓名)3. 多选题:事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于(请作答此空);解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行( )操作。A.事务故障B.系统故障C.介质故障D.病毒答案:A 本题解析:常见的数据库故障类型分为事务故障、系统故障和介质故障。其中,事务故障是指事务在运行至正常中止点前被

13、中止,此时恢复子系统应利用日志文件撤销(UNDO)此事务对数据库已做的修改。依题意,事务的等待图中出现环,使得环中的所有事务都无法执行下去,这类故障属于事务故障。其解决的办法是选择环中代价最小的事务进行撤销,再将其置入事务队列稍后执行。假如选中事务T1,在T1撤销过程中需要对其进行UNDO操作。4. 问答题:某社会救助基金会每年都会举办多项社会公益救助活动,需要建立信息系统,对之进行有效管理。【需求分析】1.任何一个实名认证的个人或者公益机构都可以发起一项公益救助活动,基金会需要记录发起者的信息。如果发起者是个人,需要记录姓名、身份证号和一部电话号码;如果发起者是公益机构,需要记录机构名称、统

14、一社会信用代码、一部电话号码、唯一的法人代表身份证号和法人代表姓名。一个自然人可以是多个机构的法人代表。2.公益救助活动需要提供详实的资料供基金会审核,包括被捐助人姓名、身份证号、一部电话号码、家庭住址。3.基金会审核并确认项目后,发起公益救助的个人或机构可以公开宣传井募捐,募捐得到的款项进入基金会账户。4.发起公益救助的个人或机构开展救助行动,基金会根据被捐助人所提供的医疗发票或其它信息,直接将所筹款项支付给被捐助者。5.救助发起者针对任一被捐助者的公益活动只能开展一次。【逻辑结构设计】根据上述需求,设计出如下关系模式:公益活动(发起者编号,被捐助者身份证号,发起者电话号码,发起时间,结束时

15、间,募捐金额),其中对于个人发起者,发起者编号为身份证号;对于机构发起者,发起者编号为统一社会信用代码。个人发起者(姓名,身份证号,电话号码)机构发起者(机构名称,统一社会信用代码,电话号码,法人代表身份证号,法人代表姓名)被捐助者(姓名,身份证号,电话号码,家庭住址)【问题1】对关系机构发起者,请回答以下问题:(1) 列举出所有候选键。(2) 它是否为3NF ,用1100字以内文字简要叙述理由。(3) 将其分解为 BC 范式,分解后的关系名依次为:机构发起者1,机构发起者 2 ,., 并用下划线标示分解后的各关系模式的主键。【问题2】对关系公益摇动 ,请回答以下问题:(1)列举出所有候选键。

16、(2) 它是否为2NF ,用100字以内文字简要叙述理由。(3)将其分解为 BC 范式,分解后的关系名依次为:公益活动1,公益活动 2 ,., 并用下划线标示分解后的各关系模式的主键。【问题3】基金会根据被捐助人提供的医疗发票或其它信息,将所筹款项支付给被捐助者。可以存在分期多次支付的情况,为了统计所筹款项支付情况(详细金额和时间) ,试增加支付记录关系模式,用100字以文字简要叙述解决方案。答案: 本题解析:【问题1】(1)统一社会信用代码(2)否,存在传递依赖 :统一社会信用代码法人代表身份证号,法人代表身份证号法人代表姓名(3)机构发起者1(机构名称,统一社会信用代码,电话号码,人代表身

17、份证号)主键:统一社会信用代码机构发起者2(人代表身份证号,法人代表姓名)主键:法人代表身份证号【问题2】(1)发起者编号+被捐助者身份证号(2)否:存在部分函数依赖:发起者编号(发起者电话号码)对码(发起者编号,被捐助者身份证号)存在部分函数依赖(3)公益活动1(发起者编号,发起者电话号码)主键:发起者编号公益活动2(发起者编号,被捐助者身份证号,发起时间,结束时间,募捐金额)主键:发起者编号+被捐助者身份证号【问题3】支付记录(支付编号,发起者编号,被捐助者身份证号,支付金额,支付时间,被捐助人的相关信息)(被捐助人的相关信息为医疗发票或其他信息),支付编号唯一标识每一次支付5. 问答题:

18、阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】 某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。要求每个抢红包的人最多只能抢到同一批次中的一个红包,且存在多个人同时抢同一红包的情况。给定的红包关系模式如下:Red(ID,BatchID,SenderID,Money,ReceiverID)其中 ID 唯一标识每一个红包; BatchID 为发红包的批次,一个 BatchID 值可以对应多个ID 值;SenderID 为发红包人的标识;Money 为红包中的钱数; ReceiverID 记录抢到红包的人的标识。发红包人一次抛出多个红包,即向红包表中插入多条记录,

19、每条记录表示一个红包, 其 ReceiverID 值为空值。抢某个红包时,需要判定该红包记录的 ReceiverID 值是否为空,不为空时表示该红包己被抢走,不能再抢,为空时抢红包人将自己的标识写入到 ReceiverID 宇段中,即为抢到红包。【问题1】引入两个伪指令 a = R(X) 和 W(b,X) 。其中a = R(X) 表示读取当前红包记录的ReceiverID 字段(记为数据项 X) 到变量a中, W(b,X)表示将抢红包人的唯一标识b的值写入到当前红包记录的ReceiverID 字段(数据项 X) 中,变量a为空值时才会执行 W(b,X) 操作。假设有多个人同时抢同一红包(即同时

20、对同一记录进行操作),用 ai=Ri (X)和 Wi(bi, X)表示系统依次响应的第i个人的抢红包操作。假设当前数据项 X 为空值,同时有三个人抢同一红包,则(1)如下的调度执行序列:a1 =R1, a2 = R2(X),W1(b1 ,X),W2(b2,X), a3 = R3(X)抢到红包的是第几人?并说明理由。(2)引入共享锁指令 SLocki(X)、独占锁指令XLocki(X)和解锁指令 ULocki(X) ,其中下标i表示第i个抢红包人的指令。如下的调度执行序列:SLock1(X),a1 = R1(X),SLock2(X),a2 = R2(X),XLock1(X).是否会产生死锁?并说

21、明理由。 (3)为了保证系统第一个响应的抢红包人为最终抢到红包的人,请使用上述。)中引入的锁指令,对上述(1)中的调度执行序列进行修改,在满足2PL协议的前提下,给出一个不产生死锁的完整的调度执行序列。【问题2】 下面是用 SQL实现的抢红包程序的一部分,请补全空缺处的代码CREATE PROCEDURE ScrambleRed (IN BatchNo VARCHAR(20) , -红包批号( IN RecvrNo VARCHAR(20) ) 一接收红包者BEGIN-是否已抢过此批红包if exist s( SELECT * FROM Red WHERE BatchID = BatchNo A

22、ND ReceiverID = RecvrNo) thenreturn -1;end if;-读取此批派发红包中未领取的红包记录IDDECLARE NonRecvedNo VARCHAR(30);DECLARE NonRecvedRed CURSOR FORSELECT ID FROM RedWHERE BatchID = BatchNo AND ReceiverID IS NULL;-打开游标OPEN NonRecvedRed;FETCH NonRecvedRed INTO NonRecvedNo;while not error一抢红包事务BEGIN TRANSACTION;/写入红包记录U

23、PDATE RED STE RECDIVER ID =RecvrNoWHERE ID = nonRECVED AND( a )/执行状态判定If修改的记录数= 1 THENCOMMIT;( b );Return 1;ElseROLLBACK;End if;( c );End while-关闭游标CLOSE NonRecved RDReturn 0;END答案: 本题解析:【问题1】(9分)(1)第2人,并发操作出现了丢失更新的问题,第2个的更新覆盖了第1个的更新,原因是破坏了事物的隔离性。(2)会产生死锁,由于数据X同时被1和2加锁了S锁,再对方没有释放的时候,都无法加成功X锁,导致1和2一直

24、都处于等待的状态(3)XLock(X) a=R(X) W(b,X)UNLock(X)【问题2】(6分)(a)BatchID=BatchNo(b)CLOSE NonRecvedRed(c)END TRANSACTION6. 问答题:某竞赛管理系统的部分数据库关系模式如下:选手: PLAYER(PnO Phame, Sex. Region, Tel),各属性分别表示参赛选手的编号、姓名、性别、地区和联系电话:竞赛项目: CONTEST(CnO, Chame, Type, Date),各属性分别表示竞赛项目的编号、名称、类别和举办日期;选手参赛: PC(Pno. Cno, City, Rank, P

25、oint),各属性分别表示选手编号、竞赛项目编号、竞赛所在城市、选手取得的名次和积分。有关关系模式的说明如下:(1)下划线标出的属性是表的主码。(2)选手参赛表的属性Pno和Cno分别参照了选手表和竞赛项目表的主码。(3)一个选手参加一项竞赛有一个名次和一-个积分,名次有4个取值(“一”“二” “三”无”)。另外,竞赛所在城市不能为空。根据以上描述,回答下列问题,将SQL语句的空缺部分补充完整。【问题1】 (5分)请将下面创建选手参赛表PC的SQL语句补充完整,要求定义实体完整性约束、参照完整性约束,以及其他完整性约束。CREATE TABLE PC(Pno CHAR(10) REFERENC

26、ES(a)(Pno),Cno CHAR(3) REFERENCES(b)(Cno),City CHAR(20)(c)Rank CHAR(20)(d)PointSMALLIT,(e)【问题2】(6分)查询所有未参加答案: 本题解析:【问题1】(a):PLAYER(b):CONTEST(c):NOT NULL(d):CHECK(Rank in(一, 二, 三, 无)(e):PRIMARY KEY (Pno,Cno)【问题2】f: PLAYERg: not inh: pnoi: o=oj: andk: order by【问题3】l:deletem:PCn:deleteo:CONTEST7. 问答题:

27、某单位公用车辆后勤服务部门数据库的部分关系模式如下:驾驶员:EMP(Eno,Ename, Age, Sex, telephone),各属性分别表示驾驶员工号、姓名、年龄、性别和电话号码;车辆:CAR(Cno,Brand,Capacity),各属性分别表示汽车车牌号、品牌名和排量;调度:SCHEDULE(Sno,Eno,Cno,StartTime, Endtime),各属性分别表示调度号、驾驶员工号、汽车车牌号、发车时间和收车时间。奖金:BONUS(Eno,Year,Month,Amount),各属性分别表示驾驶员工号、年、月和当月的奖金数量。有关车辆调度的相关说明如下:公车的行驶时间只能在工作

28、时间内,因此规定调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内。(【问题1】(4分)请将下面创建调度关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及调度表中每天安排发车的时间在上午07:00:00至下午18:00:00范围内的约束(由函数Time Get_time(DATETIME StartTime)返回出车的时间)。CREATE TABLE SCHEDULE(Sno CHAR(10),Eno CHAR(10) (a) ,Cno CHAR(8) (b) ,StartTime DATETIME (c) ,EndTime DATETIME,PRIM

29、ARY KEY (d) );【问题2】(6分)(1)创建所有奥迪品牌汽车的调度信息的视图AudiSCHEDULE,属性有Eno、Ename、Cno、Brand、StartTime和EndTime,请将下面SQL语句的空缺部分补充完整。CREATE (e)ASSELECT EMP,Eno,Ename, CAR,Cno,Brand, StartTime, EndTimeFROM EMP,CAR, SCHEDULEWHERE (f)(2)驾驶员的奖金在收车时间写入时,由出车时间段自动计算,并用触发器来实现奖金的自动维护,函数float Bonus_value(DATETIME StartTime,

30、DATETIME EndTime)依据发车时间和收车时间来计算本次出车的奖金。系统在每月初自动增加一条该员工的当月奖金记录,初始金额为零。请将下面SQL语句的空缺部分补充完整。CREATE (g) Bonus_TRG AFTER (h) ON SCHEDULEREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE BONUSSET (i)WHERE (j) AND Year=Get_Year(nrow.StartTime)AND Month= Get_Month(nrow.StartTime) ;END【问题3】(5分)请将下面SQL语句的空缺郜分

31、补充完整。(1)查询调度次数最多的汽车车牌号及其品牌。SELECT CARCno,BrandFROM CAR, SCHEDULEWHERE CAR.Cno =SCHEDULE.CnoGROUP BY (k)HAVING (l) (SELECT COUNT(*)FROM SCHEDULECROUP BY Cno);(2)查询所有在调度表中没有安排过“大金龙”品牌车辆的驾驶员工号和姓名。SELECT Eno,EnameFROM EMPWHERE Eno (m) (SELECT EnoFROM (n)WHERE (o)AND brand= 大金龙);答案: 本题解析:本题考查SQL语句的基本语法与结

32、构知识。此类题目要求考生掌握SQL语句的剧本语法和结构,认真阅读题目给出的关系模式,针对题目的要求具体分析并解答,本试题已经给出了4个关系模式,需要分析每个实体的属性特征及实体之间的联系,补充完整SQL语句。【问题1】由题目说明可知Sno属性是SCHEDULE关系表的主键,所以在PRIMARY KEY后天的应该是Sno;Eno和Cno分别作为外键引用到EMP和CAR关系表的主键,因此需要用REFERENCES对这两个属性进行外键约束;由“每天安排发车的时间在上午07:00:00至下午18:00:00范围类”的约束,可知需要限制StartTime属性组的取值范围,通过CHECK约束来竖线。从上分

33、析可见,完整的SQL语句如下:CREATE TABLE SCHEDULE(Sno CHAR(10),Eno CHAR (10) REFERENCES EMP(Eno),Cno CHAR (8) REFERENCES CAR(Cno),StartTime DATETIME CHECK( Get time(StartTime) BETWEEN 07:00:00AND 18:00:00),EndTime DATETIME,PRIMARY KEY Sno);【问题2】(1)创建视图需要通过CREATE VIEW语句来实现,由题目可知视图的属性有(Eno,Enanme,Cno,Brand,StartTi

34、men,EndTime);通过公共属性Eno和Cno对使用的三个基本表进行连接;由于只创建奥迪汽车的视图,所以还要在WHERE后加入Brand=奥迪的约束条件。从上分析可见,完整的SQL语句如下:CREATE VIEW AudisCHEDULE (Eno,Enanme,Cno,Brand,StartTimen,EndTime)ASSELECT EMP.Eno,Ename,CAR.Cno,Brand,StartTime,EndTimeFROM EMO,CAR,SCHEDULEWHERE EMP.Eno=SCHEDULE.Eno AND CAR.Cho=SCHEDULE.Cno AND Brand

35、=奥迪;(2)创建触发器通过CREATR TRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在SCHEDULE关系中更新调度信息时触发器应自动执行,故需要创建基于UPDATE类型的触发器;最后添加表连接条件。完整的触发器实现的方案如下:CREATE TRIGGER Bonus_TGR AFTER UODATE ON SCHEDULEREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE BONUSSET Amount=Amount+Bonus_Value(nrow.StartTime,nrow.EndTime)WHERE BO

36、UNS.Eno=nrow. Eno AND Year =Get_Year(nrow.StartTime)AND Month=Get_Mouth(nrow.StartTime);End【问题3】分析SQL查询通过SELECT语句实现。根据问题要求,可通过子查询实现“调度次数最多的汽车车牌号及其品牌”的查询;对COUNT函数计算的结果应通过HAVING条件语句进行约束;通过Cno和Brand的组合进行分组查询。完整的SQL语句如下:SELECT CAR.Cno, BrandFROM CAR,SCHEDULEWHERE CAR.Cno=SCHEDULE.CnoGROUP BY CAR.Cno,Bra

37、ndHAVING COUNT(*)ALL(SELECT COUNT(*)FROM SCHEDULEGROUP BY Cno);(2)根据问题要求,需要使用嵌套查询。先将WORKS和COMPANY表进行连接。查找出所有在“安排过 大金龙品牌车辆的驾驶员”;然后在雇员表中使用“NOT IN”或者“ANY”查询不在前述结果里面的员工即可。完整的SQL语句如下:SELECT Eno,EnameFROM EMPWHERE Eno NOT IN或ANY(SELECT EnoFROM SCHEDULE, CARWHERE SCHEDULE.Cno=CAR.Cno AND Brand=大金龙);8. 多选题:

38、下列选项中同时具有财产权和人身权双重属性的是 (请作答此空)。商业秘密具有 () 属性。A.著作权B.商业秘密C.发现权D.使用权答案:A 本题解析:本题考查计算机系统相关知识著作权包括著作人身权和著作财产权两个方面。著作人身权:包括发表权、署名权、修改权和保护作品完整权。著作财产权:包括作品的使用权和获得报酬权。商业秘密是指不为公众所知悉的、能为权利人带来经济利益、具有实用性并经权利人采取保密措施的技术信息和经营信息。商业秘密分类经营秘密:指未公开的经营信息。技术秘密:指未公开的技术信息。9. 问答题:阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸的对应栏内。【说明】某医院为了更好

39、的为患者服务、提高医院管理水平,拟开发满足自身特点的信息系统。其部分需求及设计如下。【需求描述】(1)患者到医院就诊,需提供本人医保卡或身份证,系统根据医保卡或身份证从外部医保信息库获取患者的其他详细信息,包括医保卡号、身份证号、姓名、性别、民族、出生日期等信息。(2)医生信息包括医生编号、姓名、性别、出生日期、职称等信息。(3)通过患者自述、化验结果分析等信息,医生对患者的病情进行诊断,开具处方,并填写病例。病例同时包含诊断和处方信息,包括编号、患者姓名、病情描述、诊断结论、主治医生、药品名称、药品数量、服用剂量等,处方中一般会有多种药品。(4)病人凭医生开具的处方可在医院购买药品。医院记录

40、药品的条码、名称、价格、生产厂商等信息。【逻辑结构设计】根据上述需求,设计出如下关系模式医生(编号,姓名,性别,出生日期,职称)患者(身份证号,医保卡号,姓名,性别,民族,出生日期)药品(条码,名称,价格,生产厂商)病例(编号,药品条码,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期,服用剂量,药品数量,购买日期)【问题1】(5分)对关系“患者”,请回答以下问题:(1)给出函数依赖集。(2)给出所有候选码。(3)判定属于第几范式,并说明理由。【问题2】(7分)对关系“病例”,存在如下的数据依赖:FD编号(患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期),(编号,药品条码)(

41、服用剂量,药品数量,购买日期),请回答以下问题。(1)该关系模式存在哪些问题?(2)该关系模式是否属于 4NF?请给给出理由。(3)如果“病例”不是 4NF,请分解,并指出分解后的关系模式所属范式。分解后的关系名依次为:病例 1,病例 2,.。【问题3】(3 分)针对【问题 2】的规范化要求,如果设计者分解出的多个关系模式其中之一如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期)如果医院要求统计每名医生(编号和姓名)每天接诊的患者所购买的各个药品的条码和数量。基于上述设计,实现该统计共需哪几个关系?为提高该统计效率,允许对范式条件放宽要求,请修改“购药”关系模式以优化该统计。答案:

42、 本题解析:【问题1】1)FD=身份证号-(医保卡号,姓名,性别,民族,出生日期),医保卡号-(身份证号,姓名,性别,民族,出生日期)2)候选码:身份证号 或 医保卡号3)患者关系属于4NF,因为在FD不存在非主属性对码的部分和传递依赖,也不存在主属性对不包含它的码的部分和传递函数依赖,同时也不存在非平凡且非函数依赖的多值依赖。【问题2】1)由于将一对多的两个关系合并成为一个关系,在FD中存在非主属性对码的部分函数依赖,因此关系存在插入、删除、更新异常和数据冗余。2)不属于4NF,而是属于2NF,存在非主属性(患者身份证号等)对码(编号,药品条码)的部分函数依赖,同时也存在编号对条形码等属性的

43、非平凡多值函数依赖。3)病例 1(编号,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期) 病例 2(编号,药品条码,服用剂量,药品数量,购买日期)【问题3】需要有的关系为:病例、医生、购药关系。如果仅为了提高该查询的效率,即尽量减少连接运算,可以考虑在修改购药关系如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期,医生编号,医生姓名)【问题1】1)FD=身份证号-(医保卡号,姓名,性别,民族,出生日期),医保卡号-(身份证号,姓名,性别,民族,出生日期)2)候选码:身份证号 或 医保卡号3)患者关系属于4NF,因为在FD不存在非主属性对码的部分和传递依赖,也不存在主属性对不

44、包含它的码的部分和传递函数依赖,同时也不存在非平凡且非函数依赖的多值依赖。【问题2】1)由于将一对多的两个关系合并成为一个关系,在FD中存在非主属性对码的部分函数依赖,因此关系存在插入、删除、更新异常和数据冗余。2)不属于4NF,而是属于2NF,存在非主属性(患者身份证号等)对码(编号,药品条码)的部分函数依赖,同时也存在编号对条形码等属性的非平凡多值函数依赖。3)病例 1(编号,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期) 病例 2(编号,药品条码,服用剂量,药品数量,购买日期)【问题3】需要有的关系为:病例、医生、购药关系。如果仅为了提高该查询的效率,即尽量减少连接运算,可以

45、考虑在修改购药关系如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期,医生编号,医生姓名)10. 问答题:某小区由于建设时间久远,停车位数量无法满足所有业主的需要,为公平起见,每年进行一次抽签来决定车位分配。小区物业拟建立一个信息系统,对停车位的使用和收费进行管理。【需求描述】(1)小区内每套房屋可能有多名业主,一名业主也可能在小区内有多套房屋。业主信息包括业主姓名、身份证号、房号、房屋面积,其中房号不重复。(2)所有车位都有固定的编号,且同一年度所有车位的出租费用相同,但不同年份的出租费用可能不同。(3)所有车位都参与每年的抽签分配。每套房屋每年只能有一次抽签机会。抽中车位的业主需

46、一次性缴纳全年的车位使用费用,且必须指定唯一的汽车使用该车位。(4)小区车辆出入口设有车牌识别系统,可以实时识别进出的汽车车牌号。为方便门卫确认,系统还需登记汽车的品牌和颜色。【逻辑结构设计】根据上述需求,设计出如下关系模式:业主(业主姓名,业主身份证号,房号,房屋面积)车位(车位编号,房号,车牌号,汽车品牌,汽车颜色,使用年份,费用)【问题1】(6分)对关系“业主”,请回答以下问题:(1)给出“业主”关系的候选键。(2)它是否为2NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后的关系名依次为:A1,A2,.,并用下划线标示分解后的各关系模式的主键。【问题2】(6分)对关系

47、“车位”,请回答以下问题:(1)给出“车位关系的候选键。(2)它是否为3NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后的关系名依次为:B1,B2,.,并用下划线标示分解后的各关系模式的主键。【问题3】(3分)若临时车辆进入小区,按照进入和离开小区的时间进行收费(每小时2元)。试增加“临时停车”关系模式,用100字以内文字简要叙述解决方案。答案: 本题解析:【问题1】(6分)(1)业主身份证号、房号(2)不满足,存在部分函数依赖,如:业主身份证号业主姓名,房号房屋面积,业主姓名和房屋面积部分依赖于码(业主身份证号、房号)(3)A1(业主姓名,业主身份证号)A2(房号,房屋面

48、积)A3(业主身份证号,房号)【问题2】(6分)(1)(车位编号,使用年份)、(房号,使用年份)或(车牌号,使用年份)。注(回答三个中任意一个得分)(2)不满足3NF,存在部分依赖,如:车牌号(汽车品牌、汽车颜色),对码(车位编号、房号、车牌号、使用年份)存在部分依赖(3)B1(车牌号,汽车品牌、汽车颜色)B2(使用年份,费用)B3(车位编号、房号、车牌号、使用年份)B3(车位编号、房号、车牌号、使用年份)B3(车位编号、房号、车牌号、使用年份)注:任意一个B3均正确。【问题3】(3分)因为需要根据进入和离开小区的时间进行收费,所以在增加的“临时停车”关系模式中值需要体现车牌号、进入时间和离开时间即可,即增加的关系模式为:临时停车(车牌号,进入时间,离开时间)。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!