Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/Ký hiệu phép toán Nghĩa của phép toán , Hội, tuyển , Kéo theo, tương đương Bảng ưu tiên các phép toán mệnh đề Tương đương của
Trang 1Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: PGS.TS LÊ HUY THẬP
Thái Nguyên - 2013
Trang 3Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện
theo sự hướng dẫn khoa học của PGS TS Lê Huy Thập
Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa học của luận văn này
Người Cam Đoan
TÔ NGỌC ANH
Trang 4Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cảm ơn đến thầy giáo PGS TS Lê Huy Thập
đã định hướng, hướng dẫn và giúp đỡ tôi rất nhiều về mặt chuyên môn trong quá trình tìm hiểu và thực hiện 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 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 Thái Nguyên
Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên, quan tâm, giúp đỡ tôi hoàn thành khóa học và luận văn
Thái nguyên, tháng 12 năm 2013
Tác giả
Tô Ngọc Anh
Trang 5Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Đối tượng và phạm vi nghiên cứu 1
3 Hướng nghiên cứu của đề tài 1
4 Những nội dung nghiên cứu chính 1
Chương 1: CƠ SỞ LÝ THUYẾT 2
1.1 GIỚI THIỆU VỀ LOGIC 2
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 cơ bản 8
1.2.2 Các lệnh phân mảnh cơ bản dựa vào câu SQL 19
1.3 KẾT LUẬN CHƯƠNG 1 20
Chương 2: PHÂN MẢNH VÀ GỘP NHÓM TRONG CSDL PHÂN TÁN 21
2.1 CÁC KỸ THUẬT PHÂN MẢNH DỮ LIỆU TRONG CSDL 21
2.1.1 Loại bỏ dư thừa 21
2.1.2 Phân mảnh ngang : 21
2.1.3 Phân mảnh dọc 219
2.1.4 Phân mảnh hỗn hợp 2530
2.2 CÁC LỆNH SQL GỘP NHÓM 30
2.2.1 Thuật toán trộn tập trung CM (Centralized Merging) 46
2.2.2 Thuật toán trộn phân tán DM (Distributed Merging) 51
2.2.3 Thuật toán phân mảnh lại ReF (Refragmentation) 53
2.3 KẾT LUẬN CHƯƠNG 2 55
3.1 ỨNG DỤNG TẠI CÔNG TY TNHH TM VẠN XUÂN ( DẠNG DEMO) 56
3.1.1 Giới thiệu CSDL tại công ty TNHH thương mại Vạn Xuân 56
Hình 3-1 Sơ đồ kết nối các quan hệ 57
3.1.2 Ứng dụng các thuật toán gộp nhóm tại công ty TNHH thương mại Vạn Xuân 57
3.2 KẾT LUẬN CHƯƠNG 3 64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN 65
TÀI LIỆU THAM KHẢO 66
Trang 6Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỞ ĐẦU
1 Đặt vấn đề
Nhằm giải quyết vấn đề chậm trễ thường gặp trong các hệ CSDL song song,
ngoài việc áp dụng một kiến trúc phần cứng thích hợp, người ta tiến hành phân mảnh dữ liệu một cách hợp lý cho các bộ xử lý Một chiến lược phân mảnh dữ liệu tốt sẽ tăng mức độ thực hiện song song đồng thời khai thác tốt hơn các hàm gộp nhóm từ các mảnh Chúng ta sẽ đề cập đến một số kỹ thuật phân mảnh dữ
liệu theo chiều ngang phổ biến như phân mảnh theo vòng tròn Robin, phân
mảnh theo hàm băm, phân mảnh theo khoảng, phân mảnh theo chiều dọc, và
một số hàm gộp nhóm trong CSDL phân tán như: SUM, COUNT, AVERAGE
2 Đối tượng và phạm vi nghiên cứu
Các hàm gộp nhóm trong cơ sở dữ liệu quan hệ
Các phương pháp phân mảnh
Các hàm gộp nhóm trong trường hợp CSDL phân tán
3 Hướng nghiên cứu của đề tài
Nghiên cứu các phương pháp phân mảnh
Nghiên cứu các hàm gộp nhóm
Nghiên cứu cách đưa các hàm gộp nhóm vào các mảnh và ứng dụng
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ết luậ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ận văn được trình bày theo cấu trúc như sau:
Mở đầu
Chương 1: Cơ sở lý thuyết
Chương 2: Phân mảnh và gộp nhóm trong CSDL phân tán
Chương 3: Ứng dụng
Kết luận và hướng phát triển của luận văn
Trang 7Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Chương 1: CƠ SỞ LÝ THUYẾT 1.1 GIỚI THIỆU VỀ LOGIC
1 Mệnh đề là một phát biểu để diễn tả một ý tưởng trọn vẹn và chúng ta có thể khẳng định một cách khách quan 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ờ
2 Giá trị trị đúng hay sai của mệnh đề được gọi là chân trị của mệnh đề Chân trị đúng của mệnh đề thường được kí hiệu là 1 hoặc T hoặc True, còn chân trị sai được kí hiệu là 0 hoặc F hoặc False
3 Mệnh đề logic tuy đơn giản nhưng rất quan trọng trong khoa học máy tính
Là cơ sở lập luận hàng ngày và trong lập trình
Ví dụ 1.1.1
1 “12 là số chẵn” là mệnh đề đúng
2 “12 là số nguyên tố” là mệnh đề sai
3 “x + ay = z” không phải mệnh đề
Các kí hiệu dùng trong mệnh đề logic
( ) dùng để gom nhóm biểu thức 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)
Chúng ta giả thiết rằng tập các ký tự 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ừ một hoặc nhiều mệnh đề khác bằng cách sử dụng các phép toán mệnh
Trang 8Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Để máy tính hiểu được, chúng ta dùng các kí hiệu cho các mệnh đề, các biến
mệnh đề thường được dùng là các chữ thường
Ví dụ 1.1.2
p = “15 MOD 3 = 0”, là mệnh đề sơ cấp
r = “15 MOD 3 = 0” AND “3 là số nguyên tố”, là mạnh đề phức hợp
Các phép toán mệnh đề: (phủ định) ; (hội) ; (tuyển) ; (hoặc hay tổng
trực giao) ; (kéo theo) ; (kéo theo hai chiều)
Biểu thức logic
Biểu thức logic có thể nói chính là mệnh đề phức hợp, biểu thức logic thường
được ký hiệu bởi các chữ in to và nó là sự kết hợp của:
- Các mệnh đề hay các giá trị hằng
- Các biến mệnh đề hoặc các biểu thức logic
- Các phép toán logic và các dấu ( )
- Bảng chân trị của các phép toán mệnh đề
Bảng chân trị của các phép toán mệnh đề
Mức ưu tiên của các phép toán logic
Thứ tự ưu tiên của các phép toán logic được liệt kê theo mức yếu dần từ
trên xuống dưới, từ trái qua phải theo bảng sau :
Trang 9Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ký hiệu phép toán Nghĩa của phép toán
, Hội, tuyển
, Kéo theo, tương đương
Bảng ưu tiên các phép toán mệnh đề
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 có cùng chân trị
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 biến 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
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
Trang 10Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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à những biểu thức hội cơ bản của các pi (i 1 ,n)
Định lý 1:
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
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ý 2:
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 (duy nhất ) với F i ( i 1 ,m ) là các biểu thức tuyển cơ bản
Mộ số luật hay được dùng nhất
1/ Luật phủ định của phủ định: p p
2/ Luật giao hoán: p q q p
p q q p 3/ Luật kết hợp: p (q r) (p q) r
p (q r) (p q) r 4/ Luật phân phối: p (q r) (p q) (p r)
p (q r) (p q) (p r) 5/ Luật Demorgan: (p q) p q
Trang 11Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
(p q) p q 6/ Luật về phần tử bù: p p 1
p p 0 7/ Luật kéo theo: p q p q
8/ Luật tương đương: p q (p q) (q p)
9/ Các luật đơn giản của phép tuyển ( ):
p p p
p 1 1
p 0 p
p (p q) p 10/ Các luật đơn giản của phép hội ( ):
Trang 12Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
5 Quy tắc tam đoạn luận
(p q) (q r) (p r) hay (p q) (q r) (p r)
Trang 13Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Quan hệ NhanVien
Kỹ sư điện Phân tích và thiết kế hệ thống
Kỹ sư cơ khí Lập trình viên Phân tích và thiết kế hệ thống
Kỹ sư điện
Kỹ sư cơ khí Phân tích và thiết kế hệ thống
Nguyễn Văn Bổng
Lê Hồng Ngoc Hoàng Trung Mã Trịnh Kim Thanh Ngô Đình Vinh Trần Mỹ Lệ
Lê Hồng Hạnh Nguyễn Trường Tam
NV1 NV2 NV3 NV4 NV5 NV6 NV7 NV8
TrinhDoCM TenNV
MaNV
Quan hệ TraLuong
4000 3400 2700 2400
Quan hệ PhanNhiem
12 24 6 10 48 18 24 48 36 40
Giám đốc Nhân viên phân tích và thiết kế Nhân viên phân tích và thiết kế Nhân viên tư vấn
Kỹ sư Lập trình viên Giám đốc Giám đốc
Kỹ sư Giám đốc
DA1 DA1 DA2 DA3 DA4 DA2 DA2 DA4 DA3 DA3
MaDuAn MaNV
Quan hệ DuAn
Hải Phòng
Hà Nội
Hà Nội TP.Hồ Chí Minh
150000 135000 250000 310000
Thiết bị đo đạc Phát triển CSDL CAD/ CAM Bảo dưỡng
DA1 DA2 DA3 DA4
ViTri NganSac
h
TenDuAn MaDu
Để thuận tiện cho việc nghiên cứu và trình bầy, chúng ta xét quan hệ CSDL của Công ty điện toán sau ( Hình 1)
Hình 1: Sơ đồ kết nối các quan hệ
Trang 14Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.2.1.Các phương pháp phân mảnh cơ bản
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
Hình 2 : Biểu diễn mối liên hệ giữa các quan hệ nhờ các đường nối
Cho đường nối l1 của hình 2, các hàm Nguon và Dich có các giá trị sau:
Nguon(l1 ) = TraLuong
Dich( l1) = NhanVien
Trang 15Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Thông tin định lƣợng cần có về CSDL là lực lƣợng của các quan hệ, đƣợc ký
hiệu là Card(.)
- Thông tin về ứng dụng
Chúng ta cần hai loại thông tin: định tính và định lƣợng về các ứng dụng
Thông tin định tính phục vụ phân mảnh, còn thông tin định lƣợng sử dụng cho
mô hình cấp phát
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
+ 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
Phân rã quan hệ DuAn thành các mảnh ngang DuAnH1 và DuAnH2 nhƣ sau:
DuAnH1 = NganSach 200000 (DuAn)
DuAnH2 = NganSach > 200000 (DuAn)
Trang 16Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Các mảnh thu được trình bày trong các bảng 1, 2, 3 tương ứng
DA1 Thiết bị đo đạc 150000 Hải Phòng
135000
250000
Hà Nội
Hà Nội Bảng 2 Mảnh ngang DuAn H2
Bảng 3 Mảnh ngang DuAn H3
Nhận xét:
Cho tập các vị 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ị
Trang 17Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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
Ví dụ 1.2.1-3
Xét quan hệ DuAn và các mảnh ngang DuAnH1, DuAnH2, DuAnH3 trong ví
dụ 1.2.1-2 Nếu ứng dụng duy nhất p truy suất đến quan hệ DuAn, chỉ truy suất các bộ theo ViTri trí, thì tập vị từ PDuAn = {p} là đầy đủ, vì các bộ của mảnh DuAnHi điều có sác xuất truy xuất đến các mảnh như nhau Tuy nhiên nếu thêm ứng dụng thứ hai q truy xuất các dự án có ngân sách trên 200000 USD thì PDuAnkhông còn đầy đủ nữa, do một số bộ trong các mảnh DuAnHi có xác xuất được truy xuất cao hơn (chẳng hạn bộ {DA3, CAD/CAM, 250000, Hà Nội} trong DuAn H2 và {DA4, Bảo dưỡng, 310000, TP.Hồ Chí Minh} trong DuAn H3 được được truy xuất nhiều hơn các bộ còn lại Để cho tập vị từ PDuAn là đầy đủ, chúng
ta cần phải thêm các vị từ (NganSach ≤ 200000, DuAn > 200000) vào PDuAn Tức là
PDuAn = {ViTri = ”Hải Phòng”, ViTri = “Hà Nội”, ViTri = “ TP.Hồ Chí Minh ”, NganSach ≤ 200000, NganSach > 200000}
Định nghĩa 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
Định nghĩa 3 Tập 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
Ví dụ 1.2.1-4
Tập PDuAn được định nghĩa trong ví dụ 1.2.1-3 là :
Trang 18Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
TraLuong1
TrinhDoCM, Luong
TraLuong2
TrinhDoCM, Luong
PDuAn = {ViTri = ”Hải Phòng”, ViTri = “Hà Nội”, ViTri = “ TP.Hồ Chí Minh
”, NganSach ≤ 200000, NganSach > 200000} là đầy đủ và cực tiểu, tuy nhiên nếu chúng ta thêm vị từ TenDuAn = "Thiết bị đo đạc" vào Pr, tập kết quả sẽ không còn cực tiểu vì vị từ mới được thêm vào không có liên đới ứng với PDuAn
Vì không có ứng dụng nào truy xuất khác nhau đến các mảnh tạo ra
Thuật toán lặp sau đây cho ta tập vị từ đầy đủ và cực tiểu P‟R khi đã có tập các
vị từ đơn giản PR Thuật toán này, được gọi là COM_MIN, nội dung COM_MIN được trình bày trong thuật toán COM_MIN(R, PR) [2], [3]
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
+ 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ệ 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 đó
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
Trong đó là số lượng các mảnh được định nghĩa trên R, và Si = Fi(S) với Fi
là công thức định nghĩa mảnh ngang nguyên thuỷ Si
Ví dụ 1.2.1-5
Xét đường nối l1 trong hình 1, trong đó Nguon(l1) = TraLuong và
Dich(l1) = NhanVien Thế thì chúng ta có thể nhóm quan hệ trả TraLuong 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 19Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MaNV, TenNV, TrinhDoCM
Khi đó phân mảnh dẫn xuất sẽ là
TraLuong1 = Luong 30000 (TraLuong)
TraLuong2 = Luong > 30000 (TraLuong)
Trong đó
NhanVienDanxxuat1 = NhanVien ╞ TraLuong1
NhanVienDanxxuat2 = NhanVien ╞ TraLuong2
Kết quả phân mảnh được trình bày trong các bảng 4(a,b)
Kỹ sư cơ khí Bảng 4a Mảnh dẫn xuất NhanVienDanxuat1 tương ứng TraLuong1
Ngô Đình Vinh Trần Mỹ Lệ Nguyễn Trường Tam
Kỹ sư điện Phân tích và thiết kế hệ thống Phân tích và thiết kế hệ thống
Kỹ sư điện Phân tích và thiết kế hệ thống Bảng 4b Mảnh dẫn xuất NhanVienDanxxuat2 tương ứng TraLuong2
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 (chẳng hạn TraLuong1 và TraLuong 2 trong Ví
Trang 20Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
dụ 1.2.1-5.), quan hệ đích (chẳng hạn NhanVien), và tập các vị từ nối nửa giữa nguồn và đích (chẳng hạn NhanVien.TrinhDoCM = TraLuong.TrinhDoCM trong Ví dụ 1.2.1-5.)
Ví dụ 1.2.1-6
Xét quan hệ PhanNhiem chúng ta phân mảnh ngang theo các mảnh DuAnH1, DuAnH3 , DuAnH4 và DuAnH6 của DuAn Cần nhớ lại rằng
DuAnH1 = ViTri = “Hải Phòng” NganSach 200000 (DuAn)
DuAnH3 = ViTri = “Hà Nội” NganSach 200000 (DuAn)
DuAnH4 = ViTri = “Hà Nội” NganSach > 200000 (DuAn)
DuAnH6 = ViTri = “TP.Hồ Chí Minh ” NganSach > 200000 (DuAn)
Vì thế phân mảnh dẫn xuất của PhanNhiem theo { DuAn1,DuAn3, DuAn4, DuAn6} Sẽ cho:
PhanNhiemDanxuat1 = PhanNhiem ╞ DuAnH1
PhanNhiemDanxuat2 = PhanNhiem ╞ DuAnH3
PhanNhiemDanxuat3 = PhanNhiem ╞ DuAnH4
PhanNhiemDanxuat4 = PhanNhiem ╞ DuAnH6
Thể hiện của các mảnh này được trình bày trong các bảng 5(a, b, c, d)
NV1
NV2
DA1 DA2
Giám đốc Nhân viên phân tích và thiết kế
12
24
Bảng 5a Mảnh dẫn xuất PhanNhiemDanxuat1 tương ứng với DuAnH1
Trang 21Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ 1.2.1-7
Câu vấn tin thứ hai có thể được viết bằng SQL như sau
SELECT ChucVu, ThoiGianLV
FROM PhanNhiem, NhanVien
WHERE PhanNhiem.MaNV = NhanVienHi.MaNV
Trong đó i = 1 hoặc i = 2, tuỳ thuộc vào nơi đưa ra câu vấn tin Phân mảnh dẫn xuất của PhanNhiem theo phân mảnh của NhanVien được định nghĩa dưới đây và được trình bày trong các bảng 6 (a,b)
PhanNhiemDanxuat1 = PhanNhiem ╞ NhanVienH1
NV2
NV4
NV5
DA2 DA2DA2
Nhân viên phân tích và thiết
kế Lập trình viên Giám đốc
6
18
24
Bảng 5b Mảnh dẫn xuất PhanNhiemDanxuat2 tương ứng với DuAnH3
NV3
NV6
NV7
DA3 DA3DA3
Nhân viên tư vấn
Kỹ sư Giám đốc
10
36
40 Bảng 5c Mảnh dẫn xuất PhanNhiemDanxuat3 tương ứng với DuAnH4
NV3
NV6
DA4 DA4
Kỹ sư Giám đốc
48
48 Bảng 5d Mảnh dẫn xuất PhanNhiemDanxuat4 tương ứng với DuAnH6
Nhân viên tư vấn
Kỹ sư Lập trình viên
Trang 22Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
use(qi, Aj) =
1 nếu thuộc tính A j được vấn tin q i tham chiếu
0 trong trường hợp ngược lại
PhanNhiemDanxuat2 = PhanNhiem ╞ NhanVienH2
Giám đốc Nhân viên phân tích và thiết kế Nhân viên phân tích và thiết kế Giám đốc
Giám đốc Giám đốc
- 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 bàn 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 [2], [3]
- Các yêu cầu dữ liệu
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 Gọi 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 gía trị sử dụng thuộc tính ký hiệu là use(qi, Aj) và được định nghĩa như sau:
Trang 23Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
k| (use(q k ,A i )-l) use(q k ,A j )-l Si
ref l (q k )acc l (q k ) aff(Ai, Aj) =
Ai và Aj của quan hệ R(A1,…An) ứng với tập ứng dụng Q = {q1,…,qq} được định nghĩa là:
Trong đó refl(qk) là số truy xuất đến các thuộc tính (Ai, Aj) cho mỗi thực hiện của ứng dụng qk tại vị trí Sl và accl (qk) là số đo tấn số truy xuất ứng dụng đã được định nghĩa trước và được sửa đổi lại để chứa tất cả các tần số tại các vị trí khác nhau
Kết quả của việc tính toán này là một ma trận nn, mỗi phần tử của nó là một trong các số đo được định nghĩa trên.Chúng ta gọi nó là ma trận ái lực thuộc tính (AA)
- 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 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 24
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Một Ví dụ điển hình minh hoạ cho sự cần thiết có phân mảnh hỗn hợp là quan
hệ DuAn mà chúng ta đã từng tác động lên nó Trong Ví dụ 1.2.1-5, chúng ta đã phân hoạch nó thành sáu mảnh ngang dựa vào hai ứng dụng
Số mức lồng ghép có thể khá lớn nhưng chắc chắn là hữu hạn Trong trường hợp phân mảnh ngang, quá trình này sẽ ngừng khi mỗi mảnh chỉ còn một bộ, và điểm ngừng cho phân hoạch là một thuộc tính mỗi mảnh Tuy nhiên những hạn chế đều có vẻ quá lý thuyết bởi vì các mức lồng trong phần lớn các ứng dụng thực tế đều không vượt quá 2 Điều này là do các quan hệ toàn cục được chuẩn hoá đều có các bậc nhỏ và không thể thực hiện phân mảnh quá nhiều trước khi chi phí nối trở nên quá cao
Chúng ta không thảo luận chi tiết về tính đúng đắn và các điều kiện cho phân mảnh hỗn hợp bởi vì tự nhiên là chúng tuân theo những yêu cầu của các phân mảnh ngang và dọc Ví dụ để tái thiết lại quan hệ toàn cục trong trường hợp phân mảnh hỗn hợp, người ta bắt đầu tại các nút lá của cây phân hoạch và di chuyển lên trên bằng cách thực hiện các phép nối và hợp Phân mảnh sẽ đầy đủ nếu các mảnh lá và mảnh trung gian đầy đủ Tương tự, tính tách biệt được bảo đảm nếu các mảnh lá và trung gian là tách biệt
(2) Mỗi trình độ chuyên môn có một giá trị lương duy nhất
Vì thế các mảnh của NhanVien cũng rời nhau
Trang 25Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
1.2.2 Các lệnh phân mảnh cơ bản dựa vào câu SQL
- Các lệnh cơ bản cho phân mảnh ngang dựa vào câu SQL
SELECT *
FROM < Tên quan hệ >
WHERE < Condition >
Ví dụ 1.2.2.-1 : Ta xét bảng quan hệ NhanVien từ bảng dưới:
001 Nguyễn Văn Lâm TP Kỹ thuật 04 4500000
002 Nguyễn Đức Hoàn Kỹ thuật viên 04 2800000
003 Nguyễn Sơn Tùng NV bảo hành 03 3200000
Trang 26Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
và cách thiết trong CSDL phân tán Các lệnh phân mảnh dựa vào câu SQL
CSDL phân tán đã được trình bày có các kiểu phân mảnh chính là : Phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp ( Trong phân mảnh ngang được chia ra làm 2 loại là : Phân mảnh ngang nguyên thuỷ và phân mảnh ngang dẫn xuất ), từ những kiến thức tìm hiểu được trong chương, làm cơ sở cần thiết cho việc mở rộng nghiên cứu các phần tiếp theo của luận văn
Trang 27Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Chương 2: PHÂN MẢNH VÀ GỘP NHÓM TRONG CSDL PHÂN TÁN 2.1 CÁC KỸ THUẬT PHÂN MẢNH DỮ LIỆU TRONG CSDL
2.1.1 Loại bỏ dư thừa
Kết quả câu vấn tin của người sử dụng thường được thể hiện trên một khung nhìn, có thể được bổ sung thêm nhiều vị từ để có được sự tương ứng khung nhìn - quan hệ, nhằm bảo đảm được tính toàn vẹn ngữ nghĩa và bảo mật Khi bổ sung như vậy có thể sinh ra các vị từ dư thừa cần phải loại bỏ Người ta
có thể loại bỏ vị từ dư thừa khi áp dụng các quy tắc luỹ đẳng sau:
2.1.2.1 Phân mảnh ngang vòng tròn Robin
- Giả sử cho trước dãy số nguyên bất kỳ: n 0 , n 1 ,…, n p-1 , n p và cho số nguyên
N thì dãy {n i} sẽ phân thành N lớp dựa vào hàm (ni mod N) được đánh số 0, 2,…, N-1
Trang 28Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Cho N vùng (thiết bị) lưu trữ dữ liệu được đánh số 0, 1,…, N-1 Một quan hệ với khóa chính ID, như vậy bộ tương ứng giá trị ID của quan hệ sẽ được đặt lưu vào vùng thứ (ID mod N)
Một trong những đoạn giả mã, có thể được viết như sau:
Cách phân mảnh này dễ cài đặt và không xảy ra tình trạng thiếu cân đối về
dữ liệu vì các vùng chỉ hơn kém nhau tối đa một bộ
Kỹ thuật phân mảnh này dựa trên thứ tự các bộ nên nó không phụ thuộc vào bất cứ một thuộc tính nào của quan hệ được phân mảnh
Phân mảnh Robin không thích hợp với các truy vấn khoảng vì phải tiến hành tìm kiếm trên tất cả các vùng có lưu trữ quan hệ đang xét
Trang 29Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
WHERE (IDNumber mod 4) = i
Kết quả được thể hiện tại các bảng Vungi tương ứng sau:
b)
Trang 30Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
d)
Trang 31Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 2.1.2.1c
2.1.2.2 Phân mảnh ngang theo hàm băm
Phân mảnh theo hàm băm là trường hợp tổng quát của Robin Giả sử cần
phân mảnh quan hệ R cho N vùng được đánh số 0, 1, , N-l với thuộc tính phân mảnh là A Bộ t thuộc R được đưa vào vùng k nếu k = t(A) mod N, trong đó t(A) là giá trị trên thuộc tính A của bộ t
Mã giả như sau:
Ví dụ 2.1.2.2 Với quan hệ Nhanvien như sau
Trang 32Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Phân mảnh quan hệ NhanVien kiểu hàm băm theo thuộc tính NGAY_SINH cho 3 vùng
149 Ngô Quốc Công 21/12/1947 12500000
Trang 33Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Giảm sự quá tải khi phải khởi động truy vấn trên tất cả các vùng Thông thường các dữ liệu liên quan được nhóm lại với nhau và lưu trữ trên cùng một trang vật lý
- Nhưng phân mảnh theo hàm băm thì các mẫu tin được phân mảnh ngẫu nhiên vào các vùng chứ không được nhóm lại với nhau nên không thích hợp với các truy vấn khoảng
2.1.2.3 Phân mảnh ngang theo khoảng
Gộp những bộ mà giá trị thuộc tính nào đó của các bộ của chúng thuộc miền nào đó Thông thường dùng câu lệnh SQL, để phân ra nhiều mảnh, có dạng:
Trang 34Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 2.1.2.3 a
Vùng 1 : 1960 <= NAM_SINH AND NAM_SINH <= 1970
Trang 35Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nhận xét:
- Cách phân mảnh này thuận lợi cho các phép tìm kiếm kết hợp, truy vấn khoảng và nhóm dữ liệu Tuy nhiên, dễ gây ra sự chênh lệch dữ liệu khi tất cả các mẫu tin trong quan hệ có giá trị trên thuộc tính phân mảnh nằm hầu hết trong một khoảng nào đó
- Các loại phân mảnh ngang, phân mảnh dọc hoặc phân mảnh hỗn hợp đều có thể thực hiện bằng SQL nhƣ sau:
SELECT <Danh sách thuộc tính>
FROM <Tên quan hệ>
R= R1 R2, ., Rk
Ví dụ 2.1.3
Xét các phép toán đại số quan hệ sau:
DUAN3 = $1.$3DUAN DUAN4 = $1.$4DUAN
Trang 36Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Dễ thấy, các thỏa mãn tính tái thiết được và tính đầy đủ
DUAN3 DUAN ; DUAN4 DUAN; DUAN= DUAN3 DUAN4
2.1.4 Phân mảnh hỗn hợp
Là kết hợp cả phân mảnh ngang và phân mảnh dọc
Ví dụ 2.1.4
Xét các phép toán đại số quan hệ sau :
DUAN5 = NGANSACH 20000( $1.$3DUAN)
DUAN6 = NGANSACH > 20000( $1.$3DUAN)
Hàm COUNT: Đếm số bộ có trong một quan hệ
Hàm TOTAL: Tính tổng các giá trị trong một trường của một quan hệ Hàm MAX: Cho giá trị cực đại của một trường trong một quan hệ
Hàm MIN: Cho giá trị cực tiểu của một trường trong một quan hệ
Hàm AVERAGE: Cho giá trị trung bình cộng của một trường trong một quan hệ
Trang 37Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Câu lệnh SQL là một loại ngôn ngữ con dữ liệu quan hệ đƣợc xác nhận là rất mạnh Phép toán cơ bản trong SQL là phép ánh xạ, đƣợc mô tả về cú pháp nhƣ là khối SELECT - FROM - WHERE
Mệnh đề SELECT nghĩa là chọn các thuộc tính ra, hay còn gọi là thuộc tính kết quả, nếu không chỉ ra thuộc tính thì dùng dấu * có nghĩa là tất cả các thuộc tính của quan hệ đang đƣợc chỉ ra sau mệnh đề FROM Sau mệnh đề WHERE
là một biểu thức điều kiện lọc dữ liệu (hay còn gọi là biểu thức logic)
Ngoài ra, đễ mở rộng khả năng của ngôn ngữ, khối SELECT - FROM - WHERE còn đƣợc bổ sung thêm các mệnh đề GROUPE BY, having, order by Các hàm mẫu và một số phần mềm còn thêm cả mệnh đề contpute, for browse Trong các phần sau sè trình bầy chi tiết tiếng mệnh đề
Dạng tổng quát của khối SELECT đƣợc biểu diễn nhƣ sau:
SELECT <* | DISTINCT> | danh-sách-thuộc tính>
FROM <danh_sách_tên_bảng | tên_các_wiev>
Trong dó mệnh đề WHERE dƣợc biểu diễn dạng:
WHERE [NOT] BiểuThức PhépSoSánh BiểuThức
WHERE [NOT] tên_cột [ NOT] LlKE xâu_kí_tự
WHERE [NOT] biểu_thức [NOT] BETWEEN biểu_thức AND biểu_thức WHERE [NOT] BiểuThức [NOT] lN ({danhSách | CâuHỏiCon})