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 (834.08 KB, 74 trang )

..

ĐẠ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 Ngun - 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

Chun 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 hồn tồn chịu trách nhiệm về tính pháp lý q 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 chun mơn trong q
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 hồn thành khóa học và luận văn.
Thái ngun, 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 tố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 Xn .......................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 tố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 ngun 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 tố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 đề:
trực giao) ;

(phủ định) ;

(hội) ;

(tuyển) ;

(hoặc hay tổng

(kéo theo hai chiều)

(kéo theo) ;

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 đề

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

p

p

q

p

q

p

q

p

q

p


q

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 :

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

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 ( 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 (p1, p2, ...pn ) đề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 (p1, p2, ...pn )

E1

E2

... Em (duy nhất ) với Ei

( 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 (p1, p2, ...pn ) đề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 (p1, p2, ...pn )
F = F1 F2 ... Fm (duy nhất )

với Fi ( 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:

3/ Luật kết hợp:

4/ Luật phân phối:

5/ Luật Demorgan:
Số hóa bởi Trung tâm Học liệu

p

q

q

p

p

q

q

p


p

(q

r)

(p

q)

r

p

(q

r)

(p

q)

r

p

(q

r)


(p

q)

(p

r)

p

(q

r)

(p

q)

(p

r)

(p

q)

p

q


/>

6

(p
6/ Luật về phần tử bù:

q)

p

p

p

1

p

p

0

7/ Luật kéo theo:

p

q

8/ Luật tƣơng đƣơng:


p

q

9/ Các luật đơn giản của phép tuyển (

):

p
(p

p

p

p

p

1

1

p

0

p


p

(p

q)

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)

q)

p

q

q
q)

(q

p)

p

p

Các quy tắc suy diễn cơ bản
1. Quy tắc Modusponents
(p

q)

p

q hay (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)

Để chứng minh từ p
tồn sai do đó p


0.
q ta chứng minh từ p và không q là kết luận hồn

q đúng.

4. Quy tắc chứng minh theo trường hợp
(p1

q)

(p2

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

q) ........(pn

q)

(p1

p2 .... pn)

/>
q


7

5. Quy tắc tam đoạn luận
(p


q)

(q

r)

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

(p

r) hay (p

q)

(q

r)

(p

/>
r)


7

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 tốn sau ( Hình 1)
Hình 1: Sơ đồ kết nối các quan hệ.


n

1

MaNV

1
TrinhDoCM

Luong

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

4000
3400
2700
2400

Quan hệ TraLuong

n
MaNV

NV1
NV2
NV3

NV4
NV5
NV6
NV7
NV8

ChucVu

ThoiGianLV

Giám đốc
12
Nhân viên phân tích và thiết kế
24
Nhân viên phân tích và thiết kế
6
Nhân viên tƣ vấn
10
Kỹ sƣ
48
Lập trình viên
18
Giám đốc
24
Giám đốc
48
Kỹ sƣ
36
40
Giám đốc

Quan hệ PhanNhiem
Số hóa bởi Trung tâm Học liệu
/>NV1
NV2
NV2
NV3
NV3
NV4
NV5
NV6
NV7
NV8

DA1
DA1
DA2
DA3
DA4
DA2
DA2
DA4
DA3
DA3

TrinhDoCM

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

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

1

n
MaDuAn

TenNV

MaDu
An
DA1
DA2
DA3
DA4

Quan hệ NhanVien
TenDuAn

Thiết bị đo đạc
Phát triển CSDL
CAD/ CAM
Bảo dƣỡng

NganSac
h

ViTri

150000
135000
250000
310000

Hải Phòng
Hà Nội
Hà Nội
TP.Hồ Chí Minh

Quan hệ DuAn


8

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 hố 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
TraLuong
TrinhDoCM. Luong
l1
NhanVien
MaNV, TenNV, TrinhDoCM
l2

DuAn
MaDuAn, TenDuAn, NganSach, ViTri
l3

PhanNhiem
MaNV, MaDuAn, ChucVu, ThoiGianLV

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
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 Ri bao gồm các bộ của
R đƣợc chọn ra theo công thức:
Ri =

Fi(R),

1≤ i ≤ z.

Trong đó Fi là cơng thức chọn. Chú ý rằng chúng ta xét Fi 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 DuAnH1 và DuAnH2 nhƣ sau:
DuAnH1 =
DuAnH2 =


(DuAn)
NganSach > 200000 (DuAn)
NganSach

200000

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.
DuAnH1 =

ViTri = "Hải Phòng")(DuAn)

DuAnH2 =

ViTri = "Hà Nội"

DuAnH3 =

ViTri = "TP.Hồ chí Minh"

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

(DuAn)
(DuAn)
/>

10

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

MaDuAn
DA1

TenDuAn

NganSach

ViTri

Thiết bị đo đạc

150000

Hải Phòng

Bảng 1. Mảnh ngang DuAn H1

MaDuAn

TenDuAn

NganSach

ViTri

DA2

Phát triển CSDL

135000


Hà Nội

DA3

CAD/CAM

250000

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 = {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.
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 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ì PDuAn
khơ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 P DuAn.
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à :
Số hóa bởi Trung tâm Học liệu

/>

12

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 tố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
Trong đó

i

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 ngun 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:
TrinhDoCM, Luong

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

TrinhDoCM, Luong


TraLuong2

/>

13

MaNV, TenNV, TrinhDoCM

MaNV, TenNV, TrinhDoCM

NhanVien
1

NhanVien

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

Khi đó phân mảnh dẫn xuất sẽ là
TraLuong1 =
TraLuong2 =

Luong

30000

Luong > 30000

(TraLuong)
(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)
MaNV

TenNV

TrinhDoCM

NV3

Hồng Trung Mã

Kỹ sƣ cơ khí

NV4

J.Miller

Lập trình viên

NV7

Lê Hồng Hạnh

Kỹ sƣ cơ khí

Bảng 4a. Mảnh dẫn xuất NhanVienDanxuat1 tƣơng ứng TraLuong1

MaNV

TenNV

TrinhDoCM

NV1

Nguyễn Văn Bổng

Kỹ sƣ điện

NV2

M.Smith

Phân tích và thiết kế hệ thống

NV5

Ngơ Đình Vinh

Phân tích và thiết kế hệ thống

NV6

Trần Mỹ Lệ

Kỹ sƣ điện


NV8

Nguyễn Trƣờng Tam

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í
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 DuAnH1,
DuAnH3 , DuAnH4 và DuAnH6 của DuAn. Cần nhớ lại rằng
DuAnH1 =

ViTri = “Hải Phòng”

DuAnH3 =

ViTri = “Hà Nội”


NganSach

DuAnH4 =

ViTri = “Hà Nội”

NganSach > 200000 (DuAn)

DuAnH6 =

ViTri = “TP.Hồ Chí Minh ”

NganSach

200000 (DuAn)

200000 (DuAn)

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)

MaNV


MaDuAn

ChucVu

ThoiGianLV

NV1

DA1

Giám đốc

12

NV2

DA2

Nhân viên phân 24
tích và thiết kế

Bảng 5a . Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với DuAnH1

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

/>

15

MaNV

MaDuAn
ChucVu
ThoiGianLV
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV2
DA2
Nhân viên phân tích và thiết 6
NV3
DA3
Nhân viên tƣ vấn
10
NV4
DA2
kế
18
NV6
DA3
Kỹ sƣ
36
NV5
DA2
Lập trình viên
24
NV7
DA3
Giám đốc
40

Giám đốc
Bảng 5c. Mảnh dẫn xuất PhanNhiemDanxuat3 tƣơng ứng với DuAnH4
Bảng 5b. Mảnh dẫn xuất PhanNhiemDanxuat2 tƣơng ứng với DuAnH3
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV3
DA4
Kỹ sƣ
48
NV6
DA4
Giám đốc
48
Bảng 5d. Mảnh dẫn xuất PhanNhiemDanxuat4 tƣơng ứng với DuAnH6
Ví dụ 1.2.1-7.
Câu vấn tin thứ hai có thể đƣợc viết bằng SQL nhƣ sau
SELECT
FROM
WHERE

ChucVu, ThoiGianLV
PhanNhiem, NhanVien
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

MaNV
MaDuAn
ChucVu
ThoiGianLV
NV3
DA3
Nhân viên tƣ vấn
02
NV3
DA4
Kỹ sƣ
48
NV4
DA2
Lập trình viên
18
NV7
DA3
Kỹ sƣ
36
Bảng 6a. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với NhanVienH1

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

/>

16

PhanNhiemDanxuat2 = PhanNhiem ╞ NhanVienH2
MaNV

MaDuAn
ChucVu
ThoiGianLV
NV1
DA1
Giám đốc
12
NV2
DA1
Nhân viên phân tích và thiết kế
24
NV3
DA2
Nhân viên phân tích và thiết kế
6
NV4
DA2
Giám đốc
24
NV5
DA4
Giám đốc
48
NV6
DA3
Giám đốc
40
Bảng 6b. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với NhanVienH2
- 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:
1 nếu thuộc tính Aj đƣợc vấn tin qi tham chiếu

use(qi, Aj) =

0 trong trƣờng hợp ngƣợc lại

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

/>

17

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.
Giá trị sử dụng thuộc tính khơng đủ tổng qt để 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
(Ai, Aj ) 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
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à:
refl(qk)accl(qk)

aff(Ai, Aj) =
Si

k| (use(qk,Ai)-l) use(qk,Aj)-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 tố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).
R
H
R1
V

V
V
Số hóa bởi Trung tâm Học liệu
R21
R11
R12
Phân mảnh hỗn hợp

H

H
R2
V

R22

V
R23

V

V

H
V

/>R11

V V


R21 R22
R12
Tái thiết các mảnh hỗn
hợp

R23


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ẻ q 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ệ tồn cục đƣợc chuẩn
hố đề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 q 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 ={m1, m2} là
m1 : Luong


3000

m2 : Luong > 3000
Vì m1 và m2 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 độ chun 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 Hồ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ế tốn

03

3100000

005

Nguyễn Thị Hồng

NV Bán hàng

04

2800000

006

Lê q Đơ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
FROM

MaNV, Luong
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 >
Số hóa bởi Trung tâm Học liệu

/>

×