Các chi nhánh đặt tại các quận khác nhaunê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áncác dữ liệu cần thiết b, Tầm quan trọng của dự án - Số lượng
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:
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
2
download by : skknchat@gmail.com
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 nhaunê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áncá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
- Đố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
4
download by : skknchat@gmail.com
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
2 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
+ 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 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
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
6
download by : skknchat@gmail.com
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 chinhá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ạiriê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áchhà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êngchi 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êngchi 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
8
download by : skknchat@gmail.com
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
10
download by : skknchat@gmail.com
Trang 111 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
- Nhân viên
ST Tên thuộc Kiểu Ràng buộc Khóa Mô tả
T tính
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ụ
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ên thuộc Kiểu Ràng buộc Khóa Mô tả
T tính
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
Trang 13Not 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 đó:
14
download by : skknchat@gmail.com
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
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= - Bảng phân mảnh Nhanvien
“CH001”(CuaHang)
Nhanvien1 = Nhanvien >≤ CuaHang1
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang1 = SachTaiCuaHang
>≤ CuaHang1
- Bảng phân mảnh ThueThue1 = Thue >≤ CuaHang1
2 Hoàn quanlythuesach CuaHang2 = - Bảng phân mảnh Nhanvien
Kiếm σidcuahang=“CH002”(CuaHang)
Nhanvien2 = Nhanvien >≤ CuaHang2
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang2 = SachTaiCuaHang
>
≤ CuaHang2
- Bảng phân mảnh ThueThue2 = Thue >≤ CuaHang2
3 Tây Hồ quanlythuesach CuaHang3 = - Bảng phân mảnh Nhanvien
σidcuahang=“CH003”(CuaHang)
Nhanvien3 = Nhanvien >≤ CuaHang3
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang3 = SachTaiCuaHang
>
≤ CuaHang3
16
Trang 17download by : skknchat@gmail.com
Trang 18- Bảng phân mảnh ThueThue3 = Thue >≤ CuaHang3
10 Bắc Từ quanlythuesach CuaHang10 = - Bảng phân mảnh Nhanvien
Liêm σidcuahang=“CH0010”(CuaHang)
Nhanvien10 = Nhanvien >≤ CuaHang10
- Bảng phân mảnh SachTaiCuaHangSachTaiCuaHang10 =
SachTaiCuaHang >≤ CuaHang10
- Bảng phân mảnh ThueThue10 = Thue >≤ CuaHang10
17
download by : skknchat@gmail.com
Trang 19e, Lược đồ tổng quát hóa
Trang 20IV 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
19
download by : skknchat@gmail.com
Trang 21- Chọn create a network để tạo mạng LAN
- Click vào mạng “CSDLPT” vừa tạo, copy Network ID
Trang 22- 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
21
download by : skknchat@gmail.com
Trang 232 Config hệ thống và Configure Distribution
- Tắt tường lửa :
Trang 24- Tạo ReplData
23
download by : skknchat@gmail.com
Trang 25- Config Distribution :
Trang 26download by : skknchat@gmail.com
Trang 28download by : skknchat@gmail.com
Trang 293 Tạo Publication
Trang 30download by : skknchat@gmail.com
Trang 32download by : skknchat@gmail.com
Trang 34download by : skknchat@gmail.com
Trang 36download by : skknchat@gmail.com
Trang 384 Tạo Subscriptions
37
download by : skknchat@gmail.com
Trang 40download by : skknchat@gmail.com
Trang 42download by : skknchat@gmail.com
Trang 44download by : skknchat@gmail.com
Trang 45V Dữ liệu và thao tác dữ liệu
1 Tạo CSDL
CREATE TABLE [dbo].[CuaHang](
[idcuahang] [nvarchar](255) NOT NULL,[tencuahang] [nvarchar](255) NULL,[diachi] [nvarchar](255) NOT NULL,CONSTRAINT [PK_CuaHang] PRIMARY KEY CLUSTERED)
CREATE TABLE [dbo].[KhachHang]( [idkhachhang]
[nvarchar](50) NOT NULL, [tenkhachhang]
[nvarchar](255) NOT NULL, [sodienthoai]
[nvarchar](255) NOT NULL, [diachi]
[nvarchar](255) NOT NULL,
CONSTRAINT [PK_KhachHang] PRIMARY KEYCLUSTERED
)