网上图书销售系统数据库分析与设计.docx
- 文档编号:25136375
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:36
- 大小:941.52KB
网上图书销售系统数据库分析与设计.docx
《网上图书销售系统数据库分析与设计.docx》由会员分享,可在线阅读,更多相关《网上图书销售系统数据库分析与设计.docx(36页珍藏版)》请在冰豆网上搜索。
网上图书销售系统数据库分析与设计
网上图书销售系统分析与设计
1.项目背景
跟着Internet的兴起,收集已经成为当代人糊口中的一部分,越来越多的人喜欢在网上生意。
本系统便是一个基于B/S模式的收集化的图书发卖打点系统,授与的是妙技,实现了用户注册信息打点、用户信息打点、图书发卖点打点、图手札息打点、客户订单打点、购物信息打点,库存打点,动静打点等模块。
通过测试,根基实现了这个集成书籍打点、网上定购等功效于一体的图书发卖打点系统。
在Internet上通过它用户可以打破时刻和空间的限定来实现网上购书,有效地收缩了图书通顺发行枢纽,将泛博读者、图书、出版者、发行者严密地联络在一路,年夜年夜提高了图书通顺率。
它有着策划本钱低、库存是假造的、用户检索便利、地域限定少等特点。
2.系统功能结构
根据网上图书销售系统的特点,可以将其分为订购人信息管理模块,书籍信息管理模块,供应商信息管理模块,管理者信息管理模块和付款接收银行管理模块5个部分,其中各部分及其包括的具体功能如图1所示。
图1网上图书销售系统功能结构图
3.数据库设计
(1)概念结构设计
根据网上图书销售系统分析和设计,确定数据库的实体主要有管理员、书、仓库、供应商、订单、客户、银行等,各实体之间的管理系统如图2所示。
管理员
书
客户
银行
订单
供应商
管理
订单生成
包含
供应
付款
管理员ID
姓名
登录密码
客户ID
客户名
联系地址
密码
电话
邮编
银行编号
电话
厂号
地址
负责人
名称
订单状态
数目
定价
作者
书名
书号
出版社
订购日期
出版日期
订单号
总数
付款日期
付款数
书籍简介
书籍类型期
电话
管理
包含
仓库
库存量ian
厂名
联系人
地址
图2网上图书销售系统E-R图
(2)表设计
经过E-R向关系模型转化并进行范式优化后,得到如下的数据库表设计,如表1-8,图3_1-3_3所示。
表1管理员
字段名称
数据类型
长度
备注
管理员ID
char
10
主键
姓名
varchar
6
notnull
登录密码
char
10
notnull
表2书
字段名称
数据类型
长度
备注
书号
char
8
主键
作者
varchar
6
notnull
出版社
char
10
notnull
书籍类型
char
8
notnull
书籍介绍
varchar
40
notnull
出版日期
datetime
默认
定价
int
4
notnull
管理员ID
char
10
外键
表3供应商
字段名
数据类型
长度
备注
厂号
char
4
主键
厂名
varchar
20
notnull
联系人
varchar
6
notnull
电话
char
11
notnull
地址
char
20
notnull
表4客户
字段名
数据类型
长度
备注
客户ID
char
10
主键
客户名
varchar
6
notnull
密码
char
10
notnull
电话
char
11
notnull
联系地址
char
20
notnull
邮编
char
6
notnull
表5订单
字段名
数据类型
长度
备注
订单号
char
4
主键
订单状态
char
3
notnull
订购日期
datetime
默认
notnull
付款数
int
4
notnull
付款日期
datetime
默认
客户ID
char
10
外键
银行编号
char
10
外键
表6银行
字段名
数据类型
长度
备注
银行编号
char
10
主键
名称
varchar
20
notnull
负责人
varchar
6
notnull
电话
char
11
notnull
地址
char
20
notnull
表7订书
字段名
类型
长度
备注
ID
int
4
主键,标识
订单号
char
4
外键
书号
char
8
外键
数目
int
4
notnull
表8供应
字段名
类型
长度
备注
ID
int
4
主键,标识
书号
char
8
外键
厂号
char
4
外键
总数
int
4
notnull
表9仓库
字段名
类型
长度
备注
ID
int
4
主键,标识
书号
char
8
外键
库存量
int
4
notnull
管理员ID
char
10
外键
(表设计)图3_1书
(表设计)图3_2订单
(表设计)图3_3银行
(3)视图设计
视图功能:
使用查询分析器在网上图书销售系统数据库中建立一个有客户名,书名,订购日期,数目的客户购书情况的视图客户购书情况。
视图定义,如图4_1所示:
createview客户购书情况
AS
selecttop100percent客户名,书名,订购日期,数目from客户,订单,订书,书where
客户.客户ID=订单.客户IDand
订单.订单号=订书.订单号and
订书.书号=书.书号
orderby客户名
(视图)4_1客户购书情况
视图功能:
使用查询分析器在网上图书销售系统数据库中建立一个有客户名,订单号,订单状态,订购日期,付款数,付款日期,银行编号的客户订单情况的视图客户订单信息。
视图定义,如图4_2所示:
createview客户订单信息
AS
selecttop100percent客户名,订单号,订单状态,订购日期,
付款数,付款日期,银行编号from
客户,订单where
客户.客户ID=订单.客户ID
orderby客户名
(视图)4_2客户订单信息
视图功能:
使用查询分析器在网上图书销售系统数据库中建立一个有书名,厂名,总数的图书供应情况的视图图书供应情况查询。
视图定义,如图4_3所示:
createview图书供应情况查询
AS
selecttop100percent书名,厂名,总数from
书,供应,供应商where
供应商.厂号=供应.厂号and
供应.书号=书.书号
orderby书名
(视图)4_3图书供应情况查询
(4)默认约束规则
外键约束定义:
建立书表和供应表之间的参照关系,如图5_1_1所示
(外键约束)图5_1_1
外键约束定义:
建立订单表和客户表之间的参照关系,如图5_1_2所示
(外键约束)图5_1_2
外键约束定义:
建立订单表和银行表之间的参照关系,如图5_1_3所示
(外键约束)图5_1_3
Check约束定义:
设置书表中的数目字段取值在0-1000之间,如图5_2_1所示
(Check约束)图5_2_1
Check约束定义:
设置订单表中的付款数字段取值在0-10000之间,如图5_2_2所示
(Check约束)图5_2_2
Check约束定义:
设置订单表中的订单状态字段的值为‘完成’或‘未完成’,如图5_2_3所示
(Check约束)图5_2_3
Default约束定义:
设置订单表中的订单状态默认值为‘未完成’,如图5_3_1所示
(Default约束)图5_3_1
Default约束定义:
设置订单表中的付款数默认值为0,如图5_3_2所示
(Default约束)图5_3_2
Default约束定义:
设置管理员表中的登录密码默认值为‘123456’,如图5_3_3所示
(Default约束)图5_3_3
(5)存储过程设计
存储过程功能:
用CREATEPROCEDURE语句创建存储过程图书价格查询,要求根据书的书号返回书名和定价。
存储过程定义,如图6_1所示:
/*
createprocedure图书价格查询
@书号char(8),
@书名varchar(20)output,
@定价intoutput
AS
ifexists(select*from书where书号=@书号)
select@书名=书名,@定价=定价
from书
where书号=@书号
else
print'没有这本书!
'
*/
declare@书名varchar(20),@定价int
execute图书信息查询'0012',@书名output,@定价output
select书名=@书名,定价=@定价
(存储过程)图6_1图书价格查询
存储过程功能:
用CREATEPROCEDURE语句创建存储过程订单人查询,要求根据订单号返回订单人姓名和联系电话。
存储过程定义,如图6_2所示:
/*
createprocedure订单人查询
@订单号char(4),
@客户名varchar(6)output,
@电话char(11)output
AS
ifexists(select*from订单where订单号=@订单号)
select@客户名=客户名,@电话=电话
from客户,订单
where订单号=@订单号and
订单.客户ID=客户.客户ID
else
print'没有这个订单!
'
*/
declare@客户名varchar(6),@电话char(11)
execute订单人查询'0001',@客户名output,@电话output
select订单人=@客户名,联系电话=@电话
(存储过程)图6_2订单人查询
存储过程功能:
用CREATEPROCEDURE语句创建存储过程图书库存量查询,要求输入书号,返回书名和库存量情况。
存储过程定义,如图6_3所示:
/*
createprocedure图书库存量查询
@书号char(8),
@书名varchar(20)output,
@库存量intoutput
AS
ifexists(select*from仓库where书号=@书号)
select@书名=书名,@库存量=库存量
from书,仓库
where仓库.书号=@书号and
书.书号=仓库.书号
else
print'仓库里没有这本书!
'
*/
declare@书名varchar(20),@库存量int
execute图书库存量查询'0022',@书名output,@库存量output
select书名=@书名,库存量=@库存量
(存储过程)图6_3图书库存量查询
(6)触发器设计
触发器功能:
使用T-SQL的CREATETRIGGER语句在网上图书销售系统数据库的书表上创建一个更新触发器书作者修改提醒,当在书表中更新作者姓名时,激活该触发器,显示被更改书的作者的更变信息。
触发器定义如图7_1所示。
/*
createtrigger书作者修改提醒
on书
forupdate
as
ifupdate(作者)
begin
declare@书名char(8),@旧作者char(6),@新作者char(6)
declare@msgchar(50)
select@书名=书名,@旧作者=作者fromdeleted
select@新作者=作者frominserted
set@msg='《'+@书名+'》'+'的作者'+@旧作者+
'被更名为'+@新作者
print@msg
end
*/
update书set作者='王明'where书号='0011'
(触发器)图7_1书作者修改提醒
触发器功能:
使用T-SQL的CREATETRIGGER语句在网上图书销售系统数据库的书表上创建一个更新触发器图书库存更新,当在供应表中增加了一条记录时,激活该触发器,更新仓库表里的对应记录,并显示相关信息。
触发器定义如图7_2所示。
/*
createtrigger图书库存更新
on供应
forinsert
as
begin
declare@总数int,@书号char(8),@书名varchar(20),@库存量int
select@总数=总数,@书号=书号frominserted
select@书名=书名from书where书号=@书号
update仓库set库存量=库存量+@总数
where书号=@书号
select@库存量=库存量from仓库where书号=@书号
declare@msgchar(50)
set@msg='新入库《'+@书名+'》'+cast(@总数asvarchar)+
'本,目前库存量为'+cast(@库存量asvarchar)+'本'
print@msg
end
*/
insertinto供应values('0012','2',200)
(触发器)图7_1图书库存更新
触发器功能:
使用T-SQL的CREATETRIGGER语句在网上图书销售系统数据库的书表上创建一个更新触发器新增图书入库,当在书表中增加了一条记录时,激活该触发器,在仓库表中新增一条记录,把新书自动更新入库,并显示相关信息。
触发器定义如图7_3所示。
/*
createtrigger新增图书入库
on书
forinsert
as
begin
declare@书号char(8),@书名varchar(20),@管理员IDchar(10)
select@书名=书名,@书号=书号,@管理员ID=管理员IDfrominserted
insertinto仓库values(@书号,0,@管理员ID)
declare@msgchar(50)
set@msg='新增图书《'+@书名+'》已入库!
'
print@msg
end
*/
insertinto书values('0013','操作系统','刘小青','海天出版社','计算机'
'操作系统安装和维护','2008-08-08',18,'0002')
(触发器)图7_3新增图书入库
(7)多表复杂查询语句设计
查询语句功能:
查询付款数在200元以上(包括200元)且在工商银行受理的订单的订书情况,要求返回订单号,书名,订购数量。
查询语句定义,如图8_1所示。
select订单.订单号,书名,数目as订购数量
from书,订单,订书,银行
where付款数>=200and订单.订单号=订书.订单号
and银行.银行编号=订单.银行编号and名称='工商银行'
and订书.书号=书.书号
(查询语句)图8_1
查询语句功能:
查询由宁波印刷厂供应,供应数量在200本(包括200本)以上的图书供应信息,要求返回书号,书名,供应量。
查询语句定义,如图8_2所示。
select书.书号,书名,总数as供应量
from供应商,供应,书
where总数>=200and厂名='宁波印刷厂'
and供应商.厂号=供应.厂号
and书.书号=供应.书号
(查询语句)图8_2
查询语句功能:
查询状态为未完成且订书数量在10本以上(包括10本)的订单所对应的客户信息,要求返回订单号,客户名,电话,联系地址。
查询语句定义,如图8_3所示。
select订单.订单号,客户名,电话,联系地址
from订单,订书,客户
where订单状态='未完成'and数目>=10
and订单.订单号=订书.订单号
and订单.客户ID=客户.客户ID
(查询语句)图8_3
4.数据库创建
数据库创建参数如表7所示,创建如图9_1-9_3所示:
表7网上图书销售系统数据库各属性参数
参数
参数值
数据库名
网上图书销售系统
逻辑数据文件名
网上图书销售系统_Data
数据物理文件名
F:
\课程作业\数据库\网上图书销售系统
数据文件的初始大小
5MB
数据文件的最大大小
20MB
数据文件增长帐度
10%
事务日志逻辑文件名
网上图书销售系统_Log
事务日志物理文件名
F:
\课程作业\数据库\网上图书销售系统
日志文件初始大小
3MB
日志文件增长幅度
5MB
图9_1
图9_2
图9_3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 图书 销售 系统 数据库 分析 设计