当前位置:文档之家› 建材物资管理信息系统数据库设计

建材物资管理信息系统数据库设计

数据库原理课程设计——建材物资管理系统课程:数据库原理学院:信息科学与技术学院专业:计算机科学与技术姓名:摆新文 2010508026指导老师:***日期: 2013年1月16日目录第一章引言 (3)1.引言 (3)第二章外部设计 (4)第三章结构设计 (4)3.1概念结构设计 (4)3.2 逻辑结构设计: (4)3.3关系图 (5)3.4物理结构设计 (5)第四章存储过程、触发器脚本 (8)4.1.存储过程脚本: (8)4.2.触发器脚本 (9)4.3视图脚本: (11)4.4数据库恢复与备份: (11)第一章引言1.引言1.1编写目的自Internet出现以来,大量的信息通过它迅速传播,突破了原有的通信方式。

在网上,不仅可以迅速找到任何方面的相关内容,而且信息的传递也较以前快了许多。

2000年,全世界已拥有近10亿因特网用户,有一亿多台计算机互联,可以交换数据的网络超过了100万个,每年在网络上的交易次数超过10亿次。

电子商务正是由于这种信息的快速流动和资源的大量集成而悄然崛起,并以惊人的速度发展着。

提供高效的内容丰富的Web商业服务是一项连续不断的任务,并不是做好了几个网页放在那里就可以了。

所以,设计了这个网上超市购物车系统,以对电子商务有进一步的认识。

1.2背景a. 待开发软件系统的名称:建材物资管理信息系统b. 本项目的任务提出者:石河子大学c. 本项目开发者:摆新文d. 本项目用户:网上购物客户和实际客户1.3参考资料《软件开发这点儿事——软件开发工具手册》邵志东著《程序员指南丛书高级编程》但正刚著《网络应用系统开发与实例》吴明晖主编吴丹红编著第二章外部设计2.1支持软件本数据库主要采用微软公司的成熟数据库系统SQL Server2005,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。

第三章结构设计3.1概念结构设计本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,3.2 逻辑结构设计:E-R图:图-1 系统整体E-R图3.3关系图图-2整体关系图3.4物理结构设计1.0 WuziInfor 物资信息表:列名说明类型(长度)备注WuziCode 物资类别编号char(10) 不允许空,主键Weight 质量int 允许空Danwei 计量单位Int 不允许空Uselife 有效期Datetime 允许空2.0 GuestInfor 客户信息表:3.0 Admin管理员信息表:4.0 WuziID 物资索引信息表5.0 WorkerInfor 员工信息表:6.0 CK 仓库信息表7.0 Ruku 入库信息表:8.0 Chuku 出库信息表:9.0 Supplier 供应商信息表:第四章存储过程、触发器脚本4.1.存储过程脚本:1. 创建存储过程统计指定时间段内各种商品的入库数量create proc pro_rksl@starttime datetime,@endtime datetime,@wuzicode char(10),@totalsl int outputasselect @totalsl=sum(Rukuliang) from Rukuwhere RukuDate between @starttime and @endtime and WuziCode=@wuzicode group by WuziCode(统计进货数量的存储器的测试)declare @starttime datetime,@endtime datetime,@wuzicode char(10),@totalsl intselect @starttime='2013/1/16 00:00:00'select @endtime='2013/1/18 2:00:00'select @wuzicode='WC001'exec pro_rksl @starttime,@endtime,@wuzicode,@totalsl outputselect @wuzicode as '物资类别编号',@totalsl as '入库总数量'2. 创建存储过程统计指定时间段内各种商品的销售数量create proc pro_xssl@starttime datetime,@endtime datetime,@wuzicode char(10),@totalsl int outputasselect @totalsl=sum(Chukuliang) from Chukuwhere ChukuDate between @starttime and @endtime and WuziCode=@wuzicodegroup by WuziCode(统计销售数量的存储器的测试)declare @starttime datetime,@endtime datetime,@wuzicode char(10),@totalsl intselect @starttime='2013/1/16 00:00:00'select @endtime='2013/1/18 2:00:00'select @wuzicode='WC001'exec pro_xssl @starttime,@endtime,@wuzicode,@totalsl outputselect @wuzicode as '物资类别编号',@totalsl as '销售总数量'3.创建存储过程查询某段时间内各种物资的销售收入create proc pro_xssr@starttime datetime,@endtime datetime,@wuzicode char(10),@totalsr int outputasselect @totalsr=sum(Chukuliang*ListPrice) from Chukuwhere ChukuDate between @starttime and @endtime and WuziCode=@wuzicodegroup by ListPrice(查询某段时间内各种物资的销售收入的测试)declare @starttime datetime,@endtime datetime,@wuzicode char(10),@totalsr intselect @starttime='2011/12/16 00:00:00'select @endtime='2012/1/2 2:00:00'select @wuzicode='WC001'exec pro_xssr @starttime,@endtime,@wuzicode,@totalsr outputselect @wuzicode as '物资类别编号',@totalsr as '销售总额'4.2.触发器脚本:1.0当物资入库时自动增加该商品的库存量只有入库量大于0时,修改表Ruku中Rukuliang和RukuCode,则表CK中的Total和WuziCode随之改变create trigger tri_wzrkon Ruku for insertas declare @oldsl int,@wzid char(10),@rksl int,@rkid char(10)select @wzid=WuziCode,@rkid=RukuCode,@rksl=Rukuliang from insertedif @rksl>0beginselect @oldsl=Total from CK where WuziCode=@wzidupdate CK set Total=@oldsl+@rksl where WuziCode=@wzidreturnendrollback transaction2.0当物资销售时自动减少该物资的库存量只有销售量大于0,且销售量小于库存量时,修改表Chuku中的Chukuliang和WuziCode,则表CK中的Total和WuziCode随之改变create trigger tri_wzxson ChuKu for insertas declare @oldsl int,@wzid char(10),@xssl intselect @wzid=WuziCode,@xssl=Chukuliang from insertedselect @oldsl=Total from CK where WuziCode=@wzidif @xssl>0 and @oldsl>@xssl --销售数量大于0,且库存量大于销售量beginupdate CK set Total=@oldsl-@xssl where WuziCode=@wzid returnendrollback transaction4.3视图脚本:SELECT dbo.WuziID.WuziName AS 物资名称, dbo.Chuku.ListPrice AS 单价, dbo.Chuku.Chukuliang AS 销售量, dbo.GuestInfor.GuestName AS 客户名称,dbo.Chuku.ChukuDate AS 销售日期FROM dbo.Chuku INNER JOINdbo.WuziID ON dbo.Chuku.WuziCode = dbo.WuziID.WuziCode INNER JOINdbo.GuestInfor ON dbo.Chuku.GuestCode = dbo.GuestInfor.GuestCode4.4数据库恢复与备份:1.0数据库的完全备份backup database WuziGLto disk ='f:\备份数据库\ WuziGLwith initgo数据库的恢复restore database WuziGLfrom disk = 'f:\备份数据库\ WuziGLwith recoverygo2.0数据库差异备份backup database WuziGLto disk ='f:\备份数据库\ WuziGL 'with differentialgo数据库的恢复restore database WuziGLfrom disk = 'f:\备份数据库\ WuziGLwith norecoverygorestore database OnlineShopfrom disk = 'f:\备份数据库\ WuziGL ' with file=2go。

相关主题