Tải bản đầy đủ (.docx) (23 trang)

BTL CSDL Phân Tán. Hệ Thống khách sạn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.5 MB, 23 trang )

Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

Lời mở đầu
***

Hiện nay đời sống con người ngày càng phát triển do vậy nhu cầu đi chơi ,
du lịch… cũng tăng mạnh. Vậy để đáp ứng nhu cầu đó thì việc có những khách sạn
tốt đẻ đảm bảo cho những chuyến đi đó là rất quan trọng. Việc quản lý đặt phòng
cho một khách sạn nào đó là rất cần thiết. Quản lý đặt phòng khách sạn thông
thường là thực hiện thủ công nhưng với công nghệ phát triển như hiện nay thì việc
đó sẽ được thay thế bằng tin học hóa. Đặt phòng qua mạng sẽ đảm bảo được rất
nhiều thời gian cũng như chi phí.
Để quản lý tốt việc đặt phòng cho khách sạn đó thì chúng ta cần phải xây
dựng một hệ thống tổ chức cơ sở dữ liệu vừa dễ sử dụng vừa khoa học và vừa hợp
lý. Do vậy phương pháp tốt nhất để thực hiện những yêu cầu đó chính là thực hiện
cài đặt cở sở dữ liệu phân tán cho hệ thống trên. Cài đặt phân tán cho hệ thống trên
các trạm nhỏ khác nhau tạo nên một hệ thống kết nối chặt chẽ với một trạm trung
tâm . Các khách hàng sẽ được sử dụng một dịch vụ hoàn hảo và dễ thực hiện.
Trong bài báo cáo này nhóm chúng em thực hiện phân tích và cài đặt phân
tán cho hệ thống quản lý đặt phòng khách sạn về cơ bản thì đã đáp ứng được một
số yêu cầu chính song vẫn còn một số vấn đề tồn tại vậy kính mong cô giáo và các
bạn góp ý để chúng em hoàn thiện được tốt hơn bài tập lớp này!
Xin chân thành cảm ơn!
Nhóm thực hiện: Nhóm 3 – Lớp ĐH KHMT2 K6

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

1



Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

MỤC LỤC

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

2


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

Chương 1: Thiết kế CSDL phân tán cho hệ thống
1.

Khảo sát nghiệp vụ.
Quản lý đặt phòng và các dịch vụ liên quan là một công việc mà khách

sạn nào cũng cần quan tâm sâu sắc nhất. Việc tổ chức và quản lý cơ sở dữ
liệu tốt sẽ góp phần rất lớn vào doanh thu của khách sạn, tránh sai sót và tối
ưu hóa công việc thủ công bằng tin học.
Có rất nhiều cách để tổ chức dữ liệu nhưng để giảm bớt độ lớn của dữ
liệu tập trung vào một trạm thì dữ liệu sẽ được chia nhỏ ra từng trạm nhỏ để
quản lý. Việc tổ chức như vậy gọi là phân mảnh dữ liệu khác với tổ chức dữ
liệu tập trung dữ liệu sẽ được lưu trữ ở một trạm duy nhất. Có 3 loại phân
mảnh cơ bản đó là: Phân mảnh ngang , phân mảnh dọc và phân mảnh hỗn

hợp. Về lý thuyết thì 3 loại phân mảnh này khác nhau song mục đích chung
vẫn là chia nhỏ dung lượng cơ sở dữ liệu.
Với bài toán quản lý đặt phòng khách sạn thường thì một khách sạn có
rất nhiều chi nhánh được đặt ở nhiều địa phương khác nhau. Vì vậy phân
mảnh dữ liệu chính là chúng ta lưu trữ ở mỗi chi nhánh đó một cơ sở dữ liệu.
Và hợp nhất các trạm đó thì chính là cơ sở dữ liệu của khách sạn đó. Thông
thường cơ sở dữ liệu thường được tổ chức tạp trung ở một điểm nào đó, do
đó việc truy xuất dữ liệu và quản lý thông tin của các chi nhánh là rất khó
khăn, dẫn đến xử lý chậm vì lượng dự liệu lớn.
Quản lý đặt phòng khách sạn của nhóm chúng em được phân mảnh
theo địa điểm đó là: Hà Nội, Đà Nẵng, Sài Gòn. Vậy tương ứng với 3 địa
điểm đó sẽ có 3 trạm cơ sở dữ liệu. Trạm chủ của khách sạn là sự kết hợp của
3 trạm đó. Việc phân mảnh như vậy thì đảm bảo lượng dữ liệu sẽ được chia
3. Mỗi trạm sẽ quản lý dữ liệu của trạm mình. Trạm khác có thể xem được
dữ liệu của trạm này thông qua trạm chủ. Trạm chủ có thể xem, thêm , sửa ,
xóa thông tin của cơ sở dữ liệu của các trạm con. Đó chính là yêu cầu của
phân tán dữ liệu. yêu cầu của đề tài này.
BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

3


Trường Đại học Công nghiệp Hà Nội

2. Bài toán
2.1.
Cơ sở

Khoa Công nghệ thông tin


lý thuyết phân mảnh

Xác định được thuộc tính để phân mảnh sau đó áp dụng phân mảnh ngang
để thực hiện bài toán trên.
Phân mảnh ngang:
Có hai loại phân mảnh ngang:
-

Phân mảnh ngang nguyên thủy (primary horizontal fragmentation):
phân mảnh ngang nguyên thủy của một quan hệ được thực hiện dựa

-

trên các vị từ được định nghĩa trên quan hệ đó.
Phân mảnh ngang dẫn xuất (derived horizontal fragmentation): phân
mảnh ngang dẫn xuất của một quan hệ được thực hiện dựa trên các vị
từ được định nghĩa trên quan hệ khác. Như vậy, trong phân mảnh
ngang tập các vị từ đóng một vai trò quan trọng.∪ ... ∪ R 2 ∪Phân
mảnh ngang : phân mảnh ngang một quan hệ tổng thể n-bộ R là tách R
thành các quan hệ con n-bộ R 1 , R 2 , ..., R k sao cho quan hệ R có thể
được khôi phục lại từ các quan hệ con này bằng phép hợp: R = R 1

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

4


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin


Mô hình phân mảnh ngang

2.2.

Thiết kế cấp phát mảnh dữ liệu và xác định yêu cầu bài toán
Xác định cách thức mảnh dữ liệu tham khảo đến ảnh hưởng vật
lý nào và cũng xác định các bản sao của đoạn dữ liệu. Thiết kế phân
mảnh mới được nghiên cứu gần đây, tuy nhiên công việc phân mảnh
trở thành đặc trung của cơ sở dữ liệu phân tán. Bên cạnh đó vấn đề cấp
phát cũng được nghiên cứu khi phát triển hệ thống file phân tán vì
trong cơ sở dữ liệu tập trung có thiết bị lưu trữ phúc tạp. Cách phân
biệt hai vấn đề này rõ ràng, vấn đề thứ nhất động lực của việc phân
mảnh quan hệ giải quyết của dữ liệu ở những vị trí khác nhau. Tuy
nhiên phải rất cẩn thận khi phân biệt theo cách này vì không thể xác
định cách phân đoạn tốt nhất và công việc cấp phát bằng cách giải

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

5


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

quyết hai vấn đề độc lập vì rằng hai vấn đề liên quan nhau. Công việc
thiết kế chương trình ứng dụng được thực hiện sau khi thiết kế sơ đồ
và có kiến thức về yêu cầu của chương trình ứng dụng. Thiết kế sơ đồ
để có khả năng cung cấp hiệu quả các chương trình ứng dụng. Vì vậy

trong thiết kế cơ sở dữ liệu phân tán, hiểu biết rõ ràng và đầy đủ về
yêu cầu của chương trình ứng dụng là cần thiết. Những công việc thiết
kế được thực hiện thường xuyên để đạt được sự đúng đắn.
Trên cơ sở lý thuyết đó: Bài toán quản lý đặt phòng khách sạn là
phân mảnh ngang theo 3 trạm Hà Nội, Đà Nẵng, Sài gòn phải đáp ứng
được các yêu cầu của bài toán đề ra.
3. Thiết kế cơ sở dữ liệu tập trung cho hệ thống
Mô hình liên kết trong Cơ sở dữ liệu tập trung
4. Thiết kế mô hình CSDL phân tán cho hệ thống
4.1.
Phân mảnh dữ liệu
Phân mảnh ngang: cho các bảng dữ liệu sau
Chi nhanh:
Chinhanh1=σTenchinhanh=”Hà Nội”(Chinhanh)
Chinhanh2=σTenchinhanh=”Đà Nẳng”(Chinhanh)
Chinhanh3=σTenchinhanh=”Sài Gòn”(Chinhanh)
Phân mảnh ngang dẫn xuất các bảng: Loaiphong, phong,
phongTB,Phongthue
-

Loaiphong

Loaiphong1=Loaiphong
BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

Chinhanh1
6


Trường Đại học Công nghiệp Hà Nội


-

-

-

Khoa Công nghệ thông tin

Loaiphong2=Loaiphong

Chinhanh2

Loaiphong3=Loaiphong

Chinhanh3

Phong
Phong1=Phong

Loaiphong1

Phong2=Phong

Loaiphong2

Phong3=Phong

Loaiphong3


PhongTB
PhongTB1=PhongTB

Phong1

PhongTB2=PhongTB

Phong2

PhongTB3=PhongTB

Phong3

Phongthue
Phongthue1=Phongthue

Phong1

Phongthue2=Phongthue

Phong2

Phongthue3=Phongthue

Phong3

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

7



Trường Đại học Công nghiệp Hà Nội
-

Khoa Công nghệ thông tin

Ta có CSDL của 3 trạm:
o Tram1: Chinhanh1, Loaiphong1, Phong1, PhongTB1,
Phongthue1,Thietbi, Phieuthue, Hoadon, Khachhang, HoadonDV,
o

SudungDV, Dichvu.
Tram1: Chinhanh2, Loaiphong2, Phong2, PhongTB2,
Phongthue2,Thietbi, Phieuthue, Hoadon, Khachhang, HoadonDV,
SudungDV, Dichvu.
Tram1: Chinhanh3, Loaiphong3, Phong3, PhongTB3,
Phongthue3,Thietbi, Phieuthue, Hoadon, Khachhang, HoadonDV,
SudungDV, Dichvu

4.2.


Mô hình các trạm
Trạm Hà Nội:
Mô hình cơ sở dữ liệu trạm Hà Nội



Trạm Đà Nẵng


Mô hình cơ sở dữ liệu trạm Đà Nẵng



Trạm Sài Gòn:
Mô hình cơ sở dữ liệu trạm Sài
Gòn

Chương 2: Xây dựng cơ sở dữ liệu phân tán trong
hệ quản trị CSDL SQL
1.

Cấu trúc các bảng dữ liệu

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

8


Trường Đại học Công nghiệp Hà Nội
1.1.

Bảng dữ liệu Chi nhánh

1.2.

Bảng dữ liệu Dịch vụ

1.3.


Bảng dữ liệu Hóa đơn

1.4.

Bảng dữ liệu Hóa đơn dịch vụ

1.5.

Bảng dữ liệu Khách hàng

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

Khoa Công nghệ thông tin

9


Trường Đại học Công nghiệp Hà Nội
1.6.

Bảng dữ liệu loại phòng

1.7.

Bảng dữ liệu Phiếu thuê

1.8.

Bảng dữ liệu Phòng


1.9.

Bảng dữ liệu Phòng Thiết bị

1.10.

Bảng dữ liệu Phòng thuê

1.11.

Bảng dữ liệu Sử dụng dịch vụ

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

Khoa Công nghệ thông tin

10


Trường Đại học Công nghiệp Hà Nội
1.12.

Khoa Công nghệ thông tin

Bảng dữ liệu Thiết bị

2.

Mô hình CSDL phân tán


3.

Một số truy vấn phân tán trong hệ quản trị CSDL

Trạm 1
Trạm 3
Trạm 2
Trạm chính

-

SELECT CHINHANH.TENCHINHAH, LOAIPHONG.GIAPHONG

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

11


Trường Đại học Công nghiệp Hà Nội

-

Khoa Công nghệ thông tin

FROM CHINHANH, LOAIPHONG
WHERE MACHINHANH=’CN01’ AND MALOAIPHONG=’L12’
SELECT PHONG.MAPHONG, LOAIPHONG.GIAPHONG, PHONGTB.TINHTRANG
FROM LOAIPHONG, PHONG, PHONGTB
WHERE MAPHONG=’HNP01’
SELECT KHACHHANG.TENKH, PHIEUTHUE.NGAYTHUE

FROM KHACHHANG, PHIEUTHUE
WHERE DIACHI=’Hà Tĩnh’ AND SOTIENCOC>=500000

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

12


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

Chương 3: Cài đặt hệ thống trên CSDL phân tán

1.

Yêu cầu phần cứng và phần mềm


Phần cứng

-

Hệ điều hành Windows XP trở lên

-

RAM 512MB trở lên

-


Máy tính có kết nối Internet( Lan), dây mạng đạt chuẩn..



Phần mềm

- Microsoft Visual Studio 2012
- Bộ cài SQL server: Microsoft SQL Server Management Studio
2008
- Các phầm mềm hỗ trợ để thiết kế và trình bày báo cáo: Microsoft
Office Word, Rational Rose, Paint…
- Môi trường thích hợp cho các Phần mềm chạy.

2.

Thiết kế giao diện chương trình trên các trạm
2.1.
Mô hình phân cấp chức năng
Ở các trạm thì chức năng là giống nhau chỉ khác nhau là ở chi
nhánh nào thì sẽ thực hiện chức năng ứng với dữ liệu của trạm đó
Dưới đây là mô hình phân cấp chức năng cho các trạm:

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

13


Trường Đại học Công nghiệp Hà Nội


Khoa Công nghệ thông tin

Trạm trung tâm

Trạm Hà Nội

Trạm Đà Nẵng

Trạm Sài Gòn
Thêm, sửa, xóa Chi nhánh
Thêm, sửa, xóa Loại phòng

Thêm, sửa, xóa Phòng

Thêm, sửa, xóa Chi nhánh

Thêm, sửa, xóa Loại phòng

Thêm, sửa, xóa Phòng

Thêm, sửa, xóa Chi nhánh

Thêm, sửa, xóa Loại phòng

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

14


Trường Đại học Công nghiệp Hà Nội


Khoa Công nghệ thông tin

Thêm, sửa, xóa Phòng

Thêm, sửa, xóa Phòng thuê

Thêm, sửa, xóa Phòng thuê

Thêm, sửa, xóa Phòng thuê

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

15


Trường Đại học Công nghiệp Hà Nội

2.2.

Khoa Công nghệ thông tin

Giao diện của chương trình
Giao Diện chương trình chính

Giao
quản




diện
chi

nhánh
Giao diện quản

dịch vụ

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

16


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

Giao diện quản lý hóa đơn

Giao diện quản lý hóa đơn dịch vụ
Giao diện quản lý khách hàng

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

17


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin


Giao diện quản lý loại phòng

Giao diện quản lý phiếu thuê

Giao diện quản lý phòng

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

18


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

Giao diện quản lý phòng thiết bị
Giao

diện

quản lý thiết bị
3.

Cài đặt và thử nghiệm
Tiến hành cài đặt thử nghiệm trên SQL server 2008 cho 3 trạm con và 1
trạm trung tâm.
Cài đặt phân tán và cho hệ thống hoạt động, kiểm tra và khắc phục các lỗi
gặp phải.
Cài đặt và thử nghiệm trên các Trạm và kết nối đến trạm trung tâm.


Trigger cho cài đặt phân tán:
create trigger check_chinhanh
on CHINHANH --ten bang muon-for insert
as begin
BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

19


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

declare @TENCHINHANH nvarchar(50)
set @TENCHINHANH=(SELECT TENCHINHANH From inserted)
if(@TENCHINHANH != 'Da Nang')
begin
print 'Dia chi nhap vao phai o Dang Nang '
rollback tran
end
end
---------------------Loai Phong----------------create trigger check_loaip
on LOAIPHONG --ten bang muon-for insert
as begin
declare @MACHINHANH nvarchar(50)
set @MACHINHANH=(SELECT MACHINHANH From inserted)
if(@MACHINHANH != 'CN02')
begin
print 'Ma chi nhanh nhap vao phai la CN02 '

rollback tran
end
end
-----------------------PHONG---------------BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

20


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

create trigger check_phong
on PHONG --ten bang muon-for insert
as begin
declare @MALOAIPHONG nvarchar(50)
set @MALOAIPHONG=(SELECT MALOAIPHONG From inserted)
if(@MALOAIPHONG like 'L2%')
begin
print 'MALOAIPHONG O DN'
end
else
begin
print 'Loi roi'
rollback tran
end
end
--------------------------Phong Thiet Bi----------------------------------------------------------------create trigger check_phongTB1
on PHONGTB --ten bang muon-for insert
as begin

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

21


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

declare @MAPHONG nvarchar(50)
set @MAPHONG=(SELECT MAPHONG From inserted)
if(@MAPHONG like 'DN%')
begin
print 'MAPHONG O SG'
end
else
begin
print 'Loi roi'
rollback tran
end
end
------------------------Phong Thue-------------create trigger check_phongthue1
on PHONGTHUE --ten bang muon-for insert
as begin
declare @MAPHONG nvarchar(50)
set @MAPHONG=(SELECT MAPHONG From inserted)
if(@MAPHONG like 'DN%')
begin
print 'MAPHONG O SG'
BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6


22


Trường Đại học Công nghiệp Hà Nội

Khoa Công nghệ thông tin

end
else
begin
print 'Loi roi'
rollback tran
end
end
-----------------------------------------drop trigger check_phong1

BTL CSDLPT - Nhóm 3-ĐH KHMT2-K6

23



×