资源描述
课 程 设 计
课程名称___ 数据库系统 ___
题目名称___ 进销存管理系统____
学生学院______计算机学院______
专业班级______
学 号
学生姓名_____________
指导教师______ 左亚尧________
2013 年 1 月 16日
目 录
1 引言 4
1.1课题研究内容 4
1.2主要工作 4
2 需求分析 4
2.1系统模块 4
2.2信息要求分析 5
2.3处理要求分析 6
2.4数据字典及安全性、完整性要求分析 7
2.4.1安全性和完整性需求 7
2.4.2数据字典 7
2.4.3处理过程 7
3 概念结构设计 12
3.1数据实体描述及分ER图 13
3.2整体ER图 14
4 系统概要设计 15
数据库逻辑结构设计 15
5 系统详细设计 18
5.1数据库实施 18
5.2数据库物理设计 21
5.3数据库的数据完整性设计 21
5.4数据的安全设计 22
5.4系统功能模块的设计与实现 22
5.5系统功能测试 32
5.6数据库性能检测与备份设计 32
5.7系统安装使用说明 35
5.7.1导入项目到MyEclipse 35
5.7.2为MyEclipse整合Tomcat服务器 36
5.7.3发布项目 37
6 总结与心得 37
6.1总结 37
6.2心得 37
参考文献 39
1 引言
1.1课题研究内容
本次课题使用jsp + servlet技术和SQL Server 2008 数据库开发跨平台的应用程序。本次课程设计,我们需要学习:如何进行数据库分析和数据库建模和对jsp、servlet技术的熟悉以及整个软件开发的流程。
1.2主要工作
整个工作是对整个进销存系统进行需求分析、概念结构分析、系统概要设计、系统详设计、数据库的实施、系统编码。
2 需求分析
实现企业行细化管理是现代社会中小企业稳步发展的必要条件,它可以提高企业的管理水平和工作效率,最大限度地减少手工操作带来的失误。进销存管理系统正是一个信息化管理软件,可以实现企业的进货、销售、库存管理等各项业务的信息化管理。
2.1系统模块
系统划分为五大模块:进货管理模块、基础信息管理模块、销售管理模块、查询统计模块和系统管理模块。
进货管理模块:对进货、退货单进行设置。
基础信息管理模块:对客户信息、商品信息、供应商信息的添加、修改和删除。
销售管理模块:对销售和销售退货进行设置。
查询统计模块:对客户信息,商品信息,供应商,进货、进货退货、销售、销售退货的信息进行查询的功能模块。
系统管理模块:对操作员进行添加和删除,更改操作员密码,系统用户登录。
系统功能结构(如图):
图2-1
2.2信息要求分析
通过详细调查分析,进销存管理系统模块应满足以下信息需求:
商品信息:商品编码、商品名称、简称、产地、规格、备注
客户信息:客户编码、客户名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail
供应商信息:供应商编码、名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail
销售主要信息:商品编码、客户编码、单位、单位价格、销售量
销售退货主要信息:商品编码、客户编码、单位、单位价格、退货量
进货主要信息:商品编码、供应商编码、单位、单位价格、进货量
进货退货主要信息:商品编码、供应商编码、单位、单位价格、退货量
登录用户信息:登录名、密码、权限
2.3处理要求分析
通过详细调查分析,进销存管理系统模块应满足以下处理需求:
登录用户的权限:管理员通过用户添加页面,拥有添加、删除用户的权限,普通用户没有添加用户的权限,但能完成对客户、供应商、商品、进货单、退货单、销售单、销售退货单的增、删、查、改。
登录:用户可通过登录页面登录,登录时用户必须填写用户名、密码,通过验证之后方可进入系统。
客户信息:普通用户可以通过添加页面、修改页面、查询页面,添加、修改、删除、查询客户信息,包括客户名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail。
供应商信息:普通用户可以通过添加页面、修改页面、查询页面,添加、修改、删除、查询供应商信息,包括客户名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail。
商品信息:普通用户可以通过添加页面、修改页面、查询页面,添加、修改、删除、查询商品信息,包括商品名称、简称、产地、单位、规格、包装、备注。
进货、退货:普通用户可以通过进货页面可以进行进货单添加查询,通过进货退货单页面进行退货单添加查询。信息包括商品名、供应商名、进货量、退货量。
销售、脱货:普通用户可以通过进货页面可以进行销售单添加查询,通过销售退货单页面进行退货单添加查询。信息包括,商品名、供应商名、销售量、退货量。
2.4数据字典及安全性、完整性要求分析
2.4.1安全性和完整性需求
(1)管理员拥有添加、删除普通用户的权限,普通用户能够进行除了添加、删除普通用户权限的其他所有功能。
(2)管理员、普通用户由用户名唯一标识,用户名由管理员添加产生;用户名不能与其他用户相同且只能又数字和字母组成,用户密码不允许为空;权限也不允许为空。
(3)每个商品由商品编码唯一标识,商品编码由系统按顺序生成。商品名、产地、规格不允许为空。
(4)每个客户由客户编码唯一标识,客户编码由系统按顺序生成。客户名、联系人、联系电话不允许为空。
(5)供应商由供应商编码唯一标识,供应商编码由系统按顺序生成。供应商名称、联系人、联系电话不允许为空。
(6)一个供应商可以供应多种商品,一种商品可以由多个供应商供应;一个客户可以买多种商品,一种商品可以为多个客户所购买。
(7)一个进货单对应一个供应商和一种商品;一个进货退货单也对应一个供应商和一种商品。进货和进货退货单由供应商和商品进行标识,单位、单位价格、进货量、退货量不允许为空。
(8)一个销售单对应一个客户和一种商品;一个销售退货单对应一个客户和一种商品。进货和销售退货单由供应商和商品进行标识,单位、单位价格、进货量、退货量不允许为空。
2.4.2数据字典
1、数据项
数据项名
别名
数据类型
数据长度
取值范围
简述
商品编码
GID
字符型
8位
惟一标识商品的编码
商品名称
GName
字符型
16位
商品名唯一
简称
GShortName
字符型
8位
商品的别名
产地
Gfield
字符型
30位
规格
Standard
字符型
4位
备注
Remark
字符型
100位
客户编码
UID
字符型
8位
唯一标识客户的身份
客户名称
UName
字符型
16位
客户的名称
简称
UShortName
字符型
8位
客户的简称
住址
UAddr
字符型
30位
客户的住址
邮政编码
UCode
字符型
6位
只有数字组成
电话
UTel
字符型
15位
只有数字组成
客户的电话
E-mail
UE-mail
字符型
30位
客户的电子邮箱
传真
UFax
字符型
15位
联系人
ULinkman
字符型
20位
客户的联系人
联系电话
ULinkTel
字符型
15位
客户的联系电话
供应商编码
SID
字符型
8位
供应商的唯一标识
名称
SName
字符型
16位
供应商的名称
简称
SShortName
字符型
8位
供应商的简称
住址
SAddr
字符型
30位
供应商的住址
邮政编码
SCode
字符型
6位
只有数字组成
E-mail
SE-mail
字符型
30位
供应商的电子邮箱
电话
STel
字符型
15位
只有数字组成
供应商的电话
传真
SFax
字符型
15位
供应商的传真
联系人
SLinkman
字符型
20位
供应商的联系人
联系电话
ULinkTel
字符型
15位
供应商的联系电话
单位
Unit
字符型
4位
商品的计算单位
单位价格
UnitPrice
字符型
4位
商品的单位价格
销售量
Sell
整型
8位
0~ 10^8-1
商品的销售量
进货量
Stock
整型
8位
0~ 10^8-1
商品的进货量
销售退货量
SellReturn
整型
8位
0~ 10^8-1
商品的销售退货量
进货退货量
StockReturn
整型
8位
0~ 10^8-1
商品的进货退货量
登录名
Username
字符型
15位
登录系统时需要的登录名,登录名唯一
密码
Password
字符型
16位
登陆系统需要的密码,密码只由数字和字母组成
权限
Type
字符型
8位
只有两种权限类型,“管理员”、“普通用户”
2、数据结构
名称
别名
含义
组成
登录信息表
User表
登录用户的基本信息
登录名+密码+权限
客户信息表
Client表
客户的基本信息
客户编码+客户名称+简称+住址
+邮政编码+电话+传真+联系人
+联系电话+E-mail
商品信息表
Goods表
商品基本信息表
商品编码+商品名称+简称
+产地+规格+备注
供应商信息表
Provider表
供应商基本信息表
供应商编码+名称+简称+住址
+邮政编码+电话+传真+联系人
+联系电话+E-mail
进货信息表
Stock表
进货信息基本表
商品编码+供应商编码+
+进货量
进货退货表
StockReturn表
进货退货信息基本表
商品编码+供应商编码+
+退货量
销售信息表
Sell表
销售信息基本表
商品编码+客户编码+
+销售量
销售退货信息表
SellReturn表
销售退货基本信息表
商品编码+客户编码+
+退货量
3、部分处理过程
(1)登录
名称: 用户登录
----------------------------------------------------------------------------------------------------------------------
功能描述: 用户登录是负责所有的用户的登录,用户要登录到系统必须经过登录界面,输入自己的用户名和密码,通过判断这个用户的权限信息,不同的登录人可能具有不同的权限,根据不同的权限现实不同的功能。
----------------------------------------------------------------------------------------------------------------------
输入: 账号、密码、类型
输出: 验证通过,进入系统;验证不通过,给与错误提示基本信息管理
(2)客户信息管理
名称: 客户信息管理
----------------------------------------------------------------------------------------------------------------------
功能描述: 客户信息管理系统用于添加、删除、修改客户信息。
----------------------------------------------------------------------------------------------------------------------
输入: 新客户信息
输出: 添加完成时给予提示信息
(3)商品信息管理
名称: 商品信息管理
----------------------------------------------------------------------------------------------------------------------
功能描述: 商品信息管理系统用于添加、删除、修改商品信息。
----------------------------------------------------------------------------------------------------------------------
输入: 新商品信息
输出: 添加完成时给予提示信息
(4)供应商信息管理
名称: 供应商信息管理
-------------------------------------------------------------------------------
功能描述: 供应商信息管理系统用于添加、删除、修改供应商信息。
-------------------------------------------------------------------------------
输入: 新供应商信息
输出: 添加完成时给予提示信息
(5)进货单
名称: 进货单
----------------------------------------------------------------------------------------------------------------------
功能描述: 商品进货单管理系统用于设置企业的进货单信息。进货单功能主要负责记录企业的商品进货信息,可以单击“添加”按钮,在商品表中添加进货的商品信息。在“供应商”下拉列表框中选择不同的供应商,将会改变商品表中可以添加的商品。
----------------------------------------------------------------------------------------------------------------------
输入: 商品进货信息
输出: 完成时给予提示信息
(6)进货退货
名称: 进货退货
----------------------------------------------------------------------------------------------------------------------
功能描述: 商品进货退货管理系统用于管理企业进货退货信息。进货退货功能主要负责记录进货管理中的退货信息提示。在选择了退货的商品之后,单击“退货”按钮,将把表格中的商品退货信息更新到数据库中。
----------------------------------------------------------------------------------------------------------------------
输入: 商品退货信息
输出: 完成时给予提示信息
(7)销售单
名称: 销售单
----------------------------------------------------------------------------------------------------------------------
功能描述: 商品销售单系统用于设置企业的销售单信息。销售单功能主要负责记录企业的商品销售信息,可以单击“添加”按钮,在商品表中添加销售的商品信息。----------------------------------------------------------------------------------------------------------------------
输入: 商品销售信息
输出: 完成时给予提示信息
(8)销售退货
名称: 销售退货
----------------------------------------------------------------------------------------------------------------------
功能描述: 商品销售退货系统用于管理企业销售退货信息。销售退货功能主要负责记录销售管理中的退货信息提示。在选择了退货的商品之后,单击“退货”按钮,将把表格中的商品退货信息更新到数据库中。
----------------------------------------------------------------------------------------------------------------------
输入: 商品销售退货信息
输出: 完成时给予提示信息
(9)客户信息查询
名称:客户信息查询
---------------------------------------------------------------------------------------------------------------------
功能描述:客户信息查询系统
客户查询功能主要用于查询系统中的客户信息,其查询方式可以按照客户全称匹配查询。---------------------------------------------------------------------------------------------------------------------
输入:客户查询条件
输出:客户信息
(10)商品信息查询
名称:商品信息查询
---------------------------------------------------------------------------------------------------------------------
功能描述:商品信息查询系统
商品查询功能主要用于查询系统中的商品信息,其查询方式可以按照商品全称、商品编号进行匹配查询和模糊查询。
---------------------------------------------------------------------------------------------------------------------
输入:商品查询条件
输出:商品信息
(11)供应商查询信息
名称:供应商查询信息
---------------------------------------------------------------------------------------------------------------------
功能描述:供应商查询信息系统
供应商查询功能主要用于查询系统中的供应商信息,其查询方式可以按照供应商全称进行匹配查询。
---------------------------------------------------------------------------------------------------------------------
输入:供应商查询条件
输出:供应商信息
(12)操作员管理
名称:操作员管理
---------------------------------------------------------------------------------------------------------------------
功能描述:操作员管理系统
添加或删除新的操作员信息
---------------------------------------------------------------------------------------------------------------------
输入:操作员信息
输出:添加或删除完成时给予提示信息
(13)更改密码
名称:更改密码
---------------------------------------------------------------------------------------------------------------------
功能描述:更改密码系统
更改新的操作员密码信息
---------------------------------------------------------------------------------------------------------------------
输入:操作员新密码信息
输出:更改完成时给予提示信息
(14)权限管理
名称:权限管理
---------------------------------------------------------------------------------------------------------------------
功能描述:操作员权限管理系统
更改操作员新的权限管理信息
---------------------------------------------------------------------------------------------------------------------
输入:操作员权限管理信息
输出:更改完成时给予提示信息
3 概念结构设计
3.1数据实体描述及分ER图
1、商品实体E-R模型设计
2、客户实体E-R模型设计
3、供应商实体E-R模型设计
3.2整体ER图
总体E-R模型设计
4 系统概要设计
数据库逻辑结构设计
字段号
代码
类型
约束
登录名
UserName
char(15)
主键
密码
Password
char(16)
非空
权限
Type
char(8)
‘普通用户’‘管理员’
1、用户关系模式
用户(登录名,密码,权限)
属于3NF
2、商品关系模式
商品(商品编码,商品名称,简称,产地,规格,备注)
字段号
代码
类型
约束
商品编码
GID
char(8)
主键
商品名称
GName
char(16)
非空,非聚集索引
简称
GShortName
char(8)
产地
GField
char(30)
非空
规格
Standard
char(4)
备注
Remark
char(100)
属于3NF
3、客户关系模式
客户(客户编码、客户名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail)
字段号
代码
类型
约束
客户编码
UID
char(8)
主键
客户名称
UName
char(16)
非空, 非聚集索引
简称
UShortName
char(8)
住址
UAddr
char(30)
E-mail
UE_mail
char(30)
非空
邮政编码
UCode
char(6)
电话
UTel
char(15)
传真
UFax
char(15)
非空
联系人
ULinkman
char(20)
非空
联系电话
ULinkTel
char(15)
非空
属于3NF
4、供应商关系模式
供应商(供应商编码、名称、简称、住址、邮政编码、电话、传真、联系人、联系电话、E-mail)
字段号
代码
类型
约束
供应商编码
SID
char(8)
主键
供应商名称
SName
char(16)
非空, 非聚集索引
简称
SShortName
char(8)
住址
SAddr
char(30)
E-mail
SE_mail
char(30)
非空
邮政编码
SCode
char(6)
电话
STel
char(15)
传真
SFax
char(15)
非空
联系人
SLinkman
char(20)
非空
联系电话
SLinkTel
char(15)
非空
属于3NF
5、销售关系模式
销售(商品编码、客户编码、单位、单位价格、销售量)
字段号
代码
类型
约束
销售表编码
SlID
char(16)
主键,唯一标识销售关系
商品编码
GID
char(8)
与Goods表中GID外键关联, 非聚集索引
客户编码
CID
char(8)
与Client表中CID外键关联, 非聚集索引
单位
Unit
char(16)
非空
单位价格
UnitPrice
char(15)
非空
销售量
Sl
int
非空
属于3NF
6、销售退货关系模式
销售退货(商品编码、客户编码、单位、单位价格、退货量)
字段号
代码
类型
约束
销售退货表编码
SlRID
char(16)
主键,唯一标识销售退货表
商品编码
GID
char(8)
与Goods表中GID外键关联, 非聚集索引
客户编码
CID
char(8)
与Client表中CID外键关联, 非聚集索引
单位
Unit
char(16)
非空
单位价格
UnitPrice
char(15)
非空
销售退货量
SlReturn
int
非空
属于3NF
7、进货关系模式
进货(商品编码、供应商编码、单位、单位价格、进货量)
字段号
代码
类型
约束
进货表编码
StoID
char(16)
主键,唯一标识进货表
商品编码
GID
char(8)
与Goods表中GID外键关联, 非聚集索引
供应商编码
SID
char(8)
与Supplier表中CID外键关联, 非聚集索引
单位
Unit
char(16)
非空
单位价格
UnitPrice
char(15)
非空
进货量
Sto
int
非空
属于3NF
8、进货退货关系模式
进货退货(商品编码、供应商编码、单位、单位价格、退货量)
字段号
代码
类型
约束
进货退货表编码
StoRID
Char(16)
主键,唯一标识进货退货表
商品编码
GID
char(8)
与Goods表中GID外键关联, 非聚集索引
供应商编码
SID
char(8)
与Supplier表中CID外键关联, 非聚集索引
单位
Unit
char(16)
非空
单位价格
UnitPrice
char(15)
非空
进货退货量
StoReturn
int
非空
属于3NF
5 系统详细设计
5.1数据库实施
创建数据库
CREATE DATABASE [db_IMS] ON PRIMARY
( NAME = N'db_IMS', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\db_IMS.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'db_IMS_log', FILENAME = N'F:\ProgramData\SQL server 2008\data\db_IMS_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
使用SSMS创建两个登录名admin和general,两个登录名默认数据库为db_IMS,general的默认架构为dbo,创建过程如下:
创建架构admin,默认属于admin用户。代码如下:
USE db_IMS
GO
CREATE SCHEMA admin AUTHORIZATION admin
GO
创建表示例:
创建User表
CREATE TABLE admin.[User]
(
UserName nchar(15) NOT NULL,
PassWord nchar(16) NOT NULL,
Type nchar(20) NOT NULL
) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX IX_User ON admin.[User]
(
UserName
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
5.2数据库物理设计
1、系统的大小:数据文件的初始大小为3M,增长值为1M。日志问价初始大小为1M,增长值为10%。
2、索引:(1)创建User表 在username上的索引,同时username也是user表上的主键。
(2)创建Goods表的主键GID,在GName上建立非聚集索引。
(3)创建Client表的主键为CID,非聚集索引为CName
(4)创建Supplier表的主键为SID, 在SName上建立非聚集索引。
(5)创建Sell表的主键SlID,GID,CID为外键,同时在GID,CID上面建立非聚集索引。
(6)创建SellReturn表主键SlRID,GID,CID为外键,同时在GID,CID上面建立非聚集索引。
(7)创建Stock表主键StoID,GID,SID为外键,同时在GID,SID上面建立非聚集索引。
(8)创建stockReturn表主键StoRID,GID,SID为外键,同时在GID,SID上面建立非聚集索引。
3、数据设备:本系统在500G的硬盘上运行,CPU主频为2.53GHZ
4、用途说明:进销存管理系统是一个信息化管理软件,可以实现企业的进货、销售、库存管理等各项业务的信息化管理。
5.3数据库的数据完整性设计
示例:
创建User表 在username上的索引,同时username也是user表上的主键。
CREATE NONCLUSTERED INDEX IX_User ON admin.[User]
(
UserName
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
创建Client表的主键为CID,非聚集索引为CName
GO
ALTER TABLE dbo.Client ADD CONSTRAINT
PK_Client PRIMARY KEY CLUSTERED
(
CID
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX IX_Client ON dbo.Client
(
CName
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
5.4数据的安全设计
面对应用程序在数据库中设置了两个用户,一个是一般用户general,一个是管理用户admin。Admin拥有访问User表的权限,管理用户的权限,能对User表中的元组进行增删查改,不能访问其它的表。General拥有对其它表的元组的增删查改。
在数据库中的实现,admin和general的数据库角色为db_datareader和db_datewriter。Admin拥有架构admin,general拥有架构dbo;admin架构拥有表User,dbo拥有表Client、Supplier、Goods、Sell、SellReturn、Stock、StockReturn;general和admin同时有相对应的登录名和登录密码,可以实现应用程序访问数据库。
在应用程序中,用户登录从User表中取出登录名和密码进行匹配,匹配成功之后会保存起来用户的信息。每次访问数据库时都要先通过验证,验证之后才能通过相应的登录名和密码访问数据库。
5.4系统功能模块的设计与实现
数据库连接(JDBC)
public class DBConnection {
private static final String DBDRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";//驱动类类名
private static final String DBURL = "jdbc:sqlserver://localhost:1433;DatabaseName=db_IMS";//url
private static String DBUSER = null;//数据库用户名
private static String DBPASSWORD = null;//数据库用户密码
public static void setGeneral() {//一般用户的用户名和密码
DBUSER="general";
DBPASSWORD="admin";}
public static void setAdmin() {//管理用户的用户名和密码
DBUSER="admin";
DBPASSWORD="admin";}
public static Connection getConnection(){
Connection conn = null;//声明一个连接对象
try{Class.forName(DBDRIVER);//注册驱动
conn = DriverManager.getConnection(DBURL,DBUSER
展开阅读全文