天津市某银行信息系统的数据库部分关系模式如下所示: 客户 (客户号,姓名,性别,地址,邮编,电话) 账户 (账户号,客户号,开户支行号,余额) 支行(支行号,支行名称,城市,资产总额) 交易 (交易号,账户号,业务金额

admin2011-01-29  40

问题 天津市某银行信息系统的数据库部分关系模式如下所示:
   客户  (客户号,姓名,性别,地址,邮编,电话)
   账户  (账户号,客户号,开户支行号,余额)
   支行(支行号,支行名称,城市,资产总额)
   交易  (交易号,账户号,业务金额,交易日期)
   其中,业务金额为正值表示客户向账户存款;为负值表示取款。
以下是创建账户关系的SQL语句,账户号唯一识别一个账户,客户号为客户关系的唯一标识,且不能为空。账户余额不能小于1.00元。请将空缺部分补充完整。
   CREATE TABLE账户(
       账户号CHAR(19)  (a)  ,
       客户号CHAR(10)  (b)  ;
       开户支行号CHAR(6)  NOT NULL,
       余额NUMBER(8,2)  (c)  );

选项

答案(a)PRiMARY KEY/NOT NULL UNIQUE/NOT NULL PRiMARY KEY (b)FOREIGN KEY(客户号)REFERENCES客户(客户号) (c)CHECK(余额>1.00)

解析 由于问题1中“账户号唯一识别一个账户”可知账户号为账户关系的主键,即不能为空且唯一标识一条账户信息,因此需要用PRiMARY KEY对该属性进行主键约束;又由于“客户号为客户关系的唯一标识,且不能为空”可知客户号为客户关系的主键,在账户关系中应作外键,用FOREIGN KEY对该属性进行外键约束;由“账户余额不能小于1.00元”可知需要限制账户余额属性值的范围,通过CHECK约束来实现。从上分析可见,完整的SQL语句如下:
   CREATE TABLE账户(
       账户号CHAR(19)  PRiMARY KEY,
       客户号CHAR(10) FOREIGN KEY(客户号)REFERENcEs客户(客户号),
       开户支行号CHAR(6)  NOT NULL,
       余额 NUMBER(8,2) CHECK(余额>1.00));
   注:PRiMARY KEY可替换为NOT NULL UNIQUE或NOT NULL PRiMARY KEY。
转载请注明原文地址:https://kaotiyun.com/show/8wUZ777K
0

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