- Tối ưu hóa hoạt động marketing và quảng cáo: Quản lý chuỗi cửa hàng giúp thu thập dữ liệu và phân tích thông tin khách hàng để tạo ra chiến lược marketing và quảngcáo hiệu quả, từ đó t
PHÂN TÍCH
Các chức năng chính của hệ thống trong dự án
- Quản lý thông tin khách hàng (Thêm, sửa, thống kê tùy chọn)
- Quản lý thông tin hóa đơn (Thêm, sửa, xóa, thống kê tùy chọn)
Phân quyền cho các nhóm đối tượng thực hiện dự án
Nhân viên tại các chi nhánh
- Nhân viên thu ngân cần có quyền truy cập vào chức năng tạo hóa đơn trong hệ thống.
- Họ được cho phép tạo hóa đơn mới cho các giao dịch bán hàng với khách hàng.
- Họ cũng có thể cập nhật thông tin trên hóa đơn, như thêm hoặc xóa sản phẩm, điều chỉnh số lượng hoặc giá cả nếu cần thiết.
- Nhân viên thu ngân cần có quyền truy cập vào thông tin khách hàng để xem và chỉnh sửa.
- Họ được cho phép tạo mới khách hàng trong trường hợp khách hàng mới đến cửa hàng.
- Họ có thể cập nhật thông tin khách hàng, như địa chỉ, số điện thoại, và thông tin liên lạc khác nếu cần thiết.
Tạo bill cho khách hàng
- Nhân viên thu ngân cần có khả năng tạo và quản lý các bill cho khách hàng đã mua hàng.
- Họ được cho phép tạo mới các bill dựa trên thông tin giao dịch và hóa đơn.
- Họ có thể cập nhật thông tin trên bill, như số tiền thanh toán, phương thức thanh toán và trạng thái thanh toán của bill.
Nhân viên tại trc sở chính
- Có toàn bộ quyền của nhân viên tại các chi nhánh.
- Quản lý các sản phẩm tại từng chi nhánh (thêm, sửa, xóa các mặt hàng).
Truy cập và tạo báo cáo chi tiết về hoạt động kinh doanh, bao gồm doanh số bán hàng, doanh thu, lợi nhuận và các chỉ số hiệu suất khác của từng chi nhánh và cửa hàng để phân tích hiệu quả kinh doanh.
Nhân viên quản lý kho
- Họ không có các quyền như nhân viên tại các cửa hàng và nhân viên tại các trc sở Họ sẽ có một cơ sở dữ liệu riêng
Họ theo dõi số lượng sản phẩm tại mỗi cửa hàng và khi số lượng giảm xuống dưới mức tối thiểu, họ sẽ điều xe phân phối để cung cấp thêm hàng hóa cho cửa hàng đó.
Phân tích chức năng của từng vị trí thực hiện dự án
2.3.1 Trụ sở chính tại Ba Đình
Nhân viên quản lý tại trc sở chính có quyền quản lý tổng thể các thông tin của các chi nhánh: sản phẩm, nhân viên, khách hàng, bill.
2.3.2 Chi nhánh Cầu Giấy, Thanh Xuân, Hà Đông, Long Biên, Hoà Lạc
- Dữ liệu về hóa đơn, khách hàng được cập nhật máy trạm sẽ được chuyển về máy chủ định kỳ hàng tuần
Nhân viên chỉ có trách nhiệm tạo và chỉnh sửa hóa đơn trong quá trình làm việc với khách hàng, và không được phép xóa hóa đơn sau khi đã hoàn tất thanh toán.
2.3.3 Chi nhánh tại Cầu Giấy 2
- Dữ liệu của số lượng của các sản phẩm trong các cửa hàng được cập nhập liên tcc
Chức năng của máy trạm, máy chủ
2.4.1 Chức năng ở máy trạm ở các cửa hàng
- Thêm mới, chỉnh sửa và xóa thông tin khách hàng.
- Theo dõi lịch sử giao dịch của khách hàng.
- Quản lý các chương trình khuyến mãi hoặc ưu đãi dành cho khách hàng.
- Phát triển hồ sơ khách hàng và tạo các báo cáo về khách hàng.
Quản lý hóa đơn của khách hàng:
- Tạo mới và lưu trữ thông tin hóa đơn của khách hàng.
- Xem và cập nhật trạng thái thanh toán của hóa đơn.
- Tạo các báo cáo và thống kê về doanh số bán hàng, doanh thu và nợ đối với khách hàng. 2.4.2 Chức năng của máy chủ
- Có toàn bộ chức năng của máy trạm
- Quản lý sản phẩm: Thêm, sửa, xóa các sản phẩm.
+ Xử lý dữ liệu: Máy chủ có khả năng truy xuất dữ liệu từ cơ sở dữ liệu và xử lý nó để tạo ra các báo cáo.
Máy chủ có khả năng thực hiện phân tích và tính toán dữ liệu để tạo ra thông tin giá trị trong các báo cáo, bao gồm doanh số bán hàng, doanh thu, lợi nhuận, xu hướng sản phẩm và nhu cầu của khách hàng.
2.4.3 Chức năng ở máy trạm tại kho quản lý
- Quản lý số lượng sản phẩm của từng chi nhánh
- Khi một kho có số lượng của sản phẩm quá ít, họ sẽ điều xe phân phối để cung cấp sản phẩm đến các chi nhánh.
Phân Tích Cơ sở Dữ Liệu
Mối quan hệ giữa Customer và Bill là 1-N, cho phép một khách hàng có thể sở hữu nhiều hóa đơn Tương tự, mối quan hệ giữa Employee và Bill cũng là 1-N, vì một nhân viên có khả năng xuất nhiều hóa đơn Cuối cùng, mối quan hệ giữa Bill và Bill_detail là 1-N, do một đơn hàng có thể bao gồm nhiều chi tiết hóa đơn.
+ Product – Categories là mối quan hệ N-1 vì nhiều sản phẩm thuộc cùng một loại mặt hàng.
Mối quan hệ giữa nhân viên và cửa hàng là N-1, vì nhiều nhân viên làm việc tại một cửa hàng Trong khi đó, mối quan hệ giữa cửa hàng và loại mặt hàng là N-N, do một loại mặt hàng có thể xuất hiện trong nhiều cửa hàng, và một cửa hàng có thể cung cấp nhiều loại mặt hàng khác nhau.
Thực thể Person - Id: mã định danh của 1 người
Customer - Level: mức độ khách hàng thân thiết
- Total-payment: số tiền mà họ đã mua sản phẩm ở cửa hàng
Employee - Hours-Working: ca mà họ làm việc
- Emp-position: vị trí làm việc trong cửa hàng Ví dc: nhân viên, quản lý, bảo vệ,
Store - Store-id: mã định danh của cửa hàng
- Store-area: diện tích của cửa hàng
- Store-address: địa chỉ của cửa hàng
- Store-phone: sdt cửa hàng
Category - CS_id: mã định danh của một loại sản phẩm ở đâu
(mã của nước giải khát+mã cửa hàng)
- Cat-name: tên loại (giải khát, đồ ăn nhanh, )
Product - Product-id: mã sản phẩm
- Product-name: Tên sản phẩm
- Product-quantity: Số lượng sản phẩm
- Expiration-date: ngày hết hạn
- Price: Giá của sản phẩm
Bill - Bill-id: mã bill
- Total-price: giá của bill
- Date: ngày giờ thanh toán
- Payment-method: hình thức thanh toán
Bill-detail - Pb-quantity: số lượng của 1 sản phẩm trong 1 bill
2.5.2 Quan hệ giữa các bảng
THIẾT KẾ
Thiết kế hệ thống mạng tổng quan
Trụ sở chính Đặt máy Server chính Ba Đình thực hiện các chức năng và lưu CSDL của toàn hệ thống.
Cầu Giấy Đặt máy Server trạm 1 và các client tương ứng thực hiện chức năng và lưu toàn bộ CSDL thuộc Cầu Giấy.
Thanh Xuân Đặt máy Server trạm 2 và các client tương ứng thực hiện chức năng và lưu toàn bộ CSDL thuộc Thanh Xuân.
Hà Đông Đặt máy Server trạm 3 và các client tương ứng thực hiện chức năng và lưu toàn bộ CSDL thuộc Hà Đông.
Biên Đặt máy Server trạm 4 và các client tương ứng thực hiện chức năng và lưu toàn bộ CSDL thuộc Long Biên.
Hoà Lạc Đặt máy Server trạm 5 và các client tương ứng thực hiện chức năng và lưu toàn bộ CSDL thuộc Hoà Lạc.
Cầu Giấy 2 Đặt máy Sever trạm 6, có chức năng quản lý số lượng sản phẩm của từng cửa hàng.
Thiết kế cơ sở dữ liệu
3.2.1 Cấu trúc các bảng dữ liệu của hệ thống
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Store_id nvarchar(255) not null PK ID cửa hàng
Store_Adress nvarchar(255) Địa chỉ cửa hàng
Store_Phone nvarchar(255) SĐT cửa hàng
Store_Area nvarchar(255) Diện tích cửa hàng
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
CS_id nvarchar(255) not null PK Mã định danh mặt hàng
Cate_Name nvarchar(255) Tên mặt hàng
Store_id nvarchar(255) not null FK ID cửa hàng
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Person_id nvarchar(255) not null PK Mã định danh
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Cus_id nvarchar(255) not null PK,FK Mã khách hang
Total_payment int Tổng chi tiêu
Cus_level int Mức độ thân thiết
/*Tổ ng payment cứ 1trVND thì lvlup tổ i đa là lv4 */
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Emp_id nvarchar(255) not null PK,FK Mã nhân viên
Emp_position nvarchar(255) Vị trí
Store_id nvarchar(255) not null FK Mã cửa hàng
Hoursworking int Giờ làm việc
/*Lương cơ ba n 20k, trên 2160h lương 22k, trên 4320h lương 24k, trên 6480h lương 26k*/
/*Hoursworking random min = 30 ngày = 720h, max = 365 ngày = 8760h */ /*Lương qua n lý fixed 30k/h */
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Product_id nvarchar(255) not null PK,FK Mã sản phẩm
Product_position nvarchar(255) Vị trí
CS_id nvarchar(255) not null FK Mã cửa hàng
Product_quantity int Số lượng sản phẩm
Expiration_date Date Hạn sử dcng
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Bill_id nvarchar(255) not null PK Mã đơn
Cus_id nvarchar(255) not null FK Mã khách hàng
Emp_id nvarchar(255) not null FK Mã nhân viên
Date_ Date Ngày mua hang
Sale_percent int Phần tram giảm giá
Total_price int Tổng giá trị đơn
Payment_method nvarchar(255) Phương thức thanh toán
Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
Bill_id nvarchar(255) not null PK,FK Mã đơn
Product_id nvarchar(255) not null PK,FK Mã sản phẩm
PB_quantity int Số lượng
/*Khi thanh toán nê u sổ lượng cu a Bill_detail vượt quá sổ lượng còn lại trong kho thì khổng thê thanh toán */
Thiết kế cơ sở dữ liệu phân tán
3.3.1 Lược đồ phục vụ cho phân mảng ngang dẫn xuất
3.3.2 Thiết kết phân mảng ngang , nhân bản
Vị trí 1 Sever chi nhánh, nơi đặt máy trạm tại Cầu Giấy
Vị trí 2 Sever chi nhánh, nơi đặt máy trạm tại Thanh Xuân
Vị trí 3 Sever chi nhánh, nơi đặt máy trạm tại Hà Đông
Vị trí 4 Sever chi nhánh, nơi đặt máy trạm tại Long Biên
Vị trí 5 Sever chi nhánh, nơi đặt máy trạm tại Hoà Lạc
Tại vị trí 6 Sever tổng, chúng tôi đã đặt máy trạm tại Ba Đình để thực hiện phân mảnh Chúng tôi chọn quan hệ tổng thể làm tiêu chí chính, chia thành 5 mảnh tại 5 vị trí khác nhau nhằm quản lý các chi nhánh trong khu vực lân cận Dựa vào các mảnh của chi nhánh, chúng tôi sẽ tiếp tục dẫn xuất sự phân mảnh của các quan hệ tổng thể còn lại.
Mảnh Trụ sở Cơ sở dữ liệu
Phân mảnh ngang nguyên thủy
Phân mảnh ngang dẫn xuất
- Điều kiện dẫn xuất: Categorie1Categories
- Điều kiện dẫn xuất: Employee1Employee
- Điều kiện dẫn xuất:Product1Product
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất:Bill1= Bill
- Điều kiện dẫn xuất: Person1 Person
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất: Bill_detail1
- Điều kiện dẫn xuất: Customer 1Customer
- Điều kiện dẫn xuất: Person1Person
- Điều kiện dẫn xuất: Categorie2Categories
- Điều kiện dẫn xuất: Employee2Employee
- Điều kiện dẫn xuất:Product2Product
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất:Bill2= Bill
- Điều kiện dẫn xuất: Person2 Person
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất: Bill_detail2
- Điều kiện dẫn xuất: Customer2Customer
- Điều kiện dẫn xuất: Person2Person
- Điều kiện dẫn xuất: Categorie3Categories
- Điều kiện dẫn xuất: Employee3Employee
- Điều kiện dẫn xuất:Product3Product
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất:Bill3= Bill
- Điều kiện dẫn xuất: Person3 Person
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất: Bill_detail3
- Điều kiện dẫn xuất: Customer3Customer
- Điều kiện dẫn xuất: Person3Person
- Điều kiện dẫn xuất: Categorie4Categories
- Điều kiện dẫn xuất: Employee4Employee
- Điều kiện dẫn xuất:Product4Product
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất:Bill4= Bill
- Điều kiện dẫn xuất: Person4 Person
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất: Bill_detail4
- Điều kiện dẫn xuất: Customer4Customer
- Điều kiện dẫn xuất: Person4Person
- Điều kiện dẫn xuất: Categorie5Categories
- Điều kiện dẫn xuất: Employee5Employee
- Điều kiện dẫn xuất:Product5Product
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất:Bill5= Bill
- Điều kiện dẫn xuất: Person5 Person
- Bảng phân mảnh: Bill_detail
- Điều kiện dẫn xuất: Customer5Customer
- Điều kiện dẫn xuất: Person5Person
Phân mảnh ngang nguyên thủy và phân mảnh ngang dẫn xuất để chia quan hệ tổng thể thành 5 mảnh đặt tại 5 chi nhánh sau:
Server chính đặt tại Ba Đình
(chứa thông tin của toàn bộ hệ thống)
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của tất cả các cửa hàng.
Máy trạm 1 đặt tại Cầu Giấy chứa thông tin:
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của chi nhánh đó
Máy trạm 2 đặt tại Thanh Xuân chứa thông tin:
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của chi nhánh đó
Máy trạm 3 đặt tại Hà Đông chứa thông tin:
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của chi nhánh đó
Máy trạm 4 đặt tại Long Biên chứa thông tin:
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của chi nhánh đó
Máy trạm 5 đặt tại Hoà Lạc chứa thông tin:
- Categories (Các loại mặt hàng),
- Bill_detail (Hoá đơn chi tiết) của chi nhánh đó
Cơ sở 6 (Cầu Giấy 2) sẽ thành lập một ban quản lý để theo dõi các sản phẩm sắp hết hàng tại các cửa hàng Ban quản lý này sẽ có khả năng xem danh sách các sản phẩm có số lượng từ 60 trở lên, đồng thời cấp thêm hàng hóa cho các server và cập nhật thông tin lên server tổng để phân phối đến các server con.
Hình 3.1 Sơ đồ định vị
Thiết kế vật lý các trạm
1 dbo.Store Thông tin cửa hàng, chứa thông tin về các cửa hàng cũng như nơi đặt máy trạm
2 dbo.Categories Các loại mặt hàng, chứa thông tin về các loại mặt hàng của các cửa hàng
3 dbo.Product Sản phẩm, chứa thông tin về loại mặt hàng, giá,số lượng,hạn sử dcng của sản phẩm
4 dbo.Person Chứa thông tin về người dùng
5 dbo.Employee Chứa thông tin về nhân viên như vị trí, lương, giờ làm việc
6 dbo.Customer Chứa thông tin về khách hàng và mức ưu đãi
Bảng dbo.Bill lưu trữ thông tin chi tiết về các đơn hàng, bao gồm dữ liệu của nhân viên tạo đơn, thông tin khách hàng, số tiền thanh toán và phương thức thanh toán.
8 dbo.Bill_detail Chứa thông tin chi tiết về các mặt hàng trong đơn
Chứa thông tin về các sản phẩm sắp hết hàng trong tất cả các cửa hàng
CÀI ĐẶT
Cài đặt SQL Server 2022
4.1.1 Cài đặt SQL Server 2020 bản developer
Truy cập vào đường link để tải (tải bản developer): https://www.microsoft.com/en- us/sql-server/sql-server-downloads
Mở tệp exe đã tải
Chọn Download Media sau đó chọn dạng tải về là ISO và chọn đường dẫn rồi ấn download
Sau khi tải xong, nhấn close
Mở tệp iso và chạy setup.exe
Giao diện cài đặt hiện lên, chọn
Installation sau đó chọn tiếp New SQL server
Giao diện sau khi tích vào cài mới, mặc định là
Developer, ta cần chuyển sang Evaluation và ấn Next
Chọn chức năng phù hợp với môn học ở mcc Features sau đó ấn nút Next
Ta có thể đặt tên cho Instance (tên có thể đặt tùy ý, không dấu, không khoảng trắng) sau đó nhấn next
Bước 11: Ở mcc này, ta bấm chọn chức năng
Mix Mode Đây là chức năng bảo mật cho cơ sở dữ liệu.
Tiếp theo các ta nhập mật khẩu cho tài khoản supper admin(sa) là minh.
Và cuối cùng nhấn nút Add current User để thêm tài khoản.
Cuối cùng nhấn next cho đến mcc
Giao diện cài đặt thành công => ấn Close
4.1.2 Cài đặt SQL Server Management Studio Tools (SSMS).
SSMS, hay SQL Server Management Studio, là phần mềm do Microsoft phát triển, ra mắt lần đầu vào năm 2005 Ứng dụng này cho phép lập trình viên dễ dàng cấu hình, quản lý và quản trị bộ máy cơ sở dữ liệu SQL Server SSMS được ưa chuộng và sử dụng rộng rãi trong cộng đồng lập trình viên và quản trị viên cơ sở dữ liệu nhờ vào những ưu điểm nổi bật của nó.
- Trải nghiệm người dùng tốt
- Nhiều lựa chọn add-in
Bước 1: Click vào Install SQL Server Management Tools
Bước 3 : Chọn Install để cài đặt, quá trình cài đặt diễn ra hoàn toàn tự động
Bước 4 : Chờ cho đến khi quá trình cài đặt hoàn tất và khởi động lại server
Cài đặt tưởng lửa (firewall) để mở cổng cho SQL
Tường lửa, hay còn gọi là firewall, là một hệ thống bảo mật mạng có chức năng giám sát và kiểm soát lưu lượng mạng dựa trên các quy tắc bảo mật được thiết lập trước Nó tạo ra một rào cản bảo vệ giữa mạng nội bộ đáng tin cậy và mạng bên ngoài không đáng tin cậy như Internet, giúp ngăn chặn các mối đe dọa từ bên ngoài.
Firewall trong thanh công cc
Turn Windows Defender Firewall on or off
Bước 3 : Thực hiện tắt tường lửa -> chọn Turn off Windows Defender Firewall ở cả 2 mcc
Bước 4 : Tường lửa đã được tắt thành công
Nếu bạn không thể tắt tường lửa, có thể do trình duyệt diệt virus đang hoạt động Để tắt tường lửa, hãy xóa hoặc vô hiệu hóa trình duyệt diệt virus trước.
Mục đích: SQL Server sử dụng cổng TCP 1433 để giao tiếp với các ứng dụng Để kết nối với SQL Server, cổng 1433 cần được mở Dưới đây là các bước để mở cổng 1433 cho SQL Server.
Bước 1 : Trong thanh tìm kiếm, tìm SQL Server 2019 Configuration Manager
Bước 2 : Chọn SQL Server Network Configuration + Protocols for CSDLPTNHOM5
Bước 4 : Nhấn IP Addresses, lướt xuống dòng cuối cùng IPAll và chọn TCP Port là 1433
Bước 5 : Chọn SQL Server Sevices và Restart lại Server đã config và restart lại.
M/c đích: Để mở một cổng
Windows để truy cập TCP
Bước 2 : Chọn Inbound Rules -> New Rule
Bước 3 : Rule Type chuyển sang Port => Chọn Next
Bước 4 : Chọn specific local ports + cổng 1433 -> ấn Next
Bước 5 : Tiếp đến ta Chọn Allow the connection (theo mặc định) rồi ấn Next
Bước 6 : Chọn tất cả và bấm next
Bước 7 : Thực hiện đặt tên rule (tcp_1433) -> ấn Finish
Sau khi finish ta cài đặt thành công.
M/c đích: Để mở quyền truy cập vào SQL Server khi sử dcng cổng động
Bước 1 : Trong mcc Rule Type, chọn Program -> ấn Next C:\Program Files\Microsoft
SQL Server\MSSQL16.CSDLPTNHOM5\MSSQL\Binn
Bước 2 : Thực hiện các bước như cài đặt tcp_1433 và đặt tên là sqlserver_csdlptnhom5
4.2.5 Thêm New Rule port udp_1434
Cài đặt tương tự tcp_1433 chỉ khác bước chọn UDP thay vì TCP
Chuẩn bị folder để 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
Bước đầu tiên là tạo một thư mục tại D:\REPLDATA để lưu trữ các dữ liệu trao đổi trong quá trình cập nhật dữ liệu từ các phân mảnh về cơ sở dữ liệu gốc, cũng như từ cơ sở dữ liệu gốc đến các phân mảnh.
Bước 2 : Click chuột phải vào folder
Bước 3 : Chọn Sharing sau đó click vào Share
Bước 4 : Add Everyone sau đó bấm Share
\\Minh2\repldata (Minh2 là tên của máy)
Kết nối máy trạm và các chi nhánh bằng cách sử dcng phần mềm cài đặt VPN
4.4.1 Tải phần mềm Radmin VPN
Giới thiệu: phần mềm Radmin VPN là phần mềm dùng để tạo mạng riêng ảo
(VPN) Cho phép thiết lập kết nối bảo mật giữa các máy tính qua internet như thể các máy tính này kết nối với nhau trên mạng LAN.
Bước 1 : Cài đặt phần mềm Radmin VPN, theo link: https://www.radmin-vpn.com/
Sau khi tải về và cài đặt , ta khởi động phần mềm lên
Các máy trạm sẽ kết nối với nhau và kết nối với máy chủ bằng VPN này Sau khi đã kết nối ta có giao diện như sau:
Bước 3 : Kiểm tra kết nối bằng cách chuột phải vào thành viên và click ping
Và kết quả ra như hình sau nghĩa là các máy đã kết nối với nhau thành công.
4.4.2 Bật TCP IP và thêm IP các máy trạm
Bước 1 : mở Sql Server Configuration Manager để cấu hình IP cho từng máy.
Cài đặt các IP như sau:+ Active: Yes+ Enable: Yes+ Tất cả các TCP Port: 1433
IP1: 26.229.245.132-> là IP máy chủ Các IP còn lại đều là máy trạm.
Sau khi Apply và OK, Restart lại server
Tạo database QLCH
7 Bảng Bill 8.Bảng Bill_detail
Configure distribution
A Distributor is a server that hosts a distributed database, managing metadata, historical data, and transactions In SQL Server, the distributed database is utilized to store and transfer replicated data from the Publisher to the Subscribers There are two types of Distributors: Local Distributor and Remote Distributor.
Bước 1 : Mở SQL và thực hiện việc đăng nhập
Agent,tiếp theo chọn mcc Replication -
>Click chuột phải chọnConfigure Distribution
Bước 3 : Tiếp tcc thực hiện đến bước Snapshot Folder thì chọn link dẫn file REPLDATA đã chuẩn bị từ trước rồi tiếp tcc next đến khi finish
Tạo Publication Database
Replication là công nghệ sao chép và phân phối dữ liệu, đóng vai trò quan trọng trong việc khôi phục dữ liệu sau thảm họa Tính năng này có sẵn trong SSMS, giúp duy trì bản sao thứ hai hoặc bản sao dự phòng cho các đối tượng như bảng, view, stored procedure và cơ sở dữ liệu.
Replication trong Microsoft SQL Server có 4 loại sau:
Merge replication cho phép nhiều máy chủ hoạt động độc lập, cả trực tuyến và ngoại tuyến, sau đó hợp nhất dữ liệu đã thay đổi dựa trên độ ưu tiên, thời điểm chỉnh sửa hoặc theo quy định của người dùng Khi được kết nối vào mạng, subscriber sẽ đồng bộ với publisher và chuyển giao tất cả các hàng đã thay đổi giữa publisher và subscriber kể từ lần đồng bộ cuối cùng.
- Merge replication thường được dùng trong các trường hợp sau:
+ Nhiều subscriber cập nhật cùng một dữ liệu nhiều lần và muốn phân phối những thay đổi đó tới publisher và các subscriber khác
+ Subscriber có nhu cầu nhận dữ liệu, thay đổi dữ liệu offline, sau đó đồng bộ hóa những thay đổi tới publisher và các subscriber khác
+ Mỗi subscriber yêu cầu một phân vùng dữ liệu khác nhau
Bước 1 : Click chuột phải vào Local Publication
Bước 3 : Chọn database muốn phân mảnh Click Next
Bước 4 : Chọn Merge publication để thực hiện phân mảnh -> Click Next
Bước 5 : Tích “SQL Server 2008 or later” Click Next
Bước 6 : Dựa theo quan hệ, lựa chọn các bảng muốn phân mảnh Ở đây là tất cả
Bước 8 : Click Add Chọn Add Filter.
Bước 9 : Tạo phân mảnh ngang nguyên thủy
To filter data from the Store table, select the Store option and double-click on Store_id In the query, add “=’CN1’” to the “WHERE [Store_id]” clause, and then click OK to execute the filter.
Bước: Sau Store ta sẽ phân mảnh các bảng liên quan Chọn “Add join to Extend…”
Sau đó chúng ta sẽ tiến hành add hết các table có liên quan đến nhau và được kết quả cuối cùng như sau , sau đó click Next.
Bước 10 : Tích “Create a snapshot immediately” -> Click Next
Step 12: Select "Run under the SQL Server Agent service account" and "Using the following SQL Server login:" Then, enter the password for the previously created 'sa' account.
Bước 14 : Tích chọn “Create the publication” và “Generate a script …” -> Click Next
Bước 15 : Tích chọn “Overwrite the existing file” và “International text” -> Click Next
Bước 16 : Đặt tên phân mảnh tại ô Publication name -> Click Finish
Bước 17 : Thông báo phân mảnh thành công
Bước 18 : Refresh lại Local Publications để check xem đã có phân mảnh vừa tạo chưa.
Làm tương tự với các cơ sở khác ta sẽ được kết quả như sau:
Sau khi được thì chú ý phải view snapshot cho publication đó:
Nếu như này thì sẽ thành công
Thực hiện phân mảnh dọc
Tạo Subcriptions
4.8.1 Cần có thông tin nick các máy trạm để tạo sub
MINHLAP MINH2\CSDLPTNHOM5 MÁY CHỦ
MẠNH LAPTOP-PF07THTM \CSDLPTNHOM5 QLCH_CN1
MINHPC MINH\CSDLPTNHOM5 QLCH_CN2
TMINH MINKAMII\CSDLPTNHOM5 QLCH_CN3
HMINH DESKTOP-C9V4UNU\CSDLPTNHOM5 QLCH_CN4
NAM Namdeptraihehe\CSDLPTNHOM5 QLCH_CN5
MẠNH LAPTOP-PF07THTM \CSDLPTCHILD4 Product_Is_Out
Bước 1 : Chuột phải vào mảnh và chọn New Subscriptions -> bảng New Subscription
Wizard hiện ra chọn next.
Bước 2 : chọn database và publication
Bước 3 : Tại bảng Merge Agent Location chọn “Run all agents the Distributor, ”
Bước 4 : đăng nhập tài khoản để kết nối Server
Bước 5 : Tại subscribers cài đặt Subscription Database chọn “New database” tương ứng
Agent Security tích chọn các nút như hình và đăng nhập tài khoản vào connect to the subscriber -> click
“Agent Schedule” là Run continuously
Lúc này, cơ sở dữ liệu trên máy trạm đã nhận thông tin và dữ liệu của bảng Giống như các sở khác, chúng ta đã phân tán hoàn toàn dữ liệu đến các máy chủ, mỗi máy chủ đều đã nhận được cơ sở dữ liệu tương ứng.
Với server MINH2/CSCDLPTNHOM5 sẽ có thêm 1 database Product_Is_Out phc trách việc quản lý các sản phẩm sắp hết hàng của các cửa hàng
Đồng bộ hoá dữ liệu từ trạm sang máy chủ
Ví dc đồng bộ dữ liệu bảng Categories lên máy chủ khi các máy trạm phân tán có dữ liệu khớp với máy chủ
Tạo Link Server
Mục tiêu của việc kết nối hai máy tính là để truyền dữ liệu qua lại trực tiếp giữa chúng mà không cần thông qua máy chủ Ví dụ, có thể thực hiện kết nối server từ máy tính MINH sang các máy tính khác để chia sẻ thông tin một cách nhanh chóng và hiệu quả.
Bước: Chọn Server Objects , Linked Server bấm chuột phải chọn New Link Server
Link lần lượt với các mạng trong radmin VPN
Chọn security và điền tài khoản mật khẩu. Được kết quả như sau :
Thử Query từ máy MINH sang máy LAPTOP-PF07THTM\CSDLPTNHOM5(Mạnh)
TRIGGRERS
Tổng số nhân viên của từng cơ sở
CREATE PROCEDURE [dbo].SUMOFEMPLOYEE AS
SELECT s.Store_id, s.Store_Address, COUNT(e.Emp_id)
JOIN Employee e ON s Store_id e = Store_id
GROUP BY s.Store_id, s.Store_Address;
Query gọi ra bảng đã tạo :
Tổng số đơn hàng của từng cơ sở
CREATE PROCEDURE [dbo].SUMOFBILL AS
SELECT s.Store_id, s.Store_Address, COUNT(*) AS Number_of_Bills
The SQL query utilizes INNER JOINs to combine data from the Customer, Employee, and Store tables based on their respective IDs It groups the results by the Store ID and Store Address, allowing for a structured overview of the relationships between customers, employees, and stores.
Tổng doanh thu của từng cơ sở
CREATE PROCEDURE [dbo].TOTALINCOME AS
SELECT s.Store_id, s.Store_Address,
SUM( b Total_price) AS Total_Revenue
The SQL query utilizes INNER JOIN to connect the Customer, Employee, and Store tables based on their respective IDs It aggregates the data by grouping the results according to the Store ID and Store Address, ensuring a comprehensive overview of customer and employee relationships within each store.
In ra doanh thu cũng như đơn hàng giá trị cao nhất và thấp nhất của từng cơ sở.90 6.5 Nhân viên làm việc năng xuất nhất của từng cơ sở
CREATE PROCEDURE [dbo].AVGREPORT AS
SELECT s.Store_id, s.Store_Address,
AVG( b Total_price) AS Average_Revenue ,
MAX( b Total_price) AS Max_Revenue, MIN(b.Total_price)
INNER JOIN Employee e ON b Emp_id e = Emp_id INNER JOIN Store s ON e.Store_id s= Store_id GROUP BY s.Store_id, s.Store_Address;
6.5 Nhân viên làm việc năng xuất nhất của từng cơ sở
CREATE PROCEDURE [dbo].BESTEMPLOYEE AS
SELECT s.Store_id, s.Store_Address, p.Name, e.Emp_id,
SUM(b.Total_price) AS Sales,
ROW_NUMBER() OVER (PARTITION BY s Store_id ORDER BY SUM( b Total_price) DESC) AS Rank
The SQL query utilizes INNER JOINs to connect the Employee, Store, and Person tables based on their respective IDs It groups the results by Store ID, Store Address, Employee Name, and Employee ID, ensuring that the data is organized and relevant for analysis.