阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 [说明] 某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下: 员工(员工身份证号,姓名,工种,电话,住址) 会员(会员手机号,姓名,折扣) 项目(项目名称,项目经理,价格) 预

admin2016-03-25  40

问题 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某健身俱乐部要开发一个信息管理系统,该信息系统的部分关系模式如下:
员工(员工身份证号,姓名,工种,电话,住址)
会员(会员手机号,姓名,折扣)
项目(项目名称,项目经理,价格)
预约单(会员手机号,预约日期,使用时长)
消费(流水号,消费金额,消费日期)
有关关系模式的属性及相关说明如下:
(1)俱乐部有多种健身项目,不同的项目每小时的价格不同。俱乐部实行会员制,且需要电话或在线提前预约。
(2)每个项目都有一个项目经理,一个经理只能负责一个项目。
(3)俱乐部对会员进行积分,达到一定积分可以进行升级,不同的等级具有不同的折扣。
根据以上描述,回答下列问题:
[问题2]
(1)手机号为18812345678的客户预约了2014年3月18日两个小时的羽毛球场地,消费流水号由系统自动生成。请将下面SQL语句的空缺部分补充完整。
INSERT INTO消费(流水号,会员手机号,项目名称,消费金额,消费日期)
SELECT‘201403180001’,‘18812345678’,‘羽毛球’,(e),
‘2014/3/18’
FROM会员,项目,预约单
WHERE预约单.项目名称=项目.项目名称AND(f)
AND项目.项目名称=‘羽毛球’
AND会员.会员手机号=‘18812345678’;
(2)需要用触发器来实现会员等级折扣的自动维护,函数float vip_value(char(11)会员手机号)依据输入的手机号计算会员的折扣。请将下面SQL语句的空缺部分补充完整。
CREATE TRIGGER VIP_TRG AFTER(g)ON(h)
REFERENCING new row AS nrow
FOR EACH ROW
BEGIN
UPDATE会员
SET(i)
WHERE(j);
END

选项

答案(1)(e)价格,*使用时长*折扣 (f)预约单.会员手机号=会员.会员手机号 (2)(g)INSERT (h)消费 (i)折扣=vip value(nrow.会员手机号) (j)会员.会员手机号=nrow.会员手机号。

解析 本问题考查数据操纵语言DML。
(1)本题考查一个较完整的查询语句,需要向“消费”关系插入新元组。
SELECT子句缺少“消费金额”。消费金额=价格*使用时长*折扣。
WHERE子句缺少“预约单”关系和“会员”关系按照“会员手机号”的连接,因此应该增加“预约单.会员手机号=会员.会员手机号”。
(2)本题考查触发器,触发器是一个能由系统自动执行对数据库修改的语句。一个触发器由事件、条件和动态三部分组成:事件是指触发器将测试条件是否成立,若成立就执行相应的动作,否则就什么也不做;动态是指若触发器测试满足预定的条件,那么就由数据库管理系统执行这些动作。本题首先定义触发器的事件,用触发器来实现会员等级折扣的自动维护。 (g)和(h)缺少向“消费”关系插入的语句,因此应该分别补充“INSERT”和 “消费”。
(i)语句调用vip value函数实现会员折扣的更新,函数参数为会员手机号,因此应该补充“折扣=vip value(nrow.会员手机号)”。
(j)语句实现“会员”关系和“nrow”关系按照“会员手机号”的连接,因此应该补充“会员.会员手机号=nrow.会员手机号”。
转载请注明原文地址:https://kaotiyun.com/show/3uUZ777K
0

相关试题推荐
最新回复(0)