仓库管理数据库.docx
- 文档编号:6091037
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:13
- 大小:210.30KB
仓库管理数据库.docx
《仓库管理数据库.docx》由会员分享,可在线阅读,更多相关《仓库管理数据库.docx(13页珍藏版)》请在冰豆网上搜索。
仓库管理数据库
《数据库开发项目技术》课程设计
2013年6月17-28日
1课程设计的目的
数据库系统原理课程设计是数据库系统原理实践环节的及为重要的一部分,其目的是:
(1)培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER,全局ER图。
(2)培养学生能够应用数据库系统原理在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型。
(3)培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,并且能够应用视图,存储过程,触发器,游标技术以保证数据库系统的数据完整性,安全性,一致性,保证数据共享和防止数据冲突.
(4)培养学生理论与实际相结合能力,培养学生开发创新能力
2课程设计内容
作为仓库管理系统,对物资、货架、仓库的管理。
本实例仅考虑物资管理主要方面,主要涉及物资采购、入库、出库等方面的管理。
3设计题目及要求
3.1仓库管理系统
3.2需求分析
本系统将实现物资入库、出库信息的记录,采购信息与采购人员、供应商资料的记录,物资在仓库中的记录。
3.3概念(模型)设计
3.3.1全局设计、数据流图
表3-1全局E/R图
第0层数据流图,仓库管理员维护仓库内物资信息,采购人员将物资录入系统。
表3-2-1第0层数据流图
对第0层DFD图中的一个加工"仓库管理"进行展开。
表3-2-2第1层数据流图
3.3.2数据字典
以下列出"仓库管理系统"的部分数据字典条目:
数据项名:
仓库
描述:
仓库的主要信息
别名:
无
定义:
仓库编号+仓库地址+仓库名
类型:
字符串
数据量:
20左右
峰值:
无
其他说明:
在系统功能扩充时可能增加定义项
数据流名:
仓库编号
描述
唯一标识仓库的编号
别名:
无
类型:
整形(int)
长度:
4位字符
其他说明:
仓库编号不能重复
数据流名:
仓库信息录入
描述:
系统处理的一个命令
别名:
无
频率:
1000次左右
峰值:
随时,但经常在仓库扩充时
其他说明:
在系统功能扩充时可能增加种类
3.3.3具体各表设计
表3-3物资信息表图表3-4货架信息表图
表3-5仓库信息表图表3-6物资入库信息表图
表3-7物资出库信息表图表3-8物资采购表图
表3-9采购人员信息表图表3-10供应商信息表图
3.4物理设计、SQL编程
3.4.1物资信息表
Createtablewuzi_info--物资信息表
(
WuzinumintnotnullPrimaryKey,--物资编号,主键
Wuzinamechar(50)notnull,--物资名
Wuziquantityintnotnull--物资数量
)
3.4.2仓库信息表
Createtablestorehouse_info--仓库信息表
(
Storehouse_numintnotnullPrimaryKey,--仓库编号,主键
Storehouse_addrchar(100)notnull,--仓库地址
Storehouse_namechar(50)notnull--仓库名
)
3.4.3货架信息表
Createtableshelf_info--货架信息表
(
Shelf_numintnotnullprimarykey,--货架编号,主键
Storehouse_numintnotnull
foreignkey(Storehouse_num)referencesstorehouse_info(Storehouse_num),
--仓库编号,外键
Wuzinumint
foreignkey(Wuzinum)referenceswuzi_info(Wuzinum)--物资编号,外键
)
3.4.4供应商信息表
Createtablesupp_info--供应商信息表
(
Suppnumintnotnullprimarykey,--供应商编号
Suppnamechar(50)notnull,--供应商名
Supperchar(50)notnull,--联系人
Supphonechar(11)notnull--供应商联系电话
)
3.4.5采购人员信息表
Createtablebuyer_info--采购人员信息表
(
Buyer_numintnotnullprimarykey,--采购人员编号,主键
Buyer_namechar(50)notnull,--采购人员姓名
Sexchar(10)notnull,--性别
Buyer_phonechar(11)notnull--采购人员联系电话
)
3.4.6采购表
Createtablebuy_info--采购表
(
Buy_numintnotnullprimarykey,--采购编号,主键
Wuzinumintnotnull
foreignkey(Wuzinum)referenceswuzi_info(Wuzinum),--物资编号,外键
wuzinamechar(50)notnull,--物资名
Wuziquantityintnotnull,--物资数量
suppnumintnotnull
foreignkey(suppnum)referencessupp_info(suppnum),--供应商编号,外键
buyer_numintnotnull
foreignkey(buyer_num)referencesbuyer_info(buyer_num)--采购人员编号,外键
)
3.4.7物资入库信息表
Createtableinhouse_info--物资入库信息表
(
Inhouse_numintnotnullprimarykey,--入库编号,主键
Wuzinumintnotnull
foreignkey(Wuzinum)referenceswuzi_info(Wuzinum),--物资编号,外键
storehouse_numintnotnull
foreignkey(storehouse_num)referencesstorehouse_info(storehouse_num),
--仓库编号,外键
shelf_numintnotnull
foreignkey(shelf_num)referencesshelf_info(shelf_num),--货架编号,外键
wuziquantityintnotnull,--物资数量
indatedatetimenotnull--入库时间
)
3.4.8物资出库信息表
Createtableouthouse_info--物资出库信息表
(
outhouse_numintnotnullprimarykey,--出库编号,主键
Wuzinumintnotnull
foreignkey(Wuzinum)referenceswuzi_info(Wuzinum),--物资编号,外键
storehouse_numintnotnull
foreignkey(storehouse_num)referencesstorehouse_info(storehouse_num),
--仓库编号,外键
shelf_numintnotnull
foreignkey(shelf_num)referencesshelf_info(shelf_num),--货架编号,外键
wuziquantityintnotnull,--物资数量
outdatedatetimenotnull--出库时间
)
3.4.9约束
createrulerule_phone
as
@phonelike'1[3-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
Go--数据样式
sp_bindrule'rule_phone','buyer_info.buyer_phone'
go--绑定到列
sp_bindrule'rule_phone','supp_info.supphone'
go
altertableshelf_info
addconstraintchk_shelf_numcheck(shelf_numbetween0and100)
go--货架编号check约束
…
3.4.10触发器
--如果在inhouse_info表插入数据,将其中的wuziquantity与wuzinum表中的wuziquantity项相加
createtriggertri_xiugai1oninhouse_infoforinsert
as
begin
updatewuzi_infosetwuziquantity=wuziquantity+(selectwuziquantityfrominserted)
wherewuzinum=(selectwuzinumfrominserted)
end
go
--如果在outhouse_info表插入数据,将wuzinum表中的wuziquantity项减去outhouse_info表中的wuziquantity
createtriggertri_xiugai2onouthouse_infoforinsert
as
begin
updatewuzi_infosetwuziquantity=wuziquantity-(selectwuziquantityfrominserted)
wherewuzinum=(selectwuzinumfrominserted)
end
go
3.4.11存储过程
--输入物资编号,查询物资在仓库中的所有信息
createprocproc_chaxun
@wuzinumchar(100)
as
selectwuzi_info.wuzinum,wuziname,wuziquantity,storehouse_num,shelf_num
fromwuzi_info,shelf_info
wherewuzi_info.wuzinum=shelf_info.wuzinum
andwuzi_info.wuzinum=@wuzinum
3.5数据测试
3.5.1数据设计
各表中的数据如下图所示,其中inhouse_info表和outhouse_info表中不添加数据
采购表:
采购人员表:
供应商信息表:
仓库信息表:
货架信息表:
物资信息表:
3.5.2数据测试
(1)添加数据到inhouse_info表:
insertintoinhouse_info
values('10','520','1','1001','15','2013-06-26')
结果窗口显示:
分别查询inhouse_info表、shelf_info表和wuzi_info表,
(2)添加数据到outhouse_info表:
insertintoouthouse_info
values('13','521','3','1002','150','2013-06-26')
结果窗口显示:
分别查询inhouse_info表和wuzi_info表,
(3)执行存储过程proc_chaxun
execproc_chaxun'1003'
结果显示:
4、课程设计总结及心得体会
在这两周的课程设计中,我收获良多,由开始的E/R图,到数据流图,到设计数据库中的每个表,完善每个表间的关系,补充约束、触发器、存储过程,最后进行测试。
每个步骤中我都能温故知新获得新的知识。
开始做这个课程设计时,我真的有点不知所措,尽管其中的知识老师已经说过或者我们已经做过,但是当把所有学过的东西再联系起来的时候,那就不简单。
在不断的失败和寻找原因后,终于把数据库的基础模型设计出来。
然后就是在这个基础上不断完善,终于把这个仓库管理数据库完成了。
失败乃成功之母,做什么都不要害怕失败,总有一天会成功。
5、参考文献
[1]王知强.数据库系统及应用.北京:
清华大学出版社,2011.
[2]肖慎勇.SQLServer数据库管理与开发.北京:
清华大学出版社,2006.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仓库 管理 数据库