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

Xử lý 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 (688.48 KB, 61 trang )

Số hóa bởi trung tâm học liệu

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



VŨ ANH TÀI




XỬ LÝ CÂU TRUY VẤN SQL
QUA PHÁN ĐOÁN VÀ CƢỠNG CHẾ

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



Số hóa bởi trung tâm học liệu

i
LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi
tìm hiểu, nghiên cứu. Các tài liệu tham khảo đƣợc trích dẫn và chú thích đầy đủ.

Tác giả
VŨ ANH TÀI




















Số hóa bởi trung tâm học liệu

ii
LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy PGS.TS LÊ HUY THẬP
đã định hƣớng và nhiệt tình hƣớng dẫn, giúp đỡ tôi rất nhiều về mặt chuyên môn trong quá
trình làm 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, Đại học Thái Nguyên.
Cuối cùng tôi xin dành tình cảm thân thiết nhất cho bạn bè, đồng nghiệp, cha
mẹ và gia đình, những ngƣời luôn gần gũi để động viên, chia sẻ cùng tôi trong suốt
thời gian qua.

Thái Nguyên, tháng 9 năm 2013
Vũ Anh Tài



Số hóa bởi trung tâm học liệu

iii
MỤC LỤC

LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC CÁC BẢNG v
DANH MỤC CÁC HÌNH vi
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 2
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. Giới thiệu về logic 3
1.1.1 Các loại mệnh đề 3
1.1.2. Khái niệm vị từ 4
1.2. Tổng quan về cơ sở dữ liệu phân tán 4
1.2.1. Các phƣơng pháp phân mảnh 4
1.2.1.1 Phƣơng pháp phân mảnh ngang 4
1.2.1.2 Phƣơng pháp phân mảnh dọc 15
1.2.1.3 Phƣơng pháp phân mảnh hỗn hợp 16
1.2.1. Kiểm soát toàn vẹn ngữ nghĩa phân tán 16
1.2.3 Khái niệm về cƣỡng chế và phán đoán 17
1.3 Kết luận 20
Chƣơng 2: XỬ LÝ CÂU TRUY VẤN SQL 21
2.1. Kiểm soát toàn vẹn ngữ nghĩa phân tán 21
2.1.1 Lớp phán đoán riêng 21
2.1.2. Phán đoán hƣớng tập hợp 22
2.2. Cƣỡng chế thi hành các phán đoán toàn vẹn phân tán 24


Số hóa bởi trung tâm học liệu

iv
2.2.1. Phán đoán riêng 24
2.2.2. Phán đoán hƣớng tập hợp 24

2.2.3. Phán đoán có hàm gộp 27
2.3. Các phƣơng pháp rút gọn dựa vào phán đoán và cƣỡng chế 27
2.3.1 Rút gọn cho phân mảnh ngang nguyên thuỷ 27
2.3.1.1 Rút gọn với phép chọn 28
2.3.1.2. Rút gọn với phép nối 29
2.3.2. Rút gọn cho phân mảnh ngang dẫn xuất 31
2.3.3. Rút gọn cho phân mảnh dọc 35
2.3.4 Rút gọn cho phân mảnh hỗn hợp 37
2.4. Kết luận 41
Chƣơng 3: ỨNG DỤNG 43
3.1. Ứng dụng tạo CSDL quản lý sinh viên tại Trƣờng Cao đẳng Công nghệ Viettronics 43
3.2. Ứng dụng các phán đoán và cƣỡng chế thi hành câu SQL về các thông
tin cần kết xuất trong CSDL trên 45
3.3. Kết luận chƣơng 3 52
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA LUẬN VĂN 53
TÀI LIỆU THAM KHẢO 54



Số hóa bởi trung tâm học liệu

v
DANH MỤC CÁC BẢNG
Bảng 1.1. Bảng chân trị các phép toán mệnh đề 3
Bảng 1.2. Mức ƣu tiên của các phép toán logic 4
Bảng 1.3. Mảnh ngang DuAn
H1
7
Bảng 1.4. Mảnh ngang DuAn
H2

7
Bảng 1.5. Mảnh ngang DuAn
H3
7
Bảng 1.6. TraLuong
1
10
Bảng 1.7 TraLuong
2
10
Bảng 1.8. Phân hoạch ngang cho quan hệ DuAn: DuAn
H1
,

DuAn
H3
, DuAn
H4
,

DuAn
H6
12
Bảng 1.9. Khoa 13
Bảng 1.10. Sinhvien 13
Bảng 1.11. Monhoc 13
Bảng 1.12. Diem 14
Bảng 1.13: Sinhvien
1
15

Bảng 1.14: Sinhvien
2
15
Bảng 1.15: Monhoc
1
16
Bảng 1.16: Monhoc
a
16
Bảng 2.1. Quan hệ EMP 38
Bảng 2.2. Mảnh hỗn hợp EMP
HH1
38
Bảng 2.3. Mảnh hỗn hợp EMP
HH2
38
Bảng 2.4. Mảnh hỗn hợp EMP
HH3
39
Bảng 3.1. Khoa 48
Bảng 3.2. Sinhvien 48
Bảng 3.3. monnganh 48
Bảng 3.4. Lophoc 48
Bảng 3.5. Sinhvien
1
49
Bảng 3.6. Sinhvien
2
49
Bảng 3.7: Monnganh

1
49



Số hóa bởi trung tâm học liệu

vi
DANH MỤC CÁC HÌNH

Hình 1.1 Biểu diễn mối liên hệ giữa các quan hệ nhờ các đƣờng nối 5
Hình 1.2: Mối liên hệ giữa các quan hệ 14
Hình 2.1. Rút gọn cho phân mảnh ngang (với phép chọn) 29
Hình 2.2. (a) vấn tin gốc 31
Hình 2.2. (b) vấn tin đã rút gọn 31
Hình 2.3. Vấn tin gốc của ví dụ 2.10 33
Hình 2.4. Vấn tin gốc đã đƣợc giao hoán 34
Hình 2.5. Vấn tin sau khi dùng vị từ mâu thuẫn 34
Hình 2.6. Cây vấn tin sau khi giao hoán phép hợp và phép nối 35
Hình 2.7. Rút gọn cho phân mảnh dẫn xuất 35
Hình 2.8a. Phép chiếu vô dụng 36
Hình 2.8 b,c,d. Rút gọn cho phân mảnh dọc 37
Hình 2.9. Cây vấn tin gốc 40
Hình 2.10. Cây vấn tin đã loại EMP
HH1
40
Hình 2.11. Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên 41
Hình 2.12. Câu vấn tin đã rút gọn 41
Hình 3.1. Sơ đồ kết nối các quan hệ 45
Hình 3.2. Cây truy vấn tiền xử lý của ví dụ 1 46

Hình 3.3. Các cây nối tƣơng đƣơng của ví dụ 1 46
Hình 3.4. Các cây nối tƣơng đƣơng của ví dụ 2 47
Hình 3.5. Các cây nối tƣơng đƣơng của ví dụ 2 47


Số hóa bởi trung tâm học liệu

1
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 “ Xử lý 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 xử lý 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 xử lý 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.


Số hóa bởi trung tâm học liệu

2
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.
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 xử lý câu truy vấn phân tán.




















Số hóa bởi trung tâm học liệu

3
Chƣơng 1
CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu về logic
1.1.1 Các loại mệnh đề
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ố”;
Các phép toán mệnh đề
Bao gồm: Phép phủ định( ), phép hội( ), phép tuyển( ), phép kéo
theo( , )
Bảng chân trị của các phép toán mệnh đề
Bảng 1.1. Bảng chân trị các phép toán mệnh đề
p
q
p
q
p q
p q
p q
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
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:


Số hóa bởi trung tâm học liệu

4

Bảng 1.2. Mức ƣu tiên của các phép toán logic
Ký hiệu phép toán
Nghĩa của phép toán
, ,
Phủ định
,
Hội, tuyển
,
Kéo theo, tƣơng đƣơng
1.1.2. Khái niệm vị từ
Định nghĩa: Cho hàm p(x, y, z, ) phụ thuộc vào các biến x, y, z, lấy các giá
trị trên các miền xác định X, Y, Z, tƣơng ứng. Nếu khi thay thế các biến x, y, z,
bởi các giá trị cụ thể x
0
, y
0
, z
0
, cũng thuộc các miền trên mà p(x
0
, y
0
, z
0
, ) trở
thành một mệnh đề có chân trị: đúng, sai (ký hiệu là 1, 0) thì p(x, y, z, ) đƣợc gọi
là một vị từ.
Ví dụ: p(n) = “ n là một số nguyên tố”
Nhƣ vậy hàm p (n) phụ thuộc vào biến n có miền xác định là tập các số
nguyên. Khi ta thay n bởi 1 giá trị cụ thể thì p(n) sẽ cho chân trị 1 hoặc 0. Chẳng

hạn: p(2) =1, p(4) = 0, p(37) =1, p(144) = 0
Vị từ p(n) là “ n là số nguyên tố” là một hàm từ tập tự nhiên vào {0, 1}
1.2. Tổng quan về cơ sở dữ liệu phân tán
1.2.1. Các phương pháp phân mảnh
Có ba phƣơng pháp phân mảnh cơ bản là: Phƣơng pháp phân mảnh ngang,
phƣơng pháp phân mảnh dọc và phƣơng pháp phân mảnh hỗn hợp.
1.2.1.1 Phương pháp phân mảnh ngang
Có hai loại phân mảnh ngang: phân mảnh ngang nguyên thuỷ và phân mảnh
ngang dẫn xuất.
- Phân mảnh ngang nguyên thuỷ là phân rã một quan hệ thành các tập gồm các
bộ thỏa các vị từ đƣợc định nghĩa trên quan hệ đó.
- Phân mảnh ngang dẫn xuất là phân mảnh một quan hệ dựa vào các vị từ đƣợc
định nghĩa trên quan hệ chủ (Parent).
Các thông tin cần cho phân mảnh ngang
(a) Thông tin về CSDL
Thông tin về CSDL là thông tin về lƣợc đồ khái niệm toàn cục của CSDL. Tức


Số hóa bởi trung tâm học liệu

5
là chúng ta cần biết đƣợc cách mà quan hệ con sẽ hợp ( ) lại với nhau nhƣ thế nào.
Trong mô hình quan hệ, các liên kết giữa các thực thể cũng đƣợc biểu thị bằng quan
hệ. Với mục đích thiết kế phân tán, các mối liên kết cũng đƣợc mô hình hoá theo
kiểu mô hình quan hệ. Theo cách này, chúng ta sẽ vẽ một đƣờng nối có hƣớng từ
quan hệ Parent đến quan hệ Child.
Ví dụ 1.1










Hình 1.1 Biểu diễn mối liên hệ giữa các quan hệ nhờ các đƣờng nối
Hình trên cho thấy một cách biểu diễn các đƣờng nối giữa các quan hệ. Chú
ý rằng hƣớng của các đƣờng nối sẽ cho biết mối quan hệ một - nhiều (chẳng hạn với
“trình độ chuyên môn” có nhiều nhân viên có cùng “trình độ chuyên môn” đó, vì
thế đƣờng nối hƣớng từ quan hệ TraLuong đến quan hệ NhanVien). Khi là liên kết
nhiều - nhiều đƣợc biểu diễn bằng hai đƣờng nối đến các quan hệ (chẳng hạn giữa
NhanVien, DuAn và PhanNhiem).
Một số thuật ngữ đƣợc sử dụng thông dụng trong mô hình mạng là quan hệ
nguồn - đích. Chúng ta hãy định nghĩa hai hàm: Nguon và Dich, chúng là các ánh
xạ từ tập các đƣờng nối đến tập các quan hệ. Cho trƣớc một đƣờng nối chúng sẽ trả
về quan hệ đích hoặc quan hệ chủ nguồn của đƣờng nối
Ví dụ 1.2
Cho đƣờng nối l
1
của hình 1.1, các hàm Nguon và Dich có các giá trị sau:
Nguon(l
1
) = TraLuong
Dich( l
1
) = NhanVien
TrinhDoCM. Luong
MaNV, TenNV, TrinhDoCM
NhanVien

MaDuAn, TenDuAn, NganSach, ViTri
DuAn
MaNV, MaDuAn, ChucVu, ThoiGianLV
PhanNhiem
Hình 2.3-1. Biểu diễn mối liên hệ giữa các quan hệ nhờ các đƣờng nối.
TraLuong
l
1

l
2

l
3




Số hóa bởi trung tâm học liệu

6
Thông tin định lƣợng cần có về CSDL là lực lƣợng của các quan hệ, đƣợc ký
hiệu là Card (.)
(b) Thông tin về ứng dụng
Chúng ta cần hai loại thông tin: định tính và định lƣợng về các ứng dụng.
Thông tin định tính phục vụ phân mảnh, còn thông tin định lƣợng sử dụng cho mô
hình cấp phát.
Bây giờ chúng ta cần tìm cách xác định các vị từ đơn giản cho quan hệ
R(A
1

,A
2
…, A
n
) trong đó A
i
là thuộc tính với miền giá trị D
i
. Vị từ đơn giản p
k
đƣợc
định nghĩa trên R có dạng:
p
k
: A
i
Giá trị thuộc tính
Trong đó θ {,=, <, ≠, ≤, >, ≥} và giá trị thuộc tính đƣợc chon từ miền D
i
.
Ví dụ 1.3
Cho quan hệ DuAn nhƣ sau:
p
1
: TenDuAn = “Bảo dƣỡng”
p
2
: BUDFET ≤ 200000
là hai vị từ đơn giản trên quan hệ DuAn.
Gọi P

R
là tập tất cả các vị từ đơn giản đƣợc định nghĩa trên quan hệ R.
Tức là P
R
= { p
1
, p
2
, p
m
},
chẳng hạn P
DuAn
= { p
1
, p
2
}
Thấy rằng vị từ đơn giản rất dễ xử lý, tuy nhiên câu vấn tin lại thƣờng là tổ
hợp của các vị từ đơn giản. Một tổ hợp cần đặc biệt chú ý là vị từ dạng chuẩn hội,
đó là hội của các tuyển vị từ đơn giản.
Bởi vì chúng ta luôn có thể biến đổi một biểu thức boole thành dạng chuẩn hội, việc
sử dụng vị từ hội sơ cấp trong một thuật toán không làm mất đi tính tổng quát.
Cho một tập P
R
= { p
1
, p
2
, p

m
}, tập các vị từ hội sơ cấp đƣợc ký hiệu là M =
{ m
1
,m
2
m
n
}, trong đó m
k
đƣợc xác định nhƣ sau:
m
k
=
Ki
p*
i
với 1≤k≤ m, 1 ≤ j ≤ z
Với K là tập con bất kỳ của I = {1, 2, …, m}, và p*
i
= p
i
hoặc p*
i
= p
i
.


Số hóa bởi trung tâm học liệu


7
1.2.1.1.1 Phân mảnh ngang nguyên thuỷ
Phân mảnh ngang nguyên thuỷ đƣợc định nghĩa bằng một thuật toán chọn trên
các quan hệ nguồn của một lƣợc đồ CSDL. Mảnh ngang R
i
bao gồm các bộ của R
đƣợc chọn ra theo công thức:
R
i
=
Fi
(R), 1≤ i ≤ z.
Trong đó F
i
là công thức chọn. Chú ý rằng chúng ta xét F
i
có dạng chuẩn hội,
nó là một vị từ hội sơ cấp.
Ví dụ 1.4
Phân rã quan hệ DuAn thành các mảnh ngang DuAn
H1
và DuAn
H2
nhƣ sau:
DuAn
H1
=
NganSach 200000
(DuAn)

DuAn
H2
=
NganSach > 200000
(DuAn)
Ví dụ 1.5
Xét quan hệ DuAn. Chúng ta có thể định nghĩa các mảnh ngang sau đây dựa
vào vị trí dự án.
DuAn
H1
=
ViTri = "Hải Phòng")
(DuAn)
DuAn
H2
=
ViTri = "Hà Nội"
(DuAn)
DuAn
H3
=
ViTri = "TP.Hồ chí Minh"
(DuAn)
Các mảnh thu đƣợc trình bày trong các bảng 1.3, 1.4, 1.5 tƣơng ứng
Bảng 1.3. Mảnh ngang DuAn
H1

MaDuAn
TenDuAn
NganSach

ViTri
DA1
Thiết bị đo đạc
150000
Hải Phòng
Bảng 1.4. Mảnh ngang DuAn
H2

MaDuAn
TenDuAn
NganSach
ViTri
DA2
DA3
Phát triển CSDL
CAD/CAM
135000
250000
Hà Nội
Hà Nội
Bảng 1.5. Mảnh ngang DuAn
H3

MaDuAn
TenDuAn
NganSach
ViTri
DA4
Bảo dƣỡng
310000

TP.HồChí Minh


Số hóa bởi trung tâm học liệu

8
Nhận xét:
Cho tập các vị M = {m
i
| m
i
là vị từ hôi sơ cấp i = 1, 2 ,…}
Ký hiệu |M| = Card(M). Vậy thì:

(1) Mảnh ngang R
i
của quan hệ R là một quan hệ chứa các bộ của R thoả mãn
vị từ hội sơ cấp m
i
.
(2) Số lƣợng các mảnh ngang khi phân mảnh theo M sẽ là |M|, mỗi mảnh
ngang trong trƣờng hợp này cũng đƣợc gọi là mảnh hội sơ cấp.
Do lí luận trên, chúng ta thấy bƣớc đầu tiên của mọi thuật toán phân mảnh
ngang là xác định các vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp.
Một số tính chất quan trọng của tập vị từ đơn giản là tính đầy đủ và tính cực tiểu.
Định nghĩa 1. Tập các vị từ đơn giản đầy đủ
Tập các vị từ đơn giản Pr đƣợc gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng
(vấn tin) truy xuất đến một bộ bất kỳ thuộc một mảnh hội sơ cấp nào đó đƣợc định
nghĩa theo Pr đều bằng nhau.
Định nghĩa 2. Vị từ đơn giản liên đới

Vị từ đơn giản p

đƣợc gọi là liên đới nếu biết đƣợc sự ảnh hƣởng của nó đến
cách thực hiện phân mảnh (nghĩa là vị từ p làm cho mảnh F bị phân thành các mảnh
F
i
và F
j
đều khác rỗng, thì vẫn có ít nhất một ứng dụng truy xuất đến F
i
và F
j
theo
những cách khác nhau. Nói cách khác, vị từ đơn giản p phải có liên đới với vị từ
phân mảnh.
Định nghĩa 3. Tập vị từ đơn giản cực tiểu
Nếu tất cả các vị từ của tập Pr đều có liên đới thì Pr đƣợc gọi là cực tiểu.
Ghi chú :
Một kinh nghiệm để rút ra tính liên đới có thể đƣợc trình bày nhƣ sau: Gọi m
i
và m
j
là hai vị từ hội sơ cấp và gọi F
i
, F
j
là hai mảnh tƣơng ứng với các vị từ hội sơ
cấp này. Thế thì p
i
là liên đới khi và chỉ khi có sự thỏa mãn sau:

)card(F
)acc(m
)card(F
)acc(m
j
j
i
i

Thật toán lặp sau đây cho ta tập vị từ đầy đủ và cực tiểu P’
R
khi đã có tập các
vị từ đơn giản P
R
. Thuật toán này, đƣợc gọi là COM_MIN, nội dung COM_MIN
đƣợc trình bày trong [2], [3], [4],


Số hóa bởi trung tâm học liệu

9
Qui tắc1 (Thừa nhận). Quy tắc về tính đầy đủ và cực tiểu.
Một quan hệ (hoặc một mảnh) đƣợc phân hoạch thành ít nhất hai phần thì
chúng phải đƣợc truy xuất khác nhau bởi ít nhất một ứng dụng.
Nhận xét thuật toán
Thuật toán bắt đầu tìm một vị từ có liên đới và phân hoạch quan hệ đã cho.
Vòng lặp Do …. Until để thêm các vị từ vào tập này, bảo đảm tính cực tiểu tại mỗi
bƣớc vì thế vào cuối vòng lặp, tập P’
R
là đầy đủ và cực tiểu.

Bƣớc thứ hai trong quá trình thiết kế phân mảnh ngang nguyên thuỷ là tìm các
vị từ hội sơ cấp có thể định nghĩa trên các vị từ trong tập P’
R
. Việc xác định các vị
từ hội sơ cấp là tầm thƣờng; khó khăn chính là tập các vị hội sơ cấp có thể rất lớn -
là hàm mũ theo số lƣợng các vị từ đơn giản. Trong bƣớc kế tiếp chúng ta sẽ tìm
cách làm giảm số lƣợng vị từ hội sơ cấp cân đƣợc định nghĩa trong phân mảnh.
Bƣớc thứ ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa (điều này
đƣợc thực hiện khi sử dụng phép kéo theo I đã đƣợc trình bày trong [2], [3].
Nhằm chỉ ra cách tìm tập vị từ hội sơ cấp từ tập các vị từ đơn giản P
R
(đã đƣợc
xác định từ các ứng dụng trên quan hệ R), phân mảnh ngang nguyên thuỷ quan hệ R
theo các các vị từ hội sơ cấp đã tìm đƣợc, chúng ta dùng thuật toán
P_HORIZONTAL [2], [3], [5].
Ví dụ 1.6
Xét hai quan hệ cần phải phân mảnh ngang nguyên thuỷ là: TraLuong và
DuAn. Giả sử rằng chỉ có một ứng dụng truy xuất TraLuong ứng dụng này kiểm tra
thông tin lƣơng và xác định số lƣơng sẽ đƣợc tăng. Giả sử rằng các bản ghi nhân
viên đƣợc quản lý ở hai nơi, một nơi xử lý các mẫu tin có lƣơng thấp hơn hay bằng
30000 và một nơi khác xử lý các mẫu tin của những nhân viên có lƣơng cao hơn
30000. Vì thế câu vấn tin đƣợc đƣa ra ở cả hai nơi.
Tập vị từ đơn giản đƣợc sử dụng để phân hoạch quan hệ TraLuong là
p
1
: Luong 30000
p
2
: Luong > 30000
Vì vậy cho ra tập các vị từ đơn giản khởi đầu là P

TraLuong
= {p
1
, p
2
}. áp dụng
thuật toán COM_MIN với i = 1 làm giá trị khởi đầu sinh ra P’
TraLuong
= {p
1
}. Đây là


Số hóa bởi trung tâm học liệu

10
tập đầy đủ và cực tiểu vì p
2
không phân hoạch F
1
(là mảnh đƣợc vị từ hội sơ cấp
ứng với p
1
tạo ra) theo quy tắc 1. Chúng ta có thể tạo ra các vị từ hội sơ cấp sau đây
làm các phần tử của M:
m
1
: Luong 3000
m
2

: (Luong 3000) = Luong > 3000
M = {m
1
, m
2
}

Sau đó chúng ta phân mảnh quan hệ TraLuong thành hai mảnh F
s
=
{TraLuong
1
, TraLuong
2
} theo M nhƣ bảng 1.6 và 1.7
TrinhDoCM
Luong
Kỹ sƣ cơ khí
Lập trình viên
27000
24000
Bảng 1.6. TraLuong
1

TrinhDoCM
Luong
Kỹ sƣ điện
Phân tích và
thiết kế hệ thống
40000

34000
Bảng 1.7 TraLuong
2

Chúng ta hãy xét quan hệ DuAn. Giả sử rằng có hai ứng dụng, ứng dụng đầu
tiên đƣợc đƣa ra tại ba vị trí cần tìm tên dự án và ngân sách của các dự án khi cho
biết vị trí. Theo cú pháp SQL, câu vấn tin đƣợc viết là:
SELECT TenDuAn NganSach
FROM DuAn
WHERE ViTri = Giá trị của các vị trí
Đối với ứng dụng này, các vị từ đơn giản có thể đƣợc dùng là:
p
1
: ViTri = “Hải Phòng”
p
2
: ViTri = “Hà Nội”
p
3
: ViTri = “TP.Hồ Chí Minh ”

Ứng dụng thứ hai đƣợc đƣa ra tại hai vị trí và phải do ban điều hành dự án đƣa
ra. Những dự án có ngân sách dƣới 200000$ đƣợc quản lý tại một vị trí, còn những


Số hóa bởi trung tâm học liệu

11
dự án có ngân sách lớn hơn đƣợc quản lý tại vị trí thứ hai. Vì thế các vị từ đơn giản
phải đƣợc sử dụng để phân mảng theo ứng dụng thứ hai là

p
4
: NganSach 200000
p
5
: NganSach > 200000
Nếu kiểm tra bằng thuật toán COM_MIN, tập P’
DuAn
= {p
1
, p
2
, p
3
, p
4
, p
5
} rõ
ràng là đầy đủ và cực tiểu.
Dựa trên P’
DuAn
, chúng ta có thể định nghĩa sáu vị trí từ hội sơ cấp sau đây tạo
ra M:
m
1
: (ViTri = “Hải Phòng”) (NganSach 200000)
m
2
: (ViTri = “Hải Phòng”) (NganSach > 200000)

m
3
: (ViTri = “Hà Nội”) (NganSach 200000)
m
4
: (ViTri = “Hà Nội”) (NganSach >200000)
m
5
: (ViTri = “TP.Hồ Chí Minh ”) (NganSach 200000)
m
6
: (ViTri = “TP.Hồ Chí Minh ”) (NganSach > 200000)
Đây không phải là các vị từ hội sơ cấp duy nhất có thể đƣợc tạo ta. Chẳng hạn
vẫn có thể định nghĩa các vị từ
p
1
p
2
p
3
p
4
p
5

Tuy nhiên các phép kéo theo
i
1
: p
1

p
2
p
3
i
2
: p
2
p
1
p
3
i
3
: p
3
p
1
p
2
i
4
: p
4
p
4
p
5
i
5

: p
5
p
4

i
6
: p
4
p
5
i
7
: p
5
p
4
sẽ hiển nhiên cho phép loại bỏ những vị trí từ hội sơ cấp này và chúng ta còn
lại m
1
đến m
6
.
Xem xét ví dụ 1.6, chúng ta có thể cố gắng chứng tỏ rằng các phép kéo theo
dƣới đây đúng:


Số hóa bởi trung tâm học liệu

12

i
8
: ViTri = “Hải Phòng” (NganSach > 20000)
i
9
: ViTri = “TP.Hồ Chí Minh ” (NganSach 20000)
i
10
: (ViTri = “Hải Phòng”) NganSach 20000
i
11
: (ViTri = “TP.Hồ Chí Minh ”) NganSach > 20000
Tuy nhiên cần nhớ rằng các phép kéo theo phải đƣợc định nghĩa theo ngữ nghĩa
của CSDL, không phải theo các giá trị hiện tại. Một số mảnh đƣợc định nghĩa theo M =
{m
1
, …, m
6
} có thể rỗng nhƣng chúng vẫn là các mảnh. Qua ngữ nghĩa của CSDL
không có bằng chứng nào cho thấy rằng các phép kéo theo từ i
8
đến i
11
là đúng.
Kết quả của phân mảnh ngang nguyên thuỷ cho DuAn là tạo ra sáu mảnh F
DuAn

= {DuAn
H1
, DuAn

H2
, DuAn
H3
, DuAn
H4
, DuAn
H5
, DuAn
H6
} của quan hệ DuAn theo
các vị từ hội sơ cấp M (trong các bảng 1.8). Chúng ta cũng cần chú ý rằng có một số
mãnh rỗng) (DuAn
H2
, DuAn
H5
) và vì thế không đƣợc trình bày trong các bảng 1.8
DuAn
H1

MaDuAn
TenDuAn
NganSach
ViTri
DA1

Thiết bị đo đạc
15000
Hải Phòng
DuAn
H3


MaDuAn
TenDuAn
NganSach
ViTri
DA2
Database Develop
135000
Hà Nội
DuAn
H4

MaDuAn
TenDuAn
NganSach
ViTri
DA3
CAD/CAM
250000
Hà Nội
DuAn
H6

MaDuAn
TenDuAn
NganSach
ViTri
DA4
Bảo dƣỡng
31000

TP.Hồ Chí Minh
Bảng 1.8. Phân hoạch ngang cho quan hệ DuAn: DuAn
H1
,

DuAn
H3
, DuAn
H4
,

DuAn
H6
1.2.1.1.2. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất dựa trên các vị từ đƣợc định nghĩa trên quan hệ
khác, để định nghĩa quan hệ khác ngƣời ta thƣờng dùng mô hình thực thể - liên hệ


Số hóa bởi trung tâm học liệu

13
vì trong mô hình này các mối liên hệ đƣợc biểu diễn bằng các đƣờng nối có hƣớng
giữa các quan hệ có liên hệ với nhau.
Phân mảnh ngang dẫn xuất đƣợc định nghĩa trên một quan hệ thành viên của
một đƣờng nối dựa theo phép toán chọn trên quan hệ chủ nhân của đƣờng nối đó.
Nhƣ thế nếu cho trƣớc một đƣờng nối L, trong đó owner(L)=S và member(L)
=R, các mảnh ngang dẫn xuất của R đƣợc định nghĩa là:
R
i
=R |>< S

i
, 1 i w
Trong đó w là số lƣợng các mảnh đƣợc định nghĩa trên R và S
i
=S(E
i
) và E
i

công thức định nghĩa mảnh ngang nguyên thuỷ S
i
.
Ví dụ 1.7
Giả sử ta có các quan hệ sau:
Bảng 1.9. Khoa
Makhoa
Tenkhoa
Slgiaovien
CNTT
Công nghệ Thông tin
25
QTKD
Quản trị Kinh doanh
35
Đ-ĐT
Điện - Điện tử
20
Bảng 1.10. Sinhvien
Masv
Hodem

Ten
Ngaysinh
Gioitinh
Khoa
503101001
Nguyễn Đức
Anh
10/02/1982
Nam
CNTT
505116016
Hà Thị Lan
Anh
11/10/1983
Nữ
QTKD
504102015
Phan Thị

04/06/1985
Nữ
CNTT
Bảng 1.11. Monhoc
Mamon
Tenmon
Sodvht
TCS
Tin học cơ sở
4
VB

Lập trình Visual Basic
4
Anh1
Tiếng anh cơ sở 1
6


Số hóa bởi trung tâm học liệu

14
Bảng 1.12. Diem
Masv
Mamon
Diem
503101001
TCS
8
505116016
TCS
5
503101001
Anh1
6
Và mối liên hệ giữa các quan hệ đƣợc thể hiện qua hình 1.2 dƣới đây:










Hình 1.2: Mối liên hệ giữa các quan hệ
Xét quan hệ Sinhvien ở bảng 1.10 và căn cứ vào mối liên hệ giữa các quan hệ
ở hình 1.2. Ta có thể phân mảnh dẫn xuất quan hệ Sinhvien thành nhóm các sinh
viên thuộc khoa có số lƣợng giáo viên lớn hơn 30 và nhóm các sinh viên thuộc khoa
có số lƣợng giáo viên từ 30 trở xuống.
Sinhvien
1
= Sinhvien |>< Khoa
1

Sinhvien
2
= Sinhvien |>< Khoa
2

Trong đó
Khoa
1
= Khoa (Slgiaovien >30)
Khoa
2
= Khoa (Slgiaovien <=30)
Kết quả phân mảnh ngang dẫn xuất Sinhvien ta đƣợc: Quan hệ Sinhvien
1
trình
bày qua bảng 1.13 và quan hệ Sinhvien
2

đƣợc trình bày qua bảng 1.14

Makhoa, Tenkhoa, SLGV
Khoa
Masv,Hodem,Ten,Ngaysinh,Gioitinh,Khoa
Sinhvien
Mamon,Tenmon,Sodvht
Monhoc
Masv, Mamon, Diem
Monhoc
L
1
L
2
L
3



Số hóa bởi trung tâm học liệu

15
Bảng 1.13: Sinhvien
1

Masv
Hodem
Ten
Ngaysinh
Gioitinh

Khoa
505146016
Hà Thị Lan
Anh
11/10/1983
Nữ
QTKD
Bảng 1.14: Sinhvien
2

Masv
Hodem
Ten
Ngaysinh
Gioitinh
Khoa
503101001
Nguyễn Đức
Anh
10/02/1982
Nam
CNTT
504102015
Phan Thị

04/06/1985
Nữ
CNTT
Muốn thực hiện phân mảnh ngang dẫn xuất, chúng ta cần 3 thông tin: Tập các
phân hoạch của quan hệ chủ nhân, quan hệ thành viên, và tập các vị từ nối nửa giữa

chủ nhân và thành viên. Ta có nhiều cách phân mảnh ngang dẫn xuất cho R dựa trên
hai tiêu chuẩn:
- Phân mảnh có đặc tính nối tốt hơn
- Phân mảnh đƣợc sử dụng trong nhiều ứng dụng hơn
1.2.1.2 Phương pháp phân mảnh dọc
Phân mảnh dọc một quan hệ r trên tập thuộc tính R sinh ra các mảnh
r
1
,r
2
,…,r
r
, mỗi mảnh chứa một tập con của R và cả khoá của r. Mục đích của phân
mảnh dọc là phân hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để nhiều
ứng dụng có thể chỉ chạy trên một mảnh. Nhƣ vậy một phân mảnh tối ƣu là một
phân mảnh sinh ra một lƣợc đồ phân mảnh cho phép giảm đến tối đa thời gian thực
thi các ứng dụng chạy trên mảnh đó.
Phân mảnh dọc phức tạp hơn phân mảnh ngang do tổng số chọn lựa có thể có
của nó rất lớn. Vì vậy để có đƣợc lời giải tối ƣu cho bài toán phân mảnh dọc là rất
khó do đó phải dùng các phƣơng pháp khám phá (heuristic), có hai loại heuristic
cho phân mảnh dọc các quan hệ toàn cục:
+ Nhóm thuộc tính: Bắt đầu bằng cách gán mỗi thuộc tính cho một mảnh và tại
mỗi bƣớc nối một số mảnh lại cho đến khi thoả một tiêu chuẩn nào đó.
+ Tách mảnh: Bắt đầu bằng một quan hệ và quyết định cách phân mảnh có lợi
dựa trên hành vi truy xuất của các ứng dụng trên các thuộc tính.


Số hóa bởi trung tâm học liệu

16

Việc nhân bản khoá của quan hệ toàn cục trong các mảnh là một đặc trƣng của
phân mảnh dọc cho phép tái thiết quan hệ toàn cục và duy trì tính toàn vẹn ngữ nghĩa. Vì
thế việc tách mảnh chỉ đề cập đến các thuộc tính không tham gia vào khoá chính.
Ví dụ 1.8
Xét quan hệ Monhoc ở bảng 1.11, ta có thể phân mảnh dọc quan hệ Monhoc
để đƣợc một mảnh là Monhoc
1
gồm thuộc tính Mamon, Tenmon thể hiện qua bảng
1.15 dƣới đây:
Bảng 1.15: Monhoc
1
Mamon
Tenmon
TCS
Tin học cơ sở
VB
Lập trình Visual Basic
Anh1
Tiếng anh cơ sở 1
1.2.1.3 Phương pháp phân mảnh hỗn hợp
Trong đa số các trƣờng hợp, phân mảnh ngang hoặc phân mảnh dọc đơn thuần
cho một lƣợc đồ CSDL là không đủ đáp ứng yêu cầu của các ứng dụng. Khi đó
phân mảnh dọc có thể đƣợc thực hiện sau một phân mảnh ngang hoặc ngƣợc lại.
Ví dụ 1.9
Ta có quan hệ Monhoc ở bảng 1.11 ta có thể phân mảnh hỗn hợp quan hệ
Monhoc để đƣợc một mảnh là Monhoc
a
chỉ gồm mã môn (mamon) và số đơn vị học
trình (sodvht) của môn học có số đơn vị học trình lớn hơn 4 và đƣợc thể hiện qua
bảng 1.16 dƣới đây:

Bảng 1.16: Monhoc
a
Mamon
sodvht
Anh1
6
1.2.1. Kiểm soát toàn vẹn ngữ nghĩa phân tán
Định nghĩa: Mỗi phán đoán đƣợc xem là một lƣợng từ hoá vấn tin, trong đó nó
nhận giá trị đúng hoặc sai với mỗi bộ trong tích Descartes của các quan hệ đƣợc xác
định bởi các biến bộ. Do các phán đoán liên quan đến dữ liệu lƣu ở nhiều vị trí khác
nhau, nơi lƣu trữ chúng cần phải đƣợc cân nhắc để giảm chi phí thẩm tra toàn vẹn.


Số hóa bởi trung tâm học liệu

17
Định nghĩa một phán đoán toàn vẹn có thể bắt đầu tại một trong các vị trí có lƣu
các quan hệ có mặt trong phán đoán. Vì cơ sở dữ liệu đƣợc phân mảnh, do đó một phán
đoán toàn vẹn trở thành một thao tác phân tán và đƣợc thực hiện theo hai bƣớc.
Bƣớc 1, biến đổi các phán đoán ở cấp cao thành các phán đoán biên dịch.
Bƣớc 2, lƣu các phán đoán biên dịch tuỳ theo lớp, các lớp phán đoán gồm: Lớp
phán đoán riêng, lớp phán đoán hướng tập hợp và lớp phán đoán có các hàm gộp.
Các phán đoán lớp 3 đƣợc xử lý nhƣ lớp 1 hoặc lớp 2, tùy thuộc vào đặc tính
của chúng là riêng hay hƣớng tập.
1.2.3 Khái niệm về cưỡng chế và phán đoán
Cƣỡng chế thi hành ràng buộc toàn vẹn bao gồm việc loại bỏ các chƣơng trình
cập nhật vi phạm 1 số ràng buộc nào đó. Một ràng buộc bị vi phạm khi trạng thái
mới của CSDL do cập nhật sinh ra, các phán đoán ràng buộc trở nên sai. Có hai
phƣơng pháp cơ bản cho phép phế bỏ các cập nhật sinh ra mâu thuẫn là: Dựa vào
việc phát hiện mâu thuẫn và dựa trên việc ngăn chặn mâu thuẫn.

i. 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 D
u
. 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 D
u
. Nếu trạng thái D
u
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 D
u
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à 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.
ii. 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.



Số hóa bởi trung tâm học liệu

18
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.10
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
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 vị từ phán đoán với các vị từ 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.11
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.

×