Professional Documents
Culture Documents
1
Xử lý câu hỏi truy vấn
Câu lệnh
SQL
Chương trình
tối ưu
2
Ngôn ngữ ĐSQH
3
Tổng quan
Gồm các phép toán tương ứng với các thao tác
trên các quan hệ
Mỗi phép toán
Đầu vào: một hay nhiều quan hệ
Đầu ra: một quan hệ
Biểu thức đại số quan hệ = chuỗi các phép toán
Kết quả thực hiện một biểu thức đại số là một
quan hệ
Được cài đặt trong phần lớn các hệ CSDL hiện
nay
4
Phân loại các phép toán
Phép toán quan hệ
Phép chiếu (projection)
Phép chọn (selection)
Phép kết nối (join)
Phép chia (division)
Phép toán tập hợp
Phép hợp (union)
Phép giao (intersection)
Phép trừ (difference)
Phép tích đề-các (cartesian product)
5
Phép chiếu
Đ/n: Lựa chọn một số thuộc tính từ một quan hệ
Cú pháp: A1, A2,... ( R)
C1 C2 C3 C4 C5 C2 C5
name (Student)
Id Name Suburb Name
1108 Robert Kew Robert
3936 Glen Bundoora Glen
8507 Norman Bundoora Norman
8452 Mary Balwyn Mary 6
Phép chọn
Đ/n: Lựa chọn các bộ trong một quan hệ thoả mãn
điều kiện cho trước
Cú pháp: condition (R )
R1
R2 R2
R3 R3
R4
Ví dụ: đưa ra danh sách những sinh viên sống ở
Bundoora
suburb"Bundoora " ( Student )
Student
Id Name Suburb
Kết quả
Id Name Suburb
1108 Robert Kew
3936 Glen Bundoora
3936 Glen Bundoora
8507 Norman Bundoora
8507 Norman Bundoora
8452 Mary Balwyn 7
Vi dụ - chọn và chiếu
đưa ra tên của các sinh viên sống ở Bundoora
Student
Id Name Suburb Kết quả
1108 Robert Kew Name
3936 Glen Bundoora Glen
8507 Norman Bundoora Norman
8452 Mary Balwyn
8
Phép kết nối
Đ/n: ghép các bộ từ 2 quan hệ thoả mãn điều
kiện kết nối R1 join _ condition R 2
Cú pháp:
a r r x a r xr x
b r s y b r xr x
c v t z
Ví dụ: đưa ra danh sách các sinh viên và khoá
học Student Id SID Enrol
Student Kết quả
Id Name Suburb Enrol SID Id Name Suburb Course
1108 Robert Kew SID Course
1108 1108 Robert Kew 113
3936 Glen Bundoora 3936 101
Id=SID 1108 113
3936 3936 Glen Bundoora 101
8507 Norman Bundoora
8452 Mary Balwyn 8507 101 8507 8507 Norman Bundoora 101
9
Ví dụ - chọn, chiếu và kết nối
đưa ra tên của các sinh viên sống ở Bundoora
và mã khoá học mà sinh viên đó đăng ký
a r r x a r x
b r s y b r x
c v t z c v null
a r r x a r x
b r s y b r x
c v t z null s y
null t z
12
Ví dụ về phép kết nối ngoài
Đưa ra danh sách mã số các sinh viên và mã
khoá học mà sinh viên đó đăng ký nếu có
Student
ID Name Suburb
Enrol
SID Course
1108 Robert Kew
3936 101
3936 Glen Bundoora
Id = SID 1108 113
8507 Norman Bundoora
8507 101
8452 Mary Balwyn
Kết quả
ID Name Suburb Course
14
Ví dụ phép tích đề-các
Student
Id Name Suburb Sport
1108 Robert Kew SportID Sport
Student_Sport
Id Name Suburb SportID Sport
1108 Robert Kew 05 Swimming
3936 Glen Bundoora 05 Swimming
8507 Norman Bundoora 05 Swimming
8452 Mary Balwyn 05 Swimming
1108 Robert Kew 09 Dancing
3936 Glen Bundoora 09 Dancing
8507 Norman Bundoora 09 Dancing
15
8452 Mary Balwyn 09 Dancing
Phép chia
Đ/n: cho R1 và R2 lần lượt là các quan hệ n và m
ngôi. Kết quả của phép chia R1 cho R2 là một
quan hệ (n-m) ngôi
Cú pháp: R1:R2
a x
a y x
a
b
z
x
: z
a
c y
Ví dụ:
Subject
Course
Name Course Kết quả
Course
Systems BCS
Name
Database BCS BCS
: MCS
Database
Database MCS
Algebra MCS 16
Phép hợp
Đ/n: gồm các bộ thuộc ít nhất một trong hai quan
hệ đầu vào
2 quan hệ khả hợp được xác định trên cùng miền giá trị
Cú pháp: R1 R2
R1
R1 R2 R2
Kết quả
Ví dụ: Name Course
Subject Systems BCS
R1 R2 R1
R2
Ví dụ:
Subject Subject2
Name Course Name Course Kết quả
Systems BCS DataMining MCS Name Course
Database BCS
Database MCS Systems BCS
Database MCS Systems BCS Database MCS
Algebra MCS Writing BCS
18
Phép trừ
Đ/n: gồm các bộ thuộc quan hệ thứ nhất nhưng
không thuộc quan hệ thứ hai
2 quan hệ phải là khả hợp
Cú pháp: R1 \ R2
R1 \ R2 R1
R2
Ví dụ:
Subject Subject2
Name Course Name Course Kết quả
Systems BCS DataMining MCS Name Course
Database BCS Database MCS Database BCS
Database MCS
\ Systems BCS Algebra MCS
Algebra MCS Writing BCS 19
20
Tối ưu hoá
Biến đổi biểu thức ĐSQH để tìm 1 biểu thức
hiệu quả
Tối ưu dựa trên cấu trúc và nội dung của dữ
liệu
Nâng cao hiệu quả thực hiện câu hỏi trên 1 hay
nhiều tiêu chí: thời gian, sử dụng bộ nhớ, ...
Lưu ý:
Không nhất thiết phải tìm biểu thức tối ưu nhất
Chú ý tới tài nguyên sử dụng cho tối ưu
21
Kỹ thuật tối ưu hoá
2 kỹ thuật chính
TYPE
Tối ưu logic (rewriting)
Tối ưu vật lý (access methods)
Ví dụ
WAGON
WAGON (NW, TYPE, COND, STATION, (NW, TYPE...)
CAPACITY, WEIGHT)
NT = 400
TRAIN (NT, NW)
TRAIN
(NT, NW)
22
Nội dung
Giới thiệu chung
Tối ưu logic
Tối ưu vật lý
Mô hình giá
23
Tối ưu hoá logic
Sử dụng các phép biến đổi tương đương để tìm
ra biểu thức ĐSQH tốt
Biến đổi dựa trên tính chất của các phép toán ĐSQH
24
Biến đổi dựa trên ngữ nghĩa
Mục đích:
Dựa trên các ràng buộc dữ liệu để xác định các biểu
thức tương đương
Viết lại câu hỏi trên khung nhìn dựa trên các định
nghĩa của khung nhìn
Ví dụ:
EMPLOYEE (FirstName, LastName, SSN, Birthday,
Adrresse, NoDept)
DEPARTEMENT (DNO, DName, SSNManager)
PROJECT (PNO, PName, PLocation, DNo)
WORK-IN (ESSN, PNO, Heures)
25
Biến đổi dựa trên ngữ nghĩa ..
Định nghĩa khung nhìn: V = R * S
Câu truy vấn của client : Q = V * (T * U)
Viết lại câu truy vấn dựa trên định nghĩa khung
nhìn:
Q = (R * S) * (T * U)
26
Biến đổi dựa trên t/chất của ĐSQH
27
Tính chất của phép toán ĐSQH
A ~ tập các thuộc tính, F ~ biểu thức điều kiện
A ( R) A ( A1 ( R)) if A A1
F ( R) F 1 ( F 2 ( R)) if F F1^ F 2
28
Tính chất của phép toán ĐSQH (2)
A ~ tập các thuộc tính, F ~ biểu thức điều kiện
A1 ( F 2 ( R)) F 2 ( A1 ( R))
Nếu A1 A2 :
A1 ( A2 ( R)) A1 ( R)
29
Tính chất của phép toán ĐSQH (3)
chỉ nếu
(R S ) T R (S T ) Attr(F2) Attr(S) U Attr(T)
F1 F2 F1 F2
30
Tính chất của phép toán ĐSQH (4)
4. Tính phân phối và trên các phép toán *, ,
, -, X
Nếu F = (FR ^ FS) và nếu Attr(FR) R và Attr(FS) S thì :
F ( R S ) FR ( R ) FS ( S )
JC JC
F ( R S ) FR ( R) FS ( S )
F (R S) F (R) F (S)
_________________________________________________________________
F (R - S) F (R) – F (S)
_________________________________________________________________
ΠZ ( R(X) x S(Y) ) Π X Z (R) x Π Y Z(S)
_________________________________________________________________
ΠZ (R S) ΠZ (R) ΠZ (S) 31
_________________________________________________________________
Biến đổi biểu thức ĐSQH
T1 F1 F2 ... Fn (R) F1( F2 ... ( Fn (R) ) )
_________________________________________________________________
T2 ΠZ (ΠY (R)) ΠZ (R) nếu Z Y
_________________________________________________________________
T3 F(X) (ΠY (R)) ΠY ( F(X) (R)) nếu X Y
T3’ ΠY ( F(X) (R)) ΠY ( F(X) (ΠX Y (R))) nếu X Y
_________________________________________________________________
T4 F(Z) (R(X) x S(Y)) F(Z) (R(X)) x S(Y) nếu Z X
F(Z1) F(Z2) (R(X) x S(Y)) F(Z1) (R(X)) x F(Z2) (S(Y))
nếu Z1 X và Z2 Y
_________________________________________________________________
T5 F (R S) F (R) F (S)
_________________________________________________________________
T6 F (R - S) F (R) – F (S)
_________________________________________________________________
T7 ΠZ ( R(X) x S(Y) ) Π X Z (R) x Π Y Z(S)
_________________________________________________________________
T8 ΠZ (R S) ΠZ (R) ΠZ (S) 32
_________________________________________________________________
Trình tự áp dụng
Khai triển phép lựa chọn dựa trên nhiều điều
kiện: T1
33
Biểu diễn dạng cây của ĐSQH
A1
A1 ( F 2 ( R * S ))
F2
A1 ( F 2 R. B S . B ( R S ))
R.B=S.B
S
R
34
Bài tập
EMPLOYEE (FirstName, LastName, SSN, Birthday,
Adrresse, NoDept)
DEPARTEMENT (DNO, DName, SSNManager)
PROJECT (PNO, PName, PLocation, DNo)
WORK (ESSN, PNO, Heures)
Tên của các nhân viên sinh sau ngày 30/01/70 và làm việc cho
dự án "Esprit"
Birthday '30 / 01/ 70 ' PName 'Esprit '
FirstName , LastName Employee .SSN Work . ESSN ( EMPLOYEE WORK )
* PROJECT
Employee .SSN Work . ESSN ( Birthday '30 / 01/ 70 ' ( EMPLOYEE) WORK )
FirstName , LastName
* PName ' Esprit ' ( PROJECT )
35
Nội dung
Giới thiệu chung
Tối ưu logic
Tối ưu vật lý
Mô hình giá
36
Lựa chọn cách truy nhập dữ liệu
Giả thiết
TYPE
TRAIN : có chỉ số trên NT
WAGON : có chỉ số trên NW
TRAIN
(NT, NW)
37
Lựa chọn với điều kiện phức AND
Sử dụng đk với thuộc tính có index trước tiên
Sử dụng composite index
Nếu có nhiều index, sử dụng phép giao
Query optimizer lựa chọn điều kiện đơn
Dựa vào điểm selectivity của từng điều kiện
Mục tiêu: hạn chế số lượng bản ghi phải truy xuất
38
Lựa chọn với điều kiện phức OR
Không có nhiều khả năng tối ưu
Chỉ sử dụng nếu có index cho tất cả các thuộc
tính nằm trong điều kiện chọn
Trái lại, phải thực thi linear scan
39
Thực thi phép toán JOIN
Một trong những phép toán tốn chi phí thời gian
nhất (time-consuming)
40
Nested-loop JOIN
41
Relation S
Nested-loop-join (NLJ)
Nguyên tắc
Duyệt 1 lần trên quan hệ
Matching
ngoài R & lặp trên quan hệ
trong S
Tuple R
Các mở rộng của thuật toán
Tuple-based NLJ, block-
based NLJ, index-based NLJ Tuple R Tuple S
SOURCE SOURCE
R S
42
Single-loop (index-based) JOIN
Sử dụng khi tồn tại index cho một hoặc cả hai
thuộc tính trong điều kiện JOIN
43
Single-loop (index-based) JOIN
44
Sort-merge JOIN
Sử dụng khi R và S được lưu trữ dạng sorted
file, sắp xếp theo thuộc tính thuộc điều kiện kết
nối
2 file được duyệt đồng thời
Chọn ra 2 bộ thỏa mãn điều kiện JOIN
Nếu R và S chưa được lưu dạng sorted file, có
thể tiến hành sắp xếp trước theo thuật toán
external sorting
45
Sort-merge JOIN
46
Partition-hash JOIN
Băm các quan hệ theo thuộc tính JOIN
Join các giỏ (buckets) tương ứng
47
Mô hình giá
Chi phí thực hiện câu hỏi truy vấn phụ thuộc:
Đọc/ghi bộ nhớ ngoài (số trang nhớ)
Kích thước dữ liệu (trung gian) phải xử lý
Chi phí :
Đọc/ghi dữ liệu + Xử lý + Truyền thông giữa các trạm
48
Tối ưu hoá dựa trên mô hình giá
Mục đích: Chọn phương án thực hiện câu hỏi
với chi phí thấp nhất
Nhận xét:
Chi phí cho liệt kê các phương án trả lời câu hỏi
Chi phí cho lượng hoá các phương án theo mô hình
giá
Có thể sử dụng các « mẹo » (heuristics) để giảm
không gian tìm kiếm của câu hỏi