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
Trang 1Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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 2Số 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, 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 đủ
VŨ ANH TÀI
Trang 3Số 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 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
Trang 4Số 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
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
Trang 5Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Trang 6Số 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 đề 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 TraLuong1 10
Bảng 1.7 TraLuong2 10
Bảng 1.8 Phân hoạch ngang cho quan hệ DuAn: DuAnH1,DuAnH3, DuAnH4,DuAnH6 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: Sinhvien1 15
Bảng 1.14: Sinhvien2 15
Bảng 1.15: Monhoc1 16
Bảng 1.16: Monhoca 16
Bảng 2.1 Quan hệ EMP 38
Bảng 2.2 Mảnh hỗn hợp EMPHH1 38
Bảng 2.3 Mảnh hỗn hợp EMPHH2 38
Bảng 2.4 Mảnh hỗn hợp EMPHH3 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 Sinhvien1 49
Bảng 3.6 Sinhvien2 49
Bảng 3.7: Monnganh1 49
Trang 7Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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 EMPHH1 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
Trang 8Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Trang 9Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Trang 10Số 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 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ứ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:
Trang 11Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
Bảng 1.2 Mức ưu tiên của các phép toán logic
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
Trang 12Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Trang 13Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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(A1,A2 …, An) trong đó Ai là thuộc tính với miền giá trị Di Vị từ đơn giản pk được định nghĩa trên R có dạng:
là hai vị từ đơn giản trên quan hệ DuAn
Gọi PR 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à PR = { p1, p2, pm },
chẳng hạn PDuAn = { p1, p2}
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 PR = { p1, p2, pm }, tập các vị từ hội sơ cấp được ký hiệu là M = { m1,m2 mn }, trong đó mk được xác định như sau:
mk =
K i
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 = pi hoặc p*i = pi
Trang 14Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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 Ri bao gồm các bộ của R
Phân rã quan hệ DuAn thành các mảnh ngang DuAnH1 và DuAnH2 như sau:
DuAnH1 = NganSach 200000 (DuAn) DuAnH2 = NganSach > 200000 (DuAn)
DuAnH3 = 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
Trang 15Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
Nhận xét:
Cho tập các vị M = {mi | mi là vị từ hôi sơ cấp i = 1, 2 ,…}
Ký hiệu |M| = Card(M) Vậy thì:
(1) Mảnh ngang Ri của quan hệ R là một quan hệ chứa các bộ của R thoả mãn
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
Fi và Fj đều khác rỗng, thì vẫn có ít nhất một ứng dụng truy xuất đến Fi và Fj 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 mi
và mj là hai vị từ hội sơ cấp và gọi Fi, Fj là hai mảnh tương ứng với các vị từ hội sơ cấp này Thế thì pi 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 PR 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],
Trang 16Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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 PR (đã đượ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à
p1: Luong 30000
p2: Luong > 30000
Vì vậy cho ra tập các vị từ đơn giản khởi đầu là PTraLuong = {p1, p2} áp dụng thuật toán COM_MIN với i = 1 làm giá trị khởi đầu sinh ra P’TraLuong = {p1} Đây là
Trang 17Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
tập đầy đủ và cực tiểu vì p2 không phân hoạch F1 (là mảnh được vị từ hội sơ cấp ứng với p1 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:
Đối với ứng dụng này, các vị từ đơn giản có thể được dùng là:
p1: ViTri = “Hải Phòng”
p2: ViTri = “Hà Nội”
p3: 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
Trang 18Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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à
m1: (ViTri = “Hải Phòng”) (NganSach 200000)
m2: (ViTri = “Hải Phòng”) (NganSach > 200000)
m3: (ViTri = “Hà Nội”) (NganSach 200000)
m4: (ViTri = “Hà Nội”) (NganSach >200000)
m5: (ViTri = “TP.Hồ Chí Minh ”) (NganSach 200000)
m6: (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ừ
Trang 19Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
i8: ViTri = “Hải Phòng” (NganSach > 20000)
i9: ViTri = “TP.Hồ Chí Minh ” (NganSach 20000)
i10: (ViTri = “Hải Phòng”) NganSach 20000
i11: (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 = {m1, …, m6} 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ừ i8 đến i11 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 FDuAn
= {DuAnH1, DuAnH2, DuAnH3, DuAnH4, DuAnH5, DuAnH6} 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) (DuAnH2, DuAnH5) và vì thế không được trình bày trong các bảng 1.8
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ệ
Trang 20Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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à:
Bảng 1.10 Sinhvien
Trang 21Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Sinhvien1 = Sinhvien |>< Khoa1
Sinhvien2 = Sinhvien |>< Khoa2
Trong đó
Khoa1 = Khoa (Slgiaovien >30)
Khoa2 = Khoa (Slgiaovien <=30)
Kết quả phân mảnh ngang dẫn xuất Sinhvien ta được: Quan hệ Sinhvien1 trình bày qua bảng 1.13 và quan hệ Sinhvien2 được trình bày qua bảng 1.14
Masv, Mamon, Diem Monhoc
L1
L 2 L 3
Trang 22Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
Bảng 1.13: Sinhvien 1
Bảng 1.14: Sinhvien 2
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
r1,r2,…,rr, 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
Trang 23Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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à Monhoc1 gồm thuộc tính Mamon, Tenmon thể hiện qua bảng 1.15 dưới đây:
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à Monhoca 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
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
Trang 24Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
Đị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 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à 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
Trang 25Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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
Trang 26Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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á
Ví dụ 1.12
Xét lại ví dụ 1.11 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)
Trang 27Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
C3 là
g ASG , OLD PROJ- : NEW PROJ+ :
g.PNO 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à 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.13
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à g ASG , OLD PROJ-: g.PNO = OLD.PNO đúng mà Result = ; thì phán đoán này đã được xác nhận bởi phép cập nhật
1.3 Kết luận
Trong chương này đã trình bày các khái niệm về mệnh đề, các phép toán mệnh
đề, biểu thức logic Tìm hiểu về các phương pháp phân mảnh trong CSLD phân tán Các câu lệnh phân mảnh dựa vào câu SQL CSDL phân tán đã được trình bày có các kiểu phân mảnh chính là: Phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp (Trong phân mảnh ngang được chia ra làm 2 loại là: phân mảnh ngang nguyên thủy và phân mảnh ngang dẫn xuất), các khái niệm về cưỡng chế và phán đoán
Từ những kiến thức tìm hiểu được trong chương, làm cơ sở cần thiết cho việc
mở rộng nghiên cứu các phần tiếp theo của luận văn
Trang 28Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
Đị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)
Ví dụ 2.3
Giả sử quan hệ EMP được phân mảnh ngang bởi 3 vị trí:
Trang 29Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
mãn phán đoán C
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 vị từ nối
biến đơn quan hệ (như phụ thuộc hàm ở ví dụ 2.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ụ 2.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ù vị từ phán đoán có thể thuộc loại đa quan hệ nhưng một phán đoán
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 vị
từ nối Tương thích vị từ không có tác dụng gì ở đây vì chúng ta không thể suy ra
rằng một vị từ mảnh p sai nếu phán đoán C (dựa trên vị từ 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 vị từ 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
Trang 30Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/
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í
1 ASG dược phân mảnh theo vị từ
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ì vị từ phân mảnh giống với vị từ của Cl, việc thẩm tra tương thích không mất chi phí truyền dữ liệu
2 PROJ được phân mảnh ngang theo hai vị từ :