Tải bản đầy đủ (.pdf) (15 trang)

Bài tập lớn môn cơ sở dữ liệu THÔNG TIN KHÁCH HÀNG THUÊ PHÒ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 (723.62 KB, 15 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 1



BÀI TẬP LỚN
MÔN: CƠ SỞ DỮ LIỆU


HỌ VÀ TÊN : LÊ VĂN KHANH
LỚP : D10CN1
MÃ SINH VIÊN : 1021040030

ĐỀ TÀI
THÔNG TIN KHÁCH HÀNG THUÊ PHÒNG KHÁCH SẠN










HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 2

A. MÔ TẢ



Bài toán được đưa ra là quản lý thông tin của khách hàng thuê phòng tại khách sạn, bao
gồm các vấn đề quản lý như: khách hàng, dịch vụ, sử dụng dịch vụ, phòng, thuê phòng,
hóa đơn. Qua đó có thể lập các hóa đơn. Từ các hóa đơn có thể tìm thấy thông tin cá nhân
của khách hàng cũng như các thông tin thuê phòng, sử dụng dịch vụ của khách hàng.
Các thông tin khách hàng bao gồm : mã khách hàng, họ tên, địa chỉ, số điện thoại, ngày
sinh, giới tính, số chứng minh thư. Thông tin của khách hàng được sử dụng khi thuê
phòng và khi thanh toán hóa đơn.
Thông tin về dịch vụ bao gồm: mã dịch vụ,tên dịch vụ, giá dịch vụ. Giá dịch vụ được
tính trên một đơn vị liên quan tới dịch vụ đó.
Thông tin khách hàng sử dụng dịch vụ: mã sử dụng, mã khách hàng, mã dịch vụ, đơn
vị, số lượng. Một khách hàng có thể sử dụng nhiều dịch vụ trong khách sạn và mỗi dịch
vụ cũng có thể được sử dụng bởi nhiều khách hàng.
Thông tin phòng của khách sạn: số phòng, loại phòng, giá phòng. Ở đây, loại phòng
chia làm 6 loại, mỗi loại có mức giá riêng của loại đó và giá được tính /1 ngày thuê.
Thông tin thuê phòng của khách hàng gồm có: mã đăng kí, mã khách hàng, số phòng,
ngày đăng kí, ngày đến, ngày đi. Mỗi khách hàng khi thuê phòng chỉ có một mã đăng kí
duy nhất.
Thông tin hóa đơn bao gồm: mã hóa đơn, mã khách hàng. Khi thanh toán, mỗi khách
hàng có 1 mã hóa đơn duy nhất.



B. XÁC ĐỊNH CÁC TẬP THỰC THỂ

Các tập thực thể (các thuộc tính khóa được gạch chân)
 Khách hàng: lưu thông tin khách hàng , bao gồm các thuộc tính
- mã khách hàng
- tên khách hàng
- địa chỉ

- số điện thoại
- ngày sinh
- giới tính
- chứng minh thư
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 3

 Dịch vụ: lưu thông tin các loại dịch vụ trong khách sạn mà khách hàng có
thể sử dụng, bao gồm các thuộc tính
- mã dịch vụ
- tên dịch vụ
- giá dịch vụ
 Phòng: lưu thông tin phòng của khách sạn, gồm các thuộc tính
- số phòng
- loại phòng
- giá phòng
 Hóa đơn: lưu thông tin thể hiện yêu cầu thanh toán tiền của khách hàng
bao gồm các thuộc tính
- mã hóa đơn
- mã khách hàng
Thực thể liên kết
 Thuê: lưu thông tin thuê phòng của khách hàng
- mã đăng kí
- mã khách hàng
- số phòng
- ngày đăng kí
- ngày đến
- ngày đi
 Sử dụng: lưu thông tin sử dụng dịch vụ của khách hàng

- mã sử dụng
- mã khách hàng
- mã dịch vụ
- đơn vị
- số lượng
Các mối liên kết
 Khách hàng có hóa đơn
 Khách hàng sử dụng dịch vụ
 Khách hàng đặt phòng khách sạn









HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 4



C. MÔ HÌNH THỰC THỂ LIÊN KẾT





















Khachhang
Phong
DichVu
HoaDon
Diachi
GiaP
LoaiP
Chungminhthu
Sodt
MaKH
TenKH
Gioitinh
MaHD
TenDV
MaDV

SoP

Ngaysinh
MaDK
NgayDK
Ngayden
Ngaydi
MaSD
Soluong
Donvi
GiaDV
Thuê
SuDung
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 5

D. ÁNH XẠ MÔ HÌNH THỰC THỂ LIÊN KẾT SANG MÔ HÌNH QUAN HỆ
















Phong
SoP
LoaiP
GiaP

DichVu
MaDV
TenDV
GiaDV

Thue
MaDK
SoP
MaKH
NgayDK
Ngayden
Ngaydi

Khachhang
MaKH
TenKH
Diachi
Ngaysinh
Gioitinh
Sodt
Chungminhthu
SuDung

MaSD
MaKH
MaDV
Donvi
Soluong



HoaDon
MaHD
MaKH





HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 6

E. THỰC HIỆN LƯỢC ĐỒ QUAN HỆ BẰNG MYSQL













HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 7


F. THỰC HIỆN 10 CÂU TRUY VẤN BẰNG ĐẠI SỐ QUAN HỆ

QUERY 1: Tìm tên của tất cả các khách hàng là nữ sinh từ năm 1970-1990
Biểu thức truy vấn :
Kết quả=π
(TenKH)

((Gioitinh=0)AND((year(Ngaysinh)>=1970)AND(year(Ngaysinh)<=1990)))
(Khachhang))

QUERY 2: Tìm tên của tất cả các khách hàng là nam sinh trước năm 1970
Biểu thức truy vấn
Kết quả=π
(TenKH)

((Gioitinh=1)AND(year(Ngaysinh)<1970))
(Khachhang))

QUERY 3: Tìm số phòng và loại phòng của các phòng có giá từ 500000-800000
Biểu thức truy vấn :
Kết quả=π
(SoP#,LoaiP)


((GiaP>=500000)AND(GiaP<=800000))
(Phong))

QUERY 4: Tìm mã dịch vụ và tên của các dịch vụ mà khách hàng sử dụng có số
lượng ≥ 10

Biểu thức truy vấn :
Kết quả=π
(MaDV#,TenDV)

(SuDung.Soluong≥10) AND (DichVu.MaDV#=SuDung.MaDV#))

(SuDung×DichVu))



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 8

QUERY 5: Tìm mã đăng kí và tên khách hàng đăng kí trong tháng 4-2012

Biểu thức truy vấn :
Kết quả=π
(Thue.MaDK#,Khachhang.TenKH)

(month(Thue.NgayDK=4) AND
year(Thue.NgayDK=2012) AND (Thue.MaKH#=Khachhang.MaKH#))


(Khachhang×Thue))

QUERY 6: Tìm mã đăng kí, số phòng, mã khách hàng ở trong khoảng thời gian
quí I năm 2012

Biểu thức truy vấn :
Kết quả=π
(Thue.MaDK#,Phong.SoP#,Khachhang.MaKH#)

((month(Thue.Ngayden)>=1)AND

(month(Thue.Ngaydi)<=3) AND (Phong.SoP#=Thue.SoP#) AND
(Khachhang.MaKH#=Thue.MaKH#))
( Khachhang×Thue×Phong))

QUERY 7: Tìm mã khách hàng và tên khách hàng sử dụng dịch vụ Karaoke
Biểu thức truy vấn :
Kết quả=π
(Khachhang.MaKH#,Khachhang.TenKH)

((SuDung.MaDV#=DichVu.MaDV#) AND
(DichVu.TenDV=”Karaoke”) AND (Khachhang.MaKH#=SuDung.MaKH#))

(Khachhang×SuDung×DichVu))




HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


CƠ SỞ DỮ LIỆU Page 9


QUERY 8: Tìm tất cả mã hóa đơn và tên của khách hàng sử dụng dịch vụ có giá
≥ 200000
Biểu thức truy vấn :
Kết quả=π
(HoaDon.MaHD#,Khachhang.TenKH)

((HoaDon.MaKH#=Khachhang.MaKH#) AND
(Khachhang.MaKH#=SuDung.MaKH#) AND (DichVu.MaDV#=SuDung.MaDV#) AND
(DichVu.GiaDV>=200000)
(HoaDon×Khachhang×SuDung))


QUERY 9: Tìm tên của những khách hàng đăng kí phòng loại 1
Biểu thức truy vấn:
Kết quả=π
(Khachhang.TenKH)

((Thue.SoP#=Phong.SoP#) AND (Phong.LoaiP=”L1”) AND
(Khachhang.MaKH#=Thue.MaKH#))
(Khachhang×Thue×Phong))

QUERY 10: Tìm mã hóa đơn và mã khách hàng của khách hàng sử dụng dịch vụ
thuê taxi
Biểu thức truy vấn:
Kết quả=π
(HoaDon.MaHD#,Khachhang.MaKH#)


((Khachhang.MaKH#=HoaDon.MaKH#) AND
(Khachhang.MaKH#=SuDung.MaKH#) AND (SuDung.MaDV#=DichVu.MaDV#) AND
(DichVu.TenDV=”Thuê taxi”))

(HoaDon×Khachhang×SuDung×DichVu))



HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 10

G. Xác định các phụ thuộc hàm F trên từng lược đồ quan hệ
và đưa về dạng chuẩn 3 (3NF)

1. Xét quan hệ

Khachhang(MaKH(A), TenKH(B), Diachi(C), Sodt(D), Ngaysinh(D),
Gioitinh(E), Chungminhthu(F))

Với tập các phụ thuộc hàm F1={ABCDEFG} và tập khóa K1={A}
Không có thuộc tính không khóa nào phụ thuộc bắc cầu vào khóa.
 Quan hệ Khachhang ở dạng 3NF.

2. Xét quan hệ

Phong(SoP(A), LoaiP(B), GiaP(C))

Với tập phụ thuộc hàm F2={ABC } và tập khóa K2={A}
Không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa .

Do đó, quan hệ Phong ở dạng 3NF.

3. Xét quan hệ
DichVu(MaDV(A), TenDV(B), GiaDV(C))
Với tập phụ thuộc hàm F3={ABC} và tập khóa K3={A}
Không có phụ thuộc hàm bắc cầu trong quan hệ này.
Do đó, quan hệ DichVu ở dạng 3NF.

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 11

4. Xét quan hệ
Thue(MaDK(A), MaKH(B), SoP(C), NgayDK(D), Ngayden(E), Ngaydi(F))
Với tập phụ thuộc hàm F4={ABCDEF} và tập khóa K4={A}
Không có thuộc tính không khóa nào phụ thuộc bắc cầu vào khóa.
Do đó, quan hệ Thue ở dạng chuẩn 3 (3NF)

5. Xét quan hệ
HoaDon(MaHD(A), MaKH(B))
Với tập phụ thuộc hàm F5={AB} và tập khóa K5={A}
Không có phụ thuộc hàm bắc cầu trong quan hệ này.
Do đó, quan hệ HoaDon ở dạng chuẩn 3(3NF)

6.Xét quan hệ
SuDung(MaSD(A), MaKH(B), MaDV(C), Donvi(D), Soluong(E))
Với tập phụ thuộc hàm F6={AB,CD,ACE} và tập khóa K6={A,C}
Không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa .
Do đó, quan hệ SuDung ở dạng chuẩn 3(3NF).






HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 12

H. Thực hiện 10 câu truy vấn bằng câu lệnh MySQL

QUERY 1: Tìm tên của tất cả các khách hàng là nữ sinh từ năm 1970-1990
SELECT TenKH
FROM Khachhang
WHERE Gioitinh = 0 AND
YEAR(Ngaysinh) BETWEEN 1970 AND 1990;

QUERY 2: Tìm tên của tất cả các khách hàng là nam sinh trước năm 1970
SELECT TenKH
FROM Khachhang
WHERE Gioitinh = 1 AND YEAR(Ngaysinh) < 1970;

QUERY 3: Tìm số phòng và loại phòng của các phòng có giá từ 500000-800000

SELECT SoP, LoaiP
FROM Phong
WHERE Gia BETWEEN 500000 AND 800000
GROUP BY LoaiP





HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 13

QUERY 4: Tìm mã dịch vụ và tên của các dịch vụ mà khách hàng sử dụng có số
lượng lớn hơn hoặc bằng 10

SELECT DichVu.MaDV, DichVu.TenDV
FROM DichVu, SuDung
WHERE SuDung.Soluong >= 10 AND DichVu.MaDV=SuDung.MaDV ;

QUERY 5: Tìm mã đăng kí và tên khách hàng đăng kí trong tháng 4-2012

SELECT Thue.MaDK, Khachhang.TenKH
FROM Thue, Khachhang
WHERE MONTH(Thue.NgayDK) = 4 AND
YEAR(Thue.NgayDK)= 2012 AND
Khachhang.MaKH = Thue.MaKH;

QUERY 6: Tìm mã đăng kí, số phòng, mã khách hàng của các khách hàng ở trong
khoảng thời gian quí I năm 2012
SELECT Thue.MaDK, Phong.SoP, Khachhang.MaKH
FROM Khachhang, Thue, Phong
WHERE MONTH(Thue.Ngayden) >= 1 AND
MONTH(Thue.Ngaydi) <= 3 AND
Thue.SoP=Phong.SoP AND
Khachhang.MaKH=Thue.MaKH;
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


CƠ SỞ DỮ LIỆU Page 14


QUERY 7: Tìm mã khách hàng và tên khách hàng sử dụng dịch vụ Karaoke
SELECT Khachhang.MaKH, Khachhang.TenKH
FROM Khachhang, SuDung, DichVu
WHERE DichVu.TenDV=”Karaoke” AND
Khachhang.MaKH=SuDung.MaKH AND
SuDung.MaDV=DichVu.MaDV;

QUERY 8: Tìm tất cả mã hóa đơn và tên của khách hàng sử dụng dịch vụ giá
≥ 200000
SELECT HoaDon.MaHD, Khachhang.TenKH
FROM Khachhang, HoaDon, SuDung
WHERE SuDung.GiaDV > 200000 AND
Khachhang.MaKH=SuDung.MaKH AND
HoaDon.MaKH=Khachhang.MaKH;







HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

CƠ SỞ DỮ LIỆU Page 15


QUERY 9: Tìm tên của những khách hàng đăng kí phòng loại 1

SELECT Khachhang.TenKH
FROM Khachhang, Thue, Phong
WHERE Phong.LoaiP = “L1” AND
Khachhang.MaKH=Thue.MaKH AND
Thue.SoP=Phong.SoP;


QUERY 10: Tìm mã hóa đơn và mã khách hàng của khách hàng sử dụng dịch vụ
thuê taxi
SELECT HoaDon.MaHD, Khachhang.MaKH
FROM HoaDon, Khachhang, SuDung, DichVu
WHERE DichVu.TenDV=”Thuê taxi” AND
HoaDon.MaKH=Khachhang.MaKH AND
Khachhang.MaKH=SuDung.MaKH AND
SuDung.MaDV=DichVu.MaDV;





×