商品销售管理系统
设计题目
李慧
组长姓名 组长学号
计算机网络技术一班
专业班级
李红梅
指导教师
信息工程学 院 计科 系 年 月 日
数据库课程设计任务及成绩
院(系):信息工程学院 教研室:软件教研室 课程设计题目 商品销售管理系统 康文鑫:数据库的创建以及表的创建及操作和触发器 黄焱:数据的录入以及视图的创建查询 李慧:画E—R图及功能模块图和存储过程 课程设计任务分配 李国路:简单查询和嵌套查询 江林峰:模糊查询及连接查询 小组成员 指导老师: 年 月 日
姓名 李慧 黄焱 康文鑫 李国路 江林峰 学号 组长否 是 否 否 否 否 目 录
1.1 应用背景 ....................................................... 错误!未指定书签。
第一章 需求分析
1.1 应用背景
随着商品因为生活,商业等方面的增多,商业的发展也日益的迅猛,由于顾客量的增多,商品出入时间的广泛,商场收益的日益增多,仅仅依靠手写的老式输入记账法,是无法满足商场的需求的,同时这也是浪费人力和时间的。开发这个数据库,目的就在于能够更好的对公司信息情况,商品信息情况,进货退货信息,商品的库存以及销售情况,销售结账的订单等进行精确的查询,以便更好的完善和更新商品销售信息系统。
1.2 系统可行性分析
可行性分析也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。
1.2.1 技术可行性
商品销售管理系统是将销售管理信息化,实现了进货、退货、消费、结账等新的管理方式。 我们设计的这个系统采用了SQL Server2005与C#进行开发设计的SQL Server数据库能够处理大量的数据,还保持数据的完整行并提供了许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。C#语言是我们系统开发的语言,该系统还为客户提供了有好的界面。
1.2.2 经济可行性
随着经济的快速发展,建立一个信息化的管理模式的经济代价不再是一个很
大的负担了。而且,信息化以后所带来的经济效应也是可观的,是现在所要实现现代化的一个主要的目标。
整体功能模块图如下:
增加公司信息 基本信息 增加商品信息 公司信息管理 商品信息管理 入库管理 出库管理 进货管理 销售管理 添加销售信息 添加销售退货 商品销售查询 销售管理系统 查询统计 商品库存查询 商品退货查询 商品销售排行 商品进货结账 商品销售 进货退货结账 商品销售结账 销售退货结账 添加用户 修改密码 系统设置 用户管理 退出登录 图1.1 功能结构图
第二章 概念结构设计
通常,把每一类数据对象的个体称为实体,而每一类对象的集合称为“实体集”。而E—R模型的主要成分是实体、联系和属性。如果用矩形框表示实体集,用带半圆的矩形表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在属性后加#键加以区别,则可以表示实体集及每个实体集涉及的属性,实体集之间存在各种关系,通常把这种关系称为“联系”。联系有三类:一对一的联系(1:1);一对多的联系(1:n);多对多的联系(m:n)。
所以,此商品销售管理系统中实体集与实体集的联系,E—R模型如下:
2.1 商品销售管理系统实体集的子E-R图
本系统所涉及学生实体有如下属性:仓库,供应商,顾客,商品,产品销售,员工。其所对应的E-R图如下:
2.1.1 仓库E-R图
图2.1 仓库E-R图
2.1.2 供应商E-R图
图2.2 供应商E-R图
2.1.3 顾客E-R图
图2.3 顾客E-R图
2.1.4 商品E-R图
图2.4 商品E-R图
2.1.5 产品销售E-R图
图2.5 产品销售E-R图
2.1.6 员工E-R图
图2.6 员工E-R图
2.2 商品销售管理系统总E-R图
图2.7 商品销售管理系统总E-R图
第三章 逻辑结构及物理结构设计
3.1 将E—R图转化为关系模式
1、员工信息管理:登记公司员工的信息,如员工姓名、性别、年龄、职位、权限、密码等
2、商品信息管理:记录各种商品的信息,如商品名称、编号、价格、数量、仓库号、等
3、供应商管理:记录进货的具体信息,如供应商姓名、编号、地址、联系电话等
4、采购信息管理:记录采购的具体信息,如采购编号、员工号、顾客姓名、顾客性别、商品性质、购入单价等
5、库存信息管理:记录库存商品的具体信息,如商品编号、库存编号、库存、库存量、库存盘点日期等
6、顾客信息管理:记录顾客的具体信息,如顾客姓名、顾客姓名、顾客地址、顾客的联系电话等
7、用户信息管理:管理用户信息,如添加用户、修改密码、用户管理等。 逻辑设计
员工(员工编号,姓名、性别、年龄、职位、权限、密码)主键员工
编号。
供应商(供应商姓名、编号、地址、联系电话)主键供应商编号。 商品(商品名称、编号、价格、数量、仓库号)主键商品编号。 仓库(商品编号、库存编号、库存量、库存盘点日期)主键库存编号。 顾客(顾客编号、姓名、地址、联系电话)主键顾客编号。 采购信息(采购编号、员工号、顾客姓名、顾客性别、商品性质、购入单价)主键采购编号。
3.2 物理结构设计
图3.1 物理结构图
第四章 数据库的实现
4.1 表对象的操作
建立数据库最重要的一步就是创建其中的数据表,即决定数据库包括哪些表,每个表中的包含哪些字段,每个字段的数据类型等。创建表有二种途径,一是企业管理创建,二是查询语句,此设计用的是第二种。
对表的插入、修改和删除可用查询语句或界面操作来操作,但通过用查询语句操作表数据更为灵活,功能更为强大。
4.1.1 员工表
属性名 编号 姓名 性别 年龄 职位 权限 密码 类型 char Varchar char Varchar char char char 长度 8 10 2 20 11 2 3 完整性约束 主码 非空 男或女,默认值男 非空 非空 非空 非空 备注 表4.1 员工表设计
4.1.2 供应商表
主要记录供应商的基本信息。
属性名 编号 姓名 地址 联系电话 类型 char Varchar char char 长度 8 10 20 11 完整性约束 主码 非空 非空 非空 备注 表4.2 供应商表设计
4.1.3 商品信息表
属性名 编号 名称 价格 数量 仓库号 类型 char Varchar char Varchar char 长度 8 10 2 20 11 完整性约束 主码 非空 非空 非空 非空 备注 表4.3 商品信息表设计
4.1.4 仓库信息表
属性名 商品编号 库存编号 库存量 库存盘点日期 datetime 8 类型 char char char 长度 8 10 2 完整性约束 主码 非空 非空 非空 备注 图4.4 仓库信息表设计
4.1.5 顾客信息表
属性名 编号 姓名 地址 联系电话 类型 char varchar char char 长度 8 10 20 11 完整性约束 主码 非空 非空 非空 备注 表4.5 顾客信息表设计
4.1.6 采购信息表
属性名 编号 员工号 顾客姓名 顾客性别 商品性质 购入单价 类型 char char char Char Int char 长度 8 10 10 2 4 10 完整性约束 主码 非空 非空 非空 非空 非空 备注 表4.6 采购信息表设计
4.2 相关操作
4.2.1 员工表的操作
(1)员工表的插入:
代码如下:
Insert into 员工数据values (‘’,‘小花’,‘女’,‘18’) 结果如下:
图4.1 员工表操作-插入
(2)员工表信息的修改:
代码如下:
update 员工数据 set 年龄=18 结果如下:
图4.2 员工表操作-修改
(3)员工表信息的删除:
代码如下: 结果如下:
图4.3 员工表操作-删除
4.2.2 供应商表的操作
(1)供应商表信息的插入:
代码如下:
insert into 供应商表 values 结果如下:
图4.4 供应商表操作-插入
(2)供应商表信息的修改:
代码如下:
update供应商表set 地址='北京' where 学号='1001' 结果如下:
图4.5 供应商表操作-修改
(4)供应商表信息的删除:
代码如下:
delete 供应商表 where 学号='1005' 结果如下:
图4.6 供应商表操作-删除
4.2.3 商品信息表的操作
(1)商品信息表信息的插入:
代码如下:
insert into 商品数据 values ('0004','牙膏','34','100','003') 结果如下:
图4.7 供应商表操作-插入
(2)商品信息表信息的修改:
代码入下:
update 商品数据 set 数量='1000' where 编号='0003' 结果如下:
图4.8 供应商表操作-修改
(3)商品信息表信息的删除:
代码如下:
delete 商品数据 where 编号='0004' 结果如下:
图4.9 供应商表操作-删除
4.2.4 仓库信息表的操作
(1)仓库信息表信息的插入:
代码如下:
insert into 库存盘点信息 values 结果如下:
图4.10 供应商表操作-插入
(2)仓库信息表信息的修改:
代码如下:
update库存盘点信息set 库存='100' 结果如下:
图4.11 供应商表操作-修改
(3)仓库信息表信息的删除:
代码如下: 结果如下:
图4.12 供应商表操作-删除
4.2.5 顾客信息表的操作
(1)顾客信息表的信息插入:
代码如下:
insert into 顾客数据 values ’) 结果如下:
图4.13 顾客信息表操作-插入
(2)顾客信息表信息的修改:
代码如下:
update 顾客数据set 姓名='集合' where编号='0006'and 性别='男' 结果如下:
图4.14 顾客信息表操作-修改
(3)顾客信息表信息的删除:
代码如下:
delete 顾客数据 where 编号='0006'and 性别='男' 结果如下:
图4.15 顾客信息表操作-删除
4.2.6 采购信息表的创建与操作
(1)采购信息表信息的插入:
代码如下:
insert into 采购 values ('0006','','李辉',’男’,’1’,’100’) 结果如下:
图4.16 采购信息表操作-插入
(2)采购信息表信息的修改:
代码如下:
update 采购 set 顾客性别='女' 结果如下
图4.17 采购信息表操作-修改
(3)采购信息表信息的删除:
代码如下: 结果如下:
图4.18 采购信息表操作-删除
4.3 表的T-SQL语句
4.3.1 简单查询:
查询采购表的基本信息 select * from 采购
图4.19 简单查询
4.3.2 嵌套查询
查询地址为合肥,上海的顾客信息
select * from 顾客数据 where 地址 in('合肥','上海')
图4.20 嵌套查询
4.3.3 模糊查询
查询姓名姓李的员工信息 select * from 员工数据 where 姓名 like '李%'
图4.21 模糊查询
4.3.4 连接查询
查询编号相同的顾客为男的基本信息: select * from 顾客数据,采购 where 性别='男'and 顾客数据.编号=采购.编号
图4.22 连接查询
4.4 视图
4.4.1 视图的创建
(1)创建视图vw1
create view vw1(编号,姓名,性别,年龄,职位,权限,密码) as
select编号,姓名,性别,年龄,职位,权限,密码from员工数据
图4.23 创建视图1
(2)创建视图vw2
create view vw2(编号,姓名,性别,地址,电话) as
select编号,姓名,性别,地址,电话from 顾客数据
图4.24 创建视图2
(3)创建视图vw3
create view vw3 as
select * from 员工数据
图4.25 创建视图3
4.4.2 视图的T-SQL语句
(1)查询视图vw1
select * from vw1 结果如下:
图4.26 查询视图1
(2)查询视图vw2
select * from vw2 结果如下:
图4.27 查询视图2
(3)查询视图vw3
select 编号,姓名, 性别=
case when 性别='男'then'1'
when 性别='女' then '0' end ,
年龄,职位,权限,密码from vw3 结果如下:
图4.28 查询视图3
4.5 存储过程
在SQL Server中,存储过程是数据库对象之一,它有执行速度快、确保数据库的安全和自动完成需要预先执行的任务等优点,本设计创建一个存储过程,功能是由顾客数据的编号,查询与采购表的关系,显示编号,姓名,采购数据的顾客姓名,顾客性别购入单价。
存储过程的创建和调用如下:
if exists(select * from sysobjects where name = 'pros'and type ='p') create proc pros @sno varchar(8) as begin
if exists (select * from 顾客数据 where 顾客数据.编号=@sno ) select 顾客数据.编号,顾客数据.姓名,采购.顾客姓名,采购.顾客性别,采购.购入单价
from 顾客数据,采购
where 顾客数据.编号 =采购.编号 and 顾客数据.编号=@sno else
print '查无此人' end
exec pros '1003' exec pros '1005' exec pros '1111'
结果如下:
图4.29 存储过程
4.6 触发器
触发器是一类特殊的存储过程。触发器与表的关系密切,可用于维护表中的数据。当有数据影响到触发器维护的数据时,触发器自动执行。 如下是系统触发器的创建和执行:
触发器:当顾客退房,即删除某一顾客时,这顾客所有信息也删除 create trigger trig On顾客数据 instead of delete as begin
declare @sno char (8) select @sno=编号 from deleted
if exists(select *from 顾客数据 where 编号=@sno) begin
delete 采购 where 采购.编号=@sno delete 顾客数据 where 顾客数据.编号=@sno end else
print'查无此人'
end
delete 顾客数据
where 顾客数据.编号='0003'
图4.30 触发器
第五章 总结
这次的数据库课程设计,我们小组分工明确,但又相互帮助。报告整理包括需求分析、概念结构设计、逻辑结构设计、文档排版等。
通过课程设计的整个过程,我了解了一个简单系统实现的全过程。从最开始的需求分析,概念结构设计,逻辑结构设计和物理结构设计,到最后的实施,每一步都需要认真严谨,不能有半点的马虎,否则就会给下一阶段的工作造成麻烦。这次能够成功的构建数据库,与小组成员间的团结合作有关。小组的讨论让我得到了很多想法,真正感觉到集体力量的强大,同时数据库功能的实现也得益于老师的严格要求和耐心指导。在数据库设计的整个过程中,老师也给出了许多宝贵的意见,使库的功能更加完善。
当然,我们目前的能力总是很有限的,这个简易的数据库还是存在很多问题的。我相信通过进一步的学习,这些问题都可以迎刃而解。
总而言之,通过这次的课程设计,我受益匪浅。
参考文献
[1]《SQL Server 教程》.清华大学出版社.20010.8
[2]《数据库原理》.机械出版社.20011.8
[3]《Visual C++ +SQL Server 数据库应用系统开发与实例》.人民邮电出版
社.2009.7
[4]《SQL Server 2008数据库系统开发》.电子工业出版社.2009.1
[5]《SQL Server 2000 数据库系统开发实例导航》.人民邮电出版社.20011.5 [6]《数据库原理与技术》.中国水利水电出版社.2009.3.
[7]《SQL Server 数据库开发入门与范例解析》.机械出版社.20010.3
因篇幅问题不能全部显示,请点此查看更多更全内容