Phân tích
Các chức năng của hệ thống
Hệ thống cho phép người dùng thực hiện các thao tác đăng nhập và các thao tác cơ bản như thêm/ sửa/ xóa dữ liệu của hệ thống Với các chức năng cụ thể:
+ Quản lí trường học: thực hiện việc quản lí thông tin các trường học trong nước.
+ Quản lí sinh viên: quản lí tài khoản các sinh viên học tại trường học được phép đăng nhập vào hệ thống.
+ Quản lí giảng viên: quản lí tài khoản các giảng viện dạy tại trường học được phép đăng nhập vào hệ thống.
+ Quản lí môn học: quản lí các môn học thuộc danh sách các môn học của trường học.
Chức năng của từng vị trí thực hiện
+ Máy trạm 1: Quản lý CSDL tại chi nhánh An Giang
+ Máy trạm 2: Quản lý CSDL tại chi nhánh Bắc Giang
+ Máy trạm 3: Quản lý CSDL tại chi nhánh Bắc Ninh
+ Máy trạm 4: Quản lý CSDL tại chi nhánh Hà Nam
+ Máy trạm 5: Quản lý CSDL tại chi nhánh Hải Dương
+ Máy trạm 6: Quản lý CSDL tại chi nhánh Hải Phòng
+ Máy trạm 7: Quản lý CSDL tại chi nhánh Hưng Yên
+ Máy trạm 8: Quản lý CSDL tại chi nhánh Nam Định
+ Máy trạm 9: Quản lý CSDL tại chi nhánh Nghệ An
+ Máy trạm 10: Quản lý CSDL tại chi nhánh Thanh Hóa
Chức năng của máy trạm và máy chủ
+ Lưu trữ dữ liệu toàn bộ hệ thống bao gồm các dữ liệu về: trường, giảng viên, sinh viên, khoa, môn học, môn học đã đăng ký 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 An Giang: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh An Giang.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh An Giang. + Khi cần 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 Giang: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Bắc Giang.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Bắc Giang.
+ Khi cần 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 Ninh: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Bắc Ninh.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Bắc Ninh. + Khi cần 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 Hà Nam: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Hà Nam.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Hà Nam. + Khi cần 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 Hải Dương: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Hải Dươ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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Hải Dương.
+ Khi cần 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 Hải Phòng: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Hải Phò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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Hải Phòng.
+ Khi cần 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 Hưng Yên: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Hưng Yên.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Hưng Yên.
+ Khi cần 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 Nam Định: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Nam Định.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Nam Định.
+ Khi cần 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 Nghệ An: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Nghệ An.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Nghệ An. + Khi cần 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 Hóa: Quản lý việc đăng ký môn học, quản lý sinh viên, giảng viên tại chi nhánh Thanh Hóa.
+ 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à Nội.
+ Dữ liệu lưu trữ tại chi nhánh gồm: thông tin sinh viên, giảng viên, môn học, khoa, môn học đã đăng ký, học phí, nhà trường tại riêng chi nhánh Thanh Hóa.
+ Khi cần 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.
Phân quyền các nhóm đối tượng thực hiện dự án
Người quản lý (tại máy chủ tổng):
+Xem thông tin giảng viên, sinh viên, lớp đăng ký, lớp học phần. +Xem, thêm, sửa, xóa tất cả dữ liệu về trường học, khoa, môn học. Nhân viên (tại các chi nhánh):
+Xem thông tin khoa, môn học, trường học.
+Được xem, thêm, sửa, xóa giảng viên, sinh viên, lớp đăng ký, lớp học phần.
Bảng tần suất truy cập
Thực thể Trụ sở chính Các chi nhánh
Thiết kế
Thiết kế hệ thống mạng tổng quan
Chi nhánh tổng: Đặt máy Server Hà Đông Hà Nội thực hiện các chức năng lưu CSDL của toàn hệ thống, đóng vai trò Server trung tâm đặt tại Hà Nội, dùng lưu tất cả các bản sao của bảng dữ liệu ở các server chi nhánh Server trung tâm này quản lý đến các Server chi nhánh và phân quyền truy cập CSDL hệ thống.
Chi nhánh An Giang: Đặt máy Server trạm An Giang thực hiện các chức năng và lưu CSDL nằm ở An Giang
Chi nhánh Bắc Giang: Đặt máy Server trạm Bắc Giang thực hiện các chức năng và lưu CSDL nằm ở Bắc Giang
Chi nhánh Bắc Ninh: Đặt máy Server trạm Bắc Ninh thực hiện các chức năng và lưu CSDL nằm ở Bắc Ninh
Chi nhánh Nghệ An: Đặt máy Server trạm Nghệ An thực hiện các chức năng và lưu CSDL nằm ở Nghệ An
Chi nhánh Hà Nam: Đặt máy Server trạm Hà Nam thực hiện các chức năng và lưu CSDL nằm ở Hà Nam
Chi nhánh Hải Dương: Đặt máy Server trạm Vinh thực hiện các chức năng và lưu CSDL nằm ở Hải Dương
Chi nhánh Hải Phòn: Đặt máy Server trạm Hải Phòng thực hiện các chức năng và lưu CSDL nằm ở Hải Phòng
Chi nhánh Hưng Yên: Đặt máy Server trạm Hưng Yên thực hiện các chức năng và lưu CSDL nằm ở Hưng Yên
Chi nhánh Nam Địn: Đặt máy Server trạm Nam Định thực hiện các chức năng và lưu CSDL nằm ở Nam Định
Chi nhánh Thanh Hóa: Đặt máy Server trạm Thanh Hóa thực hiện các chức năng và lưu CSDL nằm ở Thanh Hóa
Thiết kế CSLD hệ thống
2.1 Lược đồ phục vụ cho phân mảnh ngang
Tại máy chủ mối quan hệ toàn cục được phân thành 10 mảnh Mỗi mảnh chỉ có một bản sao tại máy chủ nhất định
Trong quá trình thiết kế phân mảnh cho hệ thống, chúng tôi chỉ sử dụng phân mảnh ngang để phân tán dữ liệu tạo nên cấu trúc vật lý của các bảng dữ liệu tại các trạm đều giống nhau Các bảng dữ liệu tương ứng với các thực thể và mối quan hệ có trong hệ thống như sau: Các ký hiệu dùng để mô tả:
+ Null: N (No, không được rỗng), Y (Yes, có thể rỗng).
+ PK (Primary key - khóa chính)
Các bảng cơ sở dữ liệu:
1 Trường Chứa thông tin liên quan đến trường cho công tác quản lý thông tin trường đó
2 Sinh viên Chứa thông tin sinh viên, phục vụ cho công tác quản lý sinh viên
3 Giảng viên Chứa thông tin giảng viên, phục vụ cho công tác quản lý giảng viên
4 Đăng ký Chứa thông tin lớp học phần đã đăng ký của sinh viên, phục vụ công tác quản lý đăng ký của sinh viên
5 Khoa Chứa thông tin khoa, phục vụ cho công tác quản lý khoa
6 Lớp học Chứa thông tin lớp học phần, phục vụ công tác quản lý lớp phần học phần
7 Môn học Chứa thông tin môn học, phục vụ công tác quản lý môn học
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Khóa Mô tả
1 MaCN VARCHAR(255) NOT NULL PK Mã của một chi nhánh
2 TenTH VARCHAR(255) NOT NULL Tên của trường học
3 DiaChi VARCHAR(255) NOT NULL Địa chỉ của trường học
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Khóa Mô tả
PK Mã của một sinh viên NULL
Tên của sinh viên NULL
Ngày sinh của sinh viên NULL
4 DiaChi VARCHAR(255) NOT Địa chỉ của trường học NULL
FK Mã trường học của sinh
FK Mã khoa của sinh viên NULL
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Khóa Mô tả
1 MaK VARCHAR(255) NOT NULL PK Mã của một khoa
2 TenK VARCHAR(255) NOT NULL Tên của khoa
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Khóa Mô tả
1 MaMH VARCHAR(255) NOT NULL PK Mã của một môn học
2 TenMH VARCHAR(255) NOT NULL Tên của trường học
3 Sotinchi int(11) NOT NULL Số tín chỉ của một môn học
4 MaK VARCHAR(255) NOT NULL FK Mã khoa của môn học
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Khóa Mô tả
1 MaGV VARCHAR(255) NOT NULL PK Mã của một môn học
2 TenGV VARCHAR(255) NOT NULL Tên của trường học
3 Email VARCHAR(255) NOT NULL Số tín chỉ của một môn học
4 MaCN VARCHAR(255) NOT NULL FK Mã trường của giáo viên
5 MaK VARCHAR(255) NOT NULL FK Mã khoa của môn học
Kiểu dữ liệu Ràng buộc Khóa Mô tả tính
PK Mã của một lớp học phần NULL
Tên của lớp học phần NULL
FK Mã giảng viên của phòng
FK Mã môn học của phòng
Khóa Mô tả tính buộc
FK Mã sinh viên của lớp học phần NULL được đăng ký
FK Tên của lớp học phầnNULL
3 NgayDK DATE NULL Thời gian đăng kí môn học của sinh viên
2.5 Thiết kế nhân bản đồng bộ
Bảng KHOA nhân bản ở tất cả các trạm
Bảng MONHOC nhân bản ở tất cả các trạm
2.6 Thiết kế lược đồ phân mảnh
Dựa vào khoảng cách địa lý, tần suất sử dụng và hoạt động của hệ thống, việc phân mảnh dữ liệu sẽ được đề xuất phân mảnh dữ liệu như sau: Phân mảnh sơ sở dữ liệu quản lý trường học thành 11 mảnh:
+ Server chứa thông tin về khoa và môn học
+ Các chi nhánh đặt trên 10 máy trạm (như đã phân ở phần trên) : chứa toàn bộ thông tin sinh viên, giảng viên, lớp học phần, lớp đăng kí Để phân mảnh cơ dữ liệu từ máy chủ xuống 1o máy trạm, chọn quan hệ tổng thể là Trường học để làm mốc cho việc phân mảnh, dựa vào các mảnh của trường học sẽ dẫn xuất đến sự phân mảnh của các hệ tổng thể còn lại
STT Tên Nguyên thủy Dẫn xuất
2.7 Tạo liên kết giữa các bảng
Mô hình kiến trúc sử dụng : Client- server
Cài đặt
Tạo mạng lan ảo bằng zerotier
- Chọn biểu tượng windown để tải về
- Quả trình tải về hoàn tất, click vào để cài đặt zerotier client.
- Login và zerotier trên web
- Chọn create a network để tạo mạng lan
- Nhấp vào mạng vừa tạo
- Mở zerotier đã cài trên máy
- Nhập network id vào ô có dấu ########
- Hoàn tất quá trình tạo và join vào mạng lan ảo.
Phân tán CSDL theo chi nhánh
- Truy cập SQL server chứa CSDL tập trung bằng tài khoản sa:
- Chuột phải mục Local Publication và chọn ‘new Publication’:
- Chọn CSDL muốn phân tán và nhấn next:
- Chọn merge publication và next:
- Chịn SQL 2008 or later và next:
- Chọn các bảng muốn phân tán trong CSDL và ấn next:
- Chọn Add và chọn add filter để them lược đồ phân mảnh:
- Lựa chọn bảng có chứa điều kiện phân mảnh và thiết lập câu lệnh phân mảnh, nhấn OK Ở đây điều kiện phân mảnh trường học trong CSDL theo CN1:
- Thiết lập các phân mảnh ngang dẫn suất theo phân mảnh ngang nguyên bản Chọn ‘Add’, chọn mục ‘Add join to Extends or select filter…’.
- Chọn các bảng sẽ bị phân mảnh theo trường học Ở đây có sinh viên và giảng viên:
- Nhấn Ok cho từng bảng và dược kết quả:
- Tiếp theo ta chọn các bảng sẽ phân mảnh theo sinh viên và giảng viên. Ở đây có lớp học phần bị phân mảnh theo giảng viên và đăng kí bị phân mảnh theo sinh viên:
- Nhấn OK và được kết quả lược đồ phân tán sau:
- CHọn các mục chứa SQL Server và điền thông tin tài khoản sa của SQL server.
- Đặt tên và nhấn Finish:
- Nhấn Close để hoàn tất tạo publication
- Kết nối tới một máy trong mạng thông qua tài khoản sa để phân tán:
- Mở lại phần Local publication ta sẽ thấy
- Chuột phải vào publication vừa tạo và chọn new subcription:
- Chọn publication mong muốn và next
- Chọn Add sql server subcriber:
- Nhập server name và tài khoản sa của server sẽ chứa csdl sau khi phân mảnh:
- Nhấn và vùng trống cột subcription database và chọn new database:
- Đặt tên cho database và nhấn ok
- Chọn dấu 3 chấm góc phải
- Chọn các mục chứa SQL server và nhập tài khoản sa của server con
- Sửa cột Agent Schedule thành run continuously
- Nhấn close để hoàn tất
- Mở rộng phần local publication lại, chuột phải vào publication vừa tạo, chọn View Snapshot Agent Status để xem kết quả chạy phân tán
- Đang bị lỗi do thư mục chung chưa ở chế độ share.
- Ta tạo một thu mục mới có tên replData ngoài desktop
- Chuột phải thư mục chọn properties
- Nhấn nút sổ xuống cột permission level và chọn read and write
- Vào SQL server và chọn publication bị lỗi, chuột phải và chọn properties
- Tích chọnPut file in the following folder:
- Nhập đường dẫn tới thu mục replData ngoài desktop vừa tạo
- Chuột phải lại vào publication bị lỗi và chọn view snapshot agent status.
- Nhấn close để kết thúc và hoàn tất quá trình phân tán.
Tạo linkserver
- Chọn tab SQL server network configuration
- Click đúp server sql của bạn
- Chuột phải tcp/ip chọn enable
- -khởi động lại dịch vụ sql server để hoàn tất.
- Mở rộng mục Serve objects
- Chuột phải linked server và chọn new server o Linked Server: tên đặt tùy chọn o Provider chọn Sql server native client o Product name: tên server muốn link o Datasource: là chuỗi ‘tcp:’ +
- Chọn xác thực bằng SQL và nhập tài khoản sa của server muốn link
- Đặt RPC Out bằng true
- Nhấn OK để hoàn tất
Phân quyền tài khoản SQL
- Mở rộng mục Security và chuột phải vào login chọn new login để tạo locin mới
- Chọn xác thực SQl và nhập thông tin login name và password
- Chuột phải tài khoản vừa tạo, chọn properties và chọn tab user mapping
- Chọn csdl muốn phan quyền và chọn các quyền ở ô bên dưới Ở đây chọn quyền sở hữu csdl(db owner-full quyền Xem them ở https://quantrimang.com/tim-hieu-ve-khai-niem-role-trong-sql-server-82533).
- Nhấn OK để hoàn tất phân quyền.