数据库分析与设计报告.docx
- 文档编号:29203627
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:27
- 大小:274.49KB
数据库分析与设计报告.docx
《数据库分析与设计报告.docx》由会员分享,可在线阅读,更多相关《数据库分析与设计报告.docx(27页珍藏版)》请在冰豆网上搜索。
数据库分析与设计报告
1.需求分析
2.概念结构设计
3.逻辑结构设计
4.物理结构设计
5.数据库的建立和测试
6.数据库运行和维护
《车辆管理系统》数据库设计
班级:
11计算机转
学号:
1116939040
姓名:
王湘萍
一.需求分析
1.1可行性分析现在随着企业规模的扩大以及车辆作为最为普遍的交通工具,在企业中已经不
是单一的存在,由于单位车辆数目的急剧增加,与之相对应的问题随之而生,比如车辆的使用权问题,车辆的费用问题等,不再是简单的少量的数据。
为了解决这一系列的问题,我们必须借助于电脑的强大的数据处理能力和存储能力,如此可以减少人力财力来维护这些数据,可以用更少的投入来换取更佳的数据管理。
因此,在这样的情况下,开发单位车辆管理系统是可行的,是必要的。
如今,MIS开发已经慢慢的驱向成熟,车辆管理系统也有部分开发,但是都还不是十分完善。
现今已经开发的车辆管理系统都是针对以运营为主的具有盈利目的的单位。
比如,公交管理、出租车管理、运输公司管理、汽车站点的管理,而这些管理最主要是针对盈利的管理,很少有针对各种汽车使用权、车辆调配等各种普通单位,不是以车辆运营为盈利手段的车辆管理,针对这点,此系统就是适合如今大多数企业管理的车辆管理系统。
通过计算机系统对学校进行全面的管理,满足了学校的现代化管理的要求。
1)经济性
1系统建设不需要很大的投入;
2可缩减人员编制,减少人力费用;
3人员利用率的改进;
2)技术性
1处理速度快,准确;
2通过权限的设置,数据的安全性好;
3方便查询;
4控制精度或生产能力的提高
3)社会性
1可降低工作人员工作强度,提高效率,会得到上下员工的一致同意的;
2可引进先进的管理系统开发方案,从而达到充分利用现有资源
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图
费用日期+费用原因
F图是车辆视图E-R亂
数据库整体的设计如下图所示:
/*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
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('
出车')ando.name='FK_出车_指派_车辆')
altertable出车
dropconstraintFK_出车_指派_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('车辆事故')ando.name='FK_车辆事故_发生_
车辆')
altertable车辆事故
dropconstraintFK_车辆事故_发生_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('车辆保险')ando.name='FK_车辆保险_授权_
车辆')
altertable车辆保险
dropconstraintFK_车辆保险_授权_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('车辆油耗')ando.name='FK_车辆油耗_缴纳_
车辆')
altertable车辆油耗
dropconstraintFK_车辆油耗_缴纳_车辆
go
ifexists(select1
fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('车辆维修')ando.name='FK_车辆维修_加油
车辆')
altertable车辆维修
dropconstraintFK_车辆维修_加油_车辆
go
ifexists(select1fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidand
o.type='F')
wherer.fkeyid=object_id('车辆费用')ando.name='FK_车辆费用_发车
车辆')
altertable车辆费用
dropconstraintFK_车辆费用_发车_车辆
go
ifexists(select1
fromsysindexes
whereid=object_id('出车')
andname='指派_FK'andindid>0andindid<255)dropindex出车.指派_FK
goifexists(select1fromsysindexes
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
fromsysindexeswhereid=object_id('andname='授权andindid>0
车辆保险')
FK'
andindid<255)
dropindex车辆保险.授权_FK
go
ifexists(select1
fromsysobjectswhereid=object_id('andtype='U')
droptable车辆保险
车辆保险')
go
ifexists(select1
fromsysindexeswhereid=object_id('andname='缴纳andindid>0andindid<255)
dropindex车辆油耗.缴纳_FKgo
ifexists(select1
fromsysobjectswhereid=object_id('andtype='U')
车辆油耗')
FK'
车辆油耗')
droptable车辆油耗
go
ifexists(select1
fromsysindexeswhereid=object_id('andname='加油andindid>0
车辆维修')
FK'
andindid<255)
dropindex车辆维修.加油_FK
go
ifexists(select1
fromsysobjectswhereid=object_id('andtype='U')
droptable车辆维修
车辆维修')
go
ifexists(select1
fromsysindexeswhereid=object_id('andname='发车andindid>0andindid<255)
dropindex车辆费用.发车_FKgo
ifexists(select1
fromsysobjectswhereid=object_id('andtype='U')
车辆费用')
FK'
车辆费用')
droptable车辆费用
go
ifexists(select1
fromsysobjects
whereid=object_id('驾驶员')
andtype='U')
droptable驾驶员
go
/*========
/*Table:
出车
*/
/*========createtable
出车(
时间
datetime
notnull,
编号
numeric
null,
车牌
numeric
null,
constraintPK_出车primarykeynonclustered(时间)
)
go/*Index:
承担_FK*/createindex承担_FKon出车(编号ASC
)
go
*/
*/
/*Index:
指派_FK
*/
createindex指派_FKon出车(
车牌ASC
)
go/*==============================================================*//*Table:
车辆*/
/*==============================================================*/createtable车辆(
车牌numericnotnull,
信号textnotnull,
constraintPK_车辆primarykeynonclustered(车牌)go
*/
)
go
*/
*/
/*Index:
发生_FK
*/
createindex发生_FKon车辆事故(车牌ASC
)
createtable
车辆保险(
保险名称
text
notnull,
车牌
numeric
null,
保险日期
datetime
null,
金额
text
null,
go
/*Table:
车辆保险*/
*/
constraintPK_车辆保险primarykeynonclustered(保险名称))
go
/*==================================
/*Index:
授权_FK
*/
/*==================================createindex授权_FKon车辆保险(车牌ASC
)
go
*/
*/
/*Table:
车辆油耗
*/
createtable车辆油耗(
用油量textnotnull,
车牌numericnull,
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车辆费用(
金额
text
notnull,
车牌
numeric
null,
牌照
numeric
null,
constraintPK_
车辆费用
primarykeynonclustered(
金额)
)
go
/*============
/*Index:
发车
_FK
*/
/*============
createindex发车_FKon车辆费用(车牌ASC
)
go/*Table:
驾驶员*/
/*==============================================================*/createtable驾驶员(
编号numericnotnull,
信息textnull,
constraintPK_驾驶员primarykeynonclustered(编号)
)
go
altertable出车
addconstraintFK_出车_承担_驾驶员foreignkey(编号)
references驾驶员(编号)
go
altertable出车
addconstraintFK_出车_指派_车辆foreignkey(车牌)
goaltertable车辆事故
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,则相连的每个实体型的键均是该关系模式的侯选键。
若联系为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
txt
16
用户名字
username
txt
16
账户名称
userpwd
char
16
账户密码
part
txt
16
所属部门
userrale
txt
16
用户级别
char
20
电子邮件
shenhe
txt
8
审核
②历史用车表
历史用车表(此表用于查看车辆的历史用车记录)主要包括:
ID(id)、车牌号(car-cod®、车辆类型(car-type)、行程(car-xingcheng)、用车的时间(car-start、car-enc)、原因(car-cause等。
具体设置如下:
表3.2历史用车表
名称
字段类型
字段长度
说明
主键
Id
char
4
编号
主键
Car_code
txt
12
车牌号码
Cartape
txt
16
车辆型号
Car_xingcheng
char
6
行程
Car_zuowei
char
8
座位
Carstart
Char
16
出发日期
Carend
char
16
结束日期
③驾驶员信息表
驾驶员信息表(用于查看驾驶员的基本信息)主要包括:
ID(id、、驾驶员姓名
(car-username、驾驶员性别(car-userseX、驾驶员地址(car-userfrom)、驾驶员出生年月日(car-userbirthday)、所用车辆(car-user
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 分析 设计 报告