HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN 1
---------------------------------------
BÁO CÁO
BÀI TẬP LỚN CƠ SỞ DỮ LIỆU PHÂN TÁN
ĐỀ TÀI: QUẢN LÝ KHÁCH SẠN
Nhóm mơn học: 06
Nhóm sinh viên thực hiện : 05
Họ và tên:
1. Bùi Trung Kiên
2. Nguyễn Hải Long
3. Nguyễn Văn Nam
4. Phạm Văn Phúc
5. Nguyễn Ngọc Đại
6. Lương Hùng Mạnh
7. Hoàng Minh Sơn
8. Nguyễn Công Sửu
9. Trần Văn Phùng
10. Nguyễn Ngọc Tâm
Lớp
D15CNPM2
D15CNPM2
D15HTTT2
D15HTTT2
D15CNPM4
Mã sinh viên:
B15DCCN290
B15DCCN323
B15DCCN378
B15DCCN411
B15DCCN097
D15CNPM2
D15CNPM1
D15CNPM3
D15CNPM4
B15DCCN466
B15DCCN474
B15DCCN414
B15DCCN480
Giảng viên: Phan Thị Hà
Hà Nội, năm 2018
0
MỤC LỤC
Đặt vấn đề.................................................................................................................1
I.
1. Nhu cầu của dự án................................................................................................1
2. Kịch bản.................................................................................................................1
II.
Thiết kế..................................................................................................................2
1. Cơ sở dữ liệu.........................................................................................................2
2. Từ điển dữ liệu cho mơ hình quan hệ................................................................2
2.1.
Bảng Dịch vụ...................................................................................................2
2.2.
Bảng Nhân viên................................................................................................3
2.3.
Bảng Khách hàng............................................................................................3
2.4.
Bảng Phịng......................................................................................................4
2.5.
Bảng Phiếu đăng ký........................................................................................4
2.6.
Bảng Phiếu thanh tốn...................................................................................5
2.7.
Bảng Hóa đơn..................................................................................................5
3. Phân tích chức năng hệ thống..............................................................................5
3.1
Các chức năng chính năng chính của hệ thống...........................................5
3.2
Chức năng chi tiết tại mỗi vị trí...................................................................6
3.3
Giao tác dữ liệu:..............................................................................................6
4. Thiết kế thơng tin về phân mảnh ngang................................................................9
IV. Cài đặt.......................................................................................................................15
1. Config hệ thống......................................................................................................15
2. Tạo Publication Database.......................................................................................23
3. Tạo Subscriptions....................................................................................................29
4. Tạo Linked server...................................................................................................35
5. Store proceduces......................................................................................................37
6. Trigger......................................................................................................................40
1
I. Đặt vấn đề
1. Nhu cầu của dự án
Tên dự án: Quản lý khách sạn.
-
Khách sạn “Nơi nào đó” là một khách sạn lớn tại Việt Nam.
-
Khách sạn “Nơi nào đó” có các chi nhánh ở nơi khác nhau.
-
Việc quản lý trở nên khó khăn hơn vì các chi nhánh đặt tại các địa đi ểm khác
nhau và khoảng cách các chi nhánh khá lớn. Vì vậy, các dữ liệu c ủa máy ch ủ
phải có một hệ thống thống nhất để các chi nhánh có thể liên k ết v ới nhau, giúp
phân tán dữ liệu từ chi nhánh này tới các chi nhánh khác. Do vậy, việc thiết kế
cơ sở dữ liệu phân tán là việc cần thiết là phù hợp.
2. Kịch bản
Việc quản lý toàn bộ dữ liệu của 8 chi nhánh không phải là việc đơn giản.
Khách sạn có 8 chi nhánh từ chi nhánh 1 đến chi nhánh 8. Hệ thống được dùng
và được quản lý bởi nhân viên của các chi nhánh. Công việc chính của dự án là
quản lý thơng tin phịng, dịch vụ, nhân viên, khách hàng… c ủa t ất c ả các chi
nhánh khách sạn. Các đối tượng sử dụng hệ thống là nhân viên khách sạn.
Một máy chủ sẽ chịu trách nhiệm lưu lại toàn bộ dữ liệu của c ả 8 chi nhánh, c ụ
thể:
Thông tin nhân viên: Họ tên, địa chỉ, số điện thoại,…
Thông tin phịng: Tên phịng, tình trạng,…
Thơng tin khách hàng: Họ tên, địa chỉ, số điện thoại,...
Thông tin phiếu đăng ký : ngày đến, ngày đi…
Thông tin phiếu thanh toán: Tổng tiền,..
1
Thơng tin hóa đơn: Số tiền phải trả,..
Thơng tin dịch vụ: Tên dịch vụ, giá ,..
Máy chủ sẽ tự động đồng bộ dữ liệu từ các chi nhánh khác nhau và l ưu l ại toàn
bộ dữ liệu đó khi dữ liệu ở máy trạm có sự thay đổi.
Mỗi máy trạm tại các chi nhánh còn lại sẽ chỉ có quyền sửa đổi và l ưu thơng tin
về nhân viên, khách hàng, phịng của chi nhánh mình, khi cần đến dữ liệu của
một chi nhánh khác, máy trạm sẽ kết nối server đến máy tr ạm c ủa chi nhánh đó
để lấy dữ liệu cần thiết.
II. Thiết kế
1. Cơ sở dữ liệu.
STT
Thực thể
Các thuộc tính
1
Dịch vụ
MA_DV, TEN_DV, GIA
2
Nhân viên
MA_NV, TEN_NV, GIOI_TINH, SDT, DIA_CHI,
CHUC_VU
3
Khách hàng
MA_KH, TEN_KH, GIOI_TINH, SDT, DIA_CHI, CMT
4
Phòng
MA_PHONG, TEN_P, LOAI_P, TINH_TRANG, GIA
5
Phiếu đăng ký
MA_DK, MA_NV, MA_KH, MA_DV, MA_PHONG,
NGAY_DEN, NGAY_DI
6
Phiếu thanh tốn
MA_PHIEU, MA_DK, MA_NV,SO_NGAY,
TONG_TIEN, NGAY_TT
7
Hóa đơn
MA_HD, MA_PHIEU, MA_NV, SO_TIEN
2. Từ điển dữ liệu cho mơ hình quan hệ
2.1. Bảng Dịch vụ
ST
Tên viết tắt
Diễn giải
2
Kiểu DL
ĐD
Khóa
T
1
MA_DV
Mã dịch vụ
char
2
GIA
Giá dịch vụ
REAL
3
TEN_DV
Tên dịch vụ
Varchar
50
Kiểu DL
ĐD
Khóa
Khóa chính
2.2.
ST
T
10
Khóa chính
Bảng Nhân viên
Tên viết tắt
Diễn giải
1
MA_NV
Mã nhân viên
varchar
50
2
TEN_NV
Tên nhân viên
varchar
50
3
GIOI_TINH
Giới tính nhân viên
int
1
GIOI_TINH=1 là Nam
GIOI_TINH= 0 là Nữ
4
SDT
Số điện thoại
varchar
50
5
DIA_CHI
Địa chỉ
varchar
50
6
CHUC_VU
Chức vụ
varchar
50
Kiểu DL
ĐD
Khóa
Khóa chính
2.3.
ST
T
Bảng Khách hàng
Tên viết tắt
Diễn giải
1
MA_KH
Mã khách hang
varchar
50
2
TEN_KH
Tên khách hàng
varchar
50
3
GIOI_TINH
Giới tính khách hàng
int
1
3
GIOI_TINH=1 là Nam
GIOI_TINH= 0 là Nữ
4
SDT
Số điện thoại
varchar
50
5
DIA_CHI
Địa chỉ
varchar
50
6
CMT
Chứng minh thư
varchar
50
4
2.4.
ST
T
Bảng Phịng
Tên viết tắt
Diễn giải
Kiểu DL
ĐD
Khóa
Khóa chính
1
MA_PHONG
Mã phịng
char
10
2
TEN_P
Tên phịng
varchar
50
3
LOAI_P
Loại phịng
varchar
50
4
TINH_TRANG
Tình trạng
int
1
5
GIA
Giá phịng
real
2.5.
ST
T
Bảng Phiếu đăng ký
Tên viết tắt
Diễn giải
Kiểu DL
ĐD
Khóa
1
MA_DK
Mã phiếu đăng ký
char
10
Khóa chính
2
MA_NV
Mã nhân viên đăng ký
char
10
Khóa ngoại
3
MA_KH
Mã khách hàng
char
10
Khóa ngoại
4
MA_DV
Mã dịch vụ
char
10
Khóa ngoại
5
MA_PHONG
Mã phịng
char
10
Khóa ngoại
6
NGAY_DEN
Ngày khách hàng đặt
phịng
Date
7
NGAY_DI
Ngày khách hàng trả
phòng
Date
5
2.6.
ST
T
Bảng Phiếu thanh tốn
Tên viết tắt
Diễn giải
Kiểu
DL
ĐD
Khóa
1
MA_PHIEU
Mã phiếu thanh tốn
char
10
Khóa
chính
2
MA_DK
Mã phiếu đăng ký
char
10
Khóa
ngoại
3
MA_NV
Mã nhân viên thanh
tốn
char
10
Khóa
ngoại
4
SO_NGAY
Số ngày
Int
5
TONG_TIEN
Tổng tiền = số ngày
* số tiền phòng +
tiền dịch vụ
real
6
NGAY_THANH_TOAN Ngày khách hàng đặt
phịng
Date
10
2.7. Bảng Hóa đơn
ST
T
Tên viết tắt
Diễn giải
Kiểu DL
ĐD
Khóa
1
MA_HD
Mã hóa đơn
char
10
Khóa chính
2
MA_PHIEU
Mã phiếu thanh tốn
char
10
Khóa ngoại
3
MA_NV
Tên nhân viên thanh tốn
char
10
Khóa ngoại
4
SO_TIEN
Tổng tiền phải trả
real
3. Phân tích chức năng hệ thống.
3.1Các chức năng chính năng chính của hệ thống.
Các chức năng nhiệm vụ trong hệ thống Quản lý khách sạn ở các máy trạm bao
gồm:
6
- Quản lý nhân viên
- Quản lý khách hàng
- Quản lý phịng
- Quản lý đăng ký , thanh tốn và hóa đơn
3.2Chức năng chi tiết tại mỗi vị trí
Server chính quản trị CSDL toàn hệ thống đặt tại Hà Nội.
Vùng 1: Trạm 1, dùng để quản trị CSDL đặt tại Trạm 1.
Vùng 2: Trạm 2, dùng để quản trị CSDL đặt tại Trạm 2.
Vùng 3: Trạm 3, dùng để quản trị CSDL đặt tại Trạm 3.
Vùng 4: Trạm 4, dùng để quản trị CSDL đặt tại Trạm 4.
Vùng 5: Trạm 5, dùng để quản trị CSDL đặt tại Trạm 5.
Vùng 6: Trạm 6, dùng để quản trị CSDL đặt tại Trạm 6.
Vùng 7: Trạm 7, dùng để quản trị CSDL đặt tại Trạm 7.
Vùng 8: Trạm 8, dùng để quản trị CSDL đặt tại Trạm 8.
3.3Giao tác dữ liệu:
- Tại máy chủ:
Có khả năng lưu trữ và đồng bộ hóa dữ liệu của toàn hệ thống.
Nhận dữ liệu gửi lên từ các máy trạm đặt tại các vùng Mỗi khi các vùng cần
thơng tin thì sẽ link server đến máy chủ để lấy dữ liệu cần thiết.
- Tại vùng 1:
Mỗi khi nhập dữ liệu của 1 giao dịch xong hoặc thêm mới thông tin(nhân viên,
khách hàng,..) sẽ gửi dữ liệu lên máy trạm 1, sau đó được gửi về Server.
Lưu trữ dữ liệu của chi nhánh 1.
Khi cần dữ liệu từ các chi nhánh khác sẽ truy vấn đến máy chủ để lấy các dữ
liệu cần thiết
7
- Tại vùng 2 :
Mỗi khi nhập dữ liệu của 1 giao dịch xong hoặc thêm mới thông tin (nhân
viên, khách hàng,..) sẽ gửi dữ liệu lên máy trạm 2, sau đó được gửi về Server.
Lưu trữ dữ liệu của chi nhánh số 2.
Khi cần dữ liệu từ các chi nhánh khác sẽ truy vấn đến máy chủ để lấy các dữ
liệu cần thiết.
- Tại vùng 3:
Mỗi khi nhập dữ liệu của 1 giao dịch xong hoặc thêm mới thông tin(nhân viên,
khách hàng,..) sẽ gửi dữ liệu lên máy trạm 3, sau đó được gửi về Server.
Lưu trữ dữ liệu bán hàng của chi nhánh số 3.
Khi cần dữ liệu từ các chi nhánh khác sẽ truy vấn đến máy chủ để lấy các dữ
liệu cần thiết.
- Tại các vùng 4, 5, 6, 7, 8 ta làm tương tự như các vùng 1, 2, 3
ST
Vùng
Chức năng
T
1
Dữ liệu lưu Lấy
dữ
trữ
HN
Chuyển
Đối
dữ liệu
tượng
liệu từ đến
sử dụng
Đặt máy chủ,
Lưu trữ tất
L ấy
Chuyển
Các máy
lưu trữ dữ liệu
cả dữ liệu
dữ
dữ liệu
Client
của toàn hệ
của toàn hệ
liệu từ xuống
thống. Đồng bộ thống.
máy
các máy
hóa dữ liệu trên
khách
khách tại
tồn hệ thống.
tại các các chi
chi
nhánh khi
nhánh
có yêu
cầu
8
2
3
Trạm 1
Trạm 2
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 1
nhánh số 1
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của
chủ
số 2
chin nhánh
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
số 2
4
5
6
7
8
9
Trạm 3
Trạm 4
Trạm 5
Trạm 6
Trạm 7
Trạm 8
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 3
nhánh số 3
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 4
nhánh số 4
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 5
nhánh số 5
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 6
nhánh số 6
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 7
nhánh số 7
Đặt máy khách
Lưu trữ dữ
Máy
của chi nhánh
liệu của chi
chủ
số 8
nhánh số 8
9
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
Máy chủ
Nhân
viên
4. Thiết kế thông tin về phân mảnh ngang
Phân mảnh ngang nguyên thuỷ: Bảng phòng, nhân viên, khách hàng
Phân mảnh nganh dẫn xuất: bảng Phiếu đăng ký , bảng Hóa đơn
Server chính đặt tại Hà Nội.
Mản
Serve
Tên
h
r
CSD
phân
thứ i
1
Phân mảnh nguyên thủy
Phân mảnh dẫn xuất
L
1
Quản
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien1 =σMaNV=“HN”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan1 =
PhieuThanhToan
PhieuDangKy1
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang1 = σMaKH=“HN”(KhachHang)
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon1= HoaDon
PhieuThanhToan1
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong1 = σMaP=“HN”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy1 =
2
2
Quản
σMaDK=“HN”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
10
-Bảng phân mảnh
Phiếu thanh toán
khác
NhanVien2 =σMaNV=“BD”(NhanVien)
sạn
-Điều kiện dẫn xuất:
PhieuThanhToan2 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang2 = σMaKH=“BD”(KhachHang)
PhieuDangKy2
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon2= HoaDon
PhieuThanhToan2
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong2 = σMaP=“BD”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy2 =
3
3
Quản
σMaDK=“BD”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien3 =σMaNV=“BG”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan3 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang3 = σMaKH=“BG”(KhachHang)
PhieuDangKy3
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon3= HoaDon
PhieuThanhToan3
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong3 = σMaP=“BG”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
11
PhieuDangKy3 =
4
4
Quản
σMaDK=“BG”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien4 =σMaNV=“CT”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan4 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang4 = σMaKH=“CT”(KhachHang)
PhieuDangKy4
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon4= HoaDon
PhieuThanhToan4
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong4 = σMaP=“CT”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy4 =
5
5
Quản
σMaDK=“CT”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien5 =σMaNV=“HY”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan5 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang5 = σMaKH=“HY”(KhachHang)
PhieuDangKy5
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon5= HoaDon
PhieuThanhToan5
- Bảng phân mảnh Phòng
12
- Điều kiện phân tán:
Phong5 = σMaP=“HY”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy5 =
6
6
Quản
σMaDK=“HY”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien6 =σMaNV=“ND”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan6 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang6 = σMaKH=“ND”(KhachHang)
PhieuDangKy6
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon1= HoaDon
PhieuThanhToan6
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong6 = σMaP=“ND”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy6 =
7
7
Quản
σMaDK=“ND”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien7 =σMaNV=“SG”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan7 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
13
PhieuDangKy7
-Bảng phân mảnh
HoaDon
KhachHang7 = σMaKH=“SG”(KhachHang)
-Điều kiện dẫn xuất:
HoaDon7= HoaDon
PhieuThanhToan7
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong7 = σMaP=“SG”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy7 =
8
8
Quản
σMaDK=“SG”(PhieuDangKy)
- Bảng phân mảnh Nhân viên
lý
- Điều kiện phân tán:
khác
NhanVien8 =σMaNV=“VP”(NhanVien)
sạn
-Bảng phân mảnh
Phiếu thanh toán
-Điều kiện dẫn xuất:
PhieuThanhToan8 =
PhieuThanhToan
- Bảng phân mảnh Khách hàng
- Điều kiện phân tán:
KhachHang8 = σMaKH=“VP”(KhachHang)
PhieuDangKy8
-Bảng phân mảnh
HoaDon
-Điều kiện dẫn xuất:
HoaDon8= HoaDon
PhieuThanhToan8
- Bảng phân mảnh Phòng
- Điều kiện phân tán:
Phong8 = σMaP=“VP”(Phong)
- Bảng phân mảnh Phiếu đăng ký
- Điều kiện phân tán:
PhieuDangKy8 =
σMaDK=“VP”(PhieuDangKy)
14
III. Quản trị CSDLPT
Hệ thống phân tán cho hệ quản trị CSDL tại mỗi cửa hàng thuộc các khu vực
khác nhau trong A. Vì vậy ta phải đầu tư hạ tầng mạng theo mơ hình ClientServer. Số lượng Server và Client để cài đặt SQL Server như sau:
Sơ đồ mạng tổng quát:
IV. Cài đặt
1. Config hệ thống
Chuẩn bị :
+ Ta tạo 1 folder E:\ReplData để chứa các dữ liệu trao đổi trong quá
trình update dữ liệu từ các phân mảnh về cơ sở dữ liệu gốc, và từ cơ sở
dữ liệu gốc đến các phân mảnh
+ Tiến hành cho folder này là 1snapshot folder: thực chất là 1 shared folder
trong Windows, cho phép các users được quyền read/write (giả sử shared
folder có tên\\IIjjmi\REPLDATA) Right click trên folder REPLDATA, chọn
Properties, chọn tab Sharing–Share
15
+ Chọn Everyone, click Add, và chọn quyền Read/Write như trong hình.
Cuốicùng, click nút lệnh Share.
- Tường lửa
16
Control Panel\System and Security\Windows Firewall
17
18
19
20
- Mở kết nối cho cổng
Mở SQL Server Configuration Manager, Enable TCP/IP ở trong Protocols
for MSSQLSERVER
21
- Mở sa
- Chạy Server và Đăng nhập SQL Server Authentication bằng tài khoản sa
22
2. Tạo Publication Database
Để tạo publication Database ta vào phần Replication -> Local Publication -> New
Publication
23