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

mô hình tối ưu hóa truy vấn hai pha trong cơ sở dữ liệu và ứng dụng

77 560 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

Định dạng
Số trang 77
Dung lượng 852,35 KB

Nội dung

Bộ tối ưu hóa thực hiện hai bước này để tạo ra một cây truy vấn tiền xử lý, xác định những yếu tố như thứ tự thực hiện các phép toán và chiến lược thực hiện mỗi phép toán.. Số hóa bởi T

Trang 1

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN VĂN CHUNG

MÔ HÌNH TỐI ƯU HÓA TRUY VẤN HAI PHA

TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

Chuyên ngành: Khoa học máy tính

Mã số: 60 48 01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Người hướng dẫn khoa học: PGS.TS LÊ HUY THẬP

Thái Nguyên - 2013

Trang 2

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện theo sự hướng dẫn khoa học của thầy PGS TS Lê Huy Thập

Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này

Người Cam Đoan

Nguyễn Văn Chung

Trang 3

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn đến thầy giáo PGS TS Lê Huy Thập

đã định hướng, hướng dẫn và giúp đỡ tôi rất nhiều về mặt chuyên môn trong quá trình tìm hiểu và thực hiện luận văn

Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ và truyền đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm cao học ở trường Đại học Công nghệ thông tin và truyền thông Thái Nguyên

Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên, quan tâm, giúp đỡ tôi hoàn thành khóa học và luận văn

Thái nguyên, tháng 09 năm 2013

Tác giả Nguyễn Văn Chung

Trang 4

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

MỤC LỤC iii

DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT v

DANH MỤC CÁC BẢNG vi

DANH MỤC CÁC HÌNH VẼ vii

MỞ ĐẦU 1

1 Đặt vấn đề 1

2 Đối tượng và phạm vi nghiên cứu 1

3 Hướng nghiên cứu của đề tài 1

4 Những nội dung nghiên cứu chính 1

Chương 1: CƠ SỞ LÝ THUYẾT 3

1.1 Giới thiệu về logic 3

1.2 Tổng quan về CSDL phân tán 9

1.2.1 Không gian tìm kiếm 10

1.2.2 Các chiến lược tìm kiếm 13

1.2.3 Mô hình chi phí phân tán 15

1.2.4 Các dạng chi phí song song và mô hình chi phí song song trên bộ tối ưu hóa truy vấn 22

1.3 Kết luận chương 1 25

Chương 2: MÔ HÌNH TỐI ƯU HÓA TRUY VẤN HAI PHA 26

2.1 Mô hình tối ưu hóa truy vấn hai pha JOQR 26

2.1.1 Cây truy vấn tiền xử lý 26

2.1.2 Cây toán tử 29

2.2 Tối ưu hóa giai đoạn JOQR 31

Trang 5

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

2.2.1 Cực tiểu hóa chi phí phân mảnh lại 32

2.2.2 Khả phân mảnh và toán tử cảm thuộc tính 34

2.2.3 Bài toán tối ưu hóa 37

2.3 Kết luận chương 2 48

Chương 3: CHƯƠNG TRÌNH THỬ NGHIỆM 49

3.1 Ứng dụng tại trường Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc (Dạng demo) 49

3.1.1 Giới thiệu CSDL của trường Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc 49

3.1.2 Cực tiểu hóa chi phí phân mảnh lại CSDL tại mục 3.1.1 62

3.2 Kết luận chương 3 66

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN 67

TÀI LIỆU THAM KHẢO 68

Trang 6

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT

DBMS (Database management system)

ESPS (Executor Sever Process)

JOQR (Join Ordering and Query Rewriting)

LAN (Local Area Network)

QEP (Query Execution Plan)

SPJ (Selection Projection Joint)

SQL (Structured Query Language)

WAN (Wide area network)

TW (Total Work)

RT (Response Time)

MC (Memory Consumption)

Trang 7

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

DANH MỤC CÁC BẢNG

Bảng 1-1 Bảng chân trị các phép toán mệnh đề 4 Bảng 1-2 Thứ tự ưu tiên của các phép toán 4

Trang 8

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

DANH MỤC CÁC HÌNH VẼ

Hình 1-1 Quá trình tối ưu hoá vấn tin 9

Hình 1-2 Sơ đồ kết nối các quan hệ 11

Hình 1-3 Các cây nối tương đương 12

Hình 1-4 Các loại cây 13

Hình1–5 Xây dựng tối ưu hoá một cách đơn định theo kiểu quy hoạch động 14

Hình 1-6 Hành động của thể tối ưu hoá trong một chiến lược ngẫu nhiên hoá 15

Hình 1-7 Truyền dữ liệu trong câu vấn tin 17

Hình 2-1 Cây truy vấn tiền xử lý 27

Hình 2-2 Cây toán tử tương ứng với cây trong hình 2-1 31

Hình 2-3 Sơ đồ phân mảnh ngang dữ liệu tại các nút 33

Hình 2-4 Các cây truy vấn khác nhau về phân hoạch dữ liệu, đường nét đứt cho thấy phải phân bố lại quan hệ 33

Hình 2-5 Cây toán tử tương ứng với câu truy vấn 37

Hình 2-6 Cây gốc và các phương án tô màu 39

Hình 2-7 Đồ thị vấn tin 42

Hình 2-8 Cây nối của đồ thị vấn tin trên hình 2-7 43

Hình 2-9 Ảnh hưởng của thứ tự phép nối đến chi phí phân mảnh ngang 43

Hình 3-1 Sơ đồ kết nối các quan hệ 53

Hình 3-2 Màn hình chính của chương trình 54

Hình 3-3 Cây truy vấn ban đầu của ví dụ 1 55

Hình 3-4 Cây sau khi sắp lại phép nối ví dụ 1 55

Hình 3-5 Màn hình nhập câu truy vấn 56

Hình 3-6 Câu truy vấn ban đầu và sau biểu diễn lại ví dụ 1 56

Hình 3-7 Kết quả của câu truy vấn ví dụ 1 57

Hình 3-8 Cây truy vấn ban đầu của ví dụ 2 58

Trang 9

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 3-9 Cây sau khi sắp lại phép nối ví dụ 2 58

Hình 3-10 Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 2 59

Hình 3-11 Kết quả của câu truy vấn ví dụ 2 59

Hình 3-12 Cây truy vấn ban đầu của ví dụ 3 60

Hình 3-13 Cây sau khi xếp lại phép nối của ví dụ 3 61

Hình 3-14 Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 3 61

Hình 3-15 Kết quả của câu truy vấn ví dụ 3 62

Hình 3-16 Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 1 62

Hình 3-17 Cây gốc và các phương án tô màu của ví dụ 1 63

Hình 3-18 Giao diện pha 2 của ví dụ 1 63

Hình 3-19 Giao diện kết quả pha 2 của ví dụ 1 64

Hình 3-20 Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 2 64

Hình 3-21 Cây gốc và các phương án tô màu của ví dụ 2 65

Hình 3-22 Giao diện pha 2 của ví dụ 2 65

Hình 3-23 Giao diện kết quả pha 2 của ví dụ 1 66

Trang 10

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

MỞ ĐẦU

1 Đặt vấn đề

Tối ưu hóa vấn tin là quá trình tìm một phương án thực hiện câu vấn tin QEP (Query Execution Plan) tối ưu (theo nghĩa hạ thấp tối đa hàm chi phí, hoặc cực đại hàm lợi ích ở một dạng nào đó) Tối ưu câu truy vấn trong cơ sở

dữ liệu song song bằng mô hình tối ưu hóa truy vấn hai pha bao gồm:

i Sắp xếp lại thứ tự các phép nối

ii Biểu diễn lại cây truy vấn

Bộ tối ưu hóa thực hiện hai bước này để tạo ra một cây truy vấn tiền xử

lý, xác định những yếu tố như thứ tự thực hiện các phép toán và chiến lược

thực hiện mỗi phép toán Bộ tối ưu sẽ triển khai các mô hình và giải thuật song song để tìm kiếm một phương án tốt nhất cho việc thi hành song song

2 Đối tượng và phạm vi nghiên cứu

Các biểu thức logic

Cơ sở dữ liệu phân tán

Xử lý song song và phân tán

3 Hướng nghiên cứu của đề tài

Các dạng chi phí song song

Nghiên cứu mô hình tối ưu hóa hai pha

4 Những nội dung nghiên cứu chính

Luận văn được trình bày trong 3 chương, có phần mở đầu, phần kết luận, phần mục lục, phần tài liệu tham khảo

Chương 1: Cơ sở lý thuyết

Chương 2: Mô hình tối ưu hóa truy vấn hai pha

Chương 3: Chương trình thử nghiệm

Kết luận và hướng phát triển của luận văn

Trang 11

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

5 Phương pháp nghiên cứu

Nghiên cứu kỹ các kiến thức, chủ đề có liên quan đến đề tài

Nghiên cứu các mô hình chi phí song song và mô hình chi phí song song trên bộ tối ưu hóa truy vấn

Nắm vững các kiến thức cơ bản của tối ưu hóa hai pha

6 Ý nghĩa khoa học của đề tài

Luận văn giúp cho việc tối ưu hóa câu truy vấn phân tán bằng phương pháp hai pha

Trang 12

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Chương 1: CƠ SỞ LÝ THUYẾT

1.1 Giới thiệu về logic

1.1.1 Khái niệm về mệnh đề và chân trị

Một mệnh đề là một phát biểu nào đó mà chỉ cho hai giá trị: True hoặc False Giá trị True, hoặc False của một mệnh đề được gọi là chân trị của mệnh

đề Chân trị True được viết là 1, chân trị False được viết là 0

Ví dụ 1.1.2: "Số chẵn chia hết cho hai"

Các mệnh đề sơ cấp thường được gắn với các ký hiệu là các ký tự viết thường: p, q, r, mà ta gọi là các biến mệnh đề hay biến logic

Trang 13

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Bảng 1-1 Bảng chân trị các phép toán mệnh đề

1.1.5 Thứ tự ưu tiên của các phép toán logic

Thứ tự ưu tiên của các phép toán logic được liệt kê theo mức ưu tiên từ trên xuống dưới, từ trái sang phải ở bảng 1-2:

Bảng 1-2 Thứ tự ưu tiên của các phép toán

Ký hiệu phép toán Nghĩa của phép toán

Trang 14

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

P = E, F G, (G H) ( G E), ; trong đó P, E, F, G, H là các biểu thức logic

Bảng chân trị của các biểu thức logic là bảng liệt kê chân trị có thể có theo mọi khả năng chân trị của các biến mệnh đề có trong biểu thức

Hai biểu thức logic E và F được gọi là tương đương và viết E F khi và chỉ khi E và F luôn có cùng chân trị

Để kiểm tra xem hai biểu thức logic có tương đương với nhau hay không chúng ta dựa vào bảng chân trị hay bằng phương pháp chứng minh logic

Ví dụ 1.1.6:

Cho hai biểu thức logic E = p q và F = p q thì E F

Biểu thức logic E được gọi là hằng True nếu chân trị của E luôn luôn là

Trang 15

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Trang 16

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

1.1.8 Quy tắc thay thế tương đương

Cho E là một biểu thức logic, nếu thay thế một biểu thức con của nó bởi một biểu thức tương đương với biểu thức con đó, biểu thức logic E' mới nhận được sẽ tương đương với E

Ví dụ 1.1.10:

E = p q

Vì q q, do đó ta có thể thay thế q bởi q và được

E' = = p q

Dùng bảng chân trị cho E và E' ta sẽ thấy E E'

1.1.9 Quy tắc bất biến đối với biểu thức logic hằng True

Cho E là một biểu thức logic hằng True, nếu thay thế một biến mệnh đề

p nào đó trong E bởi một biểu thức logic bất kỳ ta sẽ nhận được biểu thức logic E' mới cũng là hằng True

Ví dụ 1.1.11:

E = (p q) ( p q) thì E 1(E là hằng True)

Bây giờ ta thay thế q trong E bởi q r ta sẽ được:

E' = (p (q r)) ( p (q r)) theo quy tắc 2 ta cũng có E' 1

1.1.10 Biểu thức hội cơ bản

Biểu thức logic F = F (p1, p2, ., pn), trong đó pi (i = 1 ,n) là các biến mệnh đề sơ cấp, được gọi là biểu thức hội cơ bản, nếu:

Trang 17

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

F = q1 q2 qn : với qi = pi hoặc qi = pi (i = 1 ,n)

Ví dụ 1.1.12:

F(x, y, z) = x y z, trong đó x, y, z là các biến mệnh đề sơ cấp

1.1.11 Biểu thức tuyển cơ bản

Biểu thức logic E = E (p1, p2, ., pn), trong đó pi (i = 1 ,n) là các biến mệnh đề sơ cấp, được gọi là biểu thức tuyển cơ bản, nếu:

Định lý 1.1.1:

Mọi biểu thức logic E (p1, p2, , pn) đều tương đương với một biểu thức tuyển chính tắc duy nhất Tức E (p1, p2, ., pn) E1 E2 Em (duy nhất) với Ei (i = 1 ,m) là các biểu thức hội cơ bản

Ei = q1 q2 qn với qi = pi hoặc qi = pi (i = 1 ,n)

1.1.13 Biểu thức hội chính tắc

Biểu thức logic F = F (p1, p2, ., pn), trong đó pi (i = 1 ,n) là các biến mệnh đề sơ cấp, được gọi là dạng hội chính tắc, nếu:

Trang 18

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

F = F1 F2 Fn : với Fi (i = 1 ,n) là biểu thức tuyển cơ bản của các pi

Ví dụ 1.1.15:

F(p1, p2, p3) = (p1 p2 p3) (p1 p2 p3) (p1 p2 p3), là biểu thức tuyển chính tắc vì F1 = (p1 p2 p3), F2 = (p1 p2 p3), F3 = (p1 p2 p3) là các biểu thức tuyển cơ bản

Định lý 1.1.2:

Mọi biểu thức logic F (p1, p2, , pn) đều tương đương với một biểu thức hội chính tắc duy nhất Tức F (p1, p2, , pn) F1 F2 Fm (duy nhất) với Fi (i = 1 ,m) là các biểu thức tuyển cơ bản

Ei = q1 q2 qn với qi = pi hoặc qi = pi (i = 1 ,n)

1.2 Tổng quan về CSDL phân tán

Tối ưu hóa vấn tin là tìm phương án thực hiện câu vấn tin để tiêu tốn ít nhất thời gian hoặc kinh phí (một hàm mục tiêu nào đó) Thể tối ưu hóa vấn tin, là một phần mềm chịu trách nhiệm thực hiện tối ưu hóa câu vấn tin, nó được tạo ra bới ba thành phần: Không gian tìm kiếm, mô hình chi phí và chiến lược tìm kiếm (xem hình l-1)

Hình 1-1 Quá trình tối ưu hoá vấn tin

CÂU VẤN TIN

QEP TỐT NHẤT

QEP TƯƠNG ĐƯƠNG

Phương pháp tìm kiếm

Qui tắc biến đổi câu vấn tin

Mô hình chi phí, hay hàm mục tiêu Tạo ra không gian

tìm kiếm

Trang 19

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Không gian tìm kiếm là tập các phương án có thể thực hiện câu vấn tin Những phương án này là tương đương, theo nghĩa là chúng sinh ra cùng một kết quả nhưng khác nhau về cách thực hiện Do khác nhau về cách thực hiện vì thế khác nhau về hiệu năng Không gian tìm kiếm thu được bằng cách áp dụng các qui tắc biến đổi, chẳng hạn những qui tắc của phép toán đại số quan hệ

Mô hình chi phí làm nhiệm vụ tiên đoán chi phi của một phương án thực hiện đã cho Để làm điều này, mô hình chi phí phải có đủ thông tin cần thiết

về môi trường thực hiện phân tán

Chiến lược tìm kiếm sẽ tìm trong không gian tìm kiếm để chọn ra phương án tốt nhất dựa theo mô hình chi phí Nó xác định các phương án nào cần được kiểm tra và theo thứ tự nào Chi tiết về môi trường (tập trung hay phân tán) được ghi nhận trong không gian tìm kiếm và mô hình chi phí

1.2.1 Không gian tìm kiếm

Không gian tìm kiếm là tập các QEP biểu diễn cho câu vấn tin Các QEP

là tương đương, theo nghĩa chúng sinh ra cùng một kết quả nhưng khác nhau

ở thứ tự thực hiện các thao tác cài đặt, vì thế sẽ khác nhau về hiệu năng Không gian tìm kiếm thu được bằng cách áp dụng các qui tắc biến đổi Mô hình (hàm) chi phí được dùng để chỉ ra chi phí của QEP tương ứng Chiến lược tìm kiếm làm nhiệm vụ tìm kiếm, khám phá không gian tìm kiếm và chọn

ra QEP tốt nhất dựa theo mô hình chi phí Nó xác định xem QEP nào được kiểm tra và theo thứ tự nào Một QEP tương đương với một cây toán tử

Cây toán tử là một đồ thị vô hướng, không chu trình, được dùng để thể hiện một câu vấn tin bậc thấp (Đại số quan hệ), gốc là các trường nằm sau SELECT, lá là các quan hệ cơ sở nằm sau FROM, và các nút là các phép toán nằm sau WHERE nhưng được chuyển sang dạng phép toán đại số quan hệ Cách thực hiện các phép toán trên cây theo hướng từ lá về gốc

Trang 20

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Để nêu bật các đặc trưng của thể tối ưu hoá vấn tin, chúng ta thường tập trung nghiên cứu các cây nối là loại cây toán tử với các phép toán nối hoặc phép toán tích Descartes hoặc phép toán hợp

Ví dụ 1.2.1:

Xét cơ sở dữ liệu của công ty, với các quan hệ (hình 1-2) như sau:

Hình 1-2 Sơ đồ kết nối các quan hệ

LOC: Location - Nơi triển khai dự án

Quan hệ PAY: Payments - Chi trả lương

TITLE - Trình độ chuyên môn

SAL: Salary - Lương

Quan hệ EMP: Employees - Nhân công

ENO: Mã nhân công

ENAME: Tên nhân công

TITLE - Trình độ chuyên môn

Trang 21

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Quan hệ ASG: Assignments - Phân công công việc

ENO, PNO

RESP: Responsibility - Đảm trách (Nhiệm vụ)

DUR: Duration - Thời gian làm việc

Xét câu vấn tin “Cho biết tên nhân viên đang tham gia một dự án nào đó” SELECT ENAME

FROM EMP , ASG , PROJ

WHERE (EMP.ENO = ASG.ENO)

AND (ASG.PNO = PROJ.PNO)

Câu vấn tin này sinh ra ba cây nối tương đương ở hình 1-3

Hình 1-3 Các cây nối tương đương

Với câu vấn tin đã cho, số cây toán tử tương đương sẽ rất nhiều có thể lên tới O(n!) với n quan hệ, nên người ta thường dùng các phương pháp heuristic chẳng hạn: thực hiện phép chọn và chiếu khi truy xuất đến các quan

hệ cơ sở, hoặc tránh lấy các cây có tích Descartes (tức là bỏ cây c trong hình 1-3, vì phép tích Descartes tạo ra nhiều bộ)

Một cây toán tử được gọi là tuyến tính nếu tại mỗi nút toán tử có ít nhất một toán hạng là một quan hệ cơ sở (hình 1-4a)

Trang 22

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Một cây xum xuê thì tổng quát hơn và có thể có các nút toán tử không có quan hệ cơ sở làm toán hạng, nghĩa là các toán hạng đều là quan hệ trung gian (hình 1-4b)

Nếu chỉ xét các cây tuyến tính, kích thước của không gian tìm kiếm sẽ được rút gọn lại O(2N

) Tuy nhiên cây xum xuê sẽ rất tiện lợi khi thực hiện song song trong môi trường phân tán

Nếu chỉ xét cây tuyến tính, thì kích thước không gian tìm kiếm chỉ còn O(2N) với N quan hệ Trong môi trường phân tán cây xum xuê rất có lợi cho việc thực hiện song song

Hình 1-4 Các loại cây

1.2.2 Các chiến lược tìm kiếm

Quy hoạch động Chiến lược tìm kiếm tối ưu hoá vấn tin sử dụng nhiều

nhất là quy hoạch động với tính chất đơn định Chiến lược đơn định tiến hành bằng cách xây dựng các QEP như sau: Bắt đầu từ các quan hệ cơ sở sau đó nối thêm quan hệ tại mỗi bước cho đến khi thu được tất cả các QEP có thể có Hình 1-5 cho thấy cách quy hoạch động xây dựng (đơn định) tất cả các QEP

có thể có theo chiều ngang trước khi nó chọn ra QEP tốt nhất

Trang 23

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình1–5 Xây dựng tối ưu hoá một cách đơn định theo kiểu quy hoạch động

Để hạ thấp chi phí tối ưu hoá, trong quá trình xây dựng phương án có thể

có, một phương án không có khả năng dẫn đến QEP tối ưu sẽ được xén bỏ Ngược lại chiến lược đơn định sẽ xét QEP theo chiều sâu

Việc dùng quy hoạch động và các phương án trên bảo đảm tìm ra tất cả các QEP tuy nhiên với chi phí cao, vì thế người ta đang tập trung vào lối tiếp cận chiến lược ngẫu nhiên hoá (randomised strategy) để làm giảm độ phức tạp của tối ưu hoá, nhưng tất nhiên là không đảm bảo tìm được phương án tối ưu toàn cục

Ngẫu nhiên hoá Quy trình tiếp cận chiến lược ngẫu nhiên hoá như sau:

Trước tiên một hoặc nhiều QEP khởi đầu được xây dựng trực tiếp (theo

ý muốn chủ quan), sau đó cải thiện phương án bằng cách thăm dò các lân cận của QEP đã có, ví dụ ở hình 1-6 là một cách biến đổi điển hình bằng cách hoán đổi hai quan hệ toán hạng được chọn ngẫu nhiên từ QEP hình 1-6(a) sang QEP hình 1-6(b)

Trang 24

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 1-6 Hành động của thể tối ưu hoá trong một chiến lược ngẫu nhiên hoá

1.2.3 Mô hình chi phí phân tán

vị khác Những nghiên cứu đầu tiên cho thấy trên WAN, tỷ số giữa thời gian truyền và thời gian xuất nhập là 20:1, vì vậy đa phần các hệ DBMS phân tán đƣợc thiết kế trên WAN đều bỏ qua chi phí xử lý cục bộ, hơn nữa chi phí TMSG

* #msgs cũng đƣợc xem là nhƣ nhau và chúng ta giả thiết TTR là một giá trị không đổi Điều này có thể không đúng trong các mạng WAN, vì khoảng cách giữa các vị trí không bằng nhau Tuy nhiên giả thiết ấy làm đơn giản quá trinh tối ƣu hóa rất nhiều Vì thế thời gian truyền #bytes dữ liệu từ vị trí này đến vị trí khác đƣợc giả thiết là một hàm tuyến tính theo #bytes:

Trang 25

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

và lnternet bởi vì dữ liệu cần phải đƣợc di chuyển đi đến các vị từ xa hơn Khi thời gian đáp ứng vấn tin là hàm mục tiêu của thể tối ƣu hoá, chúng

ta cần phải xét đến vấn đề xử lý cục bộ song song và truyền song song Công thức tổng chi phí là:

Total_time = TCPU * seq_#insts + TI/O * seg_#I/Os

+ TMSG * seg_#msgs + TTR * seg_#bytes trong đó seq_#x, với x có thể là số các chỉ thị (insts), số các xuất nhập I/O, số các thông báo (msgs) hoặc số bytes Ở đây mọi xử lý truyền dữ liệu thực hiện song song đang đƣợc bỏ qua

Ví dụ 1.2.2:

Chúng ta minh họa sự khác biệt giữa tổng chi phí và thời gian đáp ứng qua

ví dụ ở hình 1-7, trong đó tổng thời gian đƣợc tính tại vị trí 3, dữ liệu đƣợc lấy

từ vị trí 1 và 2 Để đơn giản, chúng ta giả sử rằng chỉ xét đến chi phí truyền

Trang 26

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 1-7 Truyền dữ liệu trong câu vấn tin

Giả sử rằng TMSG và TTR được diễn tả theo đơn vị thời gian Tổng chi phí truyền x đơn vị dữ liệu từ vị trí 1 đén vị trí 3 và y đơn vị dữ liệu từ vị tri 2 đến

vị trí 3 là:

Total_time = 2 * TMSG + TTR * (x + y)

Thời gian đáp ứng cho câu vấn tin này có thể tính xấp xỉ là:

Total_time = max {TMSG + TTR * x , TMSG + TTR * y }

bởi vì các thao tác truyền dữ liệu được thực hiện song song

Hạ thấp tối đa thời gian đựợc thực hiện bằng cách làm tăng mức độ thực hiện song song Tuy nhiên điều này không có nghĩa là tổng thời gian cũng được hạ thấp Ngược lại nó có thể còn làm tăng tổng thời gian, ví dụ như

do tăng xử lý song song cục bộ và truyền song song Hạ thấp tổng thời gian cho thấy là đã cải thiện được việc sử dụng tài nguyên, vì thế làm tăng lưu lượng của hệ thống Trong thực hành cần cân đối cả hai thời gian này

1.2.3.2 Số liệu thống kê cơ sở dữ liệu

Tác nhân chính ảnh hưởng đến hiệu quả hoạt động của một chiến lược thực hiện là kích thước các quan hệ trung gian được tạo ra Khi một phép toán tiếp theo nằm tại một vị trí khác, quan hệ trung gian phải được di chuyển đến

đó Vì thế chúng ta phải ước lượng kích thước của các kết quả trung gian của các phép toán đại số quan hệ nhằm giảm thiểu lượng dữ liệu phải truyền Việc ước lượng này dựa trên thông tin thống kê về các quan hệ cơ sở và các công

Vị trí 2

Vị trí 1

Vị trí 3

Trang 27

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

thức để dự đoán lực lượng của các kết quả Dĩ nhiên là có những được mất giữa tính chính xác của các số liệu thống kê và chi phí quản lý chúng, số liệu càng chính xác, chi phí càng cao

Kích thước của một quan hệ R(A) | A = {A 1 , A 2 , …, A n } phụ thuộc vào các

yếu tố sau:

i Đối với mỗi thuộc tính A i , chiều dài theo số bytes được ký hiệu là length(A i ) | i = i,n và đối với mỗi thuộc tính A i của mảnh R j số lượng các giá trị phân biệt của A i là lực lượng khi chiếu mảnh R j lên A i được ký hiệu là card( Ai (R j ))

ii Với thuộc tính A i , trên một tập giá trị sắp thứ tự, giá trị lớn nhất được

ký hiệu là max(A i ), nhỏ nhất là min(A i )

iii Miền của thuộc tính A i là dom(A i ), lực lượng của miền là card(dom(A i ) Giá trị này cho biết số lượng các giá trị duy nhất trong dom[a i ]

iv Số lượng bộ của mỗi mảnh R j được ký hiệu là card(R j )

Ký hiệu SFj là hệ số chọn nối của quan hệ của R và S, nó được xác định như sau:

SF j = card(R S) ; rõ ràng 0 SF j 1

card(R)*card(S) Chẳng hạn hệ số chọn nối 0.5 tương ứng với một quan hệ nối cực lớn, trong khi đó hệ số 0.001 tương ứng với một quan hệ khá nhỏ Chúng ta nói rằng nối có

độ chọn kém trong trường hợp đầu và độ chọn tốt trong tường hợp sau

Dữ liệu thống kê này rất có ích cho việc dự đoán kích thước quan hệ trung gian Cần nhớ rằng, chúng ta đã định nghĩa kích thước của một quan hệ trung gian R như sau:

size(R) = card(R) * 1ength(R)

Trong đó card(R) là số bộ của R còn length(R) là chiều dài (theo byte) của một bộ của R, được tính là tổng chiều dài của các thuộc tính của R Việc

Trang 28

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

ước lượng card(R), số lượng các bộ trong R, đòi hỏi phải sử dụng các công thức được cho trong phần tiếp theo

1.2.3.3 Ước lượng của các kết quả trung gian

Dữ liệu thống kê rất có ích khi đánh giá lực lượng của các kết quả trung gian Hai giả thiết đơn giản thường được đưa ra về CSDL Phân phối của các giá trị thuộc tính trong một quan hệ được giả định là thống nhất, và tất cả mọi thuộc tính đều độc lập, theo nghĩa là giá trị của một thuộc tính không ảnh hưởng đến giá trị của các thuộc tính khác Hai giả thiết này thường không đúng trong thực tế, tuy nhiên chúng làm cho bài toán dễ giải quyết hơn Trong những đoạn sau, chúng ta trình bày các công thức ước lượng lực lượng các kết quả của các phép toán đại số cơ bản (phép chọn, phép chiếu, tích Descartes, nối, nối

nửa, hợp, và hiệu) Quan hệ toán hạng được ký hiệu là R và S Hệ số chọn của

một phép toán, nghĩa là tỷ lệ các bộ của quan hệ toán hạng có tham gia vào kết

quả của phép toán đó được biểu thị là SF OP , với OP biểu thị cho phép toán Ước lượng qua phép chọn

Lực lượng của phép chọn là:

Card( F (R)) = SF S (F)*card(R) Trong đó SF S (F) phụ thuộc vào công thức chọn và có thể được tính như sau

Ký hiệu p(A i ) và p(A j ) biểu thị cho vị từ trên thuộc tính Ai và A j

SF S (A = value) =

)) ( (

SF S (p(A i ) p(A j ) = SF S (p(A i ))*SF S (p(A j ))

SF S (p(Ai) p(Aj)= SF S (p(Ai)) + SF S (p(Aj)) - SF S (p(Ai))*SF S (p(Aj))

SF S (Ai {value}) = SF S (A = value)*card({value})

Trang 29

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Ước lượng qua phép chiếu

Chiếu có thể loại bỏ hoặc không loại bỏ các bộ giống nhau Ớ đây chúng

ta xem như chiếu có kèm theo cả việc loại bỏ này Một phép chiếu bất kỳ rất khó ước lượng chính xác bởi vì mối tương quan giữa các thuộc tính được chiếu thường không được biết Tuy nhiên có hai trường hợp đặc biệt có ích

nhưng việc ước lượng hoàn toàn tầm thường Nếu chiếu của quan hệ R dựa trên một thuộc tính A duy nhất, lực lượng chỉ là số bộ thu được khi tthực hiện phép chiếu Nếu một trong các thuộc tính chiếu là khóa của R thì:

card( A (R) = card(R) Ước lượng qua tích Descartes

Lực lượng của tích Descartes của quan hệ R và S là

card(R*S) = card(R)*card(S) Ước lượng qua phép nối

Không có một phương pháp tổng quát nào để tính lực lượng của nối mà không cần thêm thông tin bổ sung Cận trên của lực lượng cho nối là lực lượng của tích Descartes Một số hệ thống, chẳng hạn như hệ INGRES phân tán sử dụng cận trên này, đó một ước lượng hơi quá cao R* sử dụng thương

số của cận trên này với một hằng số, phản ảnh sự kiện là kết quả nối luôn nhỏ hơn tích Descartes Tuy nhiên có một trường hợp xảy ra khá thường xuyên

nhưng việc ước lượng lại khá đơn giản Nếu R được thực hiện nối bằng với S trên thuộc tính A của R và thuộc tính B của S, trong đó A là khóa của quan hệ

R và B là khóa ngoại của quan quan hệ S thì lực lượng của kết quả có thể tính

xấp xỉ là

card(R A=B S) = card(S) bởi vì mỗi bộ của S khớp với tối đa một bộ của R Hiển nhiên là điều này cũng đúng nếu B là khóa của S và A là khóa ngoại của R Tuy nhiên ước lượng này là cận trên bởi vì nó giả sử rằng mỗi bộ của S đều tham gia vào

Trang 30

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

trong nối Đối với những nối quan trọng khác, chúng ta cần duy trì hệ số chọn

nối SF J như thành phần của các thông tin thống kê Trong trường hợp đó lực

lượng của kết quả là

card(R S = SF J * Card(R) * card(S) Ước lượng qua nối nửa

Hệ số chọn của nối nửa giữa R theo S cho bởi tỷ lệ phần trăm các bộ của

R có nối với các bộ của S Một xấp xỉ cho hệ số chọn nối nửa được đưa ra

trong [Hevner and Yao, 1979] là

SFSJ(R AS) =

))((

))((

A dom card

S

Công thức này chỉ phụ thuộc vào thuộc tính nối A của S Vì thế nó thường được gọi là hệ số chọn của thuộc tính A của S, ký hiệu là SFsJ(s.A),

Và là hệ số chọn của S.A trên bất kỳ một thuộc tính nào có thể nối được với

nó Vì thế lực lượng của nối nửa đựợc cho bởi:

card(R AS) = SF SJ (S.A) * card(R)

Xấp xỉ này có thể được xác nhận trên một trường hợp rất thường gặp,

đó là khi R.A là khóa ngoại của S (S.A là khóa chính) Trong trường hợp này,

hệ số chọn nối nửa là bằng 1 bởi vì card( A(S)) = card(dom[A]) cho thấy rằng lực lượng của nối nửa là card(R)

Ước lượng qua phép hợp

Rất khó ước lượng lực lượng trong hợp của R và S bởi vì các bộ giống

nhau bị loại bỏ Chúng ta chỉ trình bày công thức đơn giản cho các cận trên và dưới tương ứng là:

Trang 31

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Ước lượng qua phép hiệu

Giống như phép hợp, chúng ta chỉ trình bày các cận trên và dưới

Cận trên của card(R – S) là card(R),

Còn cận dưới là 0

1.2.4 Các dạng chi phí song song và mô hình chi phí song song trên bộ tối

ưu hóa truy vấn

Trong môi trường song song, hai loại chi phí làm ảnh hưởng đến thời gian trả lời câu truy vấn là:

- Trước tiên là việc xử lý của bộ thực hiện SQL

- Tiếp theo là những tiến trình được sinh ra từ bộ thực hiện, gọi là ESPS (Executor Sever Process)

- Sau cùng là tiến trình xử lý đĩa của các phép toán trong truy vấn

Chi phí khởi động sinh ra khi khởi động công việc Nó bao gồm chi phí để nhận được một tập các tiến trình và chuyển mỗi tiến trình một mô tả vai trò của

nó trong việc thực hiện truy vấn Mô tả này bao gồm một phần của phương án truy vấn mà tiến trình sẽ thực hiện và các đặc điểm nhận dạng của các tiến trình

mà nó sẽ trao đổi thông tin Thực tế cho thấy rằng chi phí khởi động là không đáng kể nếu các tiến trình có thể sử dụng lại mà không phải tạo mới

1.2.4.2 Chi phí truyền thông

Chi phí chuyển giao dữ liệu giữa các tiến trình Ba loại truyền thông giữa các tiến trình

Trang 32

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Truyền thông cục bộ: Truyền thông cục bộ xảy ra khi dữ liệu ra của tiến

trình này gửi cho một tiến trình khác dùng dữ liệu này để xử lý trên cùng một

bộ xử lý Truyền thông cục bộ được thực hiện như việc sao chép qua không gian địa chỉ từ bộ nhớ đến bộ nhớ

Truyền thông từ xa: Truyền thông từ xa xảy ra khi dữ liệu ra của tiến

trình này gửi cho một tiến trình khác dùng dữ liệu này để xử lý trên các bộ xử

lý khác nhau Trong hệ thống mạng, truyền thông từ xa chia dữ liệu thành các gói rồi vận chuyển thông qua mạng truyền thông

Truyền thông phân bố lại: Truyền thông phân bố lại bao gồm một tập

các bộ sản xuất gửi dữ liệu đến một tập các bộ tiêu thụ dữ liệu

1.2.4.3 Mô hình chi phí song song

Quá trình song song hóa là phân phối dữ liệu cho nhiều vị trí, phân chia công việc cho nhiều bộ xử lý Khi đã biết cách ước lượng chi phí cho mỗi phép toán cơ bản thì chi phí thời gian của xử lý song song sẽ bằng 1/n (trong đó n là số bộ xử lý) chi phí thời gian xử lý tuần tự của cùng một phép toán trên một bộ xử lý

Chi phí thời gian có thể ước lượng bởi tổng sau:

Tpart + Tasm + max {T0 , T1, , T n-1}

Trong đó:

Tpart là thời gian phân hoạch các quan hệ

Tasm là thời gian hợp thành kết quả sau cùng

Ti (i = 0, 1, , n-1) là thời gian cần cho tính toán ở bộ xử lý thứ i

Với điều kiện không xảy ra hiện tượng mất cân bằng tải, chi phí tranh chấp tài nguyên không đáng kể thì chi phí của các Ti được xác định bằng các

kỹ thuật tương tự như trường hợp xử lý tuần tự

1.2.4.4 Mô hình chi phí trên bộ tối ưu hóa truy vấn

Chi phí thực hiện một phương án tối ưu của một câu truy vấn song song trên bộ tối ưu hóa truy vấn được xác định bởi ba thành phần

Trang 33

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

i Chi phí tổng công việc TW (Total Work)

ii Chi phí thời gian trả lời RT (Response Time)

iii Chi phí không gian nhớ MC (Memory Consumption)

Hàm chi phí là tổ hợp của hai thành phần đầu, thành phần thứ ba cho biết kích thước bộ nhớ cần cho việc thực thi phương án Trong thực tế, để ước lượng chi phí một phương án người ta thường ước lượng hai thành phần đầu Khó khăn chính trong đánh giá chi phí là xác định giá trị cho TW và RT Những đại lượng này phụ thuộc vào trạng thái của hệ thống (ví dụ tải trọng của hệ thống và số lượng truy vấn được đặt ra đối với hệ thống) mà về mặt lý thuyết chỉ xác định được vào lúc thực hiện Tính toán chi phí truy vấn trong môi trường đa xử lý không thể thực hiện bằng tối ưu hóa tĩnh Nghĩa là, tổng chi phí được tính không thể được mô tả bằng một công thức rõ ràng trước khi biên dịch - như trong hệ phân tán Ở đây, việc xác định chi phí phức tạp hơn nhiều vì nó phải tính đến dữ liệu được chuyển tải theo cơ chế song song dạng ống

Thời gian trả lời của một phương án p, được xếp lịch theo các pha, được tính như sau:

RT (p) =

p ph

ph

Op respTime(O p) (max + pipe_delay(Op) + store_delay(ph)) Trong đó:

- ph là số hiệu pha

- Op ký hiệu toán tử

- respTime(Op) là thời gian trả lời của Op

- pipe_delay(Op) là khoảng thời gian chờ đợi của Op để bên sản xuất chuyển các bộ kết quả đầu tiên, nó bằng 0 nếu dữ liệu vào của Op đã có sẵn

- store_delay(ph) là thời gian cần thiết để lưu kết quả của pha ph, nó bằng 0 nếu ph là pha cuối cùng, với giả thiết rằng kết quả phải được chuyển ngay khi chúng mới sinh ra

Trang 34

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

1.3 Kết luận chương 1

Các khái niệm về mệnh đề, các phép toán mệnh đề, biểu thức logic, không gian tìm kiếm, các chiến lược tìm kiếm, mô hình chi phí phân tán, các dạng chi phí song song, mô hình chi phí song song trên bọ tối ưu hóa truy vấn

…v.v đã được trình bày, là những kiến thức cơ sở cần thiết cho việc mở rộng nghiên cứu trong các chương tiếp theo của luận văn

Trang 35

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Chương 2: MÔ HÌNH TỐI ƯU HÓA TRUY VẤN HAI PHA

2.1 Mô hình tối ưu hóa truy vấn hai pha JOQR

Pha đầu:JOQR (Join Ordering and Query Rewriting)

i Sắp xếp lại thứ tự các phép nối

ii Biểu diễn lại câu truy vấn

Bộ tối ưu hóa thực hiện hai bước này để tạo ra một cây truy vấn tiền xử

lý, xác định những yếu tố như thứ tự thực hiện các phép toán và chiến lược

thực hiện mỗi phép toán Bộ tối ưu sẽ triển khai các mô hình và giải thuật song song để tìm kiếm một phương án tốt nhất cho việc thi hành song song

2.1.1 Cây truy vấn tiền xử lý

Cây truy vấn tiền xử lý làm nhiệm vụ giải thích phương án thi hành một câu SQL: Cho biết thứ tự thực hiện mỗi phép toán, phương pháp tính toán của mỗi toán tử Mỗi nút của cây là một hay nhiều phép toán đại số quan hệ, mỗi nút lá là một quan hệ cơ sở Phần ghi chú trên mỗi nút mô tả cách thức thực hiện toán tử gì trên đó

Ví dụ 2.1.1:

Nút "phép nối" có thể được chú giải là "nối băm" hoặc nối "sắp-trộn", nút "lá" có thể được chú giải là được truy xuất thông qua một chỉ mục Để xem được các thông tin của cây truy vấn kiểu này, trong hầu hết các hệ thống SQL dùng câu lệnh Explain

Trang 36

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

Hình 2-1 Cây truy vấn tiền xử lý

Trong đó:

- Sort-merge: Là phép nối sắp trộn giữa biến bộ S và E theo MANV

- Filter: Là phép lọc quan hệ CANBO

- Simple-hash: Là phép nối băm đơn giản (băm sau khi nối MANV trên hai biến bộ S và E)

- Quan hệ NHANVIEN: Nhân viên

+ MANV: Mã nhân viên

+ HTENNV: Họ và tên nhân viên

+ LUONG: Lương của nhân viên

- Quan hệ CANBO: Cán bộ

AVG

CANBO M Filter CHUYENMON S Index - Filter

NHANVIEN E Group Index - Filter

Simple - hash S.MANV= E.MANV Sort - merge

S.MANV= E.MANV

Trang 37

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

+ MACB: Mã cán bộ

+ TENCB: Họ và tên cán bộ

- Quan hệ CHUYENMON: Chuyên môn

+ MANV: Mã nhân viên

+ TENCM: Tên chuyên môn

Viết câu vấn tin SQL sau: "Hãy liệt kê lương trung bình của các nhân viên làm công việc lập trình có lương lớn hơn lương của lãnh đạo"

Khi ký hiệu E, M, S là các biến bộ tương ứng với các quan hệ: NHANVIEN, CANBO, CHUYENMON Câu vấn tin sẽ là:

SELECT AVG (E.LUONG)

FROM NHANVIEN E, CANBO M, CHUYENMON S

Trang 38

Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn

WHERE E.MANV = S.MANV AND E.MANV = M.MACB

AND E.LUONG > M.LUONG AND S.TENCM = "Lập trình"

2.1.2 Cây toán tử

Cây toán tử đã được định nghĩa tổng quát tại hình mục 1.2.1 Ở đây, vì mục đích để mô tả các phép toán song song cũng như các ràng buộc về thời gian, ta biểu diễn lại cây toán tử như sau:

- Các nút của cây toán tử biểu diễn các toán tử và các đoạn mã lệnh đơn

- Các cạnh chỉ các dòng dữ liệu, hướng chỉ của mỗi cạnh thể hiện ràng buộc thời gian giữa các toán tử

- Một toán tử có thể nhận vào nhiều tập các bộ và tạo ra một tập kết quả

- Các toán tử được hình thành nhờ phát sinh ra các đoạn mã cài đặt các phép toán quan hệ trong cây truy vấn tiền xử lý một cách thích hợp Một tiêu chuẩn trong việc thiết kế các toán tử là chuyển các ràng buộc thời gian nội tại thành các ràng buộc đơn giản, chẳng hạn các ràng buộc song song và ràng buộc thứ tự: + Cạnh nối hai (nút) toán tử i và j là một ràng buộc song song giữa i và j nếu i và j phải bắt đầu thực hiện công việc và kết thúc công việc đồng thời Quy định cạnh có ràng buộc song song là đường ống (là cạnh được vẽ nét mảnh) Một cạnh đường ống thường được cài đặt bằng cách dùng cơ chế dòng điều khiển, nghĩa là toán tử sản xuất dữ liệu nhanh được điều khiển chậm lại

để "chờ" nếu toán tử tiêu thụ dữ liệu chậm hơn, và ngược lại để các toán tử sản xuất và tiêu thụ thực thi cùng một lúc

+ Cạnh nối hai (nút) toán tử i và j là một ràng buộc thứ tự giữa i và j nếu

j chỉ bắt đầu sau khi i kết thúc Quy định cạnh có ràng buộc thứ tự là cạnh khối (là cạnh được vẽ nét đậm) Các ràng buộc thứ tự làm cho phép toán tiêu thụ chỉ được bắt đầu khi phép toán sản xuất đã kết thúc

Quá trình xây dựng cây toán tử dựa vào cây truy vấn tiền xử lý Quá trình này có thể xem như việc áp dụng một thủ tục "lấn chiếm" cho mỗi nút

Ngày đăng: 22/11/2014, 21:17

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w