1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo bài tập lớn môn học cơ sở dữ liệu

20 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng hệ cơ sở dữ liệu quản lí khách sạn đơn giản
Tác giả Nguyễn Hoàng Nam, Lê Đình Thanh, Hà Viết Mạnh Quốc, Đào Ngọc An
Người hướng dẫn Vũ Thị Thúy Hà
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Cơ sở dữ liệu
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 2,29 MB

Nội dung

Thuộc tính: MA_NV, TEN_NV, DIAHI, CHUCVU, CCCD.1.2 tiếp theo là về Mối quan hệ giữa các thực thể Ví dụ như- Quan hệ PHONG – KHACHHANG: nhiều khách hang có thể đặt nhiều phong hoặc không

Trang 1

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

================

BÁO CÁO BÀI TẬP LỚN

Môn học: Cơ sở dữ liệu

Thành

viên:

Nguyễn Hoàng Nam - B20DCVT262

Lê Đình Thanh - B20DCVT357

Hà Viết Mạnh Quốc - B20DCVT309 Đào Ngọc An - B20DCVT006

Nhóm: 02.

Giảng viên: Vũ Thị Thúy Hà.

Trang 2

Hà Nội 2023

MỤC LỤC

Thưa cô giáo và các bạn, nhóm 13 chúng em xin phép được báo cáo về chủ đề xây dựng hệ cơ sở

dữ liệu quản lí khách sạn đơn giản

Báo cáo được chia làm 6 phần bao gồm:

I Kịch bản hệ cơ sở dữ liệu.

II Thiết kế lược đồ

ERD……….4

III Chuyển lược đồ ERD sang lược đồ quan

hệ……… 5

IV Chuẩn hóa các lược đồ quan hệ 1NF, 2NF,

3NF………5

V Khởi tạo cơ sở dữ liệu trên MySQL

workbench……… 7

VI Một số ví dụ về truy vấn cơ sở dữ liệu trên

MySQL

workbench………

……….15

Đi vào phần thứ nhất là:

Trang 3

I Kịch bản hệ cơ sở dữ liệu

Bọn e chia được ra làm 5 thực thể, ứng với mỗi thực thể là các thuộc tính riêng biệt

 Thực thể : KHACHHANG

Thuộc tính : MA_KH, TEN_KH, CCCD, SDT, DIACHI

 Thực thể: PHONG

Thuộc tính: MA_P , TEN_P, GIA, LOAI_P.

 Thực thể : DICHVU

Thuộc tính: MA_DV , TEN_DV, GIA

 Thực thể: HOADON

Thuộc tính: MA_HD, NGAYTT, TEN_HD, MA_KH,

THANHTIEN

 Thực thể: NHANVIEN

Thuộc tính: MA_NV, TEN_NV, DIAHI, CHUCVU, CCCD.

1.2 tiếp theo là về Mối quan hệ giữa các thực thể

Ví dụ như

- Quan hệ PHONG – KHACHHANG: nhiều khách hang có

thể đặt nhiều phong hoặc không có khách hàng đặt phòng

- Quan hệ PHONG – NHÂN VIÊN : nhiều nhân viên quản

lí mỗi phòng

- Quan hệ NHANVIEN-HOADON : nhiều nhân viên tạo ra

môt hóa đơn, một hóa đơn được tạo bởi một nhân viên

- Quan hệ KHACHHANG – HOADON: mỗi khách hàng có

một hóa đơn, nhiều khách hàng có một hóa đơn

Trang 4

- Quan hệ KHACHHANG – DICHVU: nhiều khách hàng

yêu cầu nhiều dịch vụ, không có khách hàng nào yêu câu dịch vụ

Và gắn với đó là các ràng buộc

VI.1 Các ràng buộc:

Thứ nhất là

o Ràng buộc duy nhất cho MA_KH, MA_HD, MA_P, MA_DV, MA_NV

Thứ hai là

o Ràng buộc kiểm tra căn cước công dân của nhân viên

o Ràng buộc kiểm tra căn cước công dân của khách hàng

o Ràng buộc kiểm tra thành tiền của hóa đơn: đảm bảo rằng thành tiền phải có giá trị dương

o Ràng buộc kiểm tra loại phòng :đảm bảo loại phòng phải đúng

Tiếp theo đi vào phần 2, bọn e có thiết kế một Lược đồ ERD gồm 5 thực thể và 4 kiểu liên kết 2 ngôi có thuộc tính

Trang 5

II Thiết kế lược đồ ERD.

III Chuyển lược đồ ERD sang lược đồ quan hệ.

Trang 6

IV Chuẩn hóa các lược đồ quan hệ về dạng

chuẩn1NF, 2NF, 3NF.

4.1 PHONG(MA_P, TEN_P, GIA, LOAI_P)

 Khóa chính (MA_P)

 F1 = {MA_P -> TEN_P , MA_P -> TEN_P, MA_P ->GIA, MA_P ->LOAI_P}

 Lược đồ quan hệ chỉ chứa các thuộc tính nguyê tố: lược

đồ ở dạng chuẩn 1NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính là MA_P: Lược đồ ở dạng chuẩn 2NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khóa chính không bắc cầu thông qua một thuộc tính khác: Lược đồ ở dạng chuẩn 3NF

Trang 7

4.2 KHACHHANG(MA_KH, DIACHI,

TEN_KH,CCCD,SDT)

 Khóa chính(MA_KH)

 F2={MA_KH -> DIACHI, MA_KH ->TEN_KH, MA_KH ->CCCD, MA_KH ->SDT}

 Lược đồ quan hệ chỉ chứa các thuộc tính nguyê tố: lược đồ ở dạng chuẩn 1NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính là MA_KH: Lược đồ ở dạng chuẩn 2NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khóa chính không bắc cầu thông qua một thuộc tính khác: Lược đồ ở dạng chuẩn 3NF

4.3 DICHVU(GIA,TEN_DV, MA_DV).

 Khóa chính(MA_DV)

 F3={MA_DV -> GIA, MA_DV ->TEN_DV}

 Lược đồ quan hệ chỉ chứa các thuộc tính nguyê tố: lược đồ ở dạng chuẩn 1NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính là MA_DV: Lược đồ ở dạng chuẩn 2NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khóa chính không bắc cầu thông qua một thuộc tính khác: Lược đồ ở dạng chuẩn 3NF

4.4 HOADON(MA_HD, TEN_HD, NGAYTT,

THANHTIEN,MA_KH)

 Khóa chính(MA_HD)

 F4={MA_HD -> TEN_HD, MA_HD ->NGAYTT,

MA_HD -> THANHTIEN, MA_HD -> MA_KH}

 Lược đồ quan hệ chỉ chứa các thuộc tính nguyê tố: lược đồ ở dạng chuẩn 1NF

Trang 8

 Thuộc tính TEN_HD, NGAYTT, THANHTIEN,MA_KH đều phụ thuộc hàm đầy đủ vào khóa chính là MA_HD: Lược đồ ở dạng chuẩn 2NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khóa chính không bắc cầu thông qua một thuộc tính khác: Lược đồ ở dạng chuẩn 3NF

4.5 HOADON(MA_HD, TEN_HD, NGAYTT,

THANHTIEN,MA_KH)

Khóa chính: MA_NV

 F5={MA_NV ->TEN_NV, MA_NV ->DIACHI, MA_NV ->CHUCVU, MA_NV -> CCCD}

 Lược đồ quan hệ chỉ chứa các thuộc tính nguyê tố: lược đồ ở dạng chuẩn 1NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính là MA_NV: Lược đồ ở dạng chuẩn 2NF

 Mọi thuộc tính không khóa đều phụ thuộc hàm trực tiếp vào khóa chính không bắc cầu thông qua một thuộc tính khác: Lược đồ ở dạng chuẩn 3NF

5 Khởi tạo cơ sở dữ liệu trên MySQL workbench.

Tạo và sử dụng cơ sở dữ liệu.

Tạo bảng quản lý.

Trang 9

Tạo bảng KHACHHANG.

Tạo bảng DICHVU.

Trang 10

Tạo bảng HOADON.

Tạo bảng NHANVIEN.

Trang 11

Tạo bảng Phong.

Tạo bảng QUANLY.

Trang 12

Tạo bảng TAO.

Tạo bảng YEUCAU.

Trang 13

Tạo bảng DAT.

Trang 14

Code: ALTER TABLE NHANVIEN

ADD COLUMN DIENTHOAI VARCHAR(20);

Mở độ rộng cho cột DIENTHOAI để có thể lữu số điện thoại có cả mã vùng và số máy nội bộ.

Code:

ALTER TABLE NHANVIEN

MODIFY COLUMN DIENTHOAI VARCHAR(50);

Tạo thêm index cho cột DIENTHOAI của bảng

NHANVIEN.

Code:

CREATE INDEX idx_dienthoai_nhanvien ON NHANVIEN (DIENTHOAI);

Tạo một view chỉ hiển thị ‘MANV’, ‘TENNV’,

‘DIENTHOAI’ trong bảng NHANVIEN.

Code:

Tạo một view trong bảng NHANVIEN

CREATE VIEW view_nhanvien AS

SELECT MANV, TENNV, DIENTHOAI

FROM NHANVIEN;

Trang 15

Cập nhât số điện thoại them vào đầu mỗi sô chuỗi

‘+84’.

Code:

UPDATE NHANVIEN

SET DIENTHOAI = CONCAT('+84', DIENTHOAI);

Cập nhật số điện thoại thêm vào đầu mỗi số chuỗi

‘+84’ Nếu số điện thoại đã có mã quốc tế thì

không được thêm vào nữa.

Code:

UPDATE NHANVIEN

SET DIENTHOAI = CONCAT('+84', DIENTHOAI)

WHERE DIENTHOAI NOT LIKE '+%';

Tìm nhân viên trong TENNV có chữ “A”.

Code:

SELECT * FROM NHANVIEN

WHERE TENNV LIKE '%A%';

Trang 16

Tìm tên trùng nhau trong bảng NHANVIEN.

Code:

SELECT TENNV, COUNT(*) AS SoLuong

FROM NHANVIEN

GROUP BY TENNV

HAVING COUNT(*) > 1;

Một số ví dụ về truy vấn cơ sở dữ liệu trên MySQL

workbench

Trang 17

 Hiển thị danh sách phòng.

Code: SELECT * FROM PHONG;

 Hiển thị danh sách tất cả các nhân viên và chức vụ của họ

Code: SELECT TENNV, CHUCVU

FROM NHANVIEN;

Hiển thị danh sách thông tin các khách hàng và thông tin đặt phòng của họ

Code:

SELECT KHACHHANG.TENKH, DAT.NGAYDEN, DAT.NGAYDI, PHONG.TENP

Trang 18

JOIN DAT ON KHACHHANG.MAKH = DAT.KHACHHANG_MAKH

JOIN PHONG ON DAT.PHONG_MAP = PHONG.MAP;

Tổng doanh thu từ các hóa đơn:

Code:

SELECT SUM(THANHTIEN) AS TongDoanhThu

FROM HOADON;

Trang 19

Danh sách các dịch vụ được yêu cầu và số lượng:

Code:

SELECT DICHVU.TEN_DV, YEUCAU.SOLUONG

FROM DICHVU

JOIN YEUCAU ON DICHVU.MADV = YEUCAU.DICHVU_MADV

Danh sách các phòng có tình trạng “Trống’’ :

Code:

SELECT PHONG.TENP, QUANLY.TINHTRANG

FROM PHONG

JOIN QUANLY ON PHONG.MAP = QUANLY.PHONG_MAP

WHERE QUANLY.TINHTRANG = 'Trống';

Ngày đăng: 22/08/2024, 14:26

w