停车场收费系统
收费停车场管理系统
《数据库原理与应用》课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
论文
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目:收费停车场管理系统
收费停车场管理系统
1.需求
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
1.1目标
通过调查了解分析停车管理的现状,弄清用户对开发的数据库应用系统的确切要求,以及停车场管理的流程,系统的具体功能和数据库中数据信息。
1.2具体任务
(1)处理对象
系统处理的对象包括车辆信息、车位信息、停车信息、收费记录以及费率等五个方面:
车辆信息:车牌号、车主姓名、车辆颜色、车辆品牌;
车位信息:车位编号、车位位置、车位类型、车牌号码、车主姓名、车辆品牌、车辆颜色、联系地址、联系电话、车位余额;
停车信息:车位编号、车牌号码、进入时间、离开时间、时间段;
收费记录:车位编号、车牌号码、停车时间、停车费用、发票编号;
费率:停车时段、时段费率;
(2)处理功能要求
整个系统具体包括三个子系统,分别为:停车处理子系统、车位综合管理子系统以及收费子系统。
处理的功能包括:车辆信息的查询以及更新;空闲车位信息的查询;固定车位信息的查询;进出车辆记录的更新和收费信息的查询与更新等。
(3)安全性与完整性要求
安全性可以通过视图机制来完成,对不同用户设置不同权限,不同的用户只能访问授权的视图,这样可以提高一定的程度的安全性。还可以通过存取控制机制:即定义用户权限,并将用户权限登记到数据字典中以及合法的权限检查来保障安全性。
完整性可以通过声明完整性,即在定义表时声明数据完整性和过程完整性,
收费停车场管理系统
在服务器端编写触发器来实现。
(4)数据项清单:
表2-1数据项清单
(5)数据结构:
表2-2数据结构
收费停车场管理系统
数据数据结构结构名 编号
D-1 Car 数据结构定义 组成 车辆信Carno、Carname、Carbrand、Carcolor 息
车位信Clno、Clspace、Cltype、Carno、Carname、Carcolor、
息 Carbrand、Caradd、Cartel、Clbalance
停车信Clno、Carno、Carat 、Carin、Carout 、Timetype 息
收费记Clno、Carno、Cartime、Carypay、invoice 录
费率 Timetype、ratetiem D-2 lot D-3 park D-4 charge D-5 rate
2概念模型设计
2.1设计过程
(1)选择中层数据流为切入点,通常选择实际系统中的子系统;
(2)设计分E-R图,即各子模块的E-R图;
(3)生成初步E-R图,通过合并
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,做到各子系统实体、属性、联系统一;
(4)生成全局E-R图,通过消除冲突等方面。
2.2 E-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.1 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是外码;被参照表lot和Car;
收费:charge(Clno、Carno、Cartime、Carypay、invoice) Clno和Carno是外码, 被参照表是lot和Car;
费率:rate(Timetype、ratetiem) Timetype是主码;
3.2 数据库模式定义
表3-1车辆信息
列名
Carno Carbrand Carcolor Carname
数据类型
Char Char Char char
是否为主码
是 否 否 否
是否为外码
否 否 否 否
取值范围
可否为空
否 可 可 可
含义说明
车牌号码 车辆品牌 车辆颜色 车主姓名
收费停车场管理系统
表3-2车位信息
列名
Clno Clspace Cltype Carno Carname Carbrand Carcolor Caradd Cartel
Clbalance
数据类型
Char Char Char Char Char Char Char Char Char Float
是否为主码
是 否 否 否 否 否 否 否 否 否
是否为外码
否 否 否 否 否 否 否 否 否 否
取值范围
100-200
可否为空
否 否 否 可 可 可 可 可 可 否
含义说明
车位编号 车位位置 车位类型 车牌号码 车主姓名 车牌号码 车辆颜色 联系地址 联系电话 车位余额
列名
Clno Carno Carat Carin Carout Timetype
数据类型
Char Char Bit datetime datetime Char
是否为主码
否 否 否 否 否 是
是否为外码
是 是 否 否 否 否
取值范围
高峰、一般、
低谷
可否为空
否 否 否 否 可 否
含义说明
车位编号 车牌号码 在位情况 进入时间 离开时间 时间段
表3-4费率信息
列名
Timetype
数据类型
Char(6)
是否为主码
是
是否为外码
否
取值范围
高峰、一般、
低谷
可否为空
否
含义说明
时间段
ratetime Float 否 否 大于0 否 收费费率
表3-5收费记录
列名
Clno Carno Cartime Carpay invoice
数据类型
Char Char Float Float Char
是否为主码
否 否 否 否
否
是否为外码
是 是 否 否 否
取值范围
大于0 大于0
可否为空
否 否 否 可 可
含义说明
车位编号 车牌号码 停车时间 停车费用 发票编号
表3-4费率信息
收费停车场管理系统
3.3视图
表4-6 用户子模式定义
序
号
V-1
V-2 视图名称 视图定义 视图作用 Carinformation Carfixedtion 车位
号,车牌号 车位号,车牌号,车主,车名,车色,车照,地址,电
话,余额 查询在位车辆信息 查询在固定车位停车的车辆信息
查询在自由车位停车的车辆
信息 V-3 carfreetion 车位号,车牌号,车名,车色
V-4
V-5
V-6
v-7 Carinouttion moneytime Moneytion Carmoney 车位号、车牌号、进入时间、离开时间、时间段 时间段、费率 总收费 车牌号、缴费总额 查询车辆进出记录 查询及修改收费费率 查询停车场总收费 查询每辆车的缴费额
3.4功能模块图
图3-1 功能模块图
收费停车场管理系统
4.物理模型设计
5.1 PDM图
图4-1 PDM图
5.2 存储过程
表4-1 存储过程
编号 存储过程名称 作用
P-1 Sof1 查询固定车位总数 P-2 Sof2 查询自由车位总数
P-3 Sof3 查询空闲自由车位数目
收费停车场管理系统
P-4
P-5
P-6
P-7
P-8
P-9
P-10
P-11
P-12
P-13
P-14
P-15 Sof4 Sof5 Sof6 Sof7 Sof8 Sof9 Sof10 Sof11 Sof12 Sof13 Sof14 Sof15
查询车位总数 在charge中查询任意车辆的收费 在Car中插入一组信息 在lot中插入一组信息 在park中插入一组信息 在chargee中插入一组信息 查询车辆Car信息 查询车位lot信息 查询停车park信息 查询收费charge信息 删除一条收费charge记录 修改固定车位车辆余额Clbarance
5.3 触发器
编
号 表4-2 触发器 存储过程名称 作用
insert_or_update_clbalance 限定余额值必须大于等于T-1 120的触发器
tri_charge 限制修改charge中大于50P-2 的触发器
tri_del_mo 限制删除moneynote表中大P-3 于70的数据
5. 建立数据库并测试
收费停车场管理系统
5.1建立数据库
(1) 建立数据库、数据表、视图、索引等
(a)建立数据库定义语句;
(b)建立数据表定义语句;
(c)建立视图定义语句;
(d)建立索引定义语句。
(2) 数据入库
系统包括共有5张基本表, 然后使用语句将数据导入SQL Server 2005
5.2数据库调试与测试
对收费停车场管理系统的具体功能进行测试,测试包括:
(1)测试各视图的功能,测试结果
(2)测试各存储过程的功能,测试结果
(3)测试各触发器的功能,测试结果
收费停车场管理系统
收费停车场管理系统
附录.数据库定义语句
一(建立基本表:
1.汽车基本表
create table Car(
Carno char(20) primary key,//车牌号
Carname char(20),//车主姓名
Carcolor char(20),//车颜色
Carbrand char(20),//车牌子
);
2.停车场基本表
create table lot(
Clno char(20) primary key,//车位编号
Clspace char(20) not null,车位位置
Cltype char (20) not null,车位类型
Carno char(20),//车牌号
Carname char(20),//车主姓名
Carcolor char(20),//车颜色
Carbrand char(20),//车牌子
Caradd char(20),//车主地址
Cartel char(20),//车主电话
Clbalance float check(Clbalance >=100 and Clbalance<=200)//车位
余额 );
3.停车基本表
create table park(
Carno char(20) not null,//车牌号
Clno char(20) not null,//车位号
Carat bit not null,//是否在车位
Carin datetime,//进入时间
Carout datetime,//离开时间
primary key(Carno,Clno),
foreign key(Carno) references Car(Carno),
foreign key(Clno) references lot(Clno)
);
4.收费表
收费停车场管理系统
create table charge(
Carno char(20),//车牌号
Clno char(20),//车位号
Cartime float not null,//停车总时间
Carpay float check(Carpay>0),//费用
invoice char(20),//收费表序列号
primary key(Carno,Clno),
foreign key(Carno) references Car(Carno),
foreign key(Clno) references lot(Clno)
);
5.费率表
create table rate
(Timetype char(6) primary key,//时段类型
ratetime float not null check(Montime=1 or Montime=2 or
Montime=1.5), );//费率
二.建立视图
V-1用于查询在位车辆信息的视图定义如下:
create view Carinformation(车位号,车牌号)
as
select park.Clno,park.Carno
from park,lot
where park.Clno=park.Clno and Carat=1
V-2用于查询固定车位停车车辆信息的视图定义如下:
create view Carfixedtion(车位号,车牌号,车主,车名,车色,地址,电话,余额) as
select
park.Clno,park.Carno,Carname,Carbrand,Carcolor,Caradd,Cartel,Carbalabce
from park,lot
where park.Clno=lot.Clno and Cltype='固定' and Carat=1
V-3用于查询自由车位停车车辆信息的视图定义如下:
create view carfreetion(车位号,车牌号,车名,车色)
as
select park.Clno,park.Carno,Car.Carbrand,Car.Carcolor
from park,Car,lot
where park.Carno=Car.Carno and park.Clno=lot.Clno and Cltype='自由' and Carat=1
V-4用于查询车辆进出记录的视图定义如下:
create view Carinouttion(车位号,车牌号,进入时间,离开时间,时间段)
收费停车场管理系统
as
select Clno,Carno,Carin,Carout,Timetype from park
检测:
select *
from Carinouttion
order by 车牌号
V-5用于查询及修改收费费率的视图定义如下: create view moneytime
as
select *
from rate
V-6用于查询停车场总收费的视图定义如下: create view Moneytion(总收费)
as
select sum(Carpay)
from charge
V-7用于查询任意车辆的缴费总额的视图定义如下: create view carmoney(车牌号,缴费总额) as
select Carno,sum(Carpay)
from chatge
group by Carno
三.建立索引:
1.create unique index SsClno on park(Clno);
2.create unique index SsCarno on charge(Carno);
四.建立存储过程
P-1
create procedure sof1
as
select count(Clno) 固定车位总数
from lot
where Cltype='固定'
P-2
create procedure sof2
as
收费停车场管理系统
select count(Clno) 自由车位总数
from lot
where Cltype='自由'
P-3
create procedure sof3
as
select 3-count(lot.Clno) 空闲自由车位
from lot,park
where lot.Clno=park.Clno and Cltype='自由' and Carat=1 P-4
create procedure sof4
as
select count(Clno) 车位总数
from lot
P-5
create procedure sof5
@nom char(10)
as
select *
from charge
where Carno=@nom
P-6
create procedure sof6
@s_Carno char(10),
@s_Carbrand char(10),
@s_Carcolor char(4)
as
insert into Car
values(@s_Carno,@s_Carbrand,@s_Carcolor)
P-7
create procedure sof7
@s_Clno char(20),
@s_Clspace char(20),
@s_Cltype char(20),
@s_Carno char(20),
@s_Carname char(20),
@s_Carbrand char(20),
@s_Carcolor char(20),
@s_Caradd char(20),
@s_Cartel char(20),
收费停车场管理系统
@s_Clbalance float
as
insert into lot
values(@s_Clno,@s_Clspace,@s_Cltype,@s_Carno,@s_Carname,@s_Carbarn
d,@s_Carcolor,@s_Caradd,@s_Cartel,@s_Clbalance)
P-8
create procedure sof8
@s_Clno char(20),
@s_Carno char(20),
@s_Carat bit,
@s_Carin datetime,
@s_Carout datetime,
@s_Timetype char(20)
as
insert into park
values(@s_Clno,@s_Carno,@s_Carat,@s_Carin,@s_Carout,@s_Timetype)
P-9
create procedure sof9
@s_Cwno char(10),
@s_Carno char(10),
@s_Cartime float,
@s_Moneypay float,
@s_Piece char(10)
as
insert into charge
values(@s_Cwno,@s_Carno,@s_Cartime,@s_Moneypay,@s_Piece)
P-10
create procedure sof10
as
select *
from Car
P-11
create procedure sof11
as
select *
from lot
P-12
create procedure sof12
as
select *
收费停车场管理系统
from park
P-13
create procedure sof13
as
select *
from charge
P-14
create procedure sof14
@s_Carno char(20)
as
delete
from charge
where Carno=@s_Carno
P-15
create procedure sof15
@s_Carno char(20)
as
update lot
set Clbalance=150
where Carno=@s_CarnoF.建立触发器
T-1
Create trigger insert_or_update_clbalance On lot for insert,update
As
If exists(select*
From lot
Where Clbalance>100)
Begin
Print '最低余额必须大于等于100 '
Rollback
End;
T-2
Create trigger tri_Carpay
On charge for update
As
If exists(select *
From inserted join
Deleted on inserted.Carno=deleted.Carno Where
inserted.Carpay<=50
And deleted.Carpay>50)
收费停车场管理系统
Rollback
Begin
Print '禁止无端修改,修改不成功' End;
T-3
Create trigger tri_del_mo On charge for delete
As
If exists(select *
From deleted Where Carpay>70) Rollback
Begin
Print'删除失败'
End;
收费停车场管理系统
附录4.数据库测试及功能验证
1.视图功能测试
V-1
V-2 Carinformation Carfixedtion 车位号,车牌号 车位号,车牌号,车主,车名,车色,车照,地址,电话,
余额 查询在位车辆信息 查询在固定车位停车的车辆信息
查询在自由车位停车的车辆
信息 V-3 carfreetion 车位号,车牌号,车名,车色
V-4 Carinouttion 车位号、车牌号、进入时间、离开时间、时间
段 查询车辆进出记录
V-5
V-6
v-7
moneytime Moneytion Carmoney 时间段、费率 总收费 车牌号、缴费总额 查询及修改收费费率 查询停车场总收费 查询每辆车的缴费额
V-1.查询在固定车位停车的车辆信息的视图功能验证
V-2.查询车辆进出记录的视图功能验证
收费停车场管理系统
v-3查询在自由车位停车的车辆信息的视图功能验证
V-7 查询每辆车的缴费总额的视图功能验证
收费停车场管理系统
V-1 查询在位车辆的所有信息
V-6 查询停车场总收费的视图功能验证
收费停车场管理系统
存储过程的验证
收费停车场管理系统
收费停车场管理系统
收费停车场管理系统
收费停车场管理系统
收费停车场管理系统
收费停车场管理系统
触发器验证
收费停车场管理系统
收费停车场管理系统