汽车销售系统数据库设计.docx
《汽车销售系统数据库设计.docx》由会员分享,可在线阅读,更多相关《汽车销售系统数据库设计.docx(31页珍藏版)》请在冰豆网上搜索。
汽车销售系统数据库设计
成教学院
《数据库课程设计》论文
题目:
汽车销售系统数据库设计
学号:
XXXXXXXXXX
专业班级:
10级计算机<1>班
姓名:
XXX
指导老师:
XXX、XX、XXX等
完成日期:
2012、06、29
《数据库课程设计》论文1
1.绪论3
1.1摘要3
1.2引言3
1.3系统目标3
1.4可行性研究4
1.4.1操作可行性4
1.4.2法律可行性4
1.4.3经济可行性4
2.需求分析4
2.1功能分析4
2.2数据字典4
2.2.1数据项4
2.2.2数据结构5
2.2.3数据流5
2.2.4外部实体7
2.2.5处理逻辑7
2.2.6数据存储7
2.2处理对象:
8
3.概念设计11
3.1分E-R图建立11
3.1.1实体—属性11
3.1.2分E-R图13
销售单-汽车分E-R图:
13
3.2全局/整体E-R图14
4.逻辑设计14
4.1建立关系模式14
4.2关系模式规范化处理15
4.3用户子模式建立16
4.4关系模式逻辑结构定义16
表4-1汽车信息16
5.数据库物理设计18
6.数据库实施与测试18
6.1数据库实施19
6.1.1数据库及数据库对象建立19
6.1.2数据入库19
6.2数据库测试19
7.总结19
8.致谢19
9.附录19
汽车销售系统数据库设计
XXX
(成教学院计算机科学与应用10级1班)
1.绪论
1.1摘要
本课程设计为汽车销售使用SQLserver设计了一个能够独立运行的数据库系统,其中的数据包括:
汽车的单独信息、进货数据信息、销售数据信息、客户信息、营业信息以及员工的管理信息等。
还创建了相关的视图,触发器以及存储过程等,这样就更加方便了应用者的查询、更新的功能。
该数据库中的各种数据之间有紧密的联系,数据之间的关系清晰明了。
所以使用起来简单容易,而且基本上能够完成一个真正的汽车销售的系统管理。
关键字:
课程设计;数据库;汽车销售;SQLserver2008
1.2引言
随着中国改革开放的不断深入,国民生活水平不断提高,中国的汽车销售行业前景一片光明。
随之而来的便是如何解决复杂的销售系统的管理问题。
因此本数据库设计就应运而生。
对于各种汽车销售企业来说,汽车销售的管理是否有序完整直接影响到企业的经营和发展。
汽车从入库到销售以及到售后服务都是一个有机整体,他们之间联系紧密,因此汽车销售管理系统中汽车集库存信息,汽车销售信息和客户信息于一体,使操作员能够方便的处理汽车进货,出入库以及销售等信息,也能够使经营者及时掌握库存信息等。
不仅能够为客户提供一个比较满意的服务,还可以对自己的内部进行有条不紊的管理,对自己的营业情况等随时了解,这样才能够根据自己的销售情况来及时调整自己的管理、销售方式。
1.3系统目标
1.可以节省许多人力、物力开销;
2.可以系统地管理销售所产生的各种数据,且安全、高效;
3.可以迅速获取所需信息,快速地对库存、销售数量等信息的查询。
于此同时,通过本次课程设计能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等相关知识。
加强对数据库设计的综合应用,并初步掌握了小型数据库的设计。
1.4可行性研究
1.4.1操作可行性
系统直观易懂,使用方便,系统使用人性化的设计,所以,操作本系统没有太大的问题。
1.4.2法律可行性
系统开发不会侵犯他人、集体和国家的利益,不存在侵权行为,不违反国家法律规定,因此具备法律可行性。
1.4.3经济可行性
本系统的开发所需投入资金不多,本系统的使用可以节省大量的时间,管理效率会大幅度提高,因此,在经济上是可行的。
所带来的效益远远大于系统软件的开发成本。
2.需求分析
2.1功能分析
本课题主要的目的是解决汽车销售时所产生的一系列数据关系的问题,从而方便对数据的管理。
2.2数据字典
2.2.1数据项
表2-1数据项
数据项编号
数据项名
数据项含义
存储结构
DI-01
CarNo
汽车编号
char(10)
DI-02
CarName
汽车名称
char(10)
DI-03
CarColor
汽车颜色
char(10)
DI-04
CarPrice
汽车单价
float
DI-05
SNo
供应商编号
char(10)
DI-06
SName
供应商名
char(10)
DI-07
SAddr
供应商地址
char(20)
DI-08
STel
供应商电话
char(15)
DI-09
InNum
入库汽车数
int
DI-10
OutNum
出库汽车数
int
DI-11
InTime
入库时间
date
DI-12
OutTime
出库时间
date
DI-13
ADName
管理员姓名
char(10)
DI-14
BNum
购车数量
int
DI-15
BDate
购车日期
date
DI-16
Money
付款金额
float
DI-17
BNo
订单编号
char(15)
2.2.2数据结构
表2-2数据结构
数据结构编号
数据结构名称
数据结构含义
组成
DS-01
汽车
描述汽车的基本信息
CarNo,BkName,CarColor,CarPrice,SNo
DS-02
供应商
描述供应商的基本信息
SNo,SName,SAddr,STel,
DS-03
仓库
描述库存汽车的详细数据
KNo,OutNum,InNum,InTime,OutTime,KuNum
DS-04
管理员
描述管理员的基本信息
AdID,AdName,Adpaswd
DS-05
客户
描述客户的购车信息
ADNo,BNum,OutTime,Money
DS-06
进货
描述进货信息
CNo,SNo,InNum,InTime
2.2.3数据流
表2-3数据流
数据流编号
数据流名
简述
数据流来源
数据流去向
组成
F1
退货单
管理员开出退货单
管理员
供应商
汽车编码+汽车名称+数量+单价+订单号
F2
发货单
供应商开出发货单
供应商
进货模块
汽车编码+汽车名称+汽车数量+单价+发货单号+供应商
F3
订货单
管理员开出订货单
管理员
供应商
汽车编码+汽车名称+数量+单价+订单号
F4
客户退单
客户开出的退货单
客户
管理员
汽车编号+汽车名称+汽车数量
F5
销售单
管理员开出售书单
管理员
客户
汽车编号+汽车名称+汽车数量+汽车单价+销售单号
F6
客户订单
顾客开出的订书单
客户
管理员
汽车编号+汽车名称+汽车数量+汽车单价+销售单号
F7
入库清单
管理员开出的入库清单
管理员
库存帐台
图书编号+图书名称+图书数量+入库日期
F8
实物清单
管理员开出的实物清单
管理员
盘存模块
图书编号+图书名称+图书数量
F9
存盘清单
管理员开出的盘存清单
管理员
库存帐台
图书编号+图书名称+图书数量
F10
货物信息
库存帐台开的货物信息
库存帐台
销售模块
汽车编号+汽车名称+汽车数量
F11
出库单
管理员开的出库单
管理员
库存帐台
汽车编号+汽车名称+汽车数量
F12
退货单
管理员开的退货单
管理员
库存帐台
汽车编号+汽车名称+汽车数量
2.2.4外部实体
2-4外部实体
外部实体编号
外部实体名
简述
组成
输入的数据流
输出的数据流
E1
供应商
提供货物的厂商
供应商编号+名称+地址+电话
退货单、订货单
发货单
E2
仓库
存放汽车的地方
管理员姓名
实物清单
E3
客户
购买汽车的人
购买数量+购买日期+付款金额+销售订单号
销售单
客户订单、客户退单
2.2.5处理逻辑
表2-5处理逻辑
处理逻辑编号
处理逻辑名
说明
P1.1
货物验收
管理员对购进的汽车进行检验
P1.2
入库
管理员对合格的汽车进行入库处理
P1.3
退货
管理员对不合格的汽车进行退货处理
P3.1
销售货物
管理员销售客户所订购的汽车
P3.2
客户退货
管理员收回客户退回的汽车
2.2.6数据存储
表2-6数据存储
数据存储编号
数据存储名
说明
组成
相关联的处理
S1
库存帐台
商品入库、出库、退货后应修改当前库存量
商品编码+商品名称+当前库存量
P1.2+P2.1+P2.2
S2
流水账
入库、出库及退货的流水帐记录
类型+商品编码+商品名称+数量+单价+开单日期+单号
P1.2+P1.3+P2.1+P2.2
2.2处理对象:
1.管理信息
汽车管理:
通过汽车管理可以是书店管理员知道本店图书的种类、数量,以方便系统管理员通知及时处理进货和销售方式等。
汽车销售:
通过汽车销售可以知道汽车的销售情况等信息。
汽车订购:
通过汽车订购可以知道汽车的进价、数量等信息。
供应商信息:
通过供应商信息可以使管理员订购汽车更加方便。
客户:
通过客户信息可以知道销售的时间、汽车的受宠型等信息,以便调整进货,且方便合帐。
2.查询信息
查询范围:
可以根据汽车的品牌、型号等信息进行查询,从而方便顾客。
搜索时间:
可以查询一个时间段内图书的销售情况,方便管理员对畅销汽车的了解、以便调整进货。
上述需求分析可总结为如下图所示的功能结构图:
2.2业务流程图
2.2数据流图
1.顶层数据流图
2.一层数据流图
3.二层数据流图
1.进货
2.销售
3.概念设计
阐述概念设计目标、任务和方法,重点介绍概念设计的内容。
3.1分E-R图建立
3.1.1实体—属性
1.汽车信息:
2.供应商信息:
3.订单信息:
4.销售信息:
3.1.2分E-R图
销售单-汽车分E-R图:
3.2全局/整体E-R图
4.逻辑设计
概念结构设计所得到的E-R模型是对用户需求的一种抽象表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。
为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整及优化。
形成合理的全局逻辑结构,并设计出用户子模式。
转换原则如下所示:
1、一个实体型转换为一个关系模式。
2、一个m:
n联系转换为一个关系模式。
3、一个1:
n联系可以转换为一个独立关系模式,也可以与n端对应的关系模式合并。
4、一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
5、3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
6、码相同的关系模式可合并。
4.1建立关系模式
销售单:
(销售单号,销售日期,客户)
汽车:
(汽车编号,汽车名称,供应商,型号)
发货单:
(发货单号,发货日期,发货负责人)
供应商:
(供应商编号,供应商名称,供应商地址,供应商电话)
退货单:
(退货单编号,退货日期,退货负责人)
销售:
(销售单号,销售编号,销售数量,售价)
提供:
(汽车编号,发货单号)
签订:
(发货单号,供应商编号,进货数量,进价)
退货:
(汽车编号,退货单号,退货数量)
签收:
(退货单号,供应商编号)
4.2关系模式规范化处理
1.销售单:
(销售单编号,销售日期,客户)
每个销售单的销售编号是唯一的
该关系模式的函数依赖:
{销售编号→购车日期,销售编号→购车客户}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
2.汽车:
(汽车编号,汽车名称,供应商,汽车型号)
每辆车的编号是唯一的
该关系模式的函数依赖:
{汽车编号→汽车名称,汽车编号→供应商,汽车编号→汽车型号}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
3.发货单:
(发货单号,发货日期,发货负责人)
每个发货单的发货单号是唯一的
该关系模式的函数依赖:
{发货单号→发货日期,发货单号→发货负责人}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,属3NF。
4.供应商:
(供应商编号,供应商名称,供应商地址,供应商电话)
每个供应商的供应商号是惟一的
该关系模式的函数依赖:
{供应商编号→供应商名称,供应商编号→供应商地址,供应商编号→供应商电话}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
5.退货单:
(退货单编号,退货日期,退货负责人)
每个退货单的单号是惟一的
该关系模式的函数依赖:
{退货单编号→退货日期,退货单编号→退货负责人}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
6.销售:
(销售单号,销售编号,销售数量,售价)
每个购车的(销售单号,销售编号)是惟一的
该关系模式的函数依赖:
{(销售单号,销售编号)→销售数量,(销售单号,销售编号)→售价}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
7.提供:
(汽车编号,发货单号)
每个提供的(汽车编号,发货单号)是唯一的
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
8.签订:
(发货单号,供应商编号,进货数量)
每个签订的(发货单号,供应商编号)是惟一的
该关系模式的函数依赖:
{(发货单号,供应商编号)→进货数量}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
9.退货:
(汽车编号,退货单号,退货数量)
每个退货的(汽车编号,退货单号)是惟一的
该关系模式的函数依赖:
{(汽车编号,退货单号)→退货数量}
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
10.签收(退货单号,供应商编号)
每个签收的(退货订单,供应商号)是惟一的
非主属性完全依赖于码,并且不存在非主属性对码的传递依赖,达到3NF。
4.3用户子模式建立
汽车库存量(汽车编号,汽车名称,数量)
4.4关系模式逻辑结构定义
表4-1汽车信息
字段名
类型
能否为空
是否作为主键
汽车编号
char(20)
N
Primarykey
汽车型号
char(20)
N
汽车颜色
char(20)
Y
供应商名
char(20)
Y
出厂日期
date
Y
出售价格
float
Y
进价
float
Y
表4-2供应商信息
字段名
类型
能否为空
是否作为主键
供应商号
char(20)
N
Primarykey
供应商名
char(15)
Y
供应商地址
char(20)
Y
供应商电话
char(15)
Y
表4-3销售信息
字段名
类型
能否为空
是否作为主键
汽车型号
char(25)
N
N
客户编号
char(15)
N
N
销售日期
date
Y
销售价格
char(15)
Y
汽车颜色
char(10)
Y
汽车编号
char(30)
N
Primarykey
表4-4发货单
字段名
字段类型
能否为空
是否为主键
发货单号
char(10)
n
primarykey
发货日期
date
n
发货负责人
char(10)
n
表4-5退货单
字段名
字段类型
能否为空
是否为主键
退货单号
char(10)
n
primarykey
退货日期
date
n
退货负责人
char(10)
n
表4-6提供
字段名
字段类型
能否为空
是否为主键
汽车编号
char(10)
n
primarykey
发货单号
char(10)
n
表4-7签订
字段名
字段类型
能否为空
是否为主键
发货单号
char(10)
n
primarykey
供应商号
char(10)
n
进货数量
int
n
表4-8退货
字段名
字段类型
能否为空
是否为主键
汽车编号
char(10)
n
primarykey
退货单号
char(10)
n
退货数量
int
n
表4-9签订
字段名
字段类型
能否为空
是否为主键
发货单号
char(10)
n
primarykey
供应商号
char(10)
n
进货数量
int
n
表4-10签收
字段名
字段类型
能否为空
是否为主键
退货单号
char(10)
n
primarykey
供应商编号
char(10)
n
5.数据库物理设计
索引名称
类型
用途
汽车名称
唯一索引
按汽车名称查询汽车
进货日期
唯一索引
按日期查看进货单
退货日期
唯一索引
按日期查看进货单
销售日期
唯一索引
按日期查看进货单
6.数据库实施与测试
本阶段的主要任务包括数据库实施和测试两个部分。
6.1数据库实施
6.1.1数据库及数据库对象建立
数据库的创建(见附录1)
主要包括:
数据库、基本表、视图、索引、触发器以及存储过程;
6.1.2数据入库
数据库、基本表的创建(见附录1)
6.2数据库测试
测试数据及结果截图(见附录2)
视图建立及结果截图(见附录3)
7.总结
通过此课程设计,我们更进一步地掌握了《数据库系统概论》课程的相关知识,熟悉了创建数据库管理系统的全过程。
熟练地掌握了数据库创建关系的方法以及运用视图创建基本表、选择查询、参数查询的方法,本系统创建的后台数据库能够独立运行,并满足用户对库存信息、系统、销售信息和客户信息的管理需求。
不过,由于专业知识的限制,我们所制作的汽车销售管理系统仍然存在一些问题。
8.致谢
感谢朱珊娜老师、陈勇老师和王美丽老师对我们的指导,此次课程设计,老师帮助了我们很多,在此感谢老师对我们的悉心教导。
老师对工作的负责深深地影响了我们全体同学,使我们在不知不觉中全心投入了课程设计,尽自己最大的努力把课程设计做得更好。
9.附录
附录1
1.数据库创建
创建一个名为RongSH的数据库
createdatabaseRongSH
2.表创建
(1)汽车表
createtablecar
(汽车编号char(20)primarykey,
汽车型号char(20),
汽车颜色char(20),
供应商名char(20),
出厂日期date,
出售价格float,
进价float,
仓库号char(10))
(2)供应商表
createtableGYS
(供应商号char(20)primarykey,
供应商名char(15),
供应商电话char(15),
供应商地址char(20))
(3)销售表
createtableXS
(汽车型号char(25),
客户编号char(15),
销售日期date,
销售价格char(15),
汽车颜色char(10),
汽车编号char(30))
(4)发货单表
createtableFHD
(发货单号char(10)primarykey,
发货日期date,
发货负责人char(10))
(5)销售单表
createtableXSD
(销售单号char(10)primarykey,
销售日期date,
客户char(15))
(6)退货单表
createtableTH
(退货单号char(10)primarykey,
退货日期date,
退货负责人char(10))
(7)提供表
createtableTG
(汽车编号char(10),
发货单号char(10),
primarykey(汽车编号,发货单号))
(8)退货表
createtableTH
(汽车编号char(10),
退货单号char(10),
退货数量int,
primarykey(汽车编号,退货单号))
(9)签订表
createtableQD
(发货单号char(10),
供应商号char(10),
进货数量int,
primarykey(发货单号,供应商号))
(10)签收表
createtableQH
(退货单号char(10),
供应商编号char(10),
primarykey(退货单号,供应商编号))
附录2
数据库测试如下:
1.汽车
select*
fromcar
2.发货单
select*
fromFHD
3.供应商
select*
fromGYS
4.签订
select*
fromQD
5.提供
select*
fromTG
6.退货
select*
fromTH
7.退货单
select*
fromTHD
8.销售
select*
fromXS
9.销售单
select*
fromXSD
10.签收
select*
fromQH
附录3
视图建立
1.客户查询视图
createview客户查询
as
select汽车编号,汽车型号,供应商名,出厂日期,出售价格
fromcar
where供应商名='保时捷'or供应商名='宝马'
select*
from客户查询
2.退货查询视图
createview退货查询
as
select退货单号,退货日期,退货负责人
fromTHD
where退货单号='T003'or退货单号='T009'
select*
from退货查询