数据库网上花店管理.docx
《数据库网上花店管理.docx》由会员分享,可在线阅读,更多相关《数据库网上花店管理.docx(37页珍藏版)》请在冰豆网上搜索。
数据库网上花店管理
数据库应用课程设计报告书
网上花店设计(课题名)
成绩:
小组成员:
指导教师:
2014年12月18日
三峡大学
课 程 设 计 任 务 书
2014学年下学期
课题名称
网上花店设计
指导教师
姓名
学号
专业
数字媒体
课题概述:
数据库的开发与设计是信息系统开发的重要组成部分,数据库设计的好坏直接影响到系统的开发进度和功能的实现。
本课程主要应用已经学到的数据库系统和应用的知识,通过调查分析设计一个小系统的数据库,来提高学生对所学的知识和数据库开发过程的理解和掌握,提高分析问题、解决问题的能力。
设计要求:
1、进行认真、完整的系统调查分析,取得所开发系统的第一手资料。
2、每组一个课题。
3、设计报告书要求详细具体,每个人对自己在本组中承担的主要任务要进行详细的说明,并按照要求的格式打印。
4、设计成果如果发现属于抄袭,一律退回,按不及格处理。
主要参考资料:
1、《数据库基础与应用》,数据库基础与应用,王珊、李盛恩。
2、《数据库系统概论》,高等教育出版社,萨师煊、王珊编著,第四版
设计成果要求:
1、课程设计报告书
2、设计的数据库文件及代码
设计内容及进度计划安排
起止日期
要求完成的内容
18周周三之前完成
完成资料收集,进行系统分析和调查
概念结构设计、逻辑结构设计
数据库物理设计、实现、约束的建立
完整性、用户权限、索引、视图的设计及实现
存储过程和触发器设计及实现,编写设计报告书并上交
18周四~~周五
答辩
目录
摘要------------------------------------------------------4
关键词----------------------------------------------------4
1.需求调查、分析----------------------------------------4-7
1.1课题简介---------------------------------------------4
1.2需求调查及分析---------------------------------------4
1.3数据字典-------------------------------------------5-7
1.3.1数据项-----------------------------------------5-6
1.3.2数据结构-----------------------------------------6
1.3.3数据流-------------------------------------------6
1.3.4数据存储---------------------------------------6-7
1.3.5处理过程-----------------------------------------7
2概念结构设计------------------------------------------7-11
2.1局部概念结构设计----------------------------------7-10
2.1.1花市实体属性图-----------------------------------7
2.1.2花店实体属性图-----------------------------------7
2.1.3花店采购局部-------------------------------------8
2.1.4店员实体属性图-----------------------------------9
2.1.5鲜花实体属性图-----------------------------------9
2.1.6鲜花销售局部图----------------------------------10
2.2合并及优化全局概念结构------------------------------11
3逻辑结构设计-----------------------------------------11-12
3.1概念结构向关系模式转换------------------------------11
3.2关系模式优化-------------------------------------11-12
3.3用户视图设计----------------------------------------12
4数据库物理结构设计-----------------------------------16-27
4.1存取方法设计------------------------------------16-25
4.2存储结构设计-------------------------------------25-27
4.2.1确定系统配置---------------------------------25-27
5.数据库完整性设计------------------------------------27-32
5.1主键及索引---------------------------------------27-30
5.2触发器设计---------------------------------------30-34
6.数据库存储过程设计----------------------------------34-36
7.总结------------------------------------------------36-38
摘要:
如今网上购物对于我们而言很普遍,淘宝网双十一的销售金额让我们惊讶的同时也让我们看到了电子商务的发展前景。
网上花店是电子商务发展的产物,是网络技术应用的全新发展方向。
网上购物顺应时代的潮流,走入了人们的日常生活,网上购物突破了传统商务的障碍,无论对消费者、企业还是市场都有着巨大的吸引力和影响力,我希望通过此次的实践课程能够使我们对数据库的学习更进一步,同时也能对电子商务有所了解。
关键词:
网上花店系统设计SQLServer数据库表电子商务
1.需求调查、分析
1.1课题简介
随着时代的发展,人们对精神生活要求也随之提高,鲜花业从而日益壮大,为了更好的管理这个体系,建立花店管理系统是一个很好的办法。
在这个学期我们开设了数据库原理这门课,本着理论联系实际的宗旨,通过学校提供的这次课程设计时间的机会,在大家的合作下,我们自行设计一套鲜花管理系统。
1.2需求调查及分析
通过对一般电子商务网站功能的分析,总结电子商务网站的核心功能为:
产品管理
订单下达
订单管理
前台用户可以按商品分类浏览商品信息,找到需要的商品并将其加入购物车,购买商品完成后提交购物车,系统显示出订单编号和支付方式,用户可以根据这些信息向网站汇款。
管理员后台实现的功能主要是对鲜花、花店、店员和花市信息的管理,和鲜花订单的管理。
包括对鲜花、花店、店员和花市信息的添加、修改以及对订单的发货处理两个模块。
1.3数据字典
1.3.1数据项
1.3.2数据结构
数据结构名
含义说明
组成
花市
定义了花市的有关信息
花市编号,花市名称,花市地址
花店
定义了花店的有关信息
花店编号,花店名称,花店地址,花店电话
花店采购信息表
定义了花店采购的有关信息
花市编号,花店编号
店员
定义了店员的有关信息
店员编号,店员姓名,工资,花店编号
鲜花
定义了鲜花的有关信息
鲜花名称,价格,花语
鲜花销售信息表
定义了鲜花销售的有关信息
鲜花名称,花店编号,销售额
1.3.3数据流
1.3.4数据存储
花市编号,花市名称,花市地址,花店编号,花店名称,花店地址,花店电话,店员编号,店员姓名,工资,鲜花名称,价格,花语,销售额
1.3.5处理过程
首先花市编号,花市名称,花市地址,花店编号,花店名称,花店地址,花店电话,店员编号,店员姓名,鲜花名称,花语都要提前输入并且初始化。
在市场采购鲜花后,对鲜花的价格进行录入,若进购新品种了,则鲜花名称,花语都要进行录入。
店员工资根本销售量来进行计算,销售额根据销售情况来改变。
若增加新的花市,则要录入新花市的编号,名称,地址。
2概念结构设计
2.1局部概念结构设计
2.1.1花市实体属性图
2.1.2花店实体属性图
2.1.3花店采购局部
2.1.4店员实体属性图
2.1.5鲜花实体属性图
2.1.6鲜花销售局部图
2.2合并及优化全局概念结构
3逻辑结构设计
3.1概念结构向关系模式转换
花市(花市编号,花市名称,花市地址)
花店(花店编号,花点名称,花店地址,花店电话)
花店采购信息表(花市编号,花店编号)
店员(店员编号,店员姓名,工资,花店编号)
鲜花(鲜花名称,价格,花语)
鲜花销售信息表(鲜花名称,花店编号,销售额)
3.2关系模式优化
1、确定数据依赖
花市(花市编号,花市名称,花市地址)根据这个关系写出数据依赖
花市编号→花市名称,花市编号→花市地址
花店(花店编号,花店名称,花店地址,花店电话)
花店编号→花店名称,花店编号→花店地址,花店编号→花店电话
店员(店员编号,店员姓名,工资,花店编号)
店员编号→店员姓名,店员编号→工资,店员编号→花店编号
鲜花(鲜花名称,价格,花语)
鲜花名称→价格,鲜花名称→花语
鲜花销售(鲜花名称,花店编号,销售额)
(鲜花名称,花店编号)→销售额
2、对各关系模式间数据依赖进行极小化处理,消除冗余
花市编号→花市名称,花市编号→花市地址,花店编号→花店名称,花店编号→花店地址,花店编号→花店电话,店员编号→店员姓名,店员编号→工资,店员编号→花店编号,鲜花名称→价格,鲜花名称→花语,(鲜花名称,花店编号)→销售额
3、最终分解成第三范式:
(花市编号,花市名称,花市地址)
(花店编号,花店名称,花店地址,花店电话)
(店员编号,店员姓名,工资,花店编号)
(鲜花名称,价格,花语)
(鲜花名称,花店编号,销售额)
3.3用户视图设计
4数据库物理结构设计
物理设计主要是指把逻辑设计当中的关系模式图在数据库中以基本表的形式建立出来。
本系统涉及到的表如下:
数据库的建立代码:
createdatebasefs
on(name=flowershop,size=3,filename=’d:
\flo.mbf’)
logon(name=flowershop_log,size=1,filename=’d:
\flo_log.ldf’)
表的建立:
flower表:
createtableflower
(
namechar(20)primarykey,
pricefloat,
flowerlanguagechar(20));
flowermarket表:
createtableflowermarket
(
marketnochar(10)primarykey,
marketnamechar(20),
marketaddchar(50));
flowershop表:
createtableflowershop
(
shopnochar(10)primarykey,
shopnamechar(20),
shoptellchar(20),
shopaddchar(50));
salesman表:
createtablesalesman
(
salesmannochar(10)primarykey,
salesmannamechar(20),
wagefloat,
shopnochar(10),
foreignkey(shopno)referencesflowershop(shopno));
huadianxiaoshou表:
createtablehuadianxiaoshou
(
shopnochar(10),
namechar(20),
xiaoshoueint,
primarykey(shopno,name),
foreignkey(shopno)referencesflowershop(shopno),
foreignkey(name)referencesflower(name));
huadianxiaoshou表:
createtablehuadianxiaoshou
(
marketnochar(10),
shopnochar(10),
primarykey(marketno,shopno),
foreignkey(marketno)referencesflowermarket(marketno),
foreignkey(shopno)referencesflowershop(shopno));
视图的建立:
在SQL中,视图是基于SQL语句的结果集的可视化的表。
salesa视图:
createviewsalesa
as
SELECTdbo.salesman.salesmannoAS店员编号,dbo.salesman.salesmannameAS店员名,dbo.salesman.wageAS工资,dbo.flowershop.shopnameAS所属花店
FROMdbo.flowershop,dbo.salesmanONdbo.flowershop.shopno=dbo.salesman.shopno
WHERE(dbo.salesman.shopno='HB09')
xiaoshou视图:
createviewxiaoshou
as
SELECTdbo.huadianxiaoshou.shopno,dbo.flowershop.shopname,dbo.huadianxiaoshou.nameASflowername,dbo.huadianxiaoshou.xiaoshoue
FROMdbo.flowershop,dbo.huadianxiaoshouONdbo.flowershop.shopno=dbo.huadianxiaoshou.shopno
WHERE(dbo.huadianxiaoshou.shopno='HB06')
xiaoshoua视图:
createviewxiaoshoua
as
SELECTdbo.huadianxiaoshou.shopno,dbo.flowershop.shopname,dbo.huadianxiaoshou.nameASflowername,dbo.huadianxiaoshou.xiaoshoue
FROMdbo.flowershop,dbo.huadianxiaoshouONdbo.flowershop.shopno=dbo.huadianxiaoshou.shopno
WHERE(dbo.huadianxiaoshou.shopno='HB05')
xiaoshoub视图:
createviewxiaoshoub
as
SELECTdbo.huadianxiaoshou.shopno,dbo.flowershop.shopname,dbo.huadianxiaoshou.nameASflowername,dbo.huadianxiaoshou.xiaoshoue
FROMdbo.flowershop,dbo.huadianxiaoshouONdbo.flowershop.shopno=dbo.huadianxiaoshou.shopno
WHERE(dbo.huadianxiaoshou.shopno='HB09')
4.1存取方法设计
参数及表的建立:
Flower表:
Flowermarket表:
Floweshops表:
Huadiancaigou表:
Huadianxiaoshou表:
Salesman表:
数据库表的设计:
(表的截图)
花的信息表截图:
花市信息表截图:
花店信息表截图:
花店采购信息表截图:
花店销售信息表截图:
店员信息表截图:
编号为HB05的花店的店员信息视图截图:
编号为HB06的花店的销售信息截图:
编号为HB05的花店的销售信息截图:
编号为HB09的花店的销售信息截图:
数据库的测试:
数据的插入:
insertintodbo.flowermarket(marketno,marketname,marketadd)
values('HS06','啦啦花市','西陵区7号')
数据的删除:
deletefromdbo.huadianxiaoshou
whereshopno='HB05'andname='百合';
数据的更新:
updatedbo.salesman
setwage=2500
wheresalesmanno=1;
4.2存储结构设计
4.2.1确定系统配置
数据库应用的硬件,软件环境介绍:
软件环境是一个系统开发的工具,它取决于开发人员对软件的熟悉程度,如果开发人员选择一个不熟悉的软件开发会大大增加开发系统所需要投入的成本,所以说选择软件是很重要的。
本实验用到的是SQL2008,安装它对硬件,软件的要求如下:
项目
要求说明
CPU
处理器类型:
Pentium兼容处理器或速度更快的处理器;
处理器速度:
最低:
1.0GHz
最高:
2.0GHz或更快
内存
最小512MB
建议2GB或更大
硬盘
根据组件的不同,需要的硬盘空间进行变化,建议2.2GB以上硬盘空间
显示器
分辨率1024*768像素以上
操作系统
WindowsServer2003ServicePack2
WindowsServer2008
WindowsServer2008R2
可以安装到64位服务器的WindowsonWindows(WOW64)32位子系统中
项目
要求说明
需要的框架
NETFramework3.5SPI
SQLServerNativeClient
SQLServer安装程序支持文件
需要的软件
MicrosoftWindowsInstaller4.5或更高版本
MicrosoftInternetExplorer6SPI或更高版本
网络协议
Sharedmemory(客户端连接本机SQLServer实例时使用)
NamedPipes
TCP/IP
VIA
系统的视图界面:
5数据库完整性设计
5.1主键及索引
我们所做的数据库中所用的是非唯一性索引,以下是主键与索引还有唯一性索引的理解:
其实指定列的索引就相当于对指定的列进行排序,排序有利于对该列的查询,可以大大增加查询效率。
(那么可能有人认为应该对所有的列排序,这样就可以增加整个数据库的查询效率?
这样的想法是错误的,原因是建立索引也是要消耗系统资源的,给每个表里的每个列都建立索引那么将对系统造成极大的负担,那就更别提效率了!
)简单的说建立一个列的索引,就相当与建立一个列的排序。
主键其实就是一个索引,但是这个索引跟一般的索引有所不同,不同在于主键所在的列里的每一个的记录都是唯一的,也可以说不能在主键里出现相同的记录,在同一个表里只能有一个主键。
(主键等于索引,索引不一定等于主键)简单的说主键就是所在列不能出现相同记录的特殊索引,而且这个索引只能在表里出现一次。
1.主键一定是唯一性索引,唯一性索引并不一定就是主键;
2.一个表中可以有多个唯一性索引,但只能有一个主键;
3.主键列不允许空值,而唯一性索引列允许空值。
主键在表中有唯一标识的作用,不可重复,不能为空; 当其它表建立外键关联当前表时,只可以关联主键。
唯一索引,确切的说是唯一约束,
createuniqueindexindex_idon(id);
是用来限制当前表插入时建立唯一约束的字段不可重复。
一个是做为唯一标识,先唯一后标识; 另一个是插入时做唯一限制。
主键:
flower表:
flowermarket表:
flowershop表:
huadiancaigou表:
huadianxiaoshou表:
salesman表:
索引的建立:
(先给出索引的相关定义,然后自己选择表或属性建立索引,及其相关SQL语句)
工资高于2500的店员的索引:
CREATEindex工资高于2500的店员
ondbo.salesman(wageasc)
wherewage>=2500;
编号为HB09的花店销售信息的索引:
createindex编号为HB09的花店销售信息
ondbo.huadianxiaoshou(xiaoshoueasc)
whereshopno='HB09';
5.2触发器设计
触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。
触发器一般用在check约束(CHECK约束用于限制列中的值的范围。
如果对单个列定义CHECK约束,那么该列只允许特定的值。
如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。
)更加复杂的约束上面。
触发器和普通的存储过程的区别是:
触发器是当对某一个表进行操作。
诸如:
update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。
触发器有两个特殊的表:
插入表(instered表)和删除表(deleted表)。
这两张是逻辑表也是虚表。
有系统在内存中创建者两张表,不会存储在数据库中。
而且两张表的都是只读的,只能读取数据而不能修改数据。
这两张表的结果总是与被改触发器应用的表的结构相同。
当触发器完成工作后,这两张表就会被删除。
Inserted表的数据是插入或是修改后的数据,而deleted表的数据是更新前的或是删除的数据。
Update数据的时候就是先删除表记录,然后增加一条记录。
这样在inserted和deleted表就都有update后的数据记录了。
注意的是:
触发器本身就是一个事务,所以在触发器里面可以对修改数据进行一些特殊的检查。
如果不满足可以利用事务回滚,撤销操作。
鲜花插入的触发器:
createtriggerinsert_鲜花
ondbo.flower
forinsert
as
ifexists(selectpricefromdbo.flowerwhereprice<0)
begin
deletefromdbo.flowerwhereprice