1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán

16 390 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 293,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong phạm vi hạn hẹp của bài thu hoạch này, tác giã sẽ đề cập tới việc thiết kế một hệ cơ sở dữ liệu phân tán dựa vào việc phân mãnh các quan hệ thông qua thuật toán năng lượng liên kết

Trang 1

CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG



BÀI THU HOẠCH MÔN HỌC

CƠ SỞ DỮ LIỆU NÂNG CAO

Đề Tài:

Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán

Học viên thực hiện:

Trần Thanh Quốc Thắng MSSV: CH1101131

TP HCM, năm 2012

Trang 2

những lĩnh vực trọng tâm đã và đang được nghiên cứu và phát triễn bởi tính ứng dụng rộng rãi của nó trong hầu hết các lĩnh vực đời sống của con người như kinh doanh, an ninh, giao thông, y tế…

Việc thiết kế các mô hình cơ sở dữ liệu mới đang ngày càng trỡ nên cấp bách do nhu cầu lưu trữ dữ liệu ngày càng tăng, đòi hỏi phải có những mô hình cơ sở dữ liệu thích hợp cho việc truy vấn thông tin nhanh và chính xác

Vì vậy, việc ra đời của mô hình cơ sở dữ liệu phân tán như một điều tất yếu bởi tính ưu việt của nó so với các mô hình trước đó

Trong phạm vi hạn hẹp của bài thu hoạch này, tác giã sẽ đề cập tới việc thiết kế một hệ cơ sở dữ liệu phân tán dựa vào việc phân mãnh các quan hệ thông qua thuật toán năng lượng liên kết (Bond Energy Algorithm) Xin được gửi lời cảm ơn đến Phó Giáo sư - Tiến sỹ Đỗ Phúc, người đã tận tâm truyền đạt những kiến thức nền tảng cơ bản về môn học “Cơ Sở Dữ Liệu Nâng Cao”

Trang 3

CHƯƠNG TRÌNH ĐẠO TẠO THẠC SĨ CNTT QUA MẠNG 1

TP HCM, năm 2012 1

Mở đầu 2

MỤC LỤC 3

Phần I: Tổng Quan Về Cơ Sở Dữ Liệu Phân Tán 4

I Giới thiệu về cơ sở dữ liệu phân tán 4

1 Lịch sử phát triển 4

2 Khái niệm về cơ sở dữ liệu phân tán 4

3 Một vài hệ cơ sở dữ liệu phân tán 5

4 Vấn đề về phân mãnh trong thiết kế cơ sở dữ liệu phân tán 6

II Thuật toán năng lượng liên kết 7

1 Giới Thiệu 7

2 Tổng quan về thuật toán năng lượng liên kết 7

3 Các bước của thuật toán năng lượng liên kết 8

Phần 2: Ứng Dụng Tìm Kiếm Phân Mãnh Dọc 9

I Giới thiệu tổng quan về ứng dụng 9

II Tổng quan về cách hiện thực ứng dụng 11

Tài liệu tham khảo 16 6

1

Trang 4

Phần I: Tổng Quan Về Cơ Sở Dữ Liệu Phân Tán

I Giới thiệu về cơ sở dữ liệu phân tán

1 Lịch sử phát triển

Vào những năm 1970, hệ thống cơ sở dữ liệu chủ yếu là những hệ thống quản lý tập trung Với một hệ cơ sở dữ liệu tập trung, tập tất cả các dữ liệu được định vị tại một trạm đơn lẻ Những người sử dụng tại các trạm từ xa nói chung có thể truy nhập cơ sở dữ liệu thông qua các công cụ truyền thông

dữ liệu

Từ những năm 1980 trỡ đi, do nhu cầu thực tế là ngày càng có nhiều tổ chức phân bố trên nhiều vị trí địa lý khác nhau như các thành phố khác nhau hay các quốc gia khác nhau Trong những trường hợp như vậy, việc xây dựng các hệ cơ sở dữ liệu tập trung đối với các tổ chức này thường là không thực tế và không kinh tế Vì vậy, nhu cầu phân tán cơ sở dữ liệu ngày càng trỡ nên cần thiết và đòi hỏi phải có sự ra đời của một mô hình cơ sở dữ liệu mới đáp ứng được yêu cầu trên Một cơ sở dữ liệu phân tán là một cơ sở dữ liệu logic đơn lẻ mà được trải ra về mặt vật lý trên nhiều máy tính ở nhiều vị trí địa lý khác nhau

2 Khái niệm về cơ sở dữ liệu phân tán

Cơ sở dữ liệu phân tán là tập cơ sở dữ liệu có quan hệ logic với nhau và được trãi trên 1 mạng máy tính Mỗi trạm của mạng có khả năng xử lý tự quản và có thể thực hiện các ứng dụng cục bộ, mỗi một trạm cũng có thể tham gia vào ít nhất 1 ứng dụng toàn cục, có yêu cầu truy xuất dữ liệu tại nhiều trạm

Cơ sở dữ liệu phân tán là một khái niệm không bao gồm các trường hợp

xử lý dữ liệu trong các hệ thống sử dụng bộ nhớ chung, kể cả bộ nhớ trong hay bộ nhớ thứ cấp, nhất thiết phải là một hệ thống có sử dụng giao tiếp mạng với các trạm làm việc độc lập

Những đặc điểm của một hệ sơ sở dữ liệu phân tán bao gồm:

- Điều khiển tập trung

- Tự quản trạm

- Độc lập dữ liệu

Trang 5

- Tính trong suốt phân tán cơ sở dữ liệu

- Rút gọn dư thừa

- Tính lặp dữ liệu

- Cấu trúc vật lý phức và truy xuất hiệu suất cao

- Chương trình chỉ đường

- Sự ràng buộc toàn vẹn, phục hồi và điều khiển tương tranh

- Tính riêng rẽ và tính an toàn

3 Một vài hệ cơ sở dữ liệu phân tán

Có hai kiểu chung nhất của các hệ cơ sở dữ liệu phân tán là: hệ cơ sở

dữ liệu phân tán thuần nhất và hệ cơ sở dữ liệu phân tán không thuần nhất

a Hệ cơ sở dữ liệu phân tán thuần nhất

Khi áp dụng đối với các hệ cơ sở dữ liệu, thuật ngữ thuần nhất có nghĩa

là công nghệ cơ sở dữ liệu là như nhau (hay ít nhất có thể tương thích) tại mỗi vị trí địa lý khác nhau cũng có thể tương thích

Đối với các hệ cơ sở dữ liệu phân tán thuần nhất này, các điều kiện sau đây có thể tồn tại:

- Các hệ điều hành máy tính tại mỗi vị trí địa lý là như nhau hay ít nhất chúng có khả năng tương thích cao

- Các mô hình dữ liệu được sử dụng tại mỗi vị trí địa lý là như nhau

- Các hệ quản trị cơ sở dữ liệu được sử dụng tại mỗi vị trí địa lý là như nhau hay ít nhất chúng có khả năng tương thích cao

- Dữ liệu tại các vị trí khác nhau có các định nghĩa và khuôn dạng chung

Các hệ cơ sở dữ liệu phân tán thuần nhất đơn giản hoá việc chia sẻ dữ liệu giữa những người sử dụng khác nhau

b Hệ cơ sở dữ liệu phân tán không thuần nhất

Trong hầu hết các tổ chức, các hệ cơ sở dữ liệu liên quan đến một chu

kỳ dài không được chỉ đạo và lập kế hoạch cẩn thận Các máy tính khác nhau

và các hệ điều hành khác nhau có thể được sử dụng tại mỗi vị trí địa lý Các

mô hình dữ liệu khác nhau và các hệ quản tri cơ sở dữ liệu khác nhau cũng

Trang 6

có thể được lựa chọn sử dụng Ví dụ, một vị trí có thể sử dụng công nghệ cơ

sở dữ liệu quan hệ mới nhất, trong khi một vị trí khác có thể lưu trữ dữ liệu sử dụng các tệp truyền thống hay các cơ sở dữ liệu mạng, phân cấp cũ hơn Phức tạp hơn nữa, dữ liệu trên các vị trí thường không tương thích Các mâu thuẫn điển hình bao gồm các khác biệt về cú pháp (sự biểu diễn khác nhau của các khoản mục dữ liệu tại hai vị trí) và các khác biệt về ngữ nghĩa

4 Vấn đề về phân mãnh trong thiết kế cơ sở dữ liệu phân tán

Một cơ sở dữ liệu phân tán dựa trên mô hình quan hệ trước hết phải tuân thủ các quy tắc về chuẩn hóa cho cơ sở dữ liệu quan hệ Thêm vào đó,

để phân tán cơ sở dữ liệu cần có thao tác chính là phân mãnh các quan hệ Mục đích chính của việc phân mãnh các quan hệ là nhằm để nhận ra các đoạn không trùng nhau Có 2 cách phân mãnh chính:

- Phân mãnh ngang: là quá trình chia các bộ của quan hệ thành các tập con Mỗi tập con này có thuộc tính vị trí thông thường

- Phân mãnh dọc: là quá trình chia nhỏ tập thuộc tính của một quan hệ thành những quan hệ nhỏ hơn Phân đoạn đúng khi mỗi thuộc tính của các quan hệ con đều ánh xạ ít nhất sang một thuộc tính của quan hệ ban đầu Hơn nữa, có thể tạo lại quan hệ ban đầu bằng cách liên kết các quan hệ con với nhau

Để đảm bảo tính nhất quán của cơ sở dữ liệu, đặc biệt về ngữ nghĩa của

dữ liệu, khi phân mãnh cần tuân thủ các tính chất sau:

- Tính đầy đủ

- Tính tái thiết được

- Tính tách biệt

Trang 7

II Thuật toán năng lượng liên kết

1 Giới Thiệu

Có hai phương pháp chính thường được dùng trong việc tìm kiếm các phân mãnh dọc là:

- Phương pháp nhóm: khởi đầu bằng tập các mãnh, mỗi mãnh có 1 thuộc tính, tại mỗi bước ghép một số mãnh lại cho tới khi thõa mãn 1 tiêu chuẩn nào đó

- Phương pháp tách: tại mỗi bước tìm 1 phân hoạch có lợi cho việc truy xuất của ứng dụng trên các thuộc tính đó

Một trong những thuật toán thường được sử dụng trong việc tìm kiếm các phân mãnh dọc là thuật toán năng lượng liên kết (Bond Energy Algorithm, Hofer & Severance, 1975 và Navathe, 1984) được thiết kế đặc biệt

để xác định các nhóm thuộc tính gồm các mục tương tự, khác với một sắp xếp thứ tự tuyến tính của các mục Các kết quả tụ nhóm không bị ảnh hưởng bởi thứ tự đưa các mục vào thuật toán Thời gian tính toán của thuật toán có thể chấp nhận được là O(n2), với n là số lượngthuộc tính

2 Tổng quan về thuật toán năng lượng liên kết

Thông tin dùng để phân mãnh dọc có liên quan đến các ứng dụng, một mãnh dọc thường chứa các thuộc tính thường xuyên được truy xuất chung bởi một ứng dụng gọi là “ái lực”

Số đo độ ái lực thuộc tính giữa 2 thuộc tính Ai và Aj của quan hệ R[A1, A2, …, An] ứng với tập quan hệ Q = (q1, q2, …, qq) được định nghĩa như sau:

Trang 8

Dựa vào công thức trên, ta có thể tính được một ma trận ái lực thuộc tính đầy đủ AA là một ma trận vuông cấp (n x n), với n là số thuộc tính trên quan hệ

Thuật toán năng lượng liên kết dựa vào ma trận ái lực thuộc tính AA để sinh ra một ma trận ái lực tụ CA dựa trên các hoán vị hàng và cột, hoán vị được thực hiện sao cho số đo ái lực chung AM là lớn nhất

Khi đặt 1 thuộc tính mới Ak vào giữa Ai và Aj thì số đo độ đóng góp thực cho ái lực chung là:

Với:

3 Các bước của thuật toán năng lượng liên kết

Bước 1: khởi gán và cố định một trong các cột của AA vào trong CA Bước 2: lấy lần lượt một trong n-1 cột còn lại, đặt chúng vào i+1 vị trí còn lại trong ma trận CA Nơi đặt được chọn sao cho nó đóng góp nhiều nhất cho số ái lực chung

Bước 3: sau khi sắp xếp xong vị trí các cột ở bước 2, tiến hành sắp xếp lại thứ tự của các hàng sao cho phù hợp với vị trí tương ứng của các cột

Trang 9

Phần 2: Ứng Dụng Tìm Kiếm Phân Mãnh Dọc

I. Giới thiệu tổng quan về ứng dụng

Hình 1 Màn hình khởi tạo của ứng dụng

Hình 2 Màn hình kết quả của ứng dụng

Trang 10

Ứng dụng tìm kiếm phân mãnh dọc cho phép người dùng nhập vào một

ma trận truy xuất thuộc tính cấp (4 x 4) và một ma trận số đo tần xuất truy xuất ứng dụng Ứng dụng sau đó sẽ tính toán và hiển thị kết quả tính toán cho ma trận ái lực thuộc tính đầy đủ AA và ma trận kết quả CA

Hình 3 Ma trận truy xuất thuộc tính

Hình 4 Ma trận số đo tần số truy xuất ứng dụng

Hình vuông đỏ trong Hình 3 và Hình 4 minh họa 1 trong các vị trí dùng

để nhập giá trị cho hai ma trận nói trên

Kết quả tính toán của ứng dụng sẽ được hiển thị như trong Hình 5 và Hình 6 cho ma trận ái lực thuộc tính đầy đủ AA và ma trận kết quả tụ nhóm CA

Trang 11

Hình 5 Ma trận trận ái lực thuộc tính đầy đủ AA

Hình 6 Ma trận kết quả tụ nhóm CA

II Tổng quan về cách hiện thực ứng dụng

Ứng dụng được viết bằng ngôn ngữ lập trình C# trên nền Window Form Application

Các hàm chính của chương trình bao gồm:

Bảng 1: Các hàm chính trong chương trình

Các biến chính của chương trình bao gồm:

Bảng 2: Các biến chính trong chương trình

Trang 12

Tên biến Chức năng

Hàm tính toán cho ma trận ái lực thuộc tính đầy đủ AA được hiện thực như sau:

{

int i, j, k, l; for (i = 0; i < 4; i++) {

for (j = 0; j < 4; j++) {

for (k = 0; k < 4; k++) {

if ((qA[k, i] == 1) && (qA[k, j] == 1)) {

for (l = 0; l < 3; l++) {

AA[i,j] += qS[k,l]; }

}

}

}

}

}

Hàm tính toán liên kết (Bond) giữa hai thuộc tính Ax và Ay được hiện thực như sau: public int Bond( int x, int y) {

int tmp = 0; for ( int i = 0; i < 4; i++) {

tmp += AA[x, i] * AA[y, i]; }

return tmp; }

Chương trình mặc định chọn cột 1 và cột 2 là 2 cột cố định đầu tiên trong ma trận CA Do đó, việc còn lại là cần hiện thực hàm tính toán để chèn vị trí các cột 3 và 4 Hàm tính toán vị trí cột 3: public void Insert_Column_3() {

int pos0, pos1, pos2;

pos0 = 2 * Bond(2, CA_pos[0]);

Trang 13

pos1 = 2 * Bond(CA_pos[0], 2) + 2 * Bond(2, CA_pos[1]) - 2 *

Bond(CA_pos[0], CA_pos[1]);

pos2 = 2 * Bond(CA_pos[1], 2);

int max = ((pos0 >= pos1 ? pos0 : pos1)) >= pos2 ? (pos0 >= pos1 ? pos0 : pos1) : pos2;

if (max == pos0)

{

CA_pos[2] = CA_pos[1];

CA_pos[1] = CA_pos[0];

CA_pos[0] = 2;

}

if (max == pos1)

{

CA_pos[2] = CA_pos[1];

CA_pos[1] = 2;

}

if (max == pos2)

{

CA_pos[2] = 2;

}

}

Hàm tính toán vị trí cột 4:

{

int pos0, pos1, pos2, pos3;

pos0 = 2 * Bond(3, CA_pos[0]);

pos1 = 2 * Bond(CA_pos[0], 3) + 2 * Bond(3, CA_pos[1]) - 2 *

Bond(CA_pos[0], CA_pos[1]);

pos2 = 2 * Bond(CA_pos[1], 3) + 2 * Bond(3, CA_pos[2]) - 2 *

Bond(CA_pos[1], CA_pos[2]);

pos3 = 2 * Bond(CA_pos[2], 3);

int max = ((pos0 >= pos1 ? pos0 : pos1)) >= pos2 ? (pos0 >= pos1 ? pos0 : pos1) : pos2;

max = (max >= pos3 ? max : pos3);

if (max == pos0)

{

CA_pos[3] = CA_pos[2];

CA_pos[2] = CA_pos[1];

CA_pos[1] = CA_pos[0];

CA_pos[0] = 3;

}

if (max == pos1)

{

CA_pos[3] = CA_pos[2];

CA_pos[2] = CA_pos[1];

CA_pos[1] = 3;

}

if (max == pos2)

{

CA_pos[3] = CA_pos[2];

CA_pos[2] = 3;

}

if (max == pos3)

{

CA_pos[3] = 3;

}

}

Trang 14

Việc tạo ra ma trận kết quả CA sẽ nhờ vào ma trận ái lực thuộc tính đầy

đủ AA và biến CA_pos dùng để lưu trữ các vị trí mới của các cột CA sau khi

đã qua tính toán Hàm hiện thực của việc tạo ra ma trận CA như sau:

{

// Calculate CA

for ( int i = 0; i < 4; i++)

{

for ( int j = 0; j < 4; j++)

{

CA[i, j] = AA[CA_pos[i], CA_pos[j]];

}

}

// Print CA

label48.Text = Convert ToString(CA[0, 0]);

label49.Text = Convert ToString(CA[0, 1]);

label50.Text = Convert ToString(CA[0, 2]);

label51.Text = Convert ToString(CA[0, 3]);

label52.Text = Convert ToString(CA[1, 0]);

label53.Text = Convert ToString(CA[1, 1]);

label54.Text = Convert ToString(CA[1, 2]);

label55.Text = Convert ToString(CA[1, 3]);

label56.Text = Convert ToString(CA[2, 0]);

label57.Text = Convert ToString(CA[2, 1]);

label58.Text = Convert ToString(CA[2, 2]);

label59.Text = Convert ToString(CA[2, 3]);

label60.Text = Convert ToString(CA[3, 0]);

label61.Text = Convert ToString(CA[3, 1]);

label62.Text = Convert ToString(CA[3, 2]);

label63.Text = Convert ToString(CA[3, 3]);

//Print labels of CA matrix

label40.Text = label44.Text = "A" + Convert ToString(CA_pos[0] + 1);

label41.Text = label45.Text = "A" + Convert ToString(CA_pos[1] + 1);

label42.Text = label46.Text = "A" + Convert ToString(CA_pos[2] + 1);

label43.Text = label47.Text = "A" + Convert ToString(CA_pos[3] + 1);

}

Kết Luận

Trang 15

Hệ cơ sở dữ liệu phân tán đóng vai trò quan trọng trong việc thiết kế các ứng dụng dùng để truy xuất lượng thông tin lớn và đảm bảo được tốc độ cao cũng như tính bảo mật tốt Thuật toán năng lượng liên kết đã chứng tỏ tính hiệu quả và chính xác trong việc phân mãnh quan hệ trong cơ sở dữ liệu nhằm phân tán dữ liệu, góp phần tạo ra một hệ cơ sở dữ liệu phân tán hoàn thiện và đầy đủ

Trang 16

Tài liệu tham khảo

1 Bài giảng môn học “Thiết kế CSDL phân tán”

Giảng viên : PGS.TS Đỗ Phúc

Chương trình đào tạo thac sĩ CNTT qua mạng.

2 M Tamer Ozsu and Patrick Valduriez, "Principles of Distributed

Database Systems," Second Edition, Prentice Hall 1998

3 Nguyễn Đức Thuần, bài giảng “Cơ sở dữ liệu phân tán”, đại học Thủy Sản 2008

4 http://en.wikipedia.org/wiki/Distributed_database

Ngày đăng: 10/04/2015, 14:36

HÌNH ẢNH LIÊN QUAN

Hình 1. Màn hình khởi tạo của ứng dụng - Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán
Hình 1. Màn hình khởi tạo của ứng dụng (Trang 9)
Hình 2. Màn hình kết quả của ứng dụng - Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán
Hình 2. Màn hình kết quả của ứng dụng (Trang 9)
Hình 3. Ma trận truy xuất thuộc tính - Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán
Hình 3. Ma trận truy xuất thuộc tính (Trang 10)
Hình 4. Ma trận số đo tần số truy xuất ứng dụng - Ứng Dụng Thuật Toán Năng Lượng Liên Kết Trong Thiết Kế Cơ Sở Dữ Liệu Phân Tán
Hình 4. Ma trận số đo tần số truy xuất ứng dụng (Trang 10)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w