东北大学数据库实验报告

2019-08-02 01:32

课程编号: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

4. 利用INSERT语句向应收费用表中为该客户插入2个月份的应收费信息。

Insert into monthlyneedpay

(id,deviceno,clientno,logdate,sfrom,sto,basicfee,addfee1,addfee2,latefee,needpay,actualpay,payday,paystatus)values(1,1,1001,to_date(?2015-1-31?,?YYYY-MM-DD?),120,150,10,1,2,0,14.7,0,to_date(?2015-2-5?,?yyyy-mm-dd?,),0) Insert into monthlyneedpay

(id,deviceno,clientno,logdate,sfrom,sto,basicfee,addfee1,addfee2,latefee,needpay,actualpay,payday,paystatus)values(2,2,1001,to_date(?2015-2-28?,?YYYY-MM-DD?)150,180,10,1,2,0,14.7,0,to_date(?2015-3-5?,?yyyy-mm-dd?,),0)

5. 在不考虑附加费和违约金的情况下,给定一个客户号,查询该客户号下所有设备累计应收基本费

用;

Select sum(needpay)+sum(addfee1)+sum(addfee2)+sum(latefee) from monthlyneedpay where clientno=1001;

第三部分:(理解关系运算)

1. 已知关系表r和s如下:

给出差运算r-s和s-r的结果;

表r A a d c 表s D b E g 4

B b a b F a C c f d


东北大学数据库实验报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: