Tải bản đầy đủ (.pdf) (78 trang)

Rút gọn câu truy vấn SQL qua phán đoán và cưỡng chế

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 78 trang )

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

BÙI MẠNH HÙNG

RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN
ĐOÁN VÀ CƢỠNG CHẾ

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

THÁI NGUYÊN - 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN




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

BÙI MẠNH HÙNG

RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN
ĐOÁN VÀ CƢỠNG CHẾ
Thuộc chuyên ngành : Khoa học máy tính
Mã số chuyên ngành : 60 48 01

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
PGS. TS. LÊ HUY THẬP

THÁI NGUYÊN - 2015


Số hóa bởi Trung tâm Học liệu – ĐHTN




i

LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai
công bố trong bất kỳ công trình nào khác.
Qua đây em xin chân thành cảm ơn toàn thể các thầy cô trong khoa đào tạo
sau đại học trường Đại học Công nghệ Thông tin và Truyền thông và đặc biệt là
thầy PGS.TS. Lê Huy Thập, đã tạo điều kiện thuận lợi và hướng dẫn em để hoàn
thành luận văn này.

Số hóa bởi Trung tâm Học liệu – ĐHTN




ii

MỤC LỤC
LỜI CAM ĐOAN .................................................................................................................. i
DANH MỤC BẢNG BIỂU ................................................................................................. iv
DANH MỤC HÌNH ............................................................................................................. v
BẢNG DANH MỤC CÁC KÍ HIỆU ................................................................................ vii
LỜI 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. Phương pháp nghiên cứu. .............................................................................................. 1
5. Ý nghĩa khoa học của đề tài. .......................................................................................... 2
6. Các kết quả dự kiến đạt được......................................................................................... 2
Chƣơng 1. CƠ SỞ LÝ THUYẾT ........................................................................................ 3
1.1. Mệnh đề logic và các phép toán mệnh đề ................................................................... 3
1.1.1 Khái niệm về mệnh đề .......................................................................................... 3
1.1.2 Biến mệnh đề và biểu thức mệnh đề ..................................................................... 3
1.1.3 Các phép toán mệnh đề ......................................................................................... 4
1.1.4. Các biểu thức logic cơ bản ................................................................................... 5
1.2. Các khái niệm cơ bản của CSDL phân tán ................................................................ 6
1.2.1. Khái niệm về phán đoán ...................................................................................... 8
1.2.2. Khái niệm về cưỡng chế .................................................................................... 13
1.3. Kết luận chương 1 ..................................................................................................... 19
Chƣơng 2: RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN ĐOÁN VÀ
CƢỠNG CHẾ..................................................................................................................... 20
2.1. Các thuật toán rút gọn câu truy vấn .......................................................................... 20
2.1.1. Rút gọn cho phân mảnh ngang. ......................................................................... 21
2.1.2. Rút gọn phân mảnh dọc ..................................................................................... 32
2.1.3. Rút gọn phân mảnh hỗn hợp .............................................................................. 35
2.2. Rút gọn câu truy vấn phân tán qua phán đoán và cưỡng chế ................................... 39
2.2.1. Rút gọn phân mảnh ngang qua phán đoán và cưỡng chế .................................. 40
2.2.2. Rút gọn phân mảnh dọc qua phán đoán và cưỡng chế....................................... 47

Số hóa bởi Trung tâm Học liệu – ĐHTN





iii

2.2.3. Rút gọn phân mảnh hỗn hợp qua phán đoán và cưỡng chế ............................... 49
2.3. Kết luận chương 2 ..................................................................................................... 53
Chƣơng 3: CHƢƠNG TRÌNH ỨNG DỤNG .................................................................. 54
3.1. Chương trình ứng dụng hỗ trợ khách hàng sử dụng dịch vụ viễn thông tại Bưu điện
Cầu Giấy .......................................................................................................................... 54
3.2. Kết luận chương 3 ..................................................................................................... 54
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA LUẬN VĂN ........................................ 68

Số hóa bởi Trung tâm Học liệu – ĐHTN




iv

DANH MỤC BẢNG BIỂU
Bảng 1.1. Bảng chân trị các phép toán mệnh đề .........................................................5
Bảng 1.2. Mức ưu tiên của các phép toán logic ..........................................................5
Bảng 2.1-1. Quan hệ NhanVien ................................................................................20
Bảng 2.1-2. Quan hệ DuAn .......................................................................................20
Bảng 2.1-3. Quan hệ TraLuong.................................................................................21
Bảng 2.1-4. Quan hệ PhanNhiem ..............................................................................21
Bảng 2.1-5 Mảnh ngang DuAn H1 ............................................................................23
Bảng 2.1-6 Mảnh ngang DuAn H2 .............................................................................24
Bảng 2.1-7. Mảnh ngang DuAn H3 ............................................................................24
Bảng 2.1-8. TraLuong1 ..............................................................................................26
Bảng 2.1-9. TraLuong2 ..............................................................................................26
Bảng 2.1-10. Phân hoạch ngang cho quan hệ DuAn: DuAnH1, DuAnH3, DuAnH4, DuAnH6 ...28

Bảng 2.1-11. Khoa ....................................................................................................28
Bảng 2.1-12. Sinhvien ..............................................................................................29
Bảng 2.1-13. Monhoc ................................................................................................29
Bảng 2.1-14. Diem ....................................................................................................29
Bảng 2.1-15: Sinhvien1 .............................................................................................30
Bảng 2.1-16: Sinhvien2 .............................................................................................30
Bảng 2.1-17 ...............................................................................................................33
Bảng 2.1-18 ...............................................................................................................33
Bảng 2.2-1. Quan hệ EMP ........................................................................................50
Bảng 2.2-2. Mảnh hỗn hợp EMPHH1 ......................................................................50
Bảng 2.2-3. Mảnh hỗn hợp EMPHH2 ......................................................................50
Bảng 2.2-4. Mảnh hỗn hợp EMPHH3 ......................................................................50

Số hóa bởi Trung tâm Học liệu – ĐHTN




v

DANH MỤC HÌNH
Hình 1.1. CSDL tập trung, không phải là DDBS .................................................................. 7
Hình 1.2. CSDL được phân tán trên mạng, DDBS ................................................................ 7
Hình 2.1: Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối ................................ 22
Hình 2.2: Mối liên hệ giữa các quan hệ. .............................................................................. 29
Hình 2.3. Rút gọn phân mảnh ngang với phép nối .............................................................. 34
Hình 2.4. Phép chiếu vô dụng .............................................................................................. 35
Hình 2.7. (b) vấn tin đã rút gọn............................................................................................ 44
Hình 2.8. Vấn tin gốc của ví dụ 2.16 ................................................................................... 46
Hình 2.9. Vấn tin gốc đã được giao hoán ............................................................................ 46

Hình 2.10. Vấn tin sau khi dùng mệnh đề mâu thuẫn .......................................................... 46
Hình 2.11. Cây vấn tin sau khi giao hoán phép hợp và phép nối ....................................... 47
Hình 2.12. Rút gọn cho phân mảnh dẫn xuất....................................................................... 47
Hình 2.13 a,b,c. Rút gọn cho phân mảnh dọc ...................................................................... 49
Hình 2.14. Cây vấn tin gốc .................................................................................................. 51
Hình 2.15. Cây vấn tin đã loại EMPHH1 ............................................................................ 52
Hình 2.16: Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên .......................................... 52
Hình 2.17. Câu vấn tin đã rút gọn ........................................................................................ 53

Số hóa bởi Trung tâm Học liệu – ĐHTN




vi

DANH MỤC CÁC CHỮ VIẾT TẮT
CSDL

Cơ sở dữ liệu

CPU

Central Processing Unit (Bộ xử lý trung tâm)

SQL

Structured Query Language (Ngôn ngữ truy vấn có cấu trúc)

DDBS


Distributed Database System (Hệ cơ sở dữ liệu phân tán)

Số hóa bởi Trung tâm Học liệu – ĐHTN




vii

BẢNG DANH MỤC CÁC KÍ HIỆU
Phép giao
Phép hợp



Ký hiệu thuộc
Ký hiệu không thuộc

-

Phép trừ

X

Tích đề các



Phép nối


π

Phép chiếu

θ

Tê ta

*

Kết nối tự nhiên

>

Phép so sánh lớn hơn

<

Phép so sánh bé hơn

÷

Phép chia

˄

Phép và

˄


Phép hoặc
Tập rỗng

¬

Phủ định

=

Phép bằng



Lớn hơn hoặc bằng



Nhỏ hơn hoặc bằng

σ

Phép chọn

Π

Pi

Số hóa bởi Trung tâm Học liệu – ĐHTN





1
LỜI MỞ ĐẦU
1. Đặt vấn đề
Ngày nay cùng với sự phát triển về khoa học kỹ thuật, bùng nổ về thông tin.
cung cấp đa dạng các loại hình thương mại, quản lý và các dịch vụ đa phương tiện cho
người sử dụng. Kết nối máy tính thành mạng với mục tiêu chia sẻ tài nguyên, khai thác
có hiệu quả các tài nguyên thông tin, nâng cao khả năng tích hợp và trao đổi các loại
dữ liệu giữa các thành phần trên mạng, nhu cầu thu thập, lưu trữ, xử lý và trao đổi
thông tin ngày càng tăng .
Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng thì
vấn đề đặt ra là xử lý thông tin như thế nào để tìm cách giảm thiểu thời gian và các chi
phí hoặc tăng cao hiệu năng xử lý
Một trong những giải pháp có tính khả thi là phải xử lý các câu lệnh SQL khi
truy vấn dữ liệu dựa vào các quy tắc phán đoán – cưỡng chế và các phương pháp rút
gọn ngay trên cây thứ tự hoặc gộp nhóm khi phân mảnh mà chúng ta sẽ gọi là các
giải pháp tiền xử lý.
Đó cũng chính là mục đích tôi chọn nghiên cứu “ Rút gọn câu truy vấn SQL
qua phán đoán và cưỡng chế ” làm đề tài luận văn tốt nghiệp của mình.
2. Đối tƣợng và phạm vi nghiên cứu
- Đối tượng nghiên cứu là cơ sở dữ liệu phân tán, xử lý song song và phân tán.
- Phạm vi nghiên cứu là một số các phương pháp rút gọn câu truy vấn SQL trong
cơ sở dữ liệu phân tán.
3. Hƣớng nghiên cứu của đề tài
- Nghiên cứu tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán, các phương pháp,
kỹ thuật, các thuật toán liên quan đến rút gọn câu truy vấn SQL đặc biệt là phương
pháp phán đoán, cưỡng chế.
- 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. Nghiên cứu mô hình tối ưu hóa hai pha.
4. 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 quy tắc và phương pháp phán đoán và cưỡng chế.
- Nắm vững các kiến thức về rút gọn câu vấn tin dựa vào phán đoán.
Số hóa bởi Trung tâm Học liệu – ĐHTN




2
5. Ý nghĩa khoa học của đề tài.
Luận văn giúp cho việc tiền xử lý câu lệnh SQL bằng phương pháp phán
đoán cưỡng chế và rút gọn các câu lệnh loại này.
6. Các kết quả dự kiến đạt đƣợc
- Giới thiệu tổng quan về CSDL phân tán.
- Trình bày các phương pháp, thuật toán xử lý, tối ưu hóa truy vấn phân tán đặc
biệt bằng phương pháp phán đoán và cưỡng chế.
- Cài đặt thử nghiệm một thuật toán rút gọn câu truy vấn phân tán.

Số hóa bởi Trung tâm Học liệu – ĐHTN




3
Chƣơng 1. CƠ SỞ LÝ THUYẾT
1.1. Mệnh đề logic và các phép toán mệnh đề
1.1.1. Khái niệm về mệnh đề
Mệnh đề là một câu khẳng định đúng hoặc một câu khẳng định sai. Câu khẳng

định đúng gọi là mệnh đề đúng (mệnh đề có chân trị đúng). Câu khẳng định sai
gọi là mệnh đề sai (mệnh đề có chân trị sai).
Kí hiệu các mệnh đề: P, Q, R…
Kí hiệu chân trị đúng là 1 (hay T - True), chân trị sai là 0 (hay F - False)
Ví dụ:
a) Hà Nội là thủ đô nước Việt Nam: Là mệnh đề đúng (1). Kí hiệu mệnh đề: P
b) 11 chia hết cho 5: Là mệnh đề sai (0). Kí hiệu mệnh đề: Q
c) 4+4=8: Là mệnh đề đúng (1). Kí hiệu mệnh đề: R
d) Hôm nay trời có đẹp không?: Không phải là mệnh đề. Câu hỏi nghi vấn.
Mệnh đề sơ cấp: (elementary proposition)
Là mệnh đề không thể phân nhỏ hơn được nữa – có thể nói đó là phát biểu đơn
giản nhất.
Ví dụ:

“Một cộng một bằng 2”
“ 7 là số nguyên tố”

Các mệnh đề sơ cấp thường được gắn với các ký hiệu như các chữ p, q, r,...
mà ta gọi là các biến mệnh đề logic.
Mệnh đề phức hợp: (compound proposition)
Mệnh đề phức hợp là mệnh đề được tạo ra từ các mệnh đề bằng cách dùng các từ
liên kết như “và” (AND), “hoặc” (OR),....
Ví dụ:
 “Số 2 là số chẵn và là số nguyên tố” gồm 2 mệnh đề: “Số 2 là số chẵn”
từ nối “và” và “ Số 2 là số nguyên tố”;
1.1.2. Biến mệnh đề và biểu thức mệnh đề
Biến mệnh đề:
p gọi là biến mệnh đề nếu nó nhận giá trị là một mệnh đề nào đó.
Ví dụ: p là biến mệnh đề có thể nhận giá trị là các mệnh đề P, Q, R ở trên.
Số hóa bởi Trung tâm Học liệu – ĐHTN





4
Biểu thức mệnh đề:
Cho P, Q, R…là các mệnh đề. Nếu các mệnh đề này liên kết với nhau bằng các
phép toán thì ta được một biểu thức mệnh đề.
1.1.3. Các phép toán mệnh đề
Phép phủ định (NOT): Phủ định của mệnh đề p kí hiệu là p. Chân trị của p là
0 nếu chân trị của p là 1 và ngược lại.
Ví dụ:

p=“2>0”
p=“2≤0”

Phép hội (AND): Phép hội của hai mệnh đề q, q kí hiệu là p q (đọc là p và q)
chỉ đúng khi cả p và q cùng đúng.
Ví dụ: “Chiều nay trời đẹp và trận bóng đá sẽ hấp dẫn”: p q
Phép tuyển (OR): Phép tuyển của hai mệnh đề p, q kí hiệu là p q (đọc là p hoặc
q) chỉ sai khi cả p và q cùng sai
Ví dụ: “Danh sách sinh viên quê ỏ Thái Nguyên hoặc/hay/và Hà Nội”: p q
Điều kiện lọc danh sách là:
(QUEQUAN=”Thái Nguyên”) OR (QUEQUAN=”Hà Nội”)
Phép tuyển loại (XOR): Phép tuyển loại của hai mệnh đề p, q kí hiệu là p q
(đọc là hoặc p hoặc q) chỉ đúng khi chỉ 1 trong 2 mệnh đề là đúng.
Ví dụ: “Sinh viên A quê ở Thái Nguyên hoặc Hà Nội”: p q
Phép kéo theo: Phép kéo theo của 2 mệnh đề p, q kí hiệu là p q là một mệnh
đề chỉ sai khi p đúng q sai.
Ví dụ: “Nếu A vượt đèn đỏ thì A sẽ vi phạm luật giao thông”: p q

Phép tương đương: Phép tương đương của 2 mệnh đề p, q kí hiệu là p
một mệnh đề chỉ đúng khi cả p và q cùng đúng hoặc cùng sai.
Ví dụ: p: “Tứ giác ABCD là hình vuông”
q: “Tứ giác ABCD là hình chữ nhật có 2 đường chéo vuông góc”
Ta có p

q

Số hóa bởi Trung tâm Học liệu – ĐHTN



q là


5
Bảng chân trị của các phép toán mệnh đề
p

q

p

q

0

0

1


1

0

0

0

1

1

0

1

1

0

0

1

1

1

0


1

0

0

1

0

1

1

0

0

1

1

0

0

1

1


0

1

1

p

q

p

q

p

q

p

q

p

q

Bảng 1.1. Bảng chân trị các phép toán mệnh đề
Mức ƣ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 yếu dần từ trên

xuống dưới ở bảng sau:
Ký hiệu phép toán
,

Nghĩa của phép toán
Phủ định

,

Hội, tuyển, tuyển loại

, ,

Kéo theo, tương đương

,

Bảng 1.2. Mức ưu tiên của các phép toán logic
1.1.4. Các biểu thức logic cơ bản
Biểu thức logic
Biểu thức logic có thể nói chính là mệnh đề phức hợp, biểu thức logic thường được
ký hiệu bởi các chữ in to.
Ví dụ:
(r

s), E = (p

P = E, F

G, (G


( q
H)

r) )
( G

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

Bảng chân trị của 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ới nhau và viết E

F khi E

và F luôn luôn có cùng chân trị, khi đó ta nói “E tương đương với F”.
Để 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.

Số hóa bởi Trung tâm Học liệu – ĐHTN




6
Hai biểu thức logic E và F tƣơng đƣơng sẽ đƣợc viết E

F.

Ví dụ:

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à 1, tức là E
1.
Ví dụ:
E=p

p thì E

1.

Biểu thức logic E được gọi là hằng False nếu chân trị của E luôn luôn là 0, tức là E
0.
Ví dụ:
E=p

p thì E

0.

Chú ý
Theo định nghĩa E1


F1 khi và chỉ khi E1

F1, điều này có thể viết gọn lại như

sau:
E1

F1

1.

Ví dụ:
E1 = p

p thì E1

1.

F1 = (p

q)

q) thì F1

( p

Ta có thể kết luận E1
Quan hệ bắc cầu: nếu E


F1

1.

1.
F và F

G thì E

G.

1.2. Các khái niệm cơ bản của CSDL phân tán
Hệ cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán
Hệ CSDL phân tán (Distributed Database System – DDBS) là một tập hợp dữ liệu
có liên đới logic và được phân bố trên các nút của một mạng máy tính.
Hệ quản trị CSDL phân tán (Distributed Database Management System –
DDBMS) là một hệ thống phần mềm cho phép quản lý các DDBS và làm cho việc
phân tán trở nên vô hình đối với người sử dụng.
Như vậy DDBS là một tập các tệp dữ liệu vừa có liên đới logic, vừa phải có cùng
cấu trúc và vừa phải được truy xuất qua một giao diện chung. Và phân bố vật lý của
các dữ liệu không phải là vấn đề quyết định.
Số hóa bởi Trung tâm Học liệu – ĐHTN




7
Nhận xét: Nếu CSDL nằm tại một nút mạng thì nó không phải là DDBS, vì vấn đề
quản trị CSDL không khác với quản trị CSDL trong môi trường tập trung kiểu
client/server của mạng.

Ví dụ: CSDL trong hình 1.1 không phải là DDBS.
Workstation1
Workstation2
Workstation5
Mạng
Truyền
DL
Workstation4
Workstation3
Hình 1.1. CSDL tập trung, không phải là DDBS
Nếu một cơ sở dữ liệu được phân tán trên nhiều nút mạng. khi đó CSDL sẽ là cơ sở dữ
liệu phân tán. Ví dụ: hình 1.2
Workstation1
Workstation2

Workstation5
Mạng
Truyền DL
Workstation4

Workstation3

Hình 1.2. CSDL được phân tán trên mạng, DDBS
Hệ quản trị CSDL phân tán có khả năng phân mảnh CSDL khái niệm và cho
phép cục bộ hoá dữ liệu. Có hai ưu điểm nổi bật:
• Vì mỗi trạm chỉ xử lý một phần CSDL, sự tranh chấp về CPU và các dịch vụ
vào/ra không nghiêm trọng như trong các hệ CSDL tập trung.
• Tính cục bộ làm giảm trễ truy nhập từ xa thường gặp trên các mạng diện rộng.

Số hóa bởi Trung tâm Học liệu – ĐHTN





8
Hầu hết các hệ CSDL phân tán được cấu trúc nhằm tận dụng tối đa những ưu
điểm của tính cục bộ dữ liệu. Lợi ích đầy đủ của việc giảm tranh chấp và giảm chi phí
truyền chỉ có thể có được bằng cách phân mảnh và phân tán dữ liệu hợp lý.
Mỗi quan hệ toàn cục có thể chia thành nhiều phần không chồng lặp lên nhau
được gọi là phân mảnh. Ánh xạ giữa các quan hệ toàn cục và phân mảnh được định
nghĩa là lược đồ phân mảnh. Ánh xạ này là mối quan hệ một-nhiều. Ví dụ, nhiều phân
mảnh tương ứng với một quan hệ toàn cục, nhưng chỉ một quan hệ toàn cục tương ứng
với một phân mảnh. Các phân mảnh được chỉ ra bằng tên của quan hệ toàn cục với
một chỉ số (chỉ số phân mảnh), ví dụ, Ri chỉ đến phân mảnh thứ i trong quan hệ toàn
cục R
Các kiểu phân mảnh dữ liệu bao gồm phân mảnh ngang và phân mảnh dọc và
một kiểu phân mảnh phức tạp hơn là sự hết hợp của 2 loại trên. Trong tất cả các kiểu
phân mảnh, một phân mảnh có thể được định nghĩa bằng một biểu thức ngôn ngữ quan
hệ cho các quan hệ toàn cục như là các toán hạng và kết quả đầu ra là các phân mảnh.
Các khái niệm, điều kiện về phán đoán và cƣỡng chế
Dùng tập các mệnh đề để kiểm tra các giao dịch, cú pháp và tính toàn vẹn ngữ
nghĩa…nếu thỏa mãn thì đó là một phán đoán, sai cũng là phán đoán nhưng nếu phán
đoán đúng thì sẽ cưỡng chế thực hiện các câu vấn tin có liên quan còn nếu sai thì:


Hoặc hủy câu vấn tin



Hoặc chỉnh sửa câu vấn tin


Từ đó để quyết định câu vấn tin có được thực hiện hoặc không
Ví dụ: Khi nhập một bản ghi vào quan hệ con thì bản ghi đó có liên quan đến
một bản ghi ở quan hệ mẹ. Vậy liệu ở quan hệ mẹ đã có bản ghi liên quan.
1.2.1. Khái niệm về phán đoán
Dựa vào việc phát hiện mâu thuẫn (Phán đoán): Giả sử khi thực hiện cập nhật u
sẽ chuyển CSDL từ D sang Du. Thuật toán cưỡng chế phải xác nhận rằng tất cả các
ràng buộc liên đới vẫn đúng trong Du. Nếu trạng thái Du không nhất quán thì DBMS sẽ
cố gắng chuyển sang trạng thái khác là D‟u bằng cách hiệu chỉnh Du qua các thao tác
“bù trừ” để có D‟u nhất quán, nếu không được thì phải quay lại trạng thái D. Cách
kiểm tra này được áp dụng sau khi trạng thái của SCDL đã thay đổi nên nó được gọi là

Số hóa bởi Trung tâm Học liệu – ĐHTN




9
kiểm tra sau (Posttest). Cách tiếp cận này sẽ không hiệu quả nếu hệ thống phản hồi lại
rất nhiều thao tác khi ràng buộc bị vi phạm.
Ví dụ 1.1:
g ASG, j

PROJ: g.PNO = j.PNO

Đây là phán đoán khoá ngoại, nói rằng một dự án được tham chiếu trong quan hệ
ASG phải tồn tại (chứ không phải là

) trong quan hệ PROJ, do đó j không được


lượng từ hoá phổ dụng cho nên câu vấn tin trên không thể được xử lý bởi phép hiệu
chỉnh vấn tin.
Phương pháp ngăn chặn mâu thuẫn (kiểm tra trước) khác là dựa vào việc tạo ra
các phán đoán. Biên dịch vào lúc định nghĩa phán đoán và có thể sử dụng để ngăn
chặn sự xuất hiện các mâu thuẫn trong CSDL. Đây là một phương pháp ngăn chặn
tổng quát, có thể xử lý được toàn bộ các phán đoán đã được giới thiệu ở trên.
Định nghĩa các phán đoán biên dịch dựa trên khái niệm quan hệ vi phân
(differentinal relation). Gọi u là một cập nhật trên quan hệ R; R+ và R- là các quan hệ
vi phân của R do u gây ra; R+ gồm các bộ được chèn vào R, còn R- gồm các bộ được
xoá khỏi R; R+ =

nếu u là thao tác xoá, R- =

nếu u là thao tác chèn và R+ (R-R-)

là tập các bộ (từ R) nếu u là sửa đổi bộ.
Một phán đoán biên dịch là bộ ba (R,T,C), trong đó R là quan hệ, T là kiểu cập
nhật; C là một phán đoán biến thiên trên các quan hệ vi phân có mặt trong một cập
nhật kiểu T. Khi một ràng buộc I được định nghĩa, một tập phán đoán biên dịch có thể
được sinh ra cho các quan hệ.
Mỗi khi một quan hệ có trong I được cập nhật bởi chương trình u, các phán đoán
biên dịch cần phải được kiểm tra chỉ là các phán đoán được định nghĩa trên I cho kiểu
cập nhật của u. Cách làm này sẽ làm giảm số lượng phán đoán vì chỉ có các phán đoán
thuộc kiểu u cần được kiểm tra, chi phí cưỡng chế thi hành cũng nhỏ hơn chi phí
cưỡng chế I vì các hệ vi phân nhỏ hơn nhiều so với quan hệ gốc.
Phán đoán biên dịch, thu được bằng cách dùng các qui tắc biến đổi cho phán đoán
gốc. Các qui tắc này dựa trên ngữ nghĩa của phán đoán và các hoán vị lượng từ. Chúng
cho phép thay các quan hệ cơ sở bằng các quan hệ vi phân. Quá trình tạo ra phán đoán
biên dịch từ các quan hệ gốc được gọi là quá trình đơn giản hoá.


Số hóa bởi Trung tâm Học liệu – ĐHTN




10
Ví dụ 1.2:
Xét lại ví dụ 1.1. Phán đoán biên dịch đi kèm với ràng buộc này là:
(ASG, INSERT, C1), (PROJ, DELETE, C2), và (PROJ, MODIFI, C3)
Trong đó: C1 là
NEW

ASG+,

j

PROJ : NEW.PNO = j.PNO

C2 là
g

ASG ,

OLD

PROJ- : g.PNO

ASG ,

OLD


PROJ- :

OLD.PNO

C3 là
g

g.PNO

NEW

PROJ+ :

OLD.PNO OR OLD.PNO = NEW.PNO

Ưu điểm của phán đoán biên dịch là hiển nhiên. Chẳng hạn thao tác xóa trên quan
hệ ASG không gây ra bất kỳ một kiểm tra nào.
Thuật toán cưỡng chế sử dụng phán đoán biên dịch và được chuyên biệt hóa theo
từng lớp phán đoán. Có 3 lớp phán đoán cơ bản: phán đoán đơn quan hệ, đa quan hệ
và các phán đoán có hàm gộp nhóm.
Kiểm soát toàn vẹn ngữ nghĩa phân tán
1.2.1.1. Lớp phán đoán riêng
Là các phán đoán đơn biến và đơn quan hệ. Chúng chỉ đề cập đến các bộ được
cập nhật, độc lập với phần còn lại của CSDL.
Định nghĩa phán đoán riêng được gửi đến tất cả vị trí lưu các mảnh của quan hệ
có mặt trong phán đoán. Các phán đoán phải tương thích với vị trí phân mảnh ở hai
cấp: cấp vị trí và cấp dữ liệu. Phán đoán C xem là không tương thích với vị trí phân
mảnh P, nếu C đúng suy ra p sai. Khi đó p‟ đoán C bị loại bỏ toàn cục. Nếu có tương
thích, thì phán đoán C sẽ được lưu lại tại mọi vị trí.

Chú ý, việc thẩm tra tính tương thích được thực hiện cho các phán đoán biên dịch
kiểu cập nhật chèn.
Xét CSDL sau:
EMP (ENO, ENAME, TITLE)
PROJ(PNO, PNAME, BUDGET)
ASG(ENO, PNO, RESP, DUR)

Số hóa bởi Trung tâm Học liệu – ĐHTN




11
Ví dụ 1.3:
Khoá ngoại
PNO IN ASG REFERENCES PNO IN PROJ
Khoá, mã số PNO trong quan hệ ASG là khoá ngoại tương ứng với khoá chính
PNO trong quan hệ PROJ. Nói cách khác, một dự án được tham chiếu
trong quan hệ ASG phải tồn tại trong quan hệ PROJ.
Ví dụ 1.4:
Phụ thuộc hàm
ENO IN EMP DETERMINES ENAME
Giá trị mã số nhân viên ENO, xác định giá trị hàm tên nhân viên
ENAME.
Ví dụ 1.5:
Giả sử quan hệ EMP được phân mảnh ngang bởi 3 vị trí:
P1 : 0

ENO


“E3”

P2: “E3” < ENO

“E6”

P3: ENO > “E6”
Và cho phán đoán miền biến thiên C: ENO < “E4” thì phán đoán C tương thích
với p1 (nếu C đúng thì

p1

đúng) và p2 (nếu C đúng thì chưa chắc p2 sai, nhưng không

tương thích với p3) nếu C đúng thì p3 sai. Nhưng rõ ràng là P3 sai (vì ENO > “E6”) nên
phán đoán C không tương thích với P3 khi đó C bị loại bỏ và EMP không thoả mãn
phán đoán C.
1.2.1.2. Phán đoán hƣớng tập hợp
Phán đoán hướng tập hợp thuộc loại đa biến; nghĩa là chúng chứa mệnh đề nối
biến đơn quan hệ (như phụ thuộc hàm ở ví dụ 1.2), mã số nhân viên xác định phụ
thuộc hàm tên nhân viên là:
ENO IN EMP DETEMINES ENAME
Và đa biến đa quan hệ nhưng ràng buộc khoá ngoại ở ví dụ 1.1: Mã số PNO dự
án trong quan hệ ASG là khoá ngoại tương ứng với khoá chính PNO của hệ PROJ. Nói
cách khác là một dự án được tham chiếu trong quan hệ ASG phải tồn tại trong quan hệ
PROJ.
Mặc dù mệnh đề phán đoán có thể thuộc loại đa quan hệ nhưng một phán đoán
Số hóa bởi Trung tâm Học liệu – ĐHTN





12
biên dịch chỉ được liên kết với một quan hệ. Vì thế định nghĩa phán đoán có thể được
gửi đến tất cả các vị trí có chứa các mảnh được các biến này thảm chiếu. Việc thẩm tra
tính tương thích cũng gồm cả các mảnh của quan hệ được sử dụng trong mệnh đề nối.
Tương thích mệnh đề không có tác dụng gì ở đây vì chúng ta không thể suy ra rằng
một mệnh đề mảnh p sai nếu phán đoán C (dựa trên mệnh đề nối) đúng. Vì thế chúng.
ta cần phải thẩm tra C theo dữ liệu. Điều này đòi hỏi phải nối mảnh của quan hệ R với
tất cả các mảnh của quan hệ S, là hai quan hệ có trong mệnh đề nối. Như thế, rõ ràng
là chi phí sẽ rất cao, và như mọi phép nối khác, nó cần được tối ưu hóa bằng thể xử lý
vấn tin phân tán.
Ba tình huống sau có thể xảy ra được liệt kê theo mức chi phí.
1. Phân mảnh của R được dẫn xuất, từ phân mảnh của S dựa vào một nối
nửa trên thuộc tính được dùng trong vị trí nối
2. S được phân mảnh trên thuộc.tính nối.
3. S không được phân mảnh trên thuộc tính nối.
Trong trường hợp đầu tiên, việc kiểm tra tương thích có chí phí thấp bởi vì bộ
của S đối sánh được với một bộ của R sẽ ở cùng một vị trí. Trong trường hợp thứ hai;
mỗi bộ của R phái được so sánh với tối đa một mảnh của S, bởi vì giá trị thuộc tính nối
của bộ thuộc R có thể được dùng để tìm vị trí mảnh tương ứng của S. Trong trường
hợp thứ ba, mỗi bộ của R phải được so sánh với tất cả các mảnh của S. Nếu tất cả các
bộ của R đều bảo đảm tương thích thì phán đoán sẽ được lưu tại mỗi vị trí.
Ví dụ 1.6:
Xét phán đoán biên dịch hướng tập hợp (ASG, INSERT, Cl) được định nghĩa
trong ví dụ 1.2; trong đó C1 là
NEW ASG+ , j

PROJ : NEW.PNO = j.PNO


Chúng ta xét ba trường hợp sau.
1. ASG dược phân mảnh theo mệnh đề
ASG

PNO

PROJi

trong đó PROJi, là một mảnh của quan hệ PROJ. Trong trường hợp này, mỗi bộ
NEW của ASG đã được đặt tại cùng vị trí với bộ j sao cho NEW.PNO = j.PNO. Bởi vì
mệnh đề phân mảnh giống với mệnh đề của Cl, việc thẩm tra tương thích không mất
chi phí truyền dữ liệu.
Số hóa bởi Trung tâm Học liệu – ĐHTN




13
2. PROJ được phân mảnh ngang theo hai mệnh đề :
pl: PNO < “P3”
p2: PNO

"P3"

Trong trường hợp này, mỗi bộ NEW của ASG được so sánh với mảnh PROJ 1 nếu
NEW.PNO < “P3”, hoặc với mảnh PROJ2 nếu NEW.PNO

“P3".

3. PROJ được phân mảnh ngang theo hai mệnh đề

p1 : PNAME = "CAD/CAM"
p2; PNAMF

"CAD/CAM"

Trong trường hợp này, mỗi bộ của ASG phải được so với cả hai mảnh PROJ 1 và
PROJ2
1.2.2. Khái niệm về cưỡng chế
Dựa trên việc ngăn chặn mâu thuẫn (Cưỡng chế): Một thao tác cập nhật chỉ được
thực hiện nếu nó chuyển CSDL sang một trạng thái nhất quán khác. Thuật toán cưỡng
chế xác nhận rằng tất cả các ràng buộc liên đới đều đúng sau khi cập nhật các bộ. Các
bộ cập nhật đã có sẵn (trường hợp chèn) hoặc phải truy xuất trong CSDL (trường hợp
xóa hoặc sửa). Như vậy việc kiểm tra được thực hiện trước khi trạng thái CSDL được
thay đổi và vì vậy cách kiểm tra được gọi là kiểm tra trước (pretest). Phương pháp ngăn
chặn mâu thuẫn hiệu quả hơn phương pháp phát hiện vì chúng ta không phải quay lại
trang CSDL trước đó khi có ràng buộc bị vi phạm.
Thuật toán hiệu chỉnh vấn tin là một ví dụ về phương pháp ngăn chặn có hiệu quả
đặc biệt trong việc cưỡng chế các ràng buộc miền biến thiên. Nó đưa thêm lượng từ
hoá phán đoán vào lượng từ hoá vấn tin bằng toán tử AND cho nên câu vấn tin được
hiệu chỉnh có thể được cưỡng chế toàn vẹn.
Ví dụ 1.7:
Tăng ngân sách cho các dự án CAD/CAM lên 10% với đặc tả
UPDATE PROJ
SET BUDGET = BUDGET*1.1
WHERE PNAME = “CAD/CAM”
sẽ biến đổi thành câu vấn tin sau, trong đó có thêm điều kiện nhằm cưỡng chế ràng
buộc miền giá trị như đã thấy ở ví dụ 1.10

Số hóa bởi Trung tâm Học liệu – ĐHTN





14
UPDATE PROJ
SET BUDGET = BUDGET*1.1
WHERE PNAME = “CAD/CAM”
AND NEW. BUDGET

500000

AND NEW. BUDGET 1000000
Thuật toán hiệu chỉnh vấn tin tạo ra các kiểm tra trước lúc thực thi bằng cách lấy
hội các mệnh đề phán đoán với các mệnh đề cập nhật của mỗi chỉ thị của giao dịch.
Tuy nhiên, thuật toán chỉ áp dụng cho phép tính bộ và được đặc tả như sau:
Xét phán đoán ( x R) F(x) trong đó F là biểu thức quan hệ bộ, x là biến bộ duy
nhất. Thao tác cập nhật của R có thể được viết là ( x R)(Q(x)

update(x)) trong đó

Q là biểu thức phép tính bộ có biến tự do duy nhất. Hay nói ngắn gọn hơn, hiệu chỉnh
vấn tin cần sinh ra thao tác cập nhật ( x R)((Q(x) and F(x)

update(x). Vì thế x

cần phải được lượng từ hoá phổ dụng .
Ví dụ 1.8
g ASG, j

PROJ: g.PNO = j.PNO


Đây là phán đoán khoá ngoại, nói rằng một dự án được tham chiếu trong quan hệ
ASG phải tồn tại (chứ không phải là

) trong quan hệ PROJ, do đó j không được

lượng từ hoá phổ dụng cho nên câu vấn tin trên không thể được xử lý bởi phép hiệu
chỉnh vấn tin.
Phương pháp ngăn chặn mâu thuẫn (kiểm tra trước) khác là dựa vào việc tạo ra
các phán đoán. Biên dịch vào lúc định nghĩa phán đoán và có thể sử dụng để ngăn
chặn sự xuất hiện các mâu thuẫn trong CSDL. Đây là một phương pháp ngăn chặn
tổng quát, có thể xử lý được toàn bộ các phán đoán đã được giới thiệu ở trên.
Định nghĩa các phán đoán biên dịch dựa trên khái niệm quan hệ vi phân
(differentinal relation). Gọi u là một cập nhật trên quan hệ R; R+ và R- là các quan hệ
vi phân của R do u gây ra; R+ gồm các bộ được chèn vào R, còn R- gồm các bộ được
xoá khỏi R; R+ =

nếu u là thao tác xoá, R- =

nếu u là thao tác chèn và R+ (R-R-)

là tập các bộ (từ R) nếu u là sửa đổi bộ.
Một phán đoán biên dịch là bộ ba (R,T,C), trong đó R là quan hệ, T là kiểu cập
nhật; C là một phán đoán biến thiên trên các quan hệ vi phân có mặt trong một cập
Số hóa bởi Trung tâm Học liệu – ĐHTN




15

nhật kiểu T. Khi một ràng buộc I được định nghĩa, một tập phán đoán biên dịch có thể
được sinh ra cho các quan hệ.
Mỗi khi một quan hệ có trong I được cập nhật bởi chương trình u, các phán đoán
biên dịch cần phải được kiểm tra chỉ là các phán đoán được định nghĩa trên I cho kiểu
cập nhật của u. Cách làm này sẽ làm giảm số lượng phán đoán vì chỉ có các phán đoán
thuộc kiểu u cần được kiểm tra, chi phí cưỡng chế thi hành cũng nhỏ hơn chi phí
cưỡng chế I vì các hệ vi phân nhỏ hơn nhiều so với quan hệ gốc.
Phán đoán biên dịch, thu được bằng cách dùng các qui tắc biến đổi cho phán đoán
gốc. Các qui tắc này dựa trên ngữ nghĩa của phán đoán và các hoán vị lượng từ. Chúng
cho phép thay các quan hệ cơ sở bằng các quan hệ vi phân. Quá trình tạo ra phán đoán
biên dịch từ các quan hệ gốc được gọi là quá trình đơn giản hoá.
Ví dụ 1.9
Xét lại ví dụ 1.8. Phán đoán biên dịch đi kèm với ràng buộc này là:
(ASG, INSERT, C1), (PROJ, DELETE, C2), và (PROJ, MODIFI, C3)
Trong đó: C1 là
NEW

ASG+,

j

PROJ : NEW.PNO = j.PNO

C2 là
g

ASG ,

OLD


PROJ- : g.PNO

ASG ,

OLD

PROJ- :

OLD.PNO

C3 là
g

g.PNO

NEW

PROJ+ :

OLD.PNO OR OLD.PNO = NEW.PNO

Ưu điểm của phán đoán biên dịch là hiển nhiên. Chẳng hạn thao tác xóa trên quan
hệ ASG không gây ra bất kỳ một kiểm tra nào.
Thuật toán cưỡng chế sử dụng phán đoán biên dịch và được chuyên biệt hóa theo
từng lớp phán đoán. Có 3 lớp phán đoán cơ bản: phán đoán đơn quan hệ, đa quan hệ
và các phán đoán có hàm gộp nhóm.
Tóm tắt thuật toán cưỡng chế như sau:
Chúng ta nhớ rằng một chương trình cập nhật sẽ hiệu chỉnh tất cả các bộ của
quan hệ R có thỏa một lượng từ hóa nào đó. Thuật toán được thực hiện theo hai bước:
Bước 1 tạo ra quan hệ vi phân R+ và R- từ R, bước thứ hai truy xuất các bộ trong R+ và


Số hóa bởi Trung tâm Học liệu – ĐHTN




16
R- để lấy ra các bộ không thỏa các phán đoán biên dịch. Nếu không truy xuất được bộ
nào, phán đoán sẽ có gía trị.
Ví dụ 1.10:
Giả sử có một thao tác xoá trên PROJ. Cưỡng chế (PROJ, DELETE, C2) tạo ra
các câu lệnh sau:
Result  truy xuất tất cả các bộ của PROJ-, trong đó (C2) đúng
Thế thì nếu Result là rỗng, phán đoán này đã được xác nhận. (nghĩa là
ASG ,

OLD

PROJ- : g.PNO = OLD.PNO đúng mà Result =

g

; thì phán đoán này

đã được xác nhận bởi phép cập nhật .
Cƣỡng chế thi hành các phán đoán toàn vẹn phân tán
Cưỡng chế thi hành các phán đoán toàn vẹn phân tán rõ ràng phức tạp hơn so với
các DBMS tập trung. Vấn đề chính là quyết định, xem vị trí nào sẽ thực hiện cưỡng
chế. Lựa chọn phụ thuộc vào lớp phán đoán, kiểu cập nhật, và bản chất của vị trí đưa
ra yêu cầu cập nhật (được gọi là vị trí vấn tin chính). Vị trí này.có thể có hoặc không

có quan hệ cần cập nhật hoặc một số quan hệ cố mặt trong phán đoán toàn vẹn. Tham
số quan trọng cần xem xét là chi phí truyền dữ liệu, kể cả các thông báo, từ vị trí này
đến vị trí khác. Bây giờ chúng ta sẽ phân tích một số chiến lược khác nhau theo những
tiêu chuẩn này.
1.2.2.1. Phán đoán riêng
Hai trường hợp có thể xẩy ra: Trường hợp thứ nhất, nếu cập nhật là yêu cầu chèn,
phán đoán riêng có thể bị ép buộc thi hành tại vị trí đưa ra cập nhật. Trường hợp nếu
cập nhật là xóa hoặc sửa đổi, yêu cầu sẽ gửi đến các vị trí có quan hệ cần cập nhật. Xử
lý truy vấn sẽ thực hiện bằng cách lượng từ hóa cập nhật cho mỗi mảnh. Các bộ được
tạo ra tại các vị trí sẽ hợp lại thành một quan hệ tạm thời trong trường hợp câu lệnh
xóa, hoặc hiệu chỉnh (nghĩa là R+ và R-). Mỗi vị trí có mặt trong cập nhật đều thảm tra
các phán đoán có liên quan đến vị trí đó (ví dụ ràng buộc miền khi xóa).
1.2.2.2. Phán đoán hướng tập hợp
Trước tiên chúng ta nghiên cứu các ràng buộc đơn quan hệ qua một ví dụ.
Xét phụ thuộc hàm của ví dụ 1.4. Phán đoán biên dịch kèm với kiểu cập nhật
INSERT là
(EMP, INSERT, C)
Số hóa bởi Trung tâm Học liệu – ĐHTN




×