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

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

78 491 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 78
Dung lượng 1,17 MB

Nội dung

Các phân mảnh được chỉ ra bằng tên của quan hệ toàn cục với một chỉ số chỉ số phân mảnh, ví dụ, Ri chỉ đến phân mảnh thứ i trong quan hệ toàn cục R Các kiểu phân mảnh dữ liệu bao gồm ph

Trang 1

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

Trang 2

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

Trang 3

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Qua đây em xin chân thành cảm ơn toàn thể các thầy cô trong khoa đào tạo sau đại học trường Đại học Công nghệ Thông tin và Truyền thông và đặc biệt là thầy PGS.TS Lê Huy Thập, đã tạo điều kiện thuận lợi và hướng dẫn em để hoàn thành luận văn này

Trang 4

MỤC LỤC

LỜI CAM ĐOAN i

DANH MỤC BẢNG BIỂU iv

DANH MỤC HÌNH v

BẢNG DANH MỤC CÁC KÍ HIỆU vii

LỜI MỞ ĐẦU 1

1 Đặt vấn đề 1

2 Đối tượng và phạm vi nghiên cứu 1

3 Hướng nghiên cứu của đề tài 1

4 Phương pháp nghiên cứu 1

5 Ý nghĩa khoa học của đề tài 2

6 Các kết quả dự kiến đạt được 2

Chương 1 CƠ SỞ LÝ THUYẾT 3

1.1 Mệnh đề logic và các phép toán mệnh đề 3

1.1.1 Khái niệm về mệnh đề 3

1.1.2 Biến mệnh đề và biểu thức mệnh đề 3

1.1.3 Các phép toán mệnh đề 4

1.1.4 Các biểu thức logic cơ bản 5

1.2 Các khái niệm cơ bản của CSDL phân tán 6

1.2.1 Khái niệm về phán đoán 8

1.2.2 Khái niệm về cưỡng chế 13

1.3 Kết luận chương 1 19

Chương 2: RÚT GỌN CÂU TRUY VẤN PHÂN TÁN QUA PHÁN ĐOÁN VÀ CƯỠNG CHẾ 20

2.1 Các thuật toán rút gọn câu truy vấn 20

2.1.1 Rút gọn cho phân mảnh ngang 21

2.1.2 Rút gọn phân mảnh dọc 32

2.1.3 Rút gọn phân mảnh hỗn hợp 35

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

2.2.1 Rút gọn phân mảnh ngang qua phán đoán và cưỡng chế 40

2.2.2 Rút gọn phân mảnh dọc qua phán đoán và cưỡng chế 47

Trang 5

2.2.3 Rút gọn phân mảnh hỗn hợp qua phán đoán và cưỡng chế 49 2.3 Kết luận chương 2 53

Chương 3: CHƯƠNG TRÌNH ỨNG DỤNG 54

3.1 Chương trình ứng dụng hỗ trợ khách hàng sử dụng dịch vụ viễn thông tại Bưu điện Cầu Giấy 54 3.2 Kết luận chương 3 54

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN 68

Trang 6

DANH MỤC BẢNG BIỂU

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

Bảng 1.2 Mức ưu tiên của các phép toán logic 5

Bảng 2.1-1 Quan hệ NhanVien 20

Bảng 2.1-2 Quan hệ DuAn 20

Bảng 2.1-3 Quan hệ TraLuong 21

Bảng 2.1-4 Quan hệ PhanNhiem 21

Bảng 2.1-5 Mảnh ngang DuAn H1 23

Bảng 2.1-6 Mảnh ngang DuAn H2 24

Bảng 2.1-7 Mảnh ngang DuAn H3 24

Bảng 2.1-8 TraLuong1 26

Bảng 2.1-9 TraLuong2 26

Bảng 2.1-10 Phân hoạch ngang cho quan hệ DuAn: DuAnH1,DuAnH3, DuAnH4,DuAnH6 28

Bảng 2.1-11 Khoa 28

Bảng 2.1-12 Sinhvien 29

Bảng 2.1-13 Monhoc 29

Bảng 2.1-14 Diem 29

Bảng 2.1-15: Sinhvien1 30

Bảng 2.1-16: Sinhvien2 30

Bảng 2.1-17 33

Bảng 2.1-18 33

Bảng 2.2-1 Quan hệ EMP 50

Bảng 2.2-2 Mảnh hỗn hợp EMPHH1 50

Bảng 2.2-3 Mảnh hỗn hợp EMPHH2 50

Bảng 2.2-4 Mảnh hỗn hợp EMPHH3 50

Trang 7

DANH MỤC HÌNH

Hình 1.1 CSDL tập trung, không phải là DDBS 7

Hình 1.2 CSDL được phân tán trên mạng, DDBS 7

Hình 2.1: Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối 22

Hình 2.2: Mối liên hệ giữa các quan hệ 29

Hình 2.3 Rút gọn phân mảnh ngang với phép nối 34

Hình 2.4 Phép chiếu vô dụng 35

Hình 2.7 (b) vấn tin đã rút gọn 44

Hình 2.8 Vấn tin gốc của ví dụ 2.16 46

Hình 2.9 Vấn tin gốc đã được giao hoán 46

Hình 2.10 Vấn tin sau khi dùng mệnh đề mâu thuẫn 46

Hình 2.11 Cây vấn tin sau khi giao hoán phép hợp và phép nối 47

Hình 2.12 Rút gọn cho phân mảnh dẫn xuất 47

Hình 2.13 a,b,c Rút gọn cho phân mảnh dọc 49

Hình 2.14 Cây vấn tin gốc 51

Hình 2.15 Cây vấn tin đã loại EMPHH1 52

Hình 2.16: Cây vấn tin đã đẩy phép chiếu xuống, phép nối lên 52

Hình 2.17 Câu vấn tin đã rút gọn 53

Trang 8

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

CSDL Cơ sở dữ liệu

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

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

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

Trang 9

BẢNG DANH MỤC CÁC KÍ HIỆU

Phép giao Phép hợp

Trang 10

LỜI MỞ ĐẦU

1 Đặt vấn đề

Ngày nay cùng với sự phát triển về khoa học kỹ thuật, bùng nổ về thông tin cung cấp đa dạng các loại hình thương mại, quản lý và các dịch vụ đa phương tiện cho người sử dụng Kết nối máy tính thành mạng với mục tiêu chia sẻ tài nguyên, khai thác

có hiệu quả các tài nguyên thông tin, nâng cao khả năng tích hợp và trao đổi các loại

dữ liệu giữa các thành phần trên mạng, nhu cầu thu thập, lưu trữ, xử lý và trao đổi

thông tin ngày càng tăng

Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng thì vấn đề đặt ra là xử lý thông tin như thế nào để tìm cách giảm thiểu thời gian và các chi phí hoặc tăng cao hiệu năng xử lý

Một trong những giải pháp có tính khả thi là phải xử lý các câu lệnh SQL khi truy vấn dữ liệu dựa vào các quy tắc phán đoán – cưỡng chế và các phương pháp rút gọn ngay trên cây thứ tự hoặc gộp nhóm khi phân mảnh mà chúng ta sẽ gọi là các giải pháp tiền xử lý

Đó cũng chính là mục đích tôi chọn nghiên cứu “ Rút gọn câu truy vấn SQL

qua phán đoán và cưỡng chế ” làm đề tài luận văn tốt nghiệp của mình

2 Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu là cơ sở dữ liệu phân tán, xử lý song song và phân tán

- Phạm vi nghiên cứu là một số các phương pháp rút gọn câu truy vấn SQL trong

cơ sở dữ liệu phân tán

3 Hướng nghiên cứu của đề tài

- Nghiên cứu tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán, các phương pháp,

kỹ thuật, các thuật toán liên quan đến rút gọn câu truy vấn SQL đặc biệt là phương pháp phán đoán, cưỡng chế

- Nghiên cứu các mô hình chi phí song song và mô hình chi phí song song trên bộ tối ưu hóa truy vấn Nghiên cứu mô hình tối ưu hóa hai pha

4 Phương pháp nghiên cứu

- Nghiên cứu kỹ các kiến thức, chủ đề có liên quan đến đề tài

- Nghiên cứu các quy tắc và phương pháp phán đoán và cưỡng chế

- Nắm vững các kiến thức về rút gọn câu vấn tin dựa vào phán đoán

Trang 11

5 Ý nghĩa khoa học của đề tài

Luận văn giúp cho việc tiền xử lý câu lệnh SQL bằng phương pháp phán đoán cưỡng chế và rút gọn các câu lệnh loại này

6 Các kết quả dự kiến đạt đƣợc

- Giới thiệu tổng quan về CSDL phân tán

- Trình bày các phương pháp, thuật toán xử lý, tối ưu hóa truy vấn phân tán đặc biệt bằng phương pháp phán đoán và cưỡng chế

- Cài đặt thử nghiệm một thuật toán rút gọn câu truy vấn phân tán

Trang 12

Chương 1 CƠ SỞ LÝ THUYẾT

1.1 Mệnh đề logic và các phép toán mệnh đề

1.1.1 Khái niệm về mệnh đề

Mệnh đề là một câu khẳng định đúng hoặc một câu khẳng định sai Câu khẳng định đúng gọi là mệnh đề đúng (mệnh đề có chân trị đúng) Câu khẳng định sai gọi là mệnh đề sai (mệnh đề có chân trị sai)

d) Hôm nay trời có đẹp không?: Không phải là mệnh đề Câu hỏi nghi vấn

Mệnh đề sơ cấp: (elementary proposition)

Là mệnh đề không thể phân nhỏ hơn được nữa – có thể nói đó là phát biểu đơn giản nhất

Ví dụ: “Một cộng một bằng 2”

“ 7 là số nguyên tố”

Các mệnh đề sơ cấp thường được gắn với các ký hiệu như các chữ p, q, r,

mà ta gọi là các biến mệnh đề logic

Mệnh đề phức hợp: (compound proposition)

Mệnh đề phức hợp là mệnh đề được tạo ra từ các mệnh đề bằng cách dùng các từ liên kết như “và” (AND), “hoặc” (OR),

p gọi là biến mệnh đề nếu nó nhận giá trị là một mệnh đề nào đó

Ví dụ: p là biến mệnh đề có thể nhận giá trị là các mệnh đề P, Q, R ở trên

Trang 13

Biểu thức mệnh đề:

Cho P, Q, R…là các mệnh đề Nếu các mệnh đề này liên kết với nhau bằng các phép toán thì ta được một biểu thức mệnh đề

1.1.3 Các phép toán mệnh đề

Phép phủ định (NOT): Phủ định của mệnh đề p kí hiệu là p Chân trị của p là

0 nếu chân trị của p là 1 và ngược lại

Ví dụ: p = “ 2 > 0 ”

p = “ 2 ≤ 0 ”

Phép hội (AND): Phép hội của hai mệnh đề q, q kí hiệu là p q (đọc là p và q)

chỉ đúng khi cả p và q cùng đúng

Ví dụ: “Chiều nay trời đẹp và trận bóng đá sẽ hấp dẫn”: p q

Phép tuyển (OR): Phép tuyển của hai mệnh đề p, q kí hiệu là p q (đọc là p hoặc

q) chỉ sai khi cả p và q cùng sai

Ví dụ: “Danh sách sinh viên quê ỏ Thái Nguyên hoặc/hay/và Hà Nội”: p q

Điều kiện lọc danh sách là:

(QUEQUAN=”Thái Nguyên”) OR (QUEQUAN=”Hà Nội”)

Phép tuyển loại (XOR): Phép tuyển loại của hai mệnh đề p, q kí hiệu là p q

(đọc là hoặc p hoặc q) chỉ đúng khi chỉ 1 trong 2 mệnh đề là đúng

Ví dụ: “Sinh viên A quê ở Thái Nguyên hoặc Hà Nội”: p q

Phép kéo theo: Phép kéo theo của 2 mệnh đề p, q kí hiệu là p q là một mệnh

đề chỉ sai khi p đúng q sai

Ví dụ: “Nếu A vượt đèn đỏ thì A sẽ vi phạm luật giao thông”: p q

Phép tương đương: Phép tương đương của 2 mệnh đề p, q kí hiệu là p q là một mệnh đề chỉ đúng khi cả p và q cùng đúng hoặc cùng sai

Ví dụ: p: “Tứ giác ABCD là hình vuông”

q: “Tứ giác ABCD là hình chữ nhật có 2 đường chéo vuông góc”

Ta có p q

Trang 14

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

Mức ƣu tiên của các phép toán logic

Thứ tự ưu tiên của các phép toán logic được liệt kê theo mức yếu dần từ trên xuống dưới ở bảng sau:

Ký hiệu phép toán Nghĩa của phép toán

Bảng 1.2 Mức ưu tiên của các phép toán logic 1.1.4 Các biểu thức logic cơ bản

Biểu thức logic

Biểu thức logic có thể nói chính là mệnh đề phức hợp, biểu thức logic thường được

ký hiệu bởi các chữ in to

Ví dụ:

(r s), E = (p ( q r) )

P = E, F G, (G H) ( G E), trong đó P, E, F, G, H là các biểu thức logic Bảng chân trị của biểu thức logic là bảng liệt kê chân trị có thể có theo mọi khả năng chân trị của các biến mệnh đề có trong biểu thức

Hai biểu thức logic E và F được gọi là tương đương với nhau và viết E F khi E

và F luôn luôn có cùng chân trị, khi đó ta nói “E tương đương với F”

Để kiểm tra xem hai biểu thức logic có tương đương với nhau hay không chúng ta dựa vào bảng chân trị hay bằng phương pháp chứng minh logic

Trang 15

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

Ví dụ:

Cho hai biểu thức logic E = p q và F = p q thì E F

Biểu thức logic E được gọi là hằng True nếu chân trị của E luôn luôn là 1, tức là E

Quan hệ bắc cầu: nếu E F và F G thì E G

1.2 Các khái niệm cơ bản của CSDL phân tán

Hệ cơ sở dữ liệu phân tán và hệ quản trị cơ sở dữ liệu phân tán

Hệ CSDL phân tán (Distributed Database System – DDBS) là một tập hợp dữ liệu

có liên đới logic và được phân bố trên các nút của một mạng máy tính

Hệ quản trị CSDL phân tán (Distributed Database Management System – DDBMS) là một hệ thống phần mềm cho phép quản lý các DDBS và làm cho việc phân tán trở nên vô hình đối với người sử dụng

Như vậy DDBS là một tập các tệp dữ liệu vừa có liên đới logic, vừa phải có cùng cấu trúc và vừa phải được truy xuất qua một giao diện chung Và phân bố vật lý của các dữ liệu không phải là vấn đề quyết định

Trang 16

Nhận xét: Nếu CSDL nằm tại một nút mạng thì nó không phải là DDBS, vì vấn đề

quản trị CSDL không khác với quản trị CSDL trong môi trường tập trung kiểu client/server của mạng

Ví dụ: CSDL trong hình 1.1 không phải là DDBS

Hình 1.1 CSDL tập trung, không phải là DDBS

Nếu một cơ sở dữ liệu được phân tán trên nhiều nút mạng khi đó CSDL sẽ là cơ sở dữ liệu phân tán Ví dụ: hình 1.2

Hình 1.2 CSDL được phân tán trên mạng, DDBS

Hệ quản trị CSDL phân tán có khả năng phân mảnh CSDL khái niệm và cho phép cục bộ hoá dữ liệu Có hai ưu điểm nổi bật:

• Vì mỗi trạm chỉ xử lý một phần CSDL, sự tranh chấp về CPU và các dịch vụ vào/ra không nghiêm trọng như trong các hệ CSDL tập trung

• Tính cục bộ làm giảm trễ truy nhập từ xa thường gặp trên các mạng diện rộng

Workstation5

Mạng Truyền

DL Workstation4

Workstation1

Workstation3 Workstation2

Workstation5

Mạng Truyền DL Workstation4

Workstation1

Workstation3 Workstation2

Trang 17

Hầu hết các hệ CSDL phân tán được cấu trúc nhằm tận dụng tối đa những ưu điểm của tính cục bộ dữ liệu Lợi ích đầy đủ của việc giảm tranh chấp và giảm chi phí truyền chỉ có thể có được bằng cách phân mảnh và phân tán dữ liệu hợp lý

Mỗi quan hệ toàn cục có thể chia thành nhiều phần không chồng lặp lên nhau được gọi là phân mảnh Ánh xạ giữa các quan hệ toàn cục và phân mảnh được định nghĩa là lược đồ phân mảnh Ánh xạ này là mối quan hệ một-nhiều Ví dụ, nhiều phân mảnh tương ứng với một quan hệ toàn cục, nhưng chỉ một quan hệ toàn cục tương ứng với một phân mảnh Các phân mảnh được chỉ ra bằng tên của quan hệ toàn cục với một chỉ số (chỉ số phân mảnh), ví dụ, Ri chỉ đến phân mảnh thứ i trong quan hệ toàn cục R

Các kiểu phân mảnh dữ liệu bao gồm phân mảnh ngang và phân mảnh dọc và một kiểu phân mảnh phức tạp hơn là sự hết hợp của 2 loại trên Trong tất cả các kiểu phân mảnh, một phân mảnh có thể được định nghĩa bằng một biểu thức ngôn ngữ quan

hệ cho các quan hệ toàn cục như là các toán hạng và kết quả đầu ra là các phân mảnh

Các khái niệm, điều kiện về phán đoán và cƣỡng chế

Dùng tập các mệnh đề để kiểm tra các giao dịch, cú pháp và tính toàn vẹn ngữ nghĩa…nếu thỏa mãn thì đó là một phán đoán, sai cũng là phán đoán nhưng nếu phán đoán đúng thì sẽ cưỡng chế thực hiện các câu vấn tin có liên quan còn nếu sai thì:

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

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

Từ đó để quyết định câu vấn tin có được thực hiện hoặc không

Ví dụ: Khi nhập một bản ghi vào quan hệ con thì bản ghi đó có liên quan đến

một bản ghi ở quan hệ mẹ Vậy liệu ở quan hệ mẹ đã có bản ghi liên quan

1.2.1 Khái niệm về phán đoán

Dựa vào việc phát hiện mâu thuẫn (Phán đoán): Giả sử khi thực hiện cập nhật u

sẽ chuyển CSDL từ D sang Du Thuật toán cưỡng chế phải xác nhận rằng tất cả các ràng buộc liên đới vẫn đúng trong Du Nếu trạng thái Du không nhất quán thì DBMS sẽ

cố gắng chuyển sang trạng thái khác là D‟u bằng cách hiệu chỉnh Du qua các thao tác

“bù trừ” để có D‟u nhất quán, nếu không được thì phải quay lại trạng thái D Cách kiểm tra này được áp dụng sau khi trạng thái của SCDL đã thay đổi nên nó được gọi là

Trang 18

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

Ví dụ 1.1:

g ASG, j PROJ: g.PNO = j.PNO

Đây là phán đoán khoá ngoại, nói rằng một dự án được tham chiếu trong quan hệ ASG phải tồn tại (chứ không phải là ) trong quan hệ PROJ, do đó j không được lượng từ hoá phổ dụng cho nên câu vấn tin trên không thể được xử lý bởi phép hiệu chỉnh vấn tin

Phương pháp ngăn chặn mâu thuẫn (kiểm tra trước) khác là dựa vào việc tạo ra các phán đoán Biên dịch vào lúc định nghĩa phán đoán và có thể sử dụng để ngăn chặn sự xuất hiện các mâu thuẫn trong CSDL Đây là một phương pháp ngăn chặn tổng quát, có thể xử lý được toàn bộ các phán đoán đã được giới thiệu ở trên

Định nghĩa các phán đoán biên dịch dựa trên khái niệm quan hệ vi phân (differentinal relation) Gọi u là một cập nhật trên quan hệ R; R+ và R- là các quan hệ

vi phân của R do u gây ra; R+ gồm các bộ được chèn vào R, còn R- gồm các bộ được xoá khỏi R; R+ = nếu u là thao tác xoá, R- = nếu u là thao tác chèn và R+ (R-R-)

là tập các bộ (từ R) nếu u là sửa đổi bộ

Một phán đoán biên dịch là bộ ba (R,T,C), trong đó R là quan hệ, T là kiểu cập nhật; C là một phán đoán biến thiên trên các quan hệ vi phân có mặt trong một cập nhật kiểu T Khi một ràng buộc I được định nghĩa, một tập phán đoán biên dịch có thể được sinh ra cho các quan hệ

Mỗi khi một quan hệ có trong I được cập nhật bởi chương trình u, các phán đoán biên dịch cần phải được kiểm tra chỉ là các phán đoán được định nghĩa trên I cho kiểu cập nhật của u Cách làm này sẽ làm giảm số lượng phán đoán vì chỉ có các phán đoán thuộc kiểu u cần được kiểm tra, chi phí cưỡng chế thi hành cũng nhỏ hơn chi phí cưỡng chế I vì các hệ vi phân nhỏ hơn nhiều so với quan hệ gốc

Phán đoán biên dịch, thu được bằng cách dùng các qui tắc biến đổi cho phán đoán gốc Các qui tắc này dựa trên ngữ nghĩa của phán đoán và các hoán vị lượng từ Chúng cho phép thay các quan hệ cơ sở bằng các quan hệ vi phân Quá trình tạo ra phán đoán biên dịch từ các quan hệ gốc được gọi là quá trình đơn giản hoá

Trang 19

Ví dụ 1.2:

Xét lại ví dụ 1.1 Phán đoán biên dịch đi kèm với ràng buộc này là:

(ASG, INSERT, C1), (PROJ, DELETE, C2), và (PROJ, MODIFI, C3)

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ệ

Đị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)

Trang 20

phán đoán C

1.2.1.2 Phán đoán hướng tập hợp

Phán đoán hướng tập hợp thuộc loại đa biến; nghĩa là chúng chứa mệnh đề nối

biến đơn quan hệ (như phụ thuộc hàm ở ví dụ 1.2), mã số nhân viên xác định phụ thuộc hàm tên nhân viên là:

ENO IN EMP DETEMINES ENAME

Và đa biến đa quan hệ nhưng ràng buộc khoá ngoại ở ví dụ 1.1: Mã số PNO dự

án trong quan hệ ASG là khoá ngoại tương ứng với khoá chính PNO của hệ PROJ Nói cách khác là một dự án được tham chiếu trong quan hệ ASG phải tồn tại trong quan hệ PROJ

Mặc dù mệnh đề phán đoán có thể thuộc loại đa quan hệ nhưng một phán đoán

Trang 21

biên dịch chỉ được liên kết với một quan hệ Vì thế định nghĩa phán đoán có thể được

gửi đến tất cả các vị trí có chứa các mảnh được các biến này thảm chiếu Việc thẩm tra tính tương thích cũng gồm cả các mảnh của quan hệ được sử dụng trong mệnh đề nối Tương thích mệnh đề không có tác dụng gì ở đây vì chúng ta không thể suy ra rằng

một mệnh đề mảnh p sai nếu phán đoán C (dựa trên mệnh đề nối) đúng Vì thế chúng

ta cần phải thẩm tra C theo dữ liệu Điều này đòi hỏi phải nối mảnh của quan hệ R với

tất cả các mảnh của quan hệ S, là hai quan hệ có trong mệnh đề nối Như thế, rõ ràng

là chi phí sẽ rất cao, và như mọi phép nối khác, nó cần được tối ưu hóa bằng thể xử lý vấn tin phân tán

Ba tình huống sau có thể xảy ra được liệt kê theo mức chi phí

1 Phân mảnh của R được dẫn xuất, từ phân mảnh của S dựa vào một nối

nửa trên thuộc tính được dùng trong vị trí nối

2 S được phân mảnh trên thuộc.tính nối

3 S không được phân mảnh trên thuộc tính nối

Trong trường hợp đầu tiên, việc kiểm tra tương thích có chí phí thấp bởi vì bộ

của S đối sánh được với một bộ của R sẽ ở cùng một vị trí Trong trường hợp thứ hai; mỗi bộ của R phái được so sánh với tối đa một mảnh của S, bởi vì giá trị thuộc tính nối của bộ thuộc R có thể được dùng để tìm vị trí mảnh tương ứng của S Trong trường hợp thứ ba, mỗi bộ của R phải được so sánh với tất cả các mảnh của S Nếu tất cả các

bộ của R đều bảo đảm tương thích thì phán đoán sẽ được lưu tại mỗi vị trí

1 ASG dược phân mảnh theo mệnh đề

ASG PNO PROJi

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

Trang 22

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

1.2.2 Khái niệm về cưỡng chế

Dựa trên việc ngăn chặn mâu thuẫn (Cưỡng chế): Một thao tác cập nhật chỉ được thực hiện nếu nó chuyển CSDL sang một trạng thái nhất quán khác Thuật toán cưỡng chế xác nhận rằng tất cả các ràng buộc liên đới đều đúng sau khi cập nhật các bộ Các

bộ cập nhật đã có sẵn (trường hợp chèn) hoặc phải truy xuất trong CSDL (trường hợp xóa hoặc sửa) Như vậy việc kiểm tra được thực hiện trước khi trạng thái CSDL được thay đổi và vì vậy cách kiểm tra được gọi là kiểm tra trước (pretest) Phương pháp ngăn chặn mâu thuẫn hiệu quả hơn phương pháp phát hiện vì chúng ta không phải quay lại trang CSDL trước đó khi có ràng buộc bị vi phạm

Thuật toán hiệu chỉnh vấn tin là một ví dụ về phương pháp ngăn chặn có hiệu quả

đặc biệt trong việc cưỡng chế các ràng buộc miền biến thiên Nó đưa thêm lượng từ hoá phán đoán vào lượng từ hoá vấn tin bằng toán tử AND cho nên câu vấn tin được hiệu chỉnh có thể được cưỡng chế toàn vẹn

Ví dụ 1.7:

Tăng ngân sách cho các dự án CAD/CAM lên 10% với đặc tả

UPDATE PROJ

SET BUDGET = BUDGET*1.1

WHERE PNAME = “CAD/CAM”

sẽ biến đổi thành câu vấn tin sau, trong đó có thêm điều kiện nhằm cưỡng chế ràng buộc miền giá trị như đã thấy ở ví dụ 1.10

Trang 23

UPDATE PROJ

SET BUDGET = BUDGET*1.1

WHERE PNAME = “CAD/CAM”

AND NEW BUDGET 500000

AND NEW BUDGET 1000000

Thuật toán hiệu chỉnh vấn tin tạo ra các kiểm tra trước lúc thực thi bằng cách lấy hội các mệnh đề phán đoán với các mệnh đề cập nhật của mỗi chỉ thị của giao dịch Tuy nhiên, thuật toán chỉ áp dụng cho phép tính bộ và được đặc tả như sau:

Xét phán đoán ( x R) F(x) trong đó F là biểu thức quan hệ bộ, x là biến bộ duy nhất Thao tác cập nhật của R có thể được viết là ( x R)(Q(x) update(x)) trong đó

Q là biểu thức phép tính bộ có biến tự do duy nhất Hay nói ngắn gọn hơn, hiệu chỉnh vấn tin cần sinh ra thao tác cập nhật ( x R)((Q(x) and F(x) update(x) Vì thế x cần phải được lượng từ hoá phổ dụng

Ví dụ 1.8

g ASG, j PROJ: g.PNO = j.PNO

Đây là phán đoán khoá ngoại, nói rằng một dự án được tham chiếu trong quan hệ ASG phải tồn tại (chứ không phải là ) trong quan hệ PROJ, do đó j không được lượng từ hoá phổ dụng cho nên câu vấn tin trên không thể được xử lý bởi phép hiệu chỉnh vấn tin

Phương pháp ngăn chặn mâu thuẫn (kiểm tra trước) khác là dựa vào việc tạo ra các phán đoán Biên dịch vào lúc định nghĩa phán đoán và có thể sử dụng để ngăn chặn sự xuất hiện các mâu thuẫn trong CSDL Đây là một phương pháp ngăn chặn tổng quát, có thể xử lý được toàn bộ các phán đoán đã được giới thiệu ở trên

Định nghĩa các phán đoán biên dịch dựa trên khái niệm quan hệ vi phân (differentinal relation) Gọi u là một cập nhật trên quan hệ R; R+

và R- là các quan hệ

vi phân của R do u gây ra; R+ gồm các bộ được chèn vào R, còn R- gồm các bộ được xoá khỏi R; R+

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

là tập các bộ (từ R) nếu u là sửa đổi bộ

Một phán đoán biên dịch là bộ ba (R,T,C), trong đó R là quan hệ, T là kiểu cập nhật; C là một phán đoán biến thiên trên các quan hệ vi phân có mặt trong một cập

Trang 24

nhật kiểu T Khi một ràng buộc I được định nghĩa, một tập phán đoán biên dịch có thể được sinh ra cho các quan hệ

Mỗi khi một quan hệ có trong I được cập nhật bởi chương trình u, các phán đoán biên dịch cần phải được kiểm tra chỉ là các phán đoán được định nghĩa trên I cho kiểu cập nhật của u Cách làm này sẽ làm giảm số lượng phán đoán vì chỉ có các phán đoán thuộc kiểu u cần được kiểm tra, chi phí cưỡng chế thi hành cũng nhỏ hơn chi phí cưỡng chế I vì các hệ vi phân nhỏ hơn nhiều so với quan hệ gốc

Phán đoán biên dịch, thu được bằng cách dùng các qui tắc biến đổi cho phán đoán gốc Các qui tắc này dựa trên ngữ nghĩa của phán đoán và các hoán vị lượng từ Chúng cho phép thay các quan hệ cơ sở bằng các quan hệ vi phân Quá trình tạo ra phán đoán biên dịch từ các quan hệ gốc được gọi là quá trình đơn giản hoá

Ví dụ 1.9

Xét lại ví dụ 1.8 Phán đoán biên dịch đi kèm với ràng buộc này là:

(ASG, INSERT, C1), (PROJ, DELETE, C2), và (PROJ, MODIFI, C3)

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à

Trang 25

R- để lấy ra các bộ không thỏa các phán đoán biên dịch Nếu không truy xuất được bộ nào, phán đoán sẽ có gía trị

Ví dụ 1.10:

Giả sử có một thao tác xoá trên PROJ Cưỡng chế (PROJ, DELETE, C2) tạo ra các câu lệnh sau:

Result  truy xuất tất cả các bộ của PROJ-, trong đó (C2) đúng

Thế thì nếu Result là rỗng, phán đoán này đã được xác nhận (nghĩa là 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

Cƣỡng chế thi hành các phán đoán toàn vẹn phân tán

Cưỡng chế thi hành các phán đoán toàn vẹn phân tán rõ ràng phức tạp hơn so với các DBMS tập trung Vấn đề chính là quyết định, xem vị trí nào sẽ thực hiện cưỡng

chế Lựa chọn phụ thuộc vào lớp phán đoán, kiểu cập nhật, và bản chất của vị trí đưa

ra yêu cầu cập nhật (được gọi là vị trí vấn tin chính) Vị trí này.có thể có hoặc không

có quan hệ cần cập nhật hoặc một số quan hệ cố mặt trong phán đoán toàn vẹn Tham

số quan trọng cần xem xét là chi phí truyền dữ liệu, kể cả các thông báo, từ vị trí này đến vị trí khác Bây giờ chúng ta sẽ phân tích một số chiến lược khác nhau theo những tiêu chuẩn này

1.2.2.1 Phán đoán riêng

Hai trường hợp có thể xẩy ra: Trường hợp thứ nhất, nếu cập nhật là yêu cầu chèn, phán đoán riêng có thể bị ép buộc thi hành tại vị trí đưa ra cập nhật Trường hợp nếu cập nhật là xóa hoặc sửa đổi, yêu cầu sẽ gửi đến các vị trí có quan hệ cần cập nhật Xử

lý truy vấn sẽ thực hiện bằng cách lượng từ hóa cập nhật cho mỗi mảnh Các bộ được tạo ra tại các vị trí sẽ hợp lại thành một quan hệ tạm thời trong trường hợp câu lệnh xóa, hoặc hiệu chỉnh (nghĩa là R+ và R-) Mỗi vị trí có mặt trong cập nhật đều thảm tra các phán đoán có liên quan đến vị trí đó (ví dụ ràng buộc miền khi xóa)

1.2.2.2 Phán đoán hướng tập hợp

Trước tiên chúng ta nghiên cứu các ràng buộc đơn quan hệ qua một ví dụ

Xét phụ thuộc hàm của ví dụ 1.4 Phán đoán biên dịch kèm với kiểu cập nhật INSERT là

(EMP, INSERT, C)

Trang 26

trong đó C là

Dòng thứ hai trong định nghĩa của C kiểm tra ràng buộc giữa các bộ được chèn (NEWI) và các bộ hiện có (e), còn dòng thứ ba kiểm tra giữa các bộ được chèn Điếu này cho thấy tại sao chúng ta khai báo hai biến (NEWl và NEW2) ở dòng thứ nhất

Bây giờ chúng ta xét một thao tác cập nhật EMP Trước tiên lượng từ hoá cập

nhật được thực hiện bởi thể xử lý vấn tin và trả về một hoặc hai quan hệ tạm thời như trong trường hợp trước Sau đó những quan hệ tạm thời được gửi đến tất cả mọi vị trí lưu EMP Giả sử rằng cập nhật này là một câu lệnh INSERT Thế thì mỗi vị trí có

chứa một mảnh của EMP sẽ phải thi hành phán đoán C được mô tả ở trên Bởi vì e

trong C được lượng từ hóa phổ dụng, dữ liệu cục bộ tại mỗi vị trí phải thoả C Điều

này do sự kiện x {a1, a2, …, an)f(x) tương đương với [f(a1) f(a2) … f(an)]

Vì vậy vị trí đưa ra yêu cầu cập nhật phải nhận được các thông báo từ mỗi vị trí, cho biết rằng phán đoán này được thỏa và là một điều kiện cho tất cả mọi vị trí Nếu phán

đoán không được thỏa mãn tại một vị trí, vị trí này sẽ gửi thông báo lưu cho biết rằng

phán đoán bị vi phạm

Do vậy cập nhật sẽ không có giá trị và khi đó nhiệm vụ của tiểu hệ thống kiểm tra toàn vẹn là quyết định xem toàn bộ chương trình phải được loại bỏ hay không

Bây giờ chúng ta xem xét các phán đoán đa quan hệ Để cho đơn giản, chúng ta

giả sử rằng các phán đoán toàn vẹn không có quá một biến bộ biến thiên trên cùng một quan hệ Có lẽ đây là trường hợp hay gặp nhất Giống như với các phán đoán đơn quan

hệ, cập nhật được tính toán tại vị trí đưa ra yêu cầu này Cưỡng chế thi hành được thực hiện tại vị trí vấn tin chính nhờ thuật toán ENFORCE dưới đây

Thuật toán 2.1 ENFORCE

Nguyên liệu: T: kiểu cập nhật; R: quan hệ

Trang 27

if not (inconsistency) then

gửi các bộ cập nhật đến tất cá các vị trí đang có các mảnh của R

else phế bỏ cập nhật

end if

end {ENFORCE}

Ví dụ 1.11

Chúng ta minh họa thuật toán này qua một thí dụ dựa trên phán đoán khóa ngoại

của ví dụ 1.3 Gọi u là một thao tác chèn một bộ mới vào ASG Thuật toán bên trên

dùng phán đoán biên dịch (ASG, INSERT, C), trong đó C là

NEW ASG+ , j PROJ : NEW.PNO = j.PNO Đối với phán đoán này, câu lệnh lấy dữ liệu là truy xuất tất cả các bộ mới trong ASG+ không thỏa C

Câu lệnh này có thể được diễn tả bằng SQL như sau

SELECT NEW *

FROM ASG+ NEW , PROJ

WHERE COUNT (PROJ.PNO WHERE NEW.PNO = PROJ.PNO) = 0 Chú ý rằng NEW.* biểu thị tất cả các bộ của ASG +

Vì vậy chiến lược của chúng ta là gửi các bộ mới đến các vị trí có lưu quan hệ PROJ để thực hiện nối rồi tập trung tất cả mọi kết quả về vị trí vấn tin chính Với mỗi

vị trí có lưu một mảnh của PROJ, nó sẽ nối mảnh đó với ASG+ và gửi kết quả về vị trí vấn tin chính Nơi đây sẽ lấy hợp tất cả mọi kết quả Nếu hợp rỗng thì CSDL nhất quán Bằng không cập nhật này sẽ dẫn đến một trạng thái không nhất quán Phế bỏ chương trình khi đó phụ thuộc vào chiến lược được chọn bởi bộ quản lý chương trình của DBMS phân tán

Trang 28

1.2.2.3 Phán đoán có hàm gộp

Loại phán đoán này có chi phí kiểm tra cao nhất vì chúng đòi hỏi phải

tính các hàm gộp Hàm gộp thường được dùng là MIN, MAX, SUM và COUNT Mỗi hàm gộp chứa một phần chiếu và một phần chọn Để cưỡng chế các phán đoán này một cách hiệu quả, chúng ta có thể tạo ra các phán đoán biên dịch nhằm cô lập dữ liệu thừa được lưu tại mỗi vị ta có chứa quan hệ đi kèm [Bernstein and 1 Blaustein,

1982] Dữ liệu này được gọi là các khung nhìn cụ thể (concrete view)

Tóm tắt về vấn đề kiểm soát toàn vẹn phân tán

Vấn đề chính của kiểm soát toàn vẹn phân tán đó là chi phí truyền và chi phí xử

lý việc cưỡng chế thi hành các phán đoán phân tán Hai vấn đề chính trong khi thiết kế

một tiểu hệ thống toàn vẹn phân tán là định nghĩa các phán đoán phân tán và các thuật toán cưỡng chế nhằm hạ thấp tối đa chi phí kiểm tra toàn vẹn phân tán Chúng ta đã chứng minh rằng việc kiểm soát ràng buộc phân tán có thể đạt được bằng cách mở rộng một phương pháp ngăn cản dựa trên quá trình biên dịch các phán đoán toàn vẹn ngữ nghĩa Đây là phương pháp tổng quát vì tất cả mọi kiểu phán đoán diễn tả bằng logic mệnh đề bậc nhất đều có thể xử lý được Nó cũng tương thích với định nghĩa phân mảnh và hạ thấp tối đa việc truyền thông qua lại giữa các vị trí Chúng ta có thể

có được một hiệu năng cưỡng chế toàn vẹn phân tán tốt hơn nếu các mảnh được định nghĩa một cách cẩn thận Vì thế đặc tả ràng buộc toàn vẹn phân tán là một vấn đề quan trọng trong quá trình thiết kế CSDL phân tán

1.3 Kết luận chương 1

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 29

Chương 2: RÚT GỌN CÂU TRUY VẤN PHÂN TÁN

QUA PHÁN ĐOÁN VÀ CƯỠNG CHẾ 2.1 Các thuật toán rút gọn câu truy vấn

Để thuận tiện cho việc trình bày, chúng ta xét CSDL (Công ty Điện Toán) gồm các quan hệ sau:

i/ Quan hệ NhanVien(MaNV, TenNV, TrinhDoCM)

Trong đó NhanVien là tên quan hệ nhân viên, MaNV là mã nhân viên, TenNV là tên nhân viên, TrinhDoCM là trình độ chuyên môn Và dữ liệu giả định như sau:

ii/ Quan hệ DuAn(MaDuAn, TenDuAn, NganSach)

Trong đó MaDuAn là mã dự án; TenDuAn là tên dự án và NganSach là ngân sách

dự án, ViTri là vị trí triển khai dự án Và dữ liệu giả định như sau:

Lê Hồng Hạnh Nguyễn Trường Tam

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

Kỹ sư cơ khí Lập trình viên Phân tích và thiết kế hệ thống

Kỹ sư điện

Kỹ sư cơ khí Phân tích và thiết kế hệ thống

Bảng 2.1-2 Quan hệ DuAn

Trang 30

iii/ Quan hệ TraLuong(TrinhDoCM, Luong)

Trong đó Luong là tiền lương trả cho nhân viên Và dữ liệu giả định như sau:

iv/ Quan hệ PhanNhiem (MaNV, MaDuAn, ThoiGianLV, ChucVu)

Trong đó PhanNhiem là phân công nhiệm vụ: Phân công nhân viên có MaNV làm tại dự án có MaDuAn, thời gian làm, với nhiệm vụ ChucVu là giữ chức vụ Và dữ liệu giả định như sau:

Lưu ý: Khi ta nói CSDL-Điện toán, chính là CSDL gồm các quan hệ này

2.1.1 Rút gọn cho phân mảnh ngang

2.1.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 mệnh đề được định nghĩa trên quan hệ đó

Giám đốc Nhân viên phân tích và thiết kế Nhân viên phân tích và thiết kế Nhân viên tư vấn

Kỹ sư Lập trình viên Giám đốc Giám đốc

Kỹ sư Giám đốc

Trang 31

- Phân mảnh ngang dẫn xuất là phân mảnh một quan hệ dựa vào các mệnh đề được định nghĩa trên quan hệ chủ (Parent) của nó

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 mệnh đề đơn giản cho quan hệ R(A1,A2 …, An) trong đó Ai là thuộc tính với miền giá trị Di Mệnh đề đơn giản pkđược định nghĩa trên R có dạng:

Hình 2.1: Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối

Cho quan hệ DuAn ở hình trên như sau:

p1: TenDuAn = “Bảo dưỡng”

p2: NganSach ≤ 200000

là hai mệnh đề đơn giản trên quan hệ DuAn

Gọi PR là tập tất cả các mệnh đề đơ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}

Trang 32

Thấy rằng mệnh đề đơ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 mệnh đề đơn giản Một tổ hợp cần đặc biệt chú ý là mệnh đề dạng chuẩn

hội, đó là hội của các tuyển mệnh đề đơ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 mệnh đề 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 mệnh đề 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

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

được chọn ra theo công thức:

Ri = Fi(R), 1≤ i ≤ z

Trong đó Fi là công thức chọn Chú ý rằng chúng ta xét Fi có dạng chuẩn hội, nó

là một mệnh đề hội sơ cấp

Ví dụ 2.2:

Xét quan hệ DuAn (Bảng 2.1-2) Chúng ta có thể định nghĩa các mảnh ngang sau

đây dựa vào vị trí dự án

DuAnH1 = ViTri = "Hải Phòng" (DuAn) DuAnH2 = ViTri = "Hà Nội" (DuAn)

DuAnH3 = ViTri = "TP.Hồ chí Minh" (DuAn)

Trong đó

F1 là: ViTri = "Hải Phòng"

F2 là: ViTri = "Hà Nội"

F3 là: ViTri = "TP.Hồ Chí Minh"

Các mảnh thu được trình bày trong các bảng 2.1-5, 2.1-6, 2.1-7 tương ứng

Bảng 2.1-5 Mảnh ngang DuAn H1

Trang 33

MaDuAn TenDuAn NganSach ViTri

DA2

DA3

Phát triển CSDL CAD/CAM

Bảng 2.1-7 Mảnh ngang DuAn H3

Nhận xét:

Cho tập các vị M = {mi | mi là mệnh đề 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ệnh đề hội sơ cấp mi

(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 mệnh đề đơn giản sẽ tạo ra các mệnh đề hội sơ cấp

Một số tính chất quan trọng của tập mệnh đề đơn giản là tính đầy đủ và tính cực tiểu

Định nghĩa 1 Tập các mệnh đề đơn giản đầy đủ

Tập các mệnh đề đơ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 Mệnh đề đơn giản liên đới

Mệnh đề đơ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à mệnh đề 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, mệnh đề đơn giản p phải có liên đới với mệnh

đề phân mảnh

Định nghĩa 3 Tập mệnh đề đơn giản cực tiểu

Nếu tất cả các mệnh đề của tập Pr đều có liên đới thì Pr được gọi là cực tiểu Ghi chú :

Trang 34

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 mệnh đề hội sơ cấp và gọi Fi, Fj là hai mảnh tương ứng với các mệnh đề 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 COM_MIN cho ta tập mệnh đề đầy đủ và cực tiểu P‟R khi đã có tập các mệnh đề đơn giản PR ( trong tài liệu tham khảo [2], [3], [4] )

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ằm chỉ ra cách tìm tập mệnh đề hội sơ cấp từ tập các mệnh đề đơ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 mệnh đề hội sơ cấp đã tìm được, chúng ta dùng thuật toán P_HORIZONTAL ( trong tài liệu tham khảo [2], [3], [7] )

Ví dụ 2.3:

Xét hai quan hệ cần phải phân mảnh ngang nguyên thuỷ là: DuAn (Bảng 2.1-2); TraLuong (Bảng 2.1-3) Tập mệnh đề đơ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 mệnh đề đơ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à tập đầy đủ và cực tiểu vì p2 không phân hoạch F1 (là mảnh được mệnh đề 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 mệnh đề hội sơ cấp sau đây làm các phần tử của M:

Trang 35

TrinhDoCM Luong

Kỹ sư cơ khí Lập trình viên

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 mệnh đề đơn giản có thể được dùng là:

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:

m1: (ViTri = “Hải Phòng”) (NganSach 200000)

m2: (ViTri = “Hải Phòng”) (NganSach > 200000)

m3: (ViTri = “Hà Nội”) (NganSach 200000)

Trang 36

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 mệnh đề 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 mệnh đề

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 mệnh đề hội sơ cấp M (trong các bảng 2.1-10) 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 2.1-10

Trang 37

Bảng 2.1-10a : DuAn H1

Bảng 2.1-10b DuAn H3

Bảng 2.1-10c DuAn H4

Bảng 2.1-10d DuAn H6

Bảng 2.1-10 Phân hoạch ngang cho quan hệ DuAn: DuAn H1 , DuAn H3 , DuAn H4 , DuAn H6

Phân mảnh ngang dẫn xuất

Phân mảnh ngang dẫn xuất dựa trên các mệnh đề đượ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ệ 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à:

Ri=R |>< Si, 1 i w

Trong đó w là số lượng các mảnh được định nghĩa trên R và Si= Ei(S) và Ei là công thức định nghĩa mảnh ngang nguyên thuỷ Si

Ví dụ 2.4: Giả sử ta có các quan hệ sau:

Bảng 2.1-11 Khoa

Trang 38

Masv Hodem Ten Ngaysinh Gioitinh Khoa

Và mối liên hệ giữa các quan hệ được thể hiện qua hình 2.2 dưới đây:

Hình 2.2: Mối liên hệ giữa các quan hệ

Xét quan hệ Sinhvien ở bảng 2.1-12 và căn cứ vào mối liên hệ giữa các quan hệ

ở hình 2.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

Masv, Mamon, Diem Monhoc

L 1

Trang 39

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 2.1-15 và quan hệ Sinhvien2 được trình bày qua bảng 2.1-16

Bảng 2.1-15: Sinhvien 1

Bảng 2.1-16: 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 mệnh đề 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

2.1.1.2 Rút gọn cho phân mảnh ngang

Ở đây chúng ta chỉ nghiên cứu về phương pháp rút gọn cho phân mảnh ngang nguyên

thuỷ; gọi tắt là phân mảnh ngang

Rút gọn phân mảnh ngang là việc thực hiện một truy vấn có mệnh đề là phép

chọn trên các mảnh ngang đã được cục bộ hóa

Cho một quan hệ R được phân mảnh ngang thành R1, R2, , Rn với Rj = pj(R),

j =1,2, , n

Ngày đăng: 22/09/2016, 09:26

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] Lê Huy Thập, “Giáo trình kỹ thuật lập trình“ Tập 1, NXB KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ, 300p, 2008 Sách, tạp chí
Tiêu đề: Giáo trình kỹ thuật lập trình
Nhà XB: NXB KHOA HỌC TỰ NHIÊN VÀ CÔNG NGHỆ
[6] Nguyễn Bá Tường, Nhập môn cơ sở dữ liệu phân tán, NXB Khoa học và Kỹ thuật, 2004 Sách, tạp chí
Tiêu đề: Nhập môn cơ sở dữ liệu phân tán
Nhà XB: NXB Khoa học và Kỹ thuật
[7] 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
[8] 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ê
[9] 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”
[10] J. Bischoff &amp; T. Alexander, Data Warehouse: Practical Advice from the Experts, Prentice Hall, 2002 Sách, tạp chí
Tiêu đề: Data Warehouse: Practical Advice from the Experts
[11] L. John, “Operational Data Stores: Building an Effective Strategy”, Data Warehouse: Practical Advive from the Experts, Prentice Hall, NJ, 1997 Sách, tạp chí
Tiêu đề: Operational Data Stores: Building an Effective Strategy”, "Data Warehouse: Practical Advive from the Experts
[12] A. Moeller (2001), Distributed Data Warehousing Using Web Technology Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w