Vì vậy việc áp dụng công nghệ thông tin, đưa hệ thông quản lý tiệc cưới là một nhu cầu thiết yếu, nó giúp cho người quản lý thu hẹp được không gian lưu trữ, trách được thất lạc dữ liệu,
MÔ TẢ ĐỀ TÀI
Giới thiệu tổng quan
Doanh nghiệp nhà hàng ASIANA PLAZA tọa lạc trên 45-47 Phan Đăng Luu, Phường 3, Quận Bình Thạnh, Thành phố Hồ Chí Minh Trải qua quá trình hoạt động và phát triển, hiện nay doanh nghiệp đã mở rộng về quy mô lẫn chi nhánh trong lĩnh vực nhà hàng tiệc cưới, sự kiện.
Lĩnh vực hoạt động
Doanh nghiệp nhà hàng ASIANA PLAZA là trung tâm tổ chức mọi hoạt động như:
- Tổ chức tiệc cưới, tiệc báo hủy, tiệc đính hôn
- Tổ chức tiệc thôi nôi, sinh nhật
- Tổ chức tiệc doanh nghiệp, sự kiện, workshop
Quy trình hoạt động
Khách hàng đến đặc tiệc cưới, nhân viên Sale sẽ tiếp khách và tư vấn cho khách để đặc tiệc Nhân viên Sale sẽ tiếp nhận yêu cầu đặt tiệc của khách gồm (Tên khách hàng, số điện thoại, thông tin về tiệc,…) Sau đó nhân viên Sale sẽ tra cứu thông tin sảnh để xem ngày mà khách đặt có bị trùng với tiệc khác hay không, nếu có thì báo cáo cho khách hàng để đổi lại thông tin Sau đó thiết lập menu món ăn, dịch vụ, cho buổi tiệc theo yêu cầu khách Sau khi hoàn tất các công việc trên, nhân viên Sale lưu lại thông tin tiệc Nhân viên Sale lập hợp đồng cho khách và sau đó viết phiếu thu, hóa đơn cho khách
Nhân viên Sale gửi giấy xuất kho xuống kho, thủ kho sẽ kiểm tra, để thực hiện quá trình xuất nhập kho chuẩn bị trước tiệc
Trước ngày diễn ra tiệc, khách hàng vẫn có thể hủy tiệc nhưng phải chịu đền bù theo các khoản trong hợp đồng
Trong quá trinh diễn ra tiệc, căn cứ theo kế hoạch phòng ban đưa ra, bộ phận bếp cũng như điều phối thực hiện tốt chức năng của mình
Sau khi tiệc kết thúc, khách hàng phải thanh toán toàn bộ chi phí, thanh toán trễ sẽ chịu phạt theo hợp đồng ban đầu
Khảo sát hiện trạng
1.4.1 Khảo sát đặt tiệc Việt
Khảo sát hiện trạng 1 Khảo sát đặ ệc Việtt ti
• Thông tin lưu trữ o Hình ảnh o Tên nhà hàng tiệc cưới o Địa chỉ o Mô tả
• Chức năng o Chọn xe chi tiết nhà hàng o Liên hệ - báo giá
Khảo sát hiện trạng 2 Khảo sát đặ ệc Việt ti t 2
• Thông tin lưu trữ oThông tin khuyến mãi
▪ Các sản phẩm tặng thêm đi kèm
▪ Tên chương trình khuyến mãi o Thông tin nhà hàng
▪ Thông tin chi tiết nhà hàng
• Chức năng o Like o Share o Liên hệ - Báo giá
Khảo sát hiện trạng 3 Khảo sát đặ ệc Việt ti t 3
• Thông tin lưu trữ o Họ tên o Email o Điện thoại o Yêu cầu thêm nếu có
• Chức năng o Gửi o Click để gọi
Khảo sát hiện trạng 4 Khảo sát Adora Wedding
• Thông tin lưu trữ o Hình ảnh o Tên nhà hàng o Địa chỉ
• Chức năng o Xem chi tiết nhà hàng
Khảo sát hiện trạng 5 Khảo sát Adora Wedding2
• Thông tin tiệc o Hình ảnh nhà hàng o Địa chỉ o Thông tin nhà hàng
• Chức năng o Xem bản đồ o Xem chi tiết nhà hàng o Đặt tiệc
Khảo sát hiện trạng 6 Khảo sát Adora Wedding3
• Thông tin lưu trữ o Thông tin liên hệ
▪ Công ty o Thông tin sự kiện
▪ Tổ chức tại trung tâm
• Chức năng o Gửi thông tin
1.4.3 Khảo sát DinKy Bình Dương
Khảo sát hiện trạng 7 Khảo sát DinKy Bình Dương
• Thông tin lưu trữ o Hình ảnh o Nhà hàng liên quan o Thông tin nhà hàng
▪ Message o Xem chi tiết nhà hàng
Khảo sát hiện trạng 8 Khảo sát DinKy Bình Dương2
• Thông tin lưu trữ o Họ và tên o Điện thoại o Ngày đặt o Email o Số lượng người o Thời gian o Lời nhắn
Yêu cầu tìm kiếm
Yêu cầu tìm kiếm Thao tác Điều hướng
Tìm kiếm theo danh mục Chọn danh mục Chuyển đến giao diện danh mục
Tìm kiếm theo từ khóa Nhập từ khóa tìm kiếm:
Dịch vụ, món ăn, thực đơn,
Hiển thị danh sách các thàn phliên quan
CƠ SỞ LÝ THUYẾT
Mô hình ERD
Mô hình quan hệ thực thể (Entity Relationship diagram),là một trong các bản thiết kế cơ sở dữ liệu ở mức khái niệm, được xây dựng dựa trên việc nhận thức thế giới thực thông qua mô tả các đặc điểm trong đối tượng được gọi là các thực thể và các mối quan hệ giữa các đối với nhau
Biểu diễn 1 lớp khái niệm trong thế giới thực
➢ Trực quan o Con người: nhân viên, sinh viên, khách hàng… o Nơi chốn: phòng học, chi nhánh, văn phòng… o Đối tượng: sách, máy móc, sản phẩm, xe… o Sự kiện: đăng ký, bán hàng, đặt trước, yêu cầu
➢ Không trực quan o Tài khoản, thời gian, khóa học, khả năng, nguồn vốn…
➢ Biểu diễn sự kết hợp hệ ngữ nghĩa giữa 2 hay nhiều thực thể
➢ Mối quan hệ vật lý
➢ Biểu diễn ngữ nghĩa của một thực thể tham gia vào mối kết hợp
➢ Ràng buộc về số lượng các thực thể tham gia vào mối kết hợp
➢ Ký hiệu bởi 1 cặp (min, max) o Min : qui định giá trị tối thiểu các thực thể khi tham gia vào mối kết hợp o Giá trị đi từ 0, 1, 2, … đến k (k là hằng số) o Max : qui định giá trị tối đa các thực thể khi tham gia vào mối kết hợp o Giá trị đi từ 1, 2, … đến n
➢ Phân loại: o Một – Một o Một – Nhiều o Nhiều – Một o Nhiều – Nhiều
➢ Thể hiện của thực thể oSự xuất hiện cụ thể của các phần tử
➢ Thể hiện của mối kết hợp oTổ hợp không trùng lắp các thực thể tham gia vào mối kết hợp
➢ Biểu diễn đặc trưng của o Thực thể o Mối kết hợp
Phụ thuộc hàm
Cho R(U), với R là quan hệ và U là tập thuộc tính
Cho X,Y ⊆U, phụ thuộc hàm X → Y (đọc là X xác định Y) được định nghĩa là:
Cách đọc: X xác định Y hay Y phụ thuộc hàm vào X
X gọi là vế trái của PTH, Y là vế phải của PTH
Phụ thuộc hàm thường được ký hiệu là FD hay F (Functional Dependencies)
➢ Luật phản xạ: Nếu Y X thì X Y
➢ Luật bổ sung - tăng trưởng: Nếu X Y thì XZ YZ
➢ Luật bắc cầu: Nếu X Y và Y Z thì X Z
➢ Luật hợp: Nếu X Y và X Z thì X YZ
➢ Luật tách: Nếu X Y và Z Y thì X Z
➢ Luật tựa bắc cầu: Nếu X Y và WY Z thì XW Z
Các dạng chuẩn
• 1NF(First Normal Form) Định nghĩa:
Một bảng (quan hệ) được gọi là ở dạng chuẩn 1NF nếu và chỉ nếu toàn bộ các miền giá trị của các cột có mặt trong bảng (quan hệ) đều chỉ chứa các giá trị nguyên tử (nguyên tố)
Một quan hệ ở dạng chuẩn 2NF nếu quan hệ đó:
Là 1NF các thuộc tính không khoá phải phụ thuộc hàm đầy đủ vào khoá chính
Một quan hệ ở dạng chuẩn 3NF nếu quan hệ đó:
Là 2NF các thuộc tính không khoá phải phụ thuộc trực tiếp vào khoá chính BCNF(Boyce Cold Normal Form) Định nghĩa:
Một quan hệ ở dạng chuẩn BCNF nếu quan hệ đó:
Là 3NF không có thuộc tính khoá mà phụ thuộc hàm vào thuộc tính không khoá.
Bảo toàn thông tin
Bảo mật cơ sở dữ liệu là những biện pháp, những cách thức khác nhau mà các doanh nghiệp, tổ chức áp dụng và thực hiện để bảo vệ hệ thống an toàn thông tin cũng như cơ sở dữ liệu của mình khỏi các mối đe doạ từ những cuộc tấn công an ninh mạng cả bên ngoài và bên trong cũng như thực thi các giải pháp data loss prevention nhằm ngăn chặn dữ liệu bị đánh cắp.
Lập trình CSDL
• Khi đã có cơ sở dữ liệu, người dùng sẽ quan tâm đến phương pháp sử dụng cơ sở dữ liệu ấy
• Đa phần, các hệ thống cơ sở dữ liệu đều có giao diện tương tác người dùng (interactive interface ) đẽ gõ lệnh SQL và thực hiện truy xuất dữ liệu bằng SQL
• Tuy nhiên, trong thực tế, người dùng thường tương tác với CSDL thông qua các phần mềm ứng dụng (application programs) hay còn gọi là ứng dụng truy xuất CSDL.
Ràng buộc toàn vẹn
Ràng buộc toàn vẹn dữ liệu là các quy tắc trong một cơ sở dữ liệu nhằm kiểm tra tính đúng đắn và hợp lệ của dữ liệu trước khi lưu trữ
➢ Đảm bảo tính nhất quán của cơ sở dữ liệu
➢ Đảm bảo cơ sở dữ liệu luôn biểu diễn đúng ngữ nghĩa thực tế
➢ Loại đơn giản: được mô tả bằng Constraint o Constraint là những quy tắc được áp dụng trên các cột dữ liệu, trên bảng Được sử dụng để kiểm tra tính hợp lệ của dữ liệu vào, đảm bảo tính chính xác, tính toàn vẹn của dữ liệu, bao gồm(not null, default, unique, PK, FK, check)
➢ Loại phức tạp: được mô tả bằng Trigger o Trigger là một dạng đặc biệt của thủ tục lưu trữ và thực thi tự động khi người dùng áp dụng câu lệnh cập nhật dữ liệu lên một table chỉ định nhằm mục đích đảm bảo tính toàn vẹn dữ liệu Nếu trigger bị vi phạm, câu lệnh sẽ không được thực thi o Phân loại:
❖ Liên bộ trên một quan hệ.
❖ Liên thuộc tính trong cùng một quan hệ
❖ Liên thuộc tính của nhiều quan hệ
❖ Liên bộ liên quan hệ
❖ Liên bộ trên một quan hệ
❖ Liên thuộc tính trong một quan hệ
❖ Liên thuộc tính của nhiều quan hệ.
NoSQL và NewSQL
• NoSQL viết tắt của từ Not nly O SQL
➢ Hệ thống lưu trữ dữ liệu không quan hệ.
➢ Thường không yêu cầu một lược đồ bảng cố định và họ cũng không sử dụng phép kết nối
➢ Không đảm bảo ràng buộc tính ACID
➢ Wide Column Store / Column Families o Hệ cơ sở dữ liệu cho phép truy xuất ngẫu nhiên/tức thời với khả năng lưu trú một lượng lớn dữ liệu có cấu trúc o Tập hợp các columns Mỗi row trong 1 column family bao gồm key và các column gắn liền với key đó Column family sẽ được sắp xếp theo key
➢ Document Store o Tổ chức tự do không theo một lược đồ nào cả (schema-free) o Mỗi bản ghi không cần phải có cấu trúc cố định, các bản ghi khác nhau có thể có nhiều cột khác nhau o Loại dữ liệu trong mỗi cột giữa các bản ghi cũng có thể khác nhau o Một cột có thể có nhiều hơn một giá trị (mảng – array) o Các bản ghi có thể có cấu trúc lồng nhau (trong một bản ghi chứa một hoặc nhiều bản ghi khác nested structure) – o Một số sản phẩm tiêu biểu: MongoDB, Elasticsearch, Couchbase Server, CouchDB, RethinkDB,
➢ Key Value / Tuple Store o Mô hình lưu trữ dữ liệu dưới dạng cặp giá trị key value trong đó việc truy uất, xóa, - x cập nhật giá trị thực thông qua key tương ứng o Với sự hỗ trợ của các kĩ thuật Btree, B+Tree, Hash,… dữ liệu có thể tồn tại trên RAM hoặc ổ cứng, phân tán hoặc không phân tán o Các sản phẩm thông dụng: DynamoDB, Azure Table Storage, Riak, Redis,…
➢ Graph Databases o Cơ sở dữ liệu được thiết kế riêng cho việc lưu trữ thông tin đồ thị như cạnh, nút hay thuộc tính o Một số sản phẩm tiêu biểu như: Neo4j, Infinite Graph, InfoGrid, HyperGraphDB, Dex, GraphBase, …
• NewSQL là một lớp hệ thống quản lý cơ sở dữ liệu quan hệ nhằm cung cấp khả năng mở rộng của hệ thống NoSQL cho khối lượng công việc xử lý giao dịch trực tuyến trong khi vẫn duy trì các đảm bảo ACID của hệ thống cơ sở dữ liệu truyền thống
✓ Giảm độ phức tạp cho app nhờ tính nhất quán
✓ Tính năng SQL quen thuộc
✓ Phục vụ phân tích tốt hơn và khả năng mở rộng tốt hơn SQL
✓ Nhiều hệ thống cung cấp phân kiểu NoSQL nhưng theo kiểu data truyền thống và query model
ÁP DỤNG THỰC NGHIỆM
Mô tả yêu cầu bài toán
Doanh nghiệp nhà hàng tiệc cưới hiện đang cần một hệ thống có thể quản lý được toàn bộ việc kinh doanh, quản lí của nhà hàng Yêu cầu đặt ra cần phải thực hiện được các thao tác thêm sửa, xóa, tìm kiếm đối với các đối tượng cần lưu trữ thông tin liên quan đến nhà hàng Để làm được điều này, trước tiên cần xây dựng được hệ cơ sở dữ liệu để quản lý toàn bộ dữ liệu của nhà hàng
Phân tích yêu cầu
Người được phỏng vấn: 1 người quản lý tại nhà hàng tiệc cưới
Nhà hàng có chia ra thành các bộ phận cụ thể không?
Nhà hàng được chia ra nhiều bộ phận như: quản lý, nhân viên sale, nhân viên kho, trưởng nhân sự, kế toán,
Khi khách đặt tiệc thì mình có ghi nhận thông tin khách hàng không? Và bằng cách nào?
Có chứ, chúng tôi ghi nhận thông tin khách hàng như tên, số điện thoại, số CMND/CCCD,…
Thái độ rất chắc chắn
Việc đặt tiệc diễn ra như thế nào? Nếu tôi là khách hàng đến đặt tiệc thì nhân viên nhà hàng sẽ thực hiện công việc gì
Khi khách đến đặt tiệc, nhân viên sale sẽ ghi lại thông tin đặt tiệc của khách, sau đó kiểm tra ngày đặt tiệc mà khách yêu cầu xem có trống sảnh hay không, nếu có thì tiến hành kí hợp đồng với khách, nếu không thì yêu cầu khách đổi qua ngày khác
Thái độ rất chắc chắn
Nhà hàng có ghi nhận những thông tin gì của dịch vụ, món ăn, để quản lý không?
Mỗi dịch vụ hay món ăn sẽ có tên gọi, mã và đơn giá,…
Có nhân viên nào được quản lý bởi nhiều phòng ban không?
Không, mỗi nhân viên sẽ do một phòng ban quản lý
Trong hóa đơn thường ghi nhận những thông tin gì?
Mỗi hóa đơn sẽ lưu lại nơi xuất hóa đơn, ngày giờ xuất, mã hóa đơn, mã đơn hàng, tên nhân viên xuất, tên khách hàng, số điện thoại của khách, danh sách hàng hóa họ mua, số tiền tổng, tiền được giảm và cuối cùng là số tiền họ phải trả
Câu hỏi 7: Điều mà anh muốn nhất khi sở hữu một hệ thống quản lý tiệc cưới là gì?
Trả lời: Đó là việc quản lí các tiệc cưới Khi đó để dễ dàng xem theo dõi được tiệc nào đã diễn ra và chưa diễn ra
Công ty anh có bao nhiêu phò ban?
Công ty tôi có nhiều phòng ban khác nhau
Kết quả khảo sát: Thái độ chắc chắn
Một phòng ban của công ty anh có nhiều chức vụ không?
Có thể, mỗi phòng ban có thể có nhiều chức vụ hay một chức vụ
Kết quả khảo sát: Thái độ chắc chắn
Anh có lưu trữ thông tin của nhân viên hay không?
Có chứ, nhân viên sẽ được lưu trữ mã nhân viên, giới tính, ngày sinh, số điện thoại, tên
Kết quả khảo sát: Thái độ chắc chắn
Nhân viên của anh có hợp đồng làm việc không?
Có, sau khi lập hợp đồng, chúng tôi lưu trữ mã hợp đồng, loại hợp đồng, ngày lập hợp đồng của nhân viên đó Kết quả khảo sát: Thái độ chắc chắn
Anh xóa nhân viên bằng cách nào
Tôi sẽ truy cập vào hệ thống của công ty, sau đó thao tác xóa Dữ liệu của nhân viên đó sẽ được xóa bên trong Database
Kết quả khảo sát: Thái độ chắc chắn
Từ các câu hỏi phỏng vấn, tổng hợp thông tin ta được các chức năng
Nhận thông tin đặt tiệc Quản lý đặt tiệc
Lưu thông tin khách hàng
Tiếp nhận phiếu yêu cầu xuất kho Quản lý xuất, nhập kho
Phân công vào tiệc Quản lý nhân sự
Lập phiếu lương nhân viên
Lập hợp đồng lao đông nhân viên
Quản lý thông tin nhân viên
- Hệ thống phải hoạt động 24h/7
- Người dùng cần nhiều nhất học theo tài liệu hướng dẫn trong 2 giờ để sử dụng được hệ thống
- Thời gian hỏng hóc cần bảo trì nhiều nhất là 20 giờ
- Hệ thống phải luôn sẵn sàng 99,3% thời gian.
Thiết kế
ERD 1 Quy trình đặt tiệc
3.3.1.2 Quy trình thiết lập nhân sự
ERD 2 Quy trình thiế ập nhân sựt l
3.3.1.3 Quy trình xuất nhập kho
ERD 3 Quy trình xuất nhập kho
Chuyển đổi từ ERD sang sơ đồ quan hệ:
- Đối với quan hệ 1 1, chuyển khóa chính quan hệ bất kì sang làm khóa ngoại bên quan hệ bất - kì
- Đối với quan hệ 1 N, chuyển khóa chính quan hệ 1 sang làm khóa ngoại bên quan hệ N-
- Đối với quan hệ N N, tạo 1 quan hệ mới bao gồm khóa chính 2 quan hệ, kèm theo các thuộc - tính đi kèm nếu có
DichVu(MaDV, TENDV, GIADV, MATIEC)
KhachHang(MAKH, TENKH, DIACHIKH, SDTKH)
NhanVien(MANV, TENNV, SDTNV, CHUCVU, MABOPHAN)
HopDong(MAHOPDONG, TRANGTHAI, MAKH, MANV)
Tiec(MATIEC, TENCODAU, TENCHURE, SOLUONGKHACH, NGAYTOCHUC, DIADIEMTOCHUC, MATHUCDON, MAKH)
HoaDon(MAHOADON, HINHTHUC, PHIPHATSINH, TONGTHANHTOAN, MANV, MAKH)
Sơ đồ quan hệ 1 Sơ đồ quan hệ quy trình đặt tiệc
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MAMONAN Mã món ăn Varchar(10) Khóa chính
TENMONAN Tên món ăn Nvarchar(30)
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MATHUCDON Mã thực đơn Varchar(10) Khóa chính
TEN Tên thực đơn Int
SLMON Số lượng món Int
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MADICHVU Mã dịch vụ Varchar(10) Khóa chính
TENDICHVU Tên dịch vụ Nvarchar(30)
GIADICHVU Giá dịch vụ Int
MATIEC Mã tiệc Varchar(10) Khóa ngoại
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MAKH Mã khách hàng Varchar(10) Khóa chính
TENKH Tên Khách Hàng Nvarchar(30)
SDTKH Số điện thoại Int
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MANV Mã nhân viên Varchar(10) Khóa chính
TENNV Tên nhân viên Nvarchar(30)
SODIENTHOAINV Số điện thoại Int
SoCMND Số chứng minh nhân dân Int
MABOPHAN Mã bộ phận Varchar(10) Khóa ngoại
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MABOPHAN Mã bộ phận Varchar(10) Khóa chính
TENBOPHAN Tên bộ phận Nvarchar(30)
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MAHOADON Mã hóa đơn Varchar(10) Khóa chính
HINHTHUC Hình thức thanh toán Nvarchar(30)
PHIPHATSINH Phí phát sinh Int
TONGTHANHTOAN Tổng thanh toán Int
MAKH Mã khách hàng Varchar(10) Khóa ngoại
MANV Mã nhân viên Varchar(10) Khóa ngoại
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MAHOPDONG Mã hợp đồng Varchar(10) Khóa chính
MAKH Mã khách hàng Varchar(10) Khóa ngoại
MANV Mã nhân viên Varchar(10) Khóa ngoại
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MATIEC Mã tiệc Varchar(10) Khóa chính
NGAYTOCHUC Ngày tổ chức Datetime
SOLUONGKHACH Số lượng khách Int
TENCODAU Tên cô dâu Nvarchar(30)
TENCHURE Tên chú rễ Nvarchar(30)
MATHUCDON Mã thực đơn Varchar(10) Khóa ngoại
DIADIEMTOCHUC Địa điểm tổ chức Nvarchar(30)
MAKH Mã khách hàng Varchar(10) Khóa ngoại
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MAMONAN Mã món ăn Varchar(10) Khóa ngoại
MATHUCDON Mã thực đơn Varchar(10) Khóa ngoại
3.3.2.2 Quy trình thiết lập nhân sự
Ta có các bảng quan hệ sau :
• NhanVien(MaNV, TenNV, GioiTinh, NgaySinh, DiaChi)
• PhieuLuong(MaPL, TongLuong, PhuCap, NgayLapPhieu)
Chuyển đổi từ ERD sang sơ đồ quan hệ: Đối với quan hệ 1 N , chuyển khóa chính quan hệ 1 sang làm khóa ngoại bên quan hệ N- Đối với quan hệ N N , tạo 1 quan hệ mới bao gồm khóa chính 2 quan hệ, kèm theo các thuộc - tính đi kèm nếu có
NhanVien(MaNV, TenNV, GioiTinh, NgaySinh, DiaChi, MaPB, MaCD)
HopDong(MaHD, LoaiHD ,NgayLapHD, MaNV)
PhieuLuong(MaPL, TongLuong, PhuCap, NgayLapPhieu, MaCD)
BaoHiem(MaBH, LoaiBH ,NgayLapBH, MaNV)
Sơ đồ quan hệ 2 Sơ đồ quan hệ quy trình thiết lập nhân sự
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaNV Mã nhân viên Varchar(10) Khóa chính
TenNV Tên nhân viên Nvarchar(50)
MaCD Mã chức danh Varchar(10) Khóa phụ
MaPB Mã phòng ban Varchar(10) Khóa phụ
Bảng mô tả 1 Bảng mô tả nhân viên
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaHD Mã hợp đồng Varchar(10) Khóa chính
NgayLapHD Ngày lập hợp đồng Date
MaNV Mã nhân viên Varchar(10) Khóa phụ
Bảng mô tả 2 Bảng mô tả hợp đồng
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaPL Mã phiếu lương Varchar(10) Khóa chính
NgayLapPhieu Ngày lập phiếu Date
MaCD Mã chức danh Varchar(10) Khóa phụ
Bảng mô tả 3 Bảng mô tả Phiếu lương
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaCD Mã chức danh Varchar(10) Khóa chính
TeCD Tên chức danh Nvarchar(50)
MaPB Mã phòng ban Varchar(10) Khóa phụ
Bảng mô tả 4 Bảng mô tả chức danh
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaPB Mã phòng ban Varchar(10) Khóa chính
TenPB Tên phòng ban Nvarchar(50)
Bảng mô tả 5 Bảng mô tả phòng ban
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaBH Mã bảo hiểm Varchar(10) Khóa chính
LoaiBH Loại bảo hiểm Nvarchar(50)
NgayLapBH Ngày lập bảo hiểm Date
MaNV Mã nhân viên Varchar(10) Khóa phụ
Bảng mô tả 6 Bảng mô tả bảo hiểm
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaTiec Mã tiệc Varchar(10) Khóa chính
TenChuRe Tên chú rể Nvarchar(50)
TenCoDau Tên cô dâu Nvarchar(50)
Bảng mô tả 7 Bảng mô tả tiệc
Tên cột Mô tả Kiểu dữ liệu Ràng buộc
MaTiec Mã tiệc Varchar(10) Khóa chính
MaNV Mã nhân viên Varchar(10) Khóa chính
NgayDienRa Ngày diễn ra Date
Bảng mô tả 8 Bảng mô tả phân công
3.3.2.3 Quy trình xuất nhập kho
Sơ đồ quan hệ 3 Sơ đồ quan hệ quy trình xuất nhập kho
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MonAn Char(10) Khóa chính Giá tiền
2 TenMon Nvarchar(30) Not null Tên món ăn
3 NguyenLieu Nvarchar(15) Not null ChatLieu
4 GiaBan Int Not null GiaBan
5 MaLoai Char(10) Khóa ngoại Món ăn
6 Giaban Int Not null Giá bán món ăn
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MonAn Char(10) Khóa chính Giá bán
2 TenMon Nvarchar(30) Not null Tên Món
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 TenNH Char(10) Khóa chính Nhà Hàng
2 SDT Int Not null Số điện thoại
3 DiaChi Nvarchar(50) Not null Đại chỉ
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MaNV Char(10) Khóa chính Mã nhân viên
2 TenNV Navrchar(30) Not null Tên nhân viên
3 SDT Int Not null Số diện thoại
4 DiaChi Nvarchar(50) Not null Địa chỉ
5 MaCV Char(10) Khóa ngoại Mã chức vụ
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MaCV Char(10) Khóa chính Mã chức vụ
2 TenCV Nvarchar(30) Not null Tên chức vụ
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MaKH Char(10) Khóa chính Mã khách hàng
2 TenKH Nvarchar(30) Not null Tên khách hàng
3 SDT Int Not null Số điện thoại
4 DiaChi Nvarchar(50) Not null Địa chỉ
5 MaLoai Char(10) Khóa ngoại Mã loại khách hàng
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 MaLoai Char(10) Khóa chính Mã loại khách hàng
2 TenLoai Nvarchar(20) Not null Tên loại khách hàng
Bảng chi tiết món ăn
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
2 TenKH Char(10) Khóa ngoại Món Ăn
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
1 TenMon Char(10) Khóa chính Mã hóa đơn bán
2 KhachHang Char(10) Khóa ngoại Mã khách hàng
3 MaNV Char(10) Khóa ngoại Mã nhân viên
5 Tongtien Int Not null Tổng tiền
Bảng chi tiết hóa đơn
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
2 TenMon Char(10) Khóa ngoại TenMonAn
3 SoluongMon Int Not null Số lượng Món
4 Giaban Int Not null Giá bán
Phụ thuộc hàm
3.4.1 Quy trình đặt tiệc a Bảng món ăn
- Không có nhóm đa trị hoặc trùng lặp
- Mỗi thuộc tính không khóa trong bảng MonAn phụ thuộc hàm đầy đủ vào các khóa chính trong bảng MonAn
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 b Bảng thực đơn
Không có nhóm đa trị hoặc trùng lặp
- Mỗi thuộc tính không khóa trong bảng ThucDon phụ thuộc hàm đầy đủ vào các khóa chính trong bảng ThucDon
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 c Bảng dịch vụ
Không có nhóm đa trị hoặc trùng lặp
- DichVu(MaDV TENDV, GIADV, MATIEC),
- Mỗi thuộc tính không khóa trong bảng DichVu phụ thuộc hàm đầy đủ vào các khóa chính trong bảng DichVu
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 d Bảng khách hàng
Không có nhóm đa trị hoặc trùng lặp
- KhachHang(MAKH, TENKH, DIACHIKH, SDTKH)
- Mỗi thuộc tính không khóa trong bảng KhachHang phụ thuộc hàm đầy đủ vào các khóa chính trong bảng KhachHang
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 e Bảng nhân viên
Không có nhóm đa trị hoặc trùng lặp
- NhanVien(MANV, TENNV, SDTNV, CHUCVU, MABOPHAN
➔ F= {MANV > - TENNV, SDTNV, CHUCVU, MABOPHAN }
- Mỗi thuộc tính không khóa trong bảng NhanVien phụ thuộc hàm đầy đủ vào các khóa chính trong bảng NhanVien
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 f Bảng bộ phận
Không có nhóm đa trị hoặc trùng lặp
- Mỗi thuộc tính không khóa trong bảng BoPhan phụ thuộc hàm đầy đủ vào các khóa chính trong bảng BoPhan
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 g Bảng hợp đồng
Không có nhóm đa trị hoặc trùng lặp
- HopDong(MAHOPDONG, TRANGTHAI, MAKH, MANV)
- Mỗi thuộc tính không khóa trong bảng HopDong phụ thuộc hàm đầy đủ vào các khóa chính trong bảng HopDong
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
Không có nhóm đa trị hoặc trùng lặp
F= {MATIEC -> TENCODAU,TENCHURE, SOLUONGKHACH, NGAYTOCHUC, DIADIEMTOCHUC, MATHUCDON, MAKH }
- Mỗi thuộc tính không khóa trong bảng Tiec phụ thuộc hàm đầy đủ vào các khóa chính trong bảng Tiec
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 i Bảng hóa đơn
Không có nhóm đa trị hoặc trùng lặp
- HopDong(MAHOPDONG, TRANGTHAI, MAKH, MANV)
- Mỗi thuộc tính không khóa trong bảng HopDong phụ thuộc hàm đầy đủ vào các khóa chính trong bảng HopDong
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 j Bảng dòng thực đơn
- Chọn MAMONAN, MATHUCDON làm khóa
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
3.4.2 Quy trình thiết lập nhân sự a Bảng nhân viên
- Không có nhóm đa trị hoặc trùng lặp
- NhanVien(MaNV, TenNV, GioiTinh, NgaySinh, DiaChi, SDT, MaPB, MaCD)
➔ F= {MaNV -> TenNV, GioiTinh, NgaySinh, DiaChi, MaPB, MaCD}
- Mỗi thuộc tính không khóa trong bảng NhanVien phụ thuộc hàm đầy đủ vào các khóa chính trong bảng NhanVien
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 b Bảng Hợp đồng
- Không có nhóm đa trị hoặc trùng lặp
- HopDong(MaHD, LoaiHD ,NgayLapHD, MaNV)
- Chọn MaHD, MaNV làm khóa
- Mỗi thuộc tính không khóa trong bảng HopDong phụ thuộc hàm đầy đủ vào các khóa chính trong bảng HopDong
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 c Bảng Phiếu lương
- Không có nhóm đa trị hoặc trùng lặp
- PhieuLuong(MaPL, TongLuong, PhuCap, NgayLapPhieu, MaCD)
➔ F= { MaPL, MaCD -> TongLuong, PhuCap, NgayLapPhieu }
- Chọn MaPL, MaCD làm khóa
- Mỗi thuộc tính không khóa trong bảng PhieuLuong phụ thuộc hàm đầy đủ vào các khóa chính trong bảng PhieuLuong
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 d Bảng Chức danh
- Không có nhóm đa trị hoặc trùng lặp
- Chọn MaCD, MaPB làm khóa
- Mỗi thuộc tính không khóa trong bảng ChucDanh phụ thuộc hàm đầy đủ vào các khóa chính trong bảng ChucDanh
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 e Bảng Phòng ban
- Không có nhóm đa trị hoặc trùng lặp
- Mỗi thuộc tính không khóa trong bảng PhongBan phụ thuộc hàm đầy đủ vào các khóa chính trong bảng PhongBan
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 f Bảng Bảo hiểm
- Không có nhóm đa trị hoặc trùng lặp
- BaoHiem(MaBH, LoaiBH ,NgayLapBH, MaNV)
- Chọn MaBH, MaNV làm khóa
- Mỗi thuộc tính không khóa trong bảng BaoHiem phụ thuộc hàm đầy đủ vào các khóa chính trong bảng BaoHiem
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
- Không có nhóm đa trị hoặc trùng lặp
- Mỗi thuộc tính không khóa trong bảng Tiec phụ thuộc hàm đầy đủ vào các khóa chính trong bảng T
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
=> Đạt chuẩn 3 h Bảng Phân công
- Không có nhóm đa trị hoặc trùng lặp
- Chọn MaTiec, MaNV làm khóa
- Mỗi thuộc tính không khóa trong bảng PhanCong phụ thuộc hàm đầy đủ vào các khóa chính trong bảng PhanCong
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa
3.4.3 Quy trình xuất nhập kho
MonAn (MaSP, TenSP, MaDo, GiaMon, SoLuong)
F= {MonAn -> TenM, NSX,MonAn, SoLuongMon
- Không phải khóa: {TenM, Loai,SoLuongMon}
- Khóa chỉ có 1 thuộc tính
- Khóa chỉ có 1 thuộc tính
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa => Đạt chuẩn 3
Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa => Đạt chuẩn 3
Bảng chi tiết phiếu nhập
F= {TenMon,GiaMon -> SoLuongNhap, DonGiaNhap, ThanhTien}
- Thuộc tính không khóa ngoại thuộc đầy đủ vào khóa: TenMon,GiaMonà SoLuongMon, GiaNhap, ThanhTien
- Không có phụ thuộc hàm bắt cầu từ thuộc tính không khóa vào thuộc tính khóa => Đạt chuẩn 3
NHANVIEN (MaNV, TenNV, GioiTinh, SoDienThoai, DiaChi, Email, TenDN)
F= {MaNV -> TenNV, GioiTinh, SoDienThoai, DiaChi, Email, TenDN
SoDienThoai à MaNV, TenNV, DiaChi, MaNV}
- Không phải khóa: {TenNV, GioiTinh, SoDienThoai, DiaChi, Email, TenDN}
- Khóa chỉ có 1 thuộc tính
- Khóa chỉ có 1 thuộc tính
Gọi Xi là tập con của trung gian
Cài đặt
Sử dụng công cụ Visual Studio Code: là một trong những trình soạn thảo mã nguồn rất phổ biến được các lập trình viên sử dụng Với các ưu điểm nổi bật là sự nhanh chóng, nhẹ, hỗ trợ đa nền tảng cùng nhiều tính năng và là mã nguồn mở chính Visual Studio Code ngày càng được ưa chuộng sử dụng, là lựa chọn hàng đầu của các lập trình viên
- Sử dụng hệ quản trị SQL Server:
SQL server hay còn được gọi là Microsoft SQL Server, nó từ viết tắt của MS SQL Server Đây chính là một loại phần mềm đã được phát triển bởi Microsoft và nó được sử dụng để có thể dễ dàng lưu trữ cho những dữ liệu dựa theo tiêu chuẩn RDBMS
SQL Server có khả năng cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện GUI đến sử dụng ngôn ngữ cho việc truy vấn SQL Điểm mạnh của SQL điểm mạnh của nó là có nhiều nền tảng được kết hợp cùng như: ASP.NET, C# để xây dựng Winform cũng chính nó có khả năng hoạt động độc lập
Tuy nhiên, SQL Server thường đi kèm với việc thực hiện riêng các ngôn ngữ SQL, T-SQL
C# là một ngôn ngữ lập trình hướng đối tượng đa năng, mạnh mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường
- ASP.Net là một framework được sử dụng để phát triển các ứng dụng web-based.