1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 1 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 cơ sở dữ liệu cho hệ thống quản lý khách sạn
Tác giả Nguyễn Gia Bảo, Hoàng Tuấn Cương, Ngô Minh Duy, Nguyễn Đức Dũng, Lại Khánh Linh, Nguyễn Ngọc Minh
Người hướng dẫn ThS. Giang Thị Thu Huyền
Trường học Học Viện Ngân Hàng
Chuyên ngành Hệ Thống Thông Tin Quản Lý
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 47
Dung lượng 2,83 MB

Cấu trúc

  • CHƯƠNG 1: PHÁT BIỂU BÀI TOÁN (8)
    • 1.1. Mô tả bài toán (8)
    • 1.2. Yêu cầu của bài toán (8)
    • 1.3. Mục tiêu của bài toán (9)
  • CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU (10)
    • 2.1. Thiết kế mức khái niệm (10)
      • 2.1.1. Các thực thể và thuộc tính (10)
      • 2.1.2. Các mối quan hệ (10)
      • 2.1.3. Mô hình thực thể liên kết (ERD) (11)
    • 2.2. Thiết kế mức Logic (12)
      • 2.2.1. Các quan hệ (12)
      • 2.2.2. Mô hình dữ liệu quan hệ (12)
    • 2.3. Thiết kế mức vật lý (13)
  • CHƯƠNG 3: CÁC YÊU CẦU TRUY VẤN VÀ NGHIỆP VỤ (17)
    • 3.1. Các yêu cầu truy vấn nghiệp vụ (17)
      • 3.1.1. Tạo TableSpace (17)
      • 3.1.2. Tạo các bảng (18)
      • 3.1.3. Chèn dữ liệu vào bảng (21)
      • 3.1.4. Truy vấn bằng SQL (24)
      • 3.1.5. Nghiệp vụ thực hiện bằng PL/SQL (29)
    • 3.2. Phân quyền sử dụng và quản lý người dùng (36)
    • 3.3. Sao lưu phục hồi (38)
      • 3.3.1. Kế hoạch sao lưu phục hồi (38)
      • 3.3.2. Thực hiện sao lưu bằng Flashback (38)
      • 3.3.3. Thực hiện sao lưu bằng RMAN (44)
  • KẾT LUẬN (46)
  • TÀI LIỆU THAM KHẢO (47)

Nội dung

Á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

PHÁT BIỂU BÀI TOÁN

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 động như 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 tin liê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òng và 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ện thay đổi phòng cho khách hàng như sau: thay đổi thông tin về ngày trả phòng trong đơn đặt phòng cũ của khách hàng, sau đó, tạo đơn đặt hàng mới với ngày nhậ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ản phẩm đã được tiêu thụ cũng như các dịch vụ và khách hàng sử dụng để về sau thanh 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ụng là 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ịch vụ, đồ ăn hiện có.

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.

- 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 bao gồ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ủa khá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ân viê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ách hà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ác dữ liệu hữu ích để cho việc tạo báo cáo và thống kê, giúp doanh nghiệp thự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ân viê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ất má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ố.

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 đến việ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ảo tính linh hoạt, chính xác và hiệu quả trong quá trình quản lý khách sạn.

THIẾT KẾ CƠ SỞ DỮ LIỆU

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

2.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.

- Khách hàng Đặt phòng (1 : n)

- Nhân viên Hóa đơn (1 : n)

- Hóa đơn Đặt phòng (1 : 1)

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

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

Thiết kế mức Logic

- 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ới tinh, SĐT, địa chỉ)

- Đặt phòng (Mã đặt phòng, Ngày nhận phòng, Ngày trả phòng, Mã khách hà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 thoại, email)

- Dịch vụ (Mã dịch vụ, Tên dịch vụ, Mô tả, Đơn giá dịch vụ)

2.2.2 Mô hình dữ liệu quan hệ

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

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

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

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

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

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

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

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

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

CÁC YÊU CẦU TRUY VẤN VÀ NGHIỆP VỤ

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

Việc tạo tablespace mang ý nghĩa quản lý dữ liệu theo tính chất của chú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 tablespace khá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ết hoá đơ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ượng sẽ bé hơn so với QuanLyKhachSan1

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

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

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

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

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

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

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

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

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

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

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

3.1.5 Nghiệp vụ thực hiện bằng PL/SQL

1 Thủ tục thêm khách hàng

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

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

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

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

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

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

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 tuy nhiê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

1 Người quản lý cũng sẽ có toàn quyền dba và truy cập đến cơ sở dữ liệu củ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

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ận trong 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ện phá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ính khả 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ác tố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. Ở đây database log mode có Archive mode chưa được bật nên ta sẽ tiến hành bật nó.

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.

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úng như 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;

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ể flashback trong 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ưởng bởi retention_target và dung lượng lưu trữ vậy nên sẽ gặp vấn đề về dung lượng nế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.

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

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

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

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 để

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 Recovery Manager (RMAN).

- “backup incremental level 1 database plus archivelog;” có tác dụng tạo ra một bả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ác file 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.

- “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ùng truy cập và sử dụng dữ liệu bình thường.

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

HÌNH ẢNH LIÊN QUAN

Hình 2.2: Mô hình dữ liệu quan hệ - 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
Hình 2.2 Mô hình dữ liệu quan hệ (Trang 12)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w