客户订购登记数据库设计

  • 格式:doc
  • 大小:369.50 KB
  • 文档页数:14

课程设计题目客户订购登记数据库设计学院计算机学院专业物联网工程专业班级姓名指导教师2013 年 1 月7 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:计算机学院题目:客户订购登记数据库设计初始条件:一个公司希望为其客户订购行为建立一个数据库。

一个消费者可以有一个或多个订单,每个订单可以有一种或多种商品。

每个订单有一张发票,可以通过多种方式来支付,例如支票、信用卡或现金。

要求完成的主要任务:1.根据上述的初始条件,进行调查分析并设计适当的属性。

设计一个客户订购数据库,DBMS可选Ms SQL Server、Access、VFP等。

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)五.程序代码 (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:系统功能模块图2.E-R 图通过对设计目的的分析,可以确定各个数据模型的E-R 图。

图2 客户实体及属性图3:订单实体及属性图4:发票实体及属性图5:商品实体及属性图7:实体及其联系图三.逻辑结构设计E-R图是由实体型,实体型的属性和实体之间的联系3个要素组成的。

将E-R 图转换为关系模型就是要将实体型,实体型的属性和实体之间的联系转换为一组关系模式。

根据本系统的E_R图,将其转换为关系模式如下:Customer表:Cnum是主码四.物理结构设计1.存取方法的选择①索引方法索引方法有很多中,常用的有B+树索引,基于函数的索引,反响索引,位映射索引。

如果一个属性经常在查询条件中出现,或者经常作为最大值和最小值等聚集函数的参数。

②Hash方法Hash方法是用Hash函数来存储和存取关系记录的方法。

指定某个关系上的一个(组)属性A作为Hash码,然后对该Hash码定义一个函数,关系记录的存储地址由Hash(a)来决定,a是记录在A上的值。

如果一个关系的属性主要出现在等连接条件中或主要出现在相等比较选择条件中,而且一个关系的大小可以预知且变化不大,则此关系可以选择Hash存取方法。

③聚簇方法为了提高某个属性(或属性组)的查询速度,把这个或这些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇。

聚簇方法可以大大提高按聚簇码进行查询的效率。

聚簇方法不打不适用于单个关系,也适用于经常进行连接操作的多个关系。

一个数据库可以建立多个聚簇,一个关系只能加入一个聚簇。

2.数据库的存储结构确定数据库存储结构主要指确定关系,索引,聚簇,日志,备份等的存储安排和存储结构,确定系统配置参数等。

不同的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 ,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 smallint,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 values(‘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,PayFrom BillWhere PayMethod=“支票”;②查询“武汉1号”购买的物品的名称,价格SELECT Cname,Goodname,Gpricefrom Customer,Goodswhere Goods.Goodnum = List.Goodnum and um = um and Cname='武汉1号';③查询“武汉1号”,购买物品的话费Select Cname,PayForm Customer,BillWhere um=um and Bill.Billnum=List.List.billnum and Cname=’武汉1号;’4.数据的更新①插入客户“武汉5号”InsertInto CustomerV alues(‘5’,’武汉5号’,’000005’,’武汉五路’,’武汉公司5’,’555555’);②删除数据删除Customer中用户‘武汉5号’的数据DeleteFrom CustomerWhere Cname=’武汉5号’;③更新数据更新Customer表中’武汉2号’中电话号码为‘000000’Update CustomerSet Ctel=’000000’Where Cname=’武汉2号’;六.系统运行,调试与维护1.基本表创建和数据输入后的结果如下:Customer表List表Bill表Goods表2.查询功能结果①查询Bill表中,支付方式为“支票”的所有发票数据。

②查询“武汉1号”购买的物品的名称,价格③查询“武汉1号”,购买物品的话费3..数据的更新①插入客户“武汉5号”②删除Customer中用户‘武汉5号’的数据③更新Customer表中’武汉2号’中电话号码为‘000000’4.数据库的维护①数据库的转储和恢复②数据库的安全性,完整性控制③数据库性能的监督,分析和改造④数据库的重组织与重构造七.小结本次的数据库课程设计,花费了了将近一周的时间,基本上了本次的课程设计,取得了预期的效果。

本次的课程设计完全是按照数据库的设计的步骤完成的,首先是需求分析,然后是概念结构设计,逻辑结构的设计,数据的物理设计,最后是数据库的实施和数据库的运行与维护。

按照数据库的设计步骤,是整个设计很有结构性,同时对于在设计过程中不会出现混乱,有利于设计的顺利完成。

在课程设计的过程中遇到很多的问题,比如E-R图的设计,还有有E-R图向关系模型的转化,由于基础不牢固,其中出现了很多的错误,导致耽误了一些时间。

同时通过这些错误也是我学到了很多的知识,巩固和加深了自己对课本知识的理解,受益匪浅。

同时,这个数据库也有不足之处,由于自己能力有限,无法实现应用程序的设计与实现,但是在课程设计的过程中,我对应用程序的设计有一些想法。