销售管理系统数据库设计说明书.docx
- 文档编号:26379775
- 上传时间:2023-06-18
- 格式:DOCX
- 页数:12
- 大小:93.32KB
销售管理系统数据库设计说明书.docx
《销售管理系统数据库设计说明书.docx》由会员分享,可在线阅读,更多相关《销售管理系统数据库设计说明书.docx(12页珍藏版)》请在冰豆网上搜索。
销售管理系统数据库设计说明书
Lastrevisionon21December2020
销售管理系统数据库设计说明书
销售管理系统数据库设计
班级______________________
姓名______________________
学号______________________
成绩______________________
日期______________________
装订线考生答题不得超过此线
销售管理系统数据库设计说明书
一、数据库系统功能简介(5分):
商品销售管理数据库是一个用来管理商品销售信息的数据库系统。
该数据库可以用来管理企业的商品信息、部门信息、员工信息、供应商信息、客户信息以及采购信息和销售信息,实现信息的自动化管理和利用。
二、需求分析(10分)
销售管理数据库的数据流程图
三、概念结构设计(10分)
销售管理数据库的E-R图
四、逻辑结构设计(5分)
销售管理数据库关系模式:
(1)部门(部门编号,部门名称,部门主管,备注)
(2)员工(员工编号,姓名,性别,出生年月,聘任日期,工资,部门编号)
(3)商品(商品编号,商品名称,单价,库存量,已销售量)
(4)客户(客户编号,公司名称,联系人姓名,电话,地址,Email)
(5)供应商(供应商编号,供应商名称,联系人姓名,电话,地址,Email)
(6)采购订单(采购订单号,商品编号,员工号,供应商编号,订购数量,订购日期)
(7)销售订单(销售订单号,商品编号,员工号,客户号,订购数量,订购日期)
五、物理结构设计(5分)
为销售管理数据库设计一个数据文件,一个日志文件,放在D盘的data文件夹下;销售管理数据库里面包含7个表,分别为商品、部门、员工、供应商、客户以及采购订单和销售订单;数据库和数据表的结构定义请看后面创建对象的SQL语句。
部门表
列名
数据类型
宽度
为空性
说明
部门编号
int
主关键字
部门名称
varchar
30
唯一键
部门主管
char
8
√
备注
varchar
50
√
员工表
列名
数据类型
宽度
为空性
说明
员工编号
int
主关键字
姓名
varchar
20
性别
char
2
√
取值为男或女
出生年月
smalldatetime
√
聘任日期
smalldatetime
√
工资
money
√
取值范围800-100000
部门编号
int
√
来自“部门表”的外键
供应商表
列名
数据类型
宽度
为空性
说明
供应商编号
int
主关键字
供应商名称
varchar
50
联系人姓名
char
8
√
电话
varchar
13
√
电话长度为7-13位字符
地址
varchar
100
√
varchar
30
√
E-mail地址包含“@”
客户表
列名
数据类型
宽度
为空性
说明
客户编号
int
主关键字
公司名称
varchar
50
联系人姓名
char
8
√
电话
varchar
13
√
电话长度为7-13位字符
地址
varchar
100
√
varchar
30
√
E-mail地址包含“@”
商品表
列名
数据类型
宽度
为空性
说明
商品编号
int
主关键字
商品名称
varchar
50
单价
Decimal(8,2)
√
单价大于0
库存量
int
√
库存量为非负数
已售数量
int
√
已售数量为非负数
采购订单表
列名
数据类型
宽度
为空性
说明
采购订单号
int
主关键字
商品编号
int
√
来自商品表的外键
员工编号
int
√
来自员工表的外键
供应商编号
int
√
来自供应商表的外键
订购数量
int
√
订购日期
smalldatetime
销售订单表
列名
数据类型
宽度
为空性
说明
销售订单号
int
主关键字
商品编号
int
√
来自商品表的外键
员工编号
int
√
来自员工表的外键
客户编号
int
√
来自客户表的外键
订购数量
int
√
订购日期
smalldatetime
六、数据库的实施(共65分)
创建数据库各种对象和执行查询的SQL语句
1.创建数据库(5分)
createdatabase销售管理
onprimary
(name=Sales_data,
filename='d:
\data\',
size=10mb,
maxsize=unlimited,
filegrowth=10%)
logon
(name=Sales_log,
filename='d:
\data\',
size=3mb,
maxsize=5mb,
filegrowth=1mb)
2.创建数据表并给表添加数据(20分)
use销售管理
go
createtable部门
(部门编号intprimarykey,
部门名称varchar(30)notnullconstraintUQ_DNameunique,
部门主管char(8),
备注varchar(50))
go
createtable员工
(员工编号intprimarykey,
姓名varchar(20)notnull,
性别char
(2)default'男'check(性别='男'or性别='女'),
出生年月smalldatetime,
聘任日期smalldatetime,
工资moneycheck(工资between800and100000),
部门编号intforeignkey(部门编号)references部门(部门编号))
go
createtable供应商
(供应商编号intprimarykey,
供应商名称varchar(50)notnull,
联系人姓名char(8),
电话char(13)check(len(电话)>=7andlen(电话)<=13),
地址varchar(100),
"E-mail"varchar(30)check("E-mail"like'%@%'))
go
createtable客户
(客户编号intprimarykey,
公司名称varchar(50)notnull,
联系人姓名char(8),
电话char(13)check(len(电话)>=7andlen(电话)<=13),
地址varchar(100),
"E-mail"varchar(30)check("E-mail"like'%@%'))
go
createtable商品
(商品编号intprimarykey,
商品名称varchar(50)notnull,
单价decimal(8,2)check(单价>0),
库存量intcheck(库存量>=0),
已销售量intcheck(已销售量>=0))
go
createtable采购订单
(采购订单号intprimarykey,
商品编号intreferences商品(商品编号),
员工编号intreferences员工(员工编号),
供应商编号intreferences供应商(供应商编号),
订购数量int,
订购日期smalldatetimedefaultgetdate())
go
createtable销售订单
(销售订单号intprimarykey,
商品编号intreferences商品(商品编号),
员工编号intreferences员工(员工编号),
客户编号intreferences客户(客户编号),
订购数量int,
订购日期smalldatetimedefaultgetdate())
表添加的数据如下图所示:
3.创建数据库各种对象(共25分)
a.创建试图(5分):
创建一个客户订购情况的视图,包括客户编号,公司名称,商品编号,商品名称,单价和订购数量,并对视图进行加密。
createview客户订购情况
withencryption
as
selecta.客户编号,公司名称,c.商品编号,商品名称,单价,订购数量
from客户ajoin销售订单asbona.客户编号=b.客户编号
join商品asconc.商品编号=b.商品编号
b.创建索引(5分):
在销售管理系统中,经常要按照客户名称查询信息,通过给客户表的公司名称创建一个唯一非聚集索引来提高查询速度。
Createuniqueindexix_cname
On客户(公司名称)
c.创建用户定义函数(5分):
创建标量函数,根据商品名称统计某种商品销售的次数
createfunction销售次数
(@商品名称varchar(50)='路由器')
returnsint
begin
declare@销售次数int
select@销售次数=count(*)
from商品join销售订单
on商品.商品编号=销售订单.商品编号
where商品名称=@商品名称
return@销售次数
end
执行函数:
selectdbo.销售次数('鼠标')as销售次数
selectdbo.销售次数(default)
d.创建存储过程(5分):
创建一个名为客户订购信息存储过程,用于查询指定客户的联系人姓名、联系方式、以及该公司订购产品的明细表。
createproc客户订购信息
(@客户名称varchar(50)='通恒机械有限公司')
as
select公司名称,联系人姓名,商品名称,单价,订购数量,订购日期
from客户join销售订单
On客户.客户编号=销售订单.客户编号
join商品
on商品.商品编号=销售订单.商品编号
where公司名称=@客户名称
执行输入参数为默认值的存储过程:
exec客户订购信息
执行带输入参数的存储过程:
exec客户订购信息'三川实业有限公司
e.创建触发器(5分):
创建一个触发器实现当向销售订单表添加一条记录时,自动修改商品表的库存数量和已售数量。
createtrigger销售
on销售订单
afterinsert
as
update商品
set库存数量=库存数量-订购数量,
已售数量=已售数量+订购数量
from商品joininserted
on商品.商品编号=inserted.商品编号
4.执行查询(共15分)
(1)简单查询(2分):
从客户表中检索所有客户的公司名称、联系人姓名和地址。
select公司名称,联系人姓名,地址from客户
(2)条件查询(3分):
在销售管理数据库的销售订单表中,查询员工编号为1、5和7的员工接受订单信息。
select*from销售订单where员工编号in(1,5,7)
(3)统计查询(2分):
统计所有员工的平均工资、最高工资、最低工资和工资总和。
selectavg(工资)as平均工资,max(工资)as最高工资,min(工资)as最低工资,sum(工资)as工资总和from员工
(4)分组查询(3分):
查询男女员工的平均工资。
select性别,avg(工资)as平均工资from员工groupby性别
(5)多表查询(2分):
查询“国皓科技有限公司”订购的商品信息,包括客户编号,公司名称,商品编号,商品名称,商品价格,订购数量。
selecta.客户编号,公司名称,c.商品编号,商品名称,单价,订购数量
from客户ajoin销售订单asbona.客户编号=b.客户编号
join商品asconc.商品编号=b.商品编号
where公司名称='国皓科技有限公司‘
(6)嵌套查询(3分):
查询比平均工资高的员工的姓名和工资。
select姓名,工资from员工
where工资>(selectavg(工资)from员工)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 销售 管理 系统 数据库 设计 说明书
![提示](https://static.bdocx.com/images/bang_tan.gif)