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