1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Rút gọn câu truy vấn và ứng dụng trong CSDL phân tán

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

Nội dung

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 1

LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu 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 2

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành nhất đến thầy

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 3

MỤ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 4

CHƯƠ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 5

LAN: Local Area Network

SQL: Structured Query Language

Trang 6

PHẦ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 7

3 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 8

CHƯƠ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 10

Châ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 11

Ghi 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 14

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 (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 15

1.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 16

Bả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 17

Bả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 18

Kế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 19

cũng được mô hình hoá theo kiểu mô hình quan hệ Theo cách này, chúng ta

sẽ vẽ một đường nối có hướng từ quan hệ Parent đến quan hệ Child

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 20

là hai vị từ đơn giản trên quan hệ DuAn

Gọi PR là tập tất cả các vị từ đơn giản được định nghĩa trên quan hệ R Tức là

PR = { p1, p2, pm },

chẳng hạn PDuAn = { p1, p2}

Thấy rằng vị từ đơn giản rất dễ xử lý, tuy nhiên câu vấn tin lại thường

là tổ hợp của các vị từ đơn giản Một tổ hợp cần đặc biệt chú ý là vị từ dạng chuẩn hội, đó là hội của các tuyển vị từ đơn giản

Bởi vì chúng ta luôn có thể biến đổi một biểu thức boole thành dạng chuẩn hội, việc sử dụng vị từ hội sơ cấp trong một thuật toán không làm mất

đi tính tổng quát

Cho một tập PR = { p1, p2, pm }, tập các vị từ hội sơ cấp được ký hiệu

là M = { m1,m2 mn }, trong đó mk được xác định như sau:

mk = 

K i

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 21

m1: 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 22

Ri = 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 23

Tập các vị từ đơn giản Pr được gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng (vấn tin) truy xuất đến một bộ bất kỳ thuộc một mảnh hội sơ cấp nào đó được định nghĩa theo Pr đều bằng nhau

Định nghĩa 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 24

Thuật toán bắt đầu tìm một vị từ có liên đới và phân hoạch quan hệ đã

cho Vòng lặp Do … Until để thêm các vị từ vào tập này, bảo đảm tính cực

tiểu tại mỗi bước vì thế vào cuối vòng lặp, tập P’R là đầy đủ và cực tiểu

Bước thứ hai trong quá trình thiết kế phân mảnh ngang nguyên thuỷ là tìm các vị từ hội sơ cấp có thể định nghĩa trên các vị từ trong tập P’R Việc xác định các vị từ hội sơ cấp là tầm thường; khó khăn chính là tập các vị hội

sơ cấp có thể rất lớn - là hàm mũ theo số lượng các vị từ đơn giản Trong bước kế tiếp chúng ta sẽ tìm cách làm giảm số lượng vị từ hội sơ cấp cần được định nghĩa trong phân mảnh

Bước thứ ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa, điều này được thực hiện khi sử dụng phép kéo theo I

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 25

NhanVienDanxuat1 = 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 26

Cá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 27

rờ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 28

Thuậ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 29

dướ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 30

tổ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 31

Tươ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 32

1.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 33

Bả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 35

Câ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 36

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

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 37

CHƯƠ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ụ: (p11p12…p1n)  …(pm1pm2…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 38

WHERE 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 39

Chú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 40

Từ đồ 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

Ngày đăng: 02/11/2017, 08:43

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] .Vũ Đức Thái, ”Thiết kế CSDL”, NXB Đại học Thái Nguyên, Năm 2016 Sách, tạp chí
Tiêu đề: ”Thiết kế CSDL”
Nhà XB: NXB Đại học Thái Nguyên
[2] . 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
[3] . 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ệ, Hà Nội 10 năm 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ệ
[4] . Lê Huy Thập, “Phân mảnh trên giá trị lặp của các thuộc tính trong CSDL quan hệ”, Tạp chí tin học và điều khiển học, Tập 23, Số 1, 86 – 98, 2007 Sách, tạp chí
Tiêu đề: Phân mảnh trên giá trị lặp của các thuộc tính trong CSDL quan hệ”
[5] . Lê Tiến Vương, “Nhập môn cơ sở dữ liệu quan hệ”, NXB Thống Kê, 2000.Tiếng Anh Sách, tạp chí
Tiêu đề: Nhập môn cơ sở dữ liệu quan hệ”
Nhà XB: NXB Thống Kê
[6]. Jan Speelpenning, Patrice Daux, Jeff Gallus, “Data Modeling and Relational Database Design” Publishers Fiona Simpson, 2001 Sách, tạp chí
Tiêu đề: “Data Modeling and Relational Database Design”
[7]. Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom “Database Systems: The Complete Book” - The 2nd Edition, Publisher Pearson, 2008 Sách, tạp chí
Tiêu đề: “Database Systems: The Complete Book”
[8]. Abraham Silberschatz, Henry Korth, S. Sudarshan, “Database System Concepts” Publisher McGraw-Hill Education, 2010 Sách, tạp chí
Tiêu đề: “Database System Concepts”
[9]. C.J. Date, “An Introduction to Database Systems” – The 8th Edition, Publisher Pearson, 2003 Sách, tạp chí
Tiêu đề: “An Introduction to Database Systems”
[10]. Terry Halpin, Tony Morgan, “Information Modeling and Relational Databases”, Second Edition, Publisher Morgan Kaufmann, 2008 Sách, tạp chí
Tiêu đề: “Information Modeling and Relational Databases”

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w