收费停车场管理系统数据库设计Word格式文档下载.docx
《收费停车场管理系统数据库设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《收费停车场管理系统数据库设计Word格式文档下载.docx(23页珍藏版)》请在冰点文库上搜索。
![收费停车场管理系统数据库设计Word格式文档下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/4/7ac26749-f5e4-48de-bfbe-1d5f21fb694e/7ac26749-f5e4-48de-bfbe-1d5f21fb694e1.gif)
固定车位信息:
车位编号、车位位置、车牌号码、车主姓名、车辆品牌、车辆颜色、车辆照片、联系地址、联系方式、车位余额;
自由车位信息:
车位编号、车位位置;
车辆信息:
车牌号码、车辆品牌、车辆颜色;
停车信息:
车位编号、车牌号码、进入时间、离开时间、时间段、车位类型、在位情况、
收费费率;
收费记录:
车位编号、车牌号码、停车时间、停车费用、发票编号。
2)处理功能要求
整个系统具体包括三个子系统,分别为:
停车处理子系统、车位综合管理子系统以及收费子系统。
处理的功能包括:
车辆信息的查询以及更新;
空闲车位信息的查询;
固定车位信息的查询;
进出车辆记录的更新和收费信息的查询与更新等。
(3)安全性与完整性要求
安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。
还可以通过存取控制机制:
即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。
完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,在服务器端编写触发器来实现。
1.2.3结果
(1)体会和收获
通过对现在的停车场管理状况的调查,发现停车场管理缺少合适的管理系统,并了解了一下管理的大致流程。
与此同时通过网络搜索查找现行的停车场管理系统,根据这两者综合来进行需求分析。
调查时需要较强的信息捕捉能力以及事后的总结与思考,同时学会用网络较快较准确地搜索到需要的资料是很关键的。
(2)业务流程图
图1.停车处理子系统业务流程图
图2.车位综合管理子系统业务流程图
图3.收费子系统业务流程图
(3)数据流图
顶层数据流程图
图4.收费停车场管理系统顶层数据流图
第二层数据流图
图5.收费停车场管理系统第一层数据流图
第三层数据流
图6.收费停车场管理系统第二层数据流图(
表2-1数据项说明
数据项编号
数据项名
数据项含义
与其它数据项的关系
存储结构
别名
DI-1
Cwno
车位编号
char(10)
编号
DI-2
Carno
车牌号码
车牌
DI-3
Carname
车主姓名
姓名
DI-4
Carcolor
车辆颜色
char(4)
颜色
DI-5
Carpho
车辆照片
bit
照片
DI-6
Caradd
联系地址
char(20)
地址
DI-7
Cartel
联系方式
电话
DI-8
Carat
在位情况
DI-9
Carin
进入时间
datetime
DI-10
Carout
离开时间
DI-11
Carmon
车位余额
float
余额
DI-12
Montime
收费费率
费率
DI-13
Moneypay
停车费用
收费
DI-14
Cwtype
车位类型
DI-15
Cartime
停车时间
时间
DI-16
Piece
发票编号
DI-17
Carsb
车辆品牌
车名
DI-18
Cwpace
车位位置
位置
DI-19
Timetype
时间段
char(6)
数据结构:
表2-2数据结构
数据
结构
数据结构
名
定义
组成
DS-1
Fixed
固定车位
信息
Cwno、Cwpace、Carno
Caradd、Cartel、Carmon
、Carname、Carcolor、CarsbCarpho、
DS-2
Free
自由车位
Cwno、Cwpace
DS-3
Stop
停车信息
Cwno、Carno、Carat、
Carin、Carout、Timetype、Cwtype、
DS-4
Moneynote
收费记录
Cwno、Carno、Cartime、
Moneypay、Piece
DS-5
Car
车辆信息
Carno、Carsb、Carcolor
(5)
处理逻辑描述
表2-3处理逻辑描述
处理编号
处理功能
处理过程
PR-1
判断用户查询涉及的功能模块
固定车位信息模块、自由车位信息模块、停车车辆
信息模块、进岀车辆记录信息模块、收费记录模
块:
先确定查询所涉及的功能模块;
然后,确定要
PR-2
判断用户修改要涉及的模块,同时
把相应的修改数据传到相应的模块
之中
相互关
固定车位信息模块、自由车位信息模块、停车车辆信息模块、进岀车辆记录信息模块、收费记录模块:
先确定更新所涉及的功能模块;
然后,把更新信息传送到相应的模块中;
最后,进行相应的更新操作。
2.概念设计
2.1目标
概念结构设计师是将需求分析得到的用户需求抽象为信息结构即概念模型的过程。
它是整个数据库设计的关键。
概念结构设计步骤分为两步:
第一步是抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。
2.2设计过程
(1)选择中层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;
(4)生成全局E-R图,通过消除冲突等方面。
通过分析系统的业务流图与数据流图,得到系统围绕“车辆”与“车位”之间的系。
2.3阶段成果
分E-R图:
全局E-R图:
E-R图属性如下
车辆:
固定车位:
Fixed(Cwno,Carpace,Carno,Carname,Carcolor,Carpho,Caradd,Cartel,Carmon);
自由车位:
Freed(Cwno,Carpace)Cwno是主码;
和Carno是外码;
)Cwno和Carno是外
收费:
Moneynote(Cwno,Carno,Cartime,Moneypay,Piece)Cwno
停车:
Stop(Cwno,Carno,Carin,Carout,Timetype,Cwtype,Montime
码;
3.逻辑设计
3.1目标
逻辑结构设计的任务是把概念结构设计阶段设计好的基本
E-R
图转换为与选用DBMS产品
所支持的数据模型相符合的逻辑结构。
逻辑结构设计时一般要分为
为一般的关系、网状、层次模型;
将转换来的关系、网状、层次模型向特定
数据模型转换;
对数据模型进行优化。
3.2任务与结果
3.2.1数据组织
(1)将E-R模型转换为关系模型转换的原则是:
一个实体型转换为一个关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果
转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
3个或3个以上实体间的一个多元联系可以转换位一个关系模型。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
具有相同码的关系模式可合并。
E-R图向关系模型转换的结果是:
Car(Carno,Carsb,Carcolor)Carno是主码;
Fixed(Cwno,Carpace,Carno,Carname,Carcolor,Carpho,Caradd,Cartel,Carmon)自
由车位:
Freed(Cwno,Carpace)Cwno是主码;
Moneynote(Cwno,Carno,Cartime,Moneypay,Piece)Cwno和Carno是外码;
Stop(Cwno,Carno,Carin,Carout,Timetype,Cwtype,Carat,Montime)Cwno和
Carno是外码;
(2)模型优化
关系模型Car和Moneynote由于没有岀现部分函数依赖和传递函数依赖,所以以上模型已
经达到3NF。
但是关系模型Stop存在函数传递依赖CarinTimetype,Timetype-/->
TimetypeMontime,因此应该将关系模型Stop转换为3NF,优化后的关系模型为"
停车:
Stop(Cwno,Carno,Carin,Carout,Timetype)与费率信息:
Moneyt(Timetype,Montime)。
关系模型Fixed和Freed之间存在数据冗余,因此可以将两个关系模型合并为一个关系模
型FFed,并添加识别信息,合并后的关系模型为
Ffed(Cwno,Carpace,Cartype,Carno,Carname,Carsb,Carcolor,Carpho,Caradd,Cartel,
Carmon)
模型优化后的关系模型为
车辆:
Car(Carno,Carsb,Carcolor)Carno是主码;
车位:
Ffed(Cwno,Cwpace,Cwtype,Carno,Carname,Carsb,Carcolor,Carpho,Caradd,Cartel,
Carmon);
收费:
Moneynote(Cwno,Carno,Cartime,Moneypay,Piece)Cwno和Carno是外码,被参照表是
Ffed和Car;
停车:
Stop(Cwno,Carno,Carin,Carout,Carat,Timetype);
费率信息:
Moneyt(Timetype,Montime)。
(3)数据库模式定义
表4-1车辆信息
列名
数据类型
是否为主码
是否为外码
取值范围
可否为空
含义说明
Char
是
否
可
表
4-2车位信息
Bit
联系电话
Float
100〜200
表4-3停车信息
Char(6)
高峰、一
般、低谷
表4-4费率信息
取值范围可否为空
高峰、一否
大于0否
4-5收费记录
大于0可
(4)用户子模式疋义
表4-6
用户子模式定义
序
视图名称
视图定义
视图作用
备注
号
V-1Carinformation
车位号
,车牌号
查询在位车辆信息
V-2
Carfixedtion
车位号,车牌号,车主,车名,车色,车照,
查询在固定车位停车的
地址,电话,余额
V-3
carfreetion
车位号,车牌号,车名,车色
查询在自由车位停车的
V-4
Carinouttion
车位号、车牌号、进入时间、离开时
查询车辆进岀记录
作用与V-1不
V-5
moneytime时间段、费率查询及修改收费费率
V-6
Moneytion总收费查询停车场总收费
v-7
Carmoney车牌号、缴费总额查询每辆车的缴费额
功能模块图
图9.系统功能模块图
4.物理设计
4.1目标
物理设计就是为一个给定的逻辑数据结构模型选取一个最合适应用要求的物理结构的过程。
物理设计通常分为两步:
确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
对物理结构进行评价,评价的重点是时间和空间效率。
如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
物理设计的内容包括:
为关系模型选择存取方法;
设计关系、索引等数据库文件的物理存储结构。
4.2任务
421数据存取方面
由于经常需要判断是否有空余车位,所以要经常查询停车信息,因此在Stop表的Cwno上
建立聚簇索引以提高查询效率。
为了方便查询各个车辆的收费记录,在Moneynote表的Carno上建立聚簇索引以提高查询
效率
4.2.2功能模块图
(1)车位信息查询及更新模块图:
图io.车位信息查询及更新模块图
(2)停车信息查询及更新模块图:
图11.停车信息查询及更新模块图
(3)收费费率查询及更新模块图:
图12.收费费率查询及更新模块图
4.3结果
431存储过程
表5-1存储过程
存储过程名称
作用
P-1
Sof1
详见附录
3-16
查询固定车位总数
P-2
Sof2
3-17
查询自由车位总数
P-3
Sof3
3-18
查询空闲自由车位数目
P-4
Sof4
3-19
查询车位总数
P-5
Sof5
3-20
在Moneynote中查询任意车辆的收费
P-6
Sof6
3-21
在Car中插入一元组
P-7
Sof7
3-22
在Ffed中插入一元组
P-8
Sof8
3-23
在Stop中插入一元组
P-9
Sof9
3-24
在Moneynote中插入一元组
P-10
Sof10
3-25
查询车辆Car信息
P-11
Sof11
3-26
查询车位Ffed信息
P-12
Sof12
3-27
查询停车Stop信息
P-13
Sof13
3-28
查询收费Moneynote信息
P-14
Sof14
3-29
删除一条收费Moneynote记录
P-15
Sof15
3-30
修改固定车位车辆余额Carmon
触发器
表5-2
T-1
lnsert_or_update_carmon
3-31
限定余额值必须大于等于120的触发器
tri_moneypay
3-32
限制修改MONEYNOT中大于50的触发器
tri_del_mo
3-33
限制删除moneynote表中大于70的数据
5.1目标
数据库实施阶段就是用DBMS提供的数据定义语言与其他实用程序将数据库逻辑设计和物
理设计结果严格描述岀来,成为DBMS可以接受的源代码,再经过调试产生目标模式,然后
组织数据入库。
数据库实施阶段包括两项重要的工作,一项是数据的载入,另一项是应用程序
的编码和调试
5.2任务与结果
5.2.1建立数据库
(1)建立数据库、数据表、视图、索引等
(a)建立数据库定义语句
createdatabaseParking;
(b)建立数据表定义语句
建立车辆数据表:
createtableCar(Carnochar(10)primarykey,
Carsbchar(10),Carcolorchar(4));
建立车位信息表:
createtableFfed
(Cwnochar(10)primarykey,
Cwpacechar(10)notnull,
Cwtypechar(4)notnull,
Carnochar(10),
Carnamechar(10),
Carsbchar(10),
Carcolorchar(4),
Carphobit,
Caraddchar(20),
Cartelchar(20),
Carmonfloatcheck(Carmon>
=100andCarmon<
=200));
建立停车信息表:
createtableStop
(Cwnochar(10)notnull,
Carnochar(10)notnull,
Caratbitnotnull,
Carindatetime,
Caroutdatetime,
Timetypechar(6),
foreignkey(Cwno)referencesFfed(Cwno),
foreignkey(Carno)referencesCar(Carno)
);
建立收费费率表:
createtableMoneyt
(Timetypechar(6)primarykey,
Montimefloatnotnullcheck(Montime=1orMontime=2orMontime=1.5),
);
建立收费记录表:
createtableMoneynote
(Cwnochar(10),
Carnochar(10),
Cartimefloatnotnull,
Moneypayfloatcheck(Moneypay>
0).
Piecechar(10),
foreignkey(Cwno)referencesFfed(Cwno),
(2)数据入库
系统包括共有5张基本表,因此事先在Excel中录入数据,然后使用SQLServer2000数据
导入/导出向导功能,直接将数据导入到相应的基本表中。
6.数据库调试与测试
对收费停车场管理系统的具体功能进行测试,测试包括