停车场收费系统.docx

上传人:b****6 文档编号:8725466 上传时间:2023-02-01 格式:DOCX 页数:31 大小:932.87KB
下载 相关 举报
停车场收费系统.docx_第1页
第1页 / 共31页
停车场收费系统.docx_第2页
第2页 / 共31页
停车场收费系统.docx_第3页
第3页 / 共31页
停车场收费系统.docx_第4页
第4页 / 共31页
停车场收费系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

停车场收费系统.docx

《停车场收费系统.docx》由会员分享,可在线阅读,更多相关《停车场收费系统.docx(31页珍藏版)》请在冰豆网上搜索。

停车场收费系统.docx

停车场收费系统

《数据库原理与应用》课程设计论文

题目:

收费停车场管理系统

 

 

 

1.需求分析

1.1目标

通过调查了解分析停车管理的现状,弄清用户对开发的数据库应用系统确实切要求,以及停车场管理的流程,系统的具体功能和数据库中数据信息。

1.2具体任务

〔1〕处理对象

系统处理的对象包括车辆信息、车位信息、停车信息、收费记录以及费率等五个方面:

车辆信息:

车牌号、车主、车辆颜色、车辆品牌;

车位信息:

车位编号、车位位置、车位类型、车牌号码、车主、车辆品牌、车辆颜色、、联系、车位余额;

停车信息:

车位编号、车牌号码、进入时间、离开时间、时间段;

收费记录:

车位编号、车牌号码、停车时间、停车费用、发票编号;

费率:

停车时段、时段费率;

〔2〕处理功能要求

整个系统具体包括三个子系统,分别为:

停车处理子系统、车位综合管理子系统以及收费子系统。

处理的功能包括:

车辆信息的查询以及更新;空闲车位信息的查询;固定车位信息的查询;进出车辆记录的更新和收费信息的查询与更新等。

〔3〕安全性与完整性要求

安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。

还可以通过存取控制机制:

即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。

完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,在服务器端编写触发器来实现。

(4)数据项清单:

表2-1数据项清单

名称

代码

数据类型

长度

停车时段

Timetype

Variablecharacters(20)

20

停车时间

Cartime

Float(20)

20

停车费用

Carpay

Float(20)

20

是否在车位

Carat

Boolean

票据号码

invoice

Variablecharacters(20)

20

离开时间

Carout

Date&Time

费率

ratetime

Float(20)

20

车主地址

Caradd

Variablecharacters(20)

20

车主

Cname

Variablecharacters(20)

20

车主

Cartel

Variablecharacters(20)

20

车位位置

Clspace

Variablecharacters(20)

20

车位余额

Clbalance

Variablecharacters(20)

20

车位号

Clno

Variablecharacters(20)

20

车位类型

Cltype

Variablecharacters(20)

20

车牌号

Cno

Variablecharacters(20)

20

车牌子

Cbrand

Variablecharacters(20)

20

车颜色

Ccolor

Variablecharacters(20)

20

进入时间

Carin

Date&Time

 

〔5〕数据结构:

 

表2-2数据结构

 

数据结构编号

数据结构名

数据结构定义

组成

D-1

Car

车辆信息

Carno、Carname、Carbrand、Carcolor

D-2

lot

车位信息

Clno、Clspace、Cltype、Carno、Carname、Carcolor、Carbrand、Caradd、Cartel、Clbalance

D-3

park

停车信息

Clno、Carno、Carat、Carin、Carout、Timetype

D-4

charge

收费记录

Clno、Carno、Cartime、Carypay、invoice

D-5

rate

费率

Timetype、ratetiem

2概念模型设计

设计过程

〔1〕选择中层数据流为切入点,通常选择实际系统中的子系统;

〔2〕设计分E-R图,即各子模块的E-R图;

〔3〕生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一;

〔4〕生成全局E-R图,通过消除冲突等方面。

2.2E-R图

分E-R图:

图2-1进入车位E-R图

图2-2离开车位E-R图

 

总E-R图:

图2-3总体E—R图

 

E-R图属性如下所示:

车辆:

Car(Carno、Carname、Carbrand、Carcolor)Carno是主码;

车位:

lot(Clno、Clspace、Cltype、Carno、Carname、Carcolor、Carbrand、Caradd、Cartel、Clbalance)Clno是主码;

停车:

park(Clno、Carno、Carat、Carin、Carout、Timetype)Clno和Carno是外码;

收费:

charge(Clno、Carno、Cartime、Carypay、invoice)Clno和Carno是外码;

费率:

rate(Timetype、ratetiem)Timetype是主码;

3.逻辑模型设计

3.1E-R图向关系模型转换

E-R图向关系模型转换的结果是:

车辆:

Car(Carno、Carname、Carbrand、Carcolor)Carno是主码;

车位:

lot(Clno、Clspace、Cltype、Carno、Carname、Carcolor、Carbrand、Caradd、Cartel、Clbalance)Clno是主码;

停车:

park(Clno、Carno、Carat、Carin、Carout、Timetype)Clno和Carno是外码;被参照表lot和Car;

收费:

charge(Clno、Carno、Cartime、Carypay、invoice)Clno和Carno是外码,

被参照表是lot和Car;

费率:

rate(Timetype、ratetiem)Timetype是主码;

3.2数据库模式定义

表3-1车辆信息

列名

数据类型

是否为主码

是否为外码

取值范围

可否为空

含义说明

Carno

Char

车牌号码

Carbrand

Char

车辆品牌

Carcolor

Char

车辆颜色

Carname

char

车主

表3-2车位信息

列名

数据类型

是否为主码

是否为外码

取值范围

可否为空

含义说明

Clno

Char

车位编号

Clspace

Char

车位位置

Cltype

Char

车位类型

Carno

Char

车牌号码

Carname

Char

车主

Carbrand

Char

车牌号码

Carcolor

Char

车辆颜色

Caradd

Char

Cartel

Char

联系

Clbalance

Float

100-200

车位余额

表3-3停车信息

列名

数据类型

是否为主码

是否为外码

取值范围

可否为空

含义说明

Clno

Char

车位编号

Carno

Char

车牌号码

Carat

Bit

在位情况

Carin

datetime

进入时间

Carout

datetime

离开时间

Timetype

Char

高峰、一般、低谷

时间段

表3-4费率信息

列名

数据类型

是否为主码

是否为外码

取值范围

可否为空

含义说明

Timetype

Char(6)

高峰、一般、低谷

时间段

ratetime

Float

大于0

收费费率

表3-5收费记录

列名

数据类型

是否为主码

是否为外码

取值范围

可否为空

含义说明

Clno

Char

车位编号

Carno

Char

车牌号码

Cartime

Float

大于0

停车时间

Carpay

Float

大于0

停车费用

invoice

Char

发票编号

表3-4费率信息

 

表4-6用户子模式定义

序号

视图名称

视图定义

视图作用

V-1

Carinformation

车位号,车牌号

查询在位车辆信息

V-2

Carfixedtion

车位号,车牌号,车主,车名,车色,车照,地址,,余额

查询在固定车位停车的车辆信息

V-3

carfreetion

车位号,车牌号,车名,车色

查询在自由车位停车的车辆信息

V-4

Carinouttion

车位号、车牌号、进入时间、离开时间、时间段

查询车辆进出记录

V-5

moneytime

时间段、费率

查询及修改收费费率

V-6

Moneytion

总收费

查询停车场总收费

v-7

Carmoney

车牌号、缴费总额

查询每辆车的缴费额

功能模块图

 

图3-1功能模块图

4.物理模型设计

PDM图

图4-1PDM图

5.2存储过程

表4-1存储过程

编号

存储过程名称

作用

P-1

Sof1

查询固定车位总数

P-2

Sof2

查询自由车位总数

P-3

Sof3

查询空闲自由车位数目

P-4

Sof4

查询车位总数

P-5

Sof5

在charge中查询任意车辆的收费

P-6

Sof6

在Car中插入一组信息

P-7

Sof7

在lot中插入一组信息

P-8

Sof8

在park中插入一组信息

P-9

Sof9

在chargee中插入一组信息

P-10

Sof10

查询车辆Car信息

P-11

Sof11

查询车位lot信息

P-12

Sof12

查询停车park信息

P-13

Sof13

查询收费charge信息

P-14

Sof14

删除一条收费charge记录

P-15

Sof15

修改固定车位车辆余额Clbarance

5.3触发器

表4-2触发器

编号

存储过程名称

作用

T-1

insert_or_update_clbalance

限定余额值必须大于等于120的触发器

P-2

tri_charge

限制修改charge中大于50的触发器

P-3

tri_del_mo

限制删除moneynote表中大于70的数据

5.建立数据库并测试

5.1建立数据库

〔1〕建立数据库、数据表、视图、索引等

〔a〕建立数据库定义语句;

〔b〕建立数据表定义语句;

〔c〕建立视图定义语句;

〔d〕建立索引定义语句。

〔2〕数据入库

系统包括共有5张基本表,然后使用语句将数据导入SQLServer2005

数据库调试与测试

对收费停车场管理系统的具体功能进行测试,测试包括:

〔1〕测试各视图的功能,测试结果

〔2〕测试各存储过程的功能,测试结果

〔3〕测试各触发器的功能,测试结果

 

一.建立基本表:

createtableCar(

Carnochar(20)primarykey,//车牌号

Carnamechar(20),//车主

Carcolorchar(20),//车颜色

Carbrandchar(20),//车牌子

);

createtablelot(

Clnochar(20)primarykey,//车位编号

Clspacechar(20)notnull,车位位置

Cltypechar(20)notnull,车位类型

Carnochar(20),//车牌号

Carnamechar(20),//车主

Carcolorchar(20),//车颜色

Carbrandchar(20),//车牌子

Caraddchar(20),//车主地址

Cartelchar(20),//车主

Clbalancefloatcheck(Clbalance>=100andClbalance<=200)//车位余额

);

createtablepark(

Carnochar(20)notnull,//车牌号

Clnochar(20)notnull,//车位号

Caratbitnotnull,//是否在车位

Carindatetime,//进入时间

Caroutdatetime,//离开时间

primarykey(Carno,Clno),

foreignkey(Carno)referencesCar(Carno),

foreignkey(Clno)referenceslot(Clno)

);

createtablecharge(

Carnochar(20),//车牌号

Clnochar(20),//车位号

Cartimefloatnotnull,//停车总时间

Carpayfloatcheck(Carpay>0),//费用

invoicechar(20),//收费表序列号

primarykey(Carno,Clno),

foreignkey(Carno)referencesCar(Carno),

foreignkey(Clno)referenceslot(Clno)

);

createtablerate

(Timetypechar(6)primarykey,//时段类型

ratetimefloatnotnullcheck(Montime=1orMontime=2orMontime=1.5),

);//费率

二.建立视图

V-1用于查询在位车辆信息的视图定义如下:

createviewCarinformation(车位号,车牌号)

as

frompark,lot

wherepark.Clno=park.ClnoandCarat=1

V-2用于查询固定车位停车车辆信息的视图定义如下:

createviewCarfixedtion(车位号,车牌号,车主,车名,车色,地址,,余额)

as

selectpark.Clno,park.Carno,Carname,Carbrand,Carcolor,Caradd,Cartel,Carbalabce

frompark,lot

wherepark.Clno=lot.ClnoandCltype='固定'andCarat=1

V-3用于查询自由车位停车车辆信息的视图定义如下:

createviewcarfreetion(车位号,车牌号,车名,车色)

as

frompark,Car,lot

wherepark.Carno=Car.Carnoandpark.Clno=lot.ClnoandCltype='自由'andCarat=1

V-4用于查询车辆进出记录的视图定义如下:

createviewCarinouttion(车位号,车牌号,进入时间,离开时间,时间段)

as

selectClno,Carno,Carin,Carout,Timetype

frompark

检测:

select*

fromCarinouttion

orderby车牌号

V-5用于查询及修改收费费率的视图定义如下:

createviewmoneytime

as

select*

fromrate

V-6用于查询停车场总收费的视图定义如下:

createviewMoneytion(总收费)

as

selectsum(Carpay)

fromcharge

V-7用于查询任意车辆的缴费总额的视图定义如下:

createviewcarmoney(车牌号,缴费总额)

as

selectCarno,sum(Carpay)

fromchatge

groupbyCarno

三.建立索引:

1.createuniqueindexSsClnoonpark(Clno);

2.createuniqueindexSsCarnooncharge(Carno);

四.建立存储过程

P-1

createproceduresof1

as

selectcount(Clno)固定车位总数

fromlot

whereCltype='固定'

P-2

createproceduresof2

as

selectcount(Clno)自由车位总数

fromlot

whereCltype='自由'

P-3

createproceduresof3

as

select3-count(lot.Clno)空闲自由车位

fromlot,park

wherelot.Clno=park.ClnoandCltype='自由'andCarat=1

P-4

createproceduresof4

as

selectcount(Clno)车位总数

fromlot

P-5

createproceduresof5

@nomchar(10)

as

select*

fromcharge

whereCarno=@nom

P-6

createproceduresof6

@s_Carnochar(10),

@s_Carbrandchar(10),

@s_Carcolorchar(4)

as

insertintoCar

values(@s_Carno,@s_Carbrand,@s_Carcolor)

P-7

createproceduresof7

@s_Clnochar(20),

@s_Clspacechar(20),

@s_Cltypechar(20),

@s_Carnochar(20),

@s_Carnamechar(20),

@s_Carbrandchar(20),

@s_Carcolorchar(20),

@s_Caraddchar(20),

@s_Cartelchar(20),

@s_Clbalancefloat

as

insertintolot

values(@s_Clno,@s_Clspace,@s_Cltype,@s_Carno,@s_Carname,@s_Carbarnd,@s_Carcolor,@s_Caradd,@s_Cartel,@s_Clbalance)

P-8

createproceduresof8

@s_Clnochar(20),

@s_Carnochar(20),

@s_Caratbit,

@s_Carindatetime,

@s_Caroutdatetime,

@s_Timetypechar(20)

as

insertintopark

values(@s_Clno,@s_Carno,@s_Carat,@s_Carin,@s_Carout,@s_Timetype)

P-9

createproceduresof9

@s_Cwnochar(10),

@s_Carnochar(10),

@s_Cartimefloat,

@s_Moneypayfloat,

@s_Piecechar(10)

as

insertintocharge

values(@s_Cwno,@s_Carno,@s_Cartime,@s_Moneypay,@s_Piece)

P-10

createproceduresof10

as

select*

fromCar

P-11

createproceduresof11

as

select*

fromlot

P-12

createproceduresof12

as

select*

frompark

P-13

createproceduresof13

as

select*

fromcharge

P-14

createproceduresof14

@s_Carnochar(20)

as

delete

fromcharge

whereCarno=@s_Carno

P-15

createproceduresof15

@s_Carnochar(20)

as

updatelot

setClbalance=150

whereCarno=@s_Carno

T-1

Createtriggerinsert_or_update_clbalance

Onlotforinsert,update

As

Ifexists(select*

Fromlot

WhereClbalance>100)

Begin

Print'最低余额必须大于等于100'

Rollback

End;

T-2

Createtriggertri_Carpay

Onchargeforupdate

As

Ifexists(select*

Frominsertedjoin

Deletedoninserted.Carno=deleted.Carno

Whereinserted.Carpay<=50

Anddeleted.Carpay>50)

Rollback

Begin

Print'禁止无端修改,修改不成功'

End;

T-3

Createtriggertri_del_mo

Onchargefordelete

As

Ifexists(select*

Fromdeleted

WhereCarpay>70)

Rollback

Begin

Print'删除失败'

End;

附录4.数据库测试及功能验证

V-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1