客户订购登记数据库设计.docx
《客户订购登记数据库设计.docx》由会员分享,可在线阅读,更多相关《客户订购登记数据库设计.docx(14页珍藏版)》请在冰豆网上搜索。
客户订购登记数据库设计
学号:
课程设计
题目
客户订购登记数据库设计
学院
计算机学院
专业
物联网工程专业
班级
姓名
指导教师
2013
年
1
月
7
日
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
计算机学院
题目:
客户订购登记数据库设计
初始条件:
一个公司希望为其客户订购行为建立一个数据库。
一个消费者可以有一个或多个订单,每个订单可以有一种或多种商品。
每个订单有一张发票,可以通过多种方式来支付,例如支票、信用卡或现金。
要求完成的主要任务:
1.根据上述的初始条件,进行调查分析并设计适当的属性。
设计一个客户订购数据库,DBMS可选MsSQLServer、Access、VFP等。
2.完成课程设计说明书,其格式遵守学校今年的新规定。
主要内容包括:
需求分析,概念设计,逻辑设计,物理实现等。
3.基于该数据库,最好实现一个或多个应用程序(自己确定功能),程序设计语言(工具)任选。
这一项是选作,不作硬性要求。
时间安排:
本学期第18周:
1.消化资料、系统调查1天
2.系统分析1天
3.总体设计,实施计划2天
4.撰写报告1天
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
一.需求分析.................................................................................3
1.初始条件…………………………………………………….3
2.设计目标…………………………………………………….3
3.功能析……………………………………………………….3
二.概念设计……………………………………………………….3
1.总体功能图………………………………………………….3
图………………………………………………………..4
三.逻辑结构设计…………………………………………….…...5
四.物理结构设计…………………………………………………6
1.存取方法的选择……………………………………………..6
2.数据库的存储结构…………………………………………..7
五.程序代码………………………………………………………7
1.基本表的定义………………………………………………..7
2.数据的插入…………………………………………………..8
3.查询功能……………………………………………………..8
4.数据的更新…………………………………………………..9
六.系统运行,调试与维护……………………………………..9
1.基本表输入数据后结果……………………………………..9
2.查询功能结果……………………………………………….10
3.数据的更新………………………………………………...10
4.数据库的维护……………………………………………...11
七.小结…………………………………………………………..11
客户订购登记系统软件设计
一.需求分析
1.初始条件
一个公司希望为其客户订购行为建立一个数据库。
一个消费者可以有一个或多个订单,每个订单可以有一种或多种商品。
每个订单有一张发票,可以通过多种方式来支付,例如支票、信用卡或现金。
2.设计目标
根据上述的初始条件,进行调查分析并设计适当的属性。
设计一个客户订购数据库,DBMS。
基于该数据库,实现一个或多个应用程序(自己确定功能)。
3.功能分析
通过对设计目的的分析,可以确定该系统需要完成几个基本功能的实现:
①客户信息的查询:
通过输入客户号对客户的基本信息进行查询,客户的基本信息包括姓名,电话,地址,公司,所拥有的订单;
②订单的查询:
通过输入订单号对订单的基本信息进行查询,订单的基本信息包括持有该订单的客户,该订单对应的发票号,该订单的支付方式以及该订单中所包含的商品号及其数量;
③发票的查询:
通过输入发票号对发票的基本信息进行查询,发票的基本信息包括该发票对应的客户号,订单号,该发票上的总额以及支付方式;
④客户的新建:
能够对数据库中所没有的新客户进行创建并将新客户的信息保存到数据库中;
⑤订单的新建(发票的新建):
能够建立新的订单,同时建立与订单对应的发票,并将新建订单保存到数据库中;
⑥商品的查看:
通过输入商品号对商品进行查看,能查询到商品的名字,单价及其库存数量;
4.基本表
根据该系统的功能,该系统应该包括以下几个基本表:
Customer表(保存客户相关信息数据)
List表(保存订单的相关信息数据)
Goods表(保存商品的相关信息数据)
Bill表(保存发票的相关信息数据)
二.概念设计
1.总体功能图
根据系统需要实现的功能,可以确定客户模块、订单模块、发票模块和商品模块,另外为了软件的使用和管理方便,设计了管理模块和退出模块,各模块下面建立各自的窗口系统,模块图如下:
图1:
系统功能模块图
图
通过对设计目的的分析,可以确定各个数据模型的E-R图。
图2客户实体及属性
图3:
订单实体及属性
图4:
发票实体及属性
图5:
商品实体及属性
n
1
1
1n
11
n
图7:
实体及其联系图
三.逻辑结构设计
E-R图是由实体型,实体型的属性和实体之间的联系3个要素组成的。
将E-R图转换为关系模型就是要将实体型,实体型的属性和实体之间的联系转换为一组关系模式。
根据本系统的E_R图,将其转换为关系模式如下:
Customer表:
Cnum是主码
字段名称
数据类型
Cnum(客户号)
自动编号
Cname(姓名)
文本
Ctel(电话)
文本
Caddr(地址)
文本
Ccom(公司)
文本
Listnum(订单1)
Int
…
List表:
Listnum主码
字段名称
数据类型
Listnum(订单号)
自动编号
Cnum(客户号)
Int
Billnum(发票号)
Int
PayMethod(支付方式)
文本
Good1(商品号1)
文本
Num1(商品数量)
文本
Good2(商品号2)
文本
…
Bill表:
Bill主码
字段名称
数据类型
Billnum(发票号)
自动编号
Listnum(订单号)
Int
Cnum(客户号)
Int
Pay(支付金额)
文本
PayMethod(支付方式)
文本
Goods表:
Goodnum主码
字段名称
数据类型
Goodnum(商品号)
文本
Goodsname(商品名)
文本
Gprice(价格)
文本
Gstore(库存量)
文本
四.物理结构设计
1.存取方法的选择
①索引方法
索引方法有很多中,常用的有B+树索引,基于函数的索引,反响索引,位映射索引。
如果一个属性经常在查询条件中出现,或者经常作为最大值和最小值等聚集函数的参数。
②Hash方法
Hash方法是用Hash函数来存储和存取关系记录的方法。
指定某个关系上的一个(组)属性A作为Hash码,然后对该Hash码定义一个函数,关系记录的存储地址由Hash(a)来决定,a是记录在A上的值。
如果一个关系的属性主要出现在等连接条件中或主要出现在相等比较选择条件中,而且一个关系的大小可以预知且变化不大,则此关系可以选择Hash存取方法。
③聚簇方法
为了提高某个属性(或属性组)的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。
聚簇方法可以大大提高按聚簇码进行查询的效率。
聚簇方法不打不适用于单个关系,也适用于经常进行连接操作的多个关系。
一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇。
2.数据库的存储结构
确定数据库存储结构主要指确定关系,索引,聚簇,日志,备份等的存储安排和存储结构,确定系统配置参数等。
不同的DBMS产品提供的磁盘空间管理策略差别很大,在磁盘上存储关系,索引和聚簇的方法也不同,很难拿给出一个通用的数据库存储结构选择方法。
五.程序代码
1.基本表的定义
Customer表创建:
CreatetableCustomer
(Cnumsmallintprimarykey,
Cnamechar(7),
Ctelchar(10),
Caddrchar(20),
Ccomchar(20),
Listnumchar(10)
);
List表创建:
CreatetableList
(Listnumsmallintprimarykey,
Cnumsmallint,
Billnumsmallint,
PayMethodchar(5),
Goodnumchar(10),
Numchar
(2),
ForeignkeyCnumreferencesCustomer(Cnum),
ForeignkeyBillnumreferencesBill(Billnum),
ForeignkeyGoodnumreferencesGoods(Goodnum)
);
Bill表创建:
CreatetableBill
(Billnumsmallintprimarykey,
Listnumsmallint,
Cnumsmallint,
Paychar(10),
PayMethodchar(5),
ForeignkeyListnumreferencesList(Listnum),
ForeignkeyCnumreferencesCustomer(Cnum)
);
Goods表创建:
CreatetableGoods
(Goodnumchar(10)primarykey,
Goodnamechanr(10),
Gpricechar(10),
Gstorechar(5)
):
2.数据的插入
由于数据插入方法相似,在此,只写Goods表的插入代码
InsertintoGoodsvalues(‘000001’,’苹果’,’元/公斤’,’100’);
InsertintoGoodsvalues(‘000002’,’梨’,’元/公斤’,’50’);
InsertintoGoodsvalues(‘000003’,’橘子’,’元/公斤’,’150’);
InsertintoGoodsvalues(‘000001’,’香蕉’,’元/公斤’,’100’);
3.查询功能
①查询Bill表中,支付方式为“支票”的所有发票数据。
SelectBillnum,Listnum,Cnum,Pay
FromBill
WherePayMethod=“支票”;
②查询“武汉1号”购买的物品的名称,价格
SELECTCname,Goodname,Gprice
fromCustomer,Goods
where=and=andCname='武汉1号';
③查询“武汉1号”,购买物品的话费
SelectCname,Pay
FormCustomer,Bill
Where=and=andCname=’武汉1号;’
4.数据的更新
①插入客户“武汉5号”
Insert
IntoCustomer
Values(‘5’,’武汉5号’,’000005’,’武汉五路’,’武汉公司5’,’555555’);
②删除数据
删除Customer中用户‘武汉5号’的数据
Delete
FromCustomer
WhereCname=’武汉5号’;
③更新数据
更新Customer表中’武汉2号’中电话号码为‘000000’
UpdateCustomer
SetCtel=’000000’
WhereCname=’武汉2号’;
六.系统运行,调试与维护
1.基本表创建和数据输入后的结果如下:
Customer表
List表
Bill表
Goods表
2.查询功能结果
①查询Bill表中,支付方式为“支票”的所有发票数据。
②查询“武汉1号”购买的物品的名称,价格
③查询“武汉1号”,购买物品的话费
3..数据的更新
①插入客户“武汉5号”
②删除Customer中用户‘武汉5号’的数据
③更新Customer表中’武汉2号’中电话号码为‘000000’
4.数据库的维护
1数据库的转储和恢复
2数据库的安全性,完整性控制
3数据库性能的监督,分析和改造
4数据库的重组织与重构造
七.小结
本次的数据库课程设计,花费了了将近一周的时间,基本上了本次的课程设计,取得了预期的效果。
本次的课程设计完全是按照数据库的设计的步骤完成的,首先是需求分析,然后是概念结构设计,逻辑结构的设计,数据的物理设计,最后是数据库的实施和数据库的运行与维护。
按照数据库的设计步骤,是整个设计很有结构性,同时对于在设计过程中不会出现混乱,有利于设计的顺利完成。
在课程设计的过程中遇到很多的问题,比如E-R图的设计,还有有E-R图向关系模型的转化,由于基础不牢固,其中出现了很多的错误,导致耽误了一些时间。
同时通过这些错误也是我学到了很多的知识,巩固和加深了自己对课本知识的理解,受益匪浅。
同时,这个数据库也有不足之处,由于自己能力有限,无法实现应用程序的设计与实现,但是在课程设计的过程中,我对应用程序的设计有一些想法。
我相信,通过以后不断的学习,我会掌握应用程序所需要的知识。
本次的课程设计,参考了很多的资料和参考书,同时也得到了很多同学的帮助,才顺利的完成了本次课程设计。
通过本次设计,使我认识到课程设计中掌握足够的知识是必要的条件,只有掌握足够的知识,才能解决很多以后出现的问题。
本科生课程设计成绩评定表
班级:
姓名:
学号:
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
10
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
10
6
设计验收
10
总得分/等级
评语:
注:
最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
年 月 日