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 3LỜ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 4MỤ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 52.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 6DANH 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 7DANH 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 8DANH 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 9BẢNG DANH MỤC CÁC KÍ HIỆU
Phép giao Phép hợp
Trang 10LỜ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 115 Ý 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 12Chươ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 13Biể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 15Hai 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 16Nhậ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 17Hầ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 18kiể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 19Ví 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 20phá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 21biê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 222 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 23UPDATE 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 24nhậ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 25R- để 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 26trong đó 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 27if 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 281.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 29Chươ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 30iii/ 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 32Thấ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 33MaDuAn 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 34Mộ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 35TrinhDoCM 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 36m4: (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 37Bả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 38Masv 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 39Sinhvien2 = 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