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

Xử lý câu truy vấn SQL qua phán đoán và cưỡng chế

61 273 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 61
Dung lượng 688,48 KB

Nội dung

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 1

Số 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 2

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

LỜI CAM ĐOAN

Tôi xin cam đoan, 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 3

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

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn 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 4

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

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CẢM ƠN ii

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 5

Số 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 6

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

DANH MỤC CÁC BẢNG

Bảng 1.1 Bảng chân trị các phép toán mệnh đề 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 7

Số 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 8

Số 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 9

Số 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 10

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

Chương 1

CƠ SỞ LÝ THUYẾT

1.1 Giới thiệu về logic

1.1.1 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 11

Số 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 12

Số 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 13

Số 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 14

Số 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 15

Số 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 16

Số 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 17

Số 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 18

Số 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 19

Số 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 20

Số 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 21

Số 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 22

Số 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 23

Số 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 24

Số 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 25

Số 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 26

Số 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 27

Số 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 28

Số 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 29

Số 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 30

Số 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ừ :

Ngày đăng: 17/08/2015, 11:20

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, NXB Khoa học và Kỹ thuật, 1996 Sách, tạp chí
Tiêu đề: Cấu trúc dữ liệu và giải thuật
Nhà XB: NXB Khoa học và Kỹ thuật
2. Đoàn Văn Ban, Nguyễn Mậu Hân, Xử lý song song và phân tán, NXB Khoa học và Kỹ thuật, 2006 Sách, tạp chí
Tiêu đề: Xử lý song song và phân tán
Nhà XB: NXB Khoa học và Kỹ thuật
3. Lê Huy Thập, “Bài giảng CSDL phân tán” tại ĐH Sƣ Phạm Hà Nội 2 và Học Viện CN Bưu Chính Viễn Thông Sách, tạp chí
Tiêu đề: Bài giảng CSDL phân tán”
4. Lê Huy Thập, Cơ sở lý thuyết song song, NXB THÔNG TIN VÀ TRUYỀN THÔNG, 8-2010 Sách, tạp chí
Tiêu đề: Cơ sở lý thuyết song song
Nhà XB: NXB THÔNG TIN VÀ TRUYỀN THÔNG
5. Robert Sedgewick, Cẩm nang thuật toán Vol.1 and vol.2. NXB Khoa học và Kỹ thuật, 2001 Sách, tạp chí
Tiêu đề: Cẩm nang thuật toán
Nhà XB: NXB Khoa học và Kỹ thuật
6. M.Tamer Ozsu, Patrick Valduriez. Nguyên lý các hệ cơ dữ liệu phân tán. Trần Đức Quang biên dịch. NXB Thống kê, 1999 Sách, tạp chí
Tiêu đề: Nguyên lý các hệ cơ dữ liệu phân tán
Nhà XB: NXB Thống kê
7. Seyed H. Roo, “Parallel processing and Parallel Algorithms, Theory and Coputation”, Springer 1999 Sách, tạp chí
Tiêu đề: “Parallel processing and Parallel Algorithms, Theory and Coputation”

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w