课程编号:B080109004
数据库应用程序设计实践
报告
姓班开开报设设告学时日名 Xx 级 期 间 期 软件1301 学指导教号 师 20 毛克明 2015-2016第二学期 第1周——第3周 2015-3-23 评定定日人 期 评定成绩 评
东北大学软件学院
1.关系数据库
设计以下三个表:
客户信息表:
? 客户号 (主码) NUMBER(4) ? 客户姓名 VARCHAR2(20) ? 客户类型VARCHAR2(20)
? ?
地址VARCHAR2(20)
余额 NUMBER(7,2)
计费设备表
? 计费设备号(主码) NUMBER(4) ? 客户号 (外码)NUMBER(4) ? 设备类别(01,02)Characters(1)
应收费用表
? 年月Date
? 计费设备号(外码)NUMBER(4) ? 基本费用NUMBER(7,2) ? 附加费用1 NUMBER(7,2) ? 附加费用2 NUMBER(7,2) ? 应收违约金NUMBER(7,2) ? 实收违约金NUMBER(7,2) ? 减免违约金NUMBER(7,2)
? 收费标志(0未交费,1已交费)Characters(1)
第一部分:
1.指出你所设计表的各种键值,在选择时不要考虑性能问题。
1) 指出每张表是否存在主码,若存在,请指出具体的主码,并说明原因。
CLIENT主码:CLIENTNO DEVICE主码:DEVICENO MONTHLYNEDDPAY主码:ID
这些能够作为主码的字段的数据都是唯一的,因此能够进行唯一性标识,能够作为主码来使用。
2) 指出每张表是否存在备用码(除了主码之外的所有候选码),若存在,请指出所有的备用码,
并说明原因。
Client和Device表不存在候选码,
Montthlyneedpay 中的DeviceNo和logdate 可以作为一个候选码。
3) 指出各表中存在的外码和完整性约束,并说明原因。
Client表中没有外码,但是clientno不能为空,因为它是主码。
1
DEVICE:外码是CLIENTNO,Deviceno不能为null,因为它是主码 MONTHLYNEDDPAY:外码有DEVICENO和CLIENTNO。ID不能为空
2.列出各表所有列和各列的域(数据类型和格式),并说明理由。 CLIENT:CLIENTNO是主码
DEVICE: DEVICENO是主码
MONTHLYNEDDPAY: ID是主码
第二部分:
写出如下SQL语句:
1. 用DDL语言中的CREATE TABLE语句创建以上三张表,并确定指定了表的主码和备用码;
客户信息表:
createtable CLIENT (
CLIENTNO NUMBER(4)notnull, CLIENTNAME VARCHAR2(20), ADDRESS VARCHAR2(20), BALANCE VARCHAR2(20)
)
altertable CLIENT
addconstraint PK_CLIENT_CLIENTNO primarykey(CLIENTNO) usingindex
2
计费设备表: createtable DEVICE (
DEVICENO NUMBER(4)notnull, CLIENTNO NUMBER(4), TYPECHAR(1) )
altertable DEVICE
addconstraint PK_DEVICE_DEVICENO primarykey(DEVICENO) usingindex 应收费用表:
createtable MONTHLYNEEDPAY (
IDNUMBER(10)notnull, DEVICENO NUMBER(4), CLIENTNO NUMBER(4), LOGDATE DATE, SFROM NUMBER(10), STO NUMBER(10), BASICFEE NUMBER(7,2), ADDFEE1 NUMBER(7,2), ADDFEE2 NUMBER(7,2), LATEFEE NUMBER(7,2), NEEDPAY NUMBER(7,2), ACTUALPAY NUMBER(7,2), PAYDAY DATE, PAYSTATUS CHAR(1) )
altertable MONTHLYNEEDPAY
addconstraint PK_MONTHLYNEEDPAY_ID primarykey(ID) usingindex
2. 利用INSERT语句向客户信息表中插入1条客户记录;
insertinto client(clientno,clientname,address,balance)values(1,'张三','沈阳市和平区东北大学','123.09');
3. 利用INSERT语句向计费设备表中为该客户插入2条设备记录。
Insert into device(deviceno,clientno,type) values(1,1001,?1?); Inser into device(deviceno,clientno,type) values(2,1002,?1?);
3
相关推荐: