Xây dựng công cụ tích hợp các DM đã xây dựng để trao đổi thông tin với nhau: Sau khi xây dựng các Data Mart để lưu trữ dữ liệu phục vụ trực tiếp cho hoạt động tác nghiệpcủa các đơn vị, p
Trang 1TRIỂN KHAI CÔNG CỤ HỖ TRỢ XÂY DỰNG VÀ QUẢN TRỊ KHO DỮ LIỆU PHỤC VỤ QUẢN LÝ ĐÀO TẠO TẠI TRƯỜNG ĐẠI HỌC KINH TẾ.
Ths.Nguyễn Văn Chức chucnv@ud.edu.vn
4.1 Phân tích chức năng quản trị kho dữ liệu phục vụ đào tạo
Mục đích chính của kho dữ liệu đào tạo là hỗ trợ thông tin phục vụ công tác quản lý đàotạo tại trường Mỗi khoa, mỗi phòng đều có nhu cầu sử dụng thông tin riêng cho yêu cầutác nghiệp của mình Vì vậy việc tổ chức, phân phát dữ liệu cho các đơn vị một cách hợp lý
và tổng hợp dữ liệu từ các đơn vị để lưu trữ, báo cáo, dự phòng là rất cần thiết
Chức năng chính của kho dữ liệu phục vụ đào tạo gồm các chức năng sau:
Xây dựng các Data Mart cục bộ độc lập của các khoa, phòng: Lưu dữ liệu cục bộ tại
mỗi khoa, phòng Các thông tin này sẽ được qui về một định dạng thống nhất đó là sử dụng
hệ quản trị CSDL ORACLE để tổ chức lưu trữ Vì vậy nhiệm cụ chính là xây dựng cấutrúc CSDL trong ORACLR hợp lý cho phép chuyển đổi dữ liệu từ các nguồn đã tồn tạitrước đây như MS Excel, MS Access, MS SQL SERVER về lưu trữ trong ORACLE Như
đã phân tích trong chương 3 thì các DM cần xây dựng là DM_DAOTAO chứa dữ liệu trựctiếp đến công tác đào tạo, DM_HOSOCB chứa dữ liệu liên quan đến hồ sơ cán bộ,DM_HOSOSV chứa dữ liệu liên quan đến hồ sơ sinh viên và DM_VBNCKH chứa thôngtin liên quan đến công tác quản lý văn bằng và hoạt động nghiên cứu khoa học trongtrường
Xây dựng công cụ tích hợp các DM đã xây dựng để trao đổi thông tin với nhau: Sau
khi xây dựng các Data Mart để lưu trữ dữ liệu phục vụ trực tiếp cho hoạt động tác nghiệpcủa các đơn vị, phòng ban, công việc tiếp theo là xây dựng các công cụ cho phép tổng hợp,chuyển đổi, đồng bộ, làm sạch dữ liệu, phân tán dữ liệu giữa các Data Mart vào một kho
dữ liệu chung cũng như phân phát dữ liệu cho người sử dụng phục vụ công tác quản lý
Trang 2Hình 4.1 Sơ đồ phân cấp chức năng hệ thống quản lý kho dữ liệu phục vụ đào tạo
(1) Các kho dữ liệu cục bộ được tạo mới trên DBMS ORACLE để lưu trữ dữ liệu phục vụtrực tiếp cho hoạt động của các khoa, phòng ban Mỗi khoa, phòng ban có quyền tự trị caođối với các dữ liệu cục bộ của mình Dữ liệu trong các DM có thể kế thừa từ các nguồn dữliệu đã tồn tại trước đó trong hệ thống ở nhiều định dạng dữ liệu như Excel, MS Access,SQL SERVER hay Oracle vì vậy hệ thống quản trị dữ liệu hỗ trợ chuyển đổi tất cả cácđịnh dạng dữ liệu về Oracle
(2) Dữ liệu trong các DM do những người quản trị cục bộ có toàn quyền cập nhật, khaithác.Dữ liệu trong các DM được tích hợp về lưu trữ kho dữ liệu chung của trường để phục
vụ công tác tổng hợp, lưu trữ, khai thác phục vụ quản lý, điều hành Cấu trúc của tổng khocũng được xây dựng trên DBMS Oracle Tổng kho dữ liệu phải có người quản trị riêng vàđây là người có quyền cao nhất đối với hệ thống quản lý kho dữ liệu
(3) Trong quá trình hoạt động tác nghiệp, dữ liệu có sự biến đổi(do các thao tác cập nhật)trong các DM hay trong tổng kho, vì vậy công tác đồng bộ nhằm giúp cho dữ liệu giữa các
Công cụ quản trị kho dữ liệu đào tạo
(3)Đồng bộ dữ liệu từ các nguồn dữ liệu với Data Mart, giữa các Data Mart với nhau
(4)Phân tán dữ liệu
từ tổng kho dữ liệu của trường đến các khoa, phòng ban phục
vụ công tác quản
lý, tác nghiệp
Trang 3nguồn có sự nhất quán cao, tránh xung đột dữ liệu giữa các nguồn dữ liệu Chẳng hạn, saukhi văn thư các khoa nhập điểm cho sinh viên ta tiến hành đồng bộ điểm lên phòng đào tạo
để cập nhật điểm cũng như công tác đối chiếu điểm sinh viên giữa khoa và phòng đào tạo.(4) Dữ liệu từ tổng kho khi cần thiết sẽ được phân tán đến các đơn vị cần sử dụng như cáckhoa, các phòng ban Việc phân tán dữ liệu có thể phân tán ngang(theo số bản ghi) hayphân tán dọc(theo số thuộc tính) cũng như phân tán theo một số điều kiện lọc Ví dụ saukhi tổng kho dữ liệu đã có dữ liệu về tất cả sinh viên của toàn trường, sau đó phân tán cácsinh viên này về lưu trữ ở các DM của các khoa để thuận lợi cho công tác quản lý, sinhviên thuộc khoa nào sẻ được chuyển về lưu trữ ở DM của khoa đó
4.2 Triển khai kho dữ liệu phân tán phục vụ quản lý đào tạo trường Đại học Kinh tế 4.2.1 Xây dựng mô hình hệ thống mạng trường Đại học Kinh tế
Để triển khai mô hình kho dữ liệu phân tán phục vụ công tác đào tạo của trường Đại họcKinh tế, cơ sở hạ tầng là hệ thống mạng của nhà trường phải được đảm bảo hoạt độngthông suốt để trao đổi thông tin giữa các Data Mart và tổng kho Yêu cầu tối thiểu của hệthống mạng LAN của nhà trường là phải có các SERVER chuyên dụng phục vụ cho mụcđích sau:
01 SERVER đóng vai trò là Tổng kho để lưu trữ tất cả dữ liệu tích hợp từ các Data Martcủa các khoa, phòng ban SERVER để lưu trữ tổng kho phải có cấu hình mạnh, khả nănglưu trữ lớn và hỗ trợ các cơ chế dữ phòng, bảo vệ dữ liệu như FIREWALL, RAID Cài đặt
hệ quản trị CSDL ORACLE
10 SERVER để lưu trữ dữ liệu cho các kho dữ liệu hướng chủ đề(Data Mart) cho 07 Khoachuyên môn và 3 phòng ban (Phòng Đào tạo, phòng Tài vụ, phòng Hành chính) CácSERVER chứa các Data mart này có thể không cần yêu cầu cấu hình quá lớn để tránh lãngphí trong đầu tư Các SERVER cài đặt hệ quản trị CSDL ORACLE
Hệ thống mạng thông tin được phân thành 3 vùng:
Vùng 1 (front-end )
Trang 4Thiết bị tích hợp sẵn tường lửa với những chức năng hữu dụng như : Chặn port, lọc IP,chống tấn công từ chối dịch vụ (DDoS, DoS, SYN flood, Ping of dead, ),hỗ trợ chặn URL
dễ dàng và hiệu quả thông qua từ khóa, hỗ trợ kỹ thuật Email Alert giúp giám sát hiệu quả
và phản ứng kịp thời, khóa các ứng dụng tự động download của các Java applets và cácđiều khiển ActiveX
VPN (Virtual Private Network):
VPN server tích hợp sẵn giúp người dùng từ xa có thể kết nối với mạng cục bộ của bạn đểcheck mail, load file, in ấn… một cách bảo mật với IPSEC, PPTP, L2TP, protocol, chế độ
mã hóa AES,MPPE, hardware-base DES/3DES thông qua mạng Internet.Tính năng độcđáo này giúp tiết kiệm chi phí thuê bao đường leaseline hay cước viễn thông liên tỉnh/quốc
tế khi kết nối bằng quay số truyền thống, tích hợp sẵn DHCP server nhằm đơn giản hóaviệc cấu hình mạng nội bộ, bảo mật đơn giản và thuận tiện thông qua việc phân chiaVLAN, quản lý băng thông trên từng port (inbound / outbound)
Vùng này yêu cầu thiết bị Router (bộ định tuyến) và Firewall (tường lửa) Hiện nay trên thịtrường có nhiều hãng chuyên thiết bị mạng như Cisco, Draytek Tuỳ thuộc vào kinh phí cóthể chọn loại thích hợp
Vùng 2 (DMZ)
Vùng này bao gồm các server chức năng, bao gồm các server Database, DNS, DHCP,Mail, Web, Backup,… dùng chung dữ liệu Ở đây yêu cầu hệ thống phải đảm bảo kết nốiliên tục, sử dụng switch (Layer 3) tốc độ cổng mạng đạt đến mức Gigabit , có hỗ trợ VLANnhằm cho phép các truy cập nhanh
Vùng 3 (back-end)
Vùng này chứa các server của các khoa để chứa dữ liệu nội bộ và riêng biệt, có thể dùngswitch có hỗ trợ VLAN để các máy trạm tại các nơi không thể nhìn thấy nhau
Trang 5Server Database chính và các server chức năng
Sơ đồ hệ thống trao đổi thông tin trường Đại học Kinh tế ĐHĐN
Khoa Tm dulịch Khoa Ngân hàng P.Đào tạo P.Tài vụ P.Hành chính Khoa Quản trị Khoa Mác - LêNin Khoa Kể toán Khoa Tk tin học Khoa Kt phát triển
Máy trạm Máy trạm
Máy trạm Máy trạm
Máy trạm Máy trạm Máy trạm Máy trạm Máy trạm Máy trạm
: Server chính &
Server các khoa : Máy trạm : Trục cáp chính(cáp quang) :Cáp kết nối hệ thống(cáp UTP)
Máy trạm các khoa, các phòng ban
Back end
Các server chức năng
Server các khoa
Intranet ĐHĐN Internet
Trang 64.3.1.Quản lý tên cơ sở dữ liệu toàn cục(Global Database Name) trong Cơ sở dữ liệu phân tán
Trong hệ thống cơ sở dữ liệu phân tán, mỗi cơ sở dữ liệu có một tên toàn cục duy nhấtdùng để xác định cơ sở dữ liệu Tên cơ sở dữ liệu toàn cục gồm hai thành phần là tên cơ sở
dữ liệu(Database name) và tên miền(Domain name) Tên cơ sở dữ liệu từ một đến tám ký
tự Tên miền phải theo chuẩn qui ước của internet, các mức trong tên miền phải được cáchnhau bởi dấu chấm Sau đây là ví dụ về đặt tên cho CSDL toàn cục trong ORACLE:
Để xem tên cơ sở dữ liệu toàn cục ta sử dụng câu lệnh :
SELECT * FROM GLOBAL_NAME;
Để thay đổi tên cơ sở dữ liệu toàn cục ta dùng cú pháp:
ALTER DATABASE RENAME GLOBAL_NAME TO databasename.domain
Ví dụ để đổi tên cơ sở dữ liệu toàn cục TKTH.DHKT.EDU.VN thànhKHOA.DHKT.EDU.VN ta làm như sau:
4.3.2.Tạo các liên kết cơ sở dữ liệu(Database links) trong hệ thống CSDL phân tán
Để hỗ trợ cho các ứng dụng truy xuất dữ liệu trong hệ thống CSDL phân tán ta cần tạo cácliên kết dữ liệu(Database links) giữa các nguồn dữ liệu ở xa(Remote Database) MộtDatabase link là một con trỏ trên CSDL cục bộ(local database) cho phép bạn truy cập các
Trang 7đối tượng dữ liệu trên một CSDL ở xa(remote database) ORACLE cho phép tạo cácDatabase Links bằng câu lẹnh SQL và bằng giao diện đồ họa.
Tạo các Database Links sử dụng câu lệnh SQL:
Database Link Private
CREATE DATABASE LINK "DAOTAO.DHKT.EDU.VN"
CONNECT TO "CHUC"
IDENTIFIED BY "chuc"
USING 'DMDAOTAO'
Database Link Public
CREATE PUBLIC DATABASE LINK "DAOTAO.DHKT.EDU.VN"
Trang 8Sau khi thiết lập Database Link thành công, ta có thể truy xuất dữ liệu từ xa thông qua têncủa Database link
Ví dụ, từ CSDL cục bộ DATAWH ta muốn xem nội dung của bản môn học trong CSDL từ
xa đào tạo qua Database Link DAOTAO.DHKT.EDU.VN, ta sử dụng câu lệnh SQl nhưsau:
Đóng và xóa Database Links
Để đảm bảo an toàn khi truy cập các CSDL từ xa qua hệ phân tán, nếu không cần thiết thìnên đóng hoặc xóa các Database Links
Đóng Database Link sử dụng câu lệnh SQL như sau:
Trang 9ALTER SESSION CLOSE DATABASE LINK Linkname;
Để đóng Database Links DAOTAO.DHKT.EDU.VN
ALTER SESSION CLOSE DATABASE LINK DAOTAO.DHKT.EDU.VN
Để xóa các Database Links ta sử dụng câu lệnh SQL như sau:
DROP [PUBLIC] DATABASE LINK dblink;
Ví dụ để xóa Database Links DAOTAO.DHKT.EDU.VN
DROP DATABASE LINK DAOTAO.DHKT.EDU.VN
4.3.3.Giải quyết vấn đề tạo trong suốt vị trí của CSDL phân tán trong ORACLE(Location Transparency)
Trong hệ thống CSDL phân tán, yêu cầu về trong suốt vị trí đối với người sử dụng dữ liệu
là rất quan trọng, người dùng không cần biết dữ liệu được lưu trữ vật lý ở đâu trong hệthống mạng Nếu bạn đã tạo các Database Links cần thiết, người sử dụng có thể truy cậpvào các đối tượng dữ liệu ở xa như thể trên máy cục bộ, vấn đề này gọi là trong suốt vị trí,
ẩn đi các chức năng phân tán từ phía người sử dụng
ORACLE triển khai ba cách để tạo tính trong suốt vị trí như sau:
Sử dụng khung nhìn(View) để tạo trong suốt vị trí
Sử dụng bí danh(Synonyms) để tạo trong suốt vị trí
Sử dụng thủ tục(Procedures) để tạo trong suốt vị trí
Sử dụng khung nhìn(View) để tạo trong suốt vị trí
Những View cục bộ có thể cung cấp mức trong suốt vị trí đối với CSDL cục bộ hoặcCSDL từ xa trong CSDL phân tán
Giả sử có bảng KHOA trong CSDL cục bộ DMDAOTAO và bảng GIANGVIEN trongCSDL từ xa qua DB_link có tên TKTH.DHKT.EDU.VN, ta có thể tạo một khung nhìn nốithông tin từ các CSDL cục bộ và từ xa như sau:
Trang 10Khi người dùng sử dụng view V1 để xem dữ liệu, người sử dụng không cần biết dữ liệuđược lưu trữ vật lý ở đâu và được lấy từ bao nhiêu bảng.
Sử dụng bí danh(Synonym) để tạo trong suốt vị trí
Bí danh rất hữu ích trong cả hai môi trường CSDL phân tán và tập trung, sử dụng bí danh
là bạn đặt tên lại cho đối tượng CSDL để sử dụng, với CSDL phân tán bí danh làm chongười sử dụng không quan tâm đến dữ liệu đang ở đâu trong hệ phân tán mà chỉ biết tên bídanh của đối tượng CSDL Một điều cần chú ý khi dùng bí danh là nếu đối tượng CSDL bị
di chuyên hoặc đổi tên thì ta phải thay đổi bí danh cho phù hợp
Ta có thể tạo bí danh trên các đối tượng dữ liệu sau:
Tables, Views, Materialized Views, Procedures, Functions, Packages
Cú pháp để tạo bí danh:
CREATE [PUBLIC] synonym_name
FOR [schema.] object_name[@Database_link_name]
Trong đó:
public:Từ khóa xác định rằng bí danh có thể sử dụng cho mọi người dùng, nếu không có từ
khóa PUBLIC thì câu lệnh trên sẻ tạo ra bí danh riêng(Private) chỉ được sử dụng cho người
ta ra bí danh
synonym_name: tên bí danh dùng để tham chiếu đến đối tượng CSDL
schema: Lược đồ nơi chứa đối tượng CSDL
object_name: tên đối tượng CSDL được tham chiếu ví dụ như table, view, procedure,…
Trang 11Database_link_name: Xác định CSDL truy xuất từ xa.
Ví dụ, tạo bí danh GV_TKTH để xem thông tin về giảng viên của khoa thống kê tin họcchứa trong CSDL từ xa của khoa thống kê tin học qua Database LinkTKTH.DHKT.EDU.VN
Sử dụng thủ tục để tạo trong suốt vị trí
Sử dụng PL/SQL để tạo các thủ tục cục bộ tham chiếu đến CSDL từ xa
Giả sử ta viết thủ tục APPEND trong CSDL cục bộ DMDAOTAO để bổ sung các môn họccủa khoa thống kê vào bảng MONHOC của CSDL từ xa của khoa thống kê tin học quaDatabase Link TKTH.DHKT.EDU.VN như sau:
Trang 12Ta có thể sử dụng bí danh(Synonym) kết hợp với thủ tục để tạo mức trong suốt tốt hơn
Ví dụ tạo bí danh MONH để truy xuất đến bảng MONHOC trong CSDL từ xaTKTH.DHKT.EDU.VN và trong thủ tục DEL_MH cục bộ trên CSDL DMDAOTAO sửdụng bí danh MH để xóa các môn học với mã môn học được xác định
Trang 13WHERE MAMH=S;
END;
Khi người dùng hoặc ứng dụng đăng nhập vào CSDL DMDAOTAO cục bộ gọi thủ tụcDEL_RM(2150112) thủ tục này gọi thủ tục từ xa DEL_MONHOC trên CSDL từ xaTKTH.DHKT.EDU.VN để xóa môn học có mã là 2150112
Các câu lệnh DML chuẩn có hỗ trợ truy xuất CSDL từ xa tạo tính trong suốt cho ngườidùng
SELECT, INSERT,UPDATE,DELETE,LOCK TABLE,SELECT… FOR UPDATE (Cóthể không hỗ trợ cho hệ thống không đồng nhất)
Ví dụ: Từ CSDL DMDAOTAO ta tạo liên kết có tên TKTH.DHKT.EDU.VN để truy xuấtđến CSDL từ xa ở khoa thống kê tin học(TKTH) Sau đó ta sử dụng lệnh Insert để bổ sungcác môn học của khoa thống kê quản lý(có mã môn học bắt đầu bằng 215) từ kho dữ liệuDMDAOTAO xuống kho CSDL từ xa của khoa TKTH
Đăng nhập vào CSDL DMDAOTAO và thực hiện lệnh Insert như sau:
Trang 14Chú ý: Oracle không cho phép thực hiện các câu lệnh DDL như CREATE, ALTER, DROP
từ xa
3.3.4.Truy vấn từ xavà truy vấn phân tán
Truy vấn từ xa(Remote Query): Truy vấn thông tin từ một hoặc nhiều bảng ở xa nhưng
tất cả chúng đều lưu trữ trong 1 node Ví dụ xem nội dung bảng MONHOC của SchameCHUC trong CSDL từ xa TKTH.DHKT.EDU.VN
Cập nhật từ xa(Remote Update): Sửa dữ liệu từ 1 hay nhiều bảng trong cùng một node
Ví dụ: Từ CSDL cục bộ DMDAOTAO, muốn thay đổi tên của môn học có mã số 2150182thành Database trên CSDL từ xa TKTH.DHKT.EDU.VN ta thực hiện câu lệnh sau
Trang 15UPDATE MONHOC@TKTH.DHKT.EDU.VN
SET TENMH='Database'
WHERE MAMH='2150182'
Truy vấn phân tán(Distributed Query):Truy vấn lấy thông tin từ hai hay nhiều node
khác nhau trong hệ phân tán Ví dụ sau đây mô tả từ CSDL cục bộ DATAWH truy vấn tớibảng Giảng viên trong CSDL từ xa có Database Link là DAOTAO.DHKT.EDU.VN vàbảng Khoa trongCSDL từ xa có Database Link là TKTH.DHKT.EDU.VN
Cập nhật phân tán(Distributed Update)
Cập nhật dữ liệu trên 2 hay nhiều nút, có thể sử dụng PL/SQL, các thủ tục hoặc trigger baogồm hai hay nhiều cập nhật từ xa trên các nút khác nhau
Thủ tục UPDATE_DIST dưới đây từ CSDL cục bộ DATAWH thực hiện sửa đổi tên củamôn học có mã 215018 trên 2 CSDL từ xa là DAOTAO.DHKT.EDU.VN VÀTKTH.DHKT.EDU.VN Thành "Database"
Trang 16Tạo bảng từ các truy vấn phân tán từ xa
Từ CSDL DATAWH tạo bảng TONGHOP sử dụng truy vấn phân tán truy xuất dữ liệu trong các CSDL từ xa là GIANGVIEN@DAOTAO.DHKT.EDU.VN và
KHOA@TKTH.DHKT.EDU.VN
4.4 Xây dựng công cụ quản trị kho dữ liệu phục vụ quản lý đào tạo
4.4.1.Cài đặt các Data Mart trên ORACLE
Như đã phân tích và thiết kế trong chương 3, các Data mart phục vụ quản lý đào tạo như