Các đối tƣợng của hệ thống

Một phần của tài liệu Xây dựng cơ sở dữ liệu phân tán quản lý học sinh sinh viên tại trường cao đẳng kỹ nghệ dung quất (Trang 64)

7. Kết luận

3.3.4. Các đối tƣợng của hệ thống

- Sinh viên - Lớp - Khoa - Ngành - Khóa học - Thời khóa - Chế độ Chính sách - Giảng viên - Dân tộc - Khu vực - Tôn giáo - Tình trạng Sinh viên - Tình trạng Hôn nhân - Giới tính 3.3.5. Xây dựng các thực thể và thuộc tính a. Thực thể Sinh viên - Tên thực thể: SINH_VIEN

- Thuộc tính: MA_SINH_VIEN, HO, HO_LOT, TEN, NGAY_SINH, NOI_SINH_DIA_CHI, NOI_SINH_PHUONG_XA,

NOI_SINH_QUAN_HUYEN, NOI_SINH_TINH_THANH_PHO, NOI_SINH_QUOC_GIA, TTHN_ID, GIOI_TINH_ID, SO_CMND, SO_CMND_NGAY_CAP, SO_CMND_NOI_CAP, DA_NGHI_HOC, TTSV_ID, TTSV_NGAY_CAP_NHAT, TON_GIAO_ID,

KHU_VUC_ID, DAN_TOC_ID, HKTT_DIA_CHI, HKTT_PHUONG_XA, HKTT_QUAN_HUYEN,

HKTT_TINH_THANH_PHO, HKTT_QUOC_GIA, COHN_DIA_CHI, COHN_PHUONG_XA, COHN_QUAN_HUYEN,

COHN_TINH_THANH_PHO, COHN_QUOC_GIA,

DIEN_THOAI_LIEN_HE, HO_TEN_CHA, NGHE_NGHIEP_CHA, DIEN_THOAI_CHA, HO_TEN_ME, NGHE_NGHIEP_ME,

DIEN_THOAI_ME, ANH_DAI_DIEN, GHI_CHU b. Thực thể Lớp

- Tên thực thể: LOP

- Thuộc tính: LOPSH_ID, LOPSH_TEN, LOPSH_MO_TA

c. Thực thể Khoa

- Tên thực thể: KHOA_PHONG_BAN

- Thuộc tính: KHOA_PB_ID, KHOA_PB_MA, KHOA_PB_TEN,

TINH_THANH_PHO, QUOC_GIA, DIEN_THOAI, FAX, EMAIL, WEBSITE, ZIPCODE, POSTAL_CODE, MO_TA,

NGAY_THANH_LAP, LOAI_PB_ID d. Thực thể Ngành - Tên thực thể: NGANH_CHUYEN_NGANH - Thuộc tính: NGANH_CHUYEN_NGANH_ID, NGANH_CHUYEN_NGANH_MA, NGANH_CHUYEN_NGANH_TEN, BAC_HOC_ID, BAC_HOC_TEN, NGANH_CHUYEN_NGANH_TU_NGAY, NGANH_CHUYEN_NGANH_DEN_NGAY, NGANH_CHUYEN_NGANH_ID_ROOT, NGANH_CHUYEN_NGANH_TEN_ROOT, NGAY_CAP_NHAT e. Thực thể Khóa học - Tên thực thể: KHOA_HOC

- Thuộc tính: KHOA_HOC_ID, KHOA_HOC_TEN,

KHOA_HOC_MO_TA, KHOA_HOC_TU_NGAY,

KHOA_HOC_DEN_NGAY, KHOA_HOC_NGAY_TAO, NAM_HOC_ID

f. Thực thể Thời khóa

- Tên thực thể: THOI_KHOA

- Thuộc tính: THOI_KHOA_ID, THOI_KHOA_TEN,

LOAI_THOI_KHOA, THOI_KHOA_ID_ROOT, THOI_KHOA_TEN_ROOT, THOI_KHOA_MO_TA, THOI_KHOA_TU_NGAY, THOI_KHOA_DEN_NGAY,

THOI_KHOA_NGAY_TAO, NAM_HOC_ID, NAM_HOC_TEN, HOC_KY_ID

g. Thực thể Chế độ Chính sách

- Tên thực thể: CHE_DO_CHINH_SACH

- Thuộc tính: CDCS_ID, CDCS_TEN_VIET_TAT, CDCS_TEN, MO_TA

h. Thực thể Giảng viên

- Tên thực thể: GIANG_VIEN

- Thuộc tính: MA_GIANG_VIEN, HO, HO_LOT, TEN, NGAY_SINH,

NOI_SINH_DIA_CHI, NOI_SINH_PHUONG_XA,

NOI_SINH_QUAN_HUYEN, NOI_SINH_TINH_THANH_PHO, NOI_SINH_QUOC_GIA, TTHN_ID, GIOI_TINH_ID, SO_CMND, SO_CMND_NGAY_CAP, SO_CMND_NOI_CAP, DA_NGHI_DAY, TTGV_ID, TTGV_NGAY_CAP_NHAT, TON_GIAO_ID,

DAN_TOC_ID, HKTT_DIA_CHI, HKTT_PHUONG_XA, HKTT_QUAN_HUYEN, HKTT_TINH_THANH_PHO,

HKTT_QUOC_GIA, COHN_DIA_CHI, COHN_PHUONG_XA, COHN_QUAN_HUYEN, COHN_TINH_THANH_PHO,

COHN_QUOC_GIA, DIEN_THOAI_LIEN_HE, EMAIL,

ANH_DAI_DIEN, HOC_HAM_HOC_VI_ID, NGAY_VAO_LAM, HINH_THUC_GIANG_DAY, GHI_CHU

i. Thực thể Dân tộc

- Tên thực thể: DAN_TOC

- Thuộc tính: DAN_TOC_ID, DAN_TOC_TEN, MO_TA

j. Thực thể Khu vực

- Tên thực thể: KHU_VUC

- Thuộc tính: KHU_VUC_ID, KHU_VUC_TEN_VIET_TAT,

KHU_VUC_TEN, MO_TA k. Thực thể Tôn giáo

- Tên thực thể: TON_GIAO

- Thuộc tính: TON_GIAO_ID, TON_GIAO_TEN, MO_TA

l. Thực thể Tình trạng Sinh viên

- Tên thực thể: TINH_TRANG_SINH_VIEN

- Thuộc tính: TTSV_ID, TTSV_TEN, MO_TA m. Thực thể Tình trạng Hôn nhân

- Tên thực thể: TINH_TRANG_HON_NHAN

- Thuộc tính: TTHN_ID, TTHN_TEN, MO_TA n. Thực thể Giới tính

- Tên thực thể: GIOI_TINH

3.3.6. Mô hình thực thể quan hệ

3.3.7. Mô hình dữ liệu quan hệ

Từ mô hình thực thể quan hệ (E-R diagram) ở trên, ta xây dựng mô hình quan hệ qua các bƣớc sau:

a. Các quan hệ

- Quan hệ SINH_VIEN(MA_SINH_VIEN, HO, HO_LOT, TEN,

NGAY_SINH, NOI_SINH_DIA_CHI, NOI_SINH_PHUONG_XA, NOI_SINH_QUAN_HUYEN, NOI_SINH_TINH_THANH_PHO, NOI_SINH_QUOC_GIA, TTHN_ID, GIOI_TINH_ID, SO_CMND, SO_CMND_NGAY_CAP, SO_CMND_NOI_CAP, DA_NGHI_HOC, TTSV_ID, TTSV_NGAY_CAP_NHAT, TON_GIAO_ID,

KHU_VUC_ID, DAN_TOC_ID, HKTT_DIA_CHI, HKTT_PHUONG_XA, HKTT_QUAN_HUYEN,

HKTT_TINH_THANH_PHO, HKTT_QUOC_GIA, COHN_DIA_CHI, COHN_PHUONG_XA, COHN_QUAN_HUYEN,

COHN_TINH_THANH_PHO, COHN_QUOC_GIA,

DIEN_THOAI_LIEN_HE, HO_TEN_CHA, NGHE_NGHIEP_CHA, DIEN_THOAI_CHA, HO_TEN_ME, NGHE_NGHIEP_ME,

DIEN_THOAI_ME, ANH_DAI_DIEN, GHI_CHU)

- Quan hệ LOP(LOPSH_ID, LOPSH_TEN, LOPSH_MO_TA)

- Quan hệ KHOA_PHONG_BAN(KHOA_PB_ID, KHOA_PB_MA,

KHOA_PB_TEN, KHOA_PB_ID_ROOT, DIA_CHI, PHUONG_XA, QUAN_HUYEN, TINH_THANH_PHO, QUOC_GIA, DIEN_THOAI, FAX, EMAIL, WEBSITE, ZIPCODE, POSTAL_CODE, MO_TA, NGAY_THANH_LAP, LOAI_PB_ID) - Quan hệ NGANH_CHUYEN_NGANH(NGANH_CHUYEN_NGANH_ID, NGANH_CHUYEN_NGANH_MA, NGANH_CHUYEN_NGANH_TEN, BAC_HOC_ID, BAC_HOC_TEN, NGANH_CHUYEN_NGANH_TU_NGAY, NGANH_CHUYEN_NGANH_DEN_NGAY, NGANH_CHUYEN_NGANH_ID_ROOT, NGANH_CHUYEN_NGANH_TEN_ROOT, NGAY_CAP_NHAT)

- Quan hệ KHOA_HOC(KHOA_HOC_ID, KHOA_HOC_TEN,

KHOA_HOC_MO_TA, KHOA_HOC_TU_NGAY,

KHOA_HOC_DEN_NGAY, KHOA_HOC_NGAY_TAO, NAM_HOC_ID)

- Quan hệ THOI_KHOA(THOI_KHOA_ID, THOI_KHOA_TEN,

LOAI_THOI_KHOA, THOI_KHOA_ID_ROOT, THOI_KHOA_TEN_ROOT, THOI_KHOA_MO_TA,

THOI_KHOA_TU_NGAY, THOI_KHOA_DEN_NGAY,

THOI_KHOA_NGAY_TAO, NAM_HOC_ID, NAM_HOC_TEN, HOC_KY_ID)

- Quan hệ CHE_DO_CHINH_SACH(CDCS_ID,

CDCS_TEN_VIET_TAT, CDCS_TEN, MO_TA)

- Quan hệ GIANG_VIEN(MA_GIANG_VIEN, HO, HO_LOT, TEN,

NGAY_SINH, NOI_SINH_DIA_CHI, NOI_SINH_PHUONG_XA, NOI_SINH_QUAN_HUYEN, NOI_SINH_TINH_THANH_PHO, NOI_SINH_QUOC_GIA, TTHN_ID, GIOI_TINH_ID, SO_CMND, SO_CMND_NGAY_CAP, SO_CMND_NOI_CAP, DA_NGHI_DAY, TTGV_ID, TTGV_NGAY_CAP_NHAT, TON_GIAO_ID,

DAN_TOC_ID, HKTT_DIA_CHI, HKTT_PHUONG_XA, HKTT_QUAN_HUYEN, HKTT_TINH_THANH_PHO,

HKTT_QUOC_GIA, COHN_DIA_CHI, COHN_PHUONG_XA, COHN_QUAN_HUYEN, COHN_TINH_THANH_PHO,

COHN_QUOC_GIA, DIEN_THOAI_LIEN_HE, EMAIL,

ANH_DAI_DIEN, HOC_HAM_HOC_VI_ID, NGAY_VAO_LAM, HINH_THUC_GIANG_DAY, GHI_CHU)

- Quan hệ DAN_TOC(DAN_TOC_ID, DAN_TOC_TEN, MO_TA)

- Quan hệ KHU_VUC(KHU_VUC_ID, KHU_VUC_TEN_VIET_TAT,

KHU_VUC_TEN, MO_TA)

- Quan hệ TON_GIAO(TON_GIAO_ID, TON_GIAO_TEN, MO_TA)

- Quan hệ TINH_TRANG_SINH_VIEN(TTSV_ID, TTSV_TEN,

MO_TA)

- Quan hệ TINH_TRANG_HON_NHAN(TTHN_ID, TTHN_TEN,

MO_TA)

- Quan hệ GIOI_TINH(GIOI_TINH_ID, GIOI_TINH_TEN)

Giữa KHOA_PHONG_BAN và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 KHOA_PHONG_BAN có nhiều sinh viên và 1 SINH_VIEN có thể thuộc nhiều KHOA_PHONG_BAN.

Giữa KHOA_HOC và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 KHOA_HOC có nhiều sinh viên và 1 SINH_VIEN có thể thuộc nhiều KHOA_HOC.

Giữa NGANH_CHUYEN_NGANH và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 NGANH_CHUYEN_NGANH có nhiều sinh viên và 1 SINH_VIEN có thể thuộc nhiều NGANH_CHUYEN_NGANH.

Giữa LOP và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 LOP có nhiều sinh viên và 1 SINH_VIEN có thể thuộc nhiều LOP.

Giữa BAC_HOC và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 BAC_HOC có nhiều sinh viên và 1 SINH_VIEN có thể thuộc nhiều BAC_HOC.

Giữa GIANG_VIEN và SINH_VIEN sẽ có mối quan hệ nhƣ sau: 1 GIANG_VIEN có thể cố vấn nhiều sinh viên và 1 SINH_VIEN chỉ đƣợc cố vấn bởi 1 GIANG_VIEN.

Từ đó ta có thêm các quan hệ sau:

- Quan hệ SINH_VIEN_KHOA_HOC(MA_SINH_VIEN,

BAC_HOC_ID, KHOA_HOC_ID, NGANH_CHUYEN_NGANH_ID, KHOA_PB_ID, HE_DAO_TAO_ID, LOPSH_ID, TU_NGAY,

DEN_NGAY, CHUC_VU)

- Quan hệ GIANG_VIEN_CO_VAN_SINH_VIEN(MA_GIANG_VIEN,

MA_SINH_VIEN, HO, HO_LOT, TEN, TU_NGAY, DEN_NGAY) b. Mô hình Cơ sở dữ liệu quan hệ

3.3.8. Thiết kế Dữ liệu phân tán cho hệ thống

Việc phân tán dữ liệu và quyền truy cập dữ liệu trên CSDL phân tán dựa vào từng Khoa, Khoa nào thì đƣợc quyền truy cập và xử lý dữ liệu của Khoa đó.

Theo yêu cầu của bài toán đặt ra và mô hình dữ liệu quan hệ ở trên, ta phân mảnh dữ liệu theo phƣơng pháp phân mảnh ngang để xử lý bài toán. Cụ thể nhƣ sau:

Giả sử, ta có bảng KHOA_PHONG_BAN với 6 bộ dữ liệu nhƣ sau :

KHOA_PB_ID KHOA_PB_MA KHOA_PB_TEN DIEN_THOAI FAX

22 KCKDL Khoa Cơ Khí Động

Lực

4 KĐT Khoa Điện - Điện

Tử

19 KLHD Khoa Công Nghệ

Lọc Hóa Dầu

17 KCB Khoa Khoa Học Cơ

Bản 5 KTH Khoa Kỹ Thuật Tổng Hợp 18 KCK Khoa Cơ Khí Chế Tạo Bảng 3.1 Khoa, Phòng ban

Ta phân mảnh dữ liệu sinh viên thành 6 mảnh dựa trên các quan hệ sau:

- SINH_VIEN(Ma_Sinh_Vien, Ho, Ho_Lot, Ten, Ngay_Sinh,

Noi_Sinh_Dia_Chi, Noi_Sinh_Phuong_Xa, Noi_Sinh_Quan_Huyen, Noi_Sinh_Tinh_Thanh_Pho, Noi_Sinh_Quoc_Gia, Tthn_Id,

Gioi_Tinh_Id, So_Cmnd, So_Cmnd_Ngay_Cap, So_Cmnd_Noi_Cap, Da_Nghi_Hoc, Ttsv_Id, Ttsv_Ngay_Cap_Nhat, Ton_Giao_Id,

Khu_Vuc_Id, Dan_Toc_Id, Hktt_Dia_Chi, Hktt_Phuong_Xa, Hktt_Quan_Huyen, Hktt_Tinh_Thanh_Pho, Hktt_Quoc_Gia, Cohn_Dia_Chi, Cohn_Phuong_Xa, Cohn_Quan_Huyen,

Cohn_Tinh_Thanh_Pho, Cohn_Quoc_Gia, Dien_Thoai_Lien_He, Ho_Ten_Cha, Nghe_Nghiep_Cha, Dien_Thoai_Cha, Ho_Ten_Me, Nghe_Nghiep_Me, Dien_Thoai_Me, Anh_Dai_Dien, Ghi_Chu)

- KHOA_PHONG_BAN(Khoa_Pb_Id, Khoa_Pb_Ma, Khoa_Pb_Ten,

Khoa_Pb_Id_Root, Dia_Chi, Phuong_Xa, Quan_Huyen,

Tinh_Thanh_Pho, Quoc_Gia, Dien_Thoai, Fax, Email, Website, Zipcode, Postal_Code, Mo_Ta, Ngay_Thanh_Lap, Loai_Pb_Id)

- NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN(Khoa_Pb_Id,

- SINH_VIEN_KHOA_HOC(Ma_Sinh_Vien, Bac_Hoc_Id, Khoa_Hoc_Id, Nganh_Chuyen_Nganh_Id, Khoa_Pb_Id, He_Dao_Tao_Id, Lopsh_Id, Tu_Ngay, Den_Ngay, Chuc_Vu) Mối liên hệ giữa các quan hệ nhƣ sau:

Mỗi KHOA_PHONG_BAN có nhiều NGANH_CHUYEN_NGANH, mỗi NGANH_CHUYEN_NGANH có nhiều LOP, mỗi LOP có nhiều SINH_VIEN.

Dựa mối quan hệ giữa các quan hệ, ta có tập vị từ nối sau:

- KHOA_PHONG_BAN.Khoa_Pb_Id= NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN.Khoa_Pb_Id - NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN.Nganh_Chuyen_ Nganh_Id = SINH_VIEN_KHOA_HOC.Nganh_Chuyen_Nganh_Id - SINH_VIEN_KHOA_HOC.Ma_Sinh_Vien=SINH_VIEN. .Ma_Sinh_Vien Ta có 6 mảnh nhƣ sau: SINH_VIEN1 = KHOA_PHONG_BAN.Khoa_Pb_Id = 4 SINH_VIEN2 = KHOA_PHONG_BAN.Khoa_Pb_Id = 5 SINH_VIEN3 = KHOA_PHONG_BAN.Khoa_Pb_Id = 17 SINH_VIEN4 = KHOA_PHONG_BAN.Khoa_Pb_Id = 18 SINH_VIEN5 = KHOA_PHONG_BAN.Khoa_Pb_Id = 19 SINH_VIEN6 = KHOA_PHONG_BAN.Khoa_Pb_Id = 22 Ứng dụng cụ thể:

Ví dụ: Để liệt kê danh sách sinh viên thuộc Khoa Kỹ thuật Tổng hợp ta dùng câu lệnh SQL nhƣ sau:

SELECT SINH_VIEN.* FROM SINH_VIEN INNER JOIN

SINH_VIEN_KHOA_HOC ON SINH_VIEN.MA_SINH_VIEN = SINH_VIEN_KHOA_HOC.MA_SINH_VIEN INNER JOIN NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN ON SINH_VIEN_KHOA_HOC.KHOA_PB_ID =

NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN.KHOA_PB_ID INNER JOIN KHOA_PHONG_BAN ON SINH_VIEN_KHOA_HOC.KHOA_PB_ID = KHOA_PHONG_BAN.KHOA_PB_ID AND

NGANH_CHUYEN_NGANH_KHOA_PHONG_BAN.KHOA_PB_ID = HOA_PHONG_BAN.KHOA_PB_ID WHERE

KHOA_PHONG_BAN.KHOA_PB_ID = 5

3.3.9. Thực hiện Cài đặt Replication trên SQL Server với CSDL thử nghiệm a. Cài đặt môi trƣờng a. Cài đặt môi trƣờng

o 1 máy Server chính: cài Windows 7 service pack 1 chứa CSDL chính đặt tại Khu vực 3.

o 2 máy Trạm: cài Windows XP chứa lần lƣợt 2 CSDL bản sao đặt tại Khu vực 1 và Khu vực 2 gọi tắt là Máy trạm 1 và Máy trạm 2.

- Bƣớc 2: Sử dụng Phần mềm MS SQL Server 2008 R2 để cài đặt hệ quản trị CSDL trên Server và 2 Máy trạm.

- Bƣớc 3: Thiết lập cho cả 3 máy đều kết nối mạng LAN với nhau, và lần lƣợt có các địa chỉ IP nhƣ sau: Server (192.168.1.2), Máy trạm 1 (192.168.1.11), Máy trạm 2 (192.168.1.12). Lƣu ý là tất cả các máy đều phải tắt hết firewall.

- Bƣớc 4: Tạo cổng kết nối SQL trên máy server và 2 máy trạm.

- Bƣớc 5: Cấu hình kết nối từ xa cho SQL trên máy server và 2 máy trạm.

- Bƣớc 6: Khởi động lại service của SQL trên máy server và 2 máy trạm.

b. Cài đặt CSDL phân tán

Trên máy Server, mở SQL Server và thực hiện tạo CSDL có tên QLSV, sau đó thực hiện tạo mới một Publication.

Hình 3.6: Tạo mới CSDL trên Server

Bƣớc 1: Tạo Publication bằng cách mở mục Replication, tại mục Local Publication kích chuột phải lên và chọn New Publication...

- Tại cửa sổ New Publication Wizard, chọn CSDL QLSV và nhấn Next. Tại mục Publication Type chọn Merge publication, nhấn Next chọn tiếp SQL Server 2008, nhấn Next chọn tiếp Tables ở mục Objects to publish sau đó nhấn Next 3 lần.

- Tại cửa sổ Snapshot Agent, check vào 2 ô checkbox và nhấn Next.

- Tại cửa sổ Agent Security, nhấn nút Security Settings... gõ nhƣ sau: o Mục Run under the following Windows account:

 Process account: SERVER-PC\Server

 Password: 123456

 Confirm Password: 123456

o Mục Connect to the Publisher, chọn Using the following SQL Server login:

 Login: sa

 Confirm Password: a123456*

- Nhấn OK, sau đó nhấn Next, tại mục Publication name là Rep_Tram1.

- Làm tƣơng tự các bƣớc trên cho Trạm 2 và đặt tên Publication là Rep_Tram2.

Hình 3.8: Tạo Publication cho máy trạm 1 – Đặt tên Publication

Hình 3.9: Tạo Publication cho máy trạm 1 – Thành công

Tại mục Local Replication, kích chuột phải lên Rep_Tram1 chọn New Subscription. Tại cửa sổ New Subscription Wizard, mục Publisher chọn SERVER-PC, sau đó chọn Rep_Tram1 nhấn Next 2 lần.

Sau đó nhấn nút Add SQL Server Subscriber...., chọn thông số của máy trạm 1 để kết nối đến SQL Server ở máy trạm 1. Sau đó nhấn New Database và gõ tên Database là QLSV_Tram1 sau đó nhấn OK. Tiếp tục trải qua các bƣớc thiết lập Merge Agent Security giống ở bƣớc 1 sau đó nhấn Next cho đến bƣớc cuối cùng và chờ thông báo tạo Subscription thành công.

Tƣơng tự tạo Subscription cho CSDL ở máy trạm 2.

Hình 3.10: Tạo Subscription cho máy trạm 1

Bƣớc 3: Tạo các trigger để xử lý dữ liệu khi xảy ra các sự kiện nhƣ insert, update, delete, select trên các máy trạm.

Máy trạm 1 chỉ cho các khoa nhƣ Khoa Cơ khí Chế tạo, Khoa Điện – Điện tử và Khoa Công ghệ Lọc hóa dầu đƣợc phép chỉnh sửa.

Ví dụ:

--Trigger SINH_VIEN

drop trigger tg_SINH_VIEN_tram1 go

create trigger tg_SINH_VIEN_tram1 on dbo.SINH_VIEN

after INSERT, UPDATE as

declare @maSinhVien nvarchar(50)

if(exists(select top 1 MA_SINH_VIEN from INSERTED)) begin

set @maSinhVien = (select top 1 MA_SINH_VIEN from INSERTED)

end

if(exists(select top 1 MA_SINH_VIEN from DELETED)) begin

set @maSinhVien = (select top 1 MA_SINH_VIEN from DELETED)

end

declare @khoa_id numeric(18,0)

set @khoa_id = (select top 1 KHOA_PB_ID from

SINH_VIEN_KHOA_HOC where MA_SINH_VIEN = @maSinhVien) IF(@khoa_id IS NOT NULL)

BEGIN

if(@khoa_id=4 OR @khoa_id=18 OR @khoa_id=19) begin print (N'Cập nhật bảng SINH_VIEN thành công') end else begin

print (N'Cập nhật bảng SINH_VIEN không thành công. Trạm 1 chỉ có quyền cập nhật thông tin cho sinh viên Khoa Cơ khí Chế tạo, Khoa Điện – Điện tử và Khoa Công Nghệ Lọc Hóa Dầu')

rollback tran end END ELSE BEGIN RETURN

rollback tran END

go

Máy tram 2 chỉ cho các khoa nhƣ Khoa Khoa học Cơ bản, Khoa Kỹ thuật Tổng hợp, Khoa Cơ khí Động lực đƣợc phép chỉnh sửa.

Ví dụ:

--Trigger SINH_VIEN

if OBJECT_ID ('tg_SINH_VIEN_tram2', 'TR') is not null drop trigger tg_SINH_VIEN_tram2

go

create trigger tg_SINH_VIEN_tram2 on dbo.SINH_VIEN

after INSERT, UPDATE as

declare @maSinhVien nvarchar(50)

if(exists(select top 1 MA_SINH_VIEN from INSERTED)) begin

set @maSinhVien = (select top 1 MA_SINH_VIEN from INSERTED)

end

if(exists(select top 1 MA_SINH_VIEN from DELETED)) begin

set @maSinhVien = (select top 1 MA_SINH_VIEN from DELETED)

end

declare @khoa_id numeric(18,0)

set @khoa_id = (select top 1 KHOA_PB_ID from

SINH_VIEN_KHOA_HOC where MA_SINH_VIEN = @maSinhVien) IF(@khoa_id IS NOT NULL)

BEGIN

if(@khoa_id=5 OR @khoa_id=17 OR @khoa_id=22) begin print (N'Cập nhật bảng SINH_VIEN thành công') end else begin

print (N'Cập nhật bảng SINH_VIEN không thành công. Trạm 2 chỉ có quyền cập nhật thông tin cho sinh

viên Khoa Khoa học Cơ bản, Khoa Kỹ thuật Tổng hợp, Khoa Cơ khí Động lực') rollback tran end END ELSE BEGIN RETURN rollback tran END Go

Bƣớc 4: Tiến hành nhập dữ liệu ở máy Server, sau đó đồng bộ sang các máy trạm. Kết quả nhƣ các hình sau:

Dữ liệu nhập ở Server là 152 sinh viên. Sau khi chạy đồng bộ thì đƣợc kết quả là dữ liệu ở máy trạm 1 là 62 sinh viên, dữ liệu ở máy trạm 2 là 90 sinh viên.

Hình 3.12: Dữ liệu trên máy trạm 1

3.4 Kết quả đạt đƣợc

Từ việc nghiên cứu cơ sở lý thuyết hệ phân tán, áp dụng vào việc thiết kế và cài đặt trên hệ thống máy ảo, cũng nhƣ việc lập trình để tạo ra sản phẩm demo phần mềm quản lý sinh viên trên ngôn ngữ lập trình C# và nền tản .Net framework 3.5 với một số modules và chức năng cơ bản đã phân tích ở mục 3.3.2.

Dƣới đây là một số hình ảnh chạy thử nghiệm của phần mềm:

Hình 3.14: Màn hình chức năng Quản lý thông tin Sinh viên (máy trạm 1)

Hình 3.15: Màn hình chức năng Quản lý thông tin Sinh viên (máy trạm 2)

Hệ thống đã đƣợc cài đặt và vận hành thử trên máy ảo nhìn chung đáp ứng đƣợc yêu cầu đề ra. Ƣu điểm của hệ thống:

- Thông tin cập nhật chính xác và bảo mật nhất.

- Thực hiện các giao dịch trong khoảng thời gian ngắn nhất.

- Chi phí để xây dựng cho hệ thống nhỏ nhất có thể.

- Giảm đƣợc khối lƣợng xử lý và vận hành trong mạng lớn tại máy trung tâm và hệ thống sẽ phân tán ra các nơi để giải quyết nhu cầu khai thác của ngƣời sử dụng.

KẾT LUẬN

Từ việc nghiên cứu cơ sở lý thuyết hệ phân tán, tìm hiểu hệ thống quản lý sinh viên và hệ thống mạng của trƣờng Cao đẳng Kỹ nghệ Dung Quất, tôi đã cải tiến và xây dựng cơ sở dữ liệu phân tán cho hệ thống quản lý sinh viên của trƣờng.

1. Những việc đã làm đƣợc

Đã hoàn thành đƣợc mục tiêu của luận văn đề ra là nghiên cứu đƣợc cơ sở lý thuyết và áp dụng phân tán trên CSDL quản lý sinh viên của trƣờng. Hệ thống CSDL tôi đƣa ra đã phần nào đáp ứng đƣợc các yêu cầu sau:

Về lý thuyết: Đã trình bày đƣợc tổng quan về CSDL phân tán, thiết kế CSDL phân tán và phần mềm quản lý sinh viên. Sau khi đã nghiên cứu hệ quản trị CSDL SQL Server 2008 cho thấy đây là một hệ CSDL hiện đại, hỗ trợ rất mạnh cho CSDL phân tán. Luận văn là cơ sở lý thuyết vững chắc để ngƣời sử dụng muốn tìm hiểu và nghiên cứu về CSDL phân tán, giúp ngƣời sử dụng có thể áp dụng để phát triển các hệ thống lớn trong môi trƣờng phân tán và phạm vi sử dụng rộng.

Về ứng dụng: Xây dựng thành công CSDL phân tán cho hệ thống quản lý sinh viên của trƣờng Cao đẳng Kỹ nghệ Dung Quất. Hệ thống đƣợc thiết kế theo hƣớng phân tán dữ liệu, dữ liệu đƣợc đồng bộ tại các Server nên làm tăng tốc độ xử lý và giảm nghẽn mạng khi có nhiều đối tƣợng khai thác hệ thống.

2. Những việc chƣa làm đƣợc

Hệ thống chƣa đƣợc triển khai thực tế trên mạng LAN của trƣờng mà chỉ thực hiện trên môi trƣờng máy ảo.

Nghiên cứu về phần mềm quản lý sinh viên còn nhiều hạn chế chỉ mới tƣơng tác lên dữ liệu sinh viên chứ chƣa tƣơng tác lên dữ liệu điểm học tập hay điểm rèn luyện.

3. Hƣớng phát triển

Để hoàn thành đề tài luận văn cần phát triển theo hƣớng sau:

- Về mặt lý thuyết cần nghiên cứu thêm ủy thác phân tán, điều khiển đồng thời phân tán theo nhãn thời gian, tối ƣu hóa vấn tin, điều khiển tƣơng tranh trong CSDL phân tán. Nghiên cứu sâu hơn các tính năng để hoàn thiện phần mềm quản lý học sinh - Sinh viên.

- Về mặt ứng dụng thì hệ thống triển khai đƣợc trên mạng của trƣờng và có thể phạm vi rộng hơn trong khu vực. Kết hợp đƣợc các thuật toán điều khiển tƣơng tranh, tối ƣu hóa vấn tin vào hệ thống để hệ thống hoạt động tốt đáp ứng nhu cầu của ngƣời sử dụng và cho kết quả nhƣ mong muốn.

TÀI LIỆU THAM KHẢO

[1] Bùi Văn Dũng, 2011. Xây dựng mô hình CSDL phân tán cho hệ thống thông tin đất đai cấp tỉnh và giải pháp đồng bộ hóa CSDL trên ORACLE, Hội thảo ứng

Một phần của tài liệu Xây dựng cơ sở dữ liệu phân tán quản lý học sinh sinh viên tại trường cao đẳng kỹ nghệ dung quất (Trang 64)

Tải bản đầy đủ (PDF)

(97 trang)