当前位置:首页 → 计算机类 → 软件水平考试 → 中级数据库系统工程师->阅读下列说明,回答问题1至问题3;将解答填入答题纸对应栏内。
阅读下列说明,回答问题1至问题3;将解答填入答题纸对应栏内。【说明】某社会救助基金会每年都会举办多项社会公益救助活动,需要建立信息系统,对之进行有效管理。【需求分析】1.任何一个实名认证个人或者公益机构都可以发起一项公益救助活动,基金会需要记录发起者信息。如果发起者是个人,需要记录姓名、身份证号和一部电话号码;如果发起者是公益机构,需要记录机构名称、统一社会信用代码、一部电话号码、唯一法人代表身份证号和法人代表姓名。一个自然人可以是多个机构法人代表。2.公益救助活动需要提供详实资料供基金会审核,包括被捐助人姓名、身份证号、一部电话号码、家庭住址。3.基金会审核并确认项目后,发起公益救助个人或机构可以公开宣传井募捐,募捐得到款项进入基金会账户。4.发起公益救助个人或机构开展救助行动,基金会根据被捐助人所提供医疗发票或其它信息,直接将所筹款项支付给被捐助者。5.救助发起者针对任一被捐助者公益活动只能开展一次。【逻辑结构设计】根据上述需求,设计出如下关系模式:公益活动(发起者编号,被捐助者身份证号,发起者电话号码,发起时间,结束时间,募捐金额),其中对于个人发起者,发起者编号为身份证号;对于机构发起者,发起者编号为统一社会信用代码。个人发起者(姓名,身份证号,电话号码)机构发起者(机构名称,统一社会信用代码,电话号码,法人代表身份证号,法人代表姓名)被捐助者(姓名,身份证号,电话号码,家庭住址)【问题1】 对关系"机构发起者",请回答以下问题:(1) 列举出所有候选键。(2) 它是否为3NF ,用1100字以内文字简要叙述理由。(3) 将其分解为 BC 范式,分解后关系名依次为:机构发起者1,机构发起者 2 ,..., 并用下划线标示分解后各关系模式主键。【问题2】对关系"公益摇动 ",请回答以下问题:(1)列举出所有候选键。(2) 它是否为2NF ,用100字以内文字简要叙述理由。(3)将其分解为 BC 范式,分解后关系名依次为:公益活动1,公益活动 2 ,..., 并用下划线标示分解后各关系模式主键。【问题3】基金会根据被捐助人提供医疗发票或其它信息,将所筹款项支付给被捐助者。可以存在分期多次支付情况,为了统计所筹款项支付情况(详细金额和时间) ,试增加"支付记录"关系模式,用100字以文字简要叙述解决方案。
【问题1】(6 分) (1)统一社会信用代码(2)否,存在传递依赖 :统一社会信用代码→法人代表身份证号,法人代表身份证号→法人代表姓名(3)机构发起者1(机构名称,统一社会信用代码,电话号码,人代表身份证号)主键:统一社会信用代码机构发起者2(人代表身份证号,法人代表姓名)主键:法人代表身份证号【问题2】(6 分)(1)发起者编号+被捐助者身份证号(2)否:存在部分函数依赖:发起者编号→(发起者电话号码)对码(发起者编号,被捐助者身份证号)存在部分函数依赖(3)公益活动1(发起者编号,发起者电话号码)主键:发起者编号公益活动2(发起者编号,被捐助者身份证号,发起时间,结束时间,募捐金额)主键:发起者编号+被捐助者身份证号 【问题3】(3分)支付记录(支付编号,发起者编号,被捐助者身份证号,支付金额,支付时间,被捐助人相关信息)(被捐助人相关信息为医疗发票或其他信息),支付编号唯一标识每一次支付
阅读下列说明,冋答问题1至问题3,将解答填入答题纸对应栏内。【说明】某水果零售超市拟开发一套信息系统,对超市顾客、水果、员工、采购和销售信息进行管理。(1)水果零售超市实行会员制,顾客需具有会员资格才能进行购物,顾客需持所在单位出具证明信才能办理会员资格,每位顾客具有唯一编号。(2)超市将采购员和导购员分成若干个小组,每组人员负责指定若干种水果采购和导购。每名采购员可采购指定给该组购买水果;每名导购员都可对顾客选购本组内各种水果进行计价和包装,并分别贴上打印条码。(3)顾客选购水果并计价完毕后进行结算,生成结算单。结算单包括流水号、购买各种水果信息和顾客信息等,每张结算单具有唯一流水号。(4)超市在月底根据结算单对导购员进行绩效考核,根据采购情况对采购员进行考核,同时也根据结算单对顾客消费情况进行会员积分。初步设计数据库关系模式如下。
"结算单"示例如表所示:
【问题1】
对于"顾客"关系模式,请回答以下问题:(1)给出所有候选键。(2)该关系模式可达到第几范式,用60字以内文字简要叙述理由。【问题2】对于"结算单"关系模式,请回答以下问题:(1)用100字以内文字简要说明它会产生什么问题。(2)将其分解为第3范式,分解后关系名依次为:结算单1,结算单2,结算单3,并用下划线标注分解后各关系模式主键。【问题3】对于"职责"关系模式,请回答以下问题:(1)它是否为第4范式,用100字以内文字叙述理由。(2)将其分解为第4范式,分解后关系名依次为:职责1,职责2,┄。
阅读下列说明,回答问题1至问题3;将解答填入答题纸对应栏内。【说明】某社会救助基金会每年都会举办多项社会公益救助活动,需要建立信息系统,对之进行有效管理。【需求分析】1.任何一个实名认证个人或者公益机构都可以发起一项公益救助活动,基金会需要记录发起者信息。如果发起者是个人,需要记录姓名、身份证号和一部电话号码;如果发起者是公益机构,需要记录机构名称、统一社会信用代码、一部电话号码、唯一法人代表身份证号和法人代表姓名。一个自然人可以是多个机构法人代表。2.公益救助活动需要提供详实资料供基金会审核,包括被捐助人姓名、身份证号、一部电话号码、家庭住址。3.基金会审核并确认项目后,发起公益救助个人或机构可以公开宣传井募捐,募捐得到款项进入基金会账户。4.发起公益救助个人或机构开展救助行动,基金会根据被捐助人所提供医疗发票或其它信息,直接将所筹款项支付给被捐助者。5.救助发起者针对任一被捐助者公益活动只能开展一次。【逻辑结构设计】根据上述需求,设计出如下关系模式:公益活动(发起者编号,被捐助者身份证号,发起者电话号码,发起时间,结束时间,募捐金额),其中对于个人发起者,发起者编号为身份证号;对于机构发起者,发起者编号为统一社会信用代码。个人发起者(姓名,身份证号,电话号码)机构发起者(机构名称,统一社会信用代码,电话号码,法人代表身份证号,法人代表姓名)被捐助者(姓名,身份证号,电话号码,家庭住址)【问题1】 对关系"机构发起者",请回答以下问题:(1) 列举出所有候选键。(2) 它是否为3NF ,用1100字以内文字简要叙述理由。(3) 将其分解为 BC 范式,分解后关系名依次为:机构发起者1,机构发起者 2 ,..., 并用下划线标示分解后各关系模式主键。【问题2】对关系"公益摇动 ",请回答以下问题:(1)列举出所有候选键。(2) 它是否为2NF ,用100字以内文字简要叙述理由。(3)将其分解为 BC 范式,分解后关系名依次为:公益活动1,公益活动 2 ,..., 并用下划线标示分解后各关系模式主键。【问题3】基金会根据被捐助人提供医疗发票或其它信息,将所筹款项支付给被捐助者。可以存在分期多次支付情况,为了统计所筹款项支付情况(详细金额和时间) ,试增加"支付记录"关系模式,用100字以文字简要叙述解决方案。
阅读下列说明,冋答问题1至问题3,将解答填入答题纸对应栏内。【说明】某图书馆管理系统部分需求和设计结果描述如下:图书馆主要业务包括以下几项:(1)对所有图书进行编目,每一书目包括ISBN号、书名、出版社、作者、排名,其中一部书可以有多名作者,每名作者有唯一一个排名;(2)对每本图书进行编号,包括书号、ISBN号、书名、出版社、破损情况、存放位置和定价,其中每一本书有唯一编号,相同ISBN号书集中存放,有相同存储位置,相同ISBN号书或因不同印刷批次而定价不同;(3)读者向图书馆申请借阅资格,办理借书证,以后凭借书证从图书馆借阅图书。办理借书证时需登记身份证号、姓名、性别、出生年月日,并交纳指定金额押金。如果所借图书定价较高时,读者还须补交押金,还书后可退还所补交押金;(4)读者借阅图书前,可以通过ISBN号、书名或作者等单一条件或多条件组合进行查询。根据查询结果,当有图书在库时,读者可直接借阅;当所查书目所有图书己被他人借走时,读者可进行预约,待他人还书后,由馆员进行电话通知;(5)读者借书时,由系统生成本次借书唯一流水号,并登记借书证号、书号、借书日期,其中同时借多本书使用同一流水号,每种书目都有一个允许一次借阅借书时长,一般为90天,不同书目有不同借书时长,并且可以进行调整,但调整前所借出书,仍按原借书时长进行处理;(6)读者还书时,要登记还书日期,如果超出借书时长,要缴纳相应罚款;如果所还图书由借书者在持有期间造成破损,也要进行登记并进行相应罚款处罚。初步设计该图书馆管理系统,其关系模式如图4-1所示。
【问题1】对关系"借还",请回答以下问题:(1)列举出所有候选键;(2)根据需求描述,借还关系能否实现对超出借书时长情况进行正确判定?用60字以内文字简要叙述理由。如果不能,请给出修改后关系模式(只修改相关关系模式属注时,仍使用原关系名,如需分解关系模式,请在原关系名后加1,2,…等进行区别)。【问题2】对关系"图书",请回答以下问题:(1)写出该关系函数依赖集;(2)判定该关系是否属于BCNF,用60字以内文字简要叙述理由。如果不是,请进行修改,使其满足BCNF,如果需要修改其它关系模式,请一并修改,给出修改后关系模式(只修改相关关系模式属性时,仍使用原关系名,如需分解关系模式,请在原关系名后加1,2,...进行区别)。【问题3】对关系"书目",请回答以下问题:(1)它是否属于第四范式,用60字以内文字叙述理由。(2)如果不是,将其分解为第四范式,分解后关系名依次为:书目1,书目2,…。 如果在解决【问题1】、【问题2】时,对该关系属性进行了修改,请沿用修改后属性。
阅读下列说明,回答问题1至问题3,将解答填入答题纸对应栏内。【说明】某小区由于建设时间久远,停车位数量无法满足所有业主需要,为公平起见,每年进行一次抽签来决定车位分配。小区物业拟建立一个信息系统,对停车位使用和收费进行管理。【需求描述】(1)小区内每套房屋可能有多名业主,一名业主也可能在小区内有多套房屋。业主信息包括业主姓名、身份证号、房号、房屋面积,其中房号不重复。(2)所有车位都有固定编号,且同一年度所有车位出租费用相同,但不同年份出租费用可能不同。(3)所有车位都参与每年抽签分配。每套房屋每年只能有一次抽签机会。抽中车位业主需一次性缴纳全年车位使用费用,且必须指定唯一汽车使用该车位。(4)小区车辆出入口设有车牌识别系统,可以实时识别进出汽车车牌号。为方便门卫确认,系统还需登记汽车品牌和颜色。【逻辑结构设计】根据上述需求,设计出如下关系模式:业主(业主姓名,业主身份证号,房号,房屋面积)车位(车位编号,房号,车牌号,汽车品牌,汽车颜色,使用年份,费用)【问题1】对关系"业主",请回答以下词题:(1)给出"业主"关系候选键。(2)它是否为2NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后关系名依次为:A1,A2,...,并用下划线标示分解后各关系模式主键。【问题2】对关系"车位",请回答以下问题:(1)给出"车位"关系候选键。 .(2)它是否为3NF,用60字以内文字简要叙述理由。(3)将其分解为BCNF,分解后关系名依次为:B1,B2,...,并用下划线标示分解后各关系模式主键。【问题3】若临时车辆进入小区,按照进入和离开小区时间进行收费(每小时2元)。试增加"临时停车"关系模式,用100字以内文字简要叙述解决方案。
阅读下列说明,冋答问题1至问题3,将解答填入答题纸对应栏内。【说明】某地人才交流中心为加强当地企业与求职人员沟通,促进当地人力资源合理配置,拟建立人才交流信息网。【需求描述】1.每位求职人员需填写《求职信息登记表》(如表4-1所示),并出示相关证件,经工作人员审核后录入求职人员信息。表中毕业证书编号为国家机关统一编码,编号具有唯一性。每个求职人员只能填写一部联系电话。2.每家招聘企业需填写《招聘信息登记表》(如表4-2所示),并出示相关证明及复印件,经工作人员核实后录入招聘企业信息。表中企业编号由系统自动生成,每个联系人只能填写一部联系电话。3.求职人员和招聘企业基本信息会在系统长期保存,并分配给求职人员和招聘企业用于登录用户名和密码。求职人员登录系统后可登记自己从业经历、个人简历及特长,发布自己求职意向信息;招聘企业工作人员登录系统后可维护本企业基本信息,发布本企业岗位需求信息。4.求职人员可通过人才交流信息网查询企业招聘信息并进行线下联系;招聘企业工作人员也可通过人才交流信息网查询相关求职人员信息并进行线下联系。5.求职人员入职后应惨改自己就业状态(在岗/求职);招聘企业在发布需求岗位有人员到岗后也应该及时修改需求人数。
【逻辑结构设计】
根据上述需求,设计出如下关系模式:个人信息(身份证号,姓名,性别,出生日期,毕业院校,专业名称,学历,毕业证书编号,联系电话,电子邮件,个人简历及特长)从业经历(身份证号,起止时间,企业名称,职位)求职意向(身份证号,职位名称,最低薪水)企业信息(企业编号,企业名称,地址,企业网址,联系人,联系电话,电子邮件,企业简介)岗位需求(企业编号,职位,专业,学历,薪水,人数,备注)【问题1】对关系"个人信息",请回答以下问题:(1)列举出所有候选键。(2)它是否为3NF,用60字以内文字简要叙述理由。(3)将其分解为BC范式,分解后关系名依次为:个人信息1,个人信息2,…,并用下划线标示分解后各关系模式主键。【问题2】对关系"企业信息",请回答以下问题:(1)列举出所有候选键。(2)它是否为2NF,用60字以内文字简要叙述理由。(3)将其分解为BC范式,分解后关系名依次为:企业信息1,企业信息2,…,并用下划线标示分解后各关系模式主键。【问题3】若要求个人求职信息一经发布,即由系统自动查找符合求职要求企业信息,填入表R(身份证号,企业编号),在不修改系统应用程序前提下,应采取什么方法来实现,用100字以内文字简要叙述解决方案。
阅读下列说明,回答问题 1 至问题 3,将解答填入答题纸对应栏内。【说明】某医院为了更好为患者服务、提高医院管理水平,拟开发满足自身特点信息系统。其部分需求及设计如下。【需求描述】(1)患者到医院就诊,需提供本人医保卡或身份证,系统根据医保卡或身份证从外部医保信息库获取患者其他详细信息,包括医保卡号、身份证号、姓名、性别、民族、出生日期等信息。(2)医生信息包括医生编号、姓名、性别、出生日期、职称等信息。(3)通过患者自述、化验结果分析等信息,医生对患者病情进行诊断,开具处方,并填写病例。病例同时包含诊断和处方信息,包括编号、患者姓名、病情描述、诊断结论、主治医生、药品名称、药品数量、服用剂量等,处方中一般会有多种药品。(4)病人凭医生开具处方可在医院购买药品。医院记录药品条码、名称、价格、生产厂商等信息。【逻辑结构设计】根据上述需求,设计出如下关系模式医生(编号,姓名,性别,出生日期,职称)患者(身份证号,医保卡号,姓名,性别,民族,出生日期)药品(条码,名称,价格,生产厂商)病例(编号,药品条码,患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期,服用剂量,药品数量,购买日期)【问题1】(5分)对关系“患者”,请回答以下问题:(1)给出函数依赖集。(2)给出所有候选码。(3)判定属于第几范式,并说明理由。【问题2】(7分)对关系“病例”,存在如下数据依赖:FD={编号→(患者身份证号,主治医生编号,病情描述,诊断结论,诊断日期),(编号,药品条码)→(服用剂量,药品数量,购买日期)},请回答以下问题。(1)该关系模式存在哪些问题?(2)该关系模式是否属于 4NF?请给给出理由。(3)如果“病例”不是 4NF,请分解,并指出分解后关系模式所属范式。分解后关系名依次为:病例 1,病例 2,...。【问题3】(3 分)针对【问题 2】规范化要求,如果设计者分解出多个关系模式其中之一如下:购药(病例编号,药品条码,服用剂量,药品数量,购买日期)如果医院要求统计每名医生(编号和姓名)每天接诊患者所购买各个药品条码和数量。基于上述设计,实现该统计共需哪几个关系?为提高该统计效率,允许对范式条件放宽要求,请修改“购药”关系模式以优化该统计。
阅读下列说明,回答问题1和问题2,将解答填入答题纸对应栏内。【说明】 某抢红包软件规定发红包人可以一次抛出多个红包,由多个人来抢。要求每个抢红包人最多只能抢到同一批次中一个红包,且存在多个人同时抢同一红包情况。给定红包关系模式如下:Red(ID,BatchID,SenderID,Money,ReceiverID)其中 ID 唯一标识每一个红包; BatchID 为发红包批次,一个 BatchID 值可以对应多个ID 值;SenderID 为发红包人标识;Money 为红包中钱数; ReceiverID 记录抢到红包人标识。发红包人一次抛出多个红包,即向红包表中插入多条记录,每条记录表示一个红包, 其 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) 操作。假设有多个人同时抢同一红包(即同时对同一记录进行操作),用 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)......是否会产生死锁?并说明理由。 (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 AND 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;//写入红包记录UPDATE 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和问题2,将解答填入答题纸对应栏内。【说明】 某图书馆图书借还业务使用如下关系模式:书目(ISBN,书名,出版社,在库数量)图书(书号,ISBN,当前位置)其中在库数量为当前书目可借出图书数量,每本图书入库后都会有当前位置,借出后当前位置字段改为空值。每一条书目信息对应多本相同图书,每一本图书只能对应一条书目。借还书业务基本流程如下描述:(1)读者根据书名查询书目,当前书目在库数量大于0时可借阅。(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(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 BookNo 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-3;} ____(d)______;return 0;}
阅读下列说明,回答问题1至问题5,将解答填入答题纸对应栏内。【说明】某公司要对其投放自动售货机建立商品管理系统,其数据库部分关系模式如下:售货机: VEM(VEMno, Location) ,各属性分别表示售货机编号、部署地点;商品: GOODS(Gno, Brand, Price) ,各属性分别表示商品编号、品牌名和价格;销售单: SALES(Sno, VEMno,Gno,SDate,STime),各属性分别表示销售号、售货机编号、商品编号、日期和时间。缺货单: OOS(VEMno,Gno,SDate,STime ),各属性分别表示售货机编号、商品编号、 日期和时间。相关关系模式属性及说明如下: (1)售货机摆放固定种类商品,售货机内每种商品最多可以储存10 件。管理员在每天结束时候将售货机中所有售出商品补全(2)每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品销售记录达到10 条,则表明该售货机上该商品已售完,需要通知系统立即补货,通过自动向缺货单中添加一条缺货记录来实现。根据以上描述,回答下列问题,将SQL语句空缺部分补充完整。【问题1】请将下面创建销售单表 SQL 语句补充完整,要求指定关系主码和外码约束。CREATE TABLE SALES (Sno CHAR(8) ( a )VEMno CHAR(5) ( b )Gno CHAR(8) ( c ) SDate DATE,STime TIME);【问题2】创建销售记录详单视图 SALES_Detail ,要求按日期统计每个售货机上各种商品销售数量,属性有 VEMno、Location 、Gno、Brand 、Price 、amount 和 SDate。为方便实现,首先建立一个视图 SALES_Total ,然后利用SALES_Total 完成视图 SALES_Detail 定义。CREATE VIEW SALES _Total(VEMno,Gno,SDate,amount) ASSELECT VENno ,Gno ,SDate ,count(*)FROM SALESGROUP BY ( d );
CREATE VIWE ( e ) ASSELECT VEM.VEMno,Location ,GOODS.Gno ,Brand,Price,amount,SDateFROM VEM,GOODS,SALES_TotalWHERE ( f ) AND ( g )【问题3】每售出一件商品,就自动向销售单中添加一条销售记录。如果一天内某个售货机上某种商品销售记录达到 10 条,则自动向缺货单中添加一条缺货记录。需要用触发器来实现缺货单自动维护。程序中 GetTime( )获取当前时间。CREAT ( h ) OOS_TRG AFTER ( i ) ON SALES REFERENCING new row AS nrow FOR EACH ROWBEGININSERT INTO OOSSELECT SALES .VENno, ( j ) GetTime( )FROM SALESWHERE SALES.VEMno = nrow.VEMno AND SALES.Gno = nrow.GnoAND SALES.SDate = nrow.SDateGROUP BY SALES.VEMno,SALES.Gno,SALES.SDateHAVING count(*)> 0 AND mod(count(*),10)=0;END【问题4】查询当天销售最多商品编号、品牌和数量。程序中 GetDate( )获取当天日期。SELECT GOODS.Gno ,Brand, ( k )FROM GOODS,SALESWHERE GOODS.Gno=SALES.GNO AND SDATE =GetDate( )GROUP BY ( l )HAVING( m ) (SELECT count(*)FROM SALELSWHERE SDATE = GetDate( )GROUP BY Gno);【问题5】查询一件都没有售出所有商品编号和品牌。SELECT Gno ,BrandFROM GOODSWHERE GNO( n )SELECT DISTINCT GNOFROM( o );
阅读下列说明,回答问题1 至问题3 ,将解答填入答题纸对应栏内。【说明】某航空公司要开发一个订票信息处理系统,该系统部分关系模式如下: 航班(航班编号,航空公司,起飞地,起飞时间,目地,到达时间,票价) 折扣(航班编号,开始日期,结束日期,折扣) 旅客(身份证号,姓名,性别,出生日期,电话,VIP折扣) 购票(购票单号,身份证号,航班编号,搭乘日期,购票金额) 有关关系模式属性及相关说明如下:(1)航班表中起飞时间和到达时间不包含日期,同一航班不会在一天出现两次及两次以上;(2)各航空公司会根据旅客出行淡旺季适时调整机票折扣,旅客购买机票购票金额计算公式为:票价×折扣×VIP折扣,其中旅客VIP折扣与该旅客已购买过机票购票金额总和相关,在旅客每次购票后被修改。VIP折扣值计算由函数float vip_value(char[18]身份证号)完成。根据以上描述,回答下列问题。 【问题1】请将如下创建购票关系SQL语句空缺部分补充完整,要求指定关系主键、外键,以及购票金额大于零约束。 CREATE TABLE 购票( 购票单号 CHAR(15) ___(a)___, 身份证号 CHAR(18), 航班编号 CHAR(6), 搭乘日期 DATE, 购票金额 FLOAT __(b)__, ___(c)__, ___(d)__, );【问题2】(1)身份证号为210000196006189999客户购买了2013年2月18日CA5302航班机票,购票单号由系统自动生成。下面SQL语句将上述购票信息加入系统中,请将空缺部分补充完整。INSERT INTO 购票(购票单号,身份证号,航班编号,搭乘日期,购票金额) SELECT '201303105555','210000196006189999','CA5302','2013/2/18', __(e)__ FROM 航班,折扣,旅客 WHERE __(f)__ AND 航班.航班编号='CA5302' AND '2013/2/18' BETWEEN 折扣.开始日期 AND 折扣.结束日期 AND 旅客.身份证号='210000196006189999';(2)需要用触发器来实现VIP折扣修改,调用函数vip_value( )来实现。请将如下SQL语句空缺部分补充完整。 CREATE TRIGGER VIP_TRG AFTER ___(g)___ ON ___(h)___ RE FERENCING new row AS nrow FOR EACH row BEGIN UPDATE 旅客 SET ___(i)___ WHERE ___(j)___;END【问题3】请将如下SQL语句空缺部分补充完整。(1)查询搭乘日期在2012年1月1日至2012年12月31日之间,且合计购票金额大于等于10000元所有旅客身份证号、姓名和购票金额总和,并按购票金额总和降序输出。 SELECT 旅客.身份证号,姓名,SUM(购票金额) FROM 旅客,购票 WHERE ___(k)___ GROUP BY ___(l)___; ORDER BY ___(m)___;(2)经过中转航班与相同始发地和目地直达航班相比,会享受更低折扣。查询从广州到北京,经过一次中转所有航班对,输出广州到中转地航班编号、中转地、中转地到北京航班编号。 SELECT ___(n)___ FROM 航班航班1,航班 航班2 WHERE ___(o)___;