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

Siêu đồ thị kết nối đối tượng – một cách tiếp cận trong tối ưu hoá câu truy vấn đối tượng lồng nhau

13 3 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

Tiêu đề Siêu đồ thị kết nối đối tượng – một cách tiếp cận trong tối ưu hoá câu truy vấn đối tượng lồng nhau
Tác giả Lê Mạnh Thạnh, Hoàng Bảo Hùng
Trường học Đại học Huế
Chuyên ngành Khoa học máy tính
Thể loại Báo cáo khoa học
Năm xuất bản 2010
Thành phố Huế
Định dạng
Số trang 13
Dung lượng 256,01 KB

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

Nội dung

TẠP CHÍ KHOA HỌC, Đại học Huế, Số 58, 2010 SIÊU ĐỒ THỊ KẾT NỐI ĐỐI TƯỢNG – MỘT CÁCH TIẾP CẬN TRONG TỐI ƯU HOÁ CÂU TRUY VẤN ĐỐI TƯỢNG LỒNG NHAU Lê Mạnh Thạnh Đại học Huế Hoàng Bảo Hùng

Trang 1

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

SIÊU ĐỒ THỊ KẾT NỐI ĐỐI TƯỢNG – MỘT CÁCH TIẾP CẬN

TRONG TỐI ƯU HOÁ CÂU TRUY VẤN ĐỐI TƯỢNG LỒNG NHAU

Lê Mạnh Thạnh Đại học Huế Hoàng Bảo Hùng

Sở Thông tin và Truyền thông tỉnh Thừa Thiên Huế

TÓM TẮT

Trong cơ sở dữ liệu hướng đối tượng, truy vấn đối tượng lồng được sử dụng khá thường xuyên Các cấu trúc lồng được biểu diễn ở biểu thức điều kiện của truy vấn dưới hai dạng: các truy vấn con lồng hoặc biểu thức đường dẫn có chứa các kết nối ẩn là các tân từ lồng nhau trong mệnh đề Đối với truy vấn lồng, khi phân tích ước lượng chi phí của biểu thức đại

số lồng nhau, thì việc định giá sẽ cho kết quả chi phí không hiệu quả Vì vậy, phương pháp của chúng tôi đưa ra trong bài báo này là làm phẳng các truy vấn con trong các truy vấn có cấu trúc lồng nhau sử dụng siêu đồ thị kết nối đối tượng, phương pháp này sẽ làm tăng tính hiệu quả cho việc thực thi xử lý truy vấn trên cơ sở dữ liệu hướng đối tượng

1 Mở đầu

Để xử lý các tân từ lặp (lồng), Cho W [3] đưa ra phương pháp ước lượng chi phí phụ thuộc tỷ số giữa số các đối tượng của lớp bắt đầu trong biểu thức đường dẫn và tổng số các đối tượng của lớp, dựa trên mối quan hệ nhiều @ nhiều giữa các lớp Tỷ số này là một trong những tham số lựa chọn trong quá trình thiết kế CSDL vật lý

Đối với là các truy vấn con lồng, Cluet S [4] đề xuất phương pháp tối ưu theo hai bước Đầu tiên, biến đổi các truy vấn ở mức ngôn ngữ nhằm xử lý một cách hiệu quả các biểu thức con chung và các truy vấn con độc lập Sau đó, các truy vấn được biên dịch thành các biểu thức đại số lồng nhau và áp dụng phương pháp biến đổi đại số Tuy nhiên, khi phân tích sự ước lượng đối với các vòng lặp lồng nhau trong các biểu thức đại số, chúng ta nhận thấy biểu thức kết quả có chi phí là không hiệu quả Do đó, phương pháp chúng tôi đề xuất trong phần sau sẽ giải quyết vấn đề xử lý cho các truy vấn con lồng trong giai đoạn “làm phẳng” các truy vấn lồng nhau bằng phương pháp rút gọn siêu đồ thị kết nối đối tượng, giúp cho phép định giá hiệu quả hơn

Trong bài báo này, xuất phát từ ý tưởng biểu diễn và tối ưu hóa các truy vấn bằng siêu đồ thị của Ullman J.D [9] và Han [5], chúng tôi đưa ra khái niệm siêu đồ thị kết nối đối tượng để biểu diễn các truy vấn đối tượng trong OQL, đặc biệt là xử lý các truy vấn lồng Từ đó, đề xuất các thuật toán ước lượng các siêu cạnh và thuật toán thu gọn siêu đồ thị kết nối đối tượng

Trang 2

2 Biểu diễn truy vấn đối tượng bằng ký pháp siêu đồ thị

Trước hết, một cách hình thức chúng ta xét định nghĩa của khái niệm siêu đồ thị kết nối đối tượng như sau [6]:

Định nghĩa Siêu đồ thị kết nối đối tượng là một bộ sáu = (CH, VH, EH, LH,

sH, lbH), trong đó:

(i) CH là tập hữu hạn các lớp tham gia trong truy vấn

(ii) VH là tập hữu hạn các nút

(iii) LH là tập hữu hạn các nhãn

(iv) EH = EC ∪ EQ @ tập các siêu cạnh (hữu hạn), trong đó EC, EQ là tập các siêu cạnh biểu diễn các lớp đối tượng và các thành phần của truy vấn

(v) sH: VH → EH là ánh xạ khởi tạo các siêu cạnh từ tập các nút

(vi) lbH: EH → LH là hàm gán nhãn cho siêu cạnh, sao cho ∀ e ∈ EH lbH(e) ∈

LH

Ví dụ 2.1 Xét siêu đồ thị kết nối đối tượng biểu diễn truy vấn sau:

select A from c 1 , c 2 , c 3 where c 1 A = c 2 F and (c 1 A + c 1 B > c 3 D) and (c 3 E ≤ c 2 G)

B

D

Hình 1 Siêu đồ thị kết nối đối tượng của ví dụ 2.1

Trong đó, ta có:

CH = {c 1 , c 2 , c 3 }, c 1 = (A, B, C), c 2 = (G, H) và c 3 = (D, E, F) là các lớp đối tượng

VH = {A, B, C, D, E, F, G, H}: tập các nút, LH = {e 1 , e 2 , f 1 , f 2 , “head”}: các nhãn

EH = EC ∪ EQ, với EC gồm tập các siêu cạnh được gán nhãn {e 1 , e 2 , e 3} biểu

diễn các lớp c 1 , c 2 , c 3 Và EQ có các siêu cạnh biểu diễn lần lượt là kết quả của truy vấn,

biểu thức điều kiện truy vấn tương ứng có nhãn là {f 1 , f 2 , “head”} Đối với điều kiện

“c1.A = c2.F” chúng ta thực hiện “trộn” hai nút đặt nhãn là “A”

Từ định nghĩa (trong các phần sau, siêu đồ thị kết nối đối tượng được gọi tắt là

Trang 3

siêu đồ thị), chúng ta sử dụng ký pháp siêu đồ thị để biểu diễn cho truy vấn OQL như sau:

@ Tập các nút của siêu đồ thị là tập các thuộc tính thuộc các lớp tham gia truy

vấn Mỗi thuộc tính của lớp c i được biểu thị bằng một nút Nếu hai lớp c i và c j đều có

cùng một số các thuộc tính kế thừa từ một siêu lớp nào đó, hoặc chúng cùng kế thừa tất

cả các thuộc tính từ một siêu lớp, chúng ta vẫn tạo riêng cho các thuộc tính này các nút khác nhau

@ Các siêu cạnh của siêu đồ thị được tạo thành từ các biểu thức điều kiện và

các lớp c i:

Xét biểu thức điều kiện trong mệnh đề where, các biểu thức điều kiện được chia

ra các dạng sau:

A θ B, θ ∈ { < , ≤ , ≠ , > , ≥}, (1.3)

A θ B, θ ∈ {⊂ , ⊆ , ≠ , ⊃ , ⊇} (1.4)

trong đó, A, B là thuộc tính của các lớp và a là hằng

Các siêu cạnh là các tập với số lượng nút hữu hạn, biểu diễn lớp, ta gọi là

siêu cạnh đối tượng và được vẽ bằng một đường khép kín bao quanh các

nút của siêu cạnh Gán nhãn là tên của lớp

Đối với mỗi biểu thức điều kiện dạng (1.3) hoặc (1.4), chúng ta sẽ tạo ra một siêu cạnh chứa các thuộc tính có mặt trong biểu thức Những siêu

cạnh này được gọi là siêu cạnh điều kiện và chúng được biểu thị bằng

đường nét chấm khép kín

Điều kiện có dạng (1.1) sẽ trở thành nhãn “A = a”của nút biểu diễn thuộc

tính tương ứng

Biểu thức điều kiện có dạng A = B (1.2), với A, B là các thuộc tính trong hai lớp (có thể cùng là những thuộc tính được kế thừa từ một siêu lớp nào đó), thì chọn một thuộc tính đại diện và đặt nhãn chung là tên của một trong hai thuộc tính

@ Nếu có hai điều kiện trên cùng một tập thuộc tính, chúng ta phải đặt nhãn riêng cho mỗi siêu cạnh để có thể phân biệt được chúng

@ Các thuộc tính trong mệnh đề select được bao trong một đường liền khép kín và

gán nhãn là “head”, gọi là siêu cạnh đỉnh Siêu cạnh đỉnh tương ứng với một lớp @ kết quả

của truy vấn

Trang 4

@ Siêu cạnh kết nhập chứa các thuộc tính tham gia trong các biểu thức chứa các

phép toán {IS, IN, UNION, FORALL, EXIST, } của các truy vấn con lồng nhau, được vẽ bằng đường nét rời khép kín Các siêu cạnh kết nhập được gán nhãn tương ứng với tên các phép toán

Truy vấn đơn chỉ có một khối select from where (SFW); Truy vấn lồng trong

OQL có nhiều hơn một khối SFW Truy vấn lồng biểu diễn bằng một siêu đồ thị được xây dựng từ các siêu đồ thị của các khối SFW đơn và liên kết với nhau qua các siêu cạnh kết nhập

Chúng ta biểu diễn hình thức lược đồ đối tượng S = (s 1 , …, s n ), s i là các lớp

trong S và truy vấn đối tượng QE = (s 1 , …, s m , R, p 1 , …, p k ), với s i (i = 1,…, m) là các lớp tham gia truy vấn, R là lớp/kiểu kết quả của truy vấn và p j (j = 1, …, k) là các biểu

thức điều kiện ở mệnh đề where

Thuật toán 2.1: Khởi tạo siêu đồ thị của truy vấn đối tượng (không chứa truy

vấn lồng)

Vào: Lược đồ đối tượng S = (s 1 , …, s n)

Truy vấn đối tượng QE = (s 1 , …, s m , R, p 1 , …, p k)

Ra: Siêu đồ thị

Phương pháp:

(1) SC := ∅ //tập chứa các siêu cạnh đối tượng của siêu đồ thị

(2) V := (s 1 , …, s m)

(3) for s i ∈ V do

(4) if (s i là siêu lớp gốc) then //không kế thừa từ các siêu lớp khác

(5) Khởi tạo siêu cạnh đối tượng e = sH({s i}) và nhãn lbH(e)

(6) else if (s i là lớp kế thừa đơn hoặc kế thừa bội) then

(7) Xử lý trường hợp xung đột về tên với các thuộc tính kế thừa

(8) Khởi tạo lớp s i ’ chứa các thuộc tính của lớp và thuộc tính

kế thừa

(9) Khởi tạo siêu cạnh đối tượng e = sH({s i ’}) và gán nhãn

lbH(e)

(10) SC := SC ∪ e

(11) Khởi tạo siêu cạnh đỉnh h = sH({R}) và lbH(h) = “head”

(12) SC := SC ∪ h

Trang 5

(13) SD := ∅ //tập chứa các siêu cạnh điều kiện của siêu đồ thị

(14) for p i ∈ (p 1 , …, p k) do

(15) if (p i có dạng (3.3) và (3.4)) then

(16) Khởi tạo siêu cạnh điều kiện f = sH({p i})

(18) else Gán nhãn cho nút lbH(e) = “= a”

(19) := SC ∪ SD

Từ định nghĩa, chúng ta khẳng định thuật toán 2.1 là đúng đắn và độ phức tạp

tính toán của thuật toán là O(n 2 ), với n là số lớp tham gia trong truy vấn

Trên cơ sở của thuật toán 2.1, chúng ta xây dựng thuật toán khởi tạo siêu đồ thị biểu diễn các truy vấn lồng Với các bước xác lập siêu đồ thị đơn, chúng ta tạo siêu đồ thị kết quả từ các liên kết của các siêu đồ thị đơn với các siêu cạnh kết nhập

Thuật toán 2.2: Khởi tạo siêu đồ thị của truy vấn lồng OQL

Vào: Lược đồ đối tượng S = (s 1 , …, s n)

Truy vấn QE = (s 1 , …, s m , R, p 1 , …, p k ), tập TT ⊆ {is, in, union, diff, forall, exists}

là tập các toán tử tham gia trong mệnh đề where của truy vấn QE.

Ra: Siêu đồ thị

Phương pháp:

(2) for (mỗi truy vấn con QE i trong truy vấn QE) do

(3) Khởi tạo siêu đồ thị i với QE i (Thuật toán 2.1)

(5) for (mỗi toán tử t i ∈ TT) do

(6) Khởi tạo siêu cạnh kết nhập g có nhãn là t i chứa siêu cạnh đỉnh của siêu

đồ thị ở vế phải của t i và thuộc tính ở vế trái của t i

Ví dụ 2.2 Tìm tên của tất cả sinh viên ở cùng thành phố với giảng viên có tên là

“Huế”

define SinhVien as p1

select (p1.name)

from p1, p2 GiangVien

Trang 6

where p1.tpho = p2.tpho AND p2.hoten = “Hu4”

Truy vấn trong ví dụ 2.2 chứa các kết nối dựa trên giá trị (p1.tpho = p2.tpho)

và được gán nhãn là “tpho”, trộn2 nút có nhãn là “tpho”.

Hình 2.2 Siêu đồ thị biểu diễn cho ví dụ 2.2

Ví dụ 2.3 Xét truy vấn cho biết tên các cán bộ giảng viên (cbgv) ở khoa có ngân

sách được cấp lớn hơn 250 (đơn vị tính: triệu đồng) và có mức lương lớn hơn hoặc bằng 2.4

select e.hoten from GiangVien as e where e.luong >= 2.4

AND e.makhoa IN ( select s.makhoa

from Khoa as s where s.ngansach > 250) Siêu đồ thị của ví dụ 2.3 được khởi tạo như sau: Các siêu cạnh đối tượng biểu diễn các lớp GiangVien và Khoa Đối với các siêu cạnh đỉnh, chúng ta có hai siêu cạnh đỉnh:

e.hoten @ siêu cạnh đỉnh (kết quả của truy vấn), s.makhoa @ siêu cạnh đỉnh của khối SFW

lồng Hai siêu cạnh điều kiện e.luong >= 2.4, s.ngansach > 250 và siêu cạnh kết nhập

e.makhoa được gán nhãn là IN

Hình 2.2 Biểu diễn siêu đồ thị của ví dụ 2.3

hoten tpho …

… …

hoten

“Huế”

GiangVien

SinhVien

Trang 7

3 Phương pháp ước lượng siêu đồ thị

3.1 Ước lượng các siêu cạnh [6]

Biểu diễn hình thức cho siêu đồ thị của truy vấn hướng đối tượng là dãy các sự kiện: = (E 1 , E 2 , , E n ), trong đó, các sự kiện E i có thể là siêu cạnh đối tượng, siêu

cạnh điều kiện hoặc siêu cạnh kết nhập

Lớp dẫn xuất thu được sau tác động của một sự kiện E j được ký hiệu là Lớp_dẫn_xuất(E 1 , , E j ), trong đó E 1 phải là siêu cạnh đối tượng (trường hợp siêu đồ

thị chỉ có một siêu cạnh thì nó phải là siêu cạnh đối tượng)

Thủ tục Ướclượngsiêucạnh nhận vào lớp dẫn xuất thu được sau tác động của sự kiện E j@1 và sự kiện E j , kết quả của thủ tục là lớp dẫn xuất với sự kiện E j trong

Procedure Ướclượngsiêucạnh(Lớp_dẫn_xuất(E 1 , , E jd1 ), E j )

Vào: Lớp_dẫn_xuất(E 1 , , E jd1 ) và sự kiện E j

Ra: Lớp_dẫn_xuất(E 1 , , E j)

Phương pháp:

(1) Khởi tạo, Ướclượngsiêucạnh(E 1 ) cho kết quả: Lớp_dẫn_xuất(E 1 ) = c 1,

trong đó, c 1 là lớp tương ứng với siêu cạnh đối tượng E 1

(2) if (E j là một điều kiện hoặc siêu cạnh điều kiện) then

Lớp_dẫn_xuất(E 1 , , E j) = σF (Lớp_dẫn_xuất(E 1 , , E jd1))

với F là biểu thức điều kiện tương ứng với E j

(3) if (E j là siêu cạnh đối tượng của lớp C j có giao với siêu đồ thị) then

Lớp_dẫn_xuất(E 1 , , E j ) = Lớp_dẫn_xuất(E 1 , , E jd1)) C j

(4) if (E j là siêu cạnh đối tượng không giao với siêu đồ thị) then

Lớp_dẫn_xuất(E 1 , , E j ) = Lớp_dẫn_xuất(E 1 , , E jd1 )) × C j

Trong ví dụ 2.2, S = (GiangVien, SinhVien), ta có:

Lớp_dẫn_xuất(GiangVien, SinhVien) = Lớp_dẫn_xuất(GiangVien) SinhVien

Khi tất cả các siêu cạnh trong siêu đồ thị được ước lượng bằng cách tác động

lần lượt các sự kiện để thu được các lớp dẫn xuất Lớp dẫn xuất kết quả sẽ được chiếu lên tập các thuộc tính trong siêu cạnh đỉnh, đây chính là câu trả lời của truy vấn

Thuật toán 3.1: Ước lượng các siêu cạnh của siêu đồ thị

Vào: Siêu đồ thị = (E 1 , E 2 , , E n ), R là siêu cạnh đỉnh

Ra: Lớp kết quả của truy vấn.

Trang 8

Phương pháp:

(1) Biểu diễn siêu đồ thị = (E 1 , E 2 , , E n ), với dãy các sự kiện E i

(2) for j = 1 to n do

(3) Call Ướclượngsiêucạnh(Lớp_dẫn_xuất(E 1 , , E jd1 ), E j)

(4) Bổ sung Lớp_dẫn_xuất(E 1 , , E j) vào

(5) = ππR (Lớp_dẫn_xuất(E 1 , , E n))

Mệnh đề Thuật toán 3.1 dừng sau hữu hạn bước và cho câu trả lời đúng

Chứng minh

Rõ ràng số các sự kiện trong là hữu hạn, do đó thuật toán 3.1 sẽ dừng sau n lần tác động các sự kiện E j lên các lớp dẫn xuất, n là số sự kiện trong siêu đồ thị

Để chứng minh rằng thuật toán 3.1 trả về câu trả lời đúng của truy vấn đã cho, chúng ta chứng minh quy nạp như sau:

Trường hợp cơ sở: n = 1, thì = (E 1 ), E 1 là siêu cạnh đối tượng, ta có:

= ππR (E 1) = ππR (C 1) – là câu trả lời của truy vấn

Giả sử lớp dẫn xuất thứ k thu được sau tác động của sự kiện E k là ước lượng của

k siêu cạnh trong siêu đồ thị (Lớp_dẫn_xuất(E 1 , ., E k)) Mặt khác, lớp dẫn xuất thu

được ở bước thứ k lại là đầu vào cho bước ước lượng thứ (k+1), do đó nếu k = n thì sau

n bước ước lượng siêu cạnh, ta có lớp dẫn xuất thu được là:

Ướclượngsiêucạnh(Lớp_dẫn_xuất(E 1 , , E nd1 ), E n ) = Lớp_dẫn_xuất(E 1 , ,

E n)

Sau đó chiếu lên siêu cạnh đỉnh ta có kết quả của truy vấn:

= ππR (Lớp_dẫn_xuất(E 1 , , E n)) – kết quả của truy vấn 

Ví dụ, xét truy vấn trong ví dụ 2.2, chúng ta có dãy sự kiện trong siêu đồ thị = (GiangVien, hoten = “Hu4”, SinhVien)

Áp dụng thuật toán 3.1, ta có các bước ước lượng như sau: (1) Khởi tạo lớp dẫn xuất tương ứng với siêu cạnh đối tượng GiangVien, (2) Áp dụng điều kiện chọn “hoten

= “Hu4” trên siêu cạnh đối tượng GiangVien, (3) Ước lượng siêu cạnh đối tượng SinhVien, là kết nối truyền thống dựa trên giá trị, (4) Chiếu lớp dẫn xuất thu được sau phép kết nối lên siêu cạnh đỉnh (hoten)

Chúng ta có thể nhận thấy từ ví dụ 2.4, trật tự sắp xếp các siêu cạnh trong sẽ cho dãy các bước ước lượng khác nhau, tương ứng với sự sắp thứ tự các phép toán được thực thi Đây sẽ là một trong các tham số xác định không gian tìm kiếm các phương án thực thi truy vấn

Trang 9

Trong thuật toán 3.1, chúng ta chưa xử lý cho trường hợp các siêu cạnh kết nhập, tức là, xét các siêu đồ thị biểu diễn các truy vấn đối tượng lồng Các truy vấn lồng có thứ tự thực hiện các truy vấn con theo trật tự từ “trong ra ngoài”, nghĩa là, các truy vấn

ở cấp sâu nhất sẽ được thực hiện trước Giả sử siêu đồ thị biểu diễn các truy vấn đối tượng lồng được mô tả môt cách hình thức là một dãy các sự kiện chúng ta xây dựng thuật toán thu gọn siêu đồ thị = (E 1 , E 2 , …E i , EA j , E i+1 , …, E k , …), trong đó E i

các siêu cạnh đối tượng hoặc siêu cạnh điều kiện, EA j là các siêu cạnh kết nhập

Chúng ta mở rộng thuật toán 3.1 bằng việc xử lý các siêu cạnh kết nhập như sau:

Trước hết, chúng ta ước lượng tất cả các siêu cạnh E l (l = i + 1, …, k) sau siêu cạnh kết nhập EA j , và không mất tính tổng quát chúng ta giả sử E k là siêu cạnh cuối cùng được

ước lượng (trước khi ước lượng siêu cạnh kết hợp EA j ) Sau đó, tác động sự kiện EA k

đối với lớp dẫn xuất thu được sau khi tác động sự kiện thứ E k (EA j’) Như vậy, được viết lại là = (E 1 , E 2 , …E i , EA j, E i+1 , …, E k , EA j , …), EA j là lớp dẫn xuất kết quả sau khi ước lượng siêu cạnh kết nhập

Thuật toán 3.2: Thu gọn siêu đồ thị

Vào: Siêu đồ thị = (E 1 , E 2 , …E i , EA j , E i+1 , …, E k , …), R là siêu cạnh đỉnh

Ra: Lớp kết quả của truy vấn.

Phương pháp:

(1) Biểu diễn siêu đồ thị = (E 1 , E 2 , …E i , EA j , E i+1 , …, E k, …)

(2) i := 1

(3) repeat

(4) if (EA j là siêu cạnh kết nhập) then

(7) Bổ sung Lớp_dẫn_xuất(E l , , E k) vào trước EA j

(8) else Call Ướclượngsiêucạnh(Lớp_dẫn_xuất(E 1 , , E id1 ), E i) (9) Bổ sung Lớp_dẫn_xuất(E 1 , , E i) vào

(10) inc(i)

(11) until (ước lượng tất cả các siêu cạnh trong )

(12) = ππR (Lớp_dẫn_xuất(E 1 , , E k, …))

Từ mệnh đề trên, chúng ta suy ra thuật toán 3.2 là dừng và cho kết quả là câu trả lời đúng Độ phức tạp tính toán của thuật toán 3.2 có thời gian đa thức

Trang 10

3.2 Không gian tìm kiếm của truy vấn

Các phương án thực thi truy vấn trong không gian tìm kiếm được xét trên các khả năng lựa chọn, ước lượng của các lớp và các siêu cạnh thuộc siêu đồ thị Từ đó, với các thuật toán ước lượng và thu gọn siêu đồ thị (thuật toán 3.1 và 3.2), chúng ta sẽ xây dựng không gian tìm kiếm các phương án thực thi truy vấn như sau (thuật toán 3.3)

Chúng ta dùng tập các danh sách với các phần tử chứa các thành phần của siêu

đồ thị, sau đó lần lượt duyệt tập các danh sách tương ứng để xác định các phương án

Thuật toán 3.3 Không gian tìm kiếm của truy vấn

Vào: Siêu đồ thị

Ra: Không gian tìm kiếm với tổng số các phương án thực thi truy vấn

Phương pháp:

(1) Sắp xếp các lớp, các siêu cạnh đối tượng, điều kiện và các siêu cạnh kết

nhập vào tập danh sách {L 1}

// Bước 1: Ước lượng các siêu cạnh điều kiện và siêu cạnh kết nhập

(2) for mỗi danh sách L 1 do

(3) for mỗi siêu cạnh E do

(4) if E là siêu cạnh kết nhập then

(5) Bổ sung EA j vào L 1 sau siêu cạnh cuối cùng E k

//Thuật toán 3.2

(6) else if E là siêu cạnh điều kiện then

toán 3.1

(8) Kết quả thu được là danh sách {L 1 ’}

// Bước 2: Uớc lượng các siêu cạnh đối tượng

(9) for mỗi danh sách L 1 ’ do

(10) for mỗi siêu cạnh đối tượng do

(11) Thực hiện các ước lượng với các siêu cạnh điều kiện tương ứng

(12) Kết quả lưu ở danh sách {L 2}

// Bước 3: Ước lượng các kết nối

(13) for mỗi danh sách L 2 do

Ngày đăng: 19/09/2022, 16:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đoàn Văn Ban, Lê Mạnh Thạnh và Hoàng Bảo Hùng. Sự tương đương trong biểu diễn giữa ngôn ngữ truy vấn OQL và đại số đối tượng, Tạp chí Tin học và Điều khiển học, 20(3), (2004), 257–269 Sách, tạp chí
Tiêu đề: Sự tương đương trong biểu diễn giữa ngôn ngữ truy vấn OQL và đại số đối tượng
Tác giả: Đoàn Văn Ban, Lê Mạnh Thạnh và Hoàng Bảo Hùng. Sự tương đương trong biểu diễn giữa ngôn ngữ truy vấn OQL và đại số đối tượng, Tạp chí Tin học và Điều khiển học, 20(3)
Năm: 2004
2. Cattel R.G.G., Barry D.K.. The Object Database Standard: ODMG 3.0, Morgan Kaufmann Publishers, 2000 Sách, tạp chí
Tiêu đề: The Object Database Standard: ODMG 3.0
3. Cho Wan@Sup, Han Wook@Shin, Hong Ki@Hyung and Whang Kyu@Young. Estimating Nested Selectivity in ObjectdOriented Databases, ACM, (2000), 94–101 Sách, tạp chí
Tiêu đề: Estimating Nested Selectivity in ObjectdOriented Databases, ACM
Tác giả: Cho Wan@Sup, Han Wook@Shin, Hong Ki@Hyung and Whang Kyu@Young. Estimating Nested Selectivity in ObjectdOriented Databases, ACM
Năm: 2000
4. Cluet, Sophie and Moerkotte, Guido. Nested Queries In Object Bases, In Fifth International Workshop on Database Programming Languages, Italy, 1995 Sách, tạp chí
Tiêu đề: Nested Queries In Object Bases
5. Han, Jia Liang. Optimizing Relational Queries in Connection Hypergraphs: Nested Queries, Views, and Binding Propagations. The VLDB Journal, 7, (1998), 1–11 Sách, tạp chí
Tiêu đề: Optimizing Relational Queries in Connection Hypergraphs: Nested Queries, Views, and Binding Propagations
Tác giả: Han, Jia Liang. Optimizing Relational Queries in Connection Hypergraphs: Nested Queries, Views, and Binding Propagations. The VLDB Journal, 7
Năm: 1998
6. Lê Mạnh Thạnh, Đoàn Văn Ban, Hoàng Bảo Hùng. Phương pháp ước lượng các truy vấn lồng trong cơ sở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối. Chuyên san Tạp chí Bưu chính Viễn thông và Công nghệ thông tin, “Các công trình nghiên cứu @ Triển khai Viễn thông và Công nghệ thông tin”, 14, (2005), 43–49 Sách, tạp chí
Tiêu đề: Phương pháp ước lượng các truy vấn lồng trong cơ sở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối". Chuyên san Tạp chí Bưu chính Viễn thông và Công nghệ thông tin, “Các công trình nghiên cứu @ Triển khai Viễn thông và Công nghệ thông tin
Tác giả: Lê Mạnh Thạnh, Đoàn Văn Ban, Hoàng Bảo Hùng. Phương pháp ước lượng các truy vấn lồng trong cơ sở dữ liệu hướng đối tượng bằng siêu đồ thị kết nối. Chuyên san Tạp chí Bưu chính Viễn thông và Công nghệ thông tin, “Các công trình nghiên cứu @ Triển khai Viễn thông và Công nghệ thông tin”, 14
Năm: 2005
7. Trigoni A. and Bierman G.M.. Inferring the Principal Type and the Schema Requirements of an OQL Query. In 18th British National Conference on Databases (BNCOD), (2001),185–201 Sách, tạp chí
Tiêu đề: Inferring the Principal Type and the Schema Requirements of an OQL Query
Tác giả: Trigoni A. and Bierman G.M.. Inferring the Principal Type and the Schema Requirements of an OQL Query. In 18th British National Conference on Databases (BNCOD)
Năm: 2001
8. Trigoni A.. Semantic Optimization of OQL Queries, Technical Report, Number 547, University of Cambridge, Computer Laboratory, UCAM@CL@TR@547, ISSN 1476@2986, 2002 Sách, tạp chí
Tiêu đề: Semantic Optimization of OQL Queries
9. Ullman J. D. : Principles of Database and Knowledge base Systems. Vol. I: Classical Database Systems, Computer Science Press. New York, 1988. Vol. II: The New Technologies, Computer Science Press. New York, 1989 Sách, tạp chí
Tiêu đề: Principles of Database and Knowledge base Systems

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