Báo cáo bài tập lớn môn cơ sở dữ liệu phân tán PTIT Học viện công nghệ bưu chính viễn thông. Xây dựng hệ thống quản lý nhà hàng......................................................................................................................................................................
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1
-BÀI TẬP LỚN
MÔN: CƠ SỞ DỮ LIỆU PHÂN TÁN
ĐỀ TÀI: XÂY DỰNG HỆ THỐNG QUẢN LÝ NHÀ HÀNG
NHÓM THỰC HIỆN: 07NHÓM LỚP: 08
Hà Nội, tháng 6 năm 2021
Trang 2DANH SÁCH THÀNH VIÊN
Trang 3MỤC LỤC
I Đặt vấn đề 4
1 Nhu cầu của hệ thống 4
2 Một số nhiệm vụ chính của hệ thống 4
3 Vị trí và nhiệm vụ, dữ liệu khi triển khai dự án, các đối tượng tham gia sử dụng dự án .4
II Phân tích và thiết kế 6
1 Phân tích 6
2 Thiết kế 9
III Cài đặt vật lý thực tế 24
1 Cài đặt MS SQL Server 24
2 Tạo đường link kết nối mạng giữa các Server với nhau 37
3 Kiểm tra dịch vụ agent 48
4 Phân tán dữ liệu trên SQL Server 48
5 Tạo stored procedure 72
Trang 4I Đ t v n đ ặ ấ ề
1 Nhu c u c a h th ng ầ ủ ệ ố
Trong nền kinh tế hiện nay, mọi hoạt động của các tổ chức muốn đạt hiệu quả cao, giànhđược thắng lợi trong thế cạnh tranh gay gắt thì nhất thiết phải có những phương pháp để cóđược những thông tin, tri thức cần thiết một cách nhanh và chính xác Một trong nhữngphương pháp hiệu quả là áp dụng công nghệ thông tin vào việc quản lý tổ chức, doanhnghiệp của mình Có thể lấy ví dụ như hệ thống ngân hàng, bệnh viện đều áp dụng côngnghệ thông tin Công nghệ thông tin ngày nay phát triển như vũ bão, nó giúp ích rất nhiềutrong các hoạt động đời sống hàng ngày
Nhận thấy việc quản lý của các nhà hàng khi không có một hệ thống thông tin trợ giúp gặprất nhiều khó khăn, chúng tôi xây dựng hệ thống này nhằm giúp chủ nhà hàng quản lý việckinh doanh hiệu quả Trước kia việc quản lý nhà hàng thủ công chỉ dựa trên giấy tờ mất rấtnhiều thời gian và công sức nhưng lại không hiệu quả Các rủi ro khi quản lý thủ công như:khó quản lý nhân viên, mặt hàng; lưu trữ thông tin trên giấy tờ là không hiệu quả khi dữliệu tăng lên, việc tìm kiếm thông tin mất nhiều thời gian, giấy không thể tồn tại được lâu,
… Hệ thống của chúng tôi khắc phục được tất cả các nhược điểm trên Nó giúp quản lýnhân viên, khách hàng, mặt hàng một cách dễ dàng; tìm kiếm thông tin nhanh chóng và lưutrữ dữ liệu lâu dài nhờ có máy tính Nhờ đó chủ nhà hàng dễ dàng nắm bắt được tình hìnhkinh doanh và đưa ra điều chỉnh hợp lý
3.1 Vị trí và nhiệm vụ, dữ liệu khi triển khai dự án
Nhà hàng gồm 2 chi nhánh là Hà Nội và Tp Hồ Chí Minh Mỗi chi nhánh gồm nhânviên, khách hàng, quản lý của riêng chi nhánh đó
Trang 5Chúng tôi sử dụng cơ sở dữ liệu phân tán cho hệ thống thay vì một cơ sở dữ liệu tậptrung do cơ sở dữ liệu tập trung có một số nhược điểm sau:
- Dữ liệu ngày càng lớn trong khi khả năng lưu trữ của một máy tính là giới hạn
- Hiệu năng của hệ thống tập trung không cao do phải xử lý đồng thời nhiều yêu cầu
Có thể dẫn đến hiện tượng “nút cổ chai”
- Tính sẵn sàng không cao Khi máy chủ cơ sở dữ liệu gặp vấn đề, cả hệ thống ngừnghoạt động
Cơ sở dữ liệu phân tán giải quyết tất cả các nhược điểm trên Hơn nữa, các chi nhánhthường chỉ quan tâm đến nhân viên, khách hàng, doanh thu của chi nhánh của mình,
ít khi truy xuất đến các thông tin của chi nhánh khác Do đó dữ liệu nào liên quanđến chi nhánh nào sẽ được lưu tại chi nhánh đó Chúng tôi sử dụng 3 server gồm: 1server gốc đặt tại Đà Nẵng để lưu tất cả thông tin của nhà hàng, 1 server đặt tại HàNội để lưu các thông tin của chi nhánh Hà Nội, 1 server đặt tại Tp Hồ Chí Minh đểlưu các thông tin của chi nhánh Tp Hồ Chí Minh Khi có thay đổi trong 2 server chinhánh thì server gốc cũng được cập nhật theo Việc cấp phát dữ liệu như vậy sẽ làmtăng hiệu năng của hệ thống do khoảng cách cơ sở dữ liệu gần hơn dẫn đến việc truycập thông tin nhanh hơn Ngoài ra cũng tăng tính sẵn sàng do sử dụng nhiều bản sao
dữ liệu
3.2 Các đối tượng tham gia sử dụng dự án
Các đối tượng tham gia sử dụng dự án gồm: nhân viên nhà hàng, khách hàng, đầubếp nhà hàng và quản lý nhà hàng
Nhân viên nhà hàng có thể xem thông tin cá nhân của mình qua app di động hoặcqua website và có thể cập nhật thông tin của mình Các thông tin cá nhân của nhânviên gồm: họ tên, năm sinh, địa chỉ, số điện thoại, lương,… Nhân viên có thể nhậnthông báo từ phía nhà hàng và xem lịch làm việc của mình khi đăng nhập vào hệthống
Khách hàng có thể xem thông tin món ăn, đặt chỗ trước, và cũng có các thông tin cánhân như nhân viên nhà hàng
Đầu bếp cũng có các thông tin cá nhân như nhân viên, cũng có thể xem thông báo vàlịch làm việc
Quản lý nhà hàng cũng có thông tin cá nhân như nhân viên, ngoài ra có một số quyềnhạn khác tùy thuộc vào vị trí mà người quản lý đó đảm nhiệm Ví dụ vị trí quản lýnguyên vật liệu có các quyền khác với vị trí quản lý nhân viên
Trang 6II Phân tích và thi t k ế ế
1.2.2 Tại chi nhánh Hà Nội
Quản lý các thông tin của chi nhánh của mình gồm: nhân viên, quản lý, đầu bếp,khách hàng, hóa đơn
Thông tin về nhân viên, quản lý, đầu bếp sẽ được cập nhật về server gốc định kỳhàng tháng
Thông tin về khách hàng, hóa đơn sẽ được cập nhật về server gốc định kỳ vào lúc0h00 hằng ngày
Tại chi nhánh Hà Nội chỉ có quyền xem thông tin về món ăn, nguyên liệu nhưngkhông có quyền sửa hay xóa các thông tin này
1.2.3 Tại chi nhánh Tp Hồ Chí Minh
Quản lý các thông tin của chi nhánh của mình gồm: nhân viên, quản lý, đầu bếp,khách hàng, hóa đơn
Thông tin về nhân viên, quản lý, đầu bếp sẽ được cập nhật về server gốc định kỳhàng tháng
Thông tin về khách hàng, hóa đơn sẽ được cập nhật về server gốc định kỳ vào lúc0h00 hằng ngày
Tại chi nhánh Tp Hồ Chí Minh chỉ có quyền xem thông tin về món ăn, nguyên liệunhưng không có quyền sửa hay xóa các thông tin này
Trang 71.3 Chức năng ở máy trạm (chi nhánh Hà Nội và Tp Hồ Chí Minh)
1.3.1 Chức năng quản lý nhân viên
* Đối với nhân viên:
Nhân viên sau khi đăng nhập có thể xem, cập nhật thông tin cá nhân của mình, xemlịch làm việc, xem thông báo gửu đến
Các thông tin nhân viên có thể sửa gồm: tên nhân viên, năm sinh, địa chỉ, số điệnthoại
* Đối với quản lý:
Quản lý sau khi đăng nhập có thể thêm, xóa, sửa một nhân viên Gửu thông báo đếncho nhân viên
Các thông tin quản lý có thể sửa gồm: tên nhân viên, năm sinh, địa chỉ, số điện thoại,lương
1.3.2 Chức năng quản lý đặt món
Người quản lý có nhiệm vụ:
- Nhập thông tin khách hàng
- Nhập thông tin các món ăn mà khách hàng gọi
- Xuất hóa đơn
1.3.3 Chức năng quản lý đầu bếp
* Đối với đầu bếp:
Đầu bếp sau khi đăng nhập có thể chỉnh sửa các thông tin cá nhân của mình như: họtên, năm sinh, địa chỉ, số điện thoại
Đầu bếp có thể xem thông báo gửu đến và lịch làm việc
* Đối với quản lý:
Quản lý sau khi đăng nhập có thể thêm, xóa, sửa đầu bếp Gửu thông báo đến chođầu bếp
Các thông tin quản lý có thể sửa gồm: tên đầu bếp, năm sinh, địa chỉ, số điện thoại,lương
1.3.4 Chức năng quản lý khách hàng
* Đối với khách hàng:
Khách hàng sau khi đăng nhập có thể chỉnh sửa các thông tin cá nhân của mình như:
họ tên, năm sinh, địa chỉ, số điện thoại
Khách hàng có thể xem thông báo gửu đến
Khách hàng có thể xem thông tin về món ăn và đặt bàn trước
* Đối với quản lý:
Trang 8Quản lý sau khi đăng nhập có thể thêm, xóa, sửa khách hàng Gửu thông báo đến chokhách hàng.
Các thông tin quản lý có thể sửa gồm: tên khách hàng, năm sinh, địa chỉ, số điệnthoại
1.3.5 Chức năng thống kê
Người quản lý ở các máy trạm có thể thực hiện việc thống kê như:
- Thống kê doanh thu theo tháng, theo năm
- Tính lãi
- Món ăn được ưa chuộng nhất
- Thời điểm nào nhà hàng đông khách nhất
- Khách hàng nào đến ăn nhiều nhất
…
1.3.6 Ngoài ra còn có nhiều chức năng khác như: tìm kiếm thông tin; in hóa đơn,danh sách, báo cáo; đăng ký tài khoản; quên mật khẩu; đánh giá chất lượng phục vụ;
…
1.4 Chức năng ở máy chủ (server Đà Nẵng)
Máy chủ có toàn bộ chức năng của các máy trạm Ngoài ra có thêm một số chứcnăng khác
- Thêm nguyên liệu mới
- Sửa thông tin nguyên liệu
- Xóa nguyên liệu
1.4.3 Chức năng thống kê
- Tổng doanh thu của cả 2 chi nhánh
- Tổng lãi thu được
- Số lượng nhân viên hiện có
- Các món ăn được ưa thích nhất
…
Trang 91.5 Phân quyền cho các nhóm đối tượng thực hiện dự án
1.5.1 Nhân viên
Nhân viên có các quyền như:
- Xem thông tin cá nhân
- Sửa thông tin cá nhân
- Xem lịch làm việc
- Xem thông báo gửu đến
1.5.2 Khách hàng
Khách hàng có các quyền như:
- Đăng ký một tài khoản thông qua website
- Xem thông tin cá nhân
- Sửa thông tin cá nhân
- Xem các thông tin của nhà hàng như: món ăn, giờ mở cửa, giờ đóng cửa, địa chỉnhà hàng, số điện thoại liên hệ,…
- Đặt bàn trước
1.5.3 Đầu bếp
Đầu bếp có các quyền như:
- Xem thông tin cá nhân
- Sửa thông tin cá nhân
- Xem lịch làm việc
- Xem thông báo gửu đến
1.5.4 Quản lý
Quản lý có các quyền như:
- Tìm kiếm, thêm, sửa, xóa nhân viên, khách hàng và đầu bếp
- Tìm kiếm, thêm, sửa, xóa món ăn, nguyên liệu
Trang 10đầu bếp dùng để truy cập vào hệ thống như: điện thoại, máy tính,… Quản lý truy cậpvào hệ thống bằng máy tính để bàn đặt tại nhà hàng.
Sơ đồ mạng tổng quan2.2 Thiết kế cơ sở dữ liệu phân tán
2.2.1 Lược đồ liên kết thực thể
Trang 122.2.2 Lược đồ quan hệ liên kết
Id_NhanVi
en
TenNhanVien
Id_TaiKhoan
Id_ChiNhanh
NamSinh Dia
Chi
SoDienThoai
NamSinh
Id_TaiKhoan
ID_ChiNhanh
DiaChi
SoDienThoai
Luong
ThongBaoTaiKhoan
Id_TaiKhoa
n
Username
Password
KieuTaiKhoan
Id_ChiNhanh
NamSinh
DiaChi
SoDienThoai
Luong
ThongBaoNau
NgayLap
GioVao
GioThanhToan
TongTien
DanhGiaNguyenLieu_Mon
Trang 13Id_DatBanTruoc Id_HoaDon Id_KhachHang NgayDat
2.2 3 Các bảng trong cơ sở dữ liệu
2.2.3.1 Bảng NhanVien
tính
thoại
Trang 141 Id_QuanLy Varchar(255) Not null PK Mã quản lý
khoản
nhánh
thoại
2.2.3.3 Bảng TaiKhoan
khoản
nhập
khoản
Trang 152.2.3.4 Bảng ChiNhanh
tính
nhánh
nhánh
thoại
2.2.3.5 Bảng DauBep
tính
khoản
nhánh
thoại
Trang 168 Luong float Not null Lương
2.2.3.6 Bảng Nau
tính
2.2.3.7 Bảng Mon
STT Tên thuộc
giảm giá
2.2.3.8 Bảng OrderLine
STT Tên thuộc
Trang 173 SoLuong Int Not null Số lượng
món
2.2.3.9 Bảng HoaDon
STT Tên thuộc
2.3.10 Bảng NguyenLieu_Mon
Trang 181 Id_Mon Varchar(255) Not null PK, FK Mã món
2 Id_NguyenLieu Varchar(255) Not null PK, FK Mã nguyên
liệu
Lượngnguyên liệu(tính theocân)
2.3.11 Bảng NguyenLieu
hàng
hàng
Trang 195 SoDienThoai Varchar(255) Not null Số điện
thoại
2.3.13 Bảng DatBanTruoc
STT Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
trước
hàng
bàn
2.2.4 Quan hệ giữa các bảng
Trang 21Phân tán cơ sở dữ liệu quản lý nhà hàng làm 3 mảnh đặt tại 3 nơi:
- Tại Đà Nẵng chứa tất cả thông tin
- Tại chi nhánh Hà Nội chỉ chứa thông tin của nhân viên, quản lý, đầu bếp, hóa đơn của chinhánh đó
- Tại chi nhánh Hồ Chí Minh chỉ chứa thông tin của nhân viên, quản lý, đầu bếp, hóa đơn của chi nhánh đó
Trang 22Nguyên
liệu - Món
OrderLine
Chi nhánh
Nhân viên Hóa đơn
Quản lý
Đầu bếp
Trang 23Khách hàng
Nguyên liệu
Nguyên liệu Nguyên liệu
Chi nhánh Chi nhánh Hà Nội
Chi nhánh HCM
Chi nhánh Hà Nội
Nhân viên Nhân viên Hà Nội
Nhân viên HCM
Nhân viên Hà Nội
Trạm HCM Chi nhánh HCM
Nhân viên HCM Quản lý HCM Đầu bếp HCM
Hóa đơn HCM
Trang 24III Cài đ t v t lý th c t ặ ậ ự ế
1 Cài đ t MS SQL Server ặ
Ở đây chúng tôi sử dụng MS SQL Server 2008 Enterprise Edition
Các bước cài đặt như sau:
Đầu tiên các bạn vào link sau để download file cài đặt
Bản 64 bit:
CAE8262F1844/SQLFULL_X64_ENU.EXE
http://download.microsoft.com/download/D/0/B/D0B2C565-4966-4663-976D-Bản 32 bit:
D42E150CF6A4/SQLFULL_X86_ENU.EXE
http://download.microsoft.com/download/0/9/4/094F2CB6-2C68-4B0F-AF20-Sau khi tải file về, click đúp vào file để giải nén
Chờ file được giải nén
Trang 25Click vào file setup.exe để tiến hành cài đặt.
Chọn Installation sau đó chọn New SQL Server stand-alone…
Trang 26Chọn OK để tiếp tục.
Trang 27Chọn Install.
Chọn Next
Trang 28Chọn Perform a new installation of SQL Server 2008, sau đó chọn Next.
Điền product key, sau đó chọn Next
Trang 29Tích vào I accept the license terms, sau đó click Next.
Trang 30Chọn Select All, sau đó chọn Next.
Chọn Default instance để đặt tên mặc định của SQL Server hoặc chọn Named instance để đặt tên mà bạn muốn Chọn thư mục gốc cho Instance rồi chọn Next
Trang 31Chọn Next.
Trang 32Chọn Next.
Tiếp theo ta chọn Mixed Mode để điền mật khẩu cho tài khoản sa Sau đó chọn Add Current User rồi chọn Next
Trang 33Chọn Add Current User rồi chọn Next.
Chọn Install the native mode default configuration Xong chọn Next
Trang 34Chọn Next.
Chọn Next
Trang 35Chọn Install.
Trang 36Chờ quá trình cài đặt hoàn tất.
Chọn Close Vậy là ta đã cài đặt xong SQL Server 2008 Enterprise Edition
2 T o đ ạ ườ ng link k t n i m ng gi a các Server v i nhau ế ố ạ ữ ớ
2.1 Vô hiệu hóa tường lửa, tạo cổng 1433
Trang 37Chọn Change notification settings.
Tích vào Turn off Windows Firewall, sau đó click OK
Trang 38Click chọn Advanced settings.
Chọn Inbound Rules, sau đó chọn New Rule
Trang 39Tích vào Port và chọn Next.
Trang 40Điền “1433” vào Specific local ports rồi click Next.
Trang 41Click Next.
Trang 42Click Next.
Trang 43Đặt tên là “SQL”, click Finish.
Vậy là hoàn thành việc khóa tường lửa và thiết lập cổng Làm tương tự với các máy khác.2.2 Cấu hình cho từng máy: gồm đặt IP, đặt các properties
Mở Sql Server Configuration Manager
Vào phần TCP/IP của máy chủ cơ sở dữ liệu Đặt IP Address của IP1 là địa chỉ IP của máyhiện tại Như trong hình là “192.168.1.100” Hai địa chỉ IP10 và IP11 là của 2 máy còn lại
Số cổng là 1433 Active và Enabled đặt là Yes Sau đó click OK và Restart lại Server.Làm tương tự với 2 máy còn lại
Tiếp theo mở SQL Server Management Studio và đăng nhập vào
Trang 44Mở Server Properties như hình Tích vào SQL Server and Windows Authentication mode
và Failed logins only Sau đó click OK.
Trang 45Vào Login properties – sa và đặt như hình, Click OK.
Làm tương tự với 2 máy còn lại
2.3 Tạo một mạng LAN cho các server
2.4 Ping các server
- Ping từ Server Đà Nẵng đến Server Hà Nội và Hồ Chí Minh
Trang 46Ping thành công.
- Ping từ Server Hồ Chí Minh đến Server Đà Nẵng
Trang 47Ping thành công.
- Ping từ Server Hà Nội đến Server Đà Nẵng
Ping thành công
Trang 483 Ki m tra d ch v agent ể ị ụ
Nếu dịch vụ Agent đang bị disabled thì ta right-click chọn Start để khởi chạy Agent
4 Phân tán d li u trên SQL Server ữ ệ
4.1 Tạo một shared folder
Ta tạo 1 folder RepliData để chứa các dữ liệu trao đổi trong quá trình update dữ liệu từ các phân mảnh về cơ sở dữ liệu gốc, và từ cơ sở dữ liệu gốc đến các phân mảnh
Trang 49Right-click vào folder RepliData, chọn tab Sharing → chọn Share.
Trang 50Thêm Everyone, chọn quyền đọc ghi Click Share.
Chọn Done Vậy là ta đã tạo xong một folder RepliData để chia sẻ dữ liệu giữa các máy.Tiếp theo ta sẽ chỉ định folder này là folder lưu dữ liệu chia sẻ cho SQL Server
Trang 51Vào Distributor Properties, chọn Publishers, chọn vị trí mũi tên như hình.
Trang 52Tại Default Snapshot Folder, đặt địa chỉ của folder RepliData Click OK.
Trang 53Click Next.
Chọn database nha_hang, sau đó click Next
Trang 54Chọn Merge publication Chọn Next.
Trang 55Chọn Next.
Tích chọn tất cả các bảng, trừ sysdiagrams Xong chọn Next
Trang 56Chọn Add, chọn Add Filter…
Chọn điều kiện để phân mảnh bảng ChiNhanh Click OK
Trang 57Click Add, chọn Add Join to Extend the Selected Filter…
Trang 58Chọn phân mảnh ngang dẫn xuất từ phân mảnh ChiNhanh, như trong hình là bảng DauBep.
Click OK
Trang 59Làm tương tự với các bảng HoaDon, NhanVien, QuanLy, ta được như hình Click Next.
Trang 60Click Next.
Click vào Security Settings
Trang 61Tích vào Run under the SQL Server Agent service account Sau đó tích Using the
following SQL Server login và điền tài khoản sa của máy hiện tại (Server Đà Nẵng) Click OK
Click Next
Trang 62Click Next.
Trang 63Đặt tên cho Publication, xong chọn Finish.
Tạo publication thành công Chọn Close.4.3 Tạo subscription
Trang 64Right-click vào Subscription vừa tạo, chọn New Subscriptions.
Trang 65Chọn Next.
Trang 66Chọn vào Publication muốn tạo Sub, sau đó chọn Next.
Chọn Run all agents at the Distributor… như hình, xong chọn Next