Các chi nhánh đặt tại các quận khác nhau nên cần một hệ thống có thể liên kết các chi nhánh và máy chủ giúp đồng bộ và phân tán các dữ liệu cần thiết b, Tầm quan trọng của dự án - Số lượ
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÀI TẬP LỚNMÔN: Cơ sở dữ liệu phân tán
ĐỀ TÀI: Xây dự cơ sở dữ liệu phân tán quản lý chuỗi cửa hàng
thuê truyện
Giảng viên: Phan Thị Hà Nhóm môn học: 02 Nhóm sinh viên thực hiện:
Vũ Bảo Long B18DCCN366 Đinh Thái Sơn B18DCCN509 Hoàng Thị Thu Hằng B18DCCN201 Nguyễn Thị Thu Hường B18DCCN290 Phạm Thị Quỳnh Trang B18DCCN664 Nguyễn Lan Hương B18DCCN289 Trần Vương Đạt B18DCCN146 Nguyễn Duy Đạt B18DCCN136 Phạm Quang Hiếu B18DCCN224
Đỗ Hoàng Long B18DCCN341
Trang 2MỤC LỤC
3 Phân tích chức năng của từng vị trí thực hiện dự án 6
a, Thiết kế hệ thống csdl cho phân mảnh ngang 14
Trang 3d, Xóa 1 đầu sách 52
Trang 4I Đặt vấn đề
1 Nhu cầu và tầm quan trọng của dự án
a, Nhu cầu của dự án
- Một chuỗi cửa hàng cho thuê sách truyện mới mở tại Hà Nội Các cửa hàng nhỏ được đặt ở các quận của Thủ Đô
- Để quản lý các cửa hàng chi nhánh một cách hiệu quả cần xây dựng
hệ thống quản lý thông tin và dữ liệu kinh doanh Các chi nhánh đặt tại các quận khác nhau nên cần một hệ thống có thể liên kết các chi nhánh và máy chủ giúp đồng bộ và phân tán các dữ liệu cần thiết
b, Tầm quan trọng của dự án
- Số lượng khách hàng tới thuê truyện tại 1 cửa hàng trong ngày là khálớn, xây dựng hệ thống giúp các nhân viên quản lý được thông tin khách hàng đồng thời nâng cao hiệu quả phục vụ
2 Sơ lược về dự án
- Hệ thống gồm 1 máy chủ đặt tại Hà Đông quản lý tất cả thông tin
Có 10 máy trạm đặt tại 10 chi nhanh khác nhau bao gồm : Ba Đình, Hoàn Kiếm, Tây Hồ, Long Biên, Cầu Giấy, Đống Đa, Hoàng Mai, Hai Bà Trưng, Thanh Xuân, Bắc Từ Liêm
- Các chức năng:
+ Quản lý nhân viên+ Quản lý bạn đọc+ Thuê truyện (khi có yêu cầu từ bạn đọc)+ Trả truyện
+ Tạo hóa đơn+ Thanh toán
- Đối tượng sử dụng : Nhân viên tại các chi nhánh
- Mô hình : Client – Server
3 Nhu cầu cần thiết của việc sử dụng cơ sở dữ liệu phân tán trong dự án
- Số lượng chi nhánh lớn và cách xa nhau
- Dễ dàng mở rộng hệ thống, thêm chi nhánh mới
- Giảm chi phí truyền thông
- Đảm bảo tính tin cậy, sẵn sàng
4 Kịch bản
Một chuỗi cửa hàng gồm 10 chi nhánh đặt tại 10 quận của Hà Nội : Ba Đình, Hoàn Kiếm, Tây Hồ, Long Biên, Cầu Giấy, Đống Đa, Hoàng Mai,Hai Bà Trưng, Thanh Xuân, Bắc Từ Liêm và một máy chủ đặt tại Hà Đông Hệ thống được sử dụng bởi các nhân viên tại các chi nhánh phục
vụ cho việc cho khách hàng thuê truyện
- Máy chủ được đặt tại Hà Đông sẽ chịu trách nhiệm lưu lại toàn bộ dữliệu của cả 10 chi nhánh bao gồm các dữ liệu về thông tin khách hàng, thông tin nhân viên, chi nhánh, các loại sách truyện
- Máy chủ sẽ tự động đồng bộ dữ liệu từ các chi nhánh khác nhau và lưu lại toàn bộ dữ liệu đó khi dữ liệu ở máy trạm có sự thay đổi
Trang 5- Mỗi máy trạm tại các chi nhánh sẽ cập nhật, sửa đổi các thông tin về khách hàng, hóa đơn, nhân viên, đầu truyện đã thuê của chi nhánh mình, khi cần đến dữ liệu của một chi nhánh khác, máy trạm sẽ kết nối server đến máy trạm của chi nhánh đó để lấy dữ liệu cần thiết.
II Phân tích
1 Các chức năng chính của hệ thống
- Chức năng quản lý nhân viên
+ Thêm nhân viên : Thêm thông tin nhân viên mới của cửa hàng vào
hệ thống+ Sửa thông tin nhân viên : Sửa đổi và cập nhật lại thông tin nhân viên
+ Xóa nhân viên : Xóa thông tin, tài khoản của nhân viên khỏi hệ thống
→ Được thực hiện tại các chi nhánh, mỗi chi nhánh quản lý thông tinnhân viên của chi nhánh mình
- Chức năng quản lý bạn đọc
+ Thêm, sửa, xóa thông tin khách hàng
→ Được thực hiện tại mỗi chi nhánh và đồng bộ tại máy chủ, các máy trạm tại các chi nhánh sẽ nhận được nhân bản thông tin của khách hàng
- Chức năng thuê truyện: Cho phép nhân viên chọn đầu truyện khi
có yêu cầu thuê truyện từ phía khách hàng
→ Được thực hiện tại các chi nhánh, mỗi chi nhánh quản lý thông tintruyện đã thuê của khách hàng tại chi nhánh của mình
- Chức năng trả truyện:
- Chức năng xem thống kê: Cho phép nhân viên quản lý tại mỗi chi
nhánh xem báo cáo thống kê doanh thu, khách hàng tại chi nhánh của mình quản lý
2 Phân quyền nhóm đối tượng
- Nhân viên quản lý :
+ Quản lý nhân viên tại chi nhánh (thêm, sửa xóa)+ Quản lý thông tin khách hàng
+ Xem các báo cáo thống kê
- Nhân viên bán hàng :
+ Quản lý thông tin bán hàng+ Thực hiện thuê truyện
3 Phân tích chức năng của từng vị trí thực hiện dự án
Máy chủ : Quản lý csdl toàn hệ thống đặt tại Hà Đông Các chi nhánh :
+ Chi nhánh 1 : Quản lý CSDL tại chi nhánh Ba Đình+ Chi nhánh 2 : Quản lý CSDL tại chi nhánh Hoàn Kiếm
Trang 6+ Chi nhánh 3 : Quản lý CSDL tại chi nhánh Tây Hồ
+ Chi nhánh 4 : Quản lý CSDL tại chi nhánh Long Biên
+ Chi nhánh 5 : Quản lý CSDL tại chi nhánh Cầu Giấy
+ Chi nhánh 6 : Quản lý CSDL tại chi nhánh Đống Đa
+ Chi nhánh 7 : Quản lý CSDL tại chi nhánh Hoàng Mai
+ Chi nhánh 8 : Quản lý CSDL tại chi nhánh Hai Bà Trưng+ Chi nhánh 9 : Quản lý CSDL tại chi nhánh Thanh Xuân
+ Chi nhánh 10 : Quản lý CSDL tại chi nhánh Bắc Từ Liêm
4 Phân tích chức năng máy chủ, máy trạm
- Máy chủ :
+ Lưu trữ dữ liệu toàn bộ hệ thống bao gồm các dữ liệu về : sách, khách hàng, nhân viên, sách tại cửa hàng, cửa hàng Máy chủ tự động đồng bộ dữ liệu từ các chi nhánh khác nhau và lưu lại toàn bộ
dữ liệu đó khi dữ liệu ở các máy trạm có sự thay đổi
+ Lấy dữ liệu từ máy trạm tại các chi nhánh con khác Chuyển dữ liệu xuống các máy trạm tại các chi nhánh khi có yêu cầu
- Máy trạm chi nhánh Ba Đình : Quản lý việc cho thuê sách, thống
kê sách tại cửa hàng, thêm khách hàng mới tại chi nhánh Ba Đình+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Ba Đình gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Ba Đình
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Hoàn Kiếm : Quản lý việc thuê sách, thêm
khách hàng mới tại chi nhánh Hoàn Kiếm
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Hoàn Kiếm gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Hoàn Kiếm
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
Trang 7- Máy trạm chi nhánh Tây Hồ : Quản lý việc thuê sách, thêm khách
hàng mới tại chi nhánh Tây Hồ
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Tây Hồ gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Tây Hồ
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Long Biên : Quản lý việc thuê sách, thêm
khách hàng mới tại chi nhánh Long Biên
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Long Biên gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Long Biên
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Cầu Giấy : Quản lý việc thuê sách, tạo hóa
đơn, thêm khách hàng mới tại chi nhánh Cầu Giấy
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Cầu Giấy gồm : thông tin khách hàng,truyện (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, hóa đơn, nhà hàng tại riêng chi nhánh Cầu Giấy
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Đống Đa : Quản lý việc thuê sách, tạo hóa
đơn, thêm khách hàng mới tại chi nhánh Đống Đa
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
Trang 8+ Dữ liệu lưu trữ tại chi nhánh Đống Đa gồm : thông tin khách hàng,sách(nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Đống Đa
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Hoàng Mai : Quản lý việc thuê sách, thêm
khách hàng mới tại chi nhánh Hoàng Mai
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm sách đã thuê của khách hàng vào hệ thống
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Hoàng Mai gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Hoàng Mai
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Hai Bà Trưng : Quản lý việc thuê sách, tạo
hóa đơn, thêm khách hàng mới tại chi nhánh Hai Bà Trưng
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
+ Dữ liệu lưu trữ tại chi nhánh Hai Bà Trưng gồm : thông tin khách hàng, sách(nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Hai Bà Trưng
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Thanh Xuân : Quản lý việc thuê sách, tạo hóa
đơn, thêm khách hàng mới tại chi nhánh Thanh Xuân
+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
- + Dữ liệu lưu trữ tại chi nhánh Thanh Xuân gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên,thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Thanh Xuân
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
- Máy trạm chi nhánh Bắc Từ Liêm : Quản lý việc thuê sách, tạo
hóa đơn, thêm khách hàng mới tại chi nhánh Bắc Từ Liêm
Trang 9+ Cho phép thêm mới một khách hàng chưa có trong hệ thống, thêm truyện đã thuê của khách hàng vào hệ thống, tạo hóa đơn gửi cho khách hàng.
+ Dữ liệu sau khi được thêm vào csdl tại máy trạm sẽ được đồng bộ lên máy chủ tại Hà Đông
- + Dữ liệu lưu trữ tại chi nhánh Bắc Từ Liêm gồm : thông tin khách hàng, sách (nhân bản) , thông tin nhân viên, thuê , sách tại cửa hàng, cửa hàng tại riêng chi nhánh Bắc Từ Liêm
+ Khi cần lấy thông tin từ các chi nhánh khác, máy trạm sẽ truy vấn tới máy chủ để lấy dữ liệu cần thiết
Trang 10III Thiết kế cơ sở dữ liệu
1 Hệ thống mạng tổng quan
- Hệ thống gồm 10 máy trạm đặt tại 10 quận tại Hà Nội, máy chủ đặt tại Hà Đông
Trang 112 Thiết kế lược đồ ER
3 Thiết kế các lớp thực thể
- Cửa hàng:
STT Tên thuộc
1 idcuahang nvarchar(255) Not null PK Mã cửa hàng
2 tencuahang nvarchar(255) Not null Tên cửa hàng
3 diachi nvarchar(255) Not null Địa chỉ cửa hàng
Kiểu Ràng buộc Khóa Mô tả
1 idnhanvien nvarchar(255) Not null PK Mã nhân viên
2 idcuahang nvarchar(255) Not null FK Mã cửa hàng
4 tennhanvien nvarchar(255) Not null Tên nhân viên
8 chucvu nvarchar(255) Not null Chức vụ
Kiểu Ràng buộc Khóa Mô tả
1 idkhachhang nvarchar(255) Not null PK Mã khách hàng
Trang 123 tenkhachhang nvarchar(255) Not null Tên khách hàng
4 sodienthoai nvarchar(255) Not null Số điện thoại
5 diachi nvarchar(255) Not null Địa chỉ khách hàng
- Sách
ST
T Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
1 idsach nvarchar(255) Not null PK Mã sách
2 tensach nvarchar(255) Not null Tên sách
3 theloai nvarchar(255) Not null Thể loại sách
5 giathue float(10) Not null Giá thuê sách
6 tiencoc float(10) Not null Tiền cọc sách
- Thuê
STT Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
1 ngayThue date(10) Not null Ngày mượn
2 datCoc integer(10) Not null Đặt cọc
3 giaThue integer(10) Not null giá thuê
4 IDKhachHang nvarchar(255) Not null FK Mã khách hàng
5 ID nvarchar(255) Not null PK Mã thuê 1 truyện
6 IDSach nvarchar(10) Not null FK Mã sách
7 IDNhanVien nvarchar(10) Not null FK Mã nhân viên
8 IDCuaHang nvarchar(10) Not null FK
9 ngayTra date(10) null Ngày trả
- Sách tại Cửa hàng
STT Tên thuộc tính Kiểu Ràng buộc Khóa Mô tả
1 conLai integer(10) Not null Số lượng sách còn lại tại
chi nhánh
2 IDSach nvarchar(10) Not null PK Mã sách
Trang 133 IDCuaHang nvarchar(10) Not null PK Mã cửa hàng
3 Lược đồ quan hệ
Trang 144 Cơ sở dữ liệu – Diagram
5 Thiết kế lược đồ nhân bản, đồng bộ hóa
a, Thiết kế hệ thống csdl cho phân mảnh ngang
- Các máy trạm tại các quận chỉ được lưu trữ các bản ghi về nhân viên, thuê, sách tại cửa hàng tại mỗi site của mình
- Bảng về Sách, Khách hàng sẽ được sử dụng chung tại các site
b, Thiết kế định vị
Trong đó:
Trang 15- W: tạo mới và ghi
Sử dụng quan hệ tổng là CuaHang làm tiêu chí để phân mảnh Từ đó phân chia thành
10 mảnh đặt tại 10 quận của Hà Nội :
Máy chủ : Đặt tại quận Hà Đông
Vị trí 1 : Máy trạm đặt tại quận Ba Đình
Vị trí 2 : Máy trạm đặt tại quận Hoàn Kiếm
Vị trí 3 : Máy trạm đặt tại quận Tây Hồ
Vị trí 4 : Máy trạm đặt tại quận Long Biên
Vị trí 5 : Máy trạm đặt tại quận Cầu Giấy
Vị trí 6 : Máy trạm đặt tại quận Đống Đa
Vị trí 7 : Máy trạm đặt tại quận Hoàng Mai
Vị trí 8 : Máy trạm đặt tại quận Hai Bà Trưng
Vị trí 9 : Máy trạm đặt tại quận Thanh Xuân
Vị trí 10 : Máy trạm đặt tại quận Bắc Từ Liêm
Nhân viên
Sách Tại Cửa Hàng
Khách hàng
Cửa hàngSách
Thuê
Trang 16Mảnh Server Tên CSDL Phân mảnh ngang nguyên thủy Phân mảnh ngang dẫn xuất
1 Ba Đình quanlythuesach CuaHang1 = σidcuahang=
“CH001”(CuaHang)
- Bảng phân mảnh NhanvienNhanvien1 = Nhanvien >≤ CuaHang1
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang1 = SachTaiCuaHang
>≤ CuaHang1
- Bảng phân mảnh ThueThue1 = Thue >≤ CuaHang1
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang2 = SachTaiCuaHang
>
≤ CuaHang2
- Bảng phân mảnh ThueThue2 = Thue >≤ CuaHang2
3 Tây Hồ quanlythuesach CuaHang3 =
σidcuahang=“CH003”(CuaHang)
- Bảng phân mảnh Nhanvien
Nhanvien3 = Nhanvien >≤ CuaHang3
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang3 = SachTaiCuaHang
>
≤ CuaHang3
Trang 17- Bảng phân mảnh ThueThue3 = Thue >≤ CuaHang3
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang10 =
SachTaiCuaHang >≤ CuaHang10
- Bảng phân mảnh ThueThue10 = Thue >≤ CuaHang10
Trang 18e, Lược đồ tổng quát hóa
Trang 19IV Cài đặt
1 Tạo mạng ảo LAN bằng ZeroTier
- Tải ZeroTier từ trang chủ ZeroTier.com
- Chọn Download
- Chọn biểu tượng của Window để tải về
- Sau khi quá trình tải về hoàn tất click vào để cài đặt zerotier client
- Login vào zerotier trên web
Trang 20- Chọn create a network để tạo mạng LAN
- Click vào mạng “CSDLPT” vừa tạo, copy Network ID
- Mở zerotier đã cài trên máy
Trang 21- Nhập Network id vào ô có dấu ########
- Click Join Network
- Hoàn tất quá trình tạo và Join vào mạng LAN ảo
Trang 222 Config hệ thống và Configure Distribution
- Tắt tường lửa :
Trang 23- Tạo ReplData
Trang 24- Config Distribution :