Tải bản đầy đủ (.pdf) (12 trang)

Báo cáo nghiên cứu khoa học: " ÁP DỤNG KỸ THUẬT PHÂN NHÓM VÀO PHÂN MẢNH NGANG LỚP TRONG CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG" pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (206.58 KB, 12 trang )


27
TẠP CHÍ KHOA HỌC, Đại học Huế, Số 50, 2009









ÁP DỤNG KỸ THUẬT PHÂN NHÓM VÀO PHÂN MẢNH NGANG LỚP
TRONG C
Ơ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
Nguyễn Thị Hương Giang
Trường Đại học Sư phạm, Đại học Huế
TÓM TẮT
Bài báo trình bày việc áp dụng kỹ thuật phân nhóm vào phân mảnh ngang lớp trong cơ
sở dữ liệu hướng đối tượng khiến các phân mảnh hiện thời thích nghi với tập các ứng dụng
người sử dụng mới; đồng thời đề xuất phương pháp phân nhóm gia tăng dựa trên phân cấp
nhân có thể phân lớp lại tập các đối tượng khi thuộc tính các đối tượng tăng lên.
I. Giới thiệu
Phân m
ảnh dữ liệu là một trong những hướng nghiên cứu mới trong cơ sở dữ
li
ệu (CSDL), là kỹ thuật thiết kế cơ sở dữ liệu ở mức logic nhằm giảm bớt những truy
xu
ất không cần thiết đến dữ liệu, cho phép thực hiện song song các câu truy vấn bằng
cách chia nó ra thành m
ột tập các câu truy vấn con tác động lên các mảnh nhằm nâng


cao vi
ệc thực hiện các ứng dụng. Trong mô hình quan hệ, có các kiểu phân mảnh: phân
m
ảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp. Phân mảnh ngang là phân hoạch
m
ột quan hệ thành một tập các quan hệ con, mỗi quan hệ con này chứa một tập con các
b
ộ (các hàng) của quan hệ ban đầu. Phân mảnh dọc là phân hoạch một quan hệ thành
m
ột tập các quan hệ con, trong đó mỗi quan hệ con được định nghĩa trên một tập con
các thu
ộc tính của quan hệ ban đầu. Phân mảnh hỗn hợp phân hoạch một quan hệ thành
các t
ập con các bộ con, trong đó các bộ con được xác định bởi phân mảnh dọc, còn các
t
ập con được xác định bởi phân mảnh ngang.
Trong nh
ững năm gần đây, do các ứng dụng ngày càng phức tạp, các mô hình
CSDL tr
ước đó cũng như mô hình quan hệ đã bộc lộ nhiều nhược điểm trong việc mô
hình hóa và x
ử lý dữ liệu. Có nhiều mô hình CSDL ra đời và được phát triển nhằm khắc
ph
ục những hạn chế đó, một trong số chúng là mô hình CSDL hướng đối tượng. Có
nhi
ều điểm tương đồng giữa phân mảnh ngang trong CSDL quan hệ và CSDL hướng
đối tượng. Tuy nhiên, do mô hình CSDL hướng đối tượng có các đặc trưng riêng như:
tính k
ế thừa, tính bao gói, phân cấp lớp,… nên chúng ta không thể áp dụng việc phân
m

ảnh ngang từ mô hình quan hệ sang mô hình đối tượng. Do đó, phân mảnh dữ liệu
trong CSDL h
ướng đối tượng vẫn đang được nhiều nhà nghiên cứu quan tâm. Vấn đề
chúng tôi
đưa ra trong bài báo này là áp dụng kỹ thuật phân nhóm vào phân mảnh ngang
l
ớp trong CSDL hướng đối tượng.

28
Một hệ CSDL hướng đối tượng phân tán muốn tối ưu hóa việc thực hiện các ứng
d
ụng cần phải có phân mảnh lớp và lược đồ phân phối các mảnh này tại các nơi phân
tán
để cực tiểu việc truyền dữ liệu. Một tiếp cận phân mảnh ngang sử dụng các phương
th
ức gộp nhóm khai thác dữ liệu cho việc phân chia các thể hiện đối tượng thành các
m
ảnh đã được trình bày trong [1], [2], [3], [4]. Nhưng các ứng dụng CSDL thực liên
quan t
ới yếu tố thời gian, do đó, nó đòi hỏi sự phân mảnh để giải quyết tình trạng tại
m
ột thời điểm, có một số ứng dụng truy cập vào hệ thống và một số khác lại ra khỏi hệ
th
ống. Trong trường hợp này, để có được phân mảnh phù hợp với tập các ứng dụng
ng
ười sử dụng mới, chúng ta có thể áp dụng lược đồ phân mảnh ban đầu (ứng với
CSDL ban
đầu), nhưng cách làm này không hiệu quả. Vì vậy, cần có phương pháp phân
m
ảnh mở rộng giải quyết trường hợp khi các ứng dụng người sử dụng mới đến hệ thống

thì các phân m
ảnh hiện thời phải thích nghi theo. Mặt khác, nói chung, các phương pháp
phân nhóm hi
ện thời bắt đầu với tập các đối tượng biết trước, cùng với tập các thuộc
tính bi
ết trước. Nhưng có nhiều ứng dụng có tập thuộc tính mô tả các đối tượng được
m
ở rộng ra, được suy ra. Do đó, chúng tôi đề xuất phương pháp phân nhóm gia tăng dựa
trên phân c
ấp nhân (Hieararchical Core Based Incremental Clustering - HCBIC), có thể
phân l
ớp lại tập các đối tượng khi thuộc tính các đối tượng tăng lên.
II. Mô hình vector toán học của CSDL hướng đối tượng
Phân m
ảnh CSDL đối tượng có nghĩa là phân mảnh từng lớp của nó, giả sử gọi
l
ớp đó là C. Một lớp C là một bộ được sắp xếp C=(K, A, M, I), với A là tập các thuộc
tính
đối tượng, M là tập các phương thức, K là định danh lớp và I là tập các thể hiện của
l
ớp C. Trong phạm vi bài báo, chúng tôi chỉ giải quyết sự phân mảnh nguyên thủy [4].
Các l
ớp được tổ chức trong một phân cấp kế thừa, trong đó, lớp con là sự
chuyên bi
ệt hóa của lớp cha của nó. Bài toán chỉ giải quyết trường hợp thừa kế đơn,
nh
ưng khi chuyển sang thừa kế bội cũng sẽ không ảnh hưởng tới thuật toán phân mảnh,
mi
ễn là các xung đột thừa kế được giải quyết bên trong mô hình dữ liệu. Liên kết giữa
m

ột đối tượng và một lớp được cụ thể hóa bởi một phép toán cụ thể. Một đối tượng O là
m
ột thể hiện của một lớp C nếu C là lớp được chuyên biệt hóa có liên kết (kết hợp) với
O trong phân c
ấp kế thừa. Một đối tượng O là một thành viên của một lớp C nếu O là
th
ể hiện của C hoặc là thể hiện của một trong các lớp con của C. Một CSDL hướng đối
t
ượng là một tập các lớp từ một phân cấp kế thừa, với tất cả các thể hiện của nó. Root là
l
ớp đặc biệt, là tổ tiên (lớp cha) của tất cả các lớp trong CSDL. Do đó, trong mô hình
c
ủa chúng ta, đồ thị kế thừa là một cây. Các quan hệ khác giữa các lớp trong một CSDL
là các m
ối quan hệ kết hợp và kết tập. Một điểm vào CSDL là một thể hiện siêu lớp
(meta-class) trên bi
ến cho trước trong hệ thống. Một điểm vào cho phép sự tìm kiếm từ
nó t
ới tất cả các lớp và các thể hiện lớp của cây con của nó (bao gồm cả nó). Thường có
nhi
ều điểm vào trong một CSDL hướng đối tượng.
Cho tr
ước một cây thừa kế phức H, một biểu thức đường dẫn P là C
1
.A
1
…A
n
,
n


1 với C là một điểm vào trong H, A
1
là một thuộc tính của lớp C
1
, A
i
là một thuộc tính

29
của lớp C
i
trong H, C
i
là miền thuộc tính A
i-1
của lớp C
i-1
(1

i

n). Mục đích của phân
m
ảnh và điều phối phân mảnh của hệ CSDL hướng đối tượng là tối ưu sự thực thi các
truy v
ấn của người sử dụng. Một truy vấn hướng đối tượng là một bộ với cấu trúc như
sau:
q = (l
ớp mục tiêu, mệnh đề tính chất), trong đó “lớp mục tiêu” xác định lớp mà

truy v
ấn trả về các thể hiện đối tượng của nó trên nó, “mệnh đề tính chất” là biểu thức
logic trên các thu
ộc tính lớp trong hình thức nối chuNn. Biểu thức logic được xây dựng
s
ử dụng các vị từ đơn giản: attribute
Θ
value với Θ ∈{ <, >, ≥, ≤, ≠}.
G
ọi Q = {q
1
, …, q
t
} là tập các truy vấn mà phân mảnh thực hiện. Pred
Q
(C) =
{p
1
, , p
n
} là tập các vị từ đơn giản. Pred
Q
(C) = { p ∈ Pred
Q
/ p là điều kiện của một
thu
ộc tính của lớp C}. Cho trước 2 lớp C và C”, với C” là lớp con của C, Pred
Q
(C”) ⊇
Pred

Q
(C). Do đó, tập các vị từ cho lớp C” gồm tất cả các vị từ được xác định trực tiếp
trên các thu
ộc tính của C” và các vị từ được định nghĩa trên các thuộc tính của lớp cha
C c
ủa nó và các thuộc tính được thừa kế từ C. Với mỗi một đối tượng O
i
trong tập
Inst(C ) - t
ập tất cả các thể hiện của lớp C, i = 1 m, m=|Inst(C)|, ta kết hợp một vector
điều kiện a
i
= (a
i1
,…,a
is
), với Pred
Q
(C) = {p
1
,…,p
s
}:
ij
0, ( )
1, ( )
j i
j i
p O false
a

p O true
=

=

=


Các
đối tượng sẽ được gộp nhóm với nhau trong các phân mảnh sao cho các đối
t
ượng trong cùng một phân mảnh có độ tương tự cao, trong khi độ tương tự so với các
đối tượng trong các nhóm khác thấp. Độ tương tự giữa các đối tượng được đo bằng các
hàm kho
ảng cách, áp dụng cho các vector điều kiện mô tả các đối tượng. Chúng ta sử
d
ụng khoảng cách Euclide để đo độ tương tự giữa các đối tượng:
( )
2
1
( , )
s
E i j il jl
l
d a a a a
=
= −

v


i a
i
, a
j
là các vector
đ
i

u ki

n c

a O
i
, O
j
∈Inst(C).
2.1. Phân mảnh gia tăng sử dụng thuật toán CBIC (Core-Based Incremental
Clustering)
Tr
ướ
c tiên, khi
đ
i t

CSDL trung tâm t

i CSDL phân tán, ta áp d

ng ph

ươ
ng
pháp phân m

nh kh

i t

o. Trong [1], [2], [3], [4], cho tr
ướ
c m

t t

p các truy v

n
Q
init
= {q
1
,…,q
n
}, m

nh
đề
phân m

nh ban

đầ
u c

a t

p
đố
i t
ượ
ng Inst(C) c

a l

p C
đ
òi
h

i tr
ướ
c tiên các
đố
i t
ượ
ng trong Inst(C) ph

i
đượ
c mô hình hóa nh
ư


đ
ã mô t



trên.
Sau
đ
ó, áp d

ng ph
ươ
ng pháp phân nhóm k-means trên không gian vector mô t

Inst(C),
và k
ế
t qu

s

là các nhóm bi

u di

n các phân m

nh cho l


p C.
Phân m

nh hi

n th

i c

a CSDL h
ướ
ng
đố
i t
ượ
ng phân tán
đượ
c phát tri

n
để
t

i
ư
u hóa s

th

c thi c


a t

p truy v

n ban
đầ
u, Q
init
. Khi các truy v

n m

i vào h

th

ng
Q
new
= Q
init
∪ {q
p+1
, …, q
t
}, phân m

nh
đ

ang t

n t

i ph

i thích nghi theo. Chúng ta áp

30
d

ng ph
ươ
ng pháp g

p nhóm d

a trên k-means và Core Based Incremental Clustering
(CBIC) – ph
ươ
ng pháp g

p nhóm gia t
ă
ng d

a trên nhân ([5], [6]).
M

r


ng c

a t

p truy v

n Q
init
thành Q
new
có ngh
ĩ
a là v

i m

t s

các l

p trong
CSDL, t

p các v

t

có k
ế

t h

p v

i các l

p s

t
ă
ng lên. Do
đ
ó, các l

p này ph

i
đượ
c
phân m

nh l

i
để
phù h

p v

i t


p h

p truy v

n m

i. Cho C là m

t l

p nh
ư
v

y. V

i m

i
Pred
Q-init
(C) = {p
1
,…,p
n
} xác
đị
nh Pred
Q-new

(C) ∪ {p
n+1
,…,p
s
}. Do
đ
ó, vector
đ
i

u ki

n
c

a m

i m

t
đố
i t
ượ
ng O
i
∈ Inst(C)
đượ
c m

r


ng nh
ư
sau:


Ph
ươ
ng pháp CBIC b

t
đầ
u b

ng vi

c phân chia Inst(C) thành các nhóm b

ng
cách áp d

ng ph
ươ
ng pháp k-means trong b
ướ
c phân m

nh ban
đầ
u. Cho {K

1
,
K
2
,…,K
p
} là các phân m

nh ban
đầ
u c

a Inst(C), K
i
∩ K
j
= ∅, i ≠j,
1
Ins ( )
p
l
l
K t C
=
=
U
.
Ph
ươ
ng pháp CBIC phân chia các

đố
i t
ượ
ng trong Inst(C): {K
1
’, K
2
’,….K
p
’} sau khi m


r

ng t

p truy v

n. Nó b

t
đầ
u t

ý t
ưở
ng khi b

sung m


t s

thành ph

n (các
đặ
c tính,
thu

c tính) vào các vector
đ
i

u ki

n và các thành ph

n này không mang l

i nhi

u thông
tin trong h

th

ng, thì vi

c s


p x
ế
p thành các nhóm c
ũ
t
ươ
ng t

v

i ph
ươ
ng pháp m

i.
Thu

t toán xác
đị
nh sau
đ
ó các
đố
i t
ượ
ng bên trong m

i m

t phân m


nh K
i
có kh

n
ă
ng
k
ế
t h

p l

i v

i nhau trong cùng m

t nhóm. Chúng là nh

ng
đố
i t
ượ
ng, sau khi m

r

ng
thu


c tính, v

n còn g

n h
ơ
n v

i tr

ng tâm (trung bình nhóm) c

a nhóm K
i
. Các
đố
i
t
ượ
ng này t

o ra cái
đượ
c g

i là nhân (core) c

a l


p K
i
, g

i là Core
i
. Tr

ng tâm c

a K
i

đượ
c tính là giá tr

trung bình c

a t

t c

các vector
đ
i

u ki

n
đượ

c m

r

ng c

a các
đố
i
t
ượ
ng trong K
i
.
Các nhân c

a t

t c

các phân m

nh K
i
, i = 1 p, s

là nhóm kh

i t


o m

i cho
các b
ướ
c l

p phân chia ti
ế
p theo b

t
đầ
u. Ti
ế
p
đ
ó, thu

t toán CBIC ti
ế
p t

c theo cùng
cách nh
ư
thu

t toán k-means th


c hi

n. Thu

t toán CBIC, cho k
ế
t qu

hi

u qu

h
ơ
n là
th

c hi

n k-means t

t

p
đố
i t
ượ
ng có thu

c tính m


r

ng.
Ví d

minh h

a CSDL h
ướ
ng
đố
i t
ượ
ng và t

p truy v

n
Xét c

u trúc phân l

p trong m

t CSDL c

a m

t tr

ườ
ng
đạ
i h

c:




Các truy v

n sau th

c hi

n trên các l

p c

a CSDL cho

trên:
q
1:
cho bi
ế
t t

t c


các sinh viên t

t nghi

p
đ
ã ghi tên vào khoa Component
a
i
điều kiện ban đầu của đối tượng O
i

'
1 1 is
, , , , ,
i i in in
a a a a a
+
 
 
=
 
 
142 43

31
Oriented Programming và khoa Intelligent Systems, q
1
= (Grad, Grad.Dept in

(“Component Oriented Programming”, “Intelligent Systems”) ).
q
2
: cho bi
ế
t t

t c

các sinh viên ch
ư
a t

t nghi

p
đ
ã ghi tên vào khoa Computer
Science và có
đ
i

m trung bình t

7
đế
n 10, q
2
= (UnderGrad, UnderGrad.Dept like
“CS%” and UnderGrad.Grade between 7 and 10).

q
3
: cho bi
ế
t t

t c

các sinh viên ch
ư
a t

t nghi

p ghi tên vào khoa Computer
Science và khoa Mathematics có tu

i l

n h
ơ
n 24, q
3
= (UnderGrad, (UnderGrad.Dept
like “Math%” or UnderGrad.Dept like “CS%”) and UnderGrad.Age >=24).
q
4
: cho bi
ế
t t


t c

nh

ng nghiên c

u sinh
đ
ã vi
ế
t ít nh

t 2 bài báo, q
4
=
(Researcher, Researcher, count(Researcher. Doc) >=2.
q
5
: cho bi
ế
t t

t c

các gi

ng viên làm vi

c trong khoa Component Oriented

Programming ho

c khoa Intelligent Systems và có l
ươ
ng cao h
ơ
n 40.000, q
5
: (Prof, Prof.
Dept in (“Component Oriented Programming“, “Intelligent Systems“) và Prof. Salary
>=40.000
q
6
: cho bi
ế
t t

t c

các gi

ng viên có bài
đă
ng trên

n ph
N
m IEEE ho

c ACM, q

6

= (Prof, Prof.Doc.Pulisher in (“IEEE”, “ACM”)
q
7
: cho bi
ế
t t

t c

các sinh viên thi tr
ượ
t, q
7
= (Student, Student.Grade <=5)
q
8
: cho bi
ế
t t

t c

nh

ng nhân viên có l
ươ
ng cao h
ơ

n 35.000, q
8
= (Employee,
Employee.Salary > 35.000)
q
9
: cho bi
ế
t t

t c

các sinh viên
đ
ã t

t nghi

p có
đă
ng ít nh

t 1 bài báo, q
9
=
(Grad, Grad.count(Grad.Doc)>=1)
q
10
: cho bi
ế

t t

t c

các
độ
i ng
ũ
nhân viên có l
ươ
ng cao h
ơ
n 12.000, q
10
= (Staff,
Staff.Salary > 12.000)
q
11
: cho bi
ế
t t

t c

các nghiên c

u sinh vi
ế
t s


bài báo ít h
ơ
n s

bài báo trung
bình c

a các nghiên c

u sinh, q
11
= (Researcher, Researcher.Count(Paper) <
Avg( Researcher.Count(Paper) )
q
12
: cho bi
ế
t t

t c

các sinh viên
đ
ã t

t nghi

p l

p gia

đ
ình, q
12
= (Grad,
Grad.MaritalStatuss=”married”)
q
13
: cho bi
ế
t t

t c

các sinh viên ch
ư
a t

t nghi

p ghi tên vào khoa Mathematics
và khoa Computer Science, q
13
= (Undergraduate, Undergraduate.Dept like “Math-
CS%”)
q
14
: cho bi
ế
t t


t c

nh

ng ng
ườ
i có tu

i l

n h
ơ
n 30, q
14
= (Person, Person,
Person.Age > 30)
q
15
: cho bi
ế
t t

t c

các tr

gi

ng có tu


i l

n h
ơ
n 28, q
15
= (Prof, Prof.Position =
“assistant professor” and Prof.age > 28)

32
q
16
: cho bi
ế
t t

t c

các sinh viên có qu

c t

ch Hungary ho

c
Đứ
c, q
16
= (Student,
Student.Nationality in (“ hungarian”, “ german”)

Các truy v

n t

q
1

đế
n q
12
là nh

ng truy v

n ban
đầ
u – có
đượ
c t

phân m

nh
ngang và l
ượ
c
đồ
phân ph

i kh


i t

o: Q
init
= {q
1
, …., q
12
}. Các truy v

n t

q
13

đế
n q
16

các truy v

n m

i vào h

th

ng, và phân m


nh
đ
ang t

n t

i ph

i thích

ng
để
phù h

p và
để
t

i
ư
u hóa t

p

ng d

ng m

i: Q
new

= Q
init
∪ {q
13
, …, q
16
}.
III. Phương pháp phân nhóm gia tăng dựa trên phân cấp nhân (Hieararchical Core
Based Incremental Clustering - HCBIC).
Phân l

p là ph
ươ
ng pháp phân bi

t các nhóm bên trong m

t t

p các
đố
i t
ượ
ng
th

c hi

n trên t


p các
đặ
c tính ho

c thu

c tính có liên quan c

a
đố
i t
ượ
ng. Vi

c phân
nhóm
đượ
c th

c hi

n trên t

p các
đặ
c tính ho

c thu

c tính có liên quan c


a
đố
i t
ượ
ng.
Các
đố
i t
ượ
ng bên trong m

t nhóm
đượ
c xem là g

n nhau h
ơ
n các
đố
i t
ượ
ng trong
nhóm khác nh

vào khái ni

m
độ
t

ươ
ng t

.
Độ
t
ươ
ng t

gi

a các
đố
i t
ượ
ng
đượ
c
đ
o
b

ng hàm kho

ng cách ho

c bán kho

ng cách trên các giá tr


thu

c tính mô t


đố
i t
ượ
ng.
Ph
ươ
ng pháp phân nhóm phân c

p bi

u di

n l

p chính c

a k

thu

t phân nhóm.
Có 2 ki

u phân nhóm phân c


p. Cho tr
ướ
c m

t t

p g

m n
đố
i t
ượ
ng và m

t s

k, k≤n,
ph
ươ
ng pháp d
ướ
i lên (bottom-up) b

t
đầ
u v

i n singleton (t

p h


p ch

có 1 thành ph

n),
tr

n chúng l

i v

i nhau cho
đế
n khi
đạ
t
đượ
c s

l
ượ
ng các nhóm k mong mu

n. T

i m

i
b

ướ
c, 2 nhóm t
ươ
ng t

nhau nh

t
đượ
c ch

n
để
tr

n. Còn ph
ươ
ng pháp trên xu

ng (top-
down) b

t
đầ
u t

m

t nhóm ch


a t

t c

n
đố
i t
ượ
ng và chia nó cho
đế
n khi
đạ
t
đượ
c s


l
ượ
ng các nhóm k mong mu

n.
Nói chung, các ph
ươ
ng pháp này b

t
đầ
u v


i t

p các
đố
i t
ượ
ng bi
ế
t tr
ướ
c,
đ
o
trên m

t t

p các thu

c tính bi
ế
t tr
ướ
c. Nh
ư
ng có nhi

u

ng d


ng có t

p
đố
i t
ượ
ng là
độ
ng, ho

c t

p thu

c tính mô t

các
đố
i t
ượ
ng liên quan
đượ
c m

r

ng ra. Do
đ
ó,

để

đượ
c phân l

p
đố
i t
ượ
ng trong các
đ
i

u ki

n này, thu

t toán phân nhóm có th

ph

i th

c
hi

n nhi

u l


n, b

t
đầ
u t

t

p các
đố
i t
ượ
ng ban
đầ
u, và m

i l

n khi các
đố
i t
ượ
ng ho

c
thu

c tính thay
đổ
i l


i th

c hi

n l

i thu

t toán. Rõ ràng
đ
i

u này là kém hi

u qu

. Vì v

y,
chúng tôi trình bày trong bài báo này ph
ươ
ng pháp phân nhóm gia t
ă
ng d

a trên ph
ươ
ng
pháp phân c


p nhân có th

phân l

p l

i t

p
đố
i t
ượ
ng khi t

p thu

c tính t
ă
ng lên.
Đầ
u
tiên, chúng ta dùng thu

t toán HCA (Hieararchical Clustering Algorithm) [7]
để
phân
chia thành các nhóm, sau
đ
ó, khi thu


c tính thay
đổ
i (
đượ
c m

r

ng) thì chúng ta áp
d

ng thu

t toán HCBIC (Hieararchical Core Based Incremental Clustering).
Đ
i

u này
s

hi

u qu

h
ơ
n khi th

c hi


n l

i thu

t toán HCA trên t

p
đố
i t
ượ
ng có thu

c tính
đượ
c
m

r

ng.
3.1 Định nghĩa
Cho {O
1
, O
2
, …, O
n
} là t


p các
đố
i t
ượ
ng
đượ
c phân l

p. M

i
đố
i t
ượ
ng
đượ
c
đ
o
v

i t

p m các thu

c tính kh

i t

o và mô t


b

i m vector
đ
a chi

u O
i
= (O
i1
, …, O
im
),
O
ik
∈ ℜ, 1≤ i ≤ n, 1 ≤ k ≤ m. Thông th
ườ
ng, thu

c tính liên quan t

i các
đố
i t
ượ
ng
đề
u


33
đượ
c chu
N
n hóa
để

đả
m b

o
độ

đ
o c

a chúng là b

ng nhau [3].
Cho {K
1
, K
2
, …, K
p
} là t

p các nhóm có
đượ
c khi áp d


ng thu

t toán HCA. M

i
m

t nhóm là m

t t

p các
đố
i t
ượ
ng.
1 2
{O ,O , ,O }
j
j j j
j n
K = , 1

j

p. Tâm nhóm K
j
bi


u
di

n giá tr

trung bình c

a nhóm và
đượ
c xác
đị
nh b

i:
1
1 1
, ,
j j
n n
k km
k k
j
j j
O O
f
n n
= =
 
 
 

=
 
 
 
∑ ∑

Ta s

d

ng hàm kho

ng cách d cho các
đố
i t
ượ
ng phân bi

t, c

th

là dùng hàm
kho

ng cách Euclide:
d( O
i
, O
j

) = d
E
(O
i
, O
j
) =
2
1
( )
m
il jl
l
O O
=



Vi

c
đ
o các thu

c tính
đượ
c th

c hi


n sau khi m

r

ng s (s ≥ 1) thu

c tính m

i,
đượ
c ký hi

u là (m+1), (m+2),…, (m+s). Sau khi m

r

ng, vector c

a
đố
i t
ượ
ng tr


thành O
i
’ = (O
i1
, …, O

im
, O
im+1
, …O
im+s
), 1

i

n.
L

y
đ
i

m b

t
đầ
u trong b
ướ
c phân l

p tr
ướ
c bên trong nhóm và xét trong các
đ
i


u ki

n
đ
ó
đố
i t
ượ
ng m

r

ng
'
j
i
O
còn
đ
úng khi
đặ
t nó trong nhóm K
j
’ c

a nó hay
không.
Để
làm
đượ

c
đ
i

u
đ
ó, chúng ta bi

u di

n các kho

ng cách f
j
c

a
'
j
i
O
t

i các tâm
c
ũ
c

a nó và f
j

’ t

i tâm các nhóm m

i r

i so sánh v

i các kho

ng cách t

i các tâm f
r

f
r
’ c

a m

t nhóm b

t k

khác
1

r


p, r

j.
N
ế
u các
đố
i t
ượ
ng trong nhóm j th

a mãn
các
đ
i

u ki

n và
độ
t
ươ
ng t


đủ
l

n
để


đượ
c gi

cùng v

i nhau, chúng ta gi

chúng
trong m

t nhóm. Các
đố
i t
ượ
ng còn l

i trong nhóm j (nh

ng
đố
i t
ượ
ng này không th

a
mãn các
đ
i


u ki

n trên) s


đượ
c trích ra và
đượ
c phân ph

i t

ng
đố
i t
ượ
ng m

t vào t

p
h

p m

t ph

n t

c


a nó. Ti
ế
n trình
đ
i

u ch

nh nhóm này s

tr

v

k
ế
t qu

là m

t s

các
nhóm k’,
k

k’

n

.
Để
có l

i
đượ
c k nhóm
đ
ích, chúng ta ti
ế
p t

c tr

n các nhóm theo
cùng cách nh
ư
thu

t toán HCA. Nh
ư
ng khi chúng ta không b

t
đầ
u l

i t

t


p h

p m

t
ph

n t

, s

các b
ướ
c s

gi

m
đ
i
đ
áng k

.
Định lý:
N
ế
u ( , ) ( , ), , ,1 , ,
j j

E i j E i r
d O f d O f j r j r p r j
≤ ∀ ≤ ≤ ≠
(1)

1
, {m+1, m+2, , m+s}
j
n
kl
k
il
j
O
O l
n
=
≥ ∀ ∈

(2)
đ
úng v

i
đố
i t
ượ
ng
'
O

j
i
và nhóm
'
j
K
c
ủa nó thì đối tượng
'
O
j
i
gần với tâm
'
j
f
của nó hơn các tâm
'
r
f
của nhóm khác, 1 , ,
j r p r j
≤ ≤ ≠
.

34

Ch
ứng minh:
2

2
2 ' ' 2 ' ' 2 2
1 1
1 1
(O , ) (O , ) (O , ) (O , )
j
r
n
n
kl kl
m s m s
j j j j
k k
i j i r i j il i r il
l m l m
j r
O O
d f d f d f O d f O
n n
+ +
= =
= + = +
 
 
 
 
 
 
− = + − − − −
 

 
 
 
 
 
∑ ∑
∑ ∑

Sử dụng bất đẳng thức (1), ta có :
2
2
2 ' ' 2 ' '
1 1
1 1
(O , ) (O , )
j
r
n
n
kl kl
m s m s
j j
k k
i j i r il il
l m l m
j r
O O
d f d f O O
n n
+ +

= =
= + = +
 
 
 
 
 
 
− ≤ − − −
 
 
 
 
 
 
∑ ∑
∑ ∑


2 ' ' 2 ' '
1 1 1 1
1
(O , ) (O , ) * 2*
j j
r r
n n
n n
kl kl kl kl
m s
j j

k k k k
i j i r il
l m
j r j r
O O O O
d f d f O
n n n n
+
= = = =
= +
   
   
   
− ≤ − + −
   
   
   
∑ ∑ ∑ ∑


N
ếu bất đẳng thức (2) đúng với mọi thuộc tính của
'
O
j
i
thì bất đẳng thức trên trở
thành:
2
2 ' ' 2 ' '

1 1
1
(O , ) (O , )
j
r
n
n
kl kl
m s
j j
k k
i j i r
l m
j r
O O
d f d f
n n
+
= =
= +
 
 
 
− ≤ − −
 
 
 
∑ ∑



2 ' ' 2 ' '
(O , ) (O , )
j j
i j i r
d f d f
− ≤
0
Vì tất cả các khoảng cách là các số không âm nên:
' ' ' '
(O , ) (O , ), ,1 ,
j j
i j i r
d f d f r r p r j
≤ ∀ ≤ ≤ ≠

Điều kiện (1) trong định lý đòi hỏi đối tượng
i j
O K
∈ , ở bước cuối cùng của tiến
trình phân nhóm
đầu tiên (khởi tạo), là gần hơn với tâm nhóm của nó hơn tâm của nhóm
b
ất kỳ nào khác. Tất cả các đối tượng
i j
O K
∈ thỏa mãn bất đẳng thức (1) và có các mở
r
ộng đối tượng thỏa mãn điều kiện (2), là có độ tương tự đủ lớn với các đối tượng khác
cùng nhóm và không t
ương tự với các đối tượng trong các nhóm khác sau khi mở rộng

t
ập thuộc tính .
3.2. Thuật toán HCBIC


Chúng ta dùng các tính chất và định nghĩa ở phần trên để xác định trong mỗi
nhóm, nh
ững đối tượng nào vẫn được giữ lại với nhau mà không di chuyển sang các
nhóm khác. Các
đối tượng này là kết quả của sự mở rộng tập thuộc tính, và chúng hình

35
thành nên cái gọi là nhân của nhóm.
Định

nghĩa:
a, Đặt
' ' '
or { | ,
j j j
j i i j i
StrongC e O O K O
= ∈
thỏa bất đẳng thức (1) và
'
j
i
O
thỏa các
b

ất đẳng thức (2)}
là t
ập các đối tượng trong
'
j
K
(trước khi mở rộng) gần với tâm nhóm của chúng
h
ơn với tâm của bất kỳ nhóm nào khác và sau khi mở rộng, mỗi một thuộc tính mới l
th
ỏa mãn bất đẳng thức (2),
1
m l m s
+ ≤ ≤ +
.
b,
'
( )
j
i
sat O
là t

p t

t c

các thu

c tính m


i l, 1
m l m s
+ ≤ ≤ +
c

a
đố
i t
ượ
ng
'
j
i
O
th

a mãn b

t
đẳ
ng th

c (2).

' ' '
w or { | ,
j j j
j i i j i
eakC e O O K O

= ∈
th

a b

t
đẳ
ng th

c (1) và
'
'
1
| ( ) |
| ( ) | }
j
n
j
k
j
k
i
j
sat O
sat O
n
=




T

p thu

c tính c

a các
đố
i t
ượ
ng trong
'
j
K
th

a mãn b

t
đẳ
ng th

c (1) tr
ướ
c khi
m

r

ng; và sau khi m


r

ng thì ít nh

t là trung bình c

ng thu

c tính m

i c

a các
đố
i
t
ượ
ng trong
'
j
K
th

a mãn b

t
đẳ
ng th


c (2).
c)
Cor or
j j
e StrongC e
= n
ế
u or
j
StrongC e
≠ ∅
, n
ế
u không thì Cor w
j j
e eakCore
= .
'
or \ Cor
j j j
OC e K e
=
là t

p các
đố
i t
ượ
ng ngoài nhân trong nhóm
'

j
K
.
V

i m

i thu

c tính m

i l, 1
m l m s
+ ≤ ≤ +
và m

i nhóm
'
j
K
có ít nh

t m

t
đố
i
t
ượ
ng th


a b

t
đẳ
ng th

c (2) t
ươ
ng

ng v

i thu

c tính l.
Đ
ó là
đố
i t
ượ
ng có giá tr

thu

c
tính l l

n nh


t trong s

các
đố
i t
ượ
ng trong
'
j
K
ch

c ch

n th

a quan h

(giá tr

l

n nh

t
trong m

t t

p h


p l

n h
ơ
n ho

c b

ng giá tr

trung bình c

a t

p h

p
đ
ó). Nh
ư
ng không
đả
m b

o trong nhóm
'
j
K


đố
i t
ượ
ng th

a quan h

(2) cho t

t c

các thu

c tính m

i
m+1,…, m+s. N
ế
u có các
đố
i t
ượ
ng nh
ư
v

y th

a b


t
đẳ
ng th

c (1) ( or
j
StrongC e
≠ ∅
)
thì theo
đị
nh lý trên, chúng g

n v

i tâm nhóm
'
j
f
h
ơ
n v

i b

t k

m

t tâm nhóm

'
r
f
nào
khác, 1 ,
r p r j
≤ ≤ ≠
. Sau
đ
ó,
Cor
j
e
s


đượ
c l

y b

ng v

i
or
j
StrongC e
, và s

là tâm

c

a nhóm j trong thu

t toán gia t
ă
ng. Nh
ư
ng n
ế
u or
j
StrongC e
= ∅
thì ta s

ch

n là tâm
nhóm j cho
đố
i t
ượ
ng

n
đị
nh (không thay
đổ
i) nh


t trong s

các
đố
i t
ượ
ng trong
'
j
K
.
Các
đố
i t
ượ
ng này ( w
j
eakCore
) có th

ít thay
đổ
i nh

t trong s

các
đố
i t

ượ
ng trong
or
j
StrongC e
. Tuy nhiên,
đ
i

u này là không ch

c ch

n vì: các
đố
i t
ượ
ng trong t

p “y
ế
u
h
ơ
n” w
j
eakCore
có th

l


i thích h

p nh
ư
các
đố
i t
ượ
ng trong
or
j
StrongC e
,
đ
ó là do ta
th

y
đ
i

u ki

n (2) trong
đị
nh lý bi

u di


n
đ
i

u ki

n
đủ
cho các
đố
i t
ượ
ng trong
'
j
K


36
g

n v

i
'
j
f
h
ơ
n v


i tâm nhóm
'
r
f
nào khác, nh
ư
ng không ph

i là
đ
i

u ki

n
đủ
.
Các nhân c

a nhóm s

là các nhóm m

i trong ti
ế
n trình phân nhóm gia t
ă
ng.
Thu


t toán phân nhóm gia t
ă
ng d

a trên phân c

p nhân và s

d

ng khi
đạ
t
đượ
c
s

các nhóm mong mu

n.
Input:
-
1
{ , , }
n
X O O
= : t

p m các

đố
i t
ượ
ng
đượ
c phân nhóm tr
ướ
c
đ
ó
- T

p
' '
1
X'={O , , }
n
O
: t

p m+s các
đố
i t
ượ
ng m

r

ng
đượ

c phân nhóm,
'
i
O

cùng m thành ph

n
đầ
u tiên nh
ư

i
O
,
- Kho

ng cách d
E
gi

a các
đố
i t
ượ
ng trong không gian
đ
a chi

u,

- p: s

l
ượ
ng các nhóm mong mu

n,
-
1
K={ , , }
p
K K
: t

p các
đố
i t
ượ
ng
đượ
c phân l

p tr
ướ
c
đ
ó trong X.
Output:
Phân l


p l

i
' '
1
K'={ , , }
p
K K
cho các
đố
i t
ượ
ng trong X’.
Thu

t toán
đượ
c mô t

nh
ư
sau (theo ngôn ng

“t

a” Pascal):
Begin
For t

t c


các nhóm K
j
∈K do
Tính Core
j
= (StrongCore
j




) ?
StrongCore
j
:=WeakCore
j
Tính Ocore
j
= K
j
\ Core
j

EndFor
C = ∅ //t

p h

p nhóm hi


n th

i
For i=1 to p do
If Core
i





C = C ∪ {Core
j
}
EndIf
For t

t c

O ∈ Ocore
j
do
C = C ∪ {O} //thêm m

t t

p h

p m


t ph

n t

vào C
EndFor
EndFor
While |C| > p do
(
* *
, ): arg in( , ) ( , )
u v E u v
u v
C C m C C d C C
=

* *
wne
u v
C C C
= ∪

w
\{ , ) { }
ne
u v
C C C C C
+ +
= ∪

EndWhile

'
K =C

End.

37
Kho

ng cách gi

a hai nhóm d
E
(C
u
,C
v
)
đượ
c tính nh
ư
sau:
( , )
d ( , )
| | | |
i u j v E i j
E u v
u v
a C b C d a b

C C
C C
∈ ∈
=
×
∑ ∑

Thu
ật toán bắt đầu bằng việc tính nhân các nhóm cũ. Các nhân sẽ là các nhóm
kh
ởi tạo mới trong các bước lặp tiếp theo. Sau đó, thuật toán được thực hiện như thuật
toán HCA.
3.3 So sánh tính hiệu quả của thuật toán HCBIC và thuật toán HCA
Chúng ta so sánh thuật toán HCBIC và HCA theo tiêu chí số lần lặp và độ “chặt”
c
ủa các nhóm đạt được. Định nghĩa độ phân tán DISP (dispersion) trong tiến trình phân
nhóm nh
ư sau:
, ,
2
1
| |
( , )
( )
i j k
k
i j
p
O O K i j
k

K
d O O
C
DISP K
p
∈ >
=
=



V
ới K={K
1
, …, K
p
} là tập hợp nhóm có được sau khi áp dụng thuật toán phân
nhóm. DISP bi
ểu diễn khoảng cách trung bình giữa các đối tượng trong một nhóm.
Kho
ảng cách này là nhỏ hơn và “chặt” hơn so với khoảng cách trong HCA [8].
IV. Kết luận
Áp dụng kỹ thuật phân nhóm vào phân mảnh ngang lớp trong CSDL hướng đối
t
ượng là phương pháp xử lý có hiệu quả trong các bài toán phân mảnh. Đây là một
h
ướng nghiên cứu mới và có giá trị thực tiễn. Trong tương lai, chúng tôi sẽ ứng dụng và
phân tích thu
ật toán trên các CSDL thực nghiệm cụ thể đồng thời nghiên cứu lý thuyết
phân nhóm phân c

ấp sẽ được áp dụng cho các kỹ thuật phân nhóm khác như thế nào.
TÀI LIỆU THAM KHẢO
10. Darabant, A.S., Campan, A., Semi-supervised learning techniques: kmeans clustering in
OODB Fragmentation, IEEE International Conference on Computational Cybernetics
ICCC 2004, Vienna University of Technology, Austria, August 30 - September 1 (2004),
333–338.
11. Darabant, A.S., Campan, A., Hierarchical AI Clustering for Horizontal Object
Fragmentation, In Proc. of Int. Conf. of Computers and Communications, Oradea, May
(2004), 117–122.
12. Darabant, A.S., Campan, A., AI Clustering Techniques: a New Approach to Object
Oriented Database Fragmentation, in Proceedings of the 8th IEEE International
Conference on Intelligent Engineering Systems, Cluj Napoca, (2004), 73–78.

38
13. Darabant, A.S., Campan, A., Cret, O., Hierarchical Clustering in Object Oriented Data
Models with Complex Class Relationships, in Proceedings of the 8th IEEE International
Conference on Intelligent Engineering Systems, Cluj Napoca, (2004), 307–312.
14. S¸erban, G., Campan, A., Core Based Incremental Clustering, Studia Universitatis
“Babe¸s-Bolyai”, Informatica, XLXI(2), (2005), 89–96.
15. S¸erban, G., Campan, A., Incremental Clustering Using a Core-Based Approach, in Proc.
of the 20th International Symposium on Computer and Information Sciences (ISCIS’05),
Istanbul, Turkey, 2005.
16. S. Aeberhard, D. Coomans, and O. de Vel. The classification performance of rda. Tech.
Rep. Dept. of Computer Science and Dept. of Mathematics and Statistics, James Cook
University of North Queensland, (1992), 92-01.
17. Gabriela S¸erban and Alina Cˆampan. A New Core-Based Method For Hierarchical
Incremental Clustering. Proceedings of the Seventh International Symposium on
Symbolic and Numeric Algorithms for Scientific Computing, 2005 (SYNASC’05).
18. C. Manning and H. Schutze. Foundation of statistical natural language processing.
MIT, 1999.

19. G. Serban and A. Campan. Core based incremental clustering. Studia Universitatis
“Babes¸-Bolyai”, Informatica, L(1), (2005), 89–96.
20. Alina Campan, Adrian Sergiu Darabant, Gabriela Serban. Clustering techniques for
adaptive horizontal fragmentation in object oriented databases. Proceedings of the
International Conference on Theory and Application of Mathematics and Informatics
ICTAMI 2005 - Alba Iulia, Romania.


APPLYING CLUSTERING TECHNIQUES FOR
HORIZONTAL FRAGMENTATION IN OBJECT ORIENTED DATABASES
Nguyen Thi Huong Giang
College of Pedagogy, Hue University
SUMMARY
In this paper, we introduce an incremental method to apply clustering techniques for
horizontal fragmentation in object oriented databases which makes current fragments adapt
with new applications; and propose a clustering method based on an hierarchical
agglomerative approach, called Hierarchical Core Based Incremental Clustering (HCBIC), that
is capable of the re-partition of the objects set, when the attribute sets increase.




×