Nội dung chính gồm 3 chương : Chương 1 : Thiết kế CSDL phân tán cho hệ thống Chương 2 : Xây dựng CSDL phân tán trong hệ quản trị CSDL Chương 3 : Cài đặt hệ thống trên CSDL phân tán 1. Thiết kế CSDL phân tán cho hệ thống 1.1. Khảo sát nghiệp vụ Tên đơn vị: Trường đại học Công nghiệp Hà Nội. Tên giao dịch quốc tế: Hanoi University of Industry (viết tắt là HaUI). Trụ sở chính: Phường Minh Khai, quận Bắc Từ Liêm, thành phố Hà Nội. Cơ sở 2: Phường Tây Tựu, quận Bắc Từ Liêm, thành phố Hà Nội. Cơ sở 3: Phường Lê Hồng Phong và xã Phù Vân, thành phố Phủ Lý, tỉnh Hà Nam. Điện thoại: 844 37655 121 (7252). Fax: 844 37655 261. Website: https:www.haui.edu.vn Email: dhcnhnhaui.edu.vns Trường Đại học Công nghiệp Hà Nội là trường đại học trực thuộc Bộ Công Thương, đang phát triển để trở thành trường đại học đẳng cấp quốc tế. Trường hiện có hơn 1800 cán bộ, giáo viên, nhân viên, trong đó có 1451 giảng viên cơ hữu và hợp đồng dài hạn, trong đó trên 80% trình độ trên đại học (Thạc sỹ, Tiến sỹ). Trường có nhiều giáo viên dạy giỏi cấp toàn quốc; nhiều giáo sư, phó giáo sư, tiến sỹ đang tham gia giảng dạy tại Trường. Trường có 03 cơ sở đào tạo với tổng diện tích gần 50 hecta. Tại các cơ sở, Nhà trường đã xây dựng kiên cố hơn 300 phòng học lý thuyết, 200 phòng thực hành, thí nghiệm với đầy đủ máy móc, thiết bị phục vụ cho đào tạo khoảng 40.000 học viên, học sinh, sinh viên với các hệ đào tạo: Đại học: bao gồm 20 ngành, chuyên ngành (Công nghệ kỹ thuật cơ khí, Công nghệ kỹ thuật cơ điện tử,Công nghệ kỹ thuật ô tô, Công nghệ kỹ thuật điện, điện tử, Công nghệ kỹ thuật điều khiển và tự động hoá, Công nghệ kỹ thuật điện tử, truyền thông, Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, Kế toán, Tài chính ngân hàng , Quản trị kinh doanh, Quản trị kinh doanh du lịch, Việt Nam học (hướng dẫn du lịch), Công nghệ kỹ
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o BÁO CÁO BÀI TẬP LỚN
Môn : Cơ sở dữ liệu phân tán
Đề tài : Hệ thống quản lý thu học phí tại trường ĐHCNHN
Lớp: ĐH KTPMCLC K9
SV thực hiện : Nhóm 9
Nguyễn Văn Phượng
Nguyễn Văn Phương
Giảng viên: Ts Trần Thanh Hùng
Hà Nội , ngày 15 tháng 11 năm 2017
Trang 2I LỜI NÓI ĐẦU
Trường Đại học Công nghiệp Hà Nội là trường đại học trực thuộc Bộ CôngThương được thành lập ngày 2 tháng 12 năm 2005.Là một trong những trung tâmgiáo dục đào tạo đa ngành nghề về công nghiệp quy mô lớn nhất cả nước và đạtđẳng cấp quốc tế Trường Đại học Công Nghiệp Hà Nội là môi trường học tập, rènluyện lý tưởng cho mọi đối tượng đồng thời là trung tâm nghiên cứu phát triểnchuyển giao công nghệ uy tín và tin cậy Hiện nay trường có 3 cơ sở đào tạo:
Trường Đại học Công nghiệp Hà Nội triển khai đào tạo theo học chế tín chỉ bắt đầu
từ năm học 2008 – 2009.Về qui mô đào tạo: Gần 60.000 sinh viên.Các lĩnh vựcđào tạo: Công nghệ, kỹ thuật, Kinh tế, May, Thời trang, Sư phạm, Du lịch.Với quy
mô lớn như hiện nay, công tác thu phí tại trường gặp rất nhiều khó khăn, gây lãngphí thời gian, hiệu suất làm việc thấp Tuy nhà trường đã tin học hóa công việcquản lý thu phí và đang sử dụng các hệ thống xử lý cơ sở dữ liệu tập trung, nhưng
do nhu cầu thu thập, lưu trữ, xử lý và trao đổi thông tin ngày càng tăng, các hệthống xử lý tập trung này đã bộc lộ những nhược điểm sau :
- Tăng khả năng lưu trữ thông tin là khó khăn, bởi bị giới hạn tối đa củathiết bị nhớ
- Độ sẵn sàng phục vụ của cơ sở dữ liệu không cao khi số người sử dụngtăng (Trên thực tế, trong mỗi đợt đăng ký học phần, thu phí hệ thống củatrường đã bị gián đoạn và không xử lý được trong thời gian dài làm giảmhiệu suất công việc)
- Khả năng tính toán của các máy tính đơn lẻ đang dần tới giới hạn vật lý
- Mô hình tổ chức lưu trữ, xử lý dữ liệu tập trung không phù hợp chotrường khi các ngành học được phân bố theo nhóm và cách xa nhau về vịtrí địa lý
Những nhược điểm này đã được khắc phục khá nhiều trong hệ thống phân tán.Những sản phẩm của các hệ thống phân tán đã xuất hiện nhiều trên thị trường vàtừng bước chứng minh tính ưu việt của nó hơn hẳn các hệ thống tập trung truyềnthống Vì thế xây dựng một hệ thống phân tán để thay thế hệ thống tập trung truyền
thống là điều tất yếu, nhóm chúng em đề xuất “Xây dựng hệ thống phân tán quản
lý thu phí cho Trường Đại Học Công Nghiệp Hà Nội”
Trang 3I NỘI DUNG CHÍNH
Nội dung chính gồm 3 chương :
- Chương 1 : Thiết kế CSDL phân tán cho hệ thống
- Chương 2 : Xây dựng CSDL phân tán trong hệ quản trị CSDL
- Chương 3 : Cài đặt hệ thống trên CSDL phân tán
1 Thiết kế CSDL phân tán cho hệ thống
1.1 Khảo sát nghiệp vụ
- Tên đơn vị: Trường đại học Công nghiệp Hà Nội
- Tên giao dịch quốc tế: Hanoi University of Industry (viết tắt là HaUI)
- Trụ sở chính: Phường Minh Khai, quận Bắc Từ Liêm, thành phố Hà Nội
- Cơ sở 2: Phường Tây Tựu, quận Bắc Từ Liêm, thành phố Hà Nội
- Cơ sở 3: Phường Lê Hồng Phong và xã Phù Vân, thành phố Phủ Lý, tỉnh
sư, phó giáo sư, tiến sỹ đang tham gia giảng dạy tại Trường
Trường có 03 cơ sở đào tạo với tổng diện tích gần 50 hecta Tại các cơ sở,Nhà trường đã xây dựng kiên cố hơn 300 phòng học lý thuyết, 200 phòng thựchành, thí nghiệm với đầy đủ máy móc, thiết bị phục vụ cho đào tạo khoảng 40.000học viên, học sinh, sinh viên với các hệ đào tạo:
- Đại học: bao gồm 20 ngành, chuyên ngành (Công nghệ kỹ thuật cơ khí,Công nghệ kỹ thuật cơ điện tử,Công nghệ kỹ thuật ô tô, Công nghệ kỹ thuật
Trang 4điện, điện tử, Công nghệ kỹ thuật điều khiển và tự động hoá, Công nghệ kỹthuật điện tử, truyền thông, Khoa học máy tính, Kỹ thuật phần mềm, Hệthống thông tin, Kế toán, Tài chính ngân hàng , Quản trị kinh doanh, Quảntrị kinh doanh du lịch, Việt Nam học (hướng dẫn du lịch), Công nghệ kỹthuật nhiệt, Công nghệ may, Thiết kế thời trang, Công nghệ kỹ thuật hóahọc, Công nghệ kỹ thuật môi trường, Ngôn ngữ tiếng Anh.)
- Cao đẳng: bao gồm 12 nghề (Cắt gọt kim loại, Điện công nghiệp, Kỹ thuậtmáy lạnh và điều hòa không khí Điện tử công nghiệp, Công nghệ ô tô,Nguội sửa chữa máy công cụ,Nguội chế tạo, Kế toán doanh nghiệp, Lậptrình máy tính,Hàn, May thời trang, Vẽ và thiết kế trên máy vi tính.)
- Trung cấp: 14 nghề (Cắt gọt kim loại, Điện công nghiệp, Kỹ thuật máy lạnh
và điều hòa không khí, Điện tử công nghiệp, Công nghệ ô tô, Nguội sửachữa máy công cụ, Nguội chế tạo, Kế toán doanh nghiệp, Lập trình máytính, Hàn, May thời trang, Gia công kim loại tấm, Sửa chữa thiết bị điềukhiển điện, Vẽ và thiết kế trên máy vi tính.)
Trang 5Trong quy chế quản lý thu học phí tại Trường Đại Học Công Nghiệp Hà Nội có các
cơ quan, phòng ban liên quan :
Bộ Công Thương quy định)
- Phòng Kế hoạch - Tài chính ra thông báo về việc thu học phí (gồm đợtthu, thời gian nộp, thời gian khóa sổ, các lớp thu) và trình Hiệu trưởngduyệt rồi gửi thông báo cho tất cả các Khoa/Bộ môn có sinh viên theohọc
- Đối với sinh viên :
o Sinh viên đăng ký môn học theo hướng dẫn của phòng Đào tạo,Khoa, Bộ môn; Căn cứ vào số tín chỉ đăng ký học để nộp tiền họcphí
1.1.2 Sinh viên đi nộp tiền
- Sinh viên nộp tiền học phí tại phòng Kế hoạch - Tài chính
- Kế toán thu kiểm tra mức học phí, lập danh sách thu học phí theo lớp.Thông tin phiếu thu gồm : Mã sinh viên, Số phiếu thu, Ngày lập phiếuthu, Họ tên người nộp, Lớp, Khóa, Hệ đào tạo, Nội dung thu, Số tiền thu,Người thu và gửi danh sách về cho thủ quỹ
- Sinh viên xuất trình thẻ sinh viên hoặc cung cấp mã sinh viên của mìnhcho thủ quỹ, thủ quỹ căn cứ vào mã sinh viên và danh sách thu học phítheo lớp để thu tiền
- Thủ quỹ giữ lại 1 bản phiếu thu (liên 1) và trả lại phiếu thu tiền (liên 2)cho sinh viên Sinh viên phải giữ phiếu thu học phí của mình trong suốtquá trình học tập nghiên cứu tại trường
1.1.3 Thu tiền, lập phiếu thu tiền và ghi sổ
- Cuối ngày, kế toán thu và thủ quỹ đối chiếu số tiền nộp học phí của sinhviên trên bảng kê, ký xác nhận và chuyển cho kế toán tổng hợp lập phiếuthu và hạch toán kế toán
Trang 6- Kế toán tổng hợp lập phiếu thu chuyển cho Kế toán trưởng, Thủ trưởngđơn vị ký, sau đó chuyển lại cho thủ quỹ vào sổ quỹ tiền mặt.
- Thủ quỹ vào sổ và chuyển cho kế toán thực hiện lưu trữ chứng từ theoquy định
1.2 Bài toán
Từ những hoạt động thực tế đã trình bày ở trên thì vấn đề đặt ra cho chương trìnhquản lý thu học phí là phải xây dựng các chức năng thích hợp tạo điều kiện thuậnlợi cho công tác quản lý sinh viên và việc tính học phí sử dụng đúng để dễ dàng thuhọc phí sinh viên Tuy nhiên để làm tốt việc đó cần tìm hiểu kỹ những vấn đề cụthể mà bài toán đặt ra và cách giải quyết các vấn đề đó
Đối tượng cần quản lý là thông tin về tất cả các sinh viên và một số các thông tinkhác như học phần, đăng ký học phần, lớp, ngành, khoa, hệ đào tạo
Chương trình này xây dựng các đối tượng độc lập một cách rõ ràng và các mốiquan hệ của các đối tượng đó Với các đối tượng độc lập, chúng ta quan tâm đếncác thuộc tính cá nhân liên quan đến các đối tượng đó
Giữa các đối tượng còn lại còn có các mối quan hệ với nhau do vậy chúng ta có thểđưa ra các thông tin tổng hợp từ các thông tin cơ bản trên Nhờ việc kết nối cácthông tin cơ bản thành các thông tin tổng hợp chúng ta có thể làm cho hệ thốngquản lý của chúng ta đáp ứng được yêu cầu thực tế
Trang 71.3 Thiết kế cơ sở dữ liệu tập trung cho hệ thống
1.4 Thiết kế mô hình csdl phân tán cho hệ thống
Trang 8- Nếu các ứng dụng có các khung nhìn được định nghĩa trên một quan hệ cho trước nằm tại những vị trí khác thì có hai cách chọn lựa đơn vị phân tán:
o hoặc là toàn bộ quan hệ
o hoặc quan hệ được lưu ở một vị trí có chạy ứng dụng
- Phân mảnh ngang một quan hệ tổng thể n-bộ R là tách R thành các quan
hệ con n-bộ R1, R2, , Rk sao cho quan hệ R có thể được khôi phục lại từ các quan hệ con này bằng phép hợp: R = R1 R2 Rk
- Có hai loại phân mảnh ngang:
o Phân mảnh ngang nguyên thủy (primary horizontal fragmentation):phân mảnh ngang nguyên thủy của một quan hệ được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ đó
o Phân mảnh ngang dẫn xuất (derived horizontal fragmentation): phân mảnh ngang dẫn xuất của một quan hệ được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ khác
- Như vậy, trong phân mảnh ngang tập các vị từ đóng một vai trò quan trọng
Thực hiện phân mảnh
Phân mảnh ngang nguyên thủy cho bảng Nganh theo giá trị TenNganh:
Các vị từ đơn giản có thể dùng được là:
TenNganh = “Hệ thống thông tin” OR TenNganh = “Công nghệ kỹ thuật cơ khí”
OR TenNganh = “Công nghệ kỹ thuật điện” OR TenNganh = “Công nghệ kỹ thuật điện tử” OR TenNganh = “Ngôn ngữ Anh”
“Quản trị kinh doanh” OR TenNganh = “Quản trị kinh doanh du lịch” OR
TenNganh = “Công nghệ kỹ thuật hóa học”
Trang 9p3: TenNganh = “Công nghệ kỹ thuật tự động hóa” OR TenNganh = “Tài chính ngân hàng” OR TenNganh = “Công nghệ kỹ thuật ô tô” OR TenNganh = “Thiết kếthời trang” OR TenNganh = “Việt Nam học”
Tập vị từ đơn giản khởi đầu là Pr = {p1, p2, p3} Áp dụng thuật toán COM_MIN với
i = 1 làm giá trị khởi đầu tạo ra Pr’ = {p1, p2, p3} là tập đầy đủ và cực tiểu
Có thể định nghĩa vị từ hội sơ cấp tạo ra M dựa trên Pr’ như sau:
Nganh1 = σ TenNganh = “Khoa học máy tính” ˅TenNganh = “Kỹ thuật phần mềm” ˅ TenNganh = “Hệ thống thông tin” ˅ TenNganh =
“Công nghệ kỹ thuật cơ khí” ˅ TenNganh = “Công nghệ kỹ thuật điện” ˅ TenNganh = “Công nghệ kỹ thuật điện tử” ˅ TenNganh = “Ngôn ngữ Anh” (Nganh)
Nganh2 = σ TenNganh = “Công nghệ may” ˅ TenNganh = “Kế toán” ˅ TenNganh = “Quản trị kinh doanh” ˅ TenNganh = “Quản trị kinh doanh du lịch” ˅ TenNganh = “Công nghệ kỹ thuật hóa học” (Nganh)
Nganh3 = σ TenNganh = “Công nghệ kỹ thuật tự động hóa” ˅ TenNganh = “Tài chính ngân hàng” ˅ TenNganh = “Công nghệ kỹ thuật
ô tô” ˅ TenNganh = “Thiết kế thời trang” ˅ TenNganh = “Việt Nam học” (Nganh)
Phân mảnh ngang dẫn xuất Nganh – Lop ta được 3 trạm:
Lop1 = Lop |›‹ Nganh1
Lop2 = Lop |›‹ Nganh2
Lop3 = Lop |›‹ Nganh3
Trang 10Phân mảnh ngang dẫn xuất Lop – SinhVien ta được 3 trạm:
SinhVien1 = SinhVien |›‹ Lop1
SinhVien2 = SinhVien |›‹ Lop2
SinhVien3 = SinhVien |›‹ Lop3
Phân mảnh ngang dẫn xuất SinhVien – DangKyHocPhan ta được 3 trạm:
Phân mảnh ngang dẫn xuất DangKyHocPhan – PhieuThu ta được 3 trạm:
Phân mảnh ngang dẫn xuất PhieuThu – ChiTietPhieuThu ta được 3 trạm:
Sau khi phân mảnh ta có 3 trạm như sau:
- Trạm 1
Trang 11- Trạm 2
Trang 131.4.2 Mô tả về sử dụng dữ liệu cho mỗi trạm
Trường Đại Học Công Nghiệp Hà Nội có 3 cơ sở :
- Cơ sở 1 tại Phường Minh Khai, Quận Nam Từ Liêm, Hà Nội gồm sinhviên các ngành học tại Khu A (Khoa học máy tính, Kỹ thuật phần mềm,
Hệ thống thông tin, Cơ khí, Điện, Điện tử, Ngoại ngữ)
- Cơ sở 2 tại Phường Tây Tựu, Quận Nam Từ Liêm, Hà Nội gồm của sinhviên các ngành học tại Khu B ( Công nghệ may, Kế toán, Quản trị kinhdoanh, Du lich - khách sạn, Hóa)
- Cơ sở 3 tại Phường Lê Hồng Phong, Thành phố Phủ Lý, Tỉnh Hà Namgồm sinh viên các ngành học tại Khu C (Các ngành còn lại)
Để công tác quản lý thu phí được dễ dàng và chính xác thông tin, nhóm chúng tôixây dựng phần mềm dựa trên mô hình cơ sở dữ liệu phân tán để quản lý dữ liệucủa từng cơ sở (tương ứng với 3 trạm)
Trang 14Mỗi trạm sẽ có một phần mềm ứng dụng, một hệ quản trị cơ sở dữ liệu MS SQLserver và một cơ sở dữ liệu độc lập của riêng trạm đó.
- Cơ sở dữ liệu của từng trạm không được tạo liên kết với nhau mà chỉ tạoliên kết đến máy chủ
- Phần mềm ứng dụng tại mỗi trạm được kết nối đến cơ sở dữ liệu của trạm
đó thông qua hệ quản trị cơ sở dữ liệu Phần mềm cho phép thêm, cậpnhật, xóa dữ liệu, tìm kiếm thông tin xuất báo cáo (tại trạm đó) và một sốchức năng khác
- Tại mỗi trạm, khi người dùng thực hiện một yêu cầu truy xuất cơ sở dữliệu thông qua giao diện phần mềm, yêu cầu này sẽ được phần mềm gửiđến hệ quản trị cơ sở dữ liệu phân tán, sau đó hệ quản trị dữ liệu phân tányêu cầu đến vị trí chứa dữ liệu của trạm đó Kết quả sau khi thực hiện yêucầu sẽ gửi về và hiển thị trên giao diện phần mềm để người dùng có thểxem chi tiết hoặc truy xuất thông tin
Server cũng có mô hình tương tự các trạm gồm : Một phần mềm ứng dụng chạyriêng tại máy chủ, một hệ quản trị cơ sở dữ liệu tại server và một cơ sở dữ liệu
- Cơ sở dữ liệu tại server được tạo liên kết đến 3 trạm bằng đường dẫn kếtnối các cơ sở dữ liệu thông qua hệ quản trị cơ sở dữ liệu phân tán và môitrường mạng máy tính
- Phần mềm tại server được kết nối đến cở sở dữ liệu tại server với chứcnăng xem dữ liệu, thêm, cập nhật, xóa dữ liệu của các trạm, cho phépthực hiện ngay trên phần mềm Phần mềm tại server cũng giúp ngườiquản lý tìm kiếm thông tin tại mỗi trạm, thống kê dữ liệu cho từng trạmhoặc cho cả 3 trạm để có thể so sánh và làm công tác quản lý thu phíđược chính xác hơn
- Tại server, khi người quản lý yêu cầu truy xuất dữ liệu đến cơ sở dữ liệucủa một trạm nào đó thông qua giao diện phần mềm Yêu cầu này sẽđược phần mềm gửi đến cơ sở dữ liệu máy chủ, sau đó yêu cầu được thựchiện tại cơ sở dữ liệu tại trạm cần truy vấn và trả về kết quả cho máy chủ.Kết quả sau khi thực hiện yêu cầu sẽ được hiển thị lên giao diện phầnmềm
1.4.3 Mô tả quá trình nghiệp vụ cho mỗi trạm
Server:
Phân quyền người dùng
Trang 15- Tại server chỉ có một tài khoản duy nhất dành cho người quản lý máy chủ.
- Người quản lý thông qua phần mềm có thể quản lý thông tin tài khoản của từng trạm (thêm, sửa xóa tài khoản)
Quản lý dữ liệu
- Server có quyền thêm, sửa, xóa dữ liệu của từng trạm : Thông tin sinh viên, các ngành học, khoa, lớp, học phần, lớp độc lập, thu phí, … Tìm kiếm thông tin của từng trạm hoặc của cả 3 trạm
- Thống kê danh sách sinh viên đã nộp học phí, và các sinh viên chưa nộp học phí
- Cơ sở dữ liệu tại server chứa các thủ tục, các hàm để thực hiện thao tác trên từng trạm hoặc cả 2 trạm khi có yêu cầu truy xuất dữ liệu từ người quản lý
Các trạm:
Phân quyền người dùng
- Mỗi sinh viên có một mã sinh viên duy nhất
- Mỗi nhân viên cũng có một tài khoản người dùng duy nhất
- Sinh viên thông qua phần mềm có thể xem diễn biễn thu phí
- Nhân viên thông qua phần mềm thực hiện lưu diễn biến thu phí cho sinh viên
Trang 16TenHocPhan Nvarchar(100) Tên học phần
2.1.4 Bảng Ngành
2.1.5 Bảng Khoa
Trang 17MaKhoa Nvarchar(10) Mã khoa
2.1.6 Bảng Hệ đào tạo
Trang 18NoiOHienNay Nvarchar(200) Nơi ở hiện nay
2.1.9 Bảng Đăng ký học phần
2.1.10 Bảng Nhân viên
Trang 19QueQuan Nvarchar(200) Quê quán
2.1.11 Bảng Phiếu thu
2.1.12 Bảng Chi tiết phiếu thu
Trang 202.1.13 Bảng Khoản thu
2.2 Mô hình CSDL phân tán
Trường đại học Công nghiệp Hà Nội có 3 cơ sở Để công tác quản lý được dễ dàng
và chính xác thông tin, nhóm xây dựng phần mềm dựa trên mô hình cơ sở dữ liệuphân tán để quản lý dữ liệu của từng cơ sở:
- Mỗi cơ sở sẽ có một phần mềm ứng dụng, một hệ cơ sở quản trị cơ sở dữliệu và một cơ sở dữ liệu độc lập của riêng cơ sở đó, cơ sở dữ liệu củatừng cơ sở không được tạo liên kết với nhau mà chỉ tạo liên kết đếnserver
- Phầm mềm ứng dụng tại mỗi cơ sở đực kết nối đến cơ sở dữ liệu của cơ
sở đó thông qua hệ quản trị cơ sở dữ liệu Phần mềm ứng dụng cho phépcập nhật, thêm, sửa, xóa dữ liệu, tìm kiếm thông tin, xuất báo cáo tại khu
đó và thực hiện một số tác vụ khác
- Tại mỗi cơ sở: Khi người dùng thực hiện một yêu cầu truy xuất cơ sở dữliệu thông qua giao diện phần mềm ứng dụng, yêu cầu này sẽ được phần
Trang 21mềm ứng dụng gửi đến hệ quản trị cơ sở dữ liệu phân tán thông qua kếtnối chương trình ứng dụng và hệ quản trị CSDL, sau đó hệ quản trịCSDL phân tán yêu cầu đến vị trí chứa dữ liệu của cơ sở đó Thực hiệnxong yêu cầu, kết quả sẽ được gửi về và đưa lên giao diện phần mềm ứngdụng để người dùng có thể xem chi tiết hoặc xuất thông tin.
- Server cũng có mô hình tương tự các khu gồm có: một phần mềm ứngdụng chạy riêng tại server, một hệ quản trị cơ sở dữ liệu để quản trị cơ sở
dữ liệu tại server Cơ sở dữ liệu tại server được tạo liên kết đến cơ sở dữliệu của từng cơ sở thông qua hệ quản trị cơ sở dữ liệu phân tán SQLSERVER
- Phần mềm ứng dụng tại server được kết nối đến cơ sở dữ liệu tại servervới chức năng xem dữ liệu của các cơ sở của trường, cập nhật, thêm, xóa
dữ liệu ở các cơ sở và thực hiện cập nhật ngay trên phần mềm Phần mềmtại server cũng giúp người dùng tìm kiếm thông tin tại mỗi khu, thống kê
dữ liệu cho từng khu hoặc cho cả 3 cơ sở để có thể so sánh và làm côngtác quản lý được chính xác hơn
- Cơ sở dữ liệu tại server được tạo liên kết đến 3 cơ sở bằng database linkthông qua hệ quản trị cơ sở dữ liệu phân tán và môi trường mạng máytính
- Tại server: khi người quản lý phát ra yêu cầu truy xuất cơ sở dữ liệu đến
cơ sở dữ liệu của một cơ sở nào đó thông qua giao diện phần mềm ứngdụng Yêu cầu này sẽ được phần mềm ứng dụng gửi đến xuất cơ sở dữliệu server thông qua hệ quản trị xuất cơ sở dữ liệu Tại xuất cơ sở dữ liệuserver, yêu cầu được thực hiện thông qua database link(tạm dịch: đườngdẫn kết nối các xuất cơ sở dữ liệu) kết nối đến xuất cơ sở dữ liệu của các
cơ sở; thông qua database link yêu cầu sẽ được thực hiện tại cơ sở dữ liệucủa cơ sở cần truy vấn và trả về kết quả cho server và hiển thị lên giaodiện phần mềm
2.3 Một số truy vấn phân tán trong hệ quản trị CSDL
- Các quan hệ được phân mảnh:
Nganh1 = σ TenNganh = “Khoa học máy tính” ˅TenNganh = “Kỹ thuật phần mềm” ˅ TenNganh = “Hệ thống thông tin” ˅ TenNganh = “Công nghệ kỹ thuật cơ khí” ˅ TenNganh = “Công nghệ kỹ thuật điện” ˅ TenNganh = “Công nghệ kỹ thuật điện tử” ˅ TenNganh = “Ngôn ngữ Anh” (Nganh)
Nganh2 = σ TenNganh = “Công nghệ may” ˅ TenNganh = “Kế toán” ˅ TenNganh = “Quản trị kinh doanh” ˅ TenNganh = “Quản trị kinh doanh du lịch” ˅ TenNganh = “Công nghệ kỹ thuật hóa học” (Nganh)
Trang 22Nganh3 = σ TenNganh = “Công nghệ kỹ thuật tự động hóa” ˅ TenNganh = “Tài chính ngân hàng” ˅ TenNganh =
“Công nghệ kỹ thuật ô tô” ˅ TenNganh = “Thiết kế thời trang” ˅ TenNganh = “Việt Nam học” (Nganh)
Lop1 = Lop |›‹ Nganh1
Lop2 = Lop |›‹ Nganh2
Lop3 = Lop |›‹ Nganh3
SinhVien1 = SinhVien |›‹ Lop1
SinhVien2 = SinhVien |›‹ Lop2
SinhVien3 = SinhVien |›‹ Lop3
- Một số câu truy vấn SQL:
o Lấy ra tên của sinh viên thuộc lớp Hệ thống thông tin 1 K7 của ngành Hệ thống thông tin
SELECT (HoDem + Ten) as HoTen
FROM SinhVien inner join Lop
WHERE TenLop = ‘Hệ thống thông tin 1 K7’
HoDem,Ten(σTenLop = ‘Hệ thống thông tin 1 K7’ (SinhVien * Lop))
Trang 23= HoDem,Ten(σTenLop = ‘Hệ thống thông tin 1 K7’(Lop) * SinhVien)
= HoDem,Ten(σTenLop = ‘Hệ thống thông tin 1 K7’(Lop1) * SinhVien)
= HoDem,Ten(σTenLop = ‘Hệ thống thông tin 1 K7’(Lop1) * SinhVien1)
o Lấy ra tên sinh viên thuộc lớp Công nghệ may 1 K7 của ngành Công nghệ may
SELECT (HoDem + Ten) as HoTen
FROM SinhVien inner join Lop
WHERE TenLop = ‘Công nghệ may 1 K7’
HoDem,Ten(σTenLop = ‘Công nghệ may 1 K7’ (SinhVien * Lop))
= HoDem,Ten(σTenLop = ‘Công nghệ may 1 K7’(Lop) * SinhVien)
= HoDem,Ten(σTenLop = ‘Công nghệ may 1 K7’(Lop2) * SinhVien)
= HoDem,Ten(σTenLop = ‘Công nghệ may 1 K7’(Lop2) * SinhVien2)
o Lấy ra tên sinh viên thuộc lớp Việt Nam học 1 K7 của ngành Việt Nam học
SELECT (HoDem + Ten) as HoTen
FROM SinhVien inner join Lop
WHERE TenLop = ‘Việt Nam học 1 K7’
HoDem,Ten(σTenLop = ‘Việt Nam học 1 K7’ (SinhVien * Lop))
= HoDem,Ten(σTenLop = ‘Việt Nam học 1 K7’(Lop) * SinhVien)
= HoDem,Ten(σTenLop = ‘Việt Nam học 1 K7’(Lop3) * SinhVien)
= HoDem,Ten(σTenLop = ‘Việt Nam học 1 K7’(Lop3) * SinhVien3)
Trang 24DECLARE @MaDangKyHocPhan int
SET @MaDangKyHocPhan = (SELECT MaDangKyHocPhan FROMinserted)
DECLARE @MaSinhVien nchar(11)
SET @MaSinhVien = (SELECT MaSinhVien FROM
dbo.DangKyHocPhan WHERE MaDangKyHocPhan =
@MaDangKyHocPhan)
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM dbo.SinhVien WHERE MaSinhVien = @MaSinhVien)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Khoa học máy tính%' OR
@TenNganh LIKE N'%Kỹ thuật phần mềm%' OR
@TenNganh LIKE N'%Hệ thống thông tin%' OR
@TenNganh LIKE N'%Cơ khí%' OR
@TenNganh LIKE N'%Điện%' OR
@TenNganh LIKE N'%Điện tử%' OR
@TenNganh LIKE N'%Ngôn ngữ Anh%')
Trang 25RAISERROR ('Lập phiếu thu không thành công Trạm 1 chỉ có quyền lập phiếu thu cho sinh viên ngành Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, Cơ khí, Điện, Điện tử, Ngôn ngữ Anh',16,1)
ROLLBACK TRANEND
- Một số trigger cho trạm 1:
Trigger Sinh viên
IF OBJECT_ID ('tg_NhanVien_Tram1','TR') IS NOT NULL
DROP TRIGGER tg_NhanVien_Tram1
DECLARE @CoSo nchar(10)
SET @CoSo = (SELECT CoSo FROM inserted)
IF( @CoSo LIKE '%Khu A%')
GO
Trigger Lớp
IF OBJECT_ID ('tg_Lop_Tram1','TR') IS NOT NULL
DROP TRIGGER tg_Lop_Tram1
Trang 26SET @MaNganh = (SELECT MaNganh FROM inserted)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Khoa học máy tính%' OR
@TenNganh LIKE N'%Kỹ thuật phần mềm%' OR
@TenNganh LIKE N'%Hệ thống thông tin%' OR
@TenNganh LIKE N'%Cơ khí%' OR
@TenNganh LIKE N'%Điện%' OR
@TenNganh LIKE N'%Điện tử%' OR
@TenNganh LIKE N'%Ngôn ngữ Anh%'
)
BEGIN
PRINT ('Cập nhật lớp thành công !')END
ELSE
BEGIN
RAISERROR (N'Cập nhật lớp không thành công Trạm 1chỉ có quyền cập nhật cho các lớp ngành Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, Cơ khí, Điện, Điện tử, Ngôn ngữ
Anh',16,1)
ROLLBACK TRANEND
GO
Trigger Sinh viên
IF OBJECT_ID ('tg_SinhVien_Tram1','TR') IS NOT NULL
DROP TRIGGER tg_SinhVien_Tram1
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM inserted)
DECLARE @MaNganh nvarchar(10)
Trang 27SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Khoa học máy tính%' OR
@TenNganh LIKE N'%Kỹ thuật phần mềm%' OR
@TenNganh LIKE N'%Hệ thống thông tin%' OR
@TenNganh LIKE N'%Cơ khí%' OR
@TenNganh LIKE N'%Điện%' OR
@TenNganh LIKE N'%Điện tử%' OR
@TenNganh LIKE N'%Ngôn ngữ Anh%'
ROLLBACK TRANEND
DECLARE @MaSinhVien nchar(11)
SET @MaSinhVien = (SELECT MaSinhVien FROM inserted)
DECLARE @MaLop nvarchar(10)
Trang 28SET @MaLop = (SELECT MaLop FROM dbo.SinhVien WHERE MaSinhVien = @MaSinhVien)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Khoa học máy tính%' OR
@TenNganh LIKE N'%Kỹ thuật phần mềm%' OR
@TenNganh LIKE N'%Hệ thống thông tin%' OR
@TenNganh LIKE N'%Cơ khí%' OR
@TenNganh LIKE N'%Điện%' OR
@TenNganh LIKE N'%Điện tử%' OR
@TenNganh LIKE N'%Ngôn ngữ Anh%'
ROLLBACK TRANEND
GO
Trigger Phiếu thu
IF OBJECT_ID ('tg_PhieuThu_Tram1','TR') IS NOT NULL
DROP TRIGGER tg_PhieuThu_Tram1
Trang 29DECLARE @MaSinhVien nchar(11)
SET @MaSinhVien = (SELECT MaSinhVien FROM inserted)
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM dbo.SinhVien WHERE MaSinhVien = @MaSinhVien)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Khoa học máy tính%' OR
@TenNganh LIKE N'%Kỹ thuật phần mềm%' OR
@TenNganh LIKE N'%Hệ thống thông tin%' OR
@TenNganh LIKE N'%Cơ khí%' OR
@TenNganh LIKE N'%Điện%' OR
@TenNganh LIKE N'%Điện tử%' OR
@TenNganh LIKE N'%Ngôn ngữ Anh%')
RAISERROR (N'Lập phiếu thu không thành công Trạm
1 chỉ có quyền lập phiếu thu cho sinh viên ngành Khoa học máy tính, Kỹ thuật phần mềm, Hệ thống thông tin, Cơ khí, Điện, Điện tử, Ngôn ngữ Anh',16,1)
ROLLBACK TRANEND
GO
- Một số trigger cho trạm 2:
Trigger Sinh viên
IF OBJECT_ID ('tg_NhanVien_Tram2','TR') IS NOT NULL
DROP TRIGGER tg_NhanVien_Tram2
GO
Trang 30CREATE TRIGGER tg_NhanVien_Tram2
ON dbo.NhanVien
AFTER INSERT , UPDATE
AS
DECLARE @CoSo nchar(10)
SET @CoSo = (SELECT CoSo FROM inserted)
IF( @CoSo LIKE '%Khu B%')
GO
Trigger Lớp
IF OBJECT_ID ('tg_Lop_Tram2','TR') IS NOT NULL
DROP TRIGGER tg_Lop_Tram2
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM inserted)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Công nghệ may%' OR
@TenNganh LIKE N'%Kế toán%' OR
@TenNganh LIKE N'%Quản trị kinh doanh%' OR
@TenNganh LIKE N'%Quản trị kinh doanh du lịch%' OR
@TenNganh LIKE N'%Công nghệ hóa%'
Trang 31BEGIN
PRINT ('Cập nhật lớp thành công !')END
Trigger Sinh viên
IF OBJECT_ID ('tg_SinhVien_Tram2','TR') IS NOT NULL
DROP TRIGGER tg_SinhVien_Tram2
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM inserted)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Công nghệ may%' OR
@TenNganh LIKE N'%Kế toán%' OR
@TenNganh LIKE N'%Quản trị kinh doanh%' OR
@TenNganh LIKE N'%Quản trị kinh doanh du lịch%' OR
@TenNganh LIKE N'%Công nghệ hóa%'
Trang 32RAISERROR (N'Cập nhật sinh viên không thành công.',16,1)
ROLLBACK TRANEND
DECLARE @MaSinhVien nchar(11)
SET @MaSinhVien = (SELECT MaSinhVien FROM inserted)
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM dbo.SinhVien WHERE MaSinhVien = @MaSinhVien)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Công nghệ may%' OR
@TenNganh LIKE N'%Kế toán%' OR
@TenNganh LIKE N'%Quản trị kinh doanh%' OR
@TenNganh LIKE N'%Quản trị kinh doanh du lịch%' OR
@TenNganh LIKE N'%Công nghệ hóa%'
Trang 33RAISERROR (N'Đăng ký học phần không thành công.',16,1)
ROLLBACK TRANEND
GO
Trigger Phiếu thu
IF OBJECT_ID ('tg_PhieuThu_Tram2','TR') IS NOT NULL
DROP TRIGGER tg_PhieuThu_Tram2
DECLARE @MaSinhVien nchar(11)
SET @MaSinhVien = (SELECT MaSinhVien FROM inserted)
DECLARE @MaLop nvarchar(10)
SET @MaLop = (SELECT MaLop FROM dbo.SinhVien WHERE MaSinhVien = @MaSinhVien)
DECLARE @MaNganh nvarchar(10)
SET @MaNganh = (SELECT MaNganh FROM dbo.Lop WHERE MaLop = @MaLop)
DECLARE @TenNganh nvarchar(100)
SET @TenNganh = (SELECT TenNganh FROM dbo.Nganh WHEREMaNganh = @MaNganh)
IF(
@TenNganh LIKE N'%Công nghệ may%' OR
@TenNganh LIKE N'%Kế toán%' OR
@TenNganh LIKE N'%Quản trị kinh doanh%' OR
@TenNganh LIKE N'%Quản trị kinh doanh du lịch%' OR
@TenNganh LIKE N'%Công nghệ hóa%'