Các truy cập dữ liệu từ các trường

Một phần của tài liệu Thuật toán tụ năng lượng BEA (bond energy algorithm) trong thiết kế cơ sở dữ liệu phân tán tuyển sinh trung học phổ thông tỉnh thái nguyên (Trang 63)

2. Cấu trúc luận văn

3.1.2.Các truy cập dữ liệu từ các trường

Dữ liệu thử nghiệm tập hợp từ các cơ sở đào tạo, tạo nên quan hệ cần được phân đoạn.

Liên quan đến luận văn, trong chương này, bài toán đề cập là phân đoạn dọc.

Quan hệ được xét có n thuộc tính. Thử nghiệm hiện tại n <= 15. Tuy nhiên, số lượng các thuộc tính của quan hệ tổng quát có thể chỉnh lí được.

Một số thuộc tính là: 1. Họ và tên học sinh;

2. Ngày tháng năm sinh của học sinh; 3. Giới tính, nam hoặc nữ, của học sinh;

4. Tên trường, tức cơ sở đào tạo trung học cơ sở; 5. Điểm trung học cơ sở;

6. Điểm ưu tiên, đối với khu vực, gia đình thương binh, liệt sĩ, dộc tộc thiểu số… 7. Điểm khuyến khích; 8. Điểm văn; 9. Điểm toán; 10.Điểm trung bình cộng. 3.2. Phân đoạn dọc 3.2.1. Đặt vấn đề

Với hình dạng của cơ sở dữ liệu phân tán đề xuất, luận văn đặt ra yêu cầu đối với thiết kế cơ sở dữ liệu phân tán theo phân đoạn dọc với các nhiệm vụ sau:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

1. Tại mỗi trường THPT, cán bộ giáo dục thu thập thông tin về các thí sinh. Thông tin này được tổ chức theo bảng 2 chiều (i) dòng ứng với thí sinh; (ii) cột ứng với thuộc tính;

2. Sở GDDT thu thập tất cả nguồn dữ liệu từ các cơ sở đào tạo, tức các trường. Có thể hình dung thấy tại Sở có một bảng dữ liệu tổng quát, có nhiều cột, ứng với các thuộc tính khác nhau;

3. Công nghệ thông tin và truyền thông tại Sở sẽ thu thập tần suất truy cập đến kho dữ liệu tổng quát, theo các câu hỏi Qi khác nhau. Các câu Qi ứng với bộ thuộc tính khác nhau. Đó là cơ sở để phân đoạn dọc bảng tổng quát thành các bảng dữ liệu nhỏ hơn. Người ta cần sử dụng thuật toán BEA và thuâ ̣t toán phân đoạn dọc;

4. Kết quả thu được sau khi phân đoạn sẽ hình nên các cơ sở dữ liệu tại mỗi cơ sở đào tạo.

3.2.2. Áp dụng thuật toán tụ năng lượng BEA

3.2.2.1. Giới thiệu thuật toán

Thuật toán tụ năng lượng đã được trình bày trong chương 2 [6, 10]. Chương này áp dụng thuật toán đối với bài toán thực tế tuyển sinh trung học phổ thông.

3.2.2.2. Quá trình phân đoạn dọc với thuật toán BEA

Theo [6, 10], thuật toán phân đoạn dọc trong quá trình thiết kế cơ sở dữ liệu phân tán được trình bày lại như sau.

Dữ liệu đầu vào:

 Bảng dữ liệu R(A1, …, An)

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Kết quả:

 Các Ri, là bảng dữ liệu phân đoạn. Đối với một lần phân đoạn, có R1 (A1, …, Ai) và Rp (A#, Ai+1, …, An), trong đó A# là các thuộc tính khóa của bảng R.

Thuật toán:

1. Xác định lại tên các cột của bảng dữ liệu: chuyển sang các {Ci}

2. Lập bảng thống kê, cho biết Pi truy cập các cột Cj. Kết quả như bảng 2.

3. Dựa vào bảng thống kê, tính mức hấp dẫn của các Pj: AFF j = REF (Pj) * ACC (Pj); trong đó REF (Pj) lấy là 1, như trong thí dụ; ACC (Pj) là số các truy cập của Pj đến R. Nếu có nhiều trạm trong cơ sở dữ liệu phân tán, AFFj cần là tổng các AFF trên các trạm. Gọi các giá trị này là AFF(Pj) hay AFFj..

4. Xây dựng ma trận hấp dẫn xếp cụm:

 Dựa trên bảng thống kê về mức hấp dẫn của các Pj, xác định ma trận A n*n của các dòng C1, … Cn và cột C1, …, Cn. Giá trị Aij là mức hấp dẫn của Pj trên thuộc tính Ci, Cj.

 Tính giá trị trên đường chéo chính 

  n k ki ii A A 1 . (adsbygoogle = window.adsbygoogle || []).push({});

 Xác định các mức liên hệ Bond (Ci, Cj) với mọi i, j, ij.

   n k kj ki j i C A A C Bond 1 * ) , (

 Bắt đầu từ hai cột đầu C1, Cp, tức danh sách có thứ tự S. Xét lần lượt các cột khác {C3, …, Cn}: giả sử xét cột Cj: xét các khả năng đặt Cj vào danh sách S. Đối với mỗi khả năng Cx, Cj, Cx, cần xét giá trị đóng góp theo công thức:

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

CONT (Cx, Cj, Cx) = 2 * (BOND(Cx, Cj) + BOND (Cj, Cx) - BOND(Cx, Cx)). Khả năng có giá trị đóng góp cao nhất được chọn. Bổ sung Cj vào danh sách S.

 Sắp xếp lại ma trận hấp dẫn A theo dòng, để thứ tự các dòng như thứ tự các cột.

5. Phân đoạn ma trận hấp dẫn xếp cụm A:

 Trên ma trận (Aij), xét vị trí x ứng với tọa độ An-1, n-1. Điểm x chia ma trận thành khối trái trên và khối phải dưới. Tìm các phần từ của tập (i) PCTQ gồm các quá trình Pj chỉ truy cập các thuộc tính ứng với các cột trong khối trái trên; (ii) PCBQ gồm các quá trình Pj chỉ truy cập các thuộc tính ứng với các cột trong khối phải dưới; và (iii) PCTBQ gồm các quá trình truy cập các thuộc tính ứng các cột thuộc cả hai khối.

 Dựa vào bảng các giá trị AFF(Pj) để tính giá ứng với ba tập trên: Giá là tổng các AFF (Pj), Pj thuộc vào tập. Ứng với ba tập có các giá G1, Gp, G3, tương ứng.

 Tính giá cực đại G= G1 * Gp - G32.

 Lặp lại đối với các điểm x, từ tọa độ An-2, n-2 đến A1, 1: (i) sử dụng ba tập; (ii) tính giá G1, Gp, G3; (iii) tính G; (iv) chuyển vị ma trận: dòng dưới cùng chuyển lên đầu, cột đầu chuyển về cuối.

 Xác định vị trí x trong ma trận A để giá trị G cực đại.

6. Phân đoạn bảng quan hê ̣ theo hai khối, ứng với tọa độ x có G đạt giá trị cực đại. Bổ sung thuật toán khóa vào đoạn chưa chứa thuộc tính khóa. Các thuộc tính ứng với các cột trong các khối này tạo nên quan hệ R1, Rp.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

3.2.3. Thực hiện với dữ liệu cụ thể

3.2.3.1. Dữ liệu

Hình 3.2. Các trạm phân tán được xét trong bài toán tuyển sinh.

Hình 3.3. Các thuộc tính của dữ liệu trong bảng cơ sở dữ liệu sẽ phân rã.

Bài toán về thông tin tuyển sinh được xác định tạm thời với: 1. Bảng quan hệ phổ quát có 10 thuộc tính dữ liệu, N=10; 2. Xét trên các trạm, M=4;

3. Thống kê thấy có các câu hỏi thường dùng, ứng với các quá trình truy cập đến cơ sở dữ liệu, theo các trạm phân tán, L = 8.

3.2.3.2. Các dữ liệu thống kê

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Hình 3.5. Tần suất truy cập đến cơ sở dữ liệu từ 4 trạm theo 8 dạng câu hỏi.

3.2.3.3. Tính ma trận hấp dẫn

Dựa theo dữ liệu thống kê trên các trạm, về số câu hỏi truy cập cơ sở dữ liệu tập trung, bài toán tính ma trận hấp dẫn. Nó được dùng lặp đi lặp lại, để phân đoạn dọc cơ sở dữ liệu, theo hấp dẫn của các thuộc tính.

Hình 3.6. Ma trận hấp dẫn cụm trước khi tính toán phân đoạn

3.2.3.2. Mô tả biến trong chương trình

Trong phần phụ lục đã liệt kê chương trình. Dưới đây là mô tả các biến trong chương trình đó.

tpe

vect = array [1..17] of integer; var (adsbygoogle = window.adsbygoogle || []).push({});

fpc, facc, fkq, fthtinh: text;

MAX, i, j, k, l, m, n, w, w1, w2, i_tach: integer; pc: array [1..10, 1..2] of integer;

acc: array [1..10, 1..10] of integer; aff, tg: array [1..10] of integer;

hd, hd2: array [1..15, 1..15] of integer; thtinh: array [1..15] of integer;

ten_tht: array [1..15] of string; bXYZ, bXY, bYZ, bXZ: integer; R1, R2, chiso: vect;

b_trai, b_phai: boolean;

p_tren, p_duoi, p_hai: vect; {cac cot TREN, DUOI} gia_t, gia_d, gia_h: integer; {gia cua TREN, DUOI}

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

3.3. Các sơ đồ thuật toán 3.3.1. Chương trình chính 3.3.1. Chương trình chính

Chương trình chính nhập các danh mục về:

 Tên đơn vị phân tán, ứng với các trạm;

 Tên các thuộc tính của quan hệ cần phân đoạn dọc;

 Dữ liệu thống kê về truy cập của các quá trình, tức các câu hỏi quan hệ, trên các trạm khác nhau của hệ thống.

Bắt đầu chương trình

chính

Nhập dữ liệu Tên thuộc tính

Tên trạm làm việc (Đồng Hỷ, Đại từ, Phú Bình, Lương Phú)

Đọc các dữ liệu thống kê về:

Các quá trình truy cập cột thuộc tinh PC Tần số truy cập theo các trạm phân tán ACC

Tính ma trận hấp dẫn xếp cụm HD Tính ma trận hấp dẫn có đường chéo HD2 Phân đoạn ma trận hấp dẫn Kết thúc Được quan hệ phân tách R1, R2

Hình 3.7. Chương trình chính của bài toán phân đoạn quan hệ

3.3.2. Thuật toán phân đoạn ma trận hấp dẫn phân cụm

Thuật toán làm việc trên ma trận hấp dẫn xếp cụm, kích thước nxn. Bắt đầu từ điểm x dưới, trên đường chéo chính.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

 Đầu vào: Ma trận HD2, kích thược nxn;

 Đầu ra: Điểm phân tách. Dựa vào đó, chương trình sẽ tách được hai quan hệ.

Chương trình phân

đoạn dọc

i:= n-1, MAX := số nhỏ

Tìm P_trên, P_dưới, P_hai (adsbygoogle = window.adsbygoogle || []).push({});

Giá := Trên * dưới – hai*hai

Cập nhật MAX, i_tách I <> n-1 Chuyển vị dòng, cột HD2 (dòng n thành dòng 1; cột 1 thành cột n) Cập nhật tham số dòng, cột I := i+1 I < 2 đ s đ s Xét HD2, i_tách, cột: Tách được R1, R2 tại vị trí i_tách

Kết thúc

Hình 3.8. Thuật toán tụ năng lượng BEA theo [6. 10], dùng trong phân đoạn dọc

3.3.3. Thuật toán tìm phần trên, phần dưới trong ma trận hấp dẫn

Thuật toán tìm các phần trên, dưới và quá trình sử dụng các thuộc tính của trên, dưới và cả hai phần trên dưới, sẽ được sử dụng trong thuật toán phân đoạn, vừa trình bày trong 3.3.2.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Tìm điểm tách ma trận

hấp dẫn

Lấy giá trị khởi đầu cho Dưới, Trên, Trái, Phải… i_dưới :=1

i_trên := 1;

Dưới (i_dưới) := tổng các giá trị cột i+1 đến n Trên (i_trên) := tổng các giá cột từ 1 đến i

s

K:=1

PC(k, 1) hay PC(k,2) có trong TRÊN

PC(k, 1) và PC(k,2) không có trong DƯỚI

P_trên tăng thêm một phần tử PC(k, 1) hay PC(k,2) có trong DƯỚI đ đ s

P_dưới tăng thêm một phần tử K:= k+1

K < = l

P_hai tăng thêm một phần tử đ Kết thúc s đ s

Hình 3.9. Thuật toán tìm các phần, dùng để phân đoạn dọc.

1. Đầu vào:

 Ma trận hấp dẫn nxn HD2;

 Vecto thống kê số các truy cập của các quá trình theo các thuộc tính PCk, k=1..l;

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

2. Đầu ra: điểm x trên đường chéo, mà tại đó giá của các quá trình

đạt cực đại. kết quả ra được biểu diễn theo phần TRÊN, DƯỚI.

Hình 3.10. Minh họa hình của chương 2.

3.4. Kết luận chương

Chương trên đã trình bày thuật toán phân đoạn dọc, với các thuật toán chi tiết: (adsbygoogle = window.adsbygoogle || []).push({});

1. Thuật toán tìm phần trên, dưới, trong ma trận hấp hẫn; 2. Thuật toán tìm điểm tách trên ma trận hấp dẫn;

3. Thuật toán phân đoạn, dựa vào ma trận hấp dẫn đã sắp xếp lại. Các chương trình kèm theo cho thấy kết quả xuất trên tệp ngoài, tên là fketqua.txt. Chương trình được viết bằng ngôn ngữ lập trình Pascal 7.0, phù hợp với môi trường đang được sử dụng tại cơ sở đào tạo của học viên.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

KẾT LUẬN

Kết quả luận văn đạt được

Qua việc thực hiện luận văn tốt nghiệp cao học công nghệ thông tin, học viên sẽ hiểu sâu hơn về quá trình cơ sở dữ liệu phân tán, từ đó có những thay đổi cho phù hợp để khai thác cơ sở dữ liệu tại các cơ sở giáo dục đạt kết quả tốt.

Dựa trên thực tế về vấn đề tuyển sinh THPT tỉnh Thái Nguyên, căn cứ nhu cầu và điều kiện thực tiễn, từ đó đề xuất các giải pháp trong công tác quản lý thi tuyển sinh, nâng cao hiệu quả xử lý và khai thác dữ liệu đối với các cấp quản lý cũng như tại các nhà trường.

Việc nghiên cứu và thử nghiệm thuật toán tụ năng lượng sẽ tạo điều kiện cho học viên hoàn thành luận văn tốt nghiệp, đồng thời tăng cường năng lực nghiên cứu về thuật toán trong công nghệ thông tin, cụ thể trong thiết kế cơ sở dữ liệu.

Trong thời gian thực hiện tìm hiểu lí thuyết và ứ ng du ̣ng, luận văn đạt được một số kết quả sau:

 Tìm hiểu vai trò của cơ sở dữ liệu phân tán, với các dạng phân đoạn; đặc biệt tìm hiểu về ứng du ̣ng cần đến phân đoạn dọc;

 Tìm hiểu vai trò của thuật toán tụ năng lượng BEA trong quá trình thiết kế cơ sở dữ liệu phân tán với phân đoạn dọc;

 Thử nghiệm các đoạn chương trình, cho phép phân đoạn dọc đối với cơ sở dữ liệu thử nghiệm và cơ sở dữ liệu thực tế. Bài toán thử nghiệm với hệ thống cơ sở dữ liệu về tuyển sinh THPT tại Sở GDDT tỉnh Thái Nguyên.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

Riêng đối với bản thân học viên, luận văn là cơ hội để học viên rà soát kiến thức về cơ sở dữ liệu nói chung và cơ sở dữ liệu phân tán nói riêng; đặc biệt hệ thống xử lí dữ liệu, phục vụ công tác quản lý giáo dục tại đơn vị công tác.

Phương hướng tìm hiểu và thực nghiệm tiếp theo của luận văn

Sau khi kết thúc chương trình đào tạo cao học về công nghệ thông tin, luận văn còn phải tiếp tục hoàn thiện, để phục vụ công tác quản lý giáo dục trong thực tế. Một số phương hướng đặt ra là:

 Thu thập dữ liệu, hoàn thiện hệ thống dữ liệu về công tác tuyển sinh THPT, không chỉ trong một năm tuyển sinh, mà trong một thời kì, nhằm có dữ liệu so sánh;

 Hoàn thiện chương trình phân đoạn dọc cơ sở dữ liệu phân tán, áp dụng cho bài toán khác về công tác quản lý trong ngành GDDT tại Thái Nguyên.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1]. Đỗ Trung Tuấn, Cơ sở dữ liệu nâng cao, NXB. Đại học Quốc gia Hà Nội, 2015.

[2]. Phạm Thế Quế, “Giáo trình Cơ sở dữ liệu: Lý thuyết và thực hành”, Nhà xuất bản Bưu điện, Hà Nội, 2004.

[3]. Website Cổng thông tin điện tử tỉnh Thái Nguyên, http://www.thainguyen.gov.vn/wps/portal/vb1

[4]. Website Sở GD-ĐT Thái Nguyên, http://thainguyen.edu.vn/

Tiếng Anh

[5]. Abram Siberschatz, Henry F.Korth, S.Sudarshan “Database Systems Concepts”, Published by McGaw-Hill/ Irwin, New York, 2002.

[6]. Angelo R. Bobak, Distributed and Multi-Database Systems, Ed. Artech House, 1998.

[7]. Donald Knuth, The Art of Computer Programming Volumes 1, 2, 3, NXB. Addison Wesley, 1968.

[8]. M. Tamer Ozsu And Patricle Valduriez, “Principles of Distributed Database Systems”, Second Edition, Prentive Hall Upper Saddle River, New Jersy, 1999. (adsbygoogle = window.adsbygoogle || []).push({});

[9]. Michanel V.Mannino, “Database Application Development & Design”, Published by McGraw-Hill/ Irwin, New York, 2001. [10].W. T. McCormick Jr., P. J. Schweitzer, T. W. White, Problem

Decoposition and Data Reorganization by a Clustering technique, Operations Research, Vol. 20, N. 5, 1972.

Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn

PHỤ LỤC

Chương trình phân đoạn

program phandoan; uses CRT;

{ chuong trinh phan doan doc, voi bang R (C1,..., Cn) Ci, i=1, n } { cac qua trinh P1,..., Pk truy cap R Pk, k=1, l }

{ Cac tram phan tan la S1,..., Sm Sj, j=1, m }

{ muc dich cua chuong trinh la tach R thanh R1, R2... } type

vect = array [1..17] of integer; var

fpc, facc, fkq, fthtinh: text;

MAX, i, j, k, l, m, n, w, w1, w2, i_tach: integer; pc: array [1..10, 1..2] of integer;

acc: array [1..10, 1..10] of integer; aff, tg: array [1..10] of integer;

hd, hd2: array [1..15, 1..15] of integer; thtinh: array [1..15] of integer;

ten_tht: array [1..15] of string; bXYZ, bXY, bYZ, bXZ: integer; R1, R2, chiso: vect;

b_trai, b_phai: boolean;

p_tren, p_duoi, p_hai: vect; {cac cot TREN, DUOI} gia_t, gia_d, gia_h: integer; {gia cua TREN, DUOI}

procedure xep (var chiso: vect; p, q:integer);

{chuong trinh xu li day n vi tri; chuyen vi tri q vao sau vi tri p}

var

chiso2: vect; i: integer; begin

for i:=1 to p do chiso2[i]:=chiso[i]; chiso2[p+1]:=chiso[q];

for i:= p+2 to q do chiso2[i]:= chiso[i+1]; for i:= q+1 to n do chiso2 [i]:= chiso[i]; for i:=1 to n do chiso[i]:= chiso2[i]; {cap nhat vecto thtinh}

Một phần của tài liệu Thuật toán tụ năng lượng BEA (bond energy algorithm) trong thiết kế cơ sở dữ liệu phân tán tuyển sinh trung học phổ thông tỉnh thái nguyên (Trang 63)