Tải bản đầy đủ (.pdf) (74 trang)

các kỹ thuật phân mảnh, gộp nhóm trong csdl phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (841.88 KB, 74 trang )


Số hóa bởi Trung tâm Học liệu


ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG




TÔ NGỌC ANH




CÁC KỸ THUẬT PHÂN MẢNH, GỘP NHÓM
TRONG CSDL PHÂN TÁN




LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH










Thái Nguyên - 2013

Số hóa bởi Trung tâm Học liệu

ạo



























ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG



TÔ NGỌC ANH


CÁC KỸ THUẬT PHÂN MẢNH, GỘP NHÓM TRONG CSDL
PHÂN TÁN


Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01




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

Số hóa bởi Trung tâm Học liệu


i
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


Số hóa bởi Trung tâm Học liệu

ii
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

Số hóa bởi Trung tâm Học liệu

iii
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

Số hóa bởi Trung tâm Học liệu

1
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

Số hóa bởi Trung tâm Học liệu

2
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

Số hóa bởi Trung tâm Học liệu

3
Để 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 :
p
q
p
p q
p q
p q
p q
p q
0
0
1

0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1


Số hóa bởi Trung tâm Học liệu

4

Ký hiệu phép toán
Nghĩa của phép toán
, ,
Phủ định
,
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 (

ni ,1
) 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 (
ni ,1
)
Biểu thức tuyển cơ bản.

Số hóa bởi Trung tâm Học liệu

5
Biểu thức logic E = E (p1, p2, pn ), trong đó pi (
ni ,1
) 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 (
ni ,1
)
Biểu thức logic E = E (p1, p2, pn ), trong đó pi (
ni ,1
) 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 (
ni ,1
) là những biểu thức hội cơ bản của các pi (
ni ,1
).

Đị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

(
mi ,1
) 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 (
ni ,1
) 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 (

ni ,1
) là một biểu thức tuyển cơ bản của các p
i
(
ni ,1
)

Đị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

(
mi ,1
) 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

Số hóa bởi Trung tâm Học liệu

6
(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 ( ):
p p p

p 1 p
p 0 0
p (p q) p
Các quy tắc suy diễn cơ bản
1. Quy tắc Modusponents
(p q) p q hay (p q) p q
2. Quy tắc Modus Tollens
(p q) q p hay (p q) q p
3. Quy tắc chứng minh phản chứng
p q (p q) 0.
Để chứng minh từ p q ta chứng minh từ p và không q là kết luận hoàn
toàn sai do đó p q đúng.
4. Quy tắc chứng minh theo trường hợp
(p1 q) (p2 q) (pn q) (p1 p2 pn) q

Số hóa bởi Trung tâm Học liệu

7
5. Quy tắc tam đoạn luận
(p q) (q r) (p r) hay (p q) (q r) (p r)

Số hóa bởi Trung tâm Học liệu

7
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
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
Luong
TrinhDoCM
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
NV1
NV2
NV2
NV3
NV3
NV4
NV5
NV6
NV7
NV8
ThoiGianLV
ChucVu
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
An
n
1
n
1
n
1
1.2.TỔNG QUAN VỀ CSDL PHÂN TÁN
Để 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ệ.












Số hóa bởi Trung tâm Học liệu

8
TrinhDoCM. Luong
MaNV, TenNV, TrinhDoCM
NhanVien
MaDuAn, TenDuAn, NganSach, ViTri
DuAn
MaNV, MaDuAn, ChucVu, ThoiGianLV
PhanNhiem

TraLuong
l
1

l
2

l
3

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.
- 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.
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 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. Ví dụ hình 2







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 l
1
của hình 2, các hàm Nguon và Dich có các giá trị sau:
Nguon(l
1
) = TraLuong
Dich( l
1
) = NhanVien

Số hóa bởi Trung tâm Học liệu

9
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 R
i
bao gồm các bộ của
R đƣợc chọn ra theo công thức:
R
i
=
Fi
(R), 1≤ i ≤ z.
Trong đó F
i
là công thức chọn. Chú ý rằng chúng ta xét F
i
có dạng chuẩn hội,
nó là một vị từ hội sơ cấp.
Ví dụ 1.2.1-1. Xét hình 1 ta có
Phân rã quan hệ DuAn thành các mảnh ngang DuAn
H1
và DuAn
H2
nhƣ sau:

DuAnH1 =
NganSach 200000
(DuAn)
DuAnH2 =
NganSach > 200000
(DuAn)
Ví dụ 1.2.1-2.
Xét quan hệ DuAn. Chúng ta có thể định nghĩa các mảnh ngang sau đây dựa vào
vị trí dự án.
DuAn
H1
=
ViTri = "Hải Phòng")
(DuAn)
DuAn
H2
=
ViTri = "Hà Nội"
(DuAn)
DuAn
H3
=
ViTri = "TP.Hồ chí Minh"
(DuAn)

Số hóa bởi Trung tâm Học liệu

10
Các mảnh thu đƣợc trình bày trong các bảng 1, 2, 3 tƣơng ứng
MaDuAn

TenDuAn
NganSach
ViTri
DA1
Thiết bị đo đạc
150000
Hải Phòng
Bảng 1. Mảnh ngang DuAn
H1


MaDuAn
TenDuAn
NganSach
ViTri
DA2
DA3
Phát triển CSDL
CAD/CAM
135000
250000
Hà Nội
Hà Nội
Bảng 2. Mảnh ngang DuAn
H2



MaDuAn
TenDuAn

NganSach
ViTri
DA4
Bảo dƣỡng
310000
TP.Hồ Chí Minh
Bảng 3. Mảnh ngang DuAn
H3

Nhận xét:
Cho tập các vị M = {m
i
| m
i
là vị từ hôi sơ cấp i = 1, 2 ,…}
Ký hiệu |M| = Card(M). Vậy thì:

(1) Mảnh ngang R
i
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 m
i
.
(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.
Một số tính chất quan trọng của tập vị từ đơn giản là tinh đầy đủ và tính cực
tiểu.
Định nghĩa 1. Tập các vị từ đơn giản đầy đủ


Số hóa bởi Trung tâm Học liệu

11
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 DuAn
H1
, DuAn
H2
, DuAn
H3
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ừ P
DuAn
= {p} là đầy đủ, vì các bộ của mảnh
DuAn
Hi
đ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ì P
DuAn

không còn đầy đủ nữa, do một số bộ trong các mảnh DuAn
Hi
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ừ P
DuAn
là đầy đủ, chúng
ta cần phải thêm các vị từ (NganSach ≤ 200000, DuAn > 200000) vào P
DuAn
.
Tức là
P
DuAn
= {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 F
i
và F
j
đều khác rỗng, thì vẫn có ít nhất một ứng dụng truy xuất đến F
i

F
j
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 P
DuAn
đƣợc định nghĩa trong ví dụ 1.2.1-3. là :

Số hóa bởi Trung tâm Học liệu

12
TraLuong1
TrinhDoCM, Luong
TraLuong2
TrinhDoCM, Luong
P
DuAn
= {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 P
DuAn
.
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 P
R
. 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, P

R
) [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à:
R
i
= R╞ S
i
, 1 i
Trong đó là số lƣợng các mảnh đƣợc định nghĩa trên R, và S
i
=
Fi
(S) với F
i

là công thức định nghĩa mảnh ngang nguyên thuỷ S
i
.
Ví dụ 1.2.1-5.
Xét đƣờng nối l
1
trong hình 1, trong đó Nguon(l
1

) = TraLuong và
Dich(l
1
) = 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:



Số hóa bởi Trung tâm Học liệu

13
NhanVien
1

MaNV, TenNV, TrinhDoCM
Hình 3. Đồ thị nối giữa các mảnh
NhanVien
2

MaNV, TenNV, TrinhDoCM



Khi đó phân mảnh dẫn xuất sẽ là
TraLuong1 =
Luong 30000
(TraLuong)
TraLuong2 =
Luong > 30000

(TraLuong)
Trong đó
NhanVien
Danxxuat1
= NhanVien ╞ TraLuong1
NhanVien
Danxxuat2
= NhanVien ╞ TraLuong2
Kết quả phân mảnh đƣợc trình bày trong các bảng 4(a,b)
MaNV
TenNV
TrinhDoCM
NV3
NV4
NV7
Hoàng Trung Mã
J.Miller
Lê Hồng Hạnh
Kỹ sƣ cơ khí
Lập trình viên
Kỹ sƣ cơ khí
Bảng 4a. Mảnh dẫn xuất NhanVien
Danxuat1
tƣơng ứng TraLuong
1

MaNV
TenNV
TrinhDoCM
NV1

NV2
NV5
NV6
NV8
Nguyễn Văn Bổng
M.Smith
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 NhanVien
Danxxuat2
tƣơng ứng TraLuong
2

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 TraLuong
1
và TraLuong
2
trong Ví

Số hóa bởi Trung tâm Học liệu

14

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 DuAn
H1
,
DuAn
H3
, DuAn
H4
và DuAn
H6
của DuAn. Cần nhớ lại rằng
DuAn
H1
=
ViTri = “Hải Phòng” NganSach 200000
(DuAn)
DuAn
H3
=
ViTri = “Hà Nội” NganSach 200000
(DuAn)
DuAn
H4
=
ViTri = “Hà Nội” NganSach > 200000
(DuAn)
DuAn

H6
=
ViTri = “TP.Hồ Chí Minh ” NganSach > 200000
(DuAn)
Vì thế phân mảnh dẫn xuất của PhanNhiem theo { DuAn
1
,DuAn
3
, DuAn
4
,
DuAn
6
} Sẽ cho:
PhanNhiem
Danxuat1
= PhanNhiem ╞ DuAn
H1

PhanNhiem
Danxuat2
= PhanNhiem ╞ DuAn
H3

PhanNhiem
Danxuat3
= PhanNhiem ╞ DuAn
H4

PhanNhiem

Danxuat4
= PhanNhiem ╞ DuAn
H6

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)


MaNV
MaDuAn
ChucVu
ThoiGianLV
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 PhanNhiem
Danxuat1
tƣơng ứng với DuAn
H1


Số hóa bởi Trung tâm Học liệu

15


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 = NhanVien
Hi
.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)
PhanNhiem
Danxuat1
= PhanNhiem ╞ NhanVien
H1




MaNV
MaDuAn
ChucVu
ThoiGianLV
NV2
NV4
NV5

DA2
DA2


DA2

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 PhanNhiem
Danxuat2
tƣơng ứng với DuAn
H3

MaNV
MaDuAn
ChucVu
ThoiGianLV
NV3
NV6

NV7
DA3
DA3

DA3

Nhân viên tƣ vấn
Kỹ sƣ
Giám đốc

10
36
40
Bảng 5c. Mảnh dẫn xuất PhanNhiem
Danxuat3
tƣơng ứng với DuAn
H4

MaNV
MaDuAn
ChucVu
ThoiGianLV
NV3
NV6
DA4
DA4

Kỹ sƣ
Giám đốc
48
48
Bảng 5d. Mảnh dẫn xuất PhanNhiem
Danxuat4
tƣơng ứng với DuAn
H6

MaNV
MaDuAn
ChucVu
ThoiGianLV

NV3
NV3
NV4

NV7

DA3
DA4

DA2

DA3

Nhân viên tƣ vấn
Kỹ sƣ
Lập trình viên
Kỹ sƣ
02
48
18
36
Bảng 6a. Mảnh dẫn xuất PhanNhiem
Danxuat1
tƣơng ứng với NhanVien
H1

Số hóa bởi Trung tâm Học liệu

16


use(q
i
, A
j) =




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

PhanNhiem
Danxuat2
= PhanNhiem ╞ NhanVien
H2
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV1
NV2
NV3

NV4

NV5

NV6

DA1
DA1

DA2

DA2

DA4
DA3

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
12
24
6
24
48
40
Bảng 6b. Mảnh dẫn xuất PhanNhiem
Danxuat1
tƣơng ứng với NhanVien
H2

- 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) R
1
, R
2
, R
r
.
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={q
1
, q
2
,… q
q
} 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(A
1
,…A
n
). Thế thì với mỗi câu vấn tin q

i
và mỗi thuộc tính A
j
chúng ta đƣa ra một gía trị sử dụng thuộc tính ký hiệu là
use(q
i
, A
j
) và đƣợc định nghĩa nhƣ sau:



Số hóa bởi Trung tâm Học liệu

17

k| (use(q
k
,A
i
)-l) use(q
k
,A
j
)-l

S
i

ref

l
(q
k
)acc
l
(q
k
)
aff(A
i
, A
j
) =
R
H
H
R
1
R
2
R
11
R
12
R
22
R
23
R
21

V
V
V
V
V
Phân mảnh hỗn hợp

H
H
R
11
R
12
R
22
R
23
R
21
V
V
V
V
V
Tái thiết các mảnh hỗn
hợp



Các véc tơ use(q

i
, 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.
Giá trị sử dụng thuộc tính không đủ tổng quát để làm cơ sở cho việc tách và
phân mảnh. Điều này là do chúng không biểu thị cho độ lớn của tần số ứng dụng
(A
i
, A
j
) biểu thị cho cầu nối giữa hai thuộc tính của một quan hệ theo cách
chúng đƣợc các ứng dụng truy xuất. Số đo ái lực thuộc tính giữa hai thuộc tính
A
i
và A
j
của quan hệ R(A
1
,…A
n
) ứng với tập ứng dụng Q = {q
1
,…,q
q
} đƣợc
định nghĩa là:


Trong đó ref

l
(q
k
) là số truy xuất đến các thuộc tính (A
i
, A
j
) cho mỗi thực hiện
của ứng dụng q
k
tại vị trí S
l
và acc
l
(q
k
) 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).




Số hóa bởi Trung tâm Học liệu

18
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.
Ví dụ 1.2.1-8.
Khi phân mảnh quan hệ TraLuong, các vị từ hội sơ cấp M ={m
1
, m
2
} là
m
1

: Luong 3000
m
2
: Luong > 3000
Vì m
1
và m
2
loại trừ lẫn nhau nên các mảnh của TraLuong là rời nhau. Nhƣng
với quan hệ NhanVien chúng ta thêm yêu cầu:
(1) Mỗi kỹ sƣ có một chức vụ duy nhấ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.


Số hóa bởi Trung tâm Học liệu

19
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:
MaNV
TenNV
Chucvu
TGCongtac
Luong
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
004
Vũ Bích Thảo
NV Kế toán
03
3100000
005
Nguyễn Thị Hồng
NV Bán hàng
04
2800000
006
Lê quí Đôn
NV kinh doanh
02
3500000
SELECT *

FROM NhanVien
WHERE Luong > 3000000
- Các lệnh cơ bản cho phân mảnh dọc dựa vào câu SQL
SELECT < Danh sách trƣờng >
FROM
Ví dụ 1.2.2 - 2.
SELECT MaNV, Luong
FROM NhanVien

- Các lệnh cơ bản cho phân mảnh hỗn hợp dựa vào câu SQL
Slect < Danh sách trƣờng >

×