数据库分析与设计报告车辆管理系统.docx
《数据库分析与设计报告车辆管理系统.docx》由会员分享,可在线阅读,更多相关《数据库分析与设计报告车辆管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
数据库分析与设计报告车辆管理系统
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库的建立和测试
6.数据库运行和维护
《车辆管理系统》数据库设计
班级:
11计算机转
学号:
**********
姓名:
***
一.需求分析
1.1可行性分析
现在随着企业规模的扩大以及车辆作为最为普遍的交通工具,在企业中已经不是单一的存在,由于单位车辆数目的急剧增加,与之相对应的问题随之而生,比如车辆的使用权问题,车辆的费用问题等,不再是简单的少量的数据。
为了解决这一系列的问题,我们必须借助于电脑的强大的数据处理能力和存储能力,如此可以减少人力财力来维护这些数据,可以用更少的投入来换取更佳的数据管理。
因此,在这样的情况下,开发单位车辆管理系统是可行的,是必要的。
如今,MIS开发已经慢慢的驱向成熟,车辆管理系统也有部分开发,但是都还不是十分完善。
现今已经开发的车辆管理系统都是针对以运营为主的具有盈利目的的单位。
比如,公交管理、出租车管理、运输公司管理、汽车站点的管理,而这些管理最主要是针对盈利的管理,很少有针对各种汽车使用权、车辆调配等各种普通单位,不是以车辆运营为盈利手段的车辆管理,针对这点,此系统就是适合如今大多数企业管理的车辆管理系统。
通过计算机系统对学校进行全面的管理,满足了学校的现代化管理的要求。
1)经济性
①系统建设不需要很大的投入;
②可缩减人员编制,减少人力费用;
③人员利用率的改进;
2)技术性
①处理速度快,准确;
②通过权限的设置,数据的安全性好;
③方便查询;
④控制精度或生产能力的提高
3)社会性
①可降低工作人员工作强度,提高效率,会得到上下员工的一致同意的;
②可引进先进的管理系统开发方案,从而达到充分利用现有资源
1.2需求分析
现代信息技术特别是计算机网络技术的飞速发展,使我们的管理模式产生了质的飞跃,网络化管理将成为信息时代的重要标志和组成部分。
探索、研究并构建适宜于在计算机网络环境下的管理模式,是我们责无旁贷的使命。
通过调查,要求系统需要具有以下功能:
1)由于操作人员的计算机知识普遍较差,要求有良好的人机界面。
2)由于该系统的使用对象多,要求有较好的权限管理。
3)方便的数据查询,支持多条件查询。
4)基础信息管理与查询(包括车辆信息、用车记录、部门信息)。
5)通过计算机,能够直接“透视”仓库存储情况。
6)数据计算自动完成,尽量减少人工干预。
7)系统退出。
1.3系统的模型结构
该系统的模型结构如图2.1所示:
图2.1系统的模型结构
1.4业务流程分析
《车辆管理系统》软件的数据流图是比较清晰的,对各功能模块来说都比较有规律。
但完整的图比较繁琐。
车辆管理系统顶层图
车辆管理系统0层图
1.5数据字典
数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:
数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;它主要由数据流描述、加工描述和文件描述三部分组成。
从上面数据流图可知,本系统包含以下数据流、数据存储、数据加工。
1、数据流
数据流名称:
出车单
别名:
无
简述:
指驾驶员出车的清单。
来源:
管理部
去向:
加工“车辆出库信息”
组成:
出车单编号+车辆类别编号+出车日期+库位编号
数据流名称:
车辆入库单
别名:
无
简述:
指车辆入库的清单。
来源:
管理部
去向:
加工“添加入库信息”
组成:
入库单编号+车辆类别编号+计量单位+数量+入库日期+库位编号
数据流名称:
费用单
别名:
无
简述:
车辆产生费用的清单。
来源:
驾驶员
去向:
加工“添加费用信息”
组成:
费用单编号+费用类别编号+计量单位+数量+费用日期+费用原因
二、概念设计
2.2系统局部E-R图
2.3系统全局E-R图
2.4数据库设计
数据库整体的设计如下图所示:
/*==============================================================*/
/*DBMSname:
MicrosoftSQLServer2005*/
/*Createdon:
2012/6/1223:
16:
03*/
/*==============================================================*/
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('出车')ando.name='FK_出车_承担_驾驶员')
altertable出车
dropconstraintFK_出车_承担_驾驶员
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('出车')ando.name='FK_出车_指派_车辆')
altertable出车
dropconstraintFK_出车_指派_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('车辆事故')ando.name='FK_车辆事故_发生_车辆')
altertable车辆事故
dropconstraintFK_车辆事故_发生_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('车辆保险')ando.name='FK_车辆保险_授权_车辆')
altertable车辆保险
dropconstraintFK_车辆保险_授权_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('车辆油耗')ando.name='FK_车辆油耗_缴纳_车辆')
altertable车辆油耗
dropconstraintFK_车辆油耗_缴纳_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('车辆维修')ando.name='FK_车辆维修_加油_车辆')
altertable车辆维修
dropconstraintFK_车辆维修_加油_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='F')
wherer.fkeyid=object_id('车辆费用')ando.name='FK_车辆费用_发车_车辆')
altertable车辆费用
dropconstraintFK_车辆费用_发车_车辆
go
ifexists(select1
fromsysindexes
whereid=object_id('出车')
andname='指派_FK'
andindid>0
andindid<255)
dropindex出车.指派_FK
go
ifexists(select1
fromsysindexes
whereid=object_id('出车')
andname='承担_FK'
andindid>0
andindid<255)
dropindex出车.承担_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('出车')
andtype='U')
droptable出车
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆')
andtype='U')
droptable车辆
go
ifexists(select1
fromsysindexes
whereid=object_id('车辆事故')
andname='发生_FK'
andindid>0
andindid<255)
dropindex车辆事故.发生_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆事故')
andtype='U')
droptable车辆事故
go
ifexists(select1
fromsysindexes
whereid=object_id('车辆保险')
andname='授权_FK'
andindid>0
andindid<255)
dropindex车辆保险.授权_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆保险')
andtype='U')
droptable车辆保险
go
ifexists(select1
fromsysindexes
whereid=object_id('车辆油耗')
andname='缴纳_FK'
andindid>0
andindid<255)
dropindex车辆油耗.缴纳_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆油耗')
andtype='U')
droptable车辆油耗
go
ifexists(select1
fromsysindexes
whereid=object_id('车辆维修')
andname='加油_FK'
andindid>0
andindid<255)
dropindex车辆维修.加油_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆维修')
andtype='U')
droptable车辆维修
go
ifexists(select1
fromsysindexes
whereid=object_id('车辆费用')
andname='发车_FK'
andindid>0
andindid<255)
dropindex车辆费用.发车_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('车辆费用')
andtype='U')
droptable车辆费用
go
ifexists(select1
fromsysobjects
whereid=object_id('驾驶员')
andtype='U')
droptable驾驶员
go
/*==============================================================*/
/*Table:
出车*/
/*==============================================================*/
createtable出车(
时间datetimenotnull,
编号numericnull,
车牌numericnull,
constraintPK_出车primarykeynonclustered(时间)
)
go
/*==============================================================*/
/*Index:
承担_FK*/
/*==============================================================*/
createindex承担_FKon出车(
编号ASC
)
go
/*==============================================================*/
/*Index:
指派_FK*/
/*==============================================================*/
createindex指派_FKon出车(
车牌ASC
)
go/*==============================================================*/
/*Table:
车辆*/
/*==============================================================*/
createtable车辆(
车牌numericnotnull,
信号textnotnull,
constraintPK_车辆primarykeynonclustered(车牌)
)
go
/*==============================================================*/
/*Table:
车辆事故*/
/*==============================================================*/
createtable车辆事故(
事故地点textnotnull,
车牌numericnull,
事故时间textnull,
constraintPK_车辆事故primarykeynonclustered(事故地点)
)
go
/*==============================================================*/
/*Index:
发生_FK*/
/*==============================================================*/
createindex发生_FKon车辆事故(
车牌ASC
)
go
/*==============================================================*/
/*Table:
车辆保险*/
/*==============================================================*/
createtable车辆保险(
保险名称textnotnull,
车牌numericnull,
保险日期datetimenull,
金额textnull,
constraintPK_车辆保险primarykeynonclustered(保险名称)
)
go
/*==============================================================*/
/*Index:
授权_FK*/
/*==============================================================*/
createindex授权_FKon车辆保险(
车牌ASC
)
go
/*==============================================================*/
/*Table:
车辆油耗*/
/*==============================================================*/
createtable车辆油耗(
用油量textnotnull,
车牌numericnull,
constraintPK_车辆油耗primarykeynonclustered(用油量)
)
go
/*==============================================================*/
/*Index:
缴纳_FK*/
/*==============================================================*/
createindex缴纳_FKon车辆油耗(
车牌ASC
)
go
/*==============================================================*/
/*Table:
车辆维修*/
/*==============================================================*/
createtable车辆维修(
维修账号numericnotnull,
车牌numericnull,
维修站点char(10)null,
constraintPK_车辆维修primarykeynonclustered(维修账号)
)
go
/*==============================================================*/
/*Index:
加油_FK*/
/*==============================================================*/
createindex加油_FKon车辆维修(
车牌ASC
)
go
/*==============================================================*/
/*Table:
车辆费用*/
/*==============================================================*/
createtable车辆费用(
金额textnotnull,
车牌numericnull,
牌照numericnull,
constraintPK_车辆费用primarykeynonclustered(金额)
)
go
/*==============================================================*/
/*Index:
发车_FK*/
/*==============================================================*/
createindex发车_FKon车辆费用(
车牌ASC
)
go
/*==============================================================*/
/*Table:
驾驶员*/
/*==============================================================*/
createtable驾驶员(
编号numericnotnull,
信息textnull,
constraintPK_驾驶员primarykeynonclustered(编号)
)
go
altertable出车
addconstraintFK_出车_承担_驾驶员foreignkey(编号)
references驾驶员(编号)
go
altertable出车
addconstraintFK_出车_指派_车辆foreignkey(车牌)
references车辆(车牌)
go
altertable车辆事故
addconstraintFK_车辆事故_发生_车辆foreignkey(车牌)
references车辆(车牌)
go
altertable车辆保险
addconstraintFK_车辆保险_授权_车辆foreignkey(车牌)
references车辆(车牌)
go
altertable车辆油耗
addconstraintFK_车辆油耗_缴纳_车辆foreignkey(车牌)
references车辆(车牌)
go
altertable车辆维修
addconstraintFK_车辆维修_加油_车辆foreignkey(车牌)
references车辆(车牌)
go
altertable车辆费用
addconstraintFK_车辆费用_发车_车辆foreignkey(车牌)
references车辆(车牌)
go
三、逻辑设计
逻辑设计就是把E-R图转换成关系模式,并对其进行优化。
3.1E-R图向关系模型的转换
原则:
(1)一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;
(2)一个联系转换为一个关系模式,和该联系相连的每个实体型的键及联系的属性都转换为关系的属性。
这个关系的键分为以下三种不同的情况:
若联系为1:
1,则相连的每个实体型