bài tập lớn xây dựng cơ sở dữ liệu cho hệ thống quản lý khách sạn

47 0 0
Tài liệu đã được kiểm tra trùng lặp
bài tập lớn xây dựng cơ sở dữ liệu cho hệ thống quản lý khách sạn

Đ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

Áp dụng cơ sở dữ liệu vàoquá trình quản lý mang lại nhiều lợi ích như tiết kiệm thời gian, độ chính xác caovà bảo mật dữ liệu, từ đó nâng cao chất lượng dịch vụ và tạo ra lợi thế cạnh tr

Trang 1

HỌC VIỆN NGÂN HÀNGKHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

-BÀI TẬP LỚN

ĐỀ TÀI: xây dựng cơ sở dữ liệu cho Hệ thống quản lý khách sạnGiảng viên hướng dẫn: ThS Giang Thị Thu Huyền

Lớp học phần: 231MIS07A02Nhóm: 05

Hà Nội, 2023

Trang 2

HỌC VIỆN NGÂN HÀNGKHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

-BÀI TẬP LỚN

ĐỀ TÀI: XÂY DỰNG CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÝ KHÁCH SẠNGiảng viên hướng dẫn: ThS Giang Thị Thu Huyền

Lớp học phần: 231MIS07A02Nhóm: 05

DANH SÁCH THÀNH VIÊN

STT Họ và tên Mã sinh viên Lớp niên chế Phần trămđóng góp (%)

Trang 3

LỜI CẢM ƠN

Chúng tôi đặc biệt muốn bày tỏ lòng biết ơn chân thành đến cô Giang Thị ThuHuyền, người đã không ngừng giúp đỡ, động viên và chia sẻ tri thức quý báu củamình với chúng tôi suốt thời gian qua.

Là người hướng dẫn chân thành và tận tâm, cô không chỉ truyền đạt kiến thức màcòn là nguồn động viên mạnh mẽ cho chúng tôi Lời giảng của cô không chỉ lànguồn cảm hứng mà còn là nguồn năng lượng tích cực, giúp chúng tôi vượt quanhững thách thức trong hành trình học tập.

Chúng tôi đặc biệt biết ơn về cơ hội được tham gia môn học quan trọng và hữuích "Hệ quản trị Cơ sở dữ liệu" Đây không chỉ là một môn học, mà là một hànhtrình tìm hiểu sâu rộng về cách chúng ta có thể khám phá và hiểu rõ hơn về dữliệu.

Trong quá trình thực hiện Bài tập lớn, chúng tôi nhận thức rằng do kiến thức, lýluận và kinh nghiệm thực tế của chúng tôi còn hạn chế, nên bài làm không tránhkhỏi những thiếu sót Chúng tôi mong nhận được sự góp ý quý báu từ quý cô đểbài báo cáo trở nên hoàn thiện hơn Với lòng biết ơn và tôn trọng, chúng tôi xingửi lời tri ân chân thành đến cô Giang Thị Thu Huyền, người đã là nguồn độngviên lớn lao và nguồn định hình quan trọng cho sự phát triển của chúng tôi Cảmơn vì những hành trang quý báu mà cô đã truyền đạt, giúp chúng tôi trở thànhnhững người học viên đầy kiến thức và tinh thần.

Trang 4

LỜI CAM ĐOAN

Chúng tôi xin cam đoan kết quả đạt được trong Bài tập lớn là sản phẩm của riêngcá nhân em và không có sự sao chép lại của người khác Trong toàn bộ nội dungcủa Bài tập lớn, những điều được trình bày hoặc là của nhóm chúng tôi hoặc làđược tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuấtxứ rõ ràng và được trích dẫn hợp pháp.

Chúng tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quyđịnh cho lời cam đoan của mình!

Trang 5

LỜI NÓI ĐẦU

Quản lý khách sạn đang trở thành một nhiệm vụ phức tạp và đa dạng, đòi hỏi sựhiểu biết sâu sắc và sở hữu nhiều kỹ năng Hiện nay, một số lượng lớn khách sạnvẫn sử dụng phương pháp quản lý lỗi thời bao gồm việc sử dụng sổ sách, hồ sơ,và Microsoft Excel để thực hiện các tính toán Thực tế này dẫn đến nhiều vấn đềnhư tốn thời gian, phổ biến lỗi và sự trùng lặp dữ liệu, khả năng kiểm soát thôngtin khách hàng và nhân viên kém hiệu quả, và nhiều vấn đề khác.

Trên thị trường, có nhiều phần mềm quản lý khách sạn với đa dạng tính năng vàmức giá Tuy nhiên, việc chọn lựa phần mềm phù hợp nhất, đáp ứng đúng nhucầu và điều kiện cụ thể của mỗi khách sạn là một thách thức đối với nhà quản lý.Sử dụng cơ sở dữ liệu cho quản lý khách sạn đang trở thành một giải pháp lựachọn, được nhiều nhà quản lý khách sạn ưa chuộng Áp dụng cơ sở dữ liệu vàoquá trình quản lý mang lại nhiều lợi ích như tiết kiệm thời gian, độ chính xác caovà bảo mật dữ liệu, từ đó nâng cao chất lượng dịch vụ và tạo ra lợi thế cạnh tranhtrên thị trường.

Do đó nhóm chúng tôi đã lựa chọn đề tài "Xây dựng cơ sở dữ liệu cho hệ thốngquản lý khách sạn" để nghiên cứu Trong thời đại công nghệ thông tin, ngành dulịch và khách sạn đang hướng đến việc cải thiện trải nghiệm của khách hàng Xâydựng cơ sở dữ liệu không chỉ đơn thuần lưu trữ thông tin mà còn tạo ra trảinghiệm cá nhân hóa độc đáo cho khách hàng, làm tăng giá trị trong lĩnh vực này.

Trang 6

MỤC LỤC

CHƯƠNG 1: PHÁT BIỂU BÀI TOÁN 1

1.1 Mô tả bài toán 1

1.2 Yêu cầu của bài toán 1

1.3 Mục tiêu của bài toán 2

CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU 3

2.1 Thiết kế mức khái niệm 3

CHƯƠNG 3: CÁC YÊU CẦU TRUY VẤN VÀ NGHIỆP VỤ 10

3.1 Các yêu cầu truy vấn nghiệp vụ 10

3.2 Phân quyền sử dụng và quản lý người dùng 30

3.3 Sao lưu phục hồi 32

3.3.1 Kế hoạch sao lưu phục hồi 32

3.3.2 Thực hiện sao lưu bằng Flashback 32

Trang 7

3.3.3 Thực hiện sao lưu bằng RMAN 39

KẾT LUẬN 41

TÀI LIỆU THAM KHẢO 42

PHỤ LỤC HÌNH ẢNHHình 2.1: Mô hình thực thể liên kết 4

Hình 2.2: Mô hình dữ liệu quan hệ 5

Hình 3.1: Tạo user NhanVienIT và cấp các quyền 30

Hình 3.2: Tạo user QuanLy và cấp các quyền 31

Hình 3.3: Tạo user LeTan và cấp các quyền 31

Trang 8

CHƯƠNG 1: PHÁT BIỂU BÀI TOÁN

1.1 Mô tả bài toán

Quản lý khách sạn yêu cầu phải xây dựng một cơ sở dữ liệu, khách sạn hoạt độngnhư sau:

Khi đặt phòng, khách hàng sẽ được yêu cầu nhập thông tin cá nhân và thông tinliên hệ của mình lại, khách hàng cũng sẽ phải nhập ngày nhận phòng, ngày trảphòng khách sạn và yêu cầu của mình về loại phòng mong muốn, ngày đặt phòngvà những yêu cầu trên sẽ được nhân viên xử lý, lưu lại và sử dụng để chuẩn bịphòng cho khách hàng.

Nếu trong khoảng thời gian sử dụng, phòng gặp vấn đề, khách sạn sẽ thực hiệnthay đổi phòng cho khách hàng như sau: thay đổi thông tin về ngày trả phòngtrong đơn đặt phòng cũ của khách hàng, sau đó, tạo đơn đặt hàng mới với ngàynhận phòng tiếp tục từ ngày trả phòng trước Khách hàng cũng sẽ nhận được hóađơn thanh toán tương ứng với các phòng đã sử dụng.

Khách sạn có các dịch vụ thu tiền và đồ ăn trong tủ lạnh tại mỗi phòng, sẽ cónhân viên kiểm tra các phòng mỗi ngày và lưu lại các sản phẩm, số lượng các sảnphẩm đã được tiêu thụ cũng như các dịch vụ và khách hàng sử dụng để về sauthanh toán.

Sau khi trả phòng, khách hàng sẽ nhận được hóa đơn, từ hóa đơn, khách hàng cóthể kiểm tra, xác nhận các thông tin về bản thân, phòng, các dịch vụ đã sử dụnglà chính xác để tiến hành thanh toán.

Ngoài ra, khách sạn cũng cần phải quản lý thông tin của nhân viên và các dịchvụ, đồ ăn hiện có.

1.2 Yêu cầu của bài toán

- Cơ sở dữ liệu được thiết kế cần phải đáp ứng được các yêu cầu sau:- Quản lý thông tin phòng: Lưu trữ thông tin về mã phòng, loại phòng, đơn

giá, trạng thái và các mô tả đi kèm của phòng.

Trang 9

- Quản lý thông tin khách hàng: Lưu trữ thông tin của khách hàng nhưthông tin cá nhân và thông tin liên hệ cần thiết.

- Quản lý thông tin đặt phòng: Lưu trữ thông tin về các đơn đặt phòng baogồm ngày đặt, ngày nhận, ngày trả phòng.

- Quản lý các dịch vụ của khách sạn: Lưu trữ thông tin về các dịch vụ củakhách sạn như giặt đồ, spa, … và cả các sản phẩm dùng thêm như đồ ăn,đồ uống cũng được lưu trữ ở đây.

- Quản lý nhân viên: Lưu trữ thông tin cá nhân, thông tin liên hệ của nhânviên và chức vụ của họ trong doanh nghiệp.

- Đảm bảo bảo mật: Đảm bảo an toàn và bảo vệ thông tin cá nhân của kháchhàng cũng như của doanh nghiệp trước các mối đe dọa.

- Tạo báo cáo và thống kê: Cơ sở dữ liệu cần phải có khả năng truy vấn cácdữ liệu hữu ích để cho việc tạo báo cáo và thống kê, giúp doanh nghiệpthực hiện các nghiệp vụ liên quan.

- Quản lý phân quyền: Quản lý quyền truy cập sao cho quản lý và các nhânviên khách sạn với các chức vụ khác nhau có thể và chỉ có thể truy cập vàthao tác với những phần cần thiết cho công việc của họ, tránh gây mấtmát.

- Sao lưu và phục hồi: Có kế hoạch sao lưu và có thể phục hồi cơ sở dữ liệuđể đảm bảo an toàn dữ liệu và khả năng khôi phục sau sự cố.

1.3 Mục tiêu của bài toán

Tạo ra một cơ sở dữ liệu hiệu quả để quản lý và điều phối thông tin liên quan đếnviệc đặt, sử dụng phòng trong một khách sạn và quản lý khách sạn nói chung Hệthống này cung cấp khả năng quản lý thông tin về phòng, khách hàng, đặt phòng,các phòng và các dịch vụ đi kèm, quản lý thông tin nhân viên, nhằm đảm bảotính linh hoạt, chính xác và hiệu quả trong quá trình quản lý khách sạn.

Trang 10

CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU

2.1 Thiết kế mức khái niệm2.1.1 Các thực thể và thuộc tính

- Phòng: Mã phòng, Số phòng, Loại phòng, Đơn giá, Trạng thái, Mô tả.- Khách hàng: Mã khách hàng, Số CCCD, Tên khách hàng, Ngày sinh, Giới

tính, Email, Số điện thoại, Địa chỉ.

- Nhân viên: Mã nhân viên, Số CCCD, Tên nhân viên, Ngày sinh, Giới tính,Email, Số điện thoại, Địa chỉ, Chức vụ, Lương.

- Dịch vụ: Mã dịch vụ, Tên dịch vụ, Đơn giá, Số lượng tồn kho.- Hóa đơn: Mã hóa đơn, Ngày lập hóa đơn, Tổng tiền.- Đặt phòng: Mã đặt phòng, Ngày đặt phòng, Ngày trả phòng.2.1.2 Các mối quan hệ

- Phòng <Trong> Đặt phòng (1 : n)- Khách hàng <Có> Đặt phòng (1 : n)- Nhân viên <Quản lý> Hóa đơn (1 : n)- Hóa đơn <Có> Đặt phòng (1 : 1)

- Hóa đơn <Có> Dịch vụ (n : n) (Số lượng, Đơn giá, Thành tiền)

Trang 11

2.1.3 Mô hình thực thể liên kết (ERD)

Hình 2.1: Mô hình thực thể liên kết

Trang 12

2.2 Thiết kế mức Logic2.2.1 Các quan hệ

- Phòng (Mã phòng, loại phòng, đơn giá, trạng thái, mô tả)

- Khách hàng (Mã khách hàng, tên khách, Ngày Sinh, CMT, email, giớitinh, SĐT, địa chỉ)

- Đặt phòng (Mã đặt phòng, Ngày nhận phòng, Ngày trả phòng, Mã kháchhàng, Mã phòng)

- Hóa đơn (Mã hóa đơn, tổng tiền, Ngày thanh toán, Mã đặt phòng) - Chi tiết hóa đơn(Mã hóa đơn, Mã dịch vụ, số lượng, đơn giá, thành tiền)- Nhân viên(Mã nhân viên, tên, chức vụ, lương, giới tính, địa chỉ, số điện

Trang 13

2.3 Thiết kế mức vật lý

Bảng “Phong”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Bảng “KhachHang”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Trang 14

7 SDT Char 10 Not Null

Bảng “NhanVien”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Trang 15

Bảng “DichVu”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Bảng “HoaDon”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Trang 16

Bảng “ChiTietHoaDon”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Bảng “DatPhong”

STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc

Trang 17

CHƯƠNG 3: CÁC YÊU CẦU TRUY VẤN VÀ NGHIỆP VỤ

3.1 Các yêu cầu truy vấn nghiệp vụ3.1.1 Tạo TableSpace

Việc tạo tablespace mang ý nghĩa quản lý dữ liệu theo tính chất củachúng Tùy thuộc vào loại dữ liệu, thông tin nào sẽ được phân vào các tablespacekhác nhau Đối với các thông tin, dữ liệu không có sự thay đổi thường xuyên nhưnhân viên, phòng, dịch vụ Các bảng còn lại như đặt phòng, khách hàng, chi tiếthoá đơn, hoá đơn được phân vào tablespace còn lại.

Tạo 2 tablespace, QuanLyKhachSan2 có ít sự thay đổi vì vậy dung lượngsẽ bé hơn so với QuanLyKhachSan1

- Truy xuất đường dẫn

- Tạo TableSpace

Trang 18

- Tạo TableSpace

3.1.2 Tạo các bảng- Tạo bảng Phòng

- Tạo bảng Đặt Phòng

Trang 19

- Tạo bảng Khách Hàng

- Tạo bảng Nhân Viên

Trang 20

- Tạo bảng Dịch Vụ

- Tạo bảng Hóa Đơn

- Tạo bảng Chi Tiết Hóa Đơn

Trang 21

3.1.3 Chèn dữ liệu vào bảng- Chèn dữ liệu Khách Hàng

- Chèn dữ liệu bảng Dịch Vụ

- Chèn dữ liệu bảng Phòng

Trang 22

- Chèn dữ liệu bảng Nhân Viên

- Chèn dữ liệu bảng Đặt Phòng

Trang 23

- Chèn dữ liệu bảng Hóa Đơn

- Chèn dữ liệu bảng Chi Tiết Hóa Đơn

Trang 24

3.1.4 Truy vấn bằng SQL

1 Thống kê loại phòng nào có số lượng đặt cao nhất

2 Thống kê số lượng đặt phòng theo từng tháng

Trang 25

3 Tổng chi phí dịch vụ cho 1 đơn đặt phòng

4 Doanh thu dịch vụ của từng hóa đơn

Trang 26

5 Danh sách các loại phòng có tỷ lệ sử dụng cao nhất

6 Tính số lượng dịch vụ được sử dụng cho mỗi hóa đơn

Trang 27

7 Thống kê số lượng dịch vụ đã được sử dụng

8 Hiển thị khách hàng đã đặt phòng

Trang 28

9 Lấy thông tin hoá đơn của khách hàng

10 Tổng tiền phòng của các hóa đơn

Trang 29

3.1.5 Nghiệp vụ thực hiện bằng PL/SQL1 Thủ tục thêm khách hàng

Trang 30

2 Tính doanh thu của dịch vụ theo mã dịch vụ

Trang 31

3 Trigger cập nhật trạng thái phòng

4 Thủ tục đổi phòng

Trang 32

5 Thủ tục cập nhật giá phòng

Trang 33

6 Package gồm 1 thủ tục nhập đặt phòng mới và hàm kiểm tra phòng

Trang 34

7 Hàm kiểm tra số lượng phòng trống trong 1 khoảng thời gian

8 Tạo thủ tục để xác nhận thanh toán và cập nhật trạng thái phòng

Trang 35

9 Tính Doanh thu theo loại phòng

10 Hàm trả về danh sách các phòng theo từng loại

Trang 36

3.2 Phân quyền sử dụng và quản lý người dùng

Việc truy cập vào cơ sở dữ liệu của cửa hàng dựa trên mỗi nhiệm vụ khác nhau,đối với người quản trị cơ dữ liệu cần tạo một user với toàn quyền hệ thống tuynhiên hạn chế các quyền về sửa đổi database như sau:

Hình 3.1: Tạo user NhanVienIT và cấp các quyền

Trang 37

1 Người quản lý cũng sẽ có toàn quyền dba và truy cập đến cơ sở dữ liệucủa hệ thống

Hình 3.2: Tạo user QuanLy và cấp các quyền

2 Đối với công việc lễ tân sẽ tiếp đón khách hàng, nhận thông tin đặt phòng,quản lý các hóa đơn và cũng như update thông tin dịch vụ của khách sạn

Hình 3.3: Tạo user LeTan và cấp các quyền

Trang 38

3.3 Sao lưu phục hồi

3.3.1 Kế hoạch sao lưu phục hồi

Việc sao lưu dữ liệu là một khía cạnh cực kỳ quan trọng và không thể phủ nhậntrong quản lý thông tin của mọi tổ chức và cá nhân Đây không chỉ là một biệnpháp dự phòng đơn thuần, mà còn là một chiến lược cần thiết để đảm bảo tínhkhả dụng, an toàn và toàn vẹn của dữ liệu.

Toàn bộ cơ sở dữ liệu sẽ được lên lịch sao lưu hàng tuần Sao lưu vào 9 giờ cáctối Chủ Nhật hàng tuần.

Cơ sở dữ liệu sẽ được phục hồi nếu như có sự cố xảy ra.3.3.2 Thực hiện sao lưu bằng Flashback

Để kích hoạt tính năng Flashback Table cho một bảng trong Oracle Database,trước hết phải chắc chắn Archive mode đang được bật.

1 Đăng nhập vào từ SQLPlus.

2 Đảm bảo rằng cơ sở dữ liệu đang chạy ở chế độ ARCHIVELOG.

Trang 39

Ở đây database log mode có Archive mode chưa được bật nên ta sẽ tiến hành bậtnó.

3 Tiến hành tắt database và bật ở trạng thái mounted.

4 Bật chế độ archive log mode.

5 Kiểm tra xem đã được bật thành công chưa.

Trang 40

Kiểm tra lại trạng thái log mode ở đây archivelog đã được bật thành công

Tiến hành bật và thử Flashback.

1 Kiểm tra xem phần recovery sẽ lưu vào thư mục nào, có đủ dung lượng không.

Ta cũng có thể thay đổi đường dẫn và gia hạn lại dung lượng lưu trữ của chúngnhư sau:

ALTER SYSTEM SET db_recovery_file_dest='new_recovery_area_path' SCOPE=SPFILE;

ALTER SYSTEM SET db_recovery_file_dest_size=new_size SCOPE=SPFILE;

Trang 41

2 Bật và kiểm tra xem flashback đã được bật chưa.

3 Kiểm tra và giới hạn thời gian có thể flashback được.

Set số phút có thể flashback ở đây là 2880 tương đương với có thể flashbacktrong vòng 2 ngày.

Kiểm tra xem đã được áp dụng chưa.

Hoặc ta cũng có thể set 1 restore point, restore point này sẽ không bị ảnh hưởngbởi retention_target và dung lượng lưu trữ vậy nên sẽ gặp vấn đề về dung lượngnếu bị lạm dụng nên chỉ dùng trước những vấn đề cần chỉnh sửa quan trọng.

Đặt tên cho restore point là before_upgrade.

Trang 42

Kiểm tra xem mốc thời gian của restore point, ở đây chính là thời điểm chúng taset up nó.

4 Đặt vấn đề: Xóa nhầm bảng KhachHang.

Bảng KhachHang đã bị xóa.

Trang 43

5 Ta tiến hành flashback tại đây sẽ flashback lại restore point.Tiến hành tắt database và bật ở trạng thái mounted.

Flashback lại thời điểm restore point.

Tiến hành kiểm tra xem đã thành công chưa.

Khi thấy đã đúng với ý định ta tiến hành tắt, mở lại mount và openresetlogs để

Trang 44

3.3.3 Thực hiện sao lưu bằng RMAN

- “rman target/” là câu lệnh kết nối đến cơ sở dữ liệu đích trong Oracle RecoveryManager (RMAN).

- “backup incremental level 1 database plus archivelog;” có tác dụng tạo ra mộtbản sao của cơ sở dữ liệu Oracle, bao gồm cả các dữ liệu và các nhật ký redo,nhưng chỉ sao lưu các thay đổi dữ liệu kể từ lần sao lưu đầy đủ gần nhất.

- “shutdown immediate;”: Đóng cơ sở dữ liệu ngay lập tức, ngăn chặn các hoạtđộng truy cập và sửa đổi dữ liệu.

- “startup mount;”: Khởi động cơ sở dữ liệu ở chế độ "mount", trong đó chỉ cácfile cấu trúc (control files và spfiles) được mở, cho phép thao tác với các file dữliệu mà không cho phép truy cập dữ liệu.

Trang 45

- “restore database;”: Khôi phục các file dữ liệu và file cấu trúc từ bản sao lưu,thay thế các file hiện có.

- “recover database;”: Áp dụng các thay đổi được ghi lại trong các archived logs(nhật ký redo) vào các file dữ liệu để phục hồi các giao dịch chưa hoàn thành.- “alter database open;”: Mở cơ sở dữ liệu ở chế độ "open", cho phép người dùngtruy cập và sử dụng dữ liệu bình thường.

Ngày đăng: 19/06/2024, 17:06