资源描述
辽 宁 工 业 大 学
数据库原理与应用 课程设计
题目: 沈阳鹏达体育用品销售管理数据库系统设计
院(系): 管理学院
专业班级: 信管121班
学 号:
学生姓名:
指导教师:
教师职称: 副教授
起止时间: 2012.12.22-2015.1.2
课程设计任务及评语
院(系):管理学院 教研室:信息管理与信息系统
学 号
学生姓名
专业班级
实训
题目
沈阳鹏达体育用品销售管理数据库系统设计
实训任务
1. 关于沈阳鹏达体育用品有限公司简介。
应包括公司的经营品牌、规模、管理模式等。
2. 关于沈阳鹏达体育用品销售管理数据库系统设计的概述。
3. 关于沈阳鹏达体育用品销售管理数据库系统设计的需求分析。
要包括对沈阳鹏达体育用品销售管理数据库系统开发背景的剖析,可行性分析, 数据库的功能设计和概念模型。
4. 关于沈阳鹏达体育用品销售管理数据库的设计。
主要包括表的设计,视图及存储过程的设计,实现订单的查询订单数量
查询客户的订单信息、查询雇员信息、查询某订单对应的产品信息、插入订单信息、插入产品信息
5. 关于沈阳鹏达体育用品销售管理数据库系统的实现。
包括数据库的创建,关系模型的创建,实现sql和pb系统的的连接,及通过pb完成设计界面。
6. 关于沈阳鹏达体育用品销售管理数据库系统出现的故障及解决办法。
根据常见的四种故障:事务内部的故障、系统故障、介质故障、计算机病毒故障。并提出相应的解决办法。
7. 关于沈阳鹏达体育用品销售管理数据库系统的安全性设计。
应主要包括:用户管理、角色与权限管理、数据库的备份与恢复。
8.关于本次课设报告要求字数不少于6000,页数不少于20页。
指导教师评语及成绩
成绩: 指导教师签字: 学生签字:
年 月 日
辽宁工业大学课程设计
目 录
第1章 鹏达体育用品公司简介 1
第2章 需求分析 2
2.1 开发背景 2
2.2 可行性分析 2
2.3功能设计 3
2.4概念模型 4
第3章 逻辑结构设计 8
3.1销售管理系统数据模型 8
3.2数据模型的优化 8
第4章 物理结构设计 9
第5章 数据库的实施 11
5.1 数据库创建 11
5.2 SQL Server 和PB连接 13
5.3 PB系统界面 13
第6章 系统实施的故障及解决办法 21
第7章 安全性设计 23
7.1用户管理 23
7.2角色与权限管理 23
7.3数据库的备份与恢复 23
参考文献 25
第一章 鹏达体育用品公司简介
沈阳鹏达体育用品有限公司始建于1990年初,经过近二十年的发展,已成为东北地区经营国际知名体育运动品牌的著名代理商。公司主要经营Nike、Adidas、Adidas三叶草、Puma、Reebok等国际一线知名体育品牌及运动器材,品牌专卖店遍布沈阳市各大商场及商业区,在东北区域有几十家经销商、17家运动城、474家专卖店、2500多名员工,是辽宁省著名的体育用品批发、零售企业,东北地区享有盛誉的行业领跑者。
随着计算机技术日新月异的发展,计算机已成为现代社会人们工作、生活、学习甚至娱乐不可或缺的工具。计算机的应用也已经渗透到社会的各个领域,不论是企业还是政府机关、事业单位,都正在或计划利用各种计算机应用系统以全面提高工作效率。所以企业管理“现代化管理”的理念凸现,管理已成为现代企业的第一要素,合理利用现代科技手段进行管理是企业发展的原动力。
销售管理系统是信息量大而繁杂的一项工作,包括的产品进货信息、库存管理、订单信息管理等,这些所包含的数据范围广而多,沈阳市鹏达体育用品有限公司的销售信息管理采用手工处理的手段,工作量大、效率低而且容易产生错误。
销售管理信息化是现代企业、公司资源开发与管理的手段。沈阳市鹏达体育用品有限公司需要更新传统的销售管理观念,让销售管理逐步实现信息化、现代化,这是社会发展的要求,也是实际工作的需要。
第二章 需求分析
2.1开发背景
销售管理是沈阳市鹏达体育用品有限公司所必须面对的工作,但一直以来用传统人手方式管理文件档案,这种管理方式存在许多缺点:效率低,保密性差,另外随着进货数量的增加,这必然增加了订单管理者的工作量和劳动强度。同时,将产生大量的文件和数据,这给订单信息的查找,更新和维护都带来了不少困难,其管理方法将浪费人力物力。随着科技的不断提高,计算机科学与技术日渐成熟,这种传统的手工管理模式必然被信息管理方式所取代。沈阳市鹏达体育用品有限公司建立完整的销售管理数据库系统不仅可以实现订单自动化,还可以提高整个销售团队工作效率。
2.2 可行性分析
2.2.1经济可行性
因为通过计算机控制,各种信息可以很容易的做到随时更新、维护,有利于新息的统一管理和维护,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高学校的管理效率,节约了大量资金,所以从经济上完全是可行的。
2.2.2技术可行性
数据库是数据管理的最新技术,SQL语言能够很好的和其他界面编程语言工具(如C#)结合。用户只需面对操作界面,而不用管后台处理工作,方便用户使用。沈阳市鹏达体育用品有限公司销售管理数据库的总目标是:建立一个基于C/S结构的销售管理数据库系统,使得沈阳市鹏达体育用品有限公司的管理工作系统化、规范化和自动化,从而达到提高管理效率的目的。通过对用户应用环境、体育用品销售过程及各有关环节的分析,系统的需求可以归纳为两点。
(1)数据需求:数据库数据要完整、同步、全面地反映沈阳市鹏达体育用品有限公司销售管理的全部信息。
(2)功能需求:开发一个易扩充和维护的、具有良好人机交互界面的,实现订单销售的自动化,可以提供准确、精细、迅速的订单销售信息,包括查询某供应商供应的商品信息、某商品信息、某客户信息和某订单订购的商品的信息。还可以对商品信息和订单信息进行修改,而且可以实现员工信息管理的数据库系统。
综上所述,开发该系统具有较强的可行性。
2.3 功能结构设计
2.3.1 功能设计
沈阳市鹏达体育用品有限公司销售管理数据库系统针对仓储销售等环节所遇到的问题,设有商品信息管理、供应商信息管理、仓库信息管理、进货管理、销售管理五个管理功能模块,来实现对商品、供应商、客户、仓储、、进货、销售的规范管理。其中
(1)商品销售信息管理涉及商品信息添加、修改、查询、删除
(2)供应商信息管理涉及供应商信息的添加、修改、查询、删除
(3)仓库信息管理涉及仓储商品库存信息的添加、修改、查询、删除
(4)进货管理涉及进货单信息的生成和商品仓储信息的更新
(5)销售管理涉及销售单的生成和商品仓储信息的更新。
(6)客户信息管理涉及客户信息的添加、修改、查询、删除
系统能够随时根据需要,更新数据库的信息。对于录入的信息,要准确,详细,符合属性要求。在提高管理效率的基础上,力求操作简单、易学、实用、方便,同时还不能对操作用户有太高的素质要求。
2.3.2 结构设计
沈阳市鹏达体育用品有限公司销售管理数据库结构设计包括:客户基本信息管理、订单基本信息管理、产品基本信息管理、员工基本信息管理和供应商信息管理。如图:(图 2-3-1)
沈阳市鹏达体育用品有限公司
供应商信息
管理
雇员信息
管理
产品信息
管理
订单信息
管理
客户信息
管理
供应商信息查询
供应商信息修改
供应商信息录入
雇员信息修改
雇员信息查询
雇员信息
录入
库存情况查询
产品信息查询
产品信息修改
产品信息录入
订单信息查询
订单信息录入
客户信息查询
客户信息修改
客户信息登录
图 2-3-1 结构设计图
2.4 概念模型
2.4.1实体关系图
根据需求分析的数据进行分类抽象,形成了商品、供应商、仓库、客户四个实体类型。
1、商品概念模型
图2-4-1商品概念模型
2、 供应商概念模型
图2-4-2供应商概念模型
3、 仓库概念模型
图2-4-3 仓库概念模型
4、客户管理模型
图2-4-4 客户管理模型
5、销售员管理模型
图2-4-5 客户管理模型
2.4.2关系模型
供应商(供应商编号,名称,地址,联系电话)
产品(产品编号,产品名称,型号,产地,售价,存货量)
供应(供应商编号,产品编号)
订购(产品编号,订单编号,数量)
客户(客户编号,姓名,通信地址,电话)
订单(订单编号,日期,客户编号,雇员编号)
雇员(雇员编号,姓名,联系电话,工资)
2.4.3 基本E-R图
在沈阳市鹏达体育用品有限公司销售管理数据库中,有一些限制性条件,比如一个客户可以下多个订单,但一个订单只能由一个客户下,一个订单可以订购多种产品,每种产品可被不同订单订购等等,这些限制条件的加入能够使本数据库管理系统的功能更加完善,能够满足更高的要求。基本E-R图如下(图2-4-6)
供应商
供应
产品
订购
订单
管理
雇员
下发
客户
名称
地址
联系电话
客户编号
姓名
通信地址
电话
产品编号
供应商编号
产品编号编号编号
产品名称
产品型号
产品编号
订单编号
订单编号
雇员编号
姓名
联系电话
供应商编号
售价
存货量
数量
日期
雇员编号
工资
客户编号
n
1
n
m
1
n
n
m
图2-4-6 基本E-R图
第三章 逻辑结构设计
3.1销售管理系统数据模型
关系模型的逻辑结构是一组关系模式的集合。E-R图则是有实体型、实体的属性和实体型之间的联系3个要素组成。所以将E-R图转换成关系模型实际上就是将实体型、实体的属性和实体型之间的联系转换成关系模式,转换过程中遵循的规则:
因为沈阳市鹏达体育用品有限公司销售管理数据库E-R图中的联系为1:n或m:n,所以在转换过程中将实体间的多元联系转换成一个关系模型,该关系模型中的码由各实体的码组成。
3.2数据模型的优化
沈阳市鹏达体育用品有限公司销售管理数据库中,已按照数据依赖的理论对上面的关系模式进行了逐一分析,在进行了多次分解和比对后各关系模式已达到第三范式,虽然这不一定是最好关系模式,但此模式对于整个数据库设计来讲还是比较合理的,数据的操作效率和存储空间的利用效率都比较高。虽然有些查询比较难实现,但可以通过建立视图来实现。
第四章 物理结构设计
4.1表的设计
表4-1 商品表
属性列
字段类型
字段长度
主码
商品编号
char
9
是
品牌
char
20
类型
char
20
规格
char
20
进价
float
售价
float
表4-2 供应商表
属性列
字段类型
字段长度
主码
供应商编号
char
9
是
名称
char
20
地址
char
20
电话
char
20
银行账号
char
20
信誉度
char
4
表4-3 客户表
属性列
字段类型
字段长度
主码
客户编号
char
9
是
名称
char
10
联系方式
char
20
客户类型
char
6
类型
char
8
表4-4 仓库表
属性列
字段类型
字段长度
主码
商品编号
char
9
是
联系电话
char
20
库存量
int
表4-5 进货表
属性列
字段类型
字段长度
主码
商品编号
char
9
是
供应商编号
Char
9
是
数量
Int
进货时间
Datetime
表4-6 销售表
属性列
字段类型
字段长度
主码
商品编号
char
9
是
客户编号
Char
9
是
数量
int
销售员编号
char
9
是
卖出时间
datetime
表4-7 用户表
属性列
字段类型
字段长度
主码
用户名
char
9
是
用户密码
char
19
用户类型
char
8
表4-8 销售员表
属性列
字段类型
字段长度
主码
销售员编号
char
10
是
用户名
char
10
密码
char
20
类型
Char
8
4.2 视图的设计
建立一张雇员信息的视图
目的:屏蔽雇员的工资信息。
功能:能够向管理员提供简明,直接的雇员信息展示。
意义:有利于数据库安全的维护,防止任意修改数据库中的雇员信息。
create view view_Employee--建立Employee视图,屏蔽工资属性
as
select Enumber,Ename,Etelnum
from Employee
with check option
通过视图检索数据:select * from view_Employee where enumber='e001'
4.3 存储过程的设计
1、查询订单数量
功能:查询订单的数量
目的:存储查询订单数量的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_SearchOrdersNum --查询订单的存储过程
as
select COUNT(*) '订单总数'--查询订单数量
from Orders;
执行:exec procedure_SearchOrdersNum
2、查询客户的订单信息
功能:查询客户的订单信息
目的:存储查询客户的订单信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_CustomerOrders--查询某个客户订单信息
@Cname char(10)
as
select Onumber,Odate,Enumber
from Orders,Customer
where Cname like @Cname and Customer.Cnumber like Orders.Cnumber;
执行:exec procedure_CustomerOrders'张亮'
3、查询雇员信息
功能:查询雇员信息
目的:存储查询雇员信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_SearchEmployee--查询某雇员信息
@Enumber char(10)
as
select *
from Employee
where Enumber=@Enumber;
执行:exec procedure_SearchEmployee'e001'
4、查询某订单对应的产品信息
功能:查询某订单对应的产品信息
目的:存储查询某订单对应的产品信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_SearchPO--查询某订单的产品信息
@Onumber char(12)
as
select Onumber,Product.Pnumber,Pname,Pcategory,Pprice,Pinventory
from Product,PO
where Onumber=@Onumber and PO.Pnumber=Product.Pnumber;
执行:exec procedure_SearchPO'o001'
5、插入订单信息
功能:插入订单信息
目的:存储插入订单信息的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_InsertOrders--插入订单表
@Onumber char(12),@Odate datetime,@Enumber char(12),@Cnumber char(12)
as
IF EXISTS(SELECT * FROM Orders WHERE Onumber=@Onumber)
print'该订单记录已经存在'
ELSE
insert into Orders(Onumber,Odate,Enumber,Cnumber)
values(@Onumber,@Odate,@Enumber,@Cnumber);
6、插入产品信息
功能:插入产品信息
目的:存储产品的操作
意义:下次重复同样的动作时,可直接执行存储过程,简化操作步骤
create procedure procedure_InsertProduct --插入产品信息
@Pnumber char(12),@Pname char(30),@Pcategory char(15),@Pprice int,@Pinventory real
as
IF EXISTS(SELECT * FROM Product WHERE Pnumber=@Pnumber)--若有相同产品,只更新库存量
update Product
set Pinventory=Pinventory+@Pinventory
ELSE
insert into Product(Pnumber,Pname,Pcategory,Pprice,Pinventory)
values(@Pnumber,@Pname,@Pcategory,@Pprice,@Pinventory);
第5章 数据库的实现
5.1数据库创建
5.1.1创建数据库
create database 体育用品销售系统管理
on
(
name = 体育用品销售管理_data,
filename='d:\data\体育用品销售管理_data.mdf',
size=10MB,
maxsize=100MB,
filegrowth=10%
)
log on
(
name= 体育用品销售管理_log,
filename='f:\data\体育用品销售管理_log.ndf',
size=10MB,
maxsize=100MB,
filegrowth=1MB
)
5.1.2 创建关系模型
create table GYS --供应商
(
供应商编号char(9) primary key,
名称char(20) not null,
地址char(20)not null,
电话char(20)not null,
银行账号char(20)not null,
信誉度char(4)
)
create table SPB --商品表
(
商品编号char(9) primary key,
品牌 char(20)not null,
类型char(20) not null,
售价float not null,
进价float not null,
规格char (20)not null
)
create table JHD --进货单(供应关系)
(
供应商编号char(9),
商品编号char (9),
数量int not null,
进货时间datetime
primary key (供应商编号,商品编号),
foreign key (商品编号) references SPB (商品编号),
foreign key (供应商编号) references GYS (供应商编号)
)
create table KCB --库存表
(
商品编号char(9) ,
联系电话char(20),
库存量int,
primary key(商品编号),
foreign key (商品编号) references SPB (商品编号)
)
create table selltable--售货员表
(
销售员编号char(10) primary key,
用户名char(10)not null,
密码char(20)not null,
类型char(8)
)
create table XSD --销售单
(
销售员编号char(10),
商品编号char(9) not null,
数量int not null,
卖出时间datetime,
客户编号char(9),
primary key(销售员编号,商品编号,客户编号),
foreign key (商品编号) references SPB (商品编号),
foreign key (销售员编号) references selltable (销售员编号),
foreign key (客户编号) references KHB (客户编号),
)
create table YHB --管理员表
(
用户名char(9) primary key,
用户密码char(19) not null,
用户类型char(8)
)
create table KHB --客户表
(
客户编号char(9)primary key,
客户类型char(6) check(客户类型in('高级','普通')),
姓名char(10),
联系电话char(20)not null,
类型char(8)
5.2 SQL Server 和PB连接
沈阳市鹏达体育用品有限公司销售管理数据库统选择PowerBuilder10.5数据库开发工具的来实现,SQL Server 和PB连接使用本地连接方式,数据源为‘sales’。
图 5-2-1
图 5-2-2
5.3 PB系统界面
1. 登陆界面
图 5-3-1
2. 系统主页面
图 5-3-2
3.商品信息管理页面
图 5-3-3
4.供应商信息管理页面
图 5-3-4
5. 销售员信息管理页面
图 5-3-5
6.客户信息管理页面
图 5-3-6
7.销售信息管理页面
图 5-3-7
8. 进货信息管理页面
图 5-3-8
9. 仓库信息管理页面
图 5-3-9
第6章 系统实施的故障及解决办法
一、常见的四种故障
(1)事务内部的故障:事务内部故障可分为预期的和非预期的,其中大部分的故障都是非预期的。预期的事务内部故障是指可以通过事务程序本身发现的事务内部故障;非预期的事务内部故障是不能由事务程序处理的,如运算溢出故障、并发事务死锁故障、违反了某些完整性限制而导致的故障等。
(2)系统故障:系统故障也称为软故障,是指数据库在运行过程中,由于硬件故障、数据库软件及操作系统的漏洞、突然停电灯情况,导致系统停止运转,所有正在运行的事务以非正常方式终止,需要系统重新启动的一类故障。这类事务不破坏数据库,但是影响正在运行的所有事务。
(3)介质故障:介质故障也称为硬故障,主要指数据库在运行过程中,由于磁头碰撞、磁盘损坏、强磁干扰、天灾人祸等情况,使得数据库中的数据部分或全部丢失的一类故障。
(4)计算机病毒故障:计算机病毒故障是一种恶意的计算机程序,它可以像病毒一样繁殖和传播,在对计算机系统造成破坏的同时也可能对数据库系统造成破坏(破坏方式以数据库文件为主)。
二、四种故障的解决方法
(1)预期的事务内部故障:将事务回滚,撤销对数据库的修改。
(2)非预期的事务内部故障:强制回滚事务,在保证该事务对其他事务没有影响的条件下,利用日志文件撤销其对数据库的修改。
(3)系统故障:待计算机重新启动之后,对于未完成的事务可能写入数据库的内容,回滚所有未完成的事务写的结果;对于已完成的事务可能部分或全部留在缓冲区的结果,需要重做所有已提交的事务(即撤销所有未提交的事务,重做所有已提交的事务)。
(4)介质故障的软件容错:使用数据库备份及事务日志文件,通过恢复技术,恢复数据库到备份结束时的状态。
(5)介质故障的硬件容错:采用双物理存储设备,使两个硬盘存储内容相同,当其中一个硬盘出现故障时,及时使用另一个备份硬盘。
(6)计算机病毒故障:使用防火墙软件防止病毒侵入,对于已感染病毒的数据库文件,使用杀毒软件进行查杀,如果杀毒软件杀毒失败,此时只能用数据库备份文件,以软件容错的方式恢复数据库文件。
这四类故障虽然有所不同,但是对数据库的影响无外乎是对数据库本身的破坏或对数据库中数据的破坏,其恢复的基本原理概况起来也就是利用存储在别处的冗余数据来重建数据库中的数据。
第7章 安全性设计
7.1 用户管理
7.1.1用户标识和鉴定
用户标识和鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。
7.1.2存取控制
数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的一点就是确保只授权给由资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的存取控制机实现。
7.2 角色与权限管理
角色
可以访问的表与列
操作权限
ss
可访问所有表
完全控制权限
admin
可访问所有表
部分的控制权限
Employee_manage
可访问部分表
部分的操作权限
7.3 数据库的备份与恢复
虽然SQLServer提供了内置的安全性和数据保护,这种安全管理主要是防止非法登录或授权用户对数据库或数据造成破坏,但对合法用户的不正确操作造成的磁盘损坏或因某种不可预见的事情而导致崩溃等情况就无法解决了。因此,需要制定一个良好的备份策略,定期对数据库进行备份以保护数据库,以便在数据库遭到破坏时能够恢复数据库。
(1) 数据库备份
创建一个备份设备,并备份sales数据库。
sp_addumpdevice 'disk','sales_1','d:\46\sales_1.bak'
backup database sales to sales_1
(2)数据库的恢复
从磁盘上的备份文件d:\46\sales_1.bak中恢复数据库sales
RESTORE DATABASE sales FROM DISK='d:\46\sales_1.bak'
参考文献
[1] 马晓梅.SQL Server 2000实验指导[M].北京:清华大学出版社,2013
[2] 何文华.SQL Server 数据库案例教程.北京:电子工业出版社,2011
[3] 刘卫国.数据库技术与应用:SQL Server.第四版:清华大学出版社,2014: 65-403
[4] 徐守祥.数据库应用技术.第一版:人民邮电出版社,2011: 38-135
[5] 明日科技. SQL Server 从入门到精通.第一版:清华大学出版社,2012: 70-235
[6] [美]Philip M. Lewis/Arthur Bernstein/Michael Kifer. 数据库与事务处理 中国机械工业出版社,2013:23-45
[7] [美]斯蒂芬森.SQL入门经典.第5版 :人民邮电出版社,2011:56-350
[8] 仝春灵,数据库原理与应用—SQL Server 2000,电子工业出版社,2014
[9] 曾长军. SQL Server数据库原理及应用. 人民邮电出版社, 2011
[10] 陈平. SQL Server 2000数据库应用教程. 人民邮电出版社,2012
[11] 王珊,陈红.《数据库系统原理教程》.清华大学出版社,2013年7月
[12] 萨师煊、王珊.《数据库系统概论》(第五版).北京:高等教育出版社,2014年
[13] 数据库查询.
[15] 施伯乐.数据库技术.北京:科学出版社,2013
[16] 严晖.数据库系统教程。北京:清华大学出版社,2012
25
展开阅读全文