C ẢI TIẾN THUẬT TOÁN CẬP NHẬT GIA TĂNG CÁC KHUNG NHÌN TH ỰC KIỂU SPJ IMPROVEMENT OF THE INCREMENTAL ACTUALIZATION ALGORITHM FOR THE SPJ MATERIALIZED VIEWS Trường Đại học Kinh tế, Đại họ
Trang 1C ẢI TIẾN THUẬT TOÁN CẬP NHẬT GIA TĂNG
CÁC KHUNG NHÌN TH ỰC KIỂU SPJ
IMPROVEMENT OF THE INCREMENTAL ACTUALIZATION
ALGORITHM FOR THE SPJ MATERIALIZED VIEWS
Trường Đại học Kinh tế, Đại học Đà Nẵng
TÓM T ẮT
Khung nhìn th ực (materialized view, KNT) kiểu Select-Project-Join (SPJ) là KNT dựa trên truy v ấn chỉ chứa các phép chọn, chiếu và nối, không bao gồm các phép toán thống kê như SUM, COUNT, AVG, MIN, MAX Kết quả thực thi nó có thể chứa các bản ghi trùng lặp.
ABSTRACT
Có th ể nói rằng, thuật toán cập nhật gia tăng sử dụng số đếm số lần lặp lại của các bản ghi trong KNT là hiệu quả nhất đối với các KNT kiểu SPJ Bài viết trình bày cải tiến trong cách tính
s ố đếm và đề nghị thuật toán cập nhật gia tăng các KNT kiểu SPJ có sử dụng cách tính số đếm
đã được cải tiến
The SPJ (Select-Project-Join) materialized views are the materialized views based on the queries that contain only the operations : selection, projection and join, excluding the aggregate functions such as SUM, COUNT, AVG, MIN, MAX The result of their execution can contain duplicated records It should be noted that the incremental update algorithm using the counter of the duplication of the records is the most effective on the SPJ materialized views In this paper the improvement of a method for calculating that counter is presented and an algorithm for incremental updates of the SPJ materialized views with improved counter calculation is also suggested
1 Đặt vấn đề
Có nhiều thuật toán khác nhau được phát triển để thực hiện cập nhật gia tăng
2
đếm được lưu trong bản ghi của KNT như là một trường riêng biệt Số đếm sẽ được tăng
được tạo ra với ý tưởng ban đầu là một công cụ hỗ trợ cho các kho dữ liệu và các hệ
Trang 2KNT chỉ được triển khai thực tế cách đây không lâu trong các phiên bản cuối
trên cơ sở bất kỳ truy vấn nào, kể cả truy vấn phức tạp nhất với đầy đủ các thành phần
KNT được tạo ra trên cơ sở truy vấn SPJ – truy vấn chỉ chứa các phép chọn, chiếu và
mv j ( j , j, j)
Z =Z = F C T
S
j
F – t ập hợp các trường lựa chọn của truy vấn thứ j;
j
C
j
F – tập hợp các trường từ câu điều kiện lựa chọn WHERE C j;
T
k
j
Z
được sử dụng
ins
k
j
T ( del
k j
< ins
k
j
T > (< del
k j
T >) – một bản ghi trong tập ins
k j
T ( del
k j
T );
ins
k
k
F <T > ) – bản ghi của KNT tương ứng với bản ghi được
đó trở nên không thực tiễn Để duy trì các bảng KNT trong trạng thái thực tiễn (actual
được gọi là sự thực tiễn hoá (actualization, cập nhật)
chính, đó là cập nhật hoàn toàn (COMPLETE), cập nhật gia tăng (INCREMENTAL hay
điều chỉnh phần dữ liệu trong KNT liên quan đến các sửa đổi dữ liệu trong các BG Cập
Trang 33
Đề nghị sử dụng cách thức sau đây để tính các truy vấn SQL tính các tập hợp
j
j
Cho mỗi bản ghi <T jinsk
> trong tập hợp T jinsk
cho trường hợp xoá, <T jdelk
> và
del
k j
T
k
F <T >
(
del
k
F <T >
) có
trong KNT Tiếp theo, tính số CNTins =COUNT F( j(<T jinsk >))
cho trường hợp thêm mới và
k
CNT =COUNT F <T > cho trường h ợp xo á từ BG T j k
Nếu hai bản ghi của BG
<T j k
ins
CNT = và
del
ins
CNT CNT
giá trị
del
CNT
< > < > và loại bỏ ins del
từ T jinsk
(
del
k
j
T
)
Việc thực hiện phép nối chiếm tỉ trọng lớn về mặt chi phí tài nguyên của hệ
trong tập hợp ins
k j
T ( del
k j
lại, thì cải tiến này có thể sẽ không hiệu quả
Sau đây, bài viết đề nghị thuật toán CNGT các KNT kiểu SPJ có sử dụng cải tiến
3.2.1 Trường hợp thêm mới các bản ghi
Giả sử tập h ợp các b ản gh i ins
k i
k
i
k i
T
Trang 4Nhìn chung, các thuật toán đã được công bố tập trung tính tập hợp các bản ghi được thêm mới – tương đương với truy vấn:
Z = F ∪ CNT C T ,
k N T
T = T T T T và T
j
dạng <F > trong KNT N j ếu có thì thực hiện truy vấn có dạng:
Trong trường hợp ngược lại, thực thi truy vấn:
3.2.2 Trường hợp xoá các bản ghi
Giả sử tập h ợp các bản gh i del
k j
k
j
k j
T
Z = F ∪ CNT C T ,
k N T
T = T T T T
j
dạng <F > trong KNT N j ếu có, thì xét hai trường hợp sau đây:
CNT >CNT đối với bản ghi <F >, thì th j ực thi truy vấn có dạng:
Ngược lại, nếu không có bản ghi dạng <F > trong KNT, thì không c j ần thực hiện hành động nào cả
3.2.3 Trường hợp sửa đổi các bản ghi
Giả sử trong BG T i k, tập hợp các bản ghi old
k i
k i
T , tương ứng với truy vấn:
UPDATE
k i
Trang 5Dễ nhận thấy rằng, sửa đổi một bản ghi tương đương với xoá bỏ một bản ghi sau
đó thêm mới một bản ghi khác Đối với trường hợp tập hợp, cập nhật một tập hợp các
bản ghi < old
k
i
T > tương ứng với một bản ghi < new
k i
T >
đối với mỗi bản ghi < ins
k j
T > và < del
k j
j
C (< del
k
j
T >)=false, thì loại bỏ bản ghi < del
k j
T > từ del
k j
T , nếu C j(< ins
k j
T >)=false, thì loại bỏ
bản ghi < ins
k
j
T > từ ins
k j
giản hoá quá trình thực thi phép nối
k j
T > và < new
k j
T > thoả mãn điều kiện Fi(< old
k j
T >) =
j
F (< new
k
j
k j
T > và < new
k j
k j
T và
new
k
j
k j
T > và < new
k j
kiện Fj(< old
k
j
T >) # Fj(< new
k j
k j
T và ins
k j
T tối thiểu
del
k
j
k j
k j
T và new
k j
del
j
Z và Zinsj , so sánh Zdelj và Zinsj theo từng bản ghi Nếu < del
j
Z > = <Zinsj >, thì
ins
CNT < del
CNT = CNTdel
j
F Ta không thể đồng thời lưu các các giá trị của các trường chọn lựa S
j
F
j
j
F > tương ứng với nhiều < C
j
F >
Trang 64 K ết luận
gia tăng các KNT kiểu SPJ có sử dụng cách tính số đếm đã được cải tiến Các cải tiến
thay đổi nhỏ hơn nhiều so với tích của số lượng bản ghi của các BG còn lại trong truy
tiễn
[1] Shmueli O Maintenance of views SIGMOD record 1984 – 14 – tr 240-255 http://portal.acm.org/citation.cfm?id=602293
[2] Blakeley A J, Larson P., Tompa F.W Efficiently Updating Materialized Views
http://portal.acm.org/citation.cfm? id=16894.16861
[3] Gupta A., Mumick I S., Subrahmanian V S Maintaining Views Incrementally In
http://portal.acm.org/ citation.cfm? id=170036.170066
[4] Gupta A., Mumick I.S Maintenance of materialized views: Problems, Techniques and Applications
http://www.informatik.uni-trier.de/~ley/db/ journals/debu/GuptaM95.html
[5] Gupta D.K., Mumick I.S Counting solutions to the view maintenance problem Tech rep AT&T Bell Laboratories 1992
http://www.tempo.att .com/~jeannie/dept/pspapers/att-db-92-8.ps.Z
[6] SQL Server 2005 manual
http://msdn.microsoft.com/en-us/library/ms191432 (SQL.90).aspx
[7] Oracle 11g manual
15/12/2008
http://download.oracle.com/docs/cd/B28359_01/server 111/b28286/statements_6002.htm
[8] Thomas Kyte Expert one-on-one Oracle Apress, 2003
17/01/2009