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.. Phân mảnh ngang nguyên thuỷ là phân rã m
Trang 1LỜ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 xử lý Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ
Tác giả
PHANNOUVONG Nisason
Trang 2LỜ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
TS VŨ ĐỨC THÁI đã đị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, kiến thức 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 kiến thức, 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 cha mẹ và gia đình, bạn bè, đồng nghiệp 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 4 năm 2017
PHANNOUVONG Nisason
Trang 3MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC CHỮ VIẾT TẮT V
PHẦN MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Đối tượng và phạm vi nghiên cứu 1
3 Những nội dung nghiên cứu chính 2
4 Phương pháp nghiên cứu 2
5 Ý nghĩa khoa học của đề tài 2
CHƯƠNG 1: LÝ THUYẾT VỀ THAO TÁC TRÊN CƠ SỞ DỮ LIỆU QUAN HỆ 3
1.1 Các phép toán logic 3
1.1.1 Logic hình thức 3
1.1.2 Logic mệnh đề và chân lý 3
1.2 Tổng quan về CSDL phân tán 7
1.2.1 Các phương pháp phân mảnh và tái thiết 10
1.2.2 Cách tạo cây toán tử từ câu SQL 27
1.3 Kết luận 30
CHƯƠNG 2: PHÂN RÃ VẤN TIN VÀ CỤC BỘ HÓA DỮ LIỆU 32
2.1 Phân rã vấn tin câu vấn tin SQL 32
2.1.1 Phân tích câu truy vấn trên cơ sở “kiểu dữ liệu” và “ngữ nghĩa” 33
2.1.2 Loại bỏ dư thừa và tối ưu câu truy vấn 36
2.2 Cục bộ hóa dữ liệu phân tán và các phương pháp rút gọn câu truy vấn 39
2.2.1 Cục bộ hóa dữ liệu phân tán 39
2.2.2 Rút gọn câu truy vấn SQL phân tán 40
2.3 Kết luận 64
Trang 4CHƯƠNG 3: TỐI ƯU TRUY VẤN PHÂN TÁN CHO CSDL TẠI
TRƯỜNG CĐ KỸ THUẬT VIÊNG CHĂN 65
3.1 Ứng dụng trong xử lý dữ liệu học tập tại trường cao đẳng kỹ thuật Viêng Chăn 65
3.1.1 Lý thuyết và kỹ thuật trong các câu lệnh 65
3.1.2 Giới thiệu CSDL của trường cao đẳng kỹ thuật Viêng Chăn năm học 2015-2016 72
3.1.2 Một số dạng rút gọn câu vấn tin trên CSDL (tại mục 3.1.1) đã được phân mảnh 74
3.2 Kết luận 85
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN 86
TÀI LIỆU THAM KHẢO 87
Trang 5LAN: Local Area Network
SQL: Structured Query Language
Trang 6PHẦN MỞ ĐẦU
1 Đặt vấn đề
Ngày nay các lĩnh vực như giáo dục, thương mại ngày càng mở rộng
và phát triển Để hoạt động được thuận lợi và có hiệu quả cần phải nắm bắt thông tin nhanh nhất khi các địa điểm ở xa nhau Theo mô hình đám mây, các máy chủ CSDL lắp đặt tập trung tại một địa điểm an toàn, dữ liệu được phân
bố trong các thiết bị lưu trữ cũng coi như là kiến trúc phân tán
Như vậy, mô hình cơ sở dữ liệu phân tán đã, đang được nghiên cứu và ứng dụng vào thực tế Việc cần làm là nghiên cứu và làm sáng tỏ thêm khả năng ứng dụng thực tiễn của cơ sở dữ liệu phân tán
Lợi ích cơ bản nhất của cơ sở dữ liệu phân tán là dữ liệu của các cơ sở
dữ liệu vật lý riêng biệt được tích hợp logic với nhau làm cho nhiều người sử dụng trên mạng có thể truy nhập được
Cơ sở dữ liệu phân tán với cấp độ tự trị cao ở mỗi điểm Trong hệ phân tán các giải pháp rút gọn câu vấn tin phân tán làm giảm thời gian tính toán, giảm khối lượng truyền thông tin giữa các trạm và giảm không gian bộ nhớ, tránh được các công việc dư thừa, loại bỏ những phần vô ích và để phục vụ cho việc xử lí song song Được sự đồng ý của giáo viên hướng dẫn thực hiện
nghiên cứu “Rút gọn câu truy vấn và ứng dụng trong CSDL phân tán” 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
- Cơ sở dữ liệu có cấu trúc và cấu trúc phân tán
- Vấn đề truy vấn trong cơ sở dữ liệu phân tán và các giải pháp tối ưu các câu truy vấn
- Xây dựng một cơ sở dữ liệu trong thực tế minh họa cho các giải pháp
- Cài đặt mô phỏng các thao tác xử lý
Trang 73 Những nội dung nghiên cứu chính
- Kiến trúc cơ sở dữ liệu phân tán: Các mô hình, cách tổ chức, phân
mảnh CSDL theo kiến trúc phân tán
- Xây dựng một CSDL phân tán nhỏ để thử nghiệm thuật toán
- Xây dựng một số câu truy vấn và tối ưu
- Đánh giá hiệu quả tối ưu
4 Phương pháp nghiên cứu
- Phương pháp phân tích thiết kế CSDL
- Phương pháp phân mảnh CSDL phân tán
- Phương pháp xây dựng câu truy vấn và rút gọn câu truy vấn SQL
5 Ý nghĩa khoa học của đề tài
Luận văn ứng dụng các lý thuyết về CSDL phân tán, câu truy vấn SQL vào thực tế làm rõ hơn ưu điểm của mô hình phân tán Xây dựng bài toán ứng dụng như một CASE STUDY để nghiên cứu nâng cao kỹ năng kinh nghiệm
triển khai cho người đọc
Trang 8CHƯƠNG 1: LÝ THUYẾT VỀ THAO TÁC TRÊN
CƠ SỞ DỮ LIỆU QUAN HỆ
1.1.2 Logic mệnh đề và chân lý
- Mệnh đề là một phát biểu để diễn tả một khẳng định là đúng hoặc sai,
nó không thể vừa đúng lại vừa sai, hay mang tính chất mập mờ
Trang 9- Giá trị đúng hay sai của mệnh đề được gọi là chân lý của mệnh đề và thường được kí hiệu là 1 (hoặc T hoặc True) đối với chân lý đúng , còn chân
lý sai được kí hiệu là 0 (hoặc F hoặc False)
- Mệnh đề logic rất quan trọng trong khoa học máy tính
-
Các kí hiệu dùng trong mệnh đề logic
( ) Dùng để chỉ độ ưu tiên của phép toán logic
Phủ định (NOT)
Hội (Conjunction AND)
Tuyển (Disjunction OR)
Ký hiệu điều kiện (If…Then…)
Kéo theo hai chiều (If AND Only If)
Tổng trực giao (XOR)
Kí hiệu Ai i 1 ,n là mệnh đề thứ i, có thể dùng mệnh đề như là tham
số, các kí hiệu logic có ý nghĩa không đổi, còn các tham số có nội dung phụ thuộc và ngữ cảnh
Nói chung các kí hiệu trong biểu thức logic là hữu hạn hoặc đếm được, nhưng hầu hết các kết luận vẫn đúng cho trường hợp không đếm được
Mệnh đề được chia làm hai loại cơ bản:
- Mệnh đề sơ cấp (elementary), nó là các nguyên tử (atom)-không thể chia nhỏ được;
- Mệnh đề phức hợp (compound), đó mệnh đề được tạo ra từ các mệnh
đề khác bằng cách sử dụng các phép toán logic
Để máy tính hiểu được, chúng ta dùng các kí hiệu cho các mệnh đề, được gọi là biến mệnh đề Các biến mệnh đề được kí hiệu bởi các chữ cái thường
Biểu thức logic: Biểu thức logic chính là mệnh đề phức hợp
Trang 10Chân lý của phép toán logic được cho ở bảng 1.1 sau:
Mức ưu tiên của các phép toán logic được thể hiện ở bảng 1.2
Bảng 1.2 Ưu tiên các phép toán logic
, , Kéo theo, tương đương, tổng trực giao
Tương đương của hai biểu thức logic
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 lý
Các quy tắc thay thế
Quy tắc 1: (Quy tắc thay thế tương đương)
Cho E là một biểu thức logic, nếu thay thế một biểu thức con của nó bởi một biểu thức tương đương với biểu thức con đó, biểu thức logic E’ mới nhận được sẽ tương đương với E
Quy tắc 2: (Tính bất biến đối với biểu thức logic hằng đúng)
Cho E là biểu thức hằng đúng, nếu thay thế một mệnh đề p nào đó trong E bởi một biểu thức logic bất kỳ ta sẽ nhận được biểu thức logic E’ mới cũng là hằng đúng
Bảng 1.1 Chân lý của các phép toán logic
Trang 11Ghi chú: Kết quả tương tự cho biểu thức hằng sai
Các dạng chính tắc
Biểu thức hội cơ bản
Biểu thức logic F = F (p1, p2, ., pn ), trong đó pi (i 1 ,n) là các biến mệnh đề sơ cấp, được gọi là biểu thức hội cơ bản, nếu: F = q1 q2 qn ; với qi = pi hoặc qi =pi (i 1 ,n)
Biểu thức tuyển cơ bản
Biểu thức logic E = E (p1, p2, .pn ), trong đó pi (i 1 ,n) là các biến mệnh đề sơ cấp, được gọi là biểu thức tuyển cơ bản, nếu: E = q1 q2 qn; với qi = pi hoặc qi =pi (i 1 ,n)
Biểu thức logic E = E (p1, p2, .pn ), trong đó pi (i 1 ,n) là các biến mệnh đề sơ cấp, được gọi là dạng tuyển chính tắc, nếu: E = E1 E2 En ; trong đó mỗi Ei (i 1 ,n) là một biểu thức hội cơ bản của các pi (i 1 ,n)
Định lý:
Mọi biểu thức logic E (p 1 , p 2 , ., p n ) đều tương đương với một biểu thức tuyển chính tắc duy nhất Tức là E (p 1 , p 2 , .p n ) E 1 E 2 . E m (duy nhất ) với E i ( i 1 ,m ) là các biểu thức hội cơ bản Nghĩa là E i = q 1 q 2
q n với q i = p i hoặc q i =p i ( i 1 ,n )
Biểu thức logic hội chính tắc
Biểu thức logic F = F (p1, p2, ., pn ), trong đó pi (i 1 ,n) là các biến mệnh đề sơ cấp, được gọi là dạng hội chính tắc, nếu: F = F1 F2 Fn , trong đó mỗi Fi (i 1 ,n) là một biểu thức tuyển cơ bản của các pi (i 1 ,n)
Định lý:
Mọi biểu thức logic F (p 1 , p 2 , ., p n ) đều tương đương với một biểu thức hội chính tắc duy nhất Tức là F (p 1 , p 2 , , p n ) F = F 1 F 2 F m
Trang 12(duy nhất ) với F i ( i 1 ,m ) là các biểu thức tuyển cơ bản Nghĩa là F i = q 1
q 2 q n với q i = p i hoặc q i =p i ( i 1 ,n )
1.2 Tổng quan về CSDL phân tán
Xử lý phân tán hay còn gọi là hệ thống tính toán phân tán đó là một hệ thống bao gồm một số bộ xử lý tự vận hành được liên kết thành mạng và hợp đồng thực hiện các nhiệm vụ mà chúng được phân công Các bộ xử lý có thể thực hiện được các chương trình tiền định trên đó
Những đối tượng được phân tán:
- Các thiết bị xử lý, các chức năng xử lý: Nhiều chức năng của hệ thống
có thể được chuyển giao cho các thành phần: phần cứng và phần mềm
- Dữ liệu: Dữ liệu được dùng bởi một số ứng dụng có thể được phân
tán tới một số vị trí xử lý
- Quyền điều khiển: cũng có thể được phân tán Quyền điều khiển một
số nhiệm vụ cũng được phân tán
Hệ thống xử lý phân tán có thể phân thành các loại như sau:
- Mức độ kết nối,
- Sự liên đới giữa các thành phần,
- Cấu trúc tương giao,
- Sự đồng bộ hoá giữa các thành phần
Sự cần thiết phân tán:
-Nhằm thích ứng tốt hơn với việc phân bố rộng rãi của các công ty, xí nghiệp, cơ quan
- Nhiều ứng dụng công nghệ hiện đại cần được phân tán
Lý do của việc xử lý phân tán:
Để thực hiện tốt hơn các bài toán lớn và phức tạp mà chúng gặp phải hiện nay bằng cách sử dụng quy tắc ”Chia để trị”
Các ưu điểm cơ bản của xử lý phân tán:
Trang 13- Tận dụng được sức mạnh tính toán xử lý song song bằng cách sử dụng nhiều bộ xử lý đồng thời
- Giải quyết bài toán theo từng nhóm hoạt động độc lập nên có thể kiểm soát được chi phí phát triển phần mềm
- Các hệ cơ sở dữ liệu phấn tán cũng có thể được xem xét trong khuôn khổ của bộ khung này làm cho việc xử lý dữ liệu phân tán dễ dàng và hiệu quả hơn
Một số hệ thống xử lí hay được dùng:
- Hệ thống đa xử lý có bộ nhớ chung [2]
- Hệ đa bộ xử lý có shared disk [2]
- Hệ đa bộ xử lý sở hữu cá nhân [2]
Ghi chú: Phân bố vật lý của bộ xử lý không nhất thiết là phải cách xa
nhau về mặt địa lý; chúng có thể ở trong cùng máy, một văn phòng,… giao tiếp giữa các bộ xử lý được thực hiện thông qua mạng truyền thông
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 không phải là một tập hợp các tệp dữ liệu được lưu trữ riêng rẽ tại các nút của mạng máy tính mà 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ấu trúc và vừa phải được truy xuất qua một giao diện chung
Phân bố vật lý của các dữ liệu không phải là vấn đề quyết định trong DDBS Tuy vậy, viêc phân bố vật lý của các dữ liệu sẽ nảy sinh ra các vấn đề rất phức tạp như thực hiện các cấu trúc truy vấn, vấn đề cấp phát
Nhận xét:
Trang 14Nế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 (hình 1.1) khi đó tất cả yêu cầu truy xuất CSDL điều được chuyển đến workstation 2 Và điều cần quan tâm ở đây chỉ là thời gian truy cập của các workstation khác đến workstation2
Nếu 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 (hình 1.2)
Workstation5
Mạng Truyền
Trang 151.2.1 Các phương pháp phân mảnh và tái thiết
Các kiểu phân mảnh cơ bản là: Phân mảnh ngang, phân mảnh dọc Ngoài ra còn có các kiểu phân mảnh dựa trên hai cách cơ bản đã nêu là phân mảnh ngang dẫn xuất và phân mảnh hỗn hợp
Ví dụ: 1.2.1-1
Để tiện cho việc nghiên cứu ta xét CSDL quan hệ của công ty Toán như sau:
Điện 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ư bảng 1.3
Workstation5
Mạng Truyền Dữ Liệu
Trang 16Bảng 1.3 Quan hệ NhanVien
- Quan hệ DuAn(MaDuAn, TenDuAn, NganSach)
(trong đó DuAn là tên quan hệ dự án; 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ư bảng 1.4
Bảng 1.4 Quan hệ DuAn
- Quan hệ TraLuong(TrinhDoCM, Luong)
- Trong đó TraLuong là tên quan hệ trả lương; Luong là tiền lương trả cho nhân viên Và dữ liệu giả định như bảng 1.5
Trang 17Bảng 1.5 Quan hệ TraLuong
- Quan hệ PhanNhiem (MaNV, MaDuAn, ThoiGianLV, ChucVu)
(trong đó PhanNhiem là tên quan hệ phân nhiệm; Phân công nhân viên có MaNV làm tại dự án có MaDuAn, Thoi GianLV là thời gian làm việc, với nhiệm vụ ChucVu là giữ chức vụ) Và dữ liệu giả định như bảng 1.6
Bảng 1.6 Quan hệ PhanNhiem
NV02 DA01 Nhân viên phân tích và thiết kế 24
Trang 18Kết nối giữa các quan hệ trong cơ sở dữ liệu trên như hình 1.6
Hình 1.3 Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối
1.2.1.1 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ỷ
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ộ dựa trên các vị từ được định nghĩa trên quan hệ đó
- Phân mảnh ngang dẫn xuất 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:
- 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 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
TraLuong
TrinhDoCM.Luong
MaNV, TenNV,TrinhDoCM
MaNV, MaDuAn,ChucVu, ThoiGianLV
MaDuAn, TenDuAn, NganSach, ViTri DuAn
l1
PhanNhiem
NhanVien
Trang 19cũ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
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 đị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
Những thông tin định tính gồm có các vị trí được dùng trong các câu vấn tin Nếu không thể phân tích được hết tất cả các ứng dụng thì ít nhất cũng phải nghiên cứu được các ứng dụng “quan trọng” nhấ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: pk : Ai <Giá trị thuộc tính> Trong đó
θ {=, <, ≠, ≤, >, ≥} và giá trị thuộc tính được chon từ miền Di
Ví dụ 1.2.1.1-2
Trong quan hệ DuAn của bảng 1.4 thì:
p1: TenDuAn = “Bảo dưỡng”
p2: NganSach ≤ 200000
Trang 20là 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
p1 : TrinhDoCM = “Kỹ sư điện”
p2 : TrinhDoCM = “Phân tích và thiết kế hệ thống”
p3 : TrinhDoCM = “Kỹ sư cơ khí”
Trang 21m1: TrinhDoCM = ” Kỹ sư điện” ^ Luong ≤ 30000
- Một số vị từ hội sơ cấp có thể vô nghĩa đối với ngữ nghĩa của quan
hệ nên ngay từ đầu chúng ta có thể loại bỏ ngay Chẳng hạn trong quan hệ TraLuong m1 là vị từ hội sơ cấp vô nghĩa
Độ tuyển hội sơ cấp và tần số truy xuất:
- Độ tuyển hội sơ cấp
Độ tuyển hội sơ cấp là số lượng các bộ của một quan hệ sẽ được truy xuất bởi câu vấn tin được đặc tả theo một vị từ hội sơ cấp đã cho Ký hiệu độ tuyển hội sơ cấp mi là sel(mi)
- Tần số truy xuất
Tần số truy xuất của một câu vấn tin q là số lần sử dụng câu vấn tin q
đó, tần số truy xuất của q được ký hiệu là acc(q)
Chú ý rằng tần số truy xuất hội sơ cấp có thể được xác định từ tần số vấn tin Chúng ta cũng ký hiệu tần số truy xuất của một hội sơ cấp m là acc(m)
* Phân mảnh ngang nguyên thủy
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:
Trang 22Ri = Fi(R), 1≤ i ≤ z (1.2) Trong đó Fi là công thức chọn Chú ý rằng chúng ta xét Fi có dạng hội
Nếu miền biến thiên của các thuộc tính có mặt trong công thức chọn là liên tục và vô hạn, chúng ta rất khó định nghĩa tập các công thức F = {F1,F2, , Fn} thích hợp cho phân mảnh ngang Một phương án là định nghĩa các khoảng nếu có thể
Nhận xét:
Cho tập các vị từ 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 vị từ 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 vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp
Hai 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.2.1.1-1 Tập các vị từ đơn giản đầy đủ
Trang 23Tậ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 1.2.1.1-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 1.2.1.1-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
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
Trang 24Thuậ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
Nhằm chỉ ra cách tìm tập vị từ hội sơ cấp (không mâu thuẫn) 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 vị từ hội sơ cấp đã tìm được, chúng ta dùng thuật toán P_HORIZONTAL [2]
* Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất là phân mảnh ngang trên quan hệ đích của một đường nối dựa theo phép toán chọn trên quan hệ nguồn của đường nối đó
Như thế nếu cho trước một đường lối l, trong đó Nguon(l) = S và Dich(l) = R, các mảnh ngang dẫn xuất của R được định nghĩa là:
Ri = R╞ Si, 1 i (1.4) Trong đó là số lượng các mảnh được định nghĩa trên R, và Si = Fi(S) với Fi là vị từ phân mảnh ngang nguyên thuỷ Si từ S
Ví dụ 1.2.1.1-5
Xét đường nối l1 trong hình 1.6, trong đó Nguon(l1) = TraLuong và Dich(l1)
= NhanVien Thế thì chúng ta có thể nhóm các kỹ sư thành hai nhóm tuỳ theo lương: nhóm có lương từ 30000 USD trở xuống và nhóm có trên 30000 USD Hai mảnh được sinh ra như sau:
Trang 25NhanVienDanxuat1 = NhanVien ╞ TraLuong1
NhanVienDanxuat2 = NhanVien ╞ TraLuong2
Trong đó
TraLuong1 = Luong 30000 (TraLuong)
TraLuong2 = Luong > 30000 (TraLuong)
Kết quả phân mảnh được trình bày trong các bảng 1.7a, 1.7b Bảng 1.7a Mảnh dẫn xuất NhanVienDanxuat1 tương ứng TraLuong1
Bảng 1.7b Mảnh dẫn xuất NhanVienDanxuat2 tương ứng TraLuong2
Hình 1.7 Đồ thị nối giữa các mảnh
Trang 26Các thông tin cần cho phân mảnh ngang dẫn xuất: Muốn thực hiện phân mảnh ngang dẫn xuất, chúng ta cần ba thông tin vào: tập các mảnh của quan hệ nguồn, quan hệ đích và tập các vị từ nối nửa giữa nguồn và đích
Một số vấn đề cần phải chú ý
Trong lược đồ CSDL, chúng ta hay gặp nhiều đường nối đến một quan
hệ Như thế có thể có nhiều cách phân mảnh ngang dẫn xuất cho quan hệ đó
Quyết định chọn cách phân mảnh nào cần 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
Nhận xét:
- Phân mảnh dẫn xuất có thể xảy ra dây chuyền: một quan hệ được phân mảnh như hệ quả của một phân mảnh đã có từ một quan hệ khác, và đến lượt nó lại làm cho quan hệ khác phải phân mảnh
- Thường thì một quan hệ sẽ có nhiều cách phân mảnh Chọn một lược
đồ phân mảnh là một bài toán quyết định
Kiểm định tính đúng đắn
Phải kiểm tra các thuật toán phân mảnh đảm bảo cho CSDL sẽ không thay đổi ngữ nghĩa khi phân mảnh
Tính đầy đủ Tính đầy đủ của một phân mảnh ngang nguyên thuỷ dựa
vào vị trí đã chọn Bởi vì cơ sở thuật toán phân mảnh là một tập các vị từ cực tiểu và đầy đủ PR’, tính đầy đủ sẽ được đảm bảo là đầy đủ với điều kiện là không có sai sót xảy ra khi định nghĩa PR’
Tính tái thiết được Tái thiết một quan hệ toàn cục từ các mảnh được
thực hiện bằng toán tử hợp trong cả phân mảnh ngang nguyên thuỷ lẫn dẫn xuất Vì thế một quan hệ R với phân mảnh FR = {R1, R2,…, Rw}, chúng ta có
R = Ri , Ri FR
Tính tách rời Chúng ta dễ dàng có được tính tách rời của phân mảnh
nguyên thuỷ hơn so với phân mảnh dẫn xuất Trong trường hợp đầu, tính tách
Trang 27rời sẽ được bảo đảm miễn là các vị từ hội sơ cấp xác định phân mảnh có tính loại trừ tương hỗ (mutually exclusive) Tuy nhiên phân mảnh dẫn xuất có hàm chứa các nối nửa khiến vấn đề càng phức tạp hơn Tính tách rời có thể được đảm bảo nếu đồ thị nối thuộc loại đơn giản
1.2.1.2 Phân mảnh dọc
Phân mảnh dọc chia một quan hệ R ra các quan hệ con (mảnh) R1, R2, Rr Mỗi mảnh chứa một tập con các thuộc tính cùng với khóa của quan hệ R
- Các yêu cầu thông tin của phân mảnh dọc
Các thông tin chính cần cho phân mảnh dọc liên quan đến các ứng dụng Vì thế, chúng ta xem xét về các điều kiện cho các ứng dụng sẽ chạy trên CSDL phân tán Bởi vì phân mảnh dọc đặt vào một mảnh các thuộc tính thường được truy xuất chung với nhau, chúng ta cần có một giá trị đo đạc được nào đó để định nghĩa chính xác hơn về khái niệm "chung với nhau" Số
đo này được gọi là ái lực (affinity) của thuộc tính, nó chỉ ra mức độ liên đới giữa các thuộc tính
- Các yêu cầu dữ liệu của phân mảnh dọc
Yêu cầu dữ liệu có liên quan đến các ứng dụng gọi là tần số truy xuất (access frequency) của chúng Goi Q={q1, q2,… qq} là tập các vấn tin của người dùng (các ứng dụng) sẽ chạy trên quan hệ R(A1,…An) Thế thì với mỗi câu vấn tin qi và mỗi thuộc tính Aj chúng ta đưa ra một giá trị sử dụng thuộc tính ký hiệu là use(qi, Aj) và được định nghĩa như sau:
(1.5)
Các véc tơ use(qi, A#) cho mỗi ứng dụng rất dễ định nghĩa nếu như nhà thiết kế biết được các ứng dụng sẽ chạy trên CSDL
use(qi, Aj )= 1 nếu thuộc tính Aj được vấn tin qi tham chiếu
0 trong trường hợp ngược lại
Trang 28Thuật toán tụ nhóm
Nhiệm vụ cơ bản của phân mảnh dọc là tìm thuật toán để gom thành nhóm các thuộc tính dựa trên các giá trị của ma trận ái lực thuốc tính AA Chúng ta sẽ thực hiện nhiệm vụ này bởi thuật toán năng lượng nối BEA (Bond Energy Algorithm) [3] Ưu điểm của thuật toán này là ở chỗ:
- Nó được thiết kế đặc biệt để xác định các nhóm gồm các mục tương
tự, trái ngược với một sắp xếp thứ tự tuyến tính của các mục (nghĩa là
nó gom các thuộc tính có giá trị ái lực lớn lại với nhau và những thuộc tính có giá trị ái lực nhỏ lại với nhau)
- Các kết quả tụ nhóm không bị ảnh hưởng bởi thứ tự đưa các mục vào thuật toán
- Thời gian tính toán của thuật toán có thể chấp nhận được [là O (n2) với n là số lượng thuộc tính]
- Mối liên hệ qua lại giữa các nhóm thuộc tính tụ có thể xác định được Thuật toán năng lượng nối BEA đầu vào là ma trận ái lực thuộc tính, hoán vị các hàng và cột rồi sinh ra một ma trận ái lực tụ (CA - Clustered Affinity matrix) Hoán vị được thực hiện sao cho số đo ái lực chung AM là lớn nhất
Thuật toán phân hoạch: Mục đích của hành động tách thuộc tính là
tìm ra các tập thuộc tính được truy xuất cùng nhau hoặc hầu như là bằng các tập ứng dụng riêng biệt Ví dụ có thể biết được hai thuộc tính A1 và A2, chỉ được ứng dụng q1 truy xuất và các thuộc tính A3 và A4 được các ứng dụng khác truy xuất, chẳng hạn là q2 và q3, thì quyết định phân mảnh là tầm thường Công việc chính nằm ở chỗ là ra tìm một phương pháp theo kiểu thuật toán để xác định các nhóm này
Xét ma trận thuộc tính tụ của hình 1.8 Nếu một điểm nằm trên đường chéo được cố định, hai tập thuộc tính sẽ được xác định Một tập {A1, A2, ….,
Ai) nằm tại góc trên trái và tập thứ hai {Al+1, … An} ở về bên phải và bên
Trang 29dưới của điểm này Chúng ta gọi tập thứ nhất là đỉnh (top) và tập thứ hai là đáy (bottom), biểu thị các tập thuộc tính tương ứng là TA và BA
Bây giờ chúng ta quay sang tập ứng dụng Q = {q1, q2 … qq} và định nghĩa các tập ứng dụng chỉ truy xuất TA, chỉ truy xuất BA hoặc cả hai Những tập này được định nghĩa như sau:
Ở đây nảy sinh bài toán tối ưu hoá Nếu có n thuộc tính trong một quan
hệ thì sẽ có n – 1 vị trí khả hữu có thể là điểm phân chia trên đường chéo của
ma trận thuộc tính tụ cho quan hệ đó Vị trí tốt nhất để phân chia là vị trí sinh
ra các tập TQ và BQ sao cho tổng các truy xuất chỉ một mảnh là lớn nhất còn
Trang 30tổng các truy xuất cả hai mảnh là nhỏ nhất Vì thế chúng ta định nghĩa các phương trình chi phí như sau:
CQ =
Q
q S
i j i j
q acc q ref ( ) ( )
CTQ =
TQ
q S
i j i j
q acc q ref ( ) ( )
CBQ =
BQ
q S
i j i j
q acc q ref ( ) ( )
COQ =
OQ
q S
i j i j
q acc q ref ( ) ( )
Mỗi phương trình ở trên đếm tổng số truy xuất đến các thuộc tính bởi các ứng dụng trong các lớp tương ứng của chúng Dựa trên số liệu này, bài toán tối ưu hoá được định nghĩa là bài toán tìm điểm x (1 x n) sao cho biểu thức z = CTQ * CBQ – COQ2 lớn nhất
Đặc trưng quan trọng của biểu thức này là nó định nghĩa hai mảnh sao cho giá trị của CTQ và CBQ càng gần bằng nhau càng tốt Điều này cho phép cân bằng tải trong xử lý khi các mảnh được phân tán đến các vị trí khác nhau
Rõ ràng là thuật toán phân hoạch có độ phức tạp tuyến tính theo số thuộc tính của quan hệ, nghĩa là O(n)
Với giả thiết là đã có trước một thủ tục xê dịch là SHIFT, chúng ta có thuật toán phân hoạch PARTITION [3] Ma trận ái lực tụ CA là đầu vào của thuật toán, quan hệ R cần phân mảnh, ma trận sử dụng thuộc tính và ma trận tần số truy xuất Thành phẩm là một tập của các mảnh FR = {R1, R2}, trong đó
Ri {A1, A2…, An} và R1 R2 = các thuộc tính khoá của quan hệ R Chú ý rằng để phân hoạch k dòng, thủ tục này hoặc sẽ được gọi lặp đi lặp lại hoặc được cài đặt như một thủ tục đệ qui
Kiểm tra tính đúng đắn của thuật toán PARTITION:
Trang 31Tương tự trong phân mảnh ngang để chứng tỏ rằng thuật toán PARTITION sinh ra một phân mảnh dọc đúng đắn
Tính đầy đủ: Tính đầy đủ được bảo đảm bằng thuật PARTITION vì mỗi thuộc tính của quan hệ toàn cục được đưa vào một trong các mảnh Với điều kiện là tập thuộc tính a của quan hệ A thoả A = Ri
Thì tính đúng đắn của phân hoạch đọc được bảo đảm
Tính tái thiết được: Chúng ta đã nói rằng có thể xây dựng lại quan hệ ban đầu bằng phép nối Vì thế đối với quan hệ R có phân mảnh dọc RR = {R1,
R2… Rn} và các thuộc tính khoá K, thì việc tái thiết quan hệ R thực hiện theo công thức sau:
R = K Ri, Ri FR
Do vậy, nếu điều kiện mỗi Ri là đầy đủ, phép toán nối sẽ tái thiết lại đúng R Một điểm quan trọng đó là mỗi Ri phải chứa các thuộc tính khoá của quan hệ hoặc chưa một mã TID được gán bởi hệ thống
Tính tách biệt Như chúng ta đã nói trước kia, tính tách biệt của các mảnh trong phân mảnh dọc không quan trọng bằng tính tách biệt trong phân mảnh ngang
1.2.1.3 Phân mảnh hỗn hợp
Trong đa số các trường hợp, phân mảnh ngang hoặc phân mảnh dọc đơn giản cho một lược đồ CSDL không đủ đáp ứng các yêu cầu từ các ứng dụng Trong trường hợp đó, phân mảnh dọc có thể được thực hiện sau một phân mảnh ngang hoặc ngược lại, sinh ra một lối phân hoạch có cấu trúc cây (Hình 1.9) Bởi vì, hai loại chiến lược phân hoạch này được áp dụng lần lượt, chọn lựa này được gọi là phân mảnh hỗn hợp (hybrid fragmentation)
Trang 321.2.2 Cách tạo cây toán tử từ câu SQL
Định nghĩa cây toán tử:
Một cây toán tử là cây với mỗi nút lá biểu thị cho một quan hệ được lưu trong cơ sở dữ liệu, nút không phải là lá biểu thị một quan hệ trung gian được sinh ra bởi phép toán quan hệ Chuỗi các phép toán để đi theo hướng lá đến gốc, gốc biểu thị kết quả vấn tin
Cách biến đổi câu vấn tin phép tính quan hệ trở thành một cây toán tử như sau:
i Trước hết tạo ra các nút lá là các quan hệ trong SQL các nút lá nằm sau FROM
ii Nút gốc được tạo ra như phép chiếu chứa các thuộc tính kết quả, các thuộc tính này nằm sau SELECT
iii Lượng từ hoá (vị từ sau WHERE) được chuyển thành các phép tính quan hệ thích hợp (phép chọn, phép nối,…) đi từ các nút lá đến gốc Chuỗi này có thể được cho trực tiếp qua thứ tự xuất hiện của các vị trí và các toán
tử
Ví dụ 1.2.2-1
Quan hệ EMP(ENO, ENAME, TITLE)
Trang 33Bảng 1.8a Quan hệ EMP
- Quan hệ PROJ(PNO, PNAME, BUDGET)
Bảng 1.8b Quan hệ PROJ
- Quan hệ PAY(TITLE, SAL)
Bảng 1.8c Quan hệ PAY
Trang 34
- Quan hệ ASG (ENO, PNO, DUR, RESP)
FROM ASG , EMP, PROJ
WHERE ASG.ENO = EMP.ENO
AND ASG.PNO = PROJ.PNO
AND ENAME <> “J.Doe”
AND PROJ.PNAME = “CAD/CAM”
AND (DUR=12 OR DUR=24)
AND (DUR =12 OR DUR =24)
Trang 35Cây toán tử như sau (hình 1.10):
Qua áp dụng quy tắc biến đổi, có thể có nhiều cây tương đương với cây
DUR=12 DUR=24
Trang 36Hệ 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
Trong CSDL Phân tán có các kiểu phân mảnh cơ bản là: Phân mảnh ngang, phân mảnh dọc Ngoài ra còn có các kiểu phân mảnh dựa trên hai cách
cơ bản đã nêu là phân mảnh ngang dẫn xuất và phân mảnh hỗn hợp Tùy vào từng trường hợp hoàn cảnh cụ thể mà sử dung các kiểu phân mảnh tương ứng cho phù hợp
Trang 37CHƯƠNG 2: PHÂN RÃ VẤN TIN VÀ CỤC BỘ HÓA DỮ LIỆU 2.1 Phân rã vấn tin câu vấn tin SQL
Phân rã vấn tin là giai đoạn đầu tiên của quá trình xử lý câu vấn tin, nó biến đổi câu vấn tin dạng phép tính quan hệ (cấp cao) thành câu vấn tin đại số quan hệ (cấp thấp) Các vấn tin nhập, xuất đều tham chiếu đến các quan hệ toàn cục và không dùng đến các thông tin về phân bố dữ liệu, vì thế phân rã vấn tin giống nhau trong cả hệ tập trung lẫn phân tán Các bước phân rã vấn tin gồm: phân tích; loại bỏ dư thừa và viết lại câu vấn tin
Trước khi tiến hành các bước phân rã vấn tin ta tiến hành chuẩn hóa Chuẩn hoá là biến đổi câu vấn tin thông thường thành câu vấn tin dạng chuẩn
để tiếp tục xử lý với các ngôn ngữ quan hệ như SQL, biểu đồ quan trọng nhất
là lượng từ hoá vấn tin cho vị từ phi lượng từ với độ phức tạp nào đó khi dùng các lượng từ cần thiết như : với mọi, : tồn tại, chúng được đặt phía trước Dạng chuẩn hội (Conjunctive normal form) là hội () của các tuyển ()
Ví dụ: (p11 p12 … p1n)…(pm1 pm2 … pnm) Trong đó : p## là vị từ đơn giản
Dạng chuẩn tuyển (disjunction normal from) là tuyển () của các hội () Ví dụ: (p11p12…p1n) …(pm1pm2…pmn)
Dạng chuẩn hội thường được sử dụng trong thực tế bởi vì các lượng từ hoá vấn tin thường chứa nhiều vị từ AND hơn vị từ OR Tuy nhiên nó cũng
có thể thực hiện cho các vị từ chuẩn tuyển
Trang 38WHERE EMP.ENO = AGS.ENO
AND ASG.PNO = “P1”
AND DUR =12 OR DUR = 24
Lượng từ hoá chuẩn hội là :
(EMP.ENO=ASG.ENO)^(ASG.PNO= “P1”) ^ ((DUR=12) v (DUR=24)) Còn lượng tử hóa chuẩn tuyển là :
((EMP.ENO =ASG.ENO) (ASG.PNO = “P1”) (DUR=12))
((EMP.ENO =ASG.ENO) (ASG.PNO = “P1”) (DUR=24))
2.1.1 Phân tích câu truy vấn trên cơ sở “kiểu dữ liệu” và “ngữ nghĩa”
Phân tích câu truy vấn để bỏ đi các câu truy vấn sai hoặc thừa Những
lý do chính là do chúng sai kiểu hoặc sai nghĩa Khi phát hiện ra một trong
những trường hợp này, hệ thống chỉ đơn giản trở về và đưa ra một thông báo giải thích về lý do sai Ngược lại, quá trình xừ lý truy vấn sẽ được tiếp tục
Một câu truy vấn gọi là sai kiểu (type incorrect) nếu nó có một thuộc
tính hoặc tên quan hệ chưa được khai báo trong lược đồ toàn cục, hoặc kiểu không thích hợp cho các phép toán đang được xử lý Kỹ thuật được sử dụng
để phát hiện các câu truy vấn sẽ nêu ở đây giống như kỹ thuật kiểm tra kiểu trong ngôn ngữ lập trình Tuy nhiên các khai báo kiểu là một bộ phận của lược đồ toàn cục chứ không phải nằm trong câu truy vấn bởi vì một câu truy vấn quan hệ không tạo ra một kiểu nào mới
Một câu truy vấn gọi là sai nghĩa (semantically incorrect) nếu các thành phần của nó không tham gia vào việc tạo ra kết quả Trong ngữ cảnh
của phép tính quan hệ, chúng ta không thể xác định được tính đúng đắn ngữ nghĩa cho câu truy vấn tổng quát Tuy nhiên vẫn có thể xác định được tính đúng đắn ngữ nghĩa của câu truy vấn cho một lớp truy vấn quan hệ, đó là các vấn tin không chứa các tuyển và phủ định bằng cách biểu diễn câu truy vấn
như một đồ thị, được gọi là đồ thị kết nối (connection graph) hay đồ thị truy vấn (query graph)
Trang 39Chúng ta định nghĩa đồ thị kết nối cho các loại truy vấn hữu ích nhất có chứa phép chọn, chiếu và nối Trong một đồ thị truy vấn có một nút biểu thị cho một quan hệ kết quả và các nút khác biểu thị cho các quan hệ toán hạng Một cạnh giữa hai nút không phải là quan hệ kết quả biểu diễn cho một nối, còn cạnh nối với nút kết quả sẽ biểu thị cho phép chiếu Còn các nút không phải là kết quả có thể được gắn nhãn là một vị từ chọn hoặc vị từ nối Một đồ thị con quan trọng của đồ thị truy vấn là đồ thị nối chỉ có các nối mà thôi Đồ thị nối rất có ích cho giai đoạn tối ưu hóa truy vấn
Ví dụ 2.1.1-1
Từ các quan hệ trong ví dụ 1.2.2-1 tìm tên (ENAME) và nhiệm vụ (RESP) của các lập trình viên (programmer) đã làm việc cho dự án CAD/CAM trong hơn ba năm (36 tháng)
Câu truy vấn bằng SQL như sau :
SELECT EMANE, RESP
FROM ẸMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND PNAME = “CAD/CAM”
AND DUR >= 36
AND TITLE = “Programmer”
Đồ thị truy vấn cho câu vấn tin trên là hình 2.1-1a
Đồ thị truy vấn giúp cho việc xác định tính đúng đắn về ngữ nghĩa của câu truy vấn hội đa biến không có phủ định Câu truy vấn sẽ sai ngữ nghĩa nếu đồ thị truy vấn của nó không liên thông
Câu truy vấn được xem là đúng bằng cách xét các nối kết bị thiếu như một tích Descartes Nhưng nói chung, vấn đề chính là các vị từ nối từ bị thiếu
và câu truy vấn cần được cần loại bỏ
Trang 40Từ đồ thị truy vấn ta có đồ thị nối (hình 2.1b)
Ví dụ 2.1.1-2
Xét câu truy vấn SQL như sau
SELECT ENAME, RESP
FROM EMP, ASG, PROJ
Hình 2.1b Đồ thị nối của 2.1a
TITLE = “Programmer”
DUR >= 36
Hình 2.1a Đồ thị truy vấn