1、SQL Server数据库 课 程 设 计设计题目 商品销售管理系统组长姓名 李慧组长学号 15专业班级 计算机网络技术一班 指导教师 李红梅信息工程学 院 计科 系 年 月 日数据库课程设计任务及成绩院(系):信息工程学院 教研室:软件教研室课程设计题目商品销售管理系统课 程 设 计 任 务 分 配 康文鑫:数据库创立以及表创立及操作和触发器 黄焱:数据录入以及视图创立查询 李慧:画ER图及功能模块图和存储过程 李国路:简朴查询和嵌套查询 江林峰:模糊查询及连接查询小组组员姓名学号组长否李慧21是黄焱24否康文鑫25否李国路19否江林峰22否 指导老师: 年 月 日 目 录第一章 需求分析1
2、1.1 应用背景11.2 系统可行性分析11.2.1 技术可行性11.2.2 经济可行性1第二章 概念构造设计32.1 商品销售管理系统实体集子E-R图32.1.1 仓库E-R图32.1.2 供应商E-R图42.1.3 顾客E-R图42.1.4 商品E-R图42.1.5 产品销售E-R图42.1.6 员工E-R图52.2 商品销售管理系统总E-R图6第三章 逻辑构造及物理构造设计73.1 将ER图转化为关系模式73.2 物理构造设计8第四章 数据库实现94.1 表对象操作94.1.1 员工表94.1.2 供应商表94.1.3 商品信息表104.1.4 仓库信息表104.1.5 顾客信息表114
3、.1.6 采购信息表114.2 有关操作114.2.1 员工表操作114.2.2 供应商表操作134.2.3 商品信息表操作144.2.4 仓库信息表操作154.2.5 顾客信息表操作164.2.6 采购信息表创立与操作184.3 表T-SQL语句194.3.1 简朴查询:194.3.2 嵌套查询194.3.3 模糊查询194.3.4 连接查询204.4 视图204.4.1 视图创立204.4.2 视图T-SQL语句224.5 存储过程234.6 触发器24第五章 总结26参照文献27第一章 需求分析1.1 应用背景伴随商品由于生活,商业等方面增多,商业发展也日益迅猛,由于顾客量增多,商品出入
4、时间广泛,商场收益日益增多,仅仅依托手写老式输入记账法,是无法满足商场需求,同步这也是挥霍人力和时间。开发这个数据库,目就在于可以更好对企业信息状况,商品信息状况,进货退货信息,商品库存以及销售状况,销售结账订单等进行精确查询,以便更好完善和更新商品销售信息系统。1.2 系统可行性分析可行性分析也称为可行性研究,是在系统调查基础上,针对新系统开发与否具有必要性和也许性,对新系统开发从技术、经济、社会方面进行分析和研究,以防止投资失误,保证新系统开发成功。可行性研究目就是用最小代价在尽量短时间内确定问题与否可以处理。该系统可行性分析包括如下几种方面内容。1.2.1 技术可行性商品销售管理系统是将
5、销售管理信息化,实现了进货、退货、消费、结账等新管理方式。 我们设计这个系统采用了SQL Server与C#进行开发设计SQL Server数据库可以处理大量数据,还保持数据完整行并提供了许多高级管理功能。它灵活性、安全性和易用性为数据库编程提供了良好条件。C#语言是我们系统开发语言,该系统还为客户提供了有好界面。1.2.2 经济可行性伴随经济迅速发展,建立一种信息化管理模式经济代价不再是一种很大承担了。并且,信息化后来所带来经济效应也是可观,是目前所要实现现代化一种重要目。整体功能模块图如下:出库管理添加销售信息添加销售退货商品库存查询商品销售查询商品进货结账进货退货结账顾客管理退出登录商品
6、退货查询商品销售排行修改密码添加顾客商品销售结账销售退货结账入库管理企业信息管理增长商品信息商品信息管理增长企业信息销 售 管 理 系 统基本信息进货管理销售管理查询记录商品销售系统设置图1.1 功能构造图第二章 概念构造设计一般,把每一类数据对象个体称为实体,而每一类对象集合称为“实体集”。而ER模型重要成分是实体、联络和属性。假如用矩形框表达实体集,用带半圆矩形表达属性,用线段连接实体集与属性,当一种属性或属性组合指定为主码时,在属性后加#键加以区别,则可以表达实体集及每个实体集波及属性,实体集之间存在多种关系,一般把这种关系称为“联络”。联络有三类:一对一联络(1:1);一对多联络(1:
7、n);多对多联络(m:n)。因此,此商品销售管理系统中实体集与实体集联络,ER模型如下: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图第三章 逻辑构造
8、及物理构造设计3.1 将ER图转化为关系模式1、员工信息管理:登记企业员工信息,如员工姓名、性别、年龄、职位、权限、密码等2、商品信息管理:记录多种商品信息,如商品名称、编号、价格、数量、仓库号、等3、供应商管理:记录进货详细信息,如供应商姓名、编号、地址、联络电话等4、采购信息管理:记录采购详细信息,如采购编号、员工号、顾客姓名、顾客性别、商品性质、购入单价等5、库存信息管理:记录库存商品详细信息,如商品编号、库存编号、库存、库存量、库存盘点日期等6、顾客信息管理:记录顾客详细信息,如顾客姓名、顾客姓名、顾客地址、顾客联络电话等7、顾客信息管理:管理顾客信息,如添加顾客、修改密码、顾客管理等
9、。逻辑设计员工(员工编号,姓名、性别、年龄、职位、权限、密码)主键员工编号。供应商(供应商姓名、编号、地址、联络电话)主键供应商编号。商品(商品名称、编号、价格、数量、仓库号)主键商品编号。仓库(商品编号、库存编号、库存量、库存盘点日期)主键库存编号。顾客(顾客编号、姓名、地址、联络电话)主键顾客编号。采购信息(采购编号、员工号、顾客姓名、顾客性别、商品性质、购入单价)主键采购编号。3.2 物理构造设计图3.1 物理构造图第四章 数据库实现4.1 表对象操作建立数据库最重要一步就是创立其中数据表,即决定数据库包括哪些表,每个表中包括哪些字段,每个字段数据类型等。创立表有二种途径,一是企业管理创
10、立,二是查询语句,此设计用是第二种。对表插入、修改和删除可用查询语句或界面操作来操作,但通过用查询语句操作表数据更为灵活,功能更为强大。4.1.1 员工表属性名类型长度完整性约束备注编号char8主码姓名Varchar10非空性别char2男或女,默认值男年龄Varchar20非空职位char11非空权限char2非空密码char3非空表4.1 员工表设计4.1.2 供应商表重要记录供应商基本信息。属性名类型长度完整性约束备注编号char8主码姓名Varchar10非空地址char20非空联络电话char11非空表4.2 供应商表设计4.1.3 商品信息表属性名类型长度完整性约束备注编号cha
11、r8主码名称Varchar10非空价格char2非空数量Varchar20非空仓库号char11非空表4.3 商品信息表设计4.1.4 仓库信息表属性名类型长度完整性约束备注商品编号char8主码库存编号char10非空库存量char2非空库存盘点日期datetime8非空图4.4 仓库信息表设计4.1.5 顾客信息表属性名类型长度完整性约束备注编号char8主码姓名varchar10非空地址char20非空联络电话char11非空表4.5 顾客信息表设计4.1.6 采购信息表属性名类型长度完整性约束备注编号char8主码员工号char10非空顾客姓名char10非空顾客性别Char2非空商品
12、性质Int4非空购入单价char10非空表4.6 采购信息表设计4.2 有关操作4.2.1 员工表操作(1)员工表插入:代码如下:Insert into 员工数据values(9,小花,女,18)成果如下:图4.1 员工表操作-插入(2)员工表信息修改:代码如下:update 员工数据 set 年龄=18 where 姓名=李小璐and 编号=45成果如下:图4.2 员工表操作-修改(3)员工表信息删除:代码如下:delete员工数据 where 编号=45and 年龄=18成果如下:图4.3 员工表操作-删除4.2.2 供应商表操作(1)供应商表信息插入:代码如下:insert into 供
13、应商表 values(1005,小花,合肥, )成果如下:图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
14、数量=1000 where 编号=0003成果如下:图4.8 供应商表操作-修改(3)商品信息表信息删除:代码如下:delete 商品数据 where 编号=0004成果如下:图4.9 供应商表操作-删除4.2.4 仓库信息表操作(1)仓库信息表信息插入:代码如下:insert into 库存盘点信息 values(05,05,50,100)成果如下:图4.10 供应商表操作-插入(2)仓库信息表信息修改:代码如下:update库存盘点信息set 库存=100 where 编号=04成果如下:图4.11 供应商表操作-修改(3)仓库信息表信息删除:代码如下:delete库存盘点信息where
15、编号=05成果如下:图4.12 供应商表操作-删除4.2.5 顾客信息表操作(1)顾客信息表信息插入:代码如下:insert into 顾客数据 values(0006,林峰,男,南京,)成果如下:图4.13 顾客信息表操作-插入(2)顾客信息表信息修改:代码如下:update 顾客数据set 姓名=集合 where编号=0006and 性别=男成果如下:图4.14 顾客信息表操作-修改(3)顾客信息表信息删除:代码如下:delete 顾客数据 where 编号=0006and 性别=男成果如下:图4.15 顾客信息表操作-删除4.2.6 采购信息表创立与操作(1)采购信息表信息插入:代码如下
16、:insert into 采购 values(0006,34,李辉,男,1,100)成果如下:图4.16 采购信息表操作-插入(2)采购信息表信息修改:代码如下:update 采购 set 顾客性别=女 where 编号=0006and 员工号=34成果如下图4.17 采购信息表操作-修改(3)采购信息表信息删除:代码如下:delete 采购 where 编号=0006and 员工号=34成果如下:图4.18 采购信息表操作-删除4.3 表T-SQL语句4.3.1 简朴查询:查询采购表基本信息select * from 采购图4.19 简朴查询4.3.2 嵌套查询 查询地址为合肥,上海顾客信息
17、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)创立视图vw1create view vw1(编号,姓名,性别,年龄,职位,权限,密码)asselect编号,姓名,性别,年龄,职位,权限,密码from员工数据图4.23 创立
18、视图1(2)创立视图vw2create view vw2(编号,姓名,性别,地址,电话)asselect编号,姓名,性别,地址,电话from 顾客数据图4.24 创立视图2(3)创立视图vw3create view vw3asselect * from 员工数据图4.25 创立视图34.4.2 视图T-SQL语句(1)查询视图vw1select * from vw1成果如下:图4.26 查询视图1(2)查询视图vw2select * from vw2成果如下:图4.27 查询视图2(3)查询视图vw3select 编号,姓名,性别=case when 性别=男then1 when 性别=女 t
19、hen 0 end , 年龄,职位,权限,密码from vw3成果如下:图4.28 查询视图34.5 存储过程在SQL Server中,存储过程是数据库对象之一,它有执行速度快、保证数据库安全和自动完毕需要预先执行任务等长处,本设计创立一种存储过程,功能是由顾客数据编号,查询与采购表关系,显示编号,姓名,采购数据顾客姓名,顾客性别购入单价。存储过程创立和调用如下:if exists(select * from sysobjects where name = prosand type =p)create proc pros sno varchar(8)as beginif exists (sel
20、ect * from 顾客数据 where 顾客数据.编号=sno ) select 顾客数据.编号,顾客数据.姓名,采购.顾客姓名,采购.顾客性别,采购.购入单价 from 顾客数据,采购 where 顾客数据.编号 =采购.编号 and 顾客数据.编号=sno else print 查无此人 endexec pros 1003exec pros 1005exec pros 1111成果如下:图4.29 存储过程4.6 触发器触发器是一类特殊存储过程。触发器与表关系亲密,可用于维护表中数据。当有数据影响到触发器维护数据时,触发器自动执行。如下是系统触发器创立和执行:触发器:当顾客退房,即删除
21、某一顾客时,这顾客所有信息也删除create trigger trigOn顾客数据instead of deleteas 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查无此人 enddelete 顾客数据where 顾客数据.编号=0003图4.30 触发器第五章 总结 这次数据库课程设计,我们小组
22、分工明确,但又互相协助。汇报整顿包括需求分析、概念构造设计、逻辑构造设计、文档排版等。通过课程设计整个过程,我理解了一种简朴系统实现全过程。从最开始需求分析,概念构造设计,逻辑构造设计和物理构造设计,到最终实行,每一步都需要认真严谨,不能有半点马虎,否则就会给下一阶段工作导致麻烦。这次可以成功构建数据库,与小组组员间团结合作有关。小组讨论让我得到了诸多想法,真正感觉到集体力量强大,同步数据库功能实现也得益于老师严格规定和耐心指导。在数据库设计整个过程中,老师也给出了许多宝贵意见,使库功能愈加完善。当然,我们目前能力总是很有限,这个简易数据库还是存在诸多问题。我相信通过深入学习,这些问题都可以迎刃而解。综上所述,通过这次课程设计,我受益匪浅。参照文献1SQL Server 教程.清华大学出版社.0.82数据库原理.机械出版社.1.83Visual C+ +SQL Server 数据库应用系统开发与实例.人民邮电出版社.74SQL Server 数据库系统开发.电子工业出版社.15SQL Server 数据库系统开发实例导航.人民邮电出版社.1.5 6数据库原理与技术.中国水利水电出版社.3.7SQL Server 数据库开发入门与范例解析.机械出版社.0.3