Chương 1: Thiết kế CSDL phân tán cho hệ thống
I. Khảo sát nghiệp vụ.
- Trong quy chế quản lí học phí của trường Đại học Công Nghiệp Hà Nội, có các
cơ quan phòng ban có liên quan sau:
+ Sinh Viên
+Phòng Kế Hoạch-Tài Chính
+Phòng Công Tác Học Sinh-Sinh Viên
- Tên giao dịch: Hanoi University of industry
- Địa chỉ: Khu A, Phường Minh Khai, Quận Bắc Từ Liêm, Hà Nội.
- Điện thoại liên hệ: 04.37655391.
- Địa chỉ Website:
II. Mô tả bài toán.
Vào đầu mỗi kì học sinh viên nhận được thông báo đóng học phí thông qua thầy
cô giáo chủ nhiệm lớp hoặc các bộ trong lớp. Sinh viên cần biết được số tiền mà
học kì này mình đóng. Việc đóng học phí tại trường Đại học Công Nghiệp Hà Nội
thông qua: Đóng trực tiếp tại phòng Tài Chính-Kế Toán. Khi thực hiện đóng trực
tiếp yêu cầu sinh viên mang theo thẻ sinh viên và đủ số tiền cần đóng. Khi đó nhân
viên tại phòng Tài Chính-Kế Toán sẽ nhập các thông tin cần thiết của sinh viên cho
hệ thống. Khi đó hệ thống sẽ xuất ra 2 biên lai phiếu thu, 1 phiếu lưu lại phòng Tài
Chính-Kế Toán, 1 phiếu sinh viên sẽ giữ.
Ngoài ra hệ thống cần lưu trữ thông tin về sinh viên trong trường(tên, lớp,mã sinh
viên, số điện thoại, địa chỉ, khoa...). Trong thông tin lưu trữ về sinh viên cần có
thông tin về các khoản thu đã nộp và khoản thu chưa nộp.
* Cơ cấu hoạt động của các phòng ban:
1. Sinh Viên.
- Sinh viên cần nắm rõ được chính xác lịch đóng học phí theo từng hệ mà mình học
như: Đại Học, Cao Đẳng, Trung Cấp... để tránh đóng lịch nhàm gây ra hiện tượng
quá tải khi đóng học phí.
- Sinh viên cần biết được số tiền mà mình học kì này mình đóng. Việc đóng học
phí tại trường Đại học Công Nghiệp Hà Nội thông qua việc đóng trực tiếp tại
phòng Tài Chính-Kế Toán.
- Sau khi đóng học phí xong thì sinh viên lấy lại thẻ sinh viên và phải có trách
nhiện giữ 1 biên lai thu tiền, nhân viên thu tiền giữ 1 bản để phòng trường hợp sau
này có biến cố gì thay đổi thì sinh viên lấy biên lai đó ra đối chiếu.
2. Phòng Kế Hoạch Tài Chính.
- Đầu mỗi học kì phòng ban này có chức năng gửi thông báo nộp học phí về các
khoa.
- Trực tiếp thu học phí của sinh viên khi sinh viên đến đóng học phí và trưởng
khoa triển khai đến giáo viên chủ nhiệm thông báo chi sinh viên nộp học phí.
- Khi sinh viên đóng học phí xong thì nhân viên thu tiền sẽ giữ 1 biên lai đóng học
phí và biên lai còn lại sẽ đưa cho sinh viên.
- Khi đã hết hạn đóng học phí thì phòng Kế Hoạch Tài Vụ báo cáo danh sách sinh
viên đóng học phí đúng thời hạn để nộp cho phòng đào tạo và xác nhận những sinh
viên này được dự thi.
- Với những sinh viên không đóng học phí đúng hạn sẽ không được dự thi. Khi đó
phòng ban này lập báo cáo danh sách sinh viên không đóng học phí đúng hạn gửi
phòng đào tạo.
- Nếu những sinh viên này vẫn không đóng học phí thì phòng ban này sẽ tạm
ngưng việc thu học phí với những sinh viên đó và gửi danh sách sinh viên nợ học
phí cho phòng Công Tác Học Sinh,Sinh Viên.
3. Phòng Công tác học sinh-sinh viên
- Đối với những sinh viên nợ học phí quá hạn thì phòng ban này có chức năng liên
lạc với sinh viên đó yêu cầu đóng học phí trong 1 tuần tới. Nếu sau 1 tuần sinh
viên đó vẫn không đóng học phí thì phòng Công Tác Học Sinh-Sinh Viên liên lạc
với gia đình sinh viên yêu cầu đóng học phí. Nếu trong thời gian 15 ngày mà vẫn
chưa đóng thì phòng ban này quyết định xóa tên sinh viên và trình Ban giám hiệu
kí.
III. Thiết kế cơ sở dữ liệu tập trung cho hệ thống.
1. Phân tích thực thể.
Thực thể Sinhvien là đối tượng mà hệ thống quản lí có nhiệm vụ nộp học phí.
Thuộc tính
Mô tả
Masv
Mã sinh viên
Hoten
Họ tên
Malop
Mã lớp
Gioitinh
Giới tính
Thực thể Lớp để lưu trữ thông tin về lớp học của sinh viên
Thuộc tính
Mô tả
Malop
Mã lớp
Tenlop
Tên lớp
Makhoa
Mã khoa
Thực thể Ngành để lưu trữ thông tin về ngành học của sinh viên
Mô tả
yuhThuộc tính
Manganh
Mã ngành
Tennganh
Tên ngành
Makhoa
Mã khoa
Thực thể Khoa để lưu trữ thông tin về khoa của sinh viên
Thuộc tính
Mô tả
Makhoa
Mã khoa
Tenkhoa
Tên khoal
Thực thể phieuthu để lưu trữ khoản thu học phí
Thuộc tính
Mô tả
Sophieuthu
Số phiếu thu
Ngaythu
Ngày thu
Masv
Mã sinh viên
Mahocki
Mã học kì
Mamon
Mã môn
Thực thể khoanthu dùng để lưu trữ thông tin về khoản thu
Thuộc tính
Mô tả
Makhoanthu
Mã khoản thu
Tenkhoanthu
Tên khoản thu
Sotien
Số tiền
Thực thể chitietphieuthu lưu trữ thông tin về học phí
Thuộc tính
Mô tả
Sophieuthu
Số phiếu thu
Makhoanthu
Mã khoản thu
Soluong
Số lượng
Thực thế đangkiHP lưu trữ thông tin về học phần
Thuộc tính
Mô tả
Masv
Mã sinh viên
Mamon
Mã môn
Ngaydangki
Ngày đăng kí
Mahk
Mã học kì
Thực thế Mon lưu trữ thông tin về môn học của sinh viên
Thuộc tính
Mô tả
Mamon
Mã môn
Tenmon
Tên môn
Sotinchi
Số tín chỉ
Thực thế hocky lưu trữ thông tin về học kì của sinh viên
Thuộc tính
Mô tả
Mahk
Mã học kì
Tenhk
Tên học kì
2. Mô hình cơ sở dữ liệu tập trung
IV. Thiết kế mô hình cơ sở dữ liệu phân tán cho hệ thống
Trong hệ thống quản lí thu học phí, ở đây phân mảnh ngang nguyên thủy để
chia hệ cơ sở dữ liệu thành 3 mảnh đặt ở 3 trạm dựa trên 3 nhóm khoa và 1
trạm trung tâm dữ liệu:
Trạm 1: CSDL của sinh viên ngành: KHMT, HTTT, Cơ Khí, Điện tử,
Ngoại ngữ.
Trạm 2: CSDL của sinh viên ngành: May, Kế toán, QTKD, QTKD du
lich-khách sạn, Hóa.
Trạm 3:CSDL của sinh viên các ngành còn lại
Trạm 4: Trạm trung tâm dữ liệu
Trong đó:
Trạm 1 chỉ được quản lí việc thu học phí của sinh viên các ngành
KHMT, HTTT, Cơ Khí, Điện tử, Ngoại ngữ.
Trạm 2 chỉ được quản lí việc thu học phí của sinh viên các ngành
May, Kế toán, QTKD, QTKD du lich-khách sạn, Hóa.
Trạm 3 chỉ được quản lí việc thu học phí của sinh viên các ngành còn
lại.
Trạm 4 được truy cập tới tất cả các trạm còn lại. Trạm trung tâm được
thêm, sửa, xóa thông tin tại tất cả các trạm. Còn các trạm 1, trạm 2, trạm 3 chỉ
được phép thêm, sửa, xóa thông tin thuộc trạm đấy quản lý.
1. Phân mảnh dữ liệu
Phân mảnh ngang quan hệ ngành
Phân mảnh dữ liệu
• Phân mảnh ngang quan hệ TrD
+ Tập các vị từ đơn giản:
p1 : tenkhoa € {khmt,ktpm,httt, cơ khí, điện tử, ngoại ngữ)
p2 : tenkhoa € {may,kế toán,qtkd, du lịch-khách sạn, hóa)
p3 : ten khoa € tập các ngành còn lại
Pr = { p1, p2, p3}
Pr’ = Ø, F = Ø;
+ Xét vị từ p1:
Có p1 phân mảnh quan hệ tenkhoa theo quy tắc 1
Pr’ ={p1}
+ Xét vị từ p2:
Có p2 phân mảnh quan hệ tenkhoa theo quy tắc 1
Pr’ ={p1,p2}
+ Xét vị từ p3:
Có p3 phân mảnh quan hệ tenkhoa theo quy tắc 1
Pr’ ={P1, P2, P3}
Theo thuật toán COM_MIN, tập Pr’ ={P1, P2, P3} rõ ràng đầy đủ và cực tiểu:
+ Hội các vị từ sơ cấp:
m1: p1˄ p2 (Loại vì phân mảnh trên cùng thuộc tính)
m2:p1˄ p3 (Loại vì phân mảnh trên cùng thuộc tính)
m3: p2˄ p3 (Loại vì phân mảnh trên cùng thuộc tính)
m4: p1˄ ┐p2 p1˄(p3˅p1) (p1˄p3)˅(p1˄p1) (loại)
m5: p1˄ ┐p3 p1˄(p2˅p1) (p1˄p2)˅(p1˄p1) (loại)
m6: p2˄ ┐p3 p2˄(p2˅p1) (p2˄p2)˅(p2˄p1) (loại)
m7: p2˄ ┐p1 p2˄(p1˅p3) (p2˄p1)˅(p2˄p3) (loại)
m8: p3˄ ┐p1 p3˄(p2˅p3) (p3˄p2)˅(p3˄p3) (loại)
m9: p3˄ ┐p2 p3˄(p3˅p1) (p3˄p3)˅(p3˄p1) (loại)
m10: p1˄ ┐(p2˄p3) p1˄p1 p1
m11: p2˄ ┐(p1˄p3) p2˄p2 p2
m12: p3˄ ┐(p1˄p2) p3˄p3 p3
do p1˄ p2 = Ø, p1˄ p3= Ø,p2˄ p3= Ø
=>chọn m10, m11, m12 để phân mảnh
Quan hệ Khoa đươc phân mảnh ngang nguyên thủy thành 3 mảng ngang như sau:
Khoa_Tram1, Khoa_Tram2, Khoa_Tram3 :
Khoa_Tram1= σ Khoa=” khmt,ktpm,httt, cơ khí, điện tử, ngoại ngữ”(Khoa)
Khoa_Tram2= σ Khoa=” may,kế toán,qtkd, du lịch-khách sạn, hóa”(Khoa)
Khoa_Tram3= σ Khoa=” tập các ngành còn lại”(Khoa)
Ta phân mảnh dữ liệu dựa trên các quan hệ sau:
KHOA(makhoa,tenkhoa)
LOP(malop,tenlop,makhoa)
NGANH(manganh,makhoa,tennganh)
SINHVIEN(maSV, tenSV, malop, gioitinh)
MON(mamon,tenmon,sotinchi)
DANGKIHP(maSV, mamon, maHK, ngayDK)
PHIEUTHU(maSV, sophieuthu, ngaythu,maHK,mamon)
KHOANTHU(makhoanthu,tenkhoanthu,sotien)
CHITIETPHIEUTHU(sophieuthu, makhoanthu, soluong)
HOCKI(maHK,tenHK)
Phân mảnh ngang dẫn xuất trên quan hệ Nganh thành 3 mảnh ngang Nganh_Tram1,
Nganh _Tram2, Nganh _Tram3 như sau:
Nganh _Tram1 = Nganh
Khoa_Tram1
Nganh _Tram2 = Nganh
Khoa _Tram2
Nganh _Tram3 = Nganh
Khoa _Tram3
Phân mảnh ngang dẫn xuất trên quan hệ Lop thành 3 mảnh ngang Lop_Tram1, Lop
_Tram2, Lop _Tram3 như sau:
Lop _Tram1 = Lop
Nganh _Tram1
Lop _Tram2 = Lop
Nganh _Tram2
Lop _Tram3 = Lop
Nganh _Tram3
Phân mảnh ngang dẫn xuất trên quan hệ Sinhvien thành 3 mảnh ngang Sinhvien
_Tram1, Sinhvien _Tram2, Sinhvien _Tram3 như sau:
Sinhvien _Tram1 = Sinhvien
Lop_Tram1
Sinhvien _Tram2 = Sinhvien
Lop _Tram2
Sinhvien _Tram3 = Sinhvien
Lop _Tram3
Phân mảnh ngang dẫn xuất trên quan hệ DangkiHP thành 3 mảnh ngang DangkiHP
_Tram1, DangkiHP _Tram2, DangkiHP _Tram3 như sau:
DangkiHP _Tram1 = DangkiHP
Sinhvien_Tram1
DangkiHP _Tram2 = DangkiHP
Sinhvien _Tram2
DangkiHP _Tram3 = DangkiHP
Sinhvien _Tram3
Phân mảnh ngang dẫn xuất trên quan hệ Phieuthu thành 3 mảnh ngang Phieuthu
_Tram1, Phieuthu _Tram2, Phieuthu _Tram3 như sau:
Phieuthu _Tram1 = Phieuthu
DangkiHP_Tram1
Phieuthu _Tram2 = Phieuthu
DangkiHP _Tram2
Phieuthu _Tram3 = Phieuthu
DangkiHP _Tram3
Phân mảnh ngang dẫn xuất trên quan hệ Chitietphieuthu thành 3 mảnh ngang
Chitietphieuthu _Tram1, Chitietphieuthu _Tram2, Chitietphieuthu _Tram3 như
sau:
Chitietphieuthu _Tram1 = Chitietphieuthu
Phieuthu_Tram1
Chitietphieuthu _Tram2 = Chitietphieuthu
Phieuthu _Tram2
Chitietphieuthu _Tram3 = Chitietphieuthu
Phieuthu _Tram3
Chương 2: Xây dựng CSDLPT trong hệ quản trị CSDL SQL
( ORACLE)
I.
Cấu trúc các bảng dữ liệu
Bảng SINHVIEN
Stt Tên thuộc tính
Kiểu
Ràng buộc Khóa chính
Mô tả
/ khóa phụ
(PK/FK)
1
Masv
varchar(10)
Not null
PK
Mã sinh viên
2
Hoten
nvarchar(30) Not null
Họ tên
3
Malop
float
Not null
Mã lớp
4
Gioitinh
Varchar(10)
Not null
Giới tính
Kiểu
Ràng buộc Khóa chính
Mô tả
Bảng LOP
Stt Tên thuộc tính
/ khóa phụ
(PK/FK)
1
Malop
Varchar(10) Not null
PK
Mã lớp
2
Tenlop
nvarchar(30) Not null
Tên lớp
3
Makhoa
Varchar(10) Not null
Mã khoa
Kiểu
Mô tả
Bảng NGANH
Stt Tên thuộc tính
Ràng buộc Khóa chính
/ khóa phụ
(PK/FK)
1
Manganh
varchar(10)
2
Tennganh
nvarchar(30) Not null
3
Makhoa
float
Bảng KHOA
Not null
Not null
PK
Mã ngành
Tên ngành
PK
Mã khoa
Stt Tên thuộc tính
Kiểu
Ràng buộc Khóa chính
Mô tả
/ khóa phụ
(PK/FK)
1
Makhoa
varchar(10)
Not null
PK
Mã khoa
2
Tenkhoa
Varchar(30)
Not null
Tên khoa
Kiểu
Ràng buộc Khóa chính
Mô tả
Bảng PHIEUHU
Stt Tên thuộc tính
/ khóa phụ
(PK/FK)
1
Sophieuthu
foat
Not null
PK
Số phiếu thu
2
Ngaythu
datetime
Not null
Ngày thu
3
Masv
Varchar(10)
Not null
Mã sinh viên
4
Mahocki
Varchar(10)
Not null
Mã học kì
5
Mamon
varchar(10)
Not null
Mã môn
Bảng KHOANTHU
Stt Tên thuộc tính
Kiểu
Ràng buộc Khóa chính
Mô tả
/ khóa phụ
(PK/FK)
1
Makhoanhu
varchar(10)
Not null
PK
Mã khoản thu
2
Tenkhoanthu
nvarchar(30) Not null
Tên khoản thu
3
Sotien
float
Not null
Số tiền
Ràng buộc Khóa chính
Mô tả
Bảng CHITIETPHIEUTHU
Stt Tên thuộc tính
Kiểu
/ khóa phụ
(PK/FK)
1
Sophieuthu
float
Not null
PK
Số phiếu thu
2
Makhoanthu
varchar(10)
Not null
PK
Mã khoản thu
3
Soluong
float
Not null
Số lượng
Bảng DANGKIHOCPHAN
Stt Tên thuộc tính
Kiểu
Ràng buộc Khóa chính
Mô tả
/ khóa phụ
(PK/FK)
1
Masv
varchar(10)
Not null
PK
Mã sinh viên
2
Mamon
varchar(10)
Not null
PK
Mã môn
3
Ngaydangki
datetime
Not null
4
Mahk
Varchar(10)
Not null
Kiểu
Ràng buộc Khóa chính
Ngày đăng kí
PK
Mã học kì
Bảng MON
Stt Tên thuộc tính
Mô tả
/ khóa phụ
(PK/FK)
1
Mamon
varchar(10)
Not null
2
Tenmon
nvarchar(30) Not null
Tên môn
3
Sotinchi
float
Số tín chỉ
Not null
PK
Mã môn
Bảng HOCKY
Stt Tên thuộc tính
Kiểu
Ràng buộc Khóa chính
Mô tả
/ khóa phụ
(PK/FK)
1
Mahk
varchar(10)
2
Tenhk
nvarchar(30) Not null
II.
Mô hình CSDL phân tán.
Not null
PK
Mã học kỳ
Tên học kì