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

上传人:re****.1 文档编号:476725928 上传时间:2023-02-28 格式:DOCX 页数:17 大小:23.55KB
返回 下载 相关 举报
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷23(附答案解析)_第1页
第1页 / 共17页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷23(附答案解析)_第2页
第2页 / 共17页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷23(附答案解析)_第3页
第3页 / 共17页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷23(附答案解析)_第4页
第4页 / 共17页
2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷23(附答案解析)_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

1、2022软件水平考试-中级数据库系统工程师考前拔高名师测验卷(附答案解析)1. 多选题:商业秘密构成的条件是:商业秘密必须具有(请作答此空),即不为公众所知悉;必须具有(),即能为权利人带来经济效益;必须具有() ,即采取了保密措施。A.公开性B.确定性C.未公开性D.非确定性答案:C 本题解析:本题考查知识产权相关知识商业秘密是指不为公众所知悉的、能为权利人带来经济利益、具有实用性并经权利人采取保密措施的技术信息和经营信息。商业秘密分类经营秘密:指未公开的经营信息。技术秘密:指未公开的技术信息。2. 问答题:某汽车租赁公司建立汽车租赁管理系统,其数据库的部分关系模式如下:用户:USERS(

2、UserId,Name, Balance),各属性分别表示用户编号、姓名、余额;汽车:CARS(CId, Ctype, CPrice,CStatus)各属性分别表示汽车编号、型号、价格(日租金)、状态;租用记录: BORROWS(BRId, UserId,CId, STime, ETime),各属性分别表示租用编号、用户编号、汽车编号、租用用时间、归还时间;不良记录:BADS(BId, UserIdBRId, BTime),各属性分别表示不良记录编号、用户编号、租用编号、不良记录时间。相关关系模式的属性及说明如下(1)用户租用汽车时,其用用户表中的余额不能小于 500,否则不能租用。(2)汽车

3、状态为待租和已租,待租汽车可以被用户租用,已租汽车不能租用。(3)用户每租用一次汽车,向租用记录中添加一条租用记录,租用时间默认为系统当前时间,归还时间为空值,并将所租汽车状态变为已租。用户还车时,修改归还时间为系统当前时间,并将该汽车状态改为待租。要求用户不能同时租用两辆及以上汽车。(4)租金从租用时间起按日自动扣除。根据以上描述,回答下列问题题,将 SQL 语句的空缺部分补充完整。【问题1】(1)请将下面建立 租用记录 表的 SQL 语句补充完整,要求定义主码完整性约束和引用完整性约束。CREATE TABLE BORROWS (BRIDCHAR(20)(a),UserId CHAR(10

4、)(b) ,Cld CHAR(10)(c), STime DATETIME(d),ETime DATETIME,);【问题2】当归还时间为空值时,表示用户还未还车,系统每天调用事务程序从用户余额中自动扣除当日租金,每个事务修改一条用户记录中的余额值。由用户表上的触发器实现业务:如用户当日余额不足,不扣除当日租金,自动向不良记录表中加入一条记录,记录中的 BId 取值由 UserId系统当前日期构成, Btime 采用 GETDATE()函数取系统当前时间。补全创建触发器 Bad_TRG 的 SQL 语句。CREATE TRIGGER Bad_TRG(e)UPDATEof Balance ON

5、USERSReferencing new row as nrowFor each rowWhen nrow.Balanceimage.png0BEGIN(f);/插入不良记录INSERT INTO BADSSELECT CONCAT(BORROWs.UserId, CONVERT(varchar(100), GETDATE(), 10), BORROWS UserId,BRID, (g)/ CONVERTO 函数将日期型数据改为字符串型,CONCATO 函数实现字符串拼接FROM BORROWSWHERE(h)AND ETime IS NULL;END;【问题3】不良记录是按日记录的,因此用户

6、一次租车可能会产生多条不良记录。创建不良记录单视图 BADS_Detail,统计每次租车产生的不良记录租金费用总和大于 200 的记录,属性有UserId、Name、BRId、CId、Stime、Etime 和 total(表示未缴纳租金总和)。补全建视图 BADS Detail 的 SQL 语句。CREATE VIEW(i)ASSELECTBADS. UserId, USERS. Name, BADS.BRId, CARS. Cld, Stime, Etime, (j)AS totalFROM BORROWS,BADS,CARS,USERSWHERE BORROWS.BRId=BADS. B

7、RId AND BORROWS.Cid=CARS. CldAND(k) =BADS.UserIdGROUP BY BADS. UserId, USERS.Name, BADS.BRID, CARS. CId, Stime, EtimeHAVING(l) ;【问题4】查询租用了型号为“A8”且不良记录次数大于等于 2 的用户,输出用户编号、姓名,并按用户姓名降序排序输出。SELECT USERS.UserId, NameFROM USERS,BORROWS, CARSWHERE USERS. UserId= BORROWS.UserId AND BORROWS.Cid= CARS.CIdAND

8、(m)AND EXISTS(SELECT * FROM BADSWHERE BADS.UserId=BORROWS.UserId AND(n)GROUP BY UserIdHAVING COUNT(*)= 2)ORDER BY(0) 。答案: 本题解析:【问题1】(a)PRIMARY KEY(b)REFERENCES UERS(UserID)(c)REFERENCES CARS(Cid)(d)GETDATE()【问题2】(e)After(f)Rollback(g)GETDATE()(h)UserID=nrow.UserID【问题3】(i)BADS_Detail(j)COUNT(*)*Cpric

9、e(k)USERS. UserId(l)COUNT(*)*Cprice200【问题4】(m)CARS.Ctype=A8(n)BADS.BRId=BORROWS.BRId(o)Name DESC3. 问答题:天津市某银行信息系统的数据库部分关系模式如下所示:客户(客户号,姓名,性别,地址,邮编,电话)账户(账户号,客户号,开户支行号,余额)支行(支行号,支行名称,城市,资产总额)交易(交易号,账户号,业务金额,交易日期)其中,业务金额为正值表示客户向账户存款;为负值表示取款。【问题1】以下是创建账户关系的SQL语句,账户号唯一识别一个账户,客户号为客户关系的唯一标识,且不能为空。账户余额不能小于

10、1.00元。请将空缺部分补充完整。CREATE TABLE 账户( 账户号 CHAR(19) (a) , 客户号 CHAR(10) (b) ,开户支行号 CHAR(6) NOT NULL ,余额 NUMBER(8,2) (c) );【问题2】(1)现银行决策者希望查看在天津市各支行开户且2009年9月使用了银行存取服务的所有客户的详细信息,请补充完整相应的查询语句。 (交易日期形式为2000-01-01)SELECT DISTINCT 客户.*FROM 客户, 账户, 支行, 交易WHERE 客户.客户号 = 账户.客户号 AND账户.开户支行号 = 支行.支行号 AND(d) AND交易.账

11、户号 = 账户.账户号 AND(e) ;上述查询优化后的语句如下,请补充完整。SELECT DISTINCT 客户.*FROM 客户, 账户, (f) AS 新支行, (g) AS 新交易WHERE 客户.客户号 = 账户.客户号 AND账户.开户支行号 = 新支行.支行号 AND新交易.账户号 = 账户.账户号(2)假定一名客户可以申请多个账户,给出在该银行当前所有账户余额之和超过百万的客户信息并按客户号降序排列。SELECT *FROM 客户WHERE (h)(SELECT 客户号 FROM 账户 GROUP BY 客户号 (i) )ORDER BY (j) ;【问题3】(1)为账户关系增

12、加一个属性“账户标记” ,缺省值为0,取值类型为整数;并将当前账户关系中所有记录的“账户标记”属性值修改为0。请补充相关SQL语句。ALTER TABLE 账户 (k) DEFAULT 0 ;UPDATE 账户 (l) ;(2)对于每笔金额超过10万元的交易,其对应账户标记属性值加1,给出触发器实现的方案。CREATE TRIGGER 交易_触发器 (m) ON 交易REFERENCING NEW ROW AS 新交易FOR EACH ROWWHEN (n)BEGIN ATOMICUPDATE 账户 SET 账户标记 = 账户标记 + 1WHERE (o) ;COMMIT WORK ;END

13、;答案: 本题解析:【问题1】(a)PRIMARY KEY/NOT NULL UNIQUE/NOT NULL PRIMARY KEY(b)NOT NULL REFERENCES客户(客户号)(c)CHECK(余额=1.00)【问题2】(1)(d)支行.城市天津市(e)交易.交易日期LIKE 2009-09-或等价表示 注:(d)(e)次序无关 (f) (SELECT* FROM支行WHERE城市=天津市)(g)(SELECT * FROM交易WHERE交易日期LIKE 2009-09%)或等价表示(2)(h)客户号IN(i) HAVING SUM(余额) 1000000.00或等价表示(J)客

14、户号DESC【问题3】(1)(k) ADD 账户标记 INT(l) SET账户标记=0;(2)(m)AFTER INSERT(n)新交易.业务金额 100000.00或等价表示(o)账户.账户号新交易.账户号4. 问答题:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下:员工(员工身份证号,姓名,工种,电话,住址)会员(会员手机号,姓名,折扣)项目(项目名称,项目经理,价格)预约单(会员手机号,预约日期,项目名称,使用时长)(外键:会员手机号)消费(流水号,会员手机号,项目名称,消费金额,消费日期)(外键:会

15、员手机号,项目名称)有关关系模式的属性及相关说明如下:1)俱乐部有多种健身项目,不同的项目每小时的价格不同。俱乐部实行会员制,且需要电话或在线提前预约。2)每个项目都有一个项目经理,一个经理只能负责一个项目。3)俱乐部对会员进行积分,达到一定积分可以进行升级,不同的等级具有不同的折扣。 根据以上描述,回答下列问题: 【问题1】请将下面创建消费关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及消费金额大于零的约束。CREATE TABLE 消费(流水号 CHAR(12) ( a ) ,会员手机号CHAR(11),项目名称CHAR (8),消费金额NUMBER ( b ) ,消费日期DATE,( c ),( d ),);【问题2】(1)手机号为188

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号