数据库分析与设计报告车辆管理系统Word文件下载.docx
《数据库分析与设计报告车辆管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库分析与设计报告车辆管理系统Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。
1.2需求分析
现代信息技术特别是计算机网络技术的飞速发展,使我们的管理模式产生了质的飞跃,网络化管理将成为信息时代的重要标志和组成部分。
探索、研究并构建适宜于在计算机网络环境下的管理模式,是我们责无旁贷的使命。
通过调查,要求系统需要具有以下功能:
1)由于操作人员的计算机知识普遍较差,要求有良好的人机界面。
2)由于该系统的使用对象多,要求有较好的权限管理。
3)方便的数据查询,支持多条件查询。
4)基础信息管理与查询(包括车辆信息、用车记录、部门信息)。
5)通过计算机,能够直接“透视”仓库存储情况。
6)数据计算自动完成,尽量减少人工干预。
7)系统退出。
1.3系统的模型结构
该系统的模型结构如图2.1所示:
图2.1系统的模型结构
1.4业务流程分析
4车辆上下限
用户登
陆
T车辆统
计
统计报表
用户信息
车辆基本信息
驾驶员信息
基本信息
费用信息
出车信息
回车信息
■用户权限信息
驾驶员类别
息
出车时间到期报警信
《车辆管理系统》软件的数据流图是比较清晰的,对各功能模块来说都比较有规律。
但完整的图比较繁琐。
车辆管理系统顶层图
车辆管理系统0层图
1.5数据字典
数据字典是描述数据流图中数据的信息的集合。
它对数据流图上每一个成分:
数据项、文件(数据结构)、数据流、数据存储、加工和外部项等给以定义和说明;
它主要由数据流描述、加工描述和文件描述三部分组成。
从上面数据流图可知,本系统包含以下数据流、数据存储、数据加工。
1、数据流数据流名称:
出车单别名:
无简述:
指驾驶员出车的清单。
来源:
管理部
去向:
加工“车辆出库信息”组成:
出车单编号+车辆类别编号
+出车日期+库位编
数据流名称:
车辆入库单
别名:
指车辆入库的清单。
加工“添加入库信息”
组成:
入库单编号+车辆类别编号+计量单位+数量+
入库日期+库位编号
费用单别名:
车辆产生费用的清单。
驾驶员去向:
加工“添加费用信息”组成:
费用单编号+费用类别编号二、概念设计
2.2系统局部E-R图
+计量单位+数量+
费用日期+费用原因
下圈星车辆视羽E-R图土
卜宰也车实低E-R;
唤
卜-誓是车胡汩耗対3暫:
乍辆细殘
2.3系统全局E-R图
5谊耗
N逗亘心〉Teal:
士三
宕空頑Wdpi》Eimlw
<
7ndt;
t!
wd?
fzir.tiYLTrl"
.pi》
主砖爲习
E1>
T=iiSH>
BllftunbiF
ii?
=tifis^l<
jn;
/*DBMSname:
MicrosoftSQLServer2005*/
/*Createdon:
2012/6/1223:
16:
03*/ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='
F'
)
wherer.fkeyid=object_id('
出车'
)ando.name='
FK_出车—承担_驾驶员'
altertable出车
dropconstraintFK_出车—承担_驾驶员
go
ifexists(select1
出车'
)ando.name='
FK_出车_指派_车辆'
dropconstraintFK_出车_指派_车辆
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
车辆事故'
FK_车辆事故_发生_
车辆'
altertable车辆事故
dropconstraintFK_车辆事故_发生_车辆
车辆保险'
FK_车辆保险_授权_
altertable车辆保险
dropconstraintFK_车辆保险_授权_车辆
ifexists(select1fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
车辆油耗'
FK_车辆油耗_缴纳_
altertable车辆油耗
dropconstraintFK_车辆油耗_缴纳_车辆
车辆维修'
FK_车辆维修_加油_
altertable车辆维修
dropconstraintFK_车辆维修_加油_车辆
车辆费用'
FK_车辆费用_发车_
altertable车辆费用
dropconstraintFK_车辆费用_发车_车辆
fromsysindexes
whereid=object_id('
出车'
andname='
指派_FK'
andindid>
0andindid<
255)
dropindex出车.指派_FK
fromsysindexeswhereid=object_id('
承担_FK'
andindid>
0
andindid<
dropindex出车.承担_FK
fromsysobjects
andtype='
U'
droptable出车
车辆'
droptable车辆
发生_FK'
dropindex车辆事故.发生_FK
droptable车辆事故
andname='
授权andindid>
车辆保险'
FK'
dropindex车辆保险.授权_FK
fromsysobjectswhereid=object_id('
andtype='
droptable车辆保险
缴纳
车辆油耗'
dropindex车辆油耗.缴纳_FK
droptable车辆油耗
加油andindid>
车辆维修'
dropindex车辆维修.加油_FK
)droptable车辆维修
发车
车辆费用'
dropindex车辆费用.发车_FK
droptable车辆费用
驾驶员'
droptable驾驶员
/*========
/*Table:
出车
*/
/*========createtable
出车(
时间
datetime
notnull,
编号
numeric
null,
车牌
constraintPK_出车primarykeynonclustered(时间)
go/*Index:
承担_FK*/createindex承担_FKon出车(编号ASC
/*Index:
指派_FK
*/createindex指派_FKon出车(
车牌ASC
go/*==============================================================*//*Table:
车辆*/
/*==============================================================*/createtable车辆(
车牌numericnotnull,
信号textnotnull,
constraintPK_车辆primarykeynonclustered(车牌)go
车辆事故
/*===========
====*/
createtable
车辆事故(
事故地点
text
事故时间
constraintPK
_车辆事故
primarykeynonclustered(
事故地点)
)go
/*===========================
===========*/
发生_FK
createindex发生_FKon车辆事故(车牌ASC
车辆保险(
保险名称
保险日期
金额
车辆保险*/
constraintPK_车辆保险primarykeynonclustered(保险名称))go
/*==================================
授权_FK
/*==================================createindex授权_FKon车辆保险(车牌ASC
go/*Table:
车辆油耗*/
/*==============================================================*/createtable车辆油耗(
用油量textnotnull,
车牌numericnull,
constraintPK_车辆油耗primarykeynonclustered(用油量))
/*=====================================
缴纳_FK
/*==============================================================createindex缴纳_FKon车辆油耗(
车辆维修
/*=============================================
createtable车辆维修(
维修账号numericnotnull,
维修站点char(10)null,
constraintPK_车辆维修primarykeynonclustered(
维修账号)
加油_FK
/*==============================================================createindex加油_FKon车辆维修(
车辆费用
createtable车辆费用(
牌照
constraintPK_
车辆费用
金额)
/*============
_FK
createindex发车_FKon车辆费用(车牌ASC
驾驶员*/
/*==============================================================*/createtable驾驶员(
编号numericnotnull,
信息textnull,
constraintPK_驾驶员primarykeynonclustered(编号)
)goaltertable出车addconstraintFK_出车_承担_驾驶员foreignkey(编号)
references驾驶员(编号)goaltertable出车
车牌)
addconstraintFK_出车_指派_车辆foreignkey(
references
车辆(车牌)
goaltertable车辆事故
addconstraintFK_车辆事故_发生_车辆foreignkey(车牌)
references车辆(车牌)
addconstraintFK_车辆保险_授权_车辆foreignkey(车牌)
addconstraintFK_车辆油耗_缴纳_车辆foreignkey(车牌)
addconstraintFK_车辆维修_加油_车辆foreignkey(车牌)
addconstraintFK_车辆费用_发车_车辆foreignkey(车牌)
三、逻辑设计逻辑设计就是把E-R图转换成关系模式,并对其进行优化。
3.1E-R图向关系模型的转换
原则:
(1)一个实体型转换为一个关系模型,实体的属性就是关系的属性,实体的键就是关系的键;
(2)一个联系转换为一个关系模式,和该联系相连的每个实体型的键及联系的属性都转换为关系的属性。
这个关系的键分为以下三种不同的情况:
若联系为1:
1,则相连的每个实体型的键均是该关系模式的侯选键。
n,贝U联系对应的关系模式的键取n端实体型的键。
若联系为m:
n,贝U联系对应的联模式的键为参加联系的诸实体型的键的组合。
例如:
根据E-R图,将图中所示的实例转化为如下关系模型⑹:
司机(工号,所属部门,姓名,出生年月,性别,电话,地址)车辆(车牌号,所属部门,负责人,型号,颜色)
终端(SIM卡号,SOS号,按键1,按键2,按键3,按键4,起始时间,结束时间,上报频次,定位频次)
GPS信息(SIM卡号,纬度,经度,上报时间)
绑定信息(车牌号,司机工号,SIM卡号)
3.2各个数据表的表结构设计
在上述经由E-R模型得到关系模式并且得到适当的调整后,我们可以结合在需求表述中数据字典包含的数据项信息,得到数据库的表结构(具体设计各个数据表的表结构,包括表名,表中各列的字段名、数据类型、数据长度和表的主键和外键;
还要考虑应该建立哪些索引以及索引的类型)。
需要指出的是,考虑到系统的统一兼顾如对数据库管理员和后续软件开发中对数据库管理以及编程引用的便利,表名和字段名的命名应该由表名的英文含义的词语为主或以其缩写字母构成;
同时要为各个表名和字段名作出完整的中文文档说明。
①用户信息表
用户信息表(此表主要用于普通用户基础信息和管理员基础信息)中包括有:
用户ID(id)、用户名(name)账户名(username)帐户密码(userpwd)、所属部门(part)、用户权限(userrule)E-mail(emai)等。
具体设置如下:
表3.1用户信息表
名称
字段类型
字段长度
说明
主键
Id
char
4
name