Tải bản đầy đủ (.docx) (59 trang)

PHÂN MẢNH TRONGCSDL 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 (602.98 KB, 59 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH


BÁO CÁO THU HOẠCH
MÔN CƠ SỞ DỮ LIỆU NÂNG CAO
ĐỀ TÀI:
PHÂN MẢNH TRONG CSDL PHÂN TÁN
Giáo viên hướng dẫn: Sinh viên thực hiện:
PGS. TS. ĐỖ PHÚC NGUYỄN NGỌC LÂM
MSSV: CH1101098
LỚP: CH-K6
TP.HCM 08-2012
Lời mở đầu
LỜI MỞ ĐẦU
Phân mảnh dữ liệu là một trong những hướng nguyên cứu mới trong cơ sở dữ liệu
(CSDL), là kỹ thuật thiết kế cơ sở dữ liệu ở mức logic nhằm giảm bớt những truy xuất
không cần thiết đến dữ liệu, cho phép thực hiện song song các truy vấn bằng cách chia nó
thành một tập các truy vấn con tác dụng lên các mảnh nằm ở các Site được đặt ở những
vị trí địa lý khác nhau.
Trong những năm gần đây, do các ứng dụng ngày càng phức tạp, các mô hình CSDL
trước đó cũng như mô hình CSDL quan hệ bộc lộ nhiều hạn chế trong việc mô hình hóa
và xử lý dữ liệu. Có nhiều mô hình CSDL ra đời và phát triển nhằm khắc phục những hạn
chế đó, một trong số đó là mô hình CSDL phân tán. Và một trong những đặc trưng của
mô hình CSDL phân tán chính là việc phân mảnh dữ liệu.
Nội dung của bài tiểu luận gồm 5 chương, chủ yếu lựa chọn và sắp xếp những nội dung
cần thiết nhất trong khoảng thời gian và không gian cho phép. Bài tiểu luận trình bày và
giới thiệu một cách tương đối hệ thống những kiến thức cơ bản về phân mảnh dữ liệu
trong mô hình CSDL phân tán, đồng thời cài đặt một số ứng dụng đặt trưng minh họa cho
quá trình phân mảnh dữ liệu.


 Chương 1 - TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
Nội dung chương 1 trình bày tổng quan các khái niệm cơ bản về việc phân
mảnh dữ liệu trong mô hình CSDL phân tán, các vấn đề về phân mảnh dữ liệu.
 Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Nội dung chương này sẽ trình bày các phương pháp phân mảnh ngang và
phương pháp phân mảnh ngang dẫn xuất, đồng thời giới thiệu các thuật toán được
sử dụng trong phân mảnh ngang.
 Chương 3 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH DỌC
Trong chương này sẽ trình bày phương pháp phân mảnh dọc và các thuật
toán được sử dụng trong phân mảnh dọc.
 Chương 4 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH HỖN HỢP
Phương pháp phân mảnh hỗn hợp là sự kết hợp phân mảnh ngang và phân
mảnh dọc lại với nhau.
 Chương 5 - CÀI ĐẶT MINH HỌA CÁC THUẬT TOÁN PHÂN MẢNH
Trong chương 5 sẽ cài đặt một số thuật toán tiêu biểu để minh họa cho việc
phân mảnh trong hệ CSDL phân tán.
Lời mở đầu
Lời cảm ơn
LỜI CẢM ƠN
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở khoa Khoa Học Máy
Tính - trường Đại Học Công Nghệ Thông Tin đã đem hết tâm huyết của mình truyền đạt
vốn kiến thức quý báu cho chúng em.
Em xin chân thành cảm ơn PGS. TS. Đỗ Phúc đã truyền đạt kiến thức môn Cơ Sở Dữ
Liệu Nâng Cao. Qua đó giúp em co đầy đủ kiến thức để hoàn thành bài thu hoạch này.
Nhân đây em cũng xin gửi lời cảm ơn chân thành đến gia đình, bạn bè, đồng nghiệp đã
động viên tin thần cho em trong suốt quá trình học tập của mình.
Sau cùng, em xin kính chúc quý Thầy Cô trong khoa Khoa Học Máy Tính cùng PGS. TS.
Đỗ Phúc dồi dào sức khỏe để thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức
cho thế hệ mai sau.
Một lần nữa em xin chân thành cảm ơn !

TP. HCM, ngày 18 tháng 08 năm 2012
Sinh viên thực hiện
(ký và ghi rõ họ tên)
Nguyễn Ngọc Lâm
Nhận xét của giáo viên hướng dẫn
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẨN
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
………
……………………………………………………………………………………………………

……………………………………………………………………………………………………

……………………………………………………………………………………………………

……………………………………………………………………………………………………


Nhận xét của giáo viên hướng dẫn
……………………………………………………………………………………………………

……………………………………………………………………………………………………

……………………………………………………………………………………………………

TP. HCM, ngày 18 tháng 08 năm 2012
Sinh viên thực hiện
(ký và ghi rõ họ tên)
Nguyễn Ngọc Lâm
MỤC LỤC
BẢNG
Bảng 1.1 Bảng EMP……………………………………………………………….2
Bảng 1.2 Bảng ASG……………………………………………………………….2
Bảng 1.3 Bảng PROJ…………………………………………………………… 2
Bảng 1.4 Bảng PAY……………………………………………………………… 2
Bảng 1.5 Bảng PROJ1…………………………………………………………… 3
Bảng 1.6 Bảng PROJ2…………………………………………………………… 4
Bảng 1.7 Bảng PROJ3…………………………………………………………… 4
Bảng 1.8 Bảng PROJ4…………………………………………………………… 4
Bảng 2.1 Phân mảnh ngang cơ sở quan hệ PROJ……………………………… 11
Bảng 2.2 Phân mảnh ngang cho quan hệ PAY………………………………… 14
Bảng 2.3 Phân hoạch ngang quan hệ PROJ………………………………………16
Hình 2.4 Phân mảnh ngang dẫn xuất quan hệ EMP…………………………… 17
Bảng 3.1 Bảng PROJ…………………………………………………………… 19
DANH SÁCH CÁC HÌNH
Hình 2.1 Mô tả mối quan hệ giữa các quan hệ bởi đồ thị có hướng……………….7
Hình 2.2 Sơ đồ liên kết CSDL sau khi phân mảnh……………………………….17
Hình 3.1 Ma trận giá trị sử dụng thuộc tính………………………………………20

Hình 3.2 Ma trận tần số truy cập…………………………………………………20
Hình 3.3 Ma trận ái lực thuộc tính……………………………………………… 21
Hình 3.4 Ma trận CA khi cố định cột A
1
và A
2……………………………………………………
25
Hình 3.5 Ma trận CA khi thêm A
3
theo thứ tự 1-3-2…………………………….25
Hình 3.6 Ma trận CA khi thêm A
4
theo thứ tự 3-2-4…………………………… 27
Hình 3.7 Ma trận CA sau khi hoán vị hàng………………………………………27
Hình 3.8 Cấp phát điểm tách…………………………………………………… 28
Hình 4.1 Phân mảnh hỗn hợp…………………………………………………….32
Hình 4.2 Tái xây dựng phân mảnh hỗn hợp…………………………………… 32
Hình 5.1 Form màn hình chính khi chạy ứng dụng………………………………40
Hình 5.2 Chọn ứng dụng BEA……………………………………………………41
Hình 5.3 Giao diện thuật toán BEA………………………………………………41
Hình 5.4 Chọn giá trị thuộc tính………………………………………………….42
Hình 5.5 Nhập giá trị cho ma trân Use………………………………………… 42
Hình 5.6 Bảng thông báo giá trị nhập không hợp lệ…………………………… 43
Hình 5.7 Những giá trị ma trận Use không hợp lệ được tô màu đỏ…………… 43
Hình 5.8 Nhập giá trị cho ma trân Use………………………………………… 43
Hình 5.9 Bảng thông báo giá trị nhập không hợp lệ…………………………… 44
Hình 5.10 Những giá trị ma trận ACC không hợp lệ được tô màu đỏ………… 44
Hình 5.11 Ma trận ACC hợp lệ………………………………………………… 44
Hình 5.12 Ma trận AA……………………………………………………………45
Hình 5.13 Ma trận CA……………………………………………………………45

Hình 5.14 Phân quan hệ thành hai mảnh…………………………………………46
Bảng 5.15 Chọn tab About Bond…………………………………………………46
Hình 5.16 Bảng hướng dẫn sử dụng…………………………………………… 47
cvcv
TÀI LIỆU THAM KHẢO……………………………………………….48
Chương 1 – TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
Chương 1 - TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
Nội dung chương 1 trình bày tổng quan các khái niệm cơ bản về việc phân mảnh
dữ liệu trong mô hình CSDL phân tán, các vấn đề về phân mảnh dữ liệu.
1.1 Phân mảnh (Fragmentation)
Phân mảnh dữ liệu là việc chia các quan hệ trong một CSDL thành các quan hệ nhỏ
hơn. Các quan hệ này còn được gọi là các mảnh và được bố trí tại các site khác nhau.
1.2 Lý do phân mảnh
Trong thiết kế CSDL phân tán, sự 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ác bảng 2 chiều
và các truy vấn đối với CSDL được thực hiện trên các bảng. Tuy nhiên trong thực
tế, các ứng dụng chỉ thao tác trên tập con của các quan hệ. Vì vậy, việc xem tập
con 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ư một đơn
vị dữ liệu sẽ cho phép thực hiện nhiều giao dịch đồng thời. Mặc khác, việc phân
mảnh các quan hệ cũng cho phép thực hiện song song một câu truy vấn bằng cách
chia nó thành một tập các truy vấn con truy cập tới các mảnh. Vì vậy, việc phân
mảnh sẽ nâng cao hiệu năng xử lý song song, góp phần tăng lưu lượng hoạt động
của hệ thống.
Tuy nhiên, việc phân mảnh không chỉ có những ưu điểm mà còn có những hạn chế nhất
định như:
- Đồng bộ hóa mọi thay đổi trên các mảnh trong thời gian thực
- Đáp ứng chậm nhu cầu của các trạm trong trường hợp các phần mền ứng dụng
không được phân bố phù hợp với việc sử dụng chung.

- Những ứng dụng truy cập trên nhiều mảnh khác nhau sẽ làm giảm hiệu năng 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, đồng thời làm
tăng chi phí kết nối các mảnh.
- Khó kiểm soát tính toàn vẹn dữ liệu khi các mảnh được phân bố tại các site khác
nhau.
1.3 Các kiểu phân mảnh
Các quan hệ trong hệ quản trị CSDL được biểu diễn dưới dạng các bảng 2 chiều. Nên
có thể phân mảnh một quan hệ thành các quan hệ con khác nhau theo các mảnh khác
nhau. Có hai kiểu phân mảnh tương ứng với việc chia quan hệ theo chiều dọc và chiều
ngang của bảng.
CH1101098 – Nguyễn Ngọc Lâm Trang 10
N
Chương 1 – TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
Xét một CSDL mẫu mô hình hóa cho một công ty máy tính.
1.3.1 Bảng EMP
ENO ENAME TITLE
E1 J. Doe Elect. Eng
E2 M. Smith Syst. Anal
E3 A. Lee Mech. Eng
E4 J. Miller Programmer
E5 B. Casey Syst. Anal
E6 L. Chu Elect. Eng
E7 R. David Mech. Eng
E8 J. Jones Syst. Anal
Bảng 1.1 Bảng EMP
1.3.2 Bảng ASG
ENO PNO RESP TITLE
E1 P1 Manager 12
E2 P1 Anallyst 24
E2 P2 Anallyst 6

E3 P3 Consultant 10
E3 P4 Engineer 48
E4 P2 Programmer 18
E5 P2 Manager 24
E6 P4 Manager 48
E7 P3 Engineer 36
E8 P3 Manager 40
Bảng 1.2 Bảng ASG
1.3.3 Bảng PROJ
PNO PNAME BUDGET LOC
P1 Instrumentation 150000 Montreal
P2 Database Develop 135000 New York
P3 CAD/CAM 250000 New York
P4 Maintenance 310000 Paris
Bảng 1.3 Bảng PROJ
1.3.4 Bảng PAY
TITLE SAL
Elect. Eng 400000
Syst. Anal 340000
Mech. Eng 270000
Programmer 240000
CH1101098 – Nguyễn Ngọc Lâm Trang 11
Chương 1 – TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
Bảng 1.4 Bảng PAY
Các thuộc tính của CSDL bao gồm:
ENO: Mã số nhân viên
ENAME: Tên nhân viên
TITLE: Chức vụ trong công ty
SALE: Mức lương
RESP: Nhiệm vụ trong dự án

DUR: Thời gian được phân công trong dự án
PNO: Mã số dự án
PNAME: Tên dự án
BUDGET: Ngân sách dự án
LOC: vị trí các dự án
1.3.1 phân mảnh ngang
Phân mảnh ngang tức là quan hệ được chia theo chiều ngang. Thực chất đây chính
là phép chọn trong quan hệ, ta chọn những bộ của quan hệ thỏa một biểu thức đều
kiện cho trước.
Ví dụ 1.3.1: Giả sử ta có một yêu cầu phân mảnh quan hệ PROJ thành hai bảng
PROJ1 và PROJ2 sao cho một bảng chứa các dự án có ngân sách lớn hơn 200000 và
bảng còn lại chứa các dự án có ngân sách nhỏ hơn hoặc bằng 20000.
 Biểu thức đại số quan hệ của phép chọn ứng với biểu thức đều kiện ngân sách
của dự án lớn hơn 200000.
BUDGET > 200000(PROJ)
PROJ1
PNO PNAME BUDGET LOC
P3 CAD/CAM 250000 New York
P4 Maintenance 310000 Paris
Bảng 1.5 Bảng PROJ1
 Biểu thức đại số quan hệ của phép chọn ứng với biểu thức đều kiện ngân sách
của dự án nhỏ hơn hoặc bằng 200000.
BUDGET <= 200000(PROJ)
PROJ2
PNO PNAME BUDGET LOC
CH1101098 – Nguyễn Ngọc Lâm Trang 12
Chương 1 – TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
P1 Instrumentation 150000 Montreal
P2 Database Develop 135000 New York
Bảng 1.6 Bảng PROJ2

1.3.2 Phân mảnh dọc
Phân mảnh theo chiều dọc tức là quan hệ được chia theo chiều dọc, việc tạo ra các
quan hệ mới bằng cách chọn một vài thuộc tính trong quan hệ ban đầu. Thực chất đây
là phép chiếu trên tập con các thuộc tính quan hệ.
Ví dụ 1.3.2: Xét trên bảng PROJ ta phân thành hai bảng PROJ3 và PROJ4 sao cho
 Biểu thức đại số quan hệ của phép chiếu trên các thuộc tính PNO, PNAME,
LOC của bảng PROJ
PNO, PNAME, LOC(PROJ)
PROJ3
PNO PNAME LOC
P1 Instrumentation Montreal
P2 Database Develop New York
P3 CAD/CAM New York
P4 Maintenance Paris
Bảng 1.7 Bảng PROJ3
 Biểu thức đại số quan hệ của phép chiếu trên các thuộc tính PNO, BUDGET
của bảng PROJ
PNO, BUDGET(PROJ)
PROJ4
PNO LOC
P1 Montreal
P2 New York
P3 New York
P4 Paris
Bảng 1.8 Bảng PROJ4
Trong thực tế sự phân mảnh sẽ kết hợp cả hai loại phân mảnh lại với nhau và được
gọi là phân mảnh hỗn hợp. Mức độ phân mảnh tùy thuộc vào yêu cầu của ứng dụng,
phân mảnh quá lớn hay quá nhỏ cũng ảnh hưởng đến hiệu năng của truy vấn.
1.3.3 Mức độ phân mảnh
Phân mảnh CSDL đến mức độ nào là đủ, không ảnh hưởng đến hiệu năng trong

việc thực hiện truy vấn. Mức độ phân mảnh có thể là phân mảnh một quan hệ chưa
CH1101098 – Nguyễn Ngọc Lâm Trang 13
Chương 1 – TỔNG QUAN VỀ PHÂN MẢNH TRONG HỆ CSDL PHÂN TÁN
được phân mảnh, có thể phân mảnh một quan hệ đã được phân mảnh, có thể phân
mảnh theo chiều ngang hoặc theo chiều dọc.
Một mức độ phân mảnh thích hợp là làm tăng hiệu năng truy vấn đến hệ quản trị
CSDL.
1.3.4 Các quy tắc phân mảnh
Các quy tắc phân mảnh nhằm đảm bảo tính nhất quán của CSDL, đặc biệt về mặt
ngữ nghĩa của quan hệ.
1.3.4.1 Tính đầy đủ
Quan hệ R được phân thành các mảnh R
1
, R
2
, …, R
n
là đầy đủ nếu và chỉ nếu
mỗi mục dữ liệu trong R đều có thể tìm thấy trong quan hệ Ri nào đó.
1.3.4.2 Tính tái tạo
Nếu quan hệ R được phân rã thành các mảnh R
1
, R
2
, …, R
n
khi đó, sẽ tồn tại
một toán tử quan hệ sao cho:
R = Ri
1.3.4.3 Tính tách biệt

Nếu quan hệ R được phân rã thành các mảnh con R
1
, R
2
, …, R
n
khi đó:
 Đối với phân mảnh ngang mục d
i
nằm trong mảnh R
j
thì nó không nằm trong
mảnh R
k
với k j. Quy tắc này đảm bảo các mảnh tách rời nhau
 Trong trường hợp phân mảnh dọc, khóa chính của quan hệ phải được lập lại
trong tất cả các mảnh con, còn các thuộc tính khác phải tách rời.
CH1101098 – Nguyễn Ngọc Lâm Trang 14
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
ội dung chương này sẽ trình bày các phương pháp phân mảnh ngang và phương
pháp phân mảnh ngang dẫn xuất, đồng thời giới thiệu các thuật toán được sử dụng
trong phân mảnh ngang.
2.1 Phương pháp phân mảnh ngang
2.1.1 Giới thiệu
Phân mảnh ngang tức là quan hệ được chia theo chiều ngang. Kết quả của quá
trình phân mảnh ngang chính là các quan hệ con, số lượng quan hệ con phụ thuộc vào
đều kiện ràng buộc của các thuộc tính và các bộ trong quan hệ con là tách biệt nhau.
Phân mảnh ngang thực chất là phép chọn trong CSDL quan hệ thỏa mãn một biểu
thức đều kiện cho trước.

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ện trên các vị
từ của chính quan hệ đó.
 Phân mảnh ngang dẫn xuất: là phân mảnh ngang được thực hiện dựa trên các
vị từ của quan hệ khác.
2.1.2 Thông tin cần thiết của phân mảnh ngang
Để thực hiện phân mảnh ngang ta cần phải có những loại thông tin sau đây
2.1.2.1 Thông tin về CSDL
CH1101098 – Nguyễn Ngọc Lâm Trang 15
N
TITLE, SAL
PAY
ENO, ENAME, TITLE
EMP
PNO, PNAME, BUDGET, LOC
PROJ
ENO, PNO, RESP, DUR
ASG
L1
L2 L3
Hình 2.1 Mô tả mối quan hệ giữa các quan hệ bởi đồ thị có hướng
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Thông tin về CSDL có liên quan tới lược đồ dữ liệu toàn cục, chỉ ra mối liên
kết giữa các quan hệ. Nhìn chung mối quan hệ giữa các đối tượng trong CSDL
thường mô tả bằng các mối quan hệ một - một, một - nhiều và mối quan hệ nhiều -
nhiều. Ta mô hình hóa sự liên kết này bằng một đồ thị có hướng, mỗi nút ứng với
một quan hệ, đường nối có hướng giữ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.
Quan hệ tại điểm cuối của đường nối được gọi là quan hệ chủ nhân hay là quan hệ
đích (Owner) và các quan hệ tại điểm đầu được gọi là quan hệ thành viên hay còn

gọi là quan hệ nguồn (Member). Ta định nghĩa hàm Owner và Member từ tập các
đường nối đến tập các quan hệ.
Ví dụ 2.1.2.1 Mô hình hóa các quan hệ PAY, EMP, ASG, PROJ trong mô hình
hóa của công ty máy tính bằng một đồ thị có hướng như sau:
CH1101098 – Nguyễn Ngọc Lâm Trang 16
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Trong hình 2.1 mỗi chức vụ (Title) có 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
L
1
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 và được biểu diễn bằng hai đường nối có hướng L
2
, L
3
.
Các hàm Owner và Member được xác định như sau:
Owner(L
1
) = PAP, Menber(L
1
) = EMP
Owner(L
2
) = EMP, Menber(L
2
) = ASG
Owner(L
3

) = PROJ, Menber(L3) = ASG
Ký hiệu lực lượng của mỗi quan hệ R là Card(R).
2.1.2.2 Thông tin về ứng dụng
Thông tin về ứng dụng có hai loại: thông tin định tính dùng để phân mảnh và
thông tin định lượng dùng để cấp phát.
Thông tin định tính về cơ bản là các vị từ dùng trong các câu truy vấn, các vị từ
này được xây dựng dựa trên phân tích các ứng dụng.
Định nghĩa vị từ đơn: cho quan hệ R(A
1
, A
2
, …, A
n
), trong đó A
i
là thuộc tính
được định nghĩa trên một miền biến thiên D
i
, một vị từ đơn p
j
được định nghĩa trên
R có dạng:
CH1101098 – Nguyễn Ngọc Lâm Trang 17
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
P
j
: A
i
Value
Trong đó:

{<, , =, , >, }
Value D
i
Chúng ta sử dụng tập Pr
i
để chứa tất cả các vị từ đơn giản được định nghĩa trên
quan hệ R
i
.
Ví dụ 2.1.2.2 Xét quan hệ PROJ ta định nghĩa một số vị từ đơn giản như sau:
PNAME = “CAD/CAM”
BUDGET > 200000
(LOC = “New York”)
Trong thực tế các câu truy vấn là tổ hợp của rất nhiều vị từ đơn giản. Mỗi tổ hợp
được gọi là một vị từ hội sơ cấp.
Định nghĩa vị từ hội sơ cấp: cho tập Pr
i
= {p
i1
, p
i2, …,
p
im
} là các vị từ đơn giản trên
quan hệ R
i
, tập các vị từ hội sơ cấp M
i
= {m
i1

, m
i2
, …, m
iz
} được định nghĩa như
sau:
M
i
={M
ij
|M
ij
= }
Trong đó:
1 k m, 1 j z
= P
ik
hoặc = P
ik
Vì thế mỗi vị từ đơn giản có thể xuất hiện trong phủ định của một vị từ
Ví dụ 2.1.2.3 Xét một số vị từ đơn giản được định nghĩa trên quan hệ PAY.
P
1
: TITLE = “Elect. Eng”
P
2
: TITLE = “Syst. Anal”
CH1101098 – Nguyễn Ngọc Lâm Trang 18
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
P

3
: TITLE = “Mech. Eng”
P
4
: TITLE = “Programmer”
P
5
: SAL 300000
P
6
: SAL > 300000
Các vị từ hội sơ cấp được định nghĩa trên các vị từ đơn giản như sau:
m
1
: TITLE = “Elect. Eng” SAL 300000
m
2
: TITLE = “Elect. Eng” SAL > 300000
m
3
: ( TITLE = “Elect. Eng”) SAL 300000
m
4
: ( TITLE = “Elect. Eng”) SAL > 300000

Lưu ý: Các vị từ đơn giản cũng được coi là một bộ phận của các vị từ hội sơ cấp
và nếu chúng ta xây dựng vị từ hội sơ cấp một cách máy móc thì có một số trường
hợp vị từ hội sơ cấp vô nghĩa đối với quan hệ.
Các thông tin liên quan đến vị từ hội sơ cấp là độ tuyển hội sơ cấp và tần số truy
xuất

Độ tuyển hội sơ cấp: đo số lượng các bộ của quan hệ được truy xuất bởi câu truy
vấn sử dụng vị từ hội sơ cấp đó.
Tần số truy xuất: để chỉ tần số các ứng dụng truy xuất dữ liệu có sử dụng câu truy
vấn của vị từ hội sơ cấp.
2.2 Phân mảnh ngang nguyên thủy
Phân mảnh ngang nguyên thủy được định nghĩa bằng phép chọn trên quan hệ đích của
lược đồ CSDL.
Cho quan hệ R và các mảnh ngang được định nghĩa như sau:
R
i
=
Fi
(R), i = 1, 2, …, n
Trong đó Fi là biểu thức đại số quan hệ sử dụng một vị từ hội sơ cấp mi
Ví dụ 2.2.1 xét quan hệ PROJ và F
i
được định nghĩa như sau:
F1:={BUDGET 200000} và
CH1101098 – Nguyễn Ngọc Lâm Trang 19
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
F2:= {BUDGET > 200000}
Khi đó quan hệ PROJ được phân rã thành hai mảnh ngang PROJ1 và PROJ2 như sau
PROJ1 =
BUDGET

200000
(PROJ) và
PROJ2 = BUDGET > 200000(PROJ)
Một vấn đề được đặt ra là tập các vị từ hội sơ cấp dùng để phân mảnh có thể thay đổi khi
các ứng dụng hoạt động, sẽ gặp rất nhiều khó khăn khi miền xác định của thuộc tính là vô

hạn và liên tục. Chẳng hạn khi thêm một bộ mới vào quan hệ PROJ có BUDGET =
900000, khi đó ta phải xem xét là đặt nó vào PROJ2 hay phải xây dựng thêm một mảnh
mới PROJ3 và hạn chế PROJ2 .
PROJ2 = 200000 < BUDGET 500000(PROJ)
PROJ3 = BUDGET
>

500000
(PROJ)
Ví dụ 2.2.2 Xét quan hệ PROJ, các mảnh ngang sau đây được định nghĩa dựa vào vị trí
các dự án
PROJ1 = LOC = “Montreal”(PROJ)
PROJ2 = LOC = “New York”(PROJ)
PROJ3 =
LOC = “
Paris

(PROJ)
PROJ1
PNO PNAME BUDGET LOC
P1 Instrumentation 150000 Montreal
PROJ2
PNO PNAME BUDGET LOC
P2 Database Develop 135000 New York
P3 CAD/CAM 250000 New York
PROJ3
PNO PNAME BUDGET LOC
P4 Maintenance 310000 Paris
Bảng 2.1 Phân mảnh ngang cơ sở quan hệ PROJ
CH1101098 – Nguyễn Ngọc Lâm Trang 20

Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Phân mảnh ngang R
i
của quan hệ R gồm tất cả các bộ của R thỏa một vị từ hội sơ cấp m
i
.
Vì vậy, cho một tập M các vị từ hội sơ cấp, số lượng phân mảnh ngang của quan hệ R
bằng số lượng các vị từ hội sơ cấp. Tập phân mảnh ngang được gọi là tập các mảnh hội
sơ cấp. Định nghĩa phân mảnh ngang phụ thuộc vào vị từ hội sơ cấp, vì vậy cần phải xác
định các vị từ đơn tạo nên vị từ hội sơ cấp.
2.2.1 Tính đầy đủ và tính cực tiểu của vị từ đơn giản
Tập các vị từ đơn giản Pr là đầy đủ khi và chỉ khi xác suất truy cập bởi các ứng
dụng tới bộ bất kỳ của một mảnh hội sơ cấp bất kỳ được định nghĩa theo Pr là như
nhau. Vì vậy, phải sử dụng một tập vị từ đầy đủ làm cơ sở cho việc phân mảnh ngang.
Ví dụ 2.2.1.1 Trong ví dụ 2.1.2 nếu truy xuất theo vị trí thì P
PROJ
là đầy đủ vì các bộ
của các mảnh PROJ
i
, i = 1, 2, …, n đều có xác xuất truy cập bằng nhau. Tuy nhiên,
nếu có thêm ứng dụng truy cập các bộ theo BUDGET > 200000 thì P
PROJ
trở thành
không đầy đủ , để tập vị từ này đầy đủ ta cần phải thêm các vị từ BUDGET 200000
và BUDGET > 200000 vào tập vị từ Pr.
Ta có Pr sau khi thêm hai vị từ mới là: Pr = {LOC = “Montreal”, LOC =

New York

,

LOC = “Paris”, BUDGET 200000, BUDGET > 200000}.
Tính cực tiểu của tập vị từ: Nếu một vị từ f được phân mảnh thành các mảnh nhỏ hơn
f1 và f2 thì phải có ít nhất một ứng dụng truy cập đến f1 và f2 theo các cách khác
nhau. Khi đó ta nói rằng vị từ đơn giản f có tính liên đới, ảnh hưởng đến việc xác định
một phân mảnh. Nếu tất cả các vị từ của tập Pr đều có tính liên đới thì tập Pr được gọi
là cực tiểu.
Tính liên đới của vị từ đơn giản được định nghĩa như sau: Gọi m
i
và m
j
là hai vị từ hội
sơ cấp, vị từ hội sơ cấp m
i
chứa vị từ đơn giản p
i
và vị từ hội sơ cấp m
j
chứa vị từ đơn
giản p
j
. Gọi f
i
và f
j
là hai mảnh tương ứng được định nghĩa theo m
i
và m
j
. Khi đó p
i


có liên đới khi và chỉ khi:
=
Ví dụ 2.2.3 Tập Pr = {LOC = “Montreal”, LOC =

New York

, LOC = “Paris”,
BUDGET 200000, BUDGET > 200000} là tập vị từ đầy đủ và cực tiểu. Nếu ta thêm
vị từ PNAME = “CAD/CAM” vào tập Pr thì khi đó sẽ không còn đảm bảo tính cực
tiểu, vì vị từ thêm vào không có tính liên đới ứng với Pr do không có ứng dụng nào
truy xuất khác nhau đến các mảnh được tạo ra.
CH1101098 – Nguyễn Ngọc Lâm Trang 21
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
2.2.2 Thuật toán xác định tập vị từ đầy đủ và cực tiểu tử tập Pr cho trước
Thuật toán COM_MIN tạo ra một tập đầy đủ và tối tiểu các vị từ Pr từ một tập các
vị từ đơn giản Pr cho trước theo quy tắc một quan hệ hoặc một mảnh được phân
hoạch thành ít nhất hai thành phần và chúng được truy cập khác nhau bởi ít nhất một
ứng dụng.
Mảnh f
i
được định nghĩa thao một vị từ hội sơ cấp trên
Quy tắc 1: Quan hệ hay mảnh được phân thành ít nhất là hai thành phần khác nhau và
được ít nhất một ứng dụng truy cấp các bộ với xac suất khác nhau.
Thuật toán COM_MIN
Intput: R là quan hệ cần phân mảnh ngang cơ sở, Pr là tập các vị từ đơn giản
Output: Pr là tập các vị từ đơn giản và cực tiểu
Begin
Tìm một vị từ Pi Pr sao cho Pi phan hoạch R theo quy tắc 1
Pr  P

i
P
r
 P
r
– P
i
F  f
i
{f
i
là mảnh hội sơ cấp theo p
i
}
Do
Begin
Tìm một P
j
Pr sao cho P
j
phân hoạch một mảnh fk của Pr theo quy tắc 1
Pr  Pr P
j
Pr  Pr - P
j
F  F f
j
If P
k
Pr là một vị từ không có liên đới Then

Begin
Pr  Pr - P
k
F  F - P
k
End
CH1101098 – Nguyễn Ngọc Lâm Trang 22
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
End
Until Pr đầy đủ
End COM_MIN
Thuật toán thực hiện như sau:
- Bước 1: Bắt đầu bằng cách tìm một vị từ có liên đới và phân hoạch quan hệ đã
cho. Vòng lập do-until thêm các vị từ vào tập Pr và phải đảm bảo Pr là cực tiểu
và đầy đủ.
- Bước 2: Trong quá trình phân mảnh ngang cơ sở suy dẫn ra tập các vị từ hội sơ
cấp có thể được định nghĩa trên các vị từ trong tập Pr. Các vị từ hội sơ cấp này
xác định các mảnh cấp phát.
- Bước 3: Các vị từ hội sơ cấp có thể rất lớn bằng tỷ lệ hàm mũ theo số lượng
các vị từ đơn giản. Vì vậy, cần phải loại bỏ những mảnh không có ý nghĩa
bằng cách xác định những vị từ mâu thuẫn với tập các phép kéo theo.
2.2.3 Thuật toán phân mảnh ngang nguyên thủy
Thuật toán PHORIZONTAL
Input: R là quan hệ cần phân mảnh ngang cơ sở
Pr là tập các vị từ đơn giản
Output: M là tập các vị từ hội sơ cấp có nghĩa
Begin
Pr  COM_MIN(R, Pr)
Xác định tập M các vị từ hội sơ cấp
Xác định tập I các phép kéo theo giữa các P

i
Pr
For mỗi m
i
M do
If mi mâu thuẫn với I then
M  M - m
i
End if
End for
End PHORIZONTAL
CH1101098 – Nguyễn Ngọc Lâm Trang 23
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Ví dụ 2.2.3.1 Giả sử có một ứng dụng truy xuất trên quan hệ PAY, mẫu tin nhân viên
được lưu trữ tại hai nơi, một nơi quản lý thông tin các nhân viên có mức lương lớn
hơn 350000 và nơi kia là các nhân viên có lương từ 350000 trở xuống. Vì vậy, câu
truy vấn của ứng dụng sẽ được truy xuất ở cả hai nơi. Tập vị từ đơn giản dùng để
phân hoạch quan hệ PAY là:
P
1
= SAL 300000
P
2
= SAL > 300000
Ta có tập vị từ đơn giản khởi đầu là Pr = {p
1
, p
2
}. Áp dụng thuật toán COM_MIN với
i = 1 làm giá trị khởi đầu tạo ra Pr = {p

1
} là đầy đủ và cực tiểu vì p
2
không phân hoạch
f
1
là mảnh hội sơ cấp được sinh ra từ p
1
. Vậy chúng ta có các vị từ hội sơ cấp sau:
m
1
: SAL 300000
m
2
: ( SAL 300000) SAL > 300000
cuối cùng ta có các mảnh nguyên thủy của PAY được phân hoạch theo m
1
và m
2
Bảng 2.2 Phân mảnh ngang cho quan hệ PAY
Ví dụ 2.3.2.2 Giả sử có hai ứng dụng trên quan hệ PROJ. Ứng dụng thứ nhất xác định
tên dự án và ngân sách dự án trên 3 vị trí
SELECT PNAME, BUDGET
FROM PROJ
WHERE LOC = Vlue
Trong ứng dụng này các vị từ đơn giản có thể sử dụng là:
p
1
: LOC = “Montreal”
p

2
: LOC = “New York”
p
3
: LOC = “Paris”
CH1101098 – Nguyễn Ngọc Lâm Trang 24
PAY2
TITLE SAL
Elect. Eng 400000
Syst. Anal 340000
PAY1
TITLE SAL
Mech. Eng 270000
Programmer 240000
Chương 2 – GIỚI THIỆU PHƯƠNG PHÁP PHÂN MẢNH NGANG
Ứng dụng thứ hai liên quan đến các dự án có ngân sách nhỏ hơn hoặc bằng 200000 và
các dự án có ngân sách lơn hơn 200000. Vì vậy, các vị từ đơn được sử dụng để phân
mảnh thứ hai là:
P
4
: BUDGET 200000
p
5
: BUDGET > 200000
Sử dụng thuật toán COM_MIN kiểm tra tập Pr = {p
1
, p
2
, p
3

, p
4
, p
5
} là đầy đủ và cực
tiểu. Có thể định nghĩa sáu vị từ hội sơ cấp tạo ra M dựa trên Pr như sau:
m
1
: (LOC = “Montreal”) (BUDGET 200000)
m
2
: (LOC = “Montreal”) (BUDGET > 200000)
m
3
: (LOC = “New York”) (BUDGET 200000)
m
4
: (LOC = “New York”) (BUDGET > 200000)
m
5
: (LOC = “Paris”) (BUDGET 200000)
m
6
: (LOC = “Paris”) (BUDGET > 200000)
Kết quả phân mảnh ngang cơ sở tạo ra sáu mảnh PROJ = {PROJ1, PROJ2, PROJ3,
PROJ4, PROJ5, PROJ6} theo các vị từ hội sơ cấp M. Trong đó, các mảnh PROJ2 và
PROJ5 bằng rỗng.
PROJ1
PNO PNAME BUDGET LOC
P1 Instrumentation 150000 Montreal

PROJ3
PNO PNAME BUDGET LOC
P2 Database Develop 135000 New York
PROJ4
PNO PNAME BUDGET LOC
P3 CAD/CAM 250000 New York
PROJ6
PNO PNAME BUDGET LOC
CH1101098 – Nguyễn Ngọc Lâm Trang 25

×