Khi mỗi thuộc tính trong các mối quan hệ là một thuộc tính phân loại, chúng ta có thể "bắt chước" các giải pháp IR bằng cách áp dụng các ýtưởng TF-IDF term-Frequency- inverse document fr
Trang 1 Empty Answer: câu truy vấn quá chọn lọc và không có kết quả nào thỏa mãn Khi đó sẽ có một danhsách xếp hạng tương đối phù hợp với các bộ dữ liệu mà không cần phải xác định các hàm được phânhạng mà bắt được sự mật thiết với truy vấn.
Many Answer: câu truy vấn quá rộng và kết quả trả về quá nhiều Trong trường hợp này, sẽ có tùychọn theo thứ tự phù hợp một cách tự động mà xếp hạng các bộ dữ liệu"có tầm quan trọng toàncầu" cao hơn và chỉ trả về những cái phù hợp nhất Một khách hàng duyệt một danh mục sản phẩm sẽthấy chức năng như vậy hấp dẫn
Tự động xếp hạng kết quả truy vấn phải xử lý câu truy vấn của người dùng (một truy vấn lựachọn tiếp tục), rồi mapping với Top-K query với một hàm ranking phụ thuộc vào các điều kiện củangười dùng
Vậy làm thế nào để làm cho nó có thể cho cơ sở dữ liệu quan hệ để tương thích với các chức năngxếp hạng từ IR để xử lý các vấn đề phân hạng cơ sở dữ liệu Khi mỗi thuộc tính trong các mối quan hệ
là một thuộc tính phân loại, chúng ta có thể "bắt chước" các giải pháp IR bằng cách áp dụng các ýtưởng TF-IDF (term-Frequency- inverse document frequency) là dựa trên tần số xảy ra các giá trị thuộctính trong cơ sở dữ liệu Tuy nhiên, không giống như các tài liệu văn bản, cơ sở dữ liệu chứa thông tin
số cũng như phân loại
II Các hàm ranking cho trường hợp Empty Answer
IDF Similarity
IDF Similarity (Inverse Document Frequency Similarity) là một chức năng phân hạng cơ sở dữliệu dựa trên các kỹ thuật truy xuất thông tin.IDF Similarity sử dụng tần số xuất hiện của các giá trịthuộc tính trong cơ sở dữ liệu
IDF là mở rộng của ý tưởng của TF-IDF.TF-IDF chỉ cho các thuộc tính phân loại IDF cho cácthuộc tính phân loại và thuộc tính số
Dựa vào khái niệm chuẩn TF-IDF, có những kế thừa và cải tiến để phù hợp cho dữ liệu hỗn tạp,không đồng nhất IDF Similarity hoạt động tốt cho một số ứng dụng phân hạng cơ sở dữ liệu, đôi khihiệu quả của nó là khá hạn chế
IDF Similarity không phải lúc nào cũng trả lại kết quả mong muốn
Ví dụ: "Trong một cơ sở dữ liệu nhà môi giới bất động sản, nhà cửa được xây dựng trong những
năm gần đây như năm 2000 và 2001 so với các năm trước đó như năm 1980 và 1981 Vì vậy,
Trang 2những năm gần đây có IDF nhỏ hơn Tuy nhiên, nhu cầu về nhà mới thường là nhiều hơn so vớinhững ngôi nhà cũ "
a IDF Similarity ho dữ liệu phân loại
Nếu cơ sở dữ liệu chỉ có thuộc tính phân loại, giải pháp đơn giản có thể được sử dụng là môphỏng kỹ thuật rút trích thông tin cosine nổi tiếng
Kĩ thuật rút trích thông tin:
• Q = tập các từ khóa
• Đối với mỗi giá trị w trong miền thuộc tính “Ak”, IDF(w) có thể được xác định như sau: IDF(w)=log(N/F(w)) với điều kiện “N” là số bộ dữ liệu trong cơ sở dữ liệu.F(w) là tần số các bộ dữ liệu trong cơ
sở dữ liệu với điệu kiện “Ak”=”w”
• TF (w, d) = Tần suất xuất hiện của w trong d
Cosine Similarity giữa tài liệu và câu truy vấn là được chuẩn hóa tích vô hướng của 2 véc – tơ tương ứng Cosine Similarity có thể được cải thiện bằng cách mở rộng quy mô mỗi thành phần với
nghịch đảo tần số tài liệu (IDF) của từ tương ứng (IDF (w) của một từ w được xác định như đăng nhập(N / F (w)) trong đó N là sốtài liệu, và F (w) là số lượng tài liệu trong đó w xuất hiện)
Cơ sở dữ liệu (chỉ thuộc tính minh bạch)
• Tập các từ T=<t1,……tm>
• Câu truy vấn Q=<q1,… qm> với điều kiện “WHERE A1=q1 AND … AND Am=qm “, Ai là các thuộctính
• IDFk(t)=log(n/Fk(t)) (N là số lượng tài liệu trong CSDL)
• Fk (t) tần suất của tài liệu trong CSDL mà Ak =t
• Với mỗi cặp thuộc tính ‘u’ and ‘v’ trong Ak
•
) , ( )
=
=
Sự giống nhau giữa một bộ T và một truy vấn Q là tổng hệ số tương
tự tương ứng trên tất cả các thuộc tính
IDF Similarity có thể rất hiệu quả trong các ứng dụng nhất định xếp hạng cơ sở dữ liệu
Ví dụ:
QUERRY:
SELECT *
2
Trang 3FROM R
WHERE FirstName = James and LastName = Goldfish and City = London
IDF 1 (FirstName) IDF 2 (LastName) IDF 3 (City)
• IDF1(FirstName1) = log(N/F1(John)) = log(6/1) = 0.78
• IDF1(FirstName4) = log(N/F1(James)) = log(6/2) = 0.48
Chúng ta thấy rằng tên James - xuất hiện thường xuyên hơn (hơn John) trong cơ sở dữ liệu – có IDF nhỏ hơn.
• Similarity bộ T = <James, Smith, London> với truy vấn Q:
• SIM(T,Q) = = S 1 (t 1 ,q 1 ) + S 2 (t 2 ,q 2 ) + S 3 (t 3 ,q 3 )= 0.48 + 0 + 0.30= 0.78
• Similarity bộ K = <James, Brown, London> với truy vấn Q:
• SIM(K,Q)= S 1 (k 1 ,q 1 ) + S 2 (k 2 ,q 2 ) +S 3 (k 3 ,q 3 )= 0.48 + 0 + 0.30 = 0.78
• Similarity bộ L = <Steven, Goldfish, London> với truy vấn Q:
• SIM(L,Q)= S 1 (l 1 ,q 1 ) + S 2 (l 2 ,q 2 ) + S 3 (l 3 ,q 3 ) = 0 + 0.78 + 0.30 =1.08 -> Similarity lớn hơn.
b IDF Similarity cho dữ liệu số
Vấn đề: Nếu u và v (giá trị của một thuộc tính số A) rất gần nhau, nhưng riêng biệt, S(u, v) không chính xác nhận giá trị 0.
Giải pháp: Hệ số tương tự S(u, v) là hàm tỷ lệ nghịch với khoảng cách giữa u và v (khoảng cách
• Những giá trị ở sát biên của hai bucket cạnh nhau là gần giống nhau nhưng không cùng một cụm
• Bao nhiêu buckets là hợp lý?
• Giá trị ở các bucket khác nhau là hoàn toàn không giống nhau, bất chấp khoảng cách
Ví dụ: Câu truy vấn: Select nhanvien from nhanvien_db where sonamcongtac = 4.
Trang 4Phân cụm với dữ liệu kiểu số là không tốt => Cần giải pháp mới
{t1, t2… tn} là các giá trị của thuộc tính A trong CSDL Với mỗi giá trị t:
Định nghĩa similarity giữa t và q:
H là tham số bandwidth, là độ lệch chuẩn
c Các kế thừa của IDF similarity
Hãy xem xét kịch bản mà các dữ liệu số tương tự như dữ liệu phân loại:
• Có n1 bộ trong cơ sở dữ liệu với giá trị t và n-n1 bộ còn lại có giá trị khác t
• Nếu q thuộc tập các bộ có giá trị khác t thì dễ dàng nhận thấy rằng S (t, q) là gần bằng 0
• Nếu q cũng có t giá trị, S (t, q) tiến gần tới log (n/n1) như trong dữ liệu phân loại
• Cho đến nay các mô hình truy vấn có dạng Ak = qk
Cho câu truy vấn q có C điều kiện dạng “Ak IN Qk” và Q là một tập các giá trị trong khoảng [lb, ub].Khi đó:
• Gọi T = <t1, t2, …, tm> là bộ bất kỳ
• Similarity giữa tk và Qk là hàm Similarity tối đa:
Cho đến giờ ta chỉ sử dụng mô hình query mà giá trị của tất cả các thuộc tính đã được xác định
Để giải quyết được vấn đề “Many Answers” ta phải sử dụng cả những thuộc tính bị bỏ quên (missing
attributes) để tháo gỡ vấn đề
QF Similarity
Dù IDF similarity có rất hữu ích trong nhiều ứng dụng phân hạng cơ sở dữ liệu, nhưng nó vẫn có
những khuyết điểm QF Similarity (Query frequencies) là chức năng phân hạng khai thác khối lượng
thông tin để khắc phục những khuyết điểm đó QF Similarity sử dụng tần số xuất hiện của các giá trịthuộc tính trong khối lượng công việc Tầm quan trọng của các giá trị thuộc tính có liên quan đến tần
số của sự xuất hiện trong khối lượng công việc
Các bước tiến hành:
Ghi lại tần số của giá trị thuộc tính xuất hiện trong workload
Hãy để hệ số tương tự phụ thuộc vào những tần số này
Với dữ liệu không điều kiện
Max
RQF
q RQF q
QF frequency
Trong đó RQF (q) tần suất xuất hiện của giá trị q của thuộc tính A trong những câu truy vấn củaworkload
RQFMax là tần suất xuất hiện lớn nhất trong workload
Định nghĩa S (t, q) = QG (q) nếu q=t và q=0 nếu ngược lại
Ví dụ:
• Cho một workload với các thuộc tính xuất hiện:
4
Trang 5• A={1,1,2,3,4,5,5,5,5,2}
• Nếu câu query cho A=1
• QF(1) = RQF(1)/RQFMax = 2/4
• Nếu câu truy vấn cho giá trị một thuộc tính không nằm trong workload thì QF=0
a QF Similarity của các thuộc tính khác nhau
Vấn đề: trong một CSDL về ô tô, một chiếc HONDA ACCORD và một chiếc TOYOTACAMRY rất khác nhau nếu đo bằng các hàm tương đồng trước đây, vì hệ số S(TOYOTA, HONDA) vàS(ACCORD, CAMRY) đều bằng 0 Tuy nhiên trực quan ta thấy chúng khá giống nhau: đều là dòngsedans, giá ngang nhau, thị phần trên thị trường cũng giống nhau
Để giải quyết vấn đề, ta cần các cặp hệ số tương đồng khác 0 thậm chí khi chúng ở hai nhóm khácnhau
Ví dụ: S (TOYOTA, HONDA) = 0.8 và S(TOYOTA, FERRARI)=0.1
Về trực quan khi cặp giá trị t<>u thường xuất hiện cùng nhau trong workload thì chúng có sựtương đồng
Ví dụ: phân tích mệnh đề IN trong các câu truy vấn: Nếu một cặp giá trị thường suất hiện cùngnhau trong workload thì chúng tương đồng: “MFR IN {TOYOTA, HONDA, NISSAN}”
Những truy vấn gần đây của một người thường xuyên có TOYOTA và HONDA SIM=0.8.Similarity giữa hai cặp giá trị thuộc tính khác nhau có thể lấy từ workload.Ví dụ:
S (TOYOTA CAMRY, HONDA ACCORD)
Similarity giữa tài liệu và câu query được định nghĩa bởi hệ số jaccard tỷ lệ với QF(q):S(t,q)=J(W(t),W(q))QF(q)
) ( )
(
) ( )
( )
( ), (
q W t
W
q W t
W q
W t W
W (t) là tập query con trong workload W mà giá trị t có trong mệnh đề IN
d QF Similarity cho kiểu dữ liệu phân loại
RQF (q) -> Nguyên tần số xuất hiện của giá trị q của thuộc tính A trong khối lượng công việc
RQF(Max)
(q) RQF (q)
Trang 6Paula Brown Athens
Câu truy vấn Q: select * from R where FirstName = Jame and LastName = Brown and City = London.
Truy vấn theo yêu cầu của người sử dụng trong quá khứ
RQF(q) FirstName
• John -> RQF (John) = 5
• Paula -> RQF (Paula) = 8
• James -> RQF (James) = 4
RQFMax: RQFMax= 8 (QF(John)>QF(James))
QF (John) = RQF(John) / RQFMax = 5 / 8 = 0.625
QF (James) = RQF(James) / RQFMax = 4 / 8 = 0.5
e QF Similarity của dữ liệu số
Giá trị số cũng có thể được hưởng lợi từ phân tích tần số truy vấn
Giống như trong IDF() chúng ta phải tính toán một hàm FQ() truy vấn tần số để xử lý giá trị gầnnhư các giá trị quan trọng
QF-IDF Similarity
QF hoàn toàn dựa trên khối lượng công việc (workload), nó không hoàn toàn sử dụng dữ liệu.Điều này có thể là một bất lợi trong các trường hợp mà khối lượng công việc không đầy đủ hoặc khôngđáng tin cậy
QF-IDF Similarity là biện pháp khắc phục nhưng trường hợp như vậy Đây là sự kết hợp giữa QFSimilarity và IDF Similarity
QFIDF similarity:
• S (t,q)=QF(q) *IDF(q) khi t=q trong đó
1) + (RQFMax
1) + (RQF(q)
= QF(q)
• Thu được một giá trị nhỏ, nhưng khác 0 nếu giá trị chưa bao giờ được tham chiếu trong workload
• Kết quả cải thiện đáng kể trong một số trường hợp
III Các hàm xếp hạng trường hợp “Many Answers”
Để xếp hạng các kết quả của một truy vấn tạo ra Many Answer, IDF Similarity và QF Similarityđôi khi có thể gặp phải các vấn đề sau đây: các bộ dữ liệu có thể có cùng một số điểm giống nhau và do
đó có thự tự tùy tiện Ví dụ, hãy xem xét một truy vấn Q với một điều kiện lựa chọn hình thức "A1 =
q1 Ai = qi", mà i <m (tức là một số các cột, Ai+1, , Am đã không được mô tả trong truy vấn).Giả sử
bộ dữ liệu trong cơ sở dữ liệu thỏa mãn điều kiện lựa chọn Chúng ta lưu ý rằng sự trù tính của mỗi các
bộ dọc theo các thuộc tính quy định trong truy vấn là như nhau, tức là <q1, …, qi> Như vậy SIM (T,
6
Trang 7Q,) cho mỗi kết quả trả về bộ dữ liệu T sẽ là như nhau, cho dù chúng ta sử dụng IDF Similarity hoặc
QF Similarity
Vấn đề này cũng có thể phát sinh trong các vấn đề Empty Answer: một hoặc hai bộ dữ liệu trêncùng có thể có điểm tương tự riêng biệt, tiếp theo là một nhóm lớn các bộ dữ liệu chia sẻ cùng một sốđiểm tương tự Nói chung, nếu chúng ta chỉ sử dụng các thuộc tính quy định trong truy vấn cho cácmục đích xếp hạng, các chức năng tương tự của chúng ta sẽ phân vùng cơ sở dữ liệu vào một vài phânlớp tương đương, mà các bộ dữ liệu trong mỗi phân lớp có cùng một số điểm tương tự
Để giải quyết mối quan hệ giữa các bộ trong mỗi lớp, cần thiết phải nhìn các thuộc tính quy định
xa hơn trong truy vấn, tức là các thuộc tính bị thiếu Điều tra các thuộc tính vượt ra ngoài các thuộctính đã được quy định bởi truy vấn đặc biệt khó khăn khi chức năng xếp hạng không biết những gì củangười sử dụng tham chiếu cho các thuộc tính còn thiếu Chức năng xếp hạng cuối cùng có thể là mộtthành phần của lượng các giá trị của thuộc tính còn thiếu.Như vậy, vấn đề là làm thế nào để chúng ta cónguyên tắc xác định những lượng này?
Cách tiếp cận là để xác định lượng của giá trị thuộc tính bị thiếu phản ánh "tầm quan trọngtoàn cục" của chúng cho mục đích phân hạng, kể từ khi chúng ta không thể làm chúng liên quan với sự
ưu tiên của người sử dụng đưa ra các truy vấn mô tả Ví dụ, giả sử chúng ta tìm kiếm nhà với bốnphòng ngủ trong một cơ sở dữ liệu nhà môi giới bất động sản Vì có nhiều gia đình đáp ứng điều kiệnnày, chúng ta kiểm tra các thuộc tính khác hơn so với số lượng phòng ngủ để xếp hạng các tập hợp kếtquả Nếu chúng ta biết rằng "BELLEVUE" là một vị trí quan trọng hơn "“CARNATION" trong một ýnghĩa toàn cục, chúng ta sẽ xếp hạng nhà bốn phòng ngủ ở Bellevue cao hơn nhà bốn phòng ngủ trongCARNATION
Chúng ta sử dụng lượng thông tin workload để xác định tầm quan trọng toàn cục của giá trị thuộctính bị thiếu Theo trực giác là nếu Bellevue thực sự là một khu phố nổi tiếng, workload sẽ chứa nhiềucác truy vấn hơn yêu cầu các nhà Bellevue so với các nhà CARNATION Mục đích chính là chúng taxác định tầm quan trọng toàn cục của giá trị thuộc tính bị thiếu tk như log (QFk (tk)), và mở rộng QFSimilarity sử dụng log (QFk (tk)) để giải quyết mối quan hệ trong mỗi lớp tương đương (lớn hơn sốlượng này, cao hơn thứ hạng của các bộ), khi tổng kết trên các thuộc tính thiếu
Mở rộng IDF Similarity bằng cách sử dụng giá trị IDF thay vì giá trị QF của các thuộc tính cònthiếu để giải quyết vấn đề đưa ra Một khả năng là để xếp hạng các bộ cao hơn được nối với nhau nếugiá trị thuộc tính còn thiếu của chúng có IDF lớn, tức là xuất hiện không thường xuyên trong cơ sở dữliệu Nhưng điều này làm tăng các trường hợp không mong muốn khi mà, tất cả các cái khác là nhưnhau, các ngôi nhà xuất hiện trong các khu dân cư không phổ biến được xếp hạng trước khi ngôi nhàxảy ra trong khu dân cư phổ biến hơn Một chiến lược khác là để xếp hạng các bộ cao hơn được nối vớinhau nếu giá trị thuộc tínhcòn thiếu của chúng có IDF nhỏ, tức là xảy ra thường xuyên hơn trong cơ sở
dữ liệu Điều này sẽ làm việc tốt trong ví dụ nhà môi giới bất động sản ở trên, vì các ngôi nhà trongkhu dân cư phổ biến hơn sẽ được xếp hạng cao hơn so với các ngôi nhà trong các khu phố lạ Mặc dùmạnh hơn so với các chiến lược trước, nhưng có những tình huống mà phương pháp này cũng có thểsai Ví dụ, giả sử cơ sở dữ liệu có một thuộc tính Boolean "Deck" Vì chỉ có một phần nhỏ trong nhà có
“deck”, chức năng xếp hạng này sẽ xếp hạng cao hơn ngôi nhà mà không có “deck”, đó là trái với trựcgiác khi mà “deck” thường là một đặc điểm mong muốn
Trang 8Để xác định hệ số tương tự cho QF Similarity giữa tất cả các cặp giá trị u và
v thuộc tính bất kỳ Chúng ta tránh yêu cầu bậc hai về không gian / thời giantrong kích thước của miền giá trị của A bằng cách chỉ lưu trữ các hệ số tương tự ởtrên một ngưỡng nhất định Chúng có thể có hiệu quả tính toán bằng cách sửdụng một thuật toán phổ biến
Query-processing (Thành phần xử lý truy vấn)
Nhiệm vụ chính của thành phần này là với truy vấn Q và 1 số nguyên K để tìmkiếm 1 cách hiệu quả K bộ đầu tiên(Top-K) từ CSDL bằng cách sử dụng một trongcác chức năng phân hạng Giả định rằng chức năng phân hạng đã được đưa vào ởthành phần tiền xử lý rồi
Ở đây chúng ta tập trung vào giải quyết vấn đề Many Answer
Mục tiêu là sử dụng các chức năng có sẵn của 1 DBMS SQL truyền thống đểgiải quyết vấn đề Top-K này Vì vậy chúng tôi quyết định không áp dụng các kỹthuật xây dựng các chỉ số đa chiều đặc biệt cho các không gian Similarity tuỳ lý.Một cách tiếp cận khác là sử dụng truy vấn danh sách, 1 cấu trúc dữ liệu phổ biếntrong truy xuất thông tin
Thực hiện xử 1ý truy vấn đơn giản
-Inputs:
8
Trang 9 1 bảng R trong cơ sở dữ liệu với m cột phân loại, nhóm trên cột khoá TID, mà cácchỉ số trên CSDL chuẩn tồn tại trên 1 tập hợp con của các cột
1 biểu thức truy vấn mà các điều kiện m giá trị đơn có dạng : Ak = qk,…và 1 sốnguyên K
- Chức năng Similarity: Giả định một chức năng Similarity rất đơn giản mà chúng tagọi là Similarity chồng ché Chức năng này đo lường số giá trị trong các tuple phùhợp với các giá trị tương ứng trong truy vấn
- Output: K bộ đầu tiên trong bảng R có liên quan đến truy vấn Q
Cách thực hiện truyền thống của biểu thức Top-K
SELECT TOP K R.*
FROM R ORDER BY
((CASE WHEN R.A1 = q1 THEN 1 ELSE 0 END) + (CASE WHEN R.A2 = q2 THEN 1 ELSE 0 END) +
Thực hiện truy vấn Top-K dựa trên chỉ số
Trong hầu hết các hệ thống SQL, các thuật toán trên có thể không tận dụng bất
kỳ chỉ số có sẵn và phải quét tất cả bộ của cơ sở dữ liệu Tuy nhiên, chúng tôiquan sát thấy rằng các chức năng Overlap Similarity (trên thực tế, tất cả các chứcnăng tương tự thảo luận trong bài viết này) đáp ứng một thuộc tính đơn điệu 1cách hữu ích : nếu T và U là hai bộ dữ liệu như vậy cho tất cả các k, Sk (tk, qk) ≤
Sk(uk, qk), thì SIM (T, Q) ≤ SIM (U, Q) Điều này cho phép chúng ta thích ứng Thuật
Trang 10toán Threshold của Fagin (TA) và các dẫn xuất của nó để lấy Top-K bộ mà khôngcần phải xử lý tất cả các bộ dữ liệu của cơ sở dữ liệu.
Để thích ứng với hỗ trợ kỹ thuật cho các mục đích của chúng ta, chúng ta phảithực hiện hai loại phương pháp truy cập: (a) truy cập có thứ tbất kỳ thuộc tính Ak,trong đó TIDs các bộ dữ liệu có thể có truy xuấ hiệu quả một-một theo thứ tựgiảm giống nhau như của giá trị thuộc tính A từ qk, và (b) truy cập ngẫu nhiên,trong đó toàn bộ các bộ tương ứng với bất kỳ TID cho có thể truy xuất hiệu quả.Tóm lại, thuật toán của Fagin thực hiện truy cập sắp xếp dọc theo mỗi thuộc tínhtrong "lock-step", lấy các bộ dữ liệu hoàn toàn tương ứng với TIDs bằng cách sửdụng truy cập ngẫu nhiên, và duy trì một bộ đệm của Top-K bộ cho lúc sau Thuộctính đơn điệu của các chức năng similarity cho phép sử dụng một điều kiện dừngtrước, do đó các thuật toán có thể phát hiện rằng Top-K bộ đã được lấy ra trướckhi tất cả các bộđược xử lý
Chúng tôi khuyến khích các chỉ số cơ sở dữ liệu có sẵn như cây B + để thựchiện có hiệu quả hai phương pháp truy cập Vì nó không thực tế để giả định rằngchỉ số luôn luôn hiện diện trên tất cả các thuộc tính được chỉ định bởi bất cứ truyvấn nào, chúng ta thích ứng với một dẫn xuất của TA mà làm việc ngay cả khi truycập sắp xếp không có sẵn trên một số thuộc tính.Kết quả sự thích ưng, được gọi làthuật toán Threshold-Index, ITA
Giả sử rằng các chỉ số có trên các cột A1, , Ap và không có trên các cột
Ap+1, , Am.Bản chất của ITA là tìm kiếm chỉ số trên orderings L1, , Lp mà mỗi Lk
được định nghĩa như là thứ tự của các bộ mà các bộ với Ak = qk trước các bộ dữliệu với Ak <> qk Chúng ta sử dụng các thuật ngữ sau đây: (a) TupleLookup (TID),
mà các bộ hoàn toàn được cung cấp TID được lấy từ R, và (b)IndexLookupGetNextTID (Lc), trong đó đưa ra một thứ tự Lk của một Ak, phù hợpvới TID tiếp theo của R được lấy ra bằng cách sử dụng các chỉ số có sẵn trên cột
đó Các hoạt động này tương đương với truy cập ngẫu nhiên và truy cập sắp xếpđược mô tả trước đó.TupleLookup (TID) có thể được thực hiện bởi các chỉ sốtruyền thống trong một cơ sở dữ liệu quan hệ.Hiệu quả thực hiệnIndexLookupGetNextTID (Lc) bằng cách sử dụng sự hỗ trợ lập chỉ số trong cơ sở dữliệu quan hệ đòi hỏi phải cẩn thận nhiều hơn
Tìm kiếm chỉ số trên L1, , Lp có thể được xen kẽ hoặc theo thứ tự trong nhiềucách dựa trên chẩn đoán hoặc thống kê dữ liệu.Bước quan trọng nhất là điều kiệndừng, để xác định rằng không cần tìm kiếm chỉ số trên bất kỳ cột nào nữa
Điều kiện dừng: Xác định một bộ giả định bằng cách lấy giá trị "hiện tại" a1, ,
ap cho A1, , Ap tương ứng với chỉ số tìm kiếm trên L1, , Lp và sử dụng các giátrị qp+1, , qm cho các cột còn lại.Điều này tạo ra tuple tốt nhất chúng ta có thể hy
10
Trang 11vọng tìm thấy trong dữ liệu chưa được tìm Nếu sự giống nhau của bộ giả thuyếtnày để truy vấn là không nhiều hơn các bộ trong bộ đệm Top-K với sự giống nhauthấp nhất, thuật toán kết thúc thành công.
Mặc dù ITA không đòi hỏi các chỉ số trên tất cả các cột được tham chiếu bởitruy vấn, nhưng vài chỉ số ngụ ý rằng các thuật toán có thể cần phải tra cứu nhiều
bộ hơn bằng cách sử dụng TIDs trước khi chấm dứt Chúng ta cũng lưu ý rằngcùng một bộ có thể được lấy nhiều lần thông qua TID tra cứu vì TID của nó có thểgặp phải nhiều lần trong quá trình tra cứu chỉ số dọc theo các cột khác nhau.Những bất lợi chính của phương pháp này là nó dựa theo truy cập ngẫu nhiên, vàđiều này có thể có một ảnh hưởng xấu đến hiệu suất nếu chỉ số cần tra cứu quánhiều
Thực hiện xử l truy vấn tổng quát hơn
Sự hiện diện bảng QFIDF: Hãy xem xét xử lý truy vấn khi sử dụng một trong các chức năng xếphạng tổng quát hơn được mô tả tại mục 3 và 4 Ngoài các bảng cơ sở R, một số bảng nhỏ phụ trợ, mỗi