Dựa vào các chức năng đã sẵn có này, nhóm chúng em phát triển một hệ thống quản lý bãi gửi xe có thêm các ưu điểm như: quản lý thông tin nhân viên, quản lý từng khu vực để xe, xe ra vào,
Trang 1Trường Đại Học Xây Dựng
Khoa Công nghệ Thông tin
o0o—
BÁO CÁO ĐỒ ÁN MÔN HỌC
CƠ SỞ DỮ LIỆU NÂNG CAO
Đề tài : Quản lý bãi đỗ xe
Giảng viên hướng dẫn: Nguyễn Đình Anh Lớp: 63IT3
Nhóm thực hiện: Nhóm 16 Các thành viên:
1) Nguyễn Quốc Hưng -88963 2) Nguyễn Duy Phong - 159563 3) Lê Thị Trang- 209363
Hà Nội , Ngày Tháng Năm 2021
Trang 2Mở Đầu
1 Lý do chọn đề tài
Trong những năm trở lại đây, dân cư đông đúc cùng với sự phát triển về kinh tế, mức tăng trưởng phương tiện giao thông lượng xe lưu thông lớn, đặc biệt là xe máy và ô tô
đã tăng một cách nhanh chóng Phương tiện tăng lên đồng nghĩa đòi hỏi các bãi đỗ xe cũng nhiều hơn để đáp ứng đủ với lượng xe của mọi người, Cho nên nhu cầu gửi và lấy xe nhanh,
an toàn, vui vẻ… thực sự rất cần thiết, khắc phục tình trạng ùn tắc tại các bãi giữ xe.Và cũng
từ đó việc sử dụng phần mềm cho việc quản lý xe đã trở nên quen thuộc và phổ biến Các phần mềm này giúp quản lý vé xe, thông tin xe… một cách tự động và nhanh chóng Dựa vào các chức năng đã sẵn có này, nhóm chúng em phát triển một hệ thống quản lý bãi gửi xe có thêm các ưu điểm như: quản lý thông tin nhân viên, quản lý từng khu vực để xe, xe ra vào,
….Đề tài của đồ án này vừa là nơi để thực hành các kiến thức đã được học của môn Lập trình hướng đối tượng, vừa giúp tạo ra hệ thống hỗ trợ phần nào vào công cuộc giảm tải tình trạng tắc ùn cũng như có các khu vực để xe một cách thông minh tiện lợi và phù hợp với nhau cầu cuộc sống hiện nay
2 Mục tiêu
Nắm chắc kiến thức về SQL và thực hành để xây dựng được một chương trình thực tiễn sau khi kết thúc đồ án
3 Ngôn ngữ sử dụng:
+ JavaSwing (xử lý nghiệp vụ của hệ thống)
+ MS SQL ( Database)
+ My Diagram ( vẽ sơ đồ )
Trang 3Phần I Mô tả bài toán
Hệ thống quản lý bãi đỗ xe này dành riêng cho xe ô-tô
Bãi trông gửi xe này sẽ gồm có 2 cổng là cổng xe vào và cổng xe ra Để tiện cho việc quản
lý thì bãi đỗ xe sẽ được chia làm 4 khu : khu A, khu B, khu C, khu D
Trong hệ thống quản lý bãi đỗ xe thì đều có mục tài khoản đăng nhập Để vào được hệ thống thì nhân viên cần nhập đúng vào tài khoản của mình gồm các thông tin: tên tài
khoản,mật khẩu, loại tài khoản…Hệ thống chỉ cấp phát phân quyền cho nhân viên bộ phận bãi( chỉ được nhập xuất vé kiểm tra chỗ trống, thực hiện các thao tác cơ bản với hệ thống) và
bộ phận quản trị hệ thống ( đối với bộ phận này thì có thêm quyền chỉnh / sửa/ xóa các tài khoản Ngoài ra còn có thể xem được phần doanh thu) Khi tài khoản đăng nhập bị sai thì
hệ thống yêu cầu đăng nhập lại Trong trường hợp bị mất tài khoản thì yêu cầu quản lý cấp phát lại
Mỗi nhân viên của hệ thống đều phải cung cấp thông tin như: tên nhân viên, giới tính,
số điện thoai,….Ngoài ra mỗi nhân viên sẽ được cung cấp một mã nhân viên khác nhau Trong hệ thống này thì nhân viên có thể tự quản lý thông tin của chính mình như đọc thông tin, thêm thông tin, sửa thông tin và xóa thông tin Nhân viên được tính lương theo ngày và
đc trả lương vào đầu tháng
Khi nhân viên bãi kiểm tra vị trí trống xong, điền thông tin xe vào form Gửi Xe của hệ thống Nếu nhập mã số vé đang được sử dụng thì hệ thống yêu cầu nhập lại sau đó hệ thống lưu lại thông tin vé đã nhập
Khi có khách đến gửi xe, nhân viên sẽ dựa vào bảng vị trí của từng khu vực để kiểm tra số chỗ còn trống trong bãi Nếu trong trường hợp bãi để xe đã hết thì thông báo cho khách Ngoài ra trong trường hợp khách có nhu cầu chọn vị trí còn trống trong bãi gửi xe thì nhân viên vẫn có thể lưu động theo yêu cầu khách, nhập thông tin vào hệ thống, nhập dữ liệu vé Các dữ liệu này đều sẽ được lưu chung vào trong form Gửi Xe ( Mã vé, Tên khu vực để xe, Ngày vào, Tên vị trí, Biển số xe )
Khi khách ra về thì khách hàng cần xuất vé, nhân viên sẽ kiểm tra thông tin vé đã phù hợp chưa Nếu vé giả hoặc không đúng xe thì không cho lấy xe Ngược lại thì khách hàng đưa tiền
Trang 4Sau khi khách lấy xe, hệ thống hiện thông tin vé đồng thời reset chỗ vị trí xe, lưu thông tin
vé lên cơ sở dữ liệu, cập thống thông kê doanh số ngày , hệ thống cũng xử lí vấn đề chỗ trống mỗi khi xe vào hoặc ra , thống kê doanh số , lưu hóa đơn vé , lưu khách hàng , tính thời gian xe ở tại vị trí trống, sau khi xuất vé ( thanh toán ) xong reset lại chỗ trống , tự động lên báo cáo tổng kết cho tháng Báo cáo doanh thu này được trang bị trong hệ thống sẽ luôn cập nhập và quản lý cũng như theo dõi số lượng xe vào ra mỗi tháng cùng với đó là số tiền thu được cho bãi gửi xe này Mục Báo cáo doanh thu sẽ gồm đầy đủ như: ngày lập báo cáo, thời gian từng ngày, số xe vào, số xe ra, tiền,…Từ đó dựa vào bản báo cáo này ta sẽ xem xét được xem bãi đỗ xe đã tăng hay hụt chỉ tiêu dự kiến hàng tháng là bao nhiêu %
Khi khách đến báo cáo có sự cố mất vé thì nhân viên sẽ kiểm tra trong bảng Ra vào bến để xác minh xe có gửi hay không và đã lấy xe ra chưa Nếu không đúng như vậy thì không giải quyết.Trong trường hợp ngược lại thì tiến hành kiểm tra xe ở hiện trường Nếu đúng như sự việc xảy ra thì tiến hành kiểm tra các giấy tờ cần thiết như giấy tờ xe thời gian vào , hệ thống kiểm tra lại nếu chính xác nhân viên tính luôn thời gian báo cáo và in vé nhắc khách lần sau cẩn thận hơn Mục “ ra vào bến” của hệ thống gồm các thông tin: mã ra vào bến, mã vé, biển
số xe, tên vị trí, thời gian ra,…
Cuối kì, lãnh đạo công ty yêu cầu bộ phận quản lý lập các bản báo cáo về tình hình trông gửi xe để đưa ra các quyết định chiến lược kinh doanh
Phần II Thiết kế
1 Xác định các thực thể
o Thực thể 1: NHANVIEN
Trang 5 Mã nhân viên(MANHANVIEN)
Tên nhân viên(TENNHANVIEN)
Giới tính(GIOITINH)
Số điện thoại(DIENTHOAI)
Ngày sinh(NGAYSINH)
Địa chỉ(DIACHI)
Tên tài khoản(TENTAIKHOAN)
Mật khẩu(MATKHAU)
Loại tài khoản(LOAITAIKHOAN)
o Thực thể 2: VE
Mã vé(MAVE)
Tình trạng vé(TINHTRANGVE)
o Thực thể 3: KHUVUC
Tên khu vực(TENKHUVUC)
Trạng thái(TRANGTHAI)
o Thực thể 4: VITRI
Tên vị trí(TENVITRI)
Trạng thái(TRANGTHAI)
Tên khu vực(TENKHUVUC)
o Thực thể 5: RAVAOBEN
Mã vé(MAVE)
Tên vị trí(TENVITRI)
Tên khu vực(TENKHUVUC)
Biển số xe(BIENSOXE)
Thời gian vào(THOIGIANVAO)
Thời gian ra(THOIGIANRA)
Trạng thái(TRANGTHAI)
o Thực thể 6: HOADON
Mã hóa đơn(MAHOADON)
Mã vé(MAVE)
Tên vị trí(TENVITRI)
Tên khu vực(TENKHUVUC)
Tên nhân viên(TENNHANVIEN)
Số ngày gửi(SONGAYGUI)
o Thực thể 7: SUCO
Tên sự cố(TENSUCO)
Mã vé(MAVE)
Biển số xe(BIENSOXE)
Tiền phạt(TIENPHAT)
Tên nhân viên(TENNHANVIEN)
2 Mô hình thực thể liên kết
Trang 63 Thiết kế cơ sở dữ liệu
3.1 Danh sách các bảng
Bảng Nhân viên
Bảng Vị trí
Bảng Khu vực
Bảng Vé
Bảng Ra Vào Bến
Bảng Hóa Đơn
Bảng Sự Cố
3.2 Mô tả chi tiết từng bảng dữ liệu
o Bảng Nhân Viên ( bảng này sẽ bao gồm thông tin nhân viên và thông tin đăng nhập vào tài khoản )
Mã nhân viên (khóa chính)
Tên nhân viên
Giới tính
Điện thoại
Ngày sinh
Địa chỉ
Tên tài khoản
Mật khẩu
Loại tài khoản
Trang 7o Bảng Ra vào bến
Mã vé (khóa ngoại)
Tên vị trí (khóa ngoại)
Tên khu vực (khóa ngoại)
Biển số xe (khóa chính)
Thời gian vào
Thời gian ra
Trạng thái
Trang 8o Bảng Vị trí
Tên vị trí ( khóa chính)
Trạng thái
Tên khu vực ( khóa ngoại)
Trang 9o Bảng Khu vực
Tên khu vực ( khóa chính)
Trạng thái
Trang 10o Bảng Vé
Mã vé (khóa chính)
Tình trạng vé
Trang 11o Bảng Hóa đơn
Mã hóa đơn (khóa chính)
Mã vé (khóa ngoại)
Trang 12 Tên nhân viên
Số ngày gửi
Biển số xe
Thành tiền
Ngày lập
o Bảng Sự cố
Tên sự cố(khóa chính)
Mã vé
Biển số xe
Tiền phạt
Tên nhân viên
4 Thiết kế xử lý
a Xử lý thông tin nhân viên
Thêm thông tin
Xóa thông tin
Chỉnh sửa thông tin
b Xử lý tài khoản đăng nhập
Nhập tài khoản, mật khẩu
Sửa mật khẩu
Trang 13c Xử lý vé vào
d Xử lý tình trạng vị trí để xe
5 Truy vấn bằng các kỹ thuật Trigger,View
thuật
Câu lệnh
Hiển thị danh sách
NHANVIEN
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSNHANVIEN' )
DROP View DSNHANVIEN
GO use QUANLYBAIDOXE
go Create View DSNHANVIEN
as select * from dbo NHANVIEN
GO SELECT * FROM DSNHANVIEN
Hiển thị danh sách
KHUVUC
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSKHUVUC' )
DROP View DSKHUVUC
GO use QUANLYBAIDOXE
go Create View DSKHUVUC
as select * from dbo KHUVUC
GO SELECT * FROM DSKHUVUC
Hiển thị danh sách
HOADON
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSHOADON' )
DROP View DSHOADON
GO use QUANLYBAIDOXE
go Create View DSHOADON
as select * from dbo HOADON
GO SELECT * FROM DSHOADON
Hiển thị danh sách
RAVAOBEN
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSRAVAOBEN' )
DROP View DSRAVAOBEN
GO use QUANLYBAIDOXE
go Create View DSRAVAOBEN
as select * from dbo RAVAOBEN
Trang 14Hiển thị danh sach
SUCO
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSSUCO' )
DROP View DSSUCO
GO use QUANLYBAIDOXE
go Create View DSSUCO
as select * from dbo SUCO
GO SELECT * FROM DSSUCO
Hiển thị danh sách
VE
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSVE' )
DROP View DSVE
GO use QUANLYBAIDOXE
go Create View DSVE
as select * from dbo VE
GO SELECT * FROM DSVE
Hiển thị danh sách
VITRI
View IF EXISTS ( SELECT * FROM SYSOBJECTS WHERE NAME
= 'DSVITRI' )
DROP View DSVITRI
GO use QUANLYBAIDOXE
go Create View DSVITRI
as select * from dbo VITRI
GO SELECT * FROM DSVITRI
Cập nhật mật khẩu
NHANVIEN
Trigger create trigger capnhat_matkhau_nhanvien
on NHANVIEN
for update
as begin declare @manv varchar declare @mk nvarchar select @mk = MATKHAU from DSNHANVIEN where
@manv = MANHANVIEN
update NHANVIEN set MATKHAU = @mk
end Thêm NHANVIEN Trigger create trigger them_nhanvien
on NHANVIEN
for insert as begin declare @manv varchar declare @tennv NVARCHAR ( 50 )
declare @gt NVARCHAR ( 20 )
declare @dt CHAR ( 11 )
declare @ns DATETIME declare @dc NVARCHAR ( 100 )
Trang 15declare @tentk VARCHAR ( 50 )
declare @mk NVARCHAR ( 50 )
declare @loaitk INT select @manv = MANHANVIEN from inserted
select @gt = GIOITINH from inserted
select @dt = DIENTHOAI from inserted
select @ns = NGAYSINH from inserted
select @dc = DIACHI from inserted
select @tentk = TENTAIKHOAN from inserted
select @mk = MATKHAU from inserted
select @loaitk = LOAITAIKHOAN from inserted
if EXISTS( select * from NHANVIEN where
@manv = MANHANVIEN )
BEGIN ROLLBACK TRAN END
end Xóa NHANVIEN Trigger create trigger xoa_nhanvien
on NHANVIEN
INSTEAD OF DELETE as
DECLARE @manv varchar Select @manv = MANHANVIEN from deleted
Delete from NHANVIEN where MANHANVIEN = @manv
Thêm RAVAOBEN
-Xe được vào bến sẽ
mặc định thời gian
ra là null
-Vào trạng thái là
đang gửi đồng thời
update trạng thái vị
trí đầu và tình trạng
vé là chưa sử dụng
Trigger create trigger them_ravaoben
on RAVAOBEN
for insert as begin
declare @mave VARCHAR ( 20 )
declare @tenvitri NVARCHAR ( 50 )
declare @tenkhuvuc NVARCHAR ( 50 )
declare @biensoxe VARCHAR ( 20 )
declare @thoigianvao DATE declare @thoigianra DATE declare @TRANGTHAI NVARCHAR ( 50 )
set @thoigianra =NULL
set @TRANGTHAI = 'ĐANG GỬI'
select @mave = MAVE from inserted
select @tenvitri = TENVITRI from inserted
select @tenkhuvuc = TENKHUVUC from inserted
select @thoigianvao = THOIGIANVAO from inserted
BEGIN ROLLBACK TRAN END
update VITRI set TRANGTHAI = N'ĐẦY' where
@tenvitri = TENVITRI
update VE set TINHTRANGVE = N'ĐANG SỬ DỤNG' where
@mave = MAVE
Trang 16-Sau khi hóa đơn
mới tạo ra thì trạng
thái vị trí và tình
trạng vé đó sẽ trở lại
vị trí ban đầu là
trống và chưa sử
dụng đồng thời
update thời gian ra
trong ra vào bến
on HOADON
for insert as begin declare @mahd VARCHAR ( 20 )
declare @mave VARCHAR ( 20 )
declare @tenvitri NVARCHAR ( 50 )
declare @tenkhuvuc NVARCHAR ( 50 )
declare @manv VARCHAR ( 20 )
declare @tennv NVARCHAR ( 50 )
declare @songaygui INT declare @biensoxe VARCHAR ( 20 )
declare @thanhtien INT declare @ngaylap DATE
select @mahd = MAHOADON from inserted
select @mave = MAVE from inserted
select @tenvitri = TENVITRI from inserted
select @tenkhuvuc = TENKHUVUC from inserted
select @manv = MANHANVIEN from inserted
select @tennv = TENNHANVIEN from inserted
select @songaygui = SONGAYGUI from inserted
select @biensoxe = BIENSOXE from inserted
select @thanhtien = THANHTIEN from inserted
select @ngaylap = NGAYLAP from inserted
BEGIN ROLLBACK TRAN END
update RAVAOBEN set THOIGIANRA = @ngaylap where
@biensoxe = BIENSOXE
update VITRI set TRANGTHAI = 'TRỐNG' where
@tenvitri = TENVITRI
update VE set TINHTRANGVE = 'CHƯA SỬ DỤNG' where
@mave = MAVE
end
6 Khai thác cơ sở dữ liệu
- Insert into tất cả thuộc tính vào các bảng: Nhân viên, Vé , Vị trí, Khu vực
- Các bảng: Ra vào bến, Hóa đơn, Sự cố sẽ khai thác dữ liệu từ các bảng trên và
cập nhật dữ liệu
Bảng Ra vào bến:
Khi có khách đến gửi xe, nhân viên nhập biển số xe của khách và
hệ thống sẽ tự động random mã vé , khu vực và vị trí để khách gửi
xe đúng với vé Ravaoben
Khi đó tình trạng mã vé được random đó hiển thị “ Đã sử dụng”, trạng thái vị trí hiển thị “Đầy”
Bảng Sự Cố:
Trang 17 Trường hợp nếu khách đánh mất vé xe, nhân viên sẽ nhập lại mã vé khách đã nhận để kiểm tra biển số xe xem xe có được gửi trong bến hay không
Sau khi kiểm tra, khách gửi xe tiến hành nộp phạt cho nhân viên
Nhân viên kiểm tra ghi lại mã nhân viên để báo cáo với cấp trên
Bảng Hóa Đơn:
Khi khách lấy xe, nhân viên xuất hóa đơn cho khách bằng cách nhập vào mã vé khách đã nhận trước đó
Số tiền khách phải thanh toán được tính như sau:
Tổng tiền= giá vé * số ngày gửi+ tiền phạt (nếu có)
Sau khi khách lấy xe và thanh toán hóa đơn, hệ thống update lại tình trạng vé về trạng thái “ Chưa sử dụng” và vị trí về trạng thái
“Trống”
- Những dữ liệu về các bảng: Ra vào bến, Hóa đơn, Sự cố được hệ thống lưu lại để
cập nhật doanh thu tháng, năm và lập báo cáo gửi về cho cấp trên