仓库设备管理系统数据库设计.docx
《仓库设备管理系统数据库设计.docx》由会员分享,可在线阅读,更多相关《仓库设备管理系统数据库设计.docx(22页珍藏版)》请在冰豆网上搜索。
仓库设备管理系统数据库设计
前言
数据库是数据管理的最新技术,是计算机科学的重要分支。
今天,信息资源已成为各个部门的重要财富和资源。
建立一个满足各级部门信息处理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。
在数据库领域内,通常把使用数据库的各类信息系统统称为数据库应用系统。
例如,以数据库为基础的各种管理信息系统、办公自动化系统、地理信息系统、电子政务系统、电子商务系统、都可以称为数据库应用系统。
此课程设计也就是数据库设计。
广义地讲,是数据库及其应用系统的设计,即设计整个的数据库应用系统。
狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。
本设计的重点是描述狭义的数据库设计。
当今社会,随着计算机技术的迅猛发展以及Internet进入商业和社会应用阶段,设备的种类、数量越来越多,如何利用先进的网络技术和日新月异的计算机设备来有效地收集、处理这些设备,建立以信息化为核心的管理体制,减轻管理人员和业务人员的数据处理负担,极大地提高设备管理效率和管理手段,己经成为当今社会的潮流。
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。
高效率的运行环境包括:
数据库数据的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。
本课程设计原则上遵循以上规则和要求进行设计。
或因为一些知识掌握的不牢固,或有不妥地方。
前言1
目录2
第一章概述3
1.1背景3
1.2编写目的3
1.3软件定义3
第二章需求分析4
2.1问题陈述4
2.2需完成的功能4
2.3数据流图4
2.4数据字典5
2.5性能分析6
第三章概念结构设计7
3.1设计分E-R图7
3.2合并成E-R图7
第四章逻辑结构设计9
4.1表结构9
4.2SQL定义10
4.3构造完整性11
4.4表数据11
第五章软件功能设计13
第六章代码设计和界面设计14
6.1代码设计14
6.2界面设计15
第七章小结16
第八章参考文献17
附录18
第一章概述
1.1背景
数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
设备管理的各项制度、流程涉及的点多面广。
在现代化大型研究所信息化管理体系建设中,设备管理系统被看作是重中之重。
因为设备是工厂生产中的主体,随着科学技术的不断发展,生产设备日益机械化、自动化、大型化、高速化和复杂化,设备在现代工业生产中的作用和影响也随之增大,在整个工业生产过程中对设备的依赖程度也越来越高。
设备管理系统则是一个以人为主导,利用计算机硬件、软件、网络设备通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以战略竟优、提高效率为目的,支持高层决策、中层控制、基层运作的集成化的人机系统。
而设备管理是管理系统的一个子系统,它具有管理信息系统的共性,同时也具有其特殊性。
设备是生产的生命线,对研究所正常生产起着决定性的作用。
信息安全设备管理已成为现代研究所管理的一个重要组成部分。
把信息安全设备管理纳入研究所管理的重要组成部分己经成为一种趋势。
1.2编写目的
数据库原理及应用课程设计是计算机科学与技术、信息管理与信息系统、信息与计算科学专业教学培养计划中十分重要的实践性教学环节,是对学生巩固所学数据库技术的基础知识、进行数据库技术的专业基本技能训练、培养实践动手能力、理论联系实际的重要实践课程。
通过课程设计,达到以下目的:
1、根据教材上数据库设计部分的原理和方法,结合软件工程相关知识,能针对一些简单的数据库系统设计问题,进行必要的分析和设计。
2、巩固学生学习的数据库原理、程序设计语言等课程的基础知识,训练学生分析和解决数据库系统的实际问题的能力。
3、能查阅资料解决数据库技术方面的问题。
1.3软件定义
设备管理系统(EquipmentManagementSystem)是将信息化了设备技术信息与现代化管理相结合,是实现研究级管理信息化的先导。
设备管理软件是设备管理模式与计算机技术结合的产物,设备管理的对象是研究所中各种各样的设备。
第二章需求分析
2.1问题陈述
一个实用的仓库设备管理系统是实现企业对设备出、入库进行高效的管理。
通过应用系统应能对设备基本信息、设备情况,设备状态等信息进行管理。
新的设备信息的录入、报废设备信息的删除等操作也是其中的一部分。
同时按照一定的条件查询、统计符合条件的设备信息。
2.2需完成的功能
用户登录、新增设备、删除设备、修改设备、查询设备、设备入库、设备出库、设备报废、退出系统。
用户中仅有一个管理员用户,用来管理其他一般用户,管理员具有一切权限,可以增删用户。
而一般用户只有对设备及自身信息管理的权限,无法对其他用户进行处理的权限。
当操作无效或失败时弹出窗口提示错误。
注意:
设备报废后为出库状态。
报废是出库的一种情况,此系统中作为特殊处理。
2.3数据流图
1、顶级数据流图
2、管理员数据流图
3、一般用户数据流图
2.4数据字典
2.5性能分析
需实现许多性能特性,实用性、灵活性、可扩展性、易维护性、可靠性、安全保密性等等。
1、实用性
实用性是衡量一个应用系统好坏的重要指标。
是否与业务紧密结合,是否具有严格的业务针对性,是系统成败的关键。
2、灵活性
灵活性可以达到更高效率、更佳界面直观的效果。
3、可扩展性
随着系统应用的普及和推广,系统功能的扩展将是不可避免的,因此,提高系统的可扩展性、可维护性是提高整个系统性能的必然要求。
4、易维护性
本系统采用多层架构设计,使系统结构更清楚,分工更明确,有利于后期的维护。
5、可靠性
社会向信息时代迅速发展的同时也有潜在危机,即对信息技术的依赖程度越高,系统失效可能造成的危害和影响也就越大。
因此,采用良好的操作系统和数据库,确保数据的一致性和完整性,并使系统免受病毒感染,确保系统运行的可靠性具有重要意义。
6、安全保密性
整体的系统安全性是本系统中必须考虑的重点要求。
在该系统设计中,安全、可靠将作为第一要素。
同时,利用细分的权限管理,拒绝非法用户进入系统和合法用户的越权操作,避免系统遭到恶意破坏,防止系统数据被窃取和篡改。
此外,还有良好的用户身份认证体制和灵活的密码更改模块;用户权限也可以通过管理员灵活修改。
第三章概念结构设计
3.1设计分E-R图
1、管理员
2、用户
3、设备
4、管理
3.2合并成E-R图
消除以上各个分E-R图的属性冲突、命名冲突和结构冲突形成初步E-R图。
在初步E-R图中,可能存在一些冗余的数据和实体间冗余的联系。
所谓冗余的数据是指有基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。
冗余数据和冗余联系统一破坏数据库的完整性,给数据库维护增加困难,应当予以消除。
消除了冗余后的初步E-R图称为基本E-R图。
第四章逻辑结构设计
逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
把基本E-R图转换成关系模型。
4.1表结构
1、设备Equipment
属性名
数据类型
可否为空
含义
完整性约束
Eno
Char(4)
否
设备编号
主码
Ename
Char(20)
否
设备名称
Emade
Char(20)
否
生产厂商
Edate
Datetime
可
生产日期
2、入库Instorage
属性名
数据类型
可否为空
含义
完整性约束
Eno
Char(4)
否
设备编号
主属性,外部码,级联
Indate
Datetime
否
入库时间
Usno
Char(4)
否
用户编号
主属性,外部码,级联
3、出库Outstorage
属性名
数据类型
可否为空
含义
完整性约束
Eno
Char(4)
否
设备编号
主属性,外部码,级联
Outdate
Datetime
否
出库时间
Usno
Char(4)
否
用户编号
主属性,外部码,级联
4、管理Stock
属性名
数据类型
可否为空
含义
完整性约束
Eno
Char(4)
否
设备编号
主属性,外部码,级联
Buydate
Datetime
否
购置日期
Econ
Char(4)
否
设备状态
“报废”、“出库”、“库存”之一
Outtime
Datetime
可
报废时间
5、用户Users
属性名
数据类型
可否为空
含义
完整性约束
Usno
Char(4)
否
用户编号
主码
Usname
Char(10)
否
用户名
Uscode
Char(6)
否
登陆密码
6位字母或数字
Uscon
Char
(2)
否
是否管理员
“是”、“否”之一
4.2SQL定义
1、设备信息——表Equipment
createtableEquipment(
Enochar(4)primarykey,
Enamechar(20)notnull,
Emadechar(20)notnull,
Edatedatetime
)
2、入库信息——表Instorage
createtableInstorage(
Enochar(4)notnull,
Indatedatetimenotnull,
Usnochar(4)notnull
)
3、出库信息——表Outstorage
createtableOutstorage(
Enochar(4)notnull,
Outdatedatetimenotnull,
Usnochar(4)notnull
)
4、管理信息——表Stock
createtableStock(
Enochar(4)notnull,
Buydatedatetimenotnull,
Econchar(4)notnullcheck(Econin('库存','出库','报废')),
Outtimedatetime
)
5、用户信息——表Users
createtableUsers(
Usnochar(4)primarykey,
Usnamechar(10)notnull,
Uscodechar(6)notnull,
Usconchar
(2)notnullcheck(Usconin('是','否')),
)
4.3构造完整性
altertableInstorageaddconstraintEno1foreignkey(Eno)referencesEquipment(Eno)onupdatecascadeondeletecascade
altertableOutstorageaddconstraintEno2foreignkey(Eno)referencesEquipment(Eno)onupdatecascadeondeletecascade
altertableInstorageaddconstraintUsno1foreignkey(Usno)referencesUsers(Usno)onupdatecascadeondeletecascade
altertableOutstorageaddconstraintUsno2foreignkey(Usno)referencesUsers(Usno)onupdatecascadeondeletecascade
altertableStockaddconstraintEno3foreignkey(Eno)referencesEquipment(Eno)onupdatecascadeondeletecascade
4.4表数据
1、Equipment
Eno
Ename
Emade
Edate
E001
电力变压器
长江电力设备厂
2000-10-28
E002
动力柜
岷江配电设备厂
2001-06-05
E003
车床
第一机床厂
2003-03-18
E004
配电柜
广东电子厂
2003-04-22
E005
外圆磨床
上海兴华厂
2004-04-14
E006
潜水电泵
天津龙腾机床厂
2006-02-20
E007
油分离器
大连冷冻机厂
2006-10-06
……
……
……
……
2、Instorage
Eno
Indate
Usno
E002
2000-08-12
U002
E003
2003-03-24
U001
E005
2006-12-10
U002
3、Outstorage
Eno
Outdate
Usno
E001
2005-03-24
U002
E006
2006-09-12
U002
E007
2008-07-15
U002
4、Stock
Eno
Buydate
Econ
Outtime
E001
2000-11-01
出库
E002
2001-06-10
库存
E003
2003-03-21
库存
E004
2003-04-25
报废
2010-07-28
E005
2004-04-16
库存
E006
2006-02-28
出库
E007
2006-10-10
出库
5、Users
Usno
Usname
Uscode
Uscon
U001
root
root
是
U002
user1
user1
否
U003
user2
user2
否
第五章软件功能设计
用户登录:
供不同的用户登陆;
信息管理:
可对设备进行增、删、改、查四类操作,完成对设备管理的功能;
库存管理:
对设备入库、出库的管理,以及管理设备报废的情况;
查询设备:
此功能可对设备基本信息、设备情况,设备状态等信息进行管理;
系统管理:
方便管理员增删一般用户,以及用户对自身信息的修改;
退出系统:
当完成对设备处理的操作后,退出系统。
可得如下系统功能结构图:
第六章代码设计和界面设计
6.1代码设计
1、新增设备
insertintoEquipmentvalues([设备编号],[设备名称],[生产厂商],[生产日期]);
2、删除设备
deletefromEquipmentwhere<条件>;
3、修改设备
updateEquipmentset<列名>=<表达式>[,<列名>=<表达式>]…
[where<条件>];
4、查询设备
select<目标表达式>[…]from<表名>where<条件>
[orderby<列名>[asc|desc]]
1)查询所有设备信息:
selectEquipment.Eno,Ename,Emade,Edate,Buydate,Econ,Outtime
fromEquipment,StockwhereEquipment.Eno=Stock.Eno
orderbyEnoasc;
2)查询入库设备信息:
selectEquipment.Eno,Ename,Emade,Edate,Indate,Usno
fromEquipment,InstoragewhereEquipment.Eno=Instorage.Eno
orderbyEnoasc;
3)查询出库设备信息:
selectEquipment.Eno,Ename,Emade,Edate,Outdate,Usno
fromEquipment,OutstoragewhereEquipment.Eno=Outstorage.Eno
orderbyEnoasc;
4)查询报废设备信息:
selectEquipment.Eno,Ename,Emade,Edate,Buydate,Econ,Outtime
fromEquipment,StockwhereEquipment.Eno=Stock.EnoandStock.Econ='报废'
orderbyEnoasc;
5、设备入库
设备入库的同时出库信息中此编号设备将被删除,同时修改管理中状态信息。
begintransactiont1
declare@xint
set@x=1
insertintoInstoragevalues('[设备编号]','[入库时间]','[用户]')
if@x=-1
begin
rollbacktransactiont1
end
else
begin
deletefromOutstoragewhereEno='[设备编号]'
committransactiont1
end
updateStocksetEcon='库存'whereEno='[设备编号]';
6、设备出库
设备出库的同时入库信息中此编号设备将被删除,同时修改管理中状态信息。
begintransactiont2
declare@xint
set@x=1
insertintoOutstoragevalues('[设备编号]','[出库时间]','[用户]')
if@x=-1
begin
rollbacktransactiont2
end
else
begin
deletefromInstoragewhereEno='[设备编号]'
committransactiont2
end
updateStocksetEcon='出库'whereEno='[设备编号]';
7、设备报废
设备报废后,应删除入/出库中的设备信息。
updateStocksetEcon='报废'whereEno='[设备编号]';
updateStocksetOuttime='[时间]'whereEno='[设备编号]';
begintransactiont3
declare@xint
set@x=1
deletefromInstoragewhereEno='[设备编号]'
if@x=-1
begin
rollbacktransactiont3
end
else
begin
deletefromOutstoragewhereEno='[设备编号]'
committransactiont3
end
8、用户管理
仅管理员root用户才具有管理用户的权限,可对一般用户进增删。
而一般用户只有修改用户名和修改密码的权限。
9、系统退出
完成对所有设备处理操作后,可通过此项退出系统
6.2界面设计
第七章小结
通过本次课程设计,深入了解了SQL语言的应用。
此设计过程不仅加强了我的动手和思考解决问题的能力,还学到了很多书本上学不到的知识,同时也巩固了对课本的知识。
在期末考试之前由此这么深刻的课程设计,对我们期末考试也是很大的帮助。
我做的设计是仓库设备管理系统,仓库设备管理系统分了很多部分,有用户登录、新增设备、删除设备、修改设备、查询设备、设备入库、设备出库、设备报废、退出系统等等界面,我在这次课程设计中学到了很多。
刚开始拿到这个题目时不是很有信心,在做的过程中还遇到了很多的问题。
在制作过程中心理虽然有很多创意和构思,但是实际操作却存在很大的困难。
至于设计和制作界面的时候,由于对各类语言的掌握不是很透彻以及以前也没有做过系统的经验,本次试验只是写了设计思路,并没有真正写出系统的源代码。
这次课程设计对我而言,挫折是一种财富,经历时一份拥有。
第八章参考文献
1、《数据库系统概论(第四版)》,王珊、萨师煊编著,高等教育出版社,2006;
2、“XX百科”——“设备管理系统”;
附录
创建基本表的SQL代码:
createtableEquipment(
Enochar(4)primarykey,
Enamechar(20)notnull,
Emadechar(20)notnull,
Edatedatetime
)
createtableInstorage(
Enochar(4)notnull,
Indatedatetimenotnull,
Usnochar(4)notnull
)
createtableOutstorage(
Enochar(4)notnull,
Outdatedatetimenotnull,
Usnochar(4)notnull
)
createtableStock(
Enochar(4)notnull,
Buydatedatetimenotnull,
Econchar(4)notnullcheck(Econin('库存','出库','报废')),
Outtimedatetime
)
createtableUsers(
Usnochar(4)primarykey,
Usnamechar(10)notnull,
Uscodechar(6)notnull,
Usconchar
(2)notnullcheck(Usconin('是','否')),
)
altertableInstorageaddconstraintEno1foreignkey(Eno)referencesEquipment(Eno)onupdatecascadeondeletecascade
altertableOutstorageaddconstraintEno2foreignkey(Eno)referencesEquipment(Eno)onupdatecascadeondeletecascade
alter