e d u .v n / Số hóa bởi Trung tâm Học liệu - ĐHTN ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG ---Nguyễn Anh Dũng GỘP NHÓM CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH T
Trang 1t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 2t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
-Nguyễn Anh Dũng
GỘP NHÓM CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH TRONG
CÁC MẢNH CỦA CƠ SỞ DỮ LIỆU PHÂN TÁN
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
GV hướng dẫn: PGS NCVC TS Lê Huy Thập
Thái Nguyên - 2015
Trang 3t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi, được xây dựng từnhững số liệu và kết quả thực tiễn khi tôi học tập tại trường Đại học Côngnghệ thông tin và Truyền thông Thái Nguyên và ứng dụng dựa trên số liệucủa UBND huyện Đan Phượng, chưa từng được công bố hay xuất bản trongbất cứ công trình nào khác
Thái Nguyên, tháng 10 năm 2015
Tác giả
Nguyễn Anh Dũng
Trang 4và tạo điều kiện thuận lợi cho tôi trong suốt quá trình học tập
Tôi xin cảm ơn lãnh đạo Phòng Văn hóa và Thông tin huyện ĐanPhượng, các anh chị đồng nghiệp đã tạo điều kiện cho tôi tham gia và hoànthành khóa học Tôi cũng xin cảm ơn các bạn của tôi, những người luôn bêncạnh động viên, giúp đỡ và đóng góp nhiều ý kiến thiết thực trong quá trìnhhọc tập và thực hiện luận văn
Cuối cùng tôi chân thành cảm ơn các thành viên trong gia đình tôi, đãluôn hết mình yêu thương, dìu dắt tôi trong công việc và cuộc sống
Thái Nguyên, tháng 10 năm 2015
Sinh viên thực hiện
Nguyễn Anh Dũng
Trang 5t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC BẢNG BIỂU v
DANH MỤC HÌNH vii
DANH MỤC CÁC CHỮ VIẾT TẮT viii
BẢNG DANH MỤC CÁC KÍ HIỆU ix
LỜI NÓI ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 3
1.1 Logic 3
1.1.1 Mệnh đề và các phép toán mệnh đề 3
1.1.2 Các phép toán trên mệnh đề 3
1.1.3 Các luật logic 6
1.2 Cơ sở dữ liệu phân tán 9
1.2.1 Phân mảnh ngang 12
1.2.2 Phân mảnh dọc 16
1.2.3 Phân mảnh hỗn hợp 17
CHƯƠNG 2: CÁC THUẬT TOÁN PHÂN MẢNH THEO CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 18
2.1 Miền giá trị thuộc tính và khái niệm giá trị lặp của thuộc tính 18
2.1.2 Các giá trị lặp trong miền giá trị của thuộc tính 18
2.2 Các thuật toán phân mảnh theo các giá trị lặp của các thuộc tính 21
2.2.1 Thuật toán phân mảnh dọc 21
2.2.2 Thuật toán phân mảnh ngang theo giá trị lặp và gộp nhóm theo tiêu chuẩn giữ lại mảnh ngang 42
2.2.3 Thuật toán phân mảnh hỗn hợp theo giá tri lặp 48
Trang 6t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
2.2.4 Thuật toán tính size của mảnh 50
2.3 Gắn nhãn cho mảnh hỗn hợp……… ……51
2.4 Kết luận chương 51
CHƯƠNG 3: ỨNG DỤNG QUẢN LÝ VẤN ĐỀ KINH DOANH TẠI HUYỆN ĐAN PHƯỢNG 52
3.1 Thiết kế cơ sở dữ liệu quan hệ kinh doanh tại huyện Đan Phượng 52
3.2 Mệnh đề phân mảnh các giá trị lặp lại của các thuộc tính theo các tiêu chí địa điểm, hộ kinh doanh, loại hình kinh doanh, … 55
3.3 Gộp nhóm các giá trị lặp của các thuộc tính trong các mảnh ngang 64
3.4 Kết luận chương 67
KẾT LUẬN 68
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 69
TÀI LIỆU THAM KHẢO 70
Trang 7t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
5
DANH MỤC BẢNG BIỂU
Bảng 1.1: Bảng tổng hợp giá trị chân trị của các phép toán cơ bản 6
Bảng 1.2: Bảng quan hệ PROJ 10
Bảng 1.3: Quan hệ được phân mảnh dọc PROJ1 11
Bảng 1.4: Quan hệ được phân mảnh dọc PROJ2 11
Bảng 1.5: Quan hệ được phân mảnh ngang với BUGGET ≤ 200 11
Bảng 1.6: Quan hệ được phân mảnh ngang với BUGGET > 200 12
Bảng 2.1 Quan hệ PhanNhiem 19
Bảng 2.1.1 Miền giá trị khóa 19
Bảng 2.1.2 Giá trị lặp ChucVu: Giám đốc 20
Bảng 2.1.3 Giá trị lặp ChucVu: Phân tích và thiết kế 20
Bảng 2.1 4 Giá trị lặp ChucVu: Kỹ sư 20
Bảng 2.1.5 Giá trị lặp ThoiGianLV: 24 20
Bảng 2.1.6 Giá trị lặp ThoiGianLV: 48 20
Bảng 2.1.7 Giá trị lặp (ChucVu , ThoiGianLV) 21
Bảng 2.2.1 Mảnh dọc theo ThoiGianLV 21
Bảng 2.2.2 Mảnh dọc theo ChucVu 22
Bảng 2.2.3 Mảnh dọc theo ThoiGianLV 23
Bảng 2.2.4 Mảnh dọc theo ChucVu 24
Bảng 2.2.5 Toàn quan hệ PhanNhiem 24
Bảng 2.2.5’ Toàn quan hệ PhanNhiem 43
Bảng 2.2.6 Quan hệ PhanNhiem 45
Bảng 2.2.7 Các mảnh ngang M21 47
Bảng 2.2.8 Quan hệ PhanNhiem 47
Bảng 2.2.9 Mảnh ngang M 11 .47
Bảng 2.2.10 Quan hệ PhanNhiem 48
Bảng 2.2.11 Mảnh ngang M12 48
Bảng 3.1: Dữ liệu của bảng Dang_Ky_KD 52
Bảng 3.2: Bảng kết quả của mảnh H 1 .56
Trang 8t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
6
Bảng 3.3: Bảng kết quả của mảnh H 2 .57
Bảng 3.4: Bảng kết quả của mảnh H 3 .58
Bảng 3.5: Bảng kết quả của mảnh H4 59
Bảng 3.6: Bảng kết quả của mảnh H5 61
Bảng 3.7: Bảng kết quả của mảnh H6 62
Bảng 3.8: Bảng kết quả của mảnh H 7 .63
Trang 9t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
vii
DANH MỤC HÌNH
Hình 1.1:Mô tả mối quan hệ giữa các quan hệ bởi các đường nối………… 14
Hình 1.2: Phân đoạn hỗn hợp ……… 17
Hình 2.1: Ma trận mẫu về giá trị sử dụng thuộc tính……… 26
Hình 2.2: Ma trận liên đới thuộc tính……… 29
Hình 2.3: Tính toán ma trận liên đới CA……….……… 35
Hình 2.4: Định vị một điểm tách……….……… 37
Hình 3.1: Giao diện ban đầu của chương trình ……… 64
Hình 3.2: Giao diện sau quá trình chọn button “chonDB” ……… 65
Hình 3.3: Giao diện sau khi chọn lựa xong bảng quan hệ ……… 65
Hình 3.4: Giao diện quá trình chọn thuộc tính lặp ……… 66
Hình 3.5: Kết quả quá trình phân mảnh ngang ……… 67
Hình 3.6: Giao diện dữ liệu của một mảnh ngang ……… 67
Trang 12Đề tài luận văn giải quyết vấn đề trên bằng cách đưa ra các thuật toán
để tách các bản ghi và các thuộc tính có các giá trị lặp lại với kích cỡ đủ lớn.Việc tách ở đây thực sự là việc phân mảnh “hỗn hợp” các quan hệ trong cơ sở
dữ liệu phân tán Mảnh có các giá trị lặp lại với kích cỡ đủ lớn được gán bídanh, phần còn lại cũng chính là các mảnh Khi cần cập nhật, chỉ cần tái thiếtlại mảnh ban đầu từ các mảnh đã phân rã và tham chiếu đến bí danh đã đặt đểlấy các giá trị lặp
Các mảnh có giá trị lặp lại với kích cỡ đủ lớn sẽ làm giảm chi phí khitruy cập/truy xuất, giảm chi phí lưu trữ, tăng tốc độ xử lý dữ liệu và giảm chiphí truyền thông
2 Đối tượng và phạm vi nghiên cứu
Cơ sở dữ liệu phân tán, các loại mảnh và phương pháp phân mảnhtrong CSDL phân tán
3 Hướng nghiên cứu của đề tài
Phân mảnh các giá trị lặp của các thuộc tính bằng phương pháp phânmảnh hỗn hợp và tìm ra các mảnh có hỗn hợp các kích thước đủ lớn
Gán nhãn cho các mảnh hỗn hợp có kích thước thỏa mãn các điều kiệncho trước
4 Những nội dung nghiên cứu chính
Luận văn được trình bày trong 3 chương, có phần mở đầu, phần kếtluận, phần mục lục, phần tài liệu tham khảo Các nội dung cơ bản của luậnvăn được trình bày theo cấu trúc như sau:
Trang 13t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
2
5 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
Nắm vững các các thuật toán
6 Ý nghĩa khoa học của đề tài
Luận văn giúp cho việc tìm mảnh các dữ liệu trùng nhau, phân mảnh vàgán nhãn cho chúng nhằm tăng tốc độ truy nhập, giảm chi phí lưu trữ vàtruyền trên mạng truyền dẫn
- Chương 1: Cơ sở lý thuyết
- Chương 2: Gộp nhóm các giá trị lặp của các thuộc tính trong cơ sở dữ liệu phân tán
- Chương 3: Ứng dụng quản lý vấn đề kinh doanh tại huyện Đan Phượng
Trang 14Ví dụ 1.1: Các phát biểu sau đây là các mệnh đề.
1/ p = “2 là một số nguyên tố” là mệnh đề đúng nên chân trị của p là 1
2/ q = “5 là một số chẵn” là mệnh đề sai nên chân trị của q là 0
Trong việc khảo sát các mệnh đề, người ta còn phân ra làm hai loại là:mệnh đề sơ cấp và mệnh đề phức hợp
Mệnh đề sơ cấp (mệnh đề đơn giản) Mệnh đề sơ cấp là các "nguyên
tử" theo nghĩa là nó không thể được phân tích thành mệnh đề nhỏ hơn.Chẳng hạn ví dụ 1.1
Trang 15t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
4nhờ vào các phép toán logic
Các phép toán logic được định nghĩa bằng bảng chân trị (truth table).Bảng chân trị chỉ ra chân trị của mệnh đề phức hợp theo từng trường hợp củacác chân trị của các mệnh đề sơ cấp tạo thành mệnh đề phức hợp Bảng chântrị của các phép toán logic tất nhiên là phản ánh ngữ nghĩa tự nhiên của các từliên kết tương ứng
Bảng chân trị không chỉ dùng để kê ra sự liên hệ chân trị giữa mệnh đềphức hợp với chân trị của các mệnh đề sơ cấp cấu thành nó, mà bảng chân trịcòn được dùng với mục đích rộng hơn: liệt kê sự liên hệ chân trị giữa cácmệnh với các mệnh đề đơn giản hơn cấu thành chúng
a) Phép phủ định
Trang 16t nu e d u v n /
Số hóa bởi Trung tâm Học liệu -
ĐHTN
5Cho p là một mệnh đề, chúng ta dùng ký hiệu
định của mệnh đề p
p để chỉ mệnh đề phủ
Ví dụ 1.3 : Nếu ta ký hiệu p là mệnh đề "5 < 3" thì p là ký hiệu cho mệnh
đề "5 ≥ 3" Trong trường hợp này p sai, p đúng Ta có thể viết p = 0, p = 1.
b) Phép hội
Phép "hội", ký hiệu là ^ , cho p và q là hai mệnh đề, viết là p q
toán chỉ chân trị đúng ki và chỉ khi cả p và q đều đúng
Trang 175Chân trị của mệnh đề này chỉ sai khi và chỉ khi cả p và q đều sai.
e) Phép kéo theo hai chiều
Phép kéo theo 2 chiều hay phép tương đương, ký hiệu bởi ↔, được đưa
ra để mô hình cho loại phát biểu điều kiện hai chiều có dạng : " nếu và chỉnếu " Cho p và q là 2 mệnh đề, ta viết p ↔q để diễn đạt phát biểu "p nếu
và chỉ nếu q" Phép toán tương đương ↔ được định nghĩa trong bảng tổnghợp các giá trị chân trị 1.1 bên dưới
Mệnh đề p ↔ q, được đọc là "p nếu và chỉ nếu q", còn được phát biểudưới các dạng khác sau đây:
"p khi và chỉ khi q"
"p là điều kiện cần và đủ cho q"
Mệnh đề p ↔q có chân trị đúng (=1) trong các trường hợp p và q cócùng chân trị
Trang 186Bảng 1.1: Bảng tổng hợp giá trị chân trị của các phép toán cơ bản
f) Độ ưu tiên của các toán tử logic
Tương tự như đối với các phép toán số học, để tránh phải dùng nhiều dấu ngoặc trong các biểu thức logic, ta đưa ra một thứ tự ưu tiên trong việc tínhtoán Ở trên ta có 5 toán tử logic: (không) , (và), (hay), →(kéo theo),
↔ (tương đương)
ưu tiên mức 1 (cao nhất)
, ưu tiên mức 2 (thấp hơn)
→, ↔ ưu tiên mức 3 (thấp nhất)
trong đó, các toán tử liệt kê trên cùng dòng có cùng độ ưu tiên
Ví dụ 1.6:
Trang 19có trước Mỗi biểu thức logic cho ta một sự khẳng định về sự tương đương của
2 biểu thức logic Ta sẽ sử dụng các qui tắc thay thế và các luật logic đã biết
để thực hiện các phép biến đổi tương đương trên các biêu thức logic
Dưới đây, chúng ta sẽ liệt kê ra một số luật logic thường được sử dụng
Trang 20trong lập luận và chứng minh Các luật nầy có thể được suy ra trực tiếp từ các bảng chân trị của các biểu thức logic.
i) Các luật đơn giản của phép tuyển
p p p (tính lũy đẳng của phép tuyển)
Trang 21 p 1 1 (luật thống trị)
Trang 22 p 0 0 (luật trung hòa)
j) Các luật đơn giản của phép hội
p p p (tính lũy đẳng của phép hội)
p 1 p
p 0 0
(luật trung hòa) (Luật thống trị)
Giả sử p1, p2, … , pn là các biến mệnh đề Một biểu thức logic F theo cácbiến mệnh đề p1, p2,… , pn được gọi là một biểu thức tuyển cơ bản (tuyển sơcấp) nếu nó có dạng sau:
F q1 q2 .q n với q j p j
hoặc
q j p j (j = 1, 2, …, n)
Ví dụ 1.7: x y z là một biểu thức tuyển cơ bản theo 3 biến mệnh đề
x, y, z Biểu thức logic E(p1, p2, … , pn) theo các biến mệnh đề p1, p2, … , pnđược nói là có dạng chuẩn hội khi E có dạng:
E E1 E2 E n
Trong đó mỗi biểu thức con Ei đều có dạng chính tắc tuyển theo các biến
p1, p2, … , pn
Trang 23Ví dụ 1.8: Các biểu thức sau đây có dạng chuẩn tắc hội (chính tắc hội):
Trang 24tương đương logic với biêu thức
Chứng minh:
E1 E2 Em [15]
Có thể dễ dàng nhận thấy, áp dụng tập các luật trong mục 1.1.3 ta có thểbiến các biểu thức bất kỳ thành dạng tuyển của các biểu thức hội Từ đó, ta
có điều phải chứng minh
1.2 Cơ sở dữ liệu phân tán
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 lớn các hệ cơ sở dữ liệu phân tán được thiết kế theo hướng từ trênxuống (Top-Down) Thiết kế phân mảnh dữ liệu là công việc đầu tiên phảithực hiện Mục đích của việc phân mảnh dữ liệu là tạo ra các đơn vị cấp phátlogic, sao cho chi phí để thực hiện truy vấn thông tin là thấp nhất
Trong thiết kế CSDL phân tán, cần thiết phải thực hiện phân mảnh dữliệu vì những lý do sau đây:
- Trong các hệ quản trị CSDL, các quan hệ được lưu trữ dưới dạng cácbảng 2 chiều Các thao tác đối với CSDL được thực hiện trên các bảng Tuynhiên trong thực tế, các ứng dụng chỉ yêu cầu thao tác trên các tập con củacác quan hệ, là khung nhìn dữ liệu của người sử dụng Vì vậy việc xem tậpcon của quan hệ là đơn vị truy xuất thông tin để phân tán dữ liệu là hợp lý
- Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như
Trang 25một đơn vị dữ liệu, sẽ cho phép thực hiện nhiều giao dịch đồng thời Đồngthời việc phân mảnh các quan hệ cũng cho phép thực hiện song song một câuvấn tin bằng cách chia nó thành một tập các câu vấn tin con hoạt tác trên cácmảnh Vì thế việc phân mảnh sẽ làm tăng mức độ hoạt động đồng thời và tănglưu lượng hoạt động của hệ thống.
Tuy nhiên không phải việc phân mảnh chỉ có ưu điểm hoàn toàn, mà nócũng thể hiện những hạn chế nhất định như:
- Nếu ứng dụng có những yêu cầu “xung đột” ngăn cản phân rã thànhcác mảnh được sử dụng độc quyền
- Những ứng dụng có các khung nhìn được định nghĩa trên nhiều mảnhkhác nhau sẽ làm giảm hiệu suất hoạt động của hệ thống, làm tăng chi phítruy xuất dữ liệu đến các mảnh và tăng chi phí kết nối các mảnh
- Việc kiểm soát ngữ nghĩa, đặc biệt là vấn đề kiểm tra tính toàn vẹn sẽkhó khăn hơn
Có hai kiểu phân mảnh tương ứng với việc chia quan hệ theo chiều dọc vàchia quan hệ theo chiều ngang
Trong luận văn ta sử dụng một bảng quan hệ của cơ sở dữ liệu làm ví dụ
là bảng cơ sở dữ liệu về nhân viện PROJ như sau:
Phân mảnh theo chiều dọc: Các quan hệ được chia theo chiều dọc Nghĩa là
thiết lập một quan hệ mới chỉ có một số thuộc tính từ quan hệ gốc Thực chấtđây là phép chiếu trên tập con các thuộc tính của quan hệ
Ví dụ 1.9:
Tách dọc quan hệ PROJ thành 2 quan hệ PROJ1 và PROJ2 như sau:
π PNO,PNAME,LOG (PROJ) và π PNO,BUDGET (PROJ)
Trang 26Bảng 1.3: Quan hệ được phân mảnh dọc PROJ1
Bảng 1.4: Quan hệ được phân mảnh dọc PROJ2
Phân mảnh ngang: Quan hệ được chia theo chiều ngang Thực chất đây là
phép chọn trongquan hệ Chọn những bộ của quan hệ thỏa mãn một biểu thứcđiều kiên cho trước
Ví dụ 1.10: Tách ngang quan hệ PROJ thành 2 quan hệ PROJ1 và PROJ2 thoả
theo điều kiện là BUDGET ≤ 200 và BUDGET > 200 như sau:
σ BUDGET ≤ 200 (PROJ)
σ BUDGET > 200 (PROJ)
Bảng 1.5: Quan hệ được phân mảnh ngang với BUGGET ≤ 200
Trang 27Bảng 1.6: Quan hệ được phân mảnh ngang với BUGGET > 200
Các quy tắc phân mảnh
Ta phải tuân thủ ba qui tắc khi phân mảnh cơ sở dữ liệu quan hệ
1 Tính đầy đủ: Quan hệ R được phân rã thành các mảnh R1, R2…Rn, thìmỗi mục dữ liệu có trong quan hệ R sẽ được chứa trong ít nhất một mảnh Ri(i=1, ,n) Quy tắc này đảm bảo cho các mục dữ liệu trong R được ánh xạhoàn toàn vào các mảnh và không bị mất Mục dữ liệu có thể hiểu là bộ trongphân mảnh ngang và thuộc tính trong phân mảnh dọc
2 Tính phục hồi: Nếu một quan hệ R được phân rã thành các mảnh R1,
cả các mảnh Vì vậy tính tách biệt trong phân mảnh dọc được hiểu không liênquan gì đến khóa chính của quan hệ
1.2.1 Phân mảnh ngang
1.2.1.1 Giới thiệu
Phân mảnh ngang chính là việc chia quan hệ thành nhiều các nhóm bộ.Kết quả của quá trình phân mảnh ngang là các quan hệ con, số lượng quan hệcon phụ thuộc vào điều kiện ràng buộc của các thuộc tính Và các bộ trongcác quan hệ con là tách biệt nhau Phân mảnh ngang thực chất là phép chọnquan hệ thỏa mãn một biểu thức điều kiên cho trước
Thông tin về CSDL cần thiết cho phân manh ngang Thông tin về CSDL
Trang 28là thông tin về lươc đồ khái niệm toàn cục của CSDL Tức là chúng ta cầnbiết đươc cách mà quan hệ con sẽ hơp lại vơi nhau như thế nào Trong môhình quan hệ, các liên kết giưa các thưc thể cũng đươc biểu thị bằng quan hệ Vơi mục đích thiết kế phân tán , các môi liên kết cũng đươc mô hình hóa theokiể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
Có hai loại phương pháp phân mảnh ngang là:
- Phân mảnh ngang nguyên thủy: Là phân mảnh ngang được thực hiệntrên các mệnh đề của chính quan hệ đó
- Phân mảnh ngang dẫn xuất: Là phân rã một quan hệ dựa trên các mệnh
đề của quan hệ khác
1.2.1.2 Thông tin cần thiết của phân mảnh ngang
Thông tin về CSDL có liên quan tới lược đồ khái niệm toàn cục Trong
mô hình quan hệ, các mối quan hệ giữa các thực thể được mô tả như là nhữngquan hệ Trong mô hình quan hệ thực thể (ER), các mối liên hệ giữa các đốitượng CSDL được mô tả rõ ràng Nhìn chung mối quan hệ giữa các đối tượngtrong CSDL thường mô tả bằng các mối quan hệ một - một, một - nhiều và mốiquan hệ nhiều - nhiều Với mục đích cho thiết kế, đường nối (Link) có hướnggiữa các quan hệ được sử dụng cho việc biểu diễn bởi thao tác nối bằng(Equijoin)
Ví dụ 1.11: Giả sử có một quan hệ với các bảng quan hệ như sau: PAY,
EMP, PROJ và ASG Trong đó:
PAY: bảng quan hệ chức vụ
EMP: bảng quan hệ nhân viên
PROJ: bảng quan hệ công việc
ASG: bảng quan hệ kết hợp
Trong đó, mỗi một chức vụ (Title) có nhiều nhiều nhân viên (Employee)giữ chức vụ đó Đây là mối quan hệ môt - nhiều được biểu diễn bằng mộtđường nối có hướng L1 trỏ từ quan hệ PAY đến EMP Mối quan hệ nhiều -nhiều được trỏ từ các quan hệ EMP và PROJ đến quan hệ ASG được biểudiễn bằng hai đường nối L2 và L3 (hình 1.1)
Trang 29Hình 1.1:Mô tả mối quan hệ giữa các quan hệ bởi các đường nối
Quan hệ tại điểm cuối của đường nối được gọi là quan hệ chủ (quan hệ đích)
và các quan hệ tại điểm đầu được gọi là các quan hệ thành viên (quan hệ nguồn).Thông tin về ứng dụng: Để thực hiện phân mảnh, cần phải có thông tinđịnh tính và thông tin định lượng Thông tin định tính hướng dẫn cho hoạt độngphân mảnh, thông tin định lượng chủ yếu sử dụng trong các mô hình cấp phát.Thông tin định tính cơ bản gồm các mệnh đề dùng trong câu truy vấn Sau đây
là các định nghĩa về mệnh đề đơn giản và mệnh đề hội sơ cấp như sau:
Cho quan hệ R(A1, A2, ,An), trong đó Ai là thuộc tính được định nghĩatrên một miền Di , một mệnh đề đơn giản Pj được định nghĩa trên R có dạng:
Pj: Ai θ ValueTrong đó θ thuộc {=, <, ≠, ≤, >, ≥} và Value được chọn từ miền Ai(Value thuộc Di)
Chúng ta sử dụng Pri để biểu thị tập tất cả các mệnh đề đơn giản đượcđịnh nghĩa trên quan hệ Ri Các phần tử của Pri được ký hiệu là pij
Ví dụ 1.12: Cho quan hệ PROJ
PNAME = “Maintenance”
BUDGET ≤ 200000là các mệnh đề đơn giản
Trong thực tế các câu truy vấn là tổ hợp của rất nhiều mệnh đề đơn giản.Mỗi tổ hợp được gọi là một mệnh đề hội sơ cấp Cho tập Pri = {pi1, pi2, ,
Trang 30pim} là các mệnh đề đơn giản trên quan hệ Ri, tập các mệnh đề hội sơ cấp Mi
= {mi1, mi2, , miz} được định nghĩa như sau:
Trong đó, pik* = pik hoặc pik* = ¬pik Vì thế mỗi mệnh đề đơn giản có thểxuất hiện trong mệnh đề hội sơ cấp dưới dạng tự nhiên hoặc dạng phủ địnhcủa nó
Phủ định của một mệnh đề sẽ có thể:
Attribute = Value không có phủ định.
Attribute ≤ Value, phủ định là Attribute > Value
Cận_dưới ≤ Attribute_1, phủ định là ¬(Cận_dưới ≤ Attribute_1)
Attribute_1 ≤ Cận_trên, phủ định là ¬(Attribute_1 ≤ Cận_trên)
Cận_dưới ≤ Attribute_1 ≤ Cận_trên, phủ định là
¬(Cận_dưới ≤ Attribute_1 ≤ Cận_trên)
1.2.1.3 Phân mảnh ngang nguyên thủy
Phân manh ngang nguyên thuỷ là phân rã một quan hệ thành các tập gồmcác bộ dưa trên các mệnh đề đươc định nghĩa trên quan hệ đó Phân manhngang 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 đươcchọn ra theo công thức:
R i FI (R) với 1≤ i ≤z
Trong đó, Fi là công thức chọn đươc sư dụng để có đươc manh R i Chú yrằ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 (mi)
1.2.1.4 Phân mảnh ngang dẫn xuất
Phân manh ngang dẫn xuất là phân manh một quan hệ dưa vào các mệnh
đề đươc định nghĩa trên quan hệ chủ (Parent) Phân manh ngang dẫn xuất làphân manh ngang trên quan hệ đích của một đường nôi dưa th eo phép toánchọn trên quan hệ nguồn của đường nôi đó
Nếu cho trươc một đưng nô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à
Trang 32với Fi là công thức định nghĩa mảnh ngang nguyên thủy Si.
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 manh ngang dẫn xuất , chúng ta cần ba thông tinvào: tập các manh của quan hệ nguồn , quan hệ đích và tập các mệnh đề nôinưa giưa nguồn và đích
Một số vấn đề phức tạp cần phải chú ý:
Trong lươc đồ CSDL , chúng ta hãy gặp nhiều đưng nôi đến một quan hệ
R Như thế có thể có nhiều cách phân manh ngang dẫn xuất cho R Quyếtđịnh chọn cách phân manh nào cần dưa trên hai tiêu chuẩn:
(1) Phân manh có đặc tính nôi tôt hơn
(2) Phân manh đươc sư dụng trong nhiều ứng dụng hơn
1.2.2 Phân mảnh dọc
Cho R là một quan hệ trên tập các thuộc tính Ω = {A1, A2,…, An} Khi
đó phân manh dọc quan hệ R sinh ra các manh R 1, R2,, …, Rm sao cho mỗi mảnh là một quan hệ chứa một tập con các thuộc tính cuả quan hệ R và khóa
của nó Tức là Ω sẽ đươc phân manh sao cho Ω = Ω1 Ω2 … Ωm, trong đó
Ri là manh quan hệ trên các thuộc tính Ωi, i=1…m
Mục đích của phân manh dọc là phân chia quan hệ R thành tập các quan hệnhỏ hơn để có nhiều ứng dụng có thể chỉ cần thưc hiện trên một manh, điềunày làm giam đáng kể chi phí Mảnh tối ưu là mảnh sinh ra một lược đồ phânmảnh cho phép giam thiểu thời gian thưc hiện của ứng dụng trên manh đ ó
Kỹ thuật phân manh dọc phức tạp hơn phân manh ngang , vì sô lưa chọnphân hoạch rất lơn Trong trường hơp có m thuộc tính không pha i khóa chính,thì sô manh có thể là mm
Để có đươc lời giai tôi ưu cho bài toán phân manh dọc rất khó , không hiệu qua Vì vậy cần phai sư dụng các phương pháp Heuristic cho phân manh dọc các quan hệ toàn cục Có hai phương pháp Heuristic:
Trang 33a Nhóm thuộc tính: bắt đầu gán mỗi thuộc tính cho một manh và trong mỗi bươc, nôi một sô manh lại vơi nhau cho đến khi thỏa mãn điều kiện phân man h
Trang 34b Tách manh : bắt đầu bằng một quan hệ và quyết định cách phân chia quan hệ dưa trên hành vi truy xuất của các ứng dụng trên các thuộc tính Ở đây chúng ta chỉ xem xét kỹ thuật tách manh vì nó thích hơp vơi phương pháp thiết kế CSDLPT từ trên xuông.
Việc nhân ban các thuộc tính khóa của quan hệ toàn cục trong các manh
là một đặc trưng của phương pháp phân manh dọc cho phép khôi phục quan
hệ toàn cục và bao đam tính toàn vẹn ngư nghĩa và làm giam đi quá trình trao đổi dư liệu Vì vậy , phương pháp phân manh dọc chỉ đề cập đến các thuộc tính không khóa
1.2.3 Phân mảnh hỗn hợp
Trong thực tế, hầu hết các trường hợp phân mảnh ngang hay phân mảnhdọc đơn giản của CSDL không thoả mãn yêu cầu người sử dụng ThườngCSDL được phân mảnh dọc sau đó phân mảnh ngang, tạo ra sự phan chia theocấu trúc cây (Hình 1.2) Chiến lược phân mảnh này gọi là phân đoạn lai, hayphân mảnh trộn, hay phân mảnh lồng
Hình 1.2: Phân đoạn hỗn hợpTính đúng đắn của phân mảnh hỗn hợp được đảm bảo, vì chiến lượcphân mảnh này dựa theo phân mảnh ngang và phân mảnh dọc, đảm bảo tínhđúng đắn như đã trình bày Để khôi phục quan hệ toàn cục trong trường hợpphân mảnh hỗn hợp, có thể bắt đầu từ các node lá của cây phân hoạch và dịchchuyển lên bằng cách thực hiện các phép kết nối và phép hợp Phân mảnh hỗnhợp đầy đủ nếu các mảnh lá và các mảnh trung gian là đầy đủ Tương tự, cóthể kiểm tra tính tách biệt của chiến lược phân mảnh hỗn hợp Tính tách biệtđược đảm bảo khi các mảnh lá và mảnh trung gian cũng tách biệt
Trang 35CHƯƠNG 2: CÁC THUẬT TOÁN PHÂN MẢNH THEO CÁC GIÁ TRỊ LẶP CỦA CÁC THUỘC TÍNH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
Một mảnh ngang, dọc hay hỗn hợp đều là các quan hệ con của một quan
hệ hay của một số quan hệ (trong phép hợp, trong phép nối,…) tham gia vàocâu vấn tin, vì vậy ta sẽ gọi chung là quan hệ
2.1 Miền giá trị thuộc tính và khái niệm giá trị lặp của thuộc tính
2.1.1 Miền giá trị của thuộc tính
Cho lược đồ quan hệ R(K, A1,A2,…,An), trong đó K là khóa chính còn
A1,A2,…,An là các thuộc tính không khóa
Ký hiệu D = (Dk, D1, D2, …, Dn)
Trang 36DK = Dom(K) là miền giá trị của khóa K
Di = Dom(Ai) là miền giá trị của thuộc tính Ai ( i 1, n )
2.1.2 Các giá trị lặp trong miền giá trị của thuộc tính
Định nghĩa giá trị lặp
Cho quan hệ R(Key, A 1 ,A 2 , ,A n ), trong đó Key là tập thuộc tính khóa có miền giá trị D K ; A = {A j } là tập các thuộc tính không khoá có miền giá trị tương ứng D j (j = 1, ,n) Nếu giá trị x xuất hiện nhiều lần trong miền giá trị của thuộc tính D j nào đó thì x được gọi là giá trị lặp của thuộc tính A j
Định nghĩa tương tự cho tập các giá trị lặp của tập con các thuộc tính củatập thuộc tính A
Ví dụ 2.1.
Cho quan hệ phân công mhiệm vụ - PhanNhiem(MaNV, MaDuAn,ChucVu, ThoiGianLV) cho các nhân viên tại các dự án trong bảng 2.1
Trang 37Bảng 2.1 Quan hệ PhanNhiem
với (ij) vì (MaNV, MaDuAn) là khóa – không có giá trị lặp
Bảng 2.1.1 Miền giá trị khóa
Trang 382/ Các thuộc tính không khóa có :
i/ Giá trị lặp miền thuộc tính : ChucVu = ”Giám đốc”
Bảng 2.1.2 Giá trị lặp ChucVu: Giám đốc
Bảng 2.1.3 Giá trị lặp ChucVu: Phân tích và thiết kế
Bảng 2.1 4 Giá trị lặp ChucVu: Kỹ sư
Trang 3921iii/ Giá trị lặp đa miền thuộc tính : (ChucVu , ThoiGianLV)
Bảng 2.1.7 Giá trị lặp (ChucVu , ThoiGianLV)
2.2 Các thuật toán phân mảnh theo các giá trị lặp của các thuộc tính
2.2.1 Thuật toán phân mảnh dọc
Phân mảnh dọc một quan hệ R sinh ra các mảnh V1, V2,…, Vd Mỗimảnh con chứa một tập con thuộc tính của R và cả tập khóa Key của R Cóthể coi việc phân mảnh dọc tương ứng với câu lệnh SQL như sau:
SELECT<Tập thuộc tính khóa><Danh sách thuộc tính không khóa của quan hệ>
FROM <Quan hệ>
Còn trong AQL (Algebraic Query Language)
<Tập thuộc tính khoa> <Danh sách thuộc tính không khóa của quan hệ> <Quan hệ>
Ví dụ 2.2-1.
Từ bảng 2.1 Các quan hệ sau là các mảnh dọc
Trang 4022Bảng 2.2.2 Mảnh dọc theo ChucVu
Nội dung thuật toán phân mảnh dọc:
Giả sử cho quan hệ R với tập thuộc tính không khoa A = {A1, A2, … ,An}
Thuật toán phân mảnh dọc như sau:
Gọi A = {Ai}; i = 1, 2, , n là tập thuộc tính không khóa
Bk là tập thuộc tính con gồm k thuộc tính bất kỳ của A
M = {Bk}
PM_DOC /* Thuật toán phân mảnh dọc*/
Vào: A = {Ai}; i = 1, 2, , n là tập thuộc tính không khóa
Ra: Các mảnh dọc FV của quan hệ R(Key,A1,A2,…,An)