《数据库原理与应用》课程设计论文题目:收费停车场管理系统数据库设计1.引言21世纪以来,现代化产业高速发展,汽车作为日常交通工具已经普及社会的每一个角落,给人们的日常生活带来了极大的便利。但是随着汽车拥有量的急剧增加,车辆停放的问题随之而来,如果没有合理的停放规则和秩序,势必引起许多不必要的麻烦,反而给生活带来不便。停车场作为交通设施的组成部分,随着交通运输的繁忙和不断发展,人们对其管理的要求也不断提高,都希望管理能够达到方便、快捷以及安全的效果。然后目前的许多停车场还处于一种纯人工的管理的模式,在车辆的管理上效率低下,而且十分容易出错。因此需要一种合适的管理系统来解决这些问题,达到高效,简易的效果,给广大人民的出行带来方便。本论文旨在设计一个简单、高效且实用的停车场管理系统,希望能解决目前管理上存在的一些问题。系统的设计过程经过了需求分析阶段、概念设计阶段、逻辑结构设计阶段、数据库物理设计阶段、数据库的实施和维护以及系统的调试与测试,最终完成了一个比较完善的收费停车场管理系统。2.需求分析阶段2.1引言需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。目前停车场的管理方式比较落后,已经不能适应现代社会的实际需求,本系统的开发能给管理上带来新鲜的活力,提高管理的效率,具有较高的实用性和开发价值。2.2任务2.2.1需求分析阶段的目标通过调查了解分析停车管理的现状,弄清用户对开发的数据库应用系统的确切要求,以及停车场管理的流程,系统的具体功能和数据库中数据信息。2.2.2具体任务(1)处理对象系统处理的对象包括车辆信息、固定车位信息、自由车位信息、停车车辆信息以及收费记录等五个方面。即固定车位信息:车位编号、车位位置、车牌号码、车主姓名、车辆品牌、车辆颜色、车辆照片、联系地址、联系方式、车位余额;自由车位信息:车位编号、车位位置;车辆信息:车牌号码、车辆品牌、车辆颜色;停车信息:车位编号、车牌号码、进入时间、离开时间、时间段、车位类型、在位情况、收费费率;收费记录:车位编号、车牌号码、停车时间、停车费用、发票编号。(2)处理功能要求整个系统具体包括三个子系统,分别为:停车处理子系统、车位综合管理子系统以及收费子系统。处理的功能包括:车辆信息的查询以及更新;空闲车位信息的查询;固定车位信息的查询;进出车辆记录的更新和收费信息的查询与更新等。(3)安全性与完整性要求安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。还可以通过存取控制机制:即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,在服务器端编写触发器来实现。2.2.3结果(1)体会和收获通过对现在的停车场管理状况的调查,发现停车场管理缺少合适的管理系统,并了解了一下管理的大致流程。与此同时通过网络搜索查找现行的停车场管理系统,根据这两者综合来进行需求分析。调查时需要较强的信息捕捉能力以及事后的总结与思考,同时学会用网络较快较准确地搜索到需要的资料是很关键的。(2)业务流程图见附录1(3)数据流图见附录2(4)数据字典数据项:表2-1数据项说明数据项编号数据项名数据项含义与其它数据项的关系存储结构别名DI-1Cwno车位编号char(10)编号DI-2Carno车牌号码char(10)车牌DI-3Carname车主姓名char(10)姓名DI-4Carcolor车辆颜色char(4)颜色DI-5Carpho车辆照片bit照片DI-6Caradd联系地址char(20)地址DI-7Cartel联系方式char(20)电话DI-8Carat在位情况char(4)DI-9Carin进入时间datetimeDI-10Carout离开时间datetime数据项编号数据项名数据项含义与其它数据项的关系存储结构别名DI-11Carmon车位余额float余额DI-12Montime收费费率float费率DI-13Moneypay停车费用float收费DI-14Cwtype车位类型char(4)DI-15Cartime停车时间float时间DI-16Piece发票编号char(20)Dl-17Carsb车辆品牌char(10)车名Dl-18Cwpace车位位置char(10)位置Dl-19Timetype时间段char(6)数据结构:表2-2数据结构数据结构编号数据结构名数据结构定义组成DS-1Fixed固定车位信息Cwno、Cwpace、Carno、Carname、Carcolor、CarsbCarpho、Caradd、Cartel、CarmonDS-2Free自由车位信息Cwno、CwpaceDS-3Stop停车信息Cwno、Carno、Carat、Carin、Carout、Timetype、Cwtype、MontimeDS-4Moneynote收费记录Cwno、Carno、Cartime、Moneypay、PieceDS-5Car车辆信息Carno、Carsb、Carcolor(5)处理逻辑描述表2-3处理逻辑描述处理编号处理功能处理过程PR-1判断用户查询涉及的功能模块固定车位信息模块、自由车位信息模块、停车车辆信息模块、进出车辆记录信息模块、收费记录模块:先确定查询所涉及的功能模块;然后,确定要查询的内容,确定查询数据流向;最后显示查询结果。PR-2判断用户修改要涉及的模块,同时把相应的修改数据传到相应的模块之中固定车位信息模块、自由车位信息模块、停车车辆信息模块、进出车辆记录信息模块、收费记录模块:先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作。3.概念设计阶段3.1目标概念结构设计师是将需求分析得到的用户需求抽象为信息结构即概念模型的过程。它是整个数据库设计的关键。概念结构设计步骤分为两步:第一步是抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。3.2设计过程(1)选择中层数据流为切入点,通常选择实际系统中的子系统;(2)设计分E-R图,即各子模块的E-R图;(3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;(4)生成全局E-R图,通过消除冲突等方面。通过分析系统的业务流图与数据流图,得到系统围绕“车辆”与“车位”之间的相互关系。3.3阶段成果分E-R图:全局E-R图: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,Montime)Cwno和Carno是外码;4.逻辑设计阶段4.1目标逻辑结构设计的任务是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。逻辑结构设计时一般要分为3步进行:将概念结构转换为一般的关系、网状、层次模型;将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;对数据模型进行优化。4.2任务与结果4.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-/-CarinTimetypeMontime,因此应该将关系模型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车辆信息列名数据类型是否为主码是否为外码取值范围可否为空含义说明CarnoChar是否否车牌号码CarsbChar否否可车辆品牌CarcolorChar否否可车辆颜色表4-2车位信息列名数据类型是否为主码是否为外码取值范围可否为空含义说明CwnoChar是否否车位编号CwpaceChar否否否车位位置CwtypeChar否否否车位类型CarnoChar否否可车牌号码CarnameChar否否可车主姓名CarsbChar否否可车牌号码CarcolorChar否否可车辆颜色CarphoBit否否可车辆照片CaraddChar否否可联系地址CartelChar否否可联系电话CarmonFloat否否100~200可车位余额表4-3停车信息列名数据类型是否为主码是否为外码取值范围可否为空含义说明CwnoChar否是否车位编号CarnoChar否是否车牌号码CaratBit否否否在位情况Cari