TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(37).2010
26
TI ƯU CÁC TRUY VN ĐỆ QUY HƯỚNG ĐỐI TƯỢNG DA TRÊN
MÔ HÌNH CHI PHÍ CƠ S
OPTIMIZATION OF OBJECT-ORIENTED RECURSIVE QUERIES BASED ON
THE COST MODEL
Trương Ngc Châu
Trường Đại hc Bách khoa, Đại hc Đà Nng
TÓM TT
Trong các lược đồ cơ s d liu hướng đối tượng thường xy ra các quan h đệ quy
gia các lp, nhm mc đích làm tăng kh năng biu din ng nghĩa ca chúng, điu này làm
phc tp thêm vn đề x lý ti ưu các truy vn nói chung và các truy vn đệ quy nói riêng trên
các đối tượng phc. Da vào các kết qu trong [5], bài báo tp trung nghiên cu, phân tích và
ci tiến các phương pháp ti ưu truy vn đệ quy, như: to các cây x lý truy vn ng vi các
nút v t; biến đổi các cây x lý truy vn da trên mô hình chi phí cơ s, s dng chiến lược
điu chnh chi phí, vi tham s đầu vào là đồ th truy vn ca truy vn đệ quy hướng đối tượng
tng quát.
ABSTRACT
In the schemata of object-oriented database, recursive relations among classes often
take place with the purpose of increasing the ability of performing their meaning. This causes
more problems to the optimal processing of queries in general and recursive queries based on
complicated objects in particular. Based on the results in [5], this article focuses on the study,
analysis and improvement of a number of optimal methods for recursive queries such as
creating trees of processing queries with the predicates performance at nodes; changing query-
processing trees based on a model of the basic cost by using a strategy for controlling cost with
an input querying graph of general recursive queries.
1. Gii thiu
Các mô hình d liu hướng đối tượng được m rng vi các quan h đệ quy
nhm mc đích làm tăng kh năng biu din ng nghĩa, điu này làm phc tp thêm vn
đề ti ưu các truy vn nói chung và các truy vn đệ quy nói riêng. Các tiếp cn ti ưu
truy vn đang tn ti [2][3][8][10] để ti ưu hóa các truy vn đệ quy không th áp dng
được.
R.S.G. Lanzelotte, P. Valduriez, M. Zait [5] đã đề xut mt cách tiếp cn ti ưu
truy vn đệ quy hướng đối tượng da trên mt mô hình chi phí cơ s, s dng các chiến
lược điu chnh chi phí. Nguyên tc chung khi ti ưu mt truy vn là biến đổi truy vn
này v mt lược đồ thc thi, có tng chi phí là thp nht. Cách tiếp cn thông thường,
ch yếu s dng các quy tt viết li truy vn da trên lược đồ khái nim [3][8][10] rt
khó để đo được chi phí thc thi. Tiếp cn ca nhóm tác gi R.S.G. Lanzelotte [5] da
trên các thc th vt lý, do đó chi phí ca lược đồ thc thi truy vn có th được tính toán
trc tiếp mt cách d dàng da trên mô hình chi phí đã cho.
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(37).2010
27
Bài báo tp trung nghiên cu và phân tích các chiến lược ti ưu da trên mô
hình chi phí cơ s, s dng các chiến lược điu chnh chi phí, vi tham s đầu vào là
các đồ th truy vn. Tiếp theo nhng kết qu trong [5], chúng tôi m rng các hành động
ti ưu mt cách tng quát hơn, da trên câu truy vn đệ quy hướng đối tưng tng quát.
2. Mt s khái nim
Ví d 1. Xét lược đồ cơ s d liu hướng đối tượng sau đây làm cơ s cho các
truy vn được trình bày trong bài báo này.
define class NGUOI:
type tuple (hoTen: String;
ngay Sinh: Date;
hocVi: String;)
end NGUOI
define class BAIGIANG:
type tuple (tenBaiGiang: String;
giaoVien: GIAOVIEN;
taiLieuTK: set(TAILIEU);)
end BAIGIANG
define class TAILIEU:
type tuple (tenTaiLieu: String;
tacGia: String;
namXB: String;)
end TAILIEU
define class GIAOVIEN inherits NGUOI
type tuple (thay: GIAOVIEN;
baiGiang: set(BAIGIANG);)
end GIAOVIEN
Ng nghĩa ca lược đồ khái nim trong Ví d 1 được gii thích như sau: mt
giáo viên khi mi được nhn v ging dy ti mt khoa mt trường Đại hc nào đó.
Giáo viên này s được khoa phân công son mt s bài ging trước khi tham gia ging
dy. Các giáo viên được phân công son bài ging, được khoa c mt thy (thuc tính
thay trong lp GIAOVIEN) có chuyên môn liên quan hướng dn.
2.1. Đồ th truy vn [5]
Đồ th truy vn là mt đồ th có hướng bao gm các thành phn sau:
- Các nút v t: biu din các v t trong câu truy vn và được ký hiu bi các
hình vuông, có mt hoc nhiu cung vào và mt cung ra. Các cung vào và ra
ca mt nút v t được gán nhãn cây, cây này bao gm các biến hay các đối
tượng. Nhãn cây ti cung ra ca nút v t cho biết kiu ca nút v t ti đầu ra,
để ký hiu phép chiếu ti đầu ra, chúng ta tham chiếu các biến trong các nhãn
cây ca các cung vào.
- Các tên nút: là các tên lp hay quan h ca lược đồ khái nim.
- Các cung có hướng ni các tên nút vi các nút v t.
2.2. Truy vn đệ quy
Gi s rng lược đồ khái nim được m rng vi khái nim khung nhìn (view)
đệ quy R. Khi đó, mt truy vn đệ quy có th được chia thành hai bước: cơ sđệ
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(37).2010
28
quy, có dng tng quát như sau:
view R(d, i, j, v)
includes (SELECT 1, a.i, a.j, v
FROM a in T)
Truy vn Q1 ti
bước cơ s
Union (SELECT d+1, b.i, c.j, v
FROM b in R, c in T
WHERE <điu kin>)
Truy vn Q2 ti
bước đệ quy
Trong đó:
- d cho biết độ sâu ca đệ quy (thuc tính này có th không có mt trong truy
vn); v có giá tr s và có th thay đổi sau mi bước đệ quy, tùy thuc vào
cách mà nó được tính toán.
- <điu kin> cha biu thc kết ni b.j = c.i
- T là sưu tp cha các đối tượng làm đầu vào cho truy vn đệ quy
- R là sưu tp cha các đối tượng được tr v sau mi bước đệ quy và có cu trúc
tương t như T.
Ví d 2. Cho truy vn đệ quy: “Cho biết h tên giáo viên có thy hướng dn liên
quan ít nht là 3 thế h, son các bài ging đã tham kho tài liu ca tác gi Nguyn
An”.
view R(thay, giaovien, thehe)
includes (SELECT [thay: a.thay, giaovien: a, thehe: 1]
FROM a in GIAOVIEN) Bước cơ s
Union (SELECT [thay: r.thay, giaovien: b, thehe: add1(thehe)]
FROM r in R, b in GIAOVIEN
WHERE r.giaovien = b.thay)
Bước đệ quy
SELECT kq.hoTen
FROM kq in R
WHERE kq.thehe>=3 and
kq.thay.baiGiang.taiLieuTK.tacGia = “Nguyn An”
Tr v kết qu
Hình 1 là đồ th truy vn ca truy vn trong Ví d 2. Các nút v t P1P2 định
nghĩa khung nhìn đệ quy R, khung nhìn này được xem như là bao đóng chuyn tiếp có
dng R = Q1
(R.Q2). Các th hin ca R là hp ca các th hin đầu ra ca các nút v
t P1P2, nút v t P3 áp dng cho truy vn trên khung nhìn đệ quy.
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(37).2010
29
Hình 1. Đồ th ca truy vn đệ quy
2.3. Lược đồ thc thi
Chúng ta s dng cây x lý truy vn PT (Processing Tree) [5] để mô hình hóa
lược đồ thc thi truy vn. Ví d trong Hình 2 ch ra hai cây x lý truy vn ca truy vn
Hình 1.
Định nghĩa. Mt nút N ca PT, được ký hiu N(child0, child1,..., childk-1) sao
cho mi nút N hay các nút con ca nó childi, 0 i k-1 hoc là:
- Mt phép chiếu Proj, mt phép chn Selpred (k = 1),
- Mt kết ni n IJatrrName, mt kết ni hin EJpred, mt đim bt động (Fix point)
Fix, mt phép hp Union (k = 2),
- Mt kết ni n thc hin bi mt ch mc đường dn PIJpathIndex (k 2),
- Mt thc th nguyên t ca lược đồ vt lý hoc mt tp tin tm (k = 0).
2.4. Mô hình chi phí [4, 5, 6]
Ký hiu Ci là tên ca quan h hay lp, N là nút ca PT, Ai là thuc tính ca Ci, P
là v t. Ta có chi phí cho các phép toán cơ bn như sau:
+ access_cost(Ci): chi phí truy cp các th hin ca Ci.
+ access_cost(Ci, P): chi phí truy cp các th hin ca Ci tha mãn v t P.
+ access_cost(Ci, Ci+1): chi phí truy cp các th hin ca Ci+1 được tham chiếu bi
mt th hin ca Ci thông qua thuc tính Ai.
+ eval_cost(Ci, P): chi phí ước lượng v t P trên tt c các đối tượng ca Ci được
lưu tr trong mt trang ca Ci.
P2
P1
x
y
thay
x 1
giaoviethehe
TRUE
thay
y
GIAOVIEN
R
x
thay
y
y = d
thay
g
giaovie theh
m
thay
d g
giaovie add1
baiGiang
d
taiLieuTK
tacGia
i
i = “Nguyn An”
and g >= 3 P3
d
hoTen
m
KETQUA
m
thay
x
giaovienthehe
TP CHÍ KHOA HC VÀ CÔNG NGH, ĐẠI HC ĐÀ NNG - S 2(37).2010
30
- Các tham s da trên mô t ca lược đồ vt lý: |Ci| s các trang mà Ci đưc lưu
tr; ||Ci|| s các th hin ca Ci; nblevels(I) s cp ca ch mc I; nbleaves(I) s các nút
lá ca ch mc I.
Hình 2. Các cây x lý cho truy vn ca Hình 1.
- Các hàm:
+ nbpages(Ci, P): tr v s các trang đã truy cp, nghĩa là |Ci| đã được rút gn
bi v t P.
+ nbtuples(Ci, P): tr v s đối tượng đã truy cp, nghĩa là ||Ci|| đã được rút gn
bi v t P.
Bng 1. Các công thc tính chi phí cho các nút trong cây x lý truy vn
Nút ca PT Công thc chi phí
Selselpred(C) access_cost(C, selpred) + nbpages(C, selpred)*eval_cost(C,
selpred)
EJpred(Ci, Cj) access_cost(Ci, pred) + nbtuples(Ci, pred)*(access_cost(Cj,
pred) + nbpages(Cj, pred) * eval_cost(Cj, pred)) 1
1 Công thc này là hp l nếu phép toán EJ được thc hin bng cách s dng thut toán kết ni lp lng
hay ch mc kết ni.
R
GIAOVIEN R
EJthay =
F
ix
Selthehe 3
IJthay
PIJbaiGiang.taiLieuT
KETQUA
SeltacGia = ‘Nguyn An’
IJgiaovien
GIAOVIEN
GIAOVIEN
GIAOVIEN
GIAOVIE
N
R
T1
T
2
T3
T4
T6
T5
(i)
GIAOVIEN
TAILIEU
IJthay
GIAOVIEN IJthay
R’ GIAOVIEN
PIJbaiGiang.taiLieuTK
BAIGIANG TAILIEU
SeltacGia = ‘Nguyn
GIAOVIEN
EJthay =
PIJbaiGiang.taiLieuTK
BAIGIAN
G
SeltacGia = ‘Nguyn
Fi
Selthehe 3
KETQUA
R’
T7
T8
T9
T10
T11
T12
T13
T14
T15
(ii)