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

Bài tập lớn quản lí nhà hàng trong hệ cơ sở dữ liệu

43 11 0

Đ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 đề Bài Tập Lớn Quản Lí Nhà Hàng Trong Hệ Cơ Sở Dữ Liệu
Tác giả Phạm Đức Cường, Trịnh Đức Bình
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Viet Nam National University Ha Noi
Chuyên ngành Quản Lí Nhà Hàng
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 43
Dung lượng 724,02 KB

Cấu trúc

  • I) MÔ TẢ BÀI TOÁN, KHẢO SÁT BÀI TOÁN (4)
  • A. MÔ TẢ BÀI TOÁN (4)
    • 1. NHU CẦU (4)
    • 2. THỰC HIỆN (4)
    • 3. MỤC TIÊU (4)
  • B. KHẢO SÁT BÀI TOÁN, THU THẬP THÔNG TIN (5)
    • 1. CÁC THÔNG TIN CẦN LƯU TRỮ (5)
    • 2. CÁC CHỨC NĂNG NGHIỆP VỤ CẦN XỬ LÝ (7)
    • 3. CÁC QUY TRÌNH NGHIỆP VỤ CẦN XỬ LÝ (8)
    • 4. CÁC MẪU BÁO CÁO NGHIỆP VỤ, THỐNG KÊ (9)
    • 5. DB ROLE VÀ USERS ỨNG VỚI DB ROLES (18)
    • II) THIẾT KẾ SƠ ĐỒ ERD, CHUẨN HÓA VỀ DẠNG CHUẨN 3NF (20)
  • A. THỰC THỂ (20)
  • B. THUỘC TÍNH (21)
  • C. MỐI QUAN HỆ (21)
  • D. XÁC ĐỊNH KHOÁ CHÍNH (23)
  • E. CÁC BẢNG DỮ LIỆU (24)
  • F. CHUYỂN HÓA SƠ ĐỒ ERD SANG RM (29)
  • F. CHUẨN HOÁ DỮ LIỆU SANG CHUẨN 3N (30)
    • 1. Các biểu đồ phụ thuộc (30)
    • 2. Điều kiện chuẩn hoá 1NF (32)
    • III) XÂY DỰNG CSDL TRÊN MYSQL (33)
    • IV) XÂY DỰNG CÁC THAO TÁC NGHIỆP VỤ (37)
      • 1. TỔNG DOANH THU THEO THÁNG (37)
      • 2. BÁO CÁO SỐ LƯỢNG HÓA ĐƠN VÀ DOANH THU CỦA TỪNG KHÁCH HÀNG (38)
      • 3. BÁO CÁO SỐ LƯỢNG MÓN ĂN BÁN ĐƯỢC TRONG MỖI HÓA ĐƠN (39)
      • 4. BÁO CÁO SỐ LƯỢNG HÓA ĐƠN THEO NHÂN VIÊN (40)
      • 5. BẢNG BÁO CÁO CHI TIẾT HÓA ĐƠN (41)

Nội dung

MÔ TẢ BÀI TOÁN

NHU CẦU

Nhóm khởi nghiệp Cường Bình đã quyết định mở chuỗi nhà hàng sang trọng tại thành phố lớn nhằm mang đến trải nghiệm ẩm thực độc đáo và chất lượng cho khách hàng Họ đặt mục tiêu xây dựng một hệ thống quản lý nhà hàng hiệu quả để theo dõi, đánh giá và cải thiện hoạt động kinh doanh.

Chúng tôi quyết định áp dụng dữ liệu tập trung trong quản lý nhà hàng để kiểm soát toàn bộ quy trình kinh doanh, bao gồm đặt hàng, chế biến, thanh toán, quản lý kho hàng và lịch làm việc của nhân viên Việc này không chỉ nâng cao hiệu quả quản lý mà còn giúp phân tích và đưa ra quyết định chiến lược kinh doanh một cách dễ dàng hơn.

THỰC HIỆN

Để giải quyết thách thức trong quản lý nhà hàng, chúng tôi sẽ xác định các thực thể quan trọng và mối quan hệ giữa chúng Tiếp theo, chúng tôi sẽ xây dựng một mô hình dữ liệu thực thể-quan hệ (ERD) để minh họa sự tương tác giữa các thực thể này Mô hình này sẽ phản ánh các yêu cầu nghiệp vụ và mối quan hệ giữa các thực thể trong hệ thống quản lý nhà hàng.

MỤC TIÊU

Nhà hàng "Cường Bình" hứa hẹn mang đến cho thực khách trải nghiệm ẩm thực tuyệt vời với các món ăn độc đáo, dịch vụ chuyên nghiệp và không gian thoải mái.

 Thực Đơn Đa Dạng: o "Cường Bình" tự hào về thực đơn phong phú, đa dạng với các món ăn ngon miệng từ nhiều loại ẩm thực khác nhau.

 Không Gian Thân Thiện: o Nhà hàng có không gian thoải mái và ấm cúng, phù hợp cho cả bữa trưa gia đình và các buổi hẹn hò lãng mạn.

 Dịch Vụ Chuyên Nghiệp: o Đội ngũ nhân viên được đào tạo chuyên nghiệp, nhiệt tình và luôn sẵn sàng phục vụ khách hàng.

 Sự Sáng Tạo Trong Bếp: o Bếp của "Cường Bình" luôn nỗ lực đổi mới để mang lại những trải nghiệm ẩm thực mới lạ cho khách hàng.

 Chất Lượng Nguyên Liệu: o Chúng tôi cam kết sử dụng nguyên liệu tươi ngon và chất lượng cao để đảm bảo hương vị tuyệt vời trong mỗi bữa ăn.

KHẢO SÁT BÀI TOÁN, THU THẬP THÔNG TIN

CÁC THÔNG TIN CẦN LƯU TRỮ

 Họ và tên khách hàng

 Họ và tên nhân viên

 Sức chứa (số lượng khách tối đa)

 Mã nhân viên thực hiện

 Mã khách hàng (nếu có)

 Mã nhân viên thực hiện

 Mã nhân viên phục vụ

CÁC CHỨC NĂNG NGHIỆP VỤ CẦN XỬ LÝ

 Cho phép khách hàng đặt bàn trực tuyến hoặc qua điện thoại

 Nhân viên kiểm tra tình trạng bàn và cập nhật thông tin đặt bàn vào bảng DatBan b Chức năng lập đơn hàng

 Nhận thông tin các món khách hàng gọi món

 Ghi nhận vào bảng ChiTietHoaDon các món trong đơn hàng

 Cập nhật tổng tiền vào bảng HoaDon c Chức năng in bill thanh toán

 Kiểm tra thông tin hóa đơn và các món ăn

 In ra hóa đơn cho khách hàng thanh toán d Chức năng lập phiếu nhập hàng

 Lập phiếu nhập khi có hàng hóa được nhập vào kho

 Cập nhật vào ChiTietPhieuNhap các thông tin mặt hàng e Chức năng xuất báo cáo doanh thu

 Thống kê doanh thu theo ngày/tháng dựa trên bảng HoaDon

 Xuất báo cáo ra file Excel hoặc PDF f Chức năng cập nhật tồn kho

 Cập nhật số lượng tồn kho sau mỗi lần xuất nhập

 Cảnh báo hàng sắp hết hạn sử dụng hoặc đạt ngưỡng tồn kho tối thiểu

CÁC QUY TRÌNH NGHIỆP VỤ CẦN XỬ LÝ

Dưới đây là các quy trình nghiệp vụ cần xử lý trong quản lý nhà hàng: a) Quản lý khách hàng:

 Thêm khách hàng mới vào cơ sở dữ liệu.

 Cập nhật thông tin khách hàng (số điện thoại, địa chỉ, email, ).

 Xóa khách hàng khỏi cơ sở dữ liệu. b Quản lý nhân viên:

 Thêm nhân viên mới vào cơ sở dữ liệu.

 Cập nhật thông tin nhân viên (số điện thoại, địa chỉ, lương, ).

 Xóa nhân viên khỏi cơ sở dữ liệu. c Quản lý thực đơn:

 Thêm món ăn mới vào thực đơn.

 Cập nhật thông tin món ăn (giá, loại món ăn, ).

 Xóa món ăn khỏi thực đơn. d Quản lý bàn ăn:

 Thêm bàn mới vào cơ sở dữ liệu.

 Cập nhật thông tin bàn (tên bàn, số chỗ ngồi, ).

 Xóa bàn khỏi cơ sở dữ liệu. e Quản lý đặt bàn:

 Đặt bàn cho khách hàng.

 Hủy đặt bàn cho khách hàng. f Quản lý hóa đơn:

 Tạo hóa đơn cho khách hàng.

 Cập nhật thông tin hóa đơn (ngày lập, tổng tiền, ).

 Xóa hóa đơn khỏi cơ sở dữ liệu. g Quản lý chi tiết hóa đơn:

 Thêm món ăn vào hóa đơn.

 Cập nhật số lượng món ăn trong hóa đơn.

 Xóa món ăn khỏi hóa đơn. h Quản lý phiếu nhập hàng:

 Tạo phiếu nhập hàng từ nhà cung cấp.

 Cập nhật thông tin phiếu nhập hàng (ngày nhập, tổng tiền, ).

 Xóa phiếu nhập hàng khỏi cơ sở dữ liệu. i Quản lý chi tiết phiếu nhập hàng:

 Thêm nguyên liệu vào phiếu nhập hàng.

 Cập nhật số lượng nguyên liệu trong phiếu nhập hàng.

 Xóa nguyên liệu khỏi phiếu nhập hàng. j Quản lý nhà cung cấp:

 Thêm nhà cung cấp mới vào cơ sở dữ liệu.

 Cập nhật thông tin nhà cung cấp (số điện thoại, địa chỉ, ).

 Xóa nhà cung cấp khỏi cơ sở dữ liệu.

CÁC MẪU BÁO CÁO NGHIỆP VỤ, THỐNG KÊ

Sau khi nhập dữ liệu vào SQL, nhóm chúng em đã thực hiện chạy mã cho các mẫu báo cáo thống kê và nghiệp vụ, từ đó thu được kết quả cho mẫu báo cáo thống kê như sau:

BẢNG BÁO CÁO DOANH THU THÁNG CỦA NHÀ HÀNG

Trong báo cáo doanh thu nhà hàng từ ngày 12 đến 22 tháng 9 năm 2023, tổng doanh thu đạt được là 58.000.000 đồng.

BẢNG BÁO CÁO DOANH THU CỦA TỪNG KHÁCH HÀNG

Dựa trên thông tin đã cung cấp, dưới đây là danh sách khách hàng cùng với số hóa đơn và tổng số tiền họ đã chi tiêu Bảng bao gồm các cột thông tin chi tiết.

● SoHoaDon: Số hóa đơn mà khách hàng đã có

● TongTien: Tổng số tiền khách hàng đã chi tiêu

BẢNG BÁO CÁO SỐ LƯỢNG MÓN ĂN BÁN ĐƯỢC

Dựa vào thông tin được cung cấp, đây là bảng báo cáo số lượng món ăn đã bán được Các cột trong bảng là:

● TongSoLuongDaBan: Tổng số lượng món ăn đã bán

Dựa trên bảng thống kê, có 10 món ăn được liệt kê với số lượng bán ra từ 1 đến 6 Trong đó, "Gỏi cuốn" dẫn đầu với 6 món được bán, tiếp theo là "Bún chả" với 5 món Ngược lại, "Bò bít tết" có số lượng bán ra thấp nhất chỉ với 1 món.

BÁO CÁO SỐ LẦN PHỤC VỤ BÀN CỦA NHÂN VIÊN

Bảng này chứa thông tin về số lần sử dụng bàn của từng nhân viên phục vụ Cụ thể, bảng này có hai cột:

 Cột "NhanVien" chứa tên của nhân viên phục vụ, được kết hợp từ họ đệm và tên của họ trong bảng "NhanVien".

 Cột "SoLanSuDungBan" chứa số lần sử dụng bàn của nhân viên đó, được tính bằng cách đếm số lần xuất hiện của mã bàn trong bảng "BanPhucVu".

BÁO CÁO SỐ LƯỢNG MÓN ĂN BÁN TRONG MỖI HÓA ĐƠN

Bảng này chứa thông tin về số lượng món ăn trong mỗi hóa đơn Cụ thể, bảng này có hai cột:

 Cột "MaHoaDon" chứa mã hóa đơn, đại diện cho mỗi hóa đơn trong danh sách.

 Cột "SoLuongMonAn" chứa số lượng món ăn trong từng hóa đơn.

Bảng dữ liệu này trình bày số lượng món ăn trong từng hóa đơn Chẳng hạn, hóa đơn mã 301 có 1 món ăn, và các hàng tiếp theo cũng thể hiện số lượng món ăn tương ứng với từng hóa đơn.

BÁO CÁO ĐƠN GIÁ TRUNG BÌNH CỦA MỖI MÓN ĂN

Bảng này chứa thông tin về tên món ăn và giá trung bình của từng món.

Cụ thể, bảng này có hai cột:

 Cột "TenMonAn" chứa tên của mỗi món ăn trong danh sách.

 Cột "DonGiaTrungBinh" chứa giá trung bình của từng món ăn.

Bảng dữ liệu này trình bày tên các món ăn cùng với giá trung bình tương ứng Chẳng hạn, món "Bò bít tết" có giá trung bình là 150,000 đồng Các hàng tiếp theo cũng liệt kê tên món ăn và giá trung bình của từng món ăn tương ứng.

BÁO CÁO SỐ LƯỢNG HÓA ĐƠN THEO NHÂN VIÊN

Bảng này là báo cáo về số lượng hóa đơn theo từng nhân viên

Cụ thể, bảng này có hai cột:

 Cột "NhanVien" chứa tên của từng nhân viên trong danh sách.

 Cột "SoLuongHoaDon" chứa số lượng hóa đơn mà mỗi nhân viên đã có.

Bảng dữ liệu trình bày số lượng hóa đơn của từng nhân viên, với ví dụ cụ thể là nhân viên "Phạm Đức Cường" có 3 hóa đơn Các hàng tiếp theo tiếp tục liệt kê tên nhân viên cùng số lượng hóa đơn tương ứng Đáng lưu ý, một số nhân viên không có hóa đơn nào, thể hiện bằng số lượng hóa đơn là 0.

BÁO CÁO SỐ BÀN THEO SỨC CHỨA

Bảng này là báo cáo về số lượng bàn theo sức chứa của chúng Cụ thể, bảng này có hai cột:

 Cột "SucChua" chứa sức chứa của từng bàn trong danh sách.

 Cột "SoLuongBan" chứa số lượng bàn có sức chứa tương ứng.

Dữ liệu trong bảng này cho thấy số lượng bàn theo sức chứa của chúng.

Ví dụ, hàng đầu tiên cho thấy có 3 bàn có sức chứa là 2 Tương tự, các hàng tiếp theo cho thấy số lượng bàn và sức chứa tương ứng.

BÁO CÁO SỐ LƯỢNG NGUYÊN LIỆU CỦA TỪNG NHÀ CUNG CẤP TenNhaCungCap TenNguyenLieu SoLuongNhap

Bảng dữ liệu trên cung cấp thông tin chi tiết về các nhà cung cấp, nguyên liệu và số lượng nhập của từng nguyên liệu Các cột bao gồm "Tên Nhà Cung Cấp", "Tên Nguyên Liệu" và "Số Lượng Nhập", giúp người đọc dễ dàng nắm bắt thông tin liên quan đến nguồn cung ứng và khối lượng nguyên liệu được nhập.

 "Tên Nhà Cung Cấp": Đây là cột chứa tên của nhà cung cấp Các nhà cung cấp được đánh dấu từ AA đến JJ.

Cột "Tên Nguyên Liệu" chứa danh sách các nguyên liệu mà nhà cung cấp đã nhập, bao gồm thịt bò, thịt gà, cá, tôm, bông cải xanh, cà rốt, hành tây, gừng, ớt và đường.

Cột "Số Lượng Nhập" ghi nhận số lượng nguyên liệu mà nhà cung cấp đã nhập, được đánh số theo đơn vị, ví dụ như 1 đơn vị.

DB ROLE VÀ USERS ỨNG VỚI DB ROLES

3 loại users sử dụng trong nhà hàng:

Mô tả Cơ Sở Dữ Liệu và Phân Quyền Truy Cập:

Nhóm chúng tôi đã thiết kế một cơ sở dữ liệu nhằm nâng cao tính bảo mật và tối ưu hóa quản lý người dùng Trong quá trình triển khai, chúng tôi áp dụng mô hình phân quyền dựa trên vai trò (DB roles) để kiểm soát quyền truy cập cho các thành viên trong tổ chức.

Nhân viên được phân loại theo vai trò, như nhân viên phục vụ và đầu bếp, nhằm cấp quyền truy cập vào các chức năng liên quan đến thực đơn và quản lý bàn.

 QuanLiRole: Được gán cho nhóm quản lý ( Quản lý nhà hàng, Chủ đầu tư) để quản lý hóa đơn và các tác vụ quản lý khác.

 KeToanRole: Được gán cho nhóm kế toán để quản lý các phiếu nhập và các tác vụ liên quan đến tài chính.

 NhanVien: Người dùng được gán cho vai trò Nhân Viên, có quyền truy cập vào các chức năng cần thiết để thực hiện các nhiệm vụ hàng ngày.

 QuanLi: Người dùng được gán cho vai trò Quản Lý, có quyền truy cập vào các chức năng quản lý, đảm bảo kiểm soát cao cấp.

 KeToanr: Người dùng được gán cho vai trò Kế Toán, có quyền truy cập vào các chức năng liên quan đến quản lý tài chính và phiếu nhập.

Việc này cho phép chúng tôi quản lý và kiểm soát quyền truy cập của từng nhóm người dùng trong hệ thống cơ sở dữ liệu, đồng thời nâng cao tính linh hoạt và bảo mật cho hệ thống.

 NhanVienRole: Được cấp quyền SELECT, INSERT, UPDATE, DELETE trên bảng Menu và các đối tượng liên quan.

 QuanLiRole: Được cấp quyền SELECT, INSERT, UPDATE, DELETE trên bảng HoaDon và các chức năng quản lý khác.

 KeToanRole: Được cấp quyền SELECT, INSERT, UPDATE, DELETE trên bảng PhieuNhap và các chức năng liên quan.

Việc này cho phép chúng tôi duy trì kiểm soát chặt chẽ và đồng nhất về quyền truy cập, từ đó giảm thiểu rủi ro bảo mật và bảo đảm tính toàn vẹn của dữ liệu.

THỰC THỂ

 Menu - Thực đơn (các món ăn)

 ChiTietHoaDon - Chi tiết các món trong hóa đơn

 ChiTietPhieuNhap - Chi tiết phiếu nhập hàng

THUỘC TÍNH

 Khách Hàng: Mã Khách Hàng, Họ Tên Đệm, Tên, Số Điện Thoại, Email.

 Nhân Viên: Mã Nhân Viên, Họ Tên Đệm, Tên, Chức Vụ, Số điện thoại,

 Menu: Mã Món Ăn, Tên Món Ăn, Mô Tả, Đơn Giá.

 Hóa Đơn: Mã Hóa Đơn, Mã Nhân Viên, Mã Khách Hàng, Ngày Lập, Tổng

 Chi Tiết Hóa Đơn: Mã Chi Tiết, Mã Hóa Đơn, Mã Món Ăn, Số Lượng, Đơn Giá, Thành Tiền.

 Bàn: Mã Bàn, Tên Bàn, Sức Chứa.

 Bàn phục vụ: Mã Bàn, Mã Nhân Viên.

 Nguyên Liệu: Mã Nguyên Liệu, Tên Nguyên Liệu, Số Lượng Tồn Kho.

 Nhà Cung Cấp: Mã Nhà Cung Cấp, Tên Nhà Cung Cấp, Người Liên Hệ,

 Phiếu Nhập: Mã Phiếu Nhập, Ngày Nhập, Mã Nhà Cung Cấp, Mã Nhân

 Chi Tiết Phiếu Nhập: Mã Phiếu Nhập, Mã Nguyên Liệu, Số Lượng, Đơn

MỐI QUAN HỆ

Ở đây có 2 mối quan hệ thường có phổ biến như sau:

 Một Nhân viên có thể liên kết với nhiều Hóa đơn, nhưng mỗi Hóa đơn chỉ thuộc về một Nhân viên (1:N).

 Một Khách hàng có thể liên kết với nhiều Hóa đơn, nhưng mỗi Hóa đơn chỉ thuộc về một Khách hàng (1:N).

 Một Nhân viên có thể liên kết với nhiều Phiếu nhập, nhưng mỗi Phiếu nhập chỉ thuộc về một Nhân viên (1:N).

 Một Nhà cung cấp có thể liên kết với nhiều Phiếu nhập, nhưng mỗi Phiếu nhập chỉ thuộc về một Nhà cung cấp (1:N).

 Một Bàn có thể liên kết với nhiều Bàn phục vụ, nhưng mỗi Bàn phục vụ chỉ thuộc về một Bàn (1:N).

Một Món ăn có thể xuất hiện trong nhiều Chi tiết hóa đơn, và một Chi tiết hóa đơn có thể chứa nhiều Món ăn (N:M).

Một Nhân viên có thể phục vụ nhiều Bàn, và một Bàn có thể được phục vụ bởi nhiều Nhân viên (N:M).

Một Người liên hệ có thể liên kết với nhiều Nhà cung cấp, và một Nhà cung cấp có thể có nhiều Người liên hệ (N:M).

Một Nguyên liệu có thể xuất hiện trong nhiều Chi tiết phiếu nhập, và một Chi tiết phiếu nhập có thể chứa nhiều Nguyên liệu (N:M).

XÁC ĐỊNH KHOÁ CHÍNH

Dựa vào các thực thể và các thuộc tính được cung cấp, các khoá chính của các thực thể như sau:

 Khách Hàng: Mã Khách Hàng

 Nhân Viên: Mã Nhân Viên

 Hóa Đơn: Mã Hóa Đơn

 Chi Tiết Hóa Đơn: Mã Hóa Đơn,

 Bàn phục vụ: Mã Bàn

 Nguyên Liệu: Mã Nguyên Liệu

 Nhà Cung Cấp: Mã Nhà Cung Cấp

 Phiếu Nhập: Mã Phiếu Nhập

 Chi Tiết Phiếu Nhập: Mã Phiếu Nhập

CÁC BẢNG DỮ LIỆU

BẢNG CHI TIẾT HÓA ĐƠN

BẢNG CHI TIẾT PHIẾU NHẬP

CHUYỂN HÓA SƠ ĐỒ ERD SANG RM

 Khách Hàng: (Mã Khách Hàng, Họ Tên Đệm, Tên, Số Điện Thoại, Email)

 Nhân Viên: (Mã Nhân Viên, Họ Tên Đệm, Tên, Chức Vụ, Số điện thoại,

 Menu: (Mã Món Ăn, Tên Món Ăn, Mô Tả, Đơn Giá)

 Hóa Đơn: (Mã Hóa Đơn, @Mã Nhân Viên, @Mã Khách Hàng, Ngày Lập,

 Chi Tiết Hóa Đơn: ( @Mã Hóa Đơn, @Mã Món Ăn, Số Lượng, Đơn Giá,

 Bàn: (@Mã Bàn, Tên Bàn, Sức Chứa)

 Bàn phục vụ: (@Mã Bàn, @Mã Nhân Viên)

 Nguyên Liệu: (@Mã Nguyên Liệu, Tên Nguyên Liệu, Số Lượng Tồn Kho)

 Nhà Cung Cấp: (@Mã Nhà Cung Cấp, Tên Nhà Cung Cấp, Người Liên Hệ,

 Phiếu Nhập: (@Mã Phiếu Nhập, Ngày Nhập, Mã Nhà Cung Cấp, Mã Nhân

 Chi Tiết Phiếu Nhập: (@Mã Phiếu Nhập, @Mã Nguyên Liệu, Số Lượng, Đơn Giá)

CHUẨN HOÁ DỮ LIỆU SANG CHUẨN 3N

Các biểu đồ phụ thuộc

Điều kiện chuẩn hoá 1NF

Điều kiện chuẩn hoá 1NF

 Mỗi giá trị không chứa các nhóm lặp.

 Không có thuộc tính đa trị.

 Các trường không thể chia nhỏ được nữa.

Các bảng nhóm tôi đã tạo đều đáp ứng đầy đủ các tiêu chí của chuẩn 1NF, bao gồm việc không có nhóm lặp, không có thuộc tính đa trị và không có trường nào có thể bị chia nhỏ.

3.Điều kiện chuẩn hoá 2NF

3.1 Điều kiện đạt chuẩn 2NF:

 Các thuộc tính không khóa phải phụ thuộc hoàn toàn vào khóa chính.

Các bảng của nhóm tôi thỏa mãn điều kiện 2NF vì các thuộc tính không khóa đều phụ thuộc hoàn toàn vào khóa chính.

4.Điều kiện chuẩn hoá 3NF

4.1 Điều kiện đạt chuẩn 3NF:

 Không còn phụ thuộc hàm bắc cầu.

Các bảng nhóm tôi đã tạo vẫn thỏa mãn điều kiện 3NF vì không có phụ thuộc hàm bắc cầu.

XÂY DỰNG CSDL TRÊN MYSQL

Tạo bảng trên các thực thể được xác định

CREATE TABLE KhachHang ( MaKhachHang INT PRIMARY KEY, HoTenDem NVARCHAR(50), Ten NVARCHAR(50),

MaNhanVien INT PRIMARY KEY, HoTenDem NVARCHAR(50), Ten NVARCHAR(50),

MaMonAn INT PRIMARY KEY, TenMonAn NVARCHAR(100), MoTa NVARCHAR(255),

MaBan INT PRIMARY KEY, TenBan NVARCHAR(50),

FOREIGN KEY (MaBan) REFERENCES Ban (MaBan),

FOREIGN KEY (MaNhanVien) REFERENCES NhanVien (MaNhanVien)

FOREIGN KEY (MaNhanVien) REFERENCES NhanVien (MaNhanVien),

FOREIGN KEY (MaKhachHang) REFERENCES KhachHang (MaKhachHang) );

FOREIGN KEY (MaNhaCungCap) REFERENCES NhaCungCap (MaNhaCungCap), FOREIGN KEY (MaNhanVien) REFERENCES NhanVien (MaNhanVien)

FOREIGN KEY (MaHoaDon) REFERENCES HoaDon (MaHoaDon),

FOREIGN KEY (MaMonAn) REFERENCES Menu (MaMonAn)

FOREIGN KEY (MaPhieuNhap) REFERENCES PhieuNhap (MaPhieuNhap), FOREIGN KEY (MaNguyenLieu) REFERENCES NguyenLieu (MaNguyenLieu));

XÂY DỰNG CÁC THAO TÁC NGHIỆP VỤ

1 TỔNG DOANH THU THEO THÁNG

SELECT YEAR(NgayLap) AS Nam, MONTH(NgayLap) AS Thang, SUM(TongTien) AS DoanhThu

GROUP BY YEAR(NgayLap), MONTH(NgayLap)

The stored procedure TongDoanhThuTheoThang in SQL Server is designed to query data from the HoaDon table and generate a report of total revenue by month and year Its operation involves several key steps to efficiently retrieve and present the desired financial information.

The stored procedure begins by utilizing the SELECT statement to query data from the HoaDon table It then employs the YEAR and MONTH functions to extract information regarding the year and month from the NgayLap column.

- Tiếp theo, stored procedure tính tổng doanh thu của mỗi tháng bằng cách sử dụng hàm SUM trên cột TongTien.

Stored procedure nhóm kết quả theo năm và tháng bằng cách sử dụng câu lệnh GROUP BY, đồng thời sắp xếp kết quả theo thứ tự tăng dần của năm và tháng thông qua câu lệnh ORDER BY.

Stored procedure TongDoanhThuTheoThang cung cấp một bảng báo cáo chi tiết với các cột bao gồm năm, tháng và tổng doanh thu hàng tháng Bảng báo cáo này được sắp xếp theo thứ tự tăng dần của năm và tháng, giúp người dùng dễ dàng theo dõi và phân tích doanh thu của cửa hàng theo từng tháng và năm.

2 BÁO CÁO SỐ LƯỢNG HÓA ĐƠN VÀ DOANH THU CỦA TỪNG KHÁCH HÀNG

Stored procedure BaoCaoSoLuongHoaDonVaDoanhThuCuaTungKhachHang trong SQL Server được thiết kế để truy vấn dữ liệu từ bảng KhachHang và HoaDon Nó trả về một bảng báo cáo với thông tin về số lượng hóa đơn và tổng doanh thu của từng khách hàng Quy trình hoạt động của stored procedure này bao gồm nhiều bước để đảm bảo tính chính xác và hiệu quả trong việc thu thập dữ liệu.

First, the stored procedure utilizes the SELECT statement to query data from the Customer table It then employs a LEFT JOIN to combine information from the Invoice table with the Customer table based on the CustomerID field.

- Tiếp theo, sử dụng hàm COUNT để đếm số lượng hóa đơn của mỗi khách hàng và hàm SUM để tính tổng doanh thu của mỗi khách hàng.

- Sau đó, stored procedure nhóm kết quả theo mã khách hàng, họ tên đệm và tên khách hàng bằng cách sử dụng câu lệnh GROUP BY.

Kết quả cuối cùng được sắp xếp theo thứ tự giảm dần của tổng doanh thu từng khách hàng thông qua câu lệnh ORDER BY Khi stored procedure được gọi, nó sẽ trả về bảng báo cáo với các cột bao gồm mã khách hàng, tên khách hàng, số lượng hóa đơn và tổng doanh thu Bảng báo cáo này hỗ trợ người dùng trong việc theo dõi và phân tích doanh thu của từng khách hàng, với khách hàng có tổng doanh thu cao nhất được hiển thị ở vị trí đầu tiên.

3 BÁO CÁO SỐ LƯỢNG MÓN ĂN BÁN ĐƯỢC TRONG MỖI HÓA ĐƠN

COUNT(CHD.MaMonAn) AS SoLuongMonAn

INNER JOIN ChiTietHoaDon CHD ON H.MaHoaDon = CHD.MaHoaDon

SELECT * FROM dbo.GetMonAnCountByHoaDon(); Đầu tiên, function sử dụng câu lệnh SELECT để truy vấn dữ liệu từ bảng

HoaDon Sau đó, sử dụng câu lệnh INNER JOIN để kết hợp dữ liệu từ bảng

ChiTietHoaDon với bảng HoaDon dựa trên trường MaHoaDon.

- Tiếp theo, sử dụng hàm COUNT để đếm số lượng món ăn trong mỗi hóa đơn.

- Sau đó, function nhóm kết quả theo mã hóa đơn bằng cách sử dụng câu lệnh GROUP BY.

Khi được gọi, hàm sẽ trả về một bảng kết quả với các cột bao gồm mã hóa đơn và số lượng món ăn trong mỗi hóa đơn Bảng này cung cấp thông tin chi tiết

4 BÁO CÁO SỐ LƯỢNG HÓA ĐƠN THEO NHÂN VIÊN

NV.HoTenDem + ' ' + NV.Ten AS NhanVien,

LEFT JOIN HoaDon H ON NV.MaNhanVien = H.MaNhanVien

The function retrieves data from the NhanVien table using a SELECT statement It then combines this data with additional information through a LEFT JOIN operation.

HoaDon với bảng NhanVien dựa trên trường MaNhanVien.

- Tiếp theo, sử dụng hàm COUNT để đếm số lượng hóa đơn của mỗi nhân viên.

- Sau đó, function nhóm kết quả theo tên đệm và tên của nhân viên bằng cách sử dụng câu lệnh GROUP BY.

Khi hàm được gọi, nó sẽ trả về bảng kết quả gồm tên đệm, tên nhân viên và số lượng hóa đơn mà từng nhân viên đã xử lý Bảng kết quả này cung cấp thông tin chi tiết về hiệu suất công việc của từng nhân viên, giúp người dùng dễ dàng theo dõi và phân tích số lượng hóa đơn.

5 BẢNG BÁO CÁO CHI TIẾT HÓA ĐƠN

SET TongTien = (SELECT SUM(ThanhTien) FROM dbo.ChiTietHoaDon WHERE MaHoaDon = inserted.MaHoaDon) FROM HoaDon

INNER JOIN inserted ON HoaDon.MaHoaDon = inserted.MaHoaDon;

INSERT INTO ChiTietHoaDon (MaHoaDon, MaMonAn, SoLuong, ThanhTien, DonGia)

SUM(CHD.SoLuong) AS TongSoLuong

ChiTietHoaDon AS CHD ON M.MaMonAn = CHD.MaMonAn JOINN

HoaDon AS HD ON CHD.MaHoaDon = HD.MaHoaDon

MONTH(HD.NgayLap) = MONTH(GETDATE()) AND

YEAR(HD.NgayLap) = YEAR(GETDATE())

Ngày đăng: 03/01/2024, 13:50

TỪ KHÓA LIÊN QUAN

w