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

giải các bài toán trên cây toán tử đường ống bằng ma trận đặc trưng

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 (825.7 KB, 68 trang )





ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG





NGUYỄN QUANG THẮNG








GIẢI CÁC BÀI TOÁN TRÊN CÂY TOÁN TỬ ĐƯỜNG ỐNG BẰNG
MA TRẬN ĐẶC TRƯNG








th¹c sÜ khoa häc m¸y tÝnh











Th¸i Nguyªn – 2012

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT & TRUYỀN THÔNG





NGUYỄN QUANG THẮNG





GIẢI CÁC BÀI TOÁN TRÊN CÂY TOÁN TỬ ĐƯỜNG ỐNG
BẰNG MA TRẬN ĐẶC TRƯNG



Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 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 – 2012

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



i
LỜI CAM ĐOAN

Tôi xin cam đoan bản luận văn này là công trình nghiên cứu của riêng
tôi, không sao chép ở bất kỳ công trình khoa học nào trƣớc đây. Các kết quả
nêu trong luận văn có nguồn gốc rõ ràng và đƣợc trích dẫn đầy đủ. Nếu có gì
sai, tôi xin chịu hoàn toàn trách nhiệm.

Học viên



Nguyễ n Quang Thắng



















Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



ii


MỤC LỤC



Trang
MỞ ĐẦU 1
CHƢƠNG 1: CƠ SỞ LÝ THUYẾT 2
1.2. Các kiểu phân mảnh 4
1.2.1. Phân mảnh ngang 4
1.2.2. Phân mảnh dọc 18
1.2.3. Phân mảnh hỗn hợp 21
1.4. Kết luận chƣơng 1 22
CHƢƠNG 2: CÂY POT VÀ CÁC THUẬT TOÁN XỬ LÍ TRÊN POM 24
2.1 Thể hiện cây toán tử với các phép toán đại số quan hệ. 24
2.1.1. Định nghĩa cây toán tử 24
2.1.2. Các phép toán đại số quan hệ 28
2.1.3. Các bƣớc thể hiện cây toán tử 29
2.2. Giới thiệu POT 30
2.3. Phƣơng pháp chuyển POT sang POM 30
2.4. Một số định nghĩa tƣơng đƣơng giữa POT và POM 33
2.5. Các thuật toán trên POM 36
2.5.1. Thuậ t toá n gộ p 36
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



iii
2.5.2. Thuậ t toá n tá ch ……………………………………………………….38
2.5.3. POM tiền xử lí 41
2.6. Kết luận chƣơng 2 44
CHƢƠNG 3: ỨNG DỤNG GIẢI MỘT SỐ BÀI TOÁN THỰC TẾ 45
3.1. Giới thiệu bài toán lập lịch 45

3.2. Nhát cắt cục bộ 45
3.3. Cân bằng tải và phân chia công việc 48
3.4. Bài toán minh họa 49
3.5. Kết luận chƣơng 3 55
KẾT LUẬN 56
TÀI LIỆU THAM KHẢO 57

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



iv
DANH MỤC CÁC KÍ HIỆU
CÁC KÍ HIỆU
Ý NGHĨA


Phép giao


Phép hợp


Kí hiệu không thuộc


Kí hiệu thuộc
+
Phép cộng
-

Phép trừ
X
Tích đề các

Phép nối


Phép chiếu


Tê ta
>
Phép so sánh lớn hơn
<
Phép so sánh nhỏ hơn


Phép so sánh lớn hơn hoăc bằng


Phép so sánh nhỏ hơn hoăc bằng
\
Phép chia
*
Phép nhân
AND
Phép và
OR
Phép hoặc



Tập rỗng


Phủ định
=
Phép bằng


Phép chọn


Kí hiệu với mọi


Pi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



v
DANH MỤC CÁC CHỮ VIẾT TẮT

CF Certainty Factor (Nhân tố chắc chắn)
CSDL Cơ sở dữ liệu
DDBM Distributed Database Managerment (Hệ quả n trị CSDL phân tá n)
FD Functional Dependancy (Phụ thuộc hàm)
GCS Global Conception Schema (Khái niệm lƣợc đồ toàn cục)
LCS Local Conception Schema (Khái niệm lƣợc đồ địa phƣơng)
LTM Long Term Memory (bộ nhớ vĩ nh cƣ̉ u)

MB Measure of Belief (Độ chắn chắn)
MD Measure of Disbelief (Độ không chắc chắn)
POM Pipelined Operator Matrix (Ma trận đặc trƣng)
POT Pipelined Operator Tree (Cây toán tử đƣờng ống)
SQL Structured Query Langguage (Ngôn ngữ truy vấn có cấu trúc)
STM Short Term Memory (bộ nhớ tạ m thờ i)
IP Isomorphous (Ma trận liền kề)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



vi
DANH MỤC CÁC BẢNG BIỂU

Trang
Bảng 1.1. Quan hệ NhanVien 2
Bảng 1.2. Quan hệ DuAn 3
Bảng 1.3. Quan hệ TraLuong 3
Bảng 1.4. Quan hệ PhanNhiem 4
Bảng 1.5. Mảnh ngang DuAn
H1
6
Bảng 1.6. Mảnh ngang DuAn H2 6
Bảng 1.7. Mảnh ngang DuAn H3 6
Bảng 1.8. TraLuong
1
10
Bảng 1.9. TraLuong
2
11

Bảng 1.10. Bảng các vị từ hội sơ cấp 13
Bảng 1.11. TraLuong
1
14
Bảng 1.12. TraLuong
2
15
Bảng 1.13. Mảnh dẫn xuất NhanVien
1
15
Bảng 1.14. Mảnh dẫn xuất NhanVien
2
15
Bảng 1.15. Mảnh dẫn xuất ASGDanxuat1 tƣơng ứng với DuAnH1 16
Bảng 1.16. Mảnh dẫn xuất ASGDanxuat2 tƣơng ứng với DuAnH3 16
Bảng 1.17. Mảnh dẫn xuất ASGDanxuat3 tƣơng ứng với DuAnH4 17
Bảng 1.18. Mảnh dẫn xuất ASGDanxuat4 tƣơng ứng với DuAnH6 17
Bảng 2.1. POM tƣơng ứng với POT 32
Bảng 2.2. Bảng POM 33
Bảng 2.3. Bảng POM truyền thông lớn 35
Bảng 2.4. Bảng POM tiền xử lý 35
Bảng 2.5. Bảng POM tƣơng ứng với POT 37
Bảng 2.6. Bảng POM gop(1,6) và gop (9,11) 37
Bảng 2.7. Bảng POM
1
38
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




vii
Bảng 2.8. Bảng POM
2
39
Bảng 2.9. Bảng POM
3
39
Bảng 2.10. Bảng POM
2#
40
Bảng 2.11. Bảng POM
2a
40
Bảng 2.12 Bảng POM
1a
40
Bảng 2.13. Bảng POM
3a
41
Bảng 2.14. Bảng POM có trọng số lớn 42
Bảng 2.15. Bảng POM tiền xử lý 42
Bảng 2.16. Bảng POM có trọng số lớn 43
Bảng 2.17. Bảng POM tiền xử lý 44
Bảng 3.1. Bảng dữ liệu POM 50
Bảng 3.2. Bảng POM tiền xử lý tƣơng ứng 51
Bảng 3.3. Bảng POM 1 52
Bảng 3.4. Bảng POM 2 52
Bảng 3.5. Bảng POM 3 52
Bảng 3.6. Bảng POM 4 53
Bảng 3.7. Bảng POM 5 53

Bảng 3.8. Bảng POM 6 53
Bảng 3.9. Bảng POM 7 54
Bảng 3.10. Bảng thu gọn 54
Bảng 3.11. Bảng chia việc lần một 55
Bảng 3.12. Bảng chia việc lần hai 55
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



viii
DANH MỤC CÁC HÌNH

Trang
Hình 1.1. Biểu diễn mối liên hệ giữa các quan hệ nhờ các đƣờng nối 5
Hình 1.2. Đồ thị nối giữa các mảnh 14
Hình 1.3. Ma trận mẫu về giá trị sử dụng thuộc tính 21
Hình 1.4. Phân mảnh hỗn hợp 22
Hình 1.5. Tái thiết các mảnh hỗn hợp 22
Hình 1.6. Ví dụ về một cây toán tử 25
Hình 2.1. Cây POT 32
Hình 2.2 POT
s
tƣơng ứng 39
Hình 2.3 Cây POT tƣơng ứng POM 42

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



1

MỞ ĐẦU

Khi cần xử lý một vấn đề nào đó bằng máy tính, nếu vấn đề có thể chia nhỏ
đƣợc và các phần đó đƣợc thực hiện song song thì sẽ rút ngắn thời gian hoàn
thành, tiết kiệm các chi phí tiềm năng, giải quyết đƣợc các vấn đề lớn và phức tạp.
Các kiến trúc máy tính hiện tại đang ngày càng dựa vào khả năng song
song hóa phần cứng để cải thiện hiệu suất nhƣ: Có nhiều đơn vị thực hiện, dùng
các chỉ lệnh đƣờng ống (Pipelined Instructions), đa nhân (Multi-core). Hơn nữa
các thiết bị phần cứng hiện rất sẵn có và rẻ tiền.
Giải các bài toán trên cây toán tử đƣờng ống đã đƣợc sử dụng để giải các
vấn đề lớn, phức tạp nhƣ dự báo thời tiết, mô hình sinh thái Và việc lập lịch tối
ƣu cho cây toán tử đóng góp một phần không nhỏ trong mục đích đó.
Cây toá n tƣ̉ mà mộ t số toá n tƣ̉ củ a nó có thể thƣ̣ c hiệ n song song , vớ i dƣ̃
liệ u ra củ a toá n tƣ̉ nà y có thể là dƣ̃ liệ u và o củ a toá n tƣ̉ kia đƣợ c gọ i là cây toá n
tƣ̉ dạ ng đƣờ ng ố ng POT (Pipelined Operator Tree). Mộ t cây toá n tƣ̉ tƣơng ƣ́ ng
mộ t – mộ t vớ i mộ t ma trậ n đặc trƣng nxn . Nhƣ vậy, POT cũng sẽ tƣơng ứng
một - một vớ i một ma trận đặc trƣng mà ta gọ i là POM (Pipelined Operator
Matrix). Khi đã có POM, các Xử lí trên POT nhƣ cân bằ ng tả i, lập lị ch truy vấ n
tố i ƣu, thực hiện các nhát cắt cục bộ, phân phối các toán tử cho các bộ Xử lý,
đƣợ c thƣ̣ c hiệ n trên POM. Xử lí trên POM tức là Xử lý trên mảng (ma trận) sẽ
đơn giản và thuận lợi hơn rất nhiều so với POT.
Phƣơng pháp giải các bài toán trên cây toán tử đƣờng ống bằng ma trận
đặc trƣng có nhiều ứng dụng nhƣ: chấm thi trắc nghiệm, ngân hàng, xử lý các
thông tin về thiên tai, an ninh,


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




2
CHƢƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Giới thiệu
Chƣơng này trình bày các khái niệm cơ bản, các định nghĩa và các thuật
toán,… .Sẽ đƣợc sử dụng trong các chƣơng của luận văn sau này. Đó là:
Khái niệm về mảnh (quan hệ con) và các kiểu phân mảnh:
- Phân mả nh ngang,
+ Phân mảnh ngang nguyên thuỷ
+ Phân mảnh ngang dẫn xuất
- Phân mả nh dọ c,
- Phân mảnh hỗn hợp.
Để thuận lợi cho việc nghiên cứu, chúng ta xét CSDL quan hệ của công ty
nhƣ sau:
Quan hệ NhanVien(MaNV, TenNV, TrinhDoCM)
Trong đó NhanVien là tên quan hệ nhân viên, MaNV là mã nhân viên,
TenNV là tên nhân viên, TrinhDoCM là trình độ chuyên môn. Và dữ liệu giả
định nhƣ bảng 1.1:

MaNV
TenNV
TrinhDoCM
NV1
NV2
NV3
NV4
NV5
NV6
NV7
NV8
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ệfaa
Lê Hồng Hạnh
Nguyễn Trƣờng Tâm
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
Bảng 1.1. Quan hệ NhanVien
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



3

Quan hệ DuAn(MaDuAn, TenDuAn, NganSach, ViTri)
Trong đó MaDuAn là mã dự án; TenDuAn là tên dự án và NganSach là ngân
sách dự án, ViTri là vị trí triển khai dự án. Và dữ liệu giả định nhƣ bảng 1.2:

Quan hệ TraLuong(TrinhDoCM, Luong)
Trong đó Luong là tiền lƣơng trả cho nhân viên. Và dữ liệu giả định nhƣ
bảng 1.3:
Quan hệ PhanNhiem (MaNV, MaDuAn, ChucVu, ThoiGianLV)

MaD
uAn
TenDuAn
NganSac
h
ViTri
DA1
DA2
DA3
DA4
Thiết bị đo đạc
Phát triển CSDL
CAD/ CAM
Bảo dƣỡng
150000
135000
250000
310000
Hải Phòng
Hà Nội
Hà Nội
TP.Hồ Chí Minh
Bảng 1.2. Quan hệ DuAn
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
40000

34000
27000
24000
Bảng 1.3. Quan hệ TraLuong
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



4
Trong đó PhanNhiem là phân công nhiệm vụ: Phân công nhân viên có
MaNV làm tại dự án có MaDuAn, thời gian làm, với nhiệm vụ. ChucVu là giữ
chức vụ. Và dữ liệu giả định nhƣ sau:
Bảng 1.4. Quan hệ PhanNhiem
1.2. Các kiểu phân mảnh
Thể hiện của các quan hệ chính là các bảng, vì thế vấn đề là tìm những
kiểu khác nhau để chia một bảng thành nhiều bảng con khác nhau.
Các cách phân mảnh cơ bản là: Phân mảnh ngang, phân mảnh dọc và phân
mảnh hỗn hợp.
1.2.1. Phân mảnh ngang
Yêu cầu thông tin của 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ác quan hệ sẽ kết lại với nhau
nhƣ thế nào. Trong mô hình quan hệ, liên kết giữa các quan hệ cũng đƣợc biểu thị
bằng 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.
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV1

NV2
NV2
NV3
NV3
NV4
NV5
NV6
NV7
NV8
DA1
DA1
DA2
DA3
DA4
DA2
DA2
DA4
DA3
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ế
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
12

24
6
10
48
18
24
48
36
40
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



5
Chẳng hạn trên hình 1.1, hƣớng của các đƣờng nối cho biết mối quan hệ
một - nhiều. Chẳng hạn nhiều nhân viên có cùng “trình độ chuyên môn”, vì thế
có đƣờng nối hƣớng từ quan hệ TraLuong đến quan hệ NhanVien là 1-n. Tƣơng
tự cho Traluong, Nhanvien; DuAn và PhanNhiem. Còn quan hệ n-n là giữa
(Nhanvien, DuAn) và PhanNhiem.
Quan hệ nằm tại đầu của đƣờng nối đƣợc gọi là chủ nhân và quan hệ tại
cuối đƣờng nối gọi là thành viên. Chúng ta hãy định nghĩa hai hàm: Owner (chủ
nhân) và Member (thành viên), chúng là các ánh xạ từ tập các đƣờng nối đến tập
các quan hệ. Cho trƣớc một đƣờng nối chúng sẽ trả về quan hệ thành viên hoặc
quan hệ chủ chủ nhân của đƣờng nối.( xem hình vẽ 1.1 )

Hình 1.1. Biểu diễn mối liên hệ giữa các quan hệ nhờ các đƣờng nối
Từ hình 1.1 ta có các hàm Owner và Member nhƣ sau:
Owner (l
1
) = TraLuong, Member (l

1
)= NhanVien
Owner (l
2
) = NhanVien, Member (l
2
) = PhanNhiem
Owner (l
3
) = DuAn, Member (l
3
) = PhanNhiem
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.
1.2.1.1. Phân mảnh ngang nguyên thủy
Phân mảnh ngang nguyên thuỷ: Phân mảnh ngang nguyên thuỷ một quan
hệ đƣợc thực hiện dựa trên các vị từ đƣợc định nghĩa trên quan hệ đó.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



6
Mảnh ngang nguyên thuỷ đƣợc tạo ra bằng một thuật toán chọn trên các
quan hệ chủ nhân của một lƣợc đồ CSDL. Vì thế biết quan hệ Ri là:
R
i
= 
Fi
(R), 1≤ i ≤ z
Trong đó F

i
là công thức chọn đƣợc sử dụng để có đƣợc mảnh R
i
. Chú ý
rằng F
i
là một vị từ hội sơ cấp (m
i
).
Ví dụ:
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)
Các mảnh thu đƣợc trình bày trong các bảng 1.5, 1.6, 1.7:


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

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

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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



7
Bây giờ chúng ta có thể định nghĩa mảnh ngang chặt chẽ hơn. 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
.
Vì vậy cho một tập các vị tập vị từ hội sơ cấp M, số lƣợng các mảnh ngang này
cũng thƣờng đƣợc gọi là các mảnh hội sơ cấp. Vì thế bƣớc đầu tiên của thuật
toán phân mảnh ngang phụ thuộc vào các vị từ sơ cấp.
Một số tính chất quan trọng của tập các vị từ đơn giản là: tính đầy đủ, tính
liên đới và tính cực tiểu.
Tính đầy đủ
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 truy xuất đến một bộ bất kỳ thuộc về một mảnh hội sơ cấp nào đó
đƣợc định nghĩa theo Pr đều bằng nhau.
Ví dụ :
Xét quan hệ DuAn và các mảnh ngang. Nếu ứng dụng duy nhất truy suất
đến quan hệ DuAn, muốn truy suất của bộ theo vị trí, tập vị trí này là đầy đủ bởi
vì các bộ của mảnh DuAn

Hi
điều có sác xuất truy xuất nhƣ nhau. Tuy nhiên nếu
có một ứng dụng thứ hai chỉ truy xuất các dự án có ngân sách trên 200,000 USD
thì Pr không đầy đủ, 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
truy xuất nhiều hơn các bộ cồn lại. Để cho tập vị từ Pr là đầy đủ, chúng ta cần
phải thêm các vị từ (NganSach ≤ 200000, DuAn > 200000) vào Pr. Tức là
Pr = {ViTri = ”Hải Phòng”, ViTri = “Hà Nội”, ViTri = “ TP.Hồ Chí Minh ”
NganSach ≤ 200000, NganSach > 200000}
Lý do cần phải đảm bảo tính đầy đủ là vì mảnh thu đƣợc theo tập vị từ đầy
đủ sẽ nhất quán về mặt logic do tất cả chúng đều thỏa mãn vị từ hội sơ cấp.
Chúng cũng đồng nhất về mặt thống kê theo cách mà ứng dụng truy xuất chúng.
Vì thế chúng ta sẽ dùng một tập vị từ đầy đủ làm cơ sở cho phân mảnh ngang sơ cấp.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



8
Tính liên đới
Tính liên đới của P
R
: Khẳng định rằng nếu biết đƣợc một vị từ ảnh hƣởng
đến cách thực hiện phân mảnh (nghĩa là khiến cho mảnh F bị phân nhỏ hơn

thành các mảnh F
i
và F
j
, thì ta có ít nhất một ứng dụng truy xuất đến F
i
và F
j
theo những cách khác nhau. Nói cách khác, vị từ đơn giản phải có liên đới với
vị từ phân mảnh.
Tính 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.
Thuật toán COM_MIN sau đây sẽ 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 COM_MIN
Vào: R là quan hệ, P
R


tập các vị từ đơn giản.
Ra: P
R
'
là tập các vị từ đầy đủ.
F: tập các mảnh hội sơ cấp
Begin

Tìm p
i

P
R
sao cho p
i
phân hoạch theo R theo Quy tắc 1
'

P
R
'

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 p
j

P
R
sao cho p
j
phân hoạch mảnh F
k
của P
R
' theo Quy tắc1
P
R
'


P
R
'

p
j

P
R



P
R
- p
j
F


F

F
i
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



9
If

p
k

P
R
', một vị từ không có liên đới Then
Begin

P
R
'


P
R
' - p
k
F


F - F
k

End
End-if
End_Begin
Until P
R
' đầy đủ
End. {Kết thúc thuật toán COM_MIN}
Thuật toán bắt đầu 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 này, bảo đảm tính cực tiểu tại
mỗi bƣớc vì thế vào cuối vòng lặp, tập P
R
’ là cực tiểu và đầy đủ.
Bƣớc thứ hai trong quá trình thiết kế phân mảnh ngang nguyên thuỷ là suy
dẫn ra tập các vị từ hội sơ cấp có thể định nghĩa trên các vị từ trong tập P
R

'.
Bƣớc thứ ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa. [4]
Thuật toán PHORIZONTAL chỉ ra cách tìm tập vị từ hội sơ cấp để phân
mảnh ngang nguyên thuỷ quan hệ R, và P
R
là tập các vị từ đơn giản đã đƣợc xác
định theo các ứng dụng trên quan hệ R:
Thuật toán PHORIZONTAL
Vào: R là quan hệ; Pr là tập các vị từ đơn giản
Ra: M là tập các vị từ hội sơ cấp không mâu thuẫn với phép kéo theo I
Begin
Pr'


COM_MIN(R,Pr)
Tạo ra tập M gồ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'


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



10
For mỗi m
i


M do
If m
i
mâu thuẫn với I then
M

M

m
i

End If
End For
End. {PHORIZONTAL}
Ví dụ:
Xét hai quan hệ TraLuong và DuAn.
Tập vị từ đơn giản đƣợc sử dụng để phân hoạch quan hệ TraLuong là
p
1
: Luong  30000
p
2
: Luong > 30000
Vì vậy cho ra tập các vị từ đơn giản khởi đầu là P
R
= {p
1
, p
2
}. Áp dụng

thuật toán COM_MIN với i = 1 làm giá trị khởi đầu sinh ra Pr’ = {p
1
}. Đây là
tập đầy đủ và cực tiểu vì p
2
không phân hoạch F
1
(là mảnh đƣợc vị từ hội sơ cấp
ứng với p
1
tạo ra) theo Quy tắc 1. Chúng ta có thể tạo ra các vị từ hội sơ cấp sau
đây làm các phần tử của M:
m
1
: Luong  3000
m
2
:  (Luong  3000) = Luong > 3000
M = {m
1
, m
2
}

Sau đó chúng ta phân mảnh quan hệ TraLuong thành hai mảnh F
s
=
{TraLuong
1
, TraLuong

2
} theo M nhƣ bảng 1.8 sau:
TrinhDoCM
Luong
Kỹ sƣ cơ khí
Lập trình viên
27000
24000
Bảng 1.8. TraLuong
1


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



11
Và bảng TraLuong
2
nhƣ bảng 1.9:
TrinhDoCM
Luong
Kỹ sƣ điện
Phân tích và thiết kế hệ thống
40000
70000
Bảng 1.9. TraLuong
2

Chúng ta hãy xét quan hệ DuAn. Giả sử rằng có hai ứng dụng, ứng dụng

đầu tiên đƣợc đƣa ra tại ba vị trí cần tìm tên dự án và ngân sách của các dự án
khi cho biết vị trí. Theo ký pháp SQL câu vấn tin đƣợc viết là:
SELECT TenDuAn, NganSach
FROM DuAn
WHERE ViTri = Giá trị (của vị trí)
Đối với ứng dụng này, các vị từ đơn giản có thể đƣợc dùng là:
p
1
: ViTri = “Hải Phòng”
p
2
: ViTri = “Hà Nội”
p
3
: ViTri = “TP.Hồ Chí Minh ”

Ứng dụng thứ hai đƣợc đƣa ra tại hai vị trí và phải do Ban điều hành dự án
đƣa ra. Những dự án có ngân sách dƣới 200000 đƣợc quản lý tại một vị trí, còn
những dự án có ngân sách lớn hơn đƣợc quản lý tại vị trí thứ hai. Vì thế các vị từ
đơn giản phải đƣợc sử dụng để phân mảng theo ứng dụng thứ hai là:
p
4
: NganSach  200000
p
5
: NganSach > 200000
Nếu kiểm tra bằng thuật toán COM_MIN, tập Pr‟ = {p
1
, p
2

, p
3
, p
4
, p
5
} rõ
ràng là đầy đủ và cực tiểu.
Dựa trên Pr’, chúng ta có thể định nghĩa sáu vị trí từ hội sơ cấp sau đây tạo ra M:
m
1
: (ViTri = “Hải Phòng”)  (NganSach  200000)
m
2
: (ViTri = “Hải Phòng”)  (NganSach > 200000)
m
3
: (ViTri = “Hà Nội”)  (NganSach 200000)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



12
m
4
: (ViTri = “Hà Nội”)  (NganSach >200000)
m
5
: (ViTri = “TP.Hồ Chí Minh ”)  (NganSach  200000)
m

6
: (ViTri = “TP.Hồ Chí Minh ”)  (NganSach > 200000)
Đây không phải là các vị từ hội sơ cấp duy nhất có thể đƣợc tạo ta. Chẳng
hạn vẫn có thể định nghĩa các vị từ
p
1
 p
2
 p
3
 p
4
 p
5

Tuy nhiên các phép kéo hiển nhiên là
i
1
: p
1
  p
2
  p
3
i
2
: p
2
  p
1

  p
3
i
3
: p
3
  p
1
  p
2
i
4
: p
4
  p
4
  p
5
i
5
: p
5
  p
4

i
6
: p
4
 p

5
i
7
: p
5
 p
4
cho phép loại bỏ những vị trí từ hội sơ cấp này và chúng ta còn lại m
1
đến m
6
.
Xem xét thể hiện của CSDL trong Hình 1.1, chúng ta có thể cố gắng chứng
tỏ rằng các phép kéo theo dƣới đây đúng:
i
8
: ViTri = “Hải Phòng”   (NganSach > 20000)
i
9
: ViTri = “TP.Hồ Chí Minh ”   (NganSach  20000)
i
10
:  (ViTri = “Hải Phòng”)  NganSach  20000
i
11
:  (ViTri = “TP.Hồ Chí Minh ”)  NganSach > 20000
Tuy nhiên cần nhớ rằng các phép kéo theo phải đƣợc định nghĩa theo ngữ
nghĩa của CSDL, không phải theo các giá trị hiện tại. Một số mảnh đƣợc định
nghĩa theo M = {m
1

, …, m
6
} có thể rỗng nhƣng chúng vẫn là các mảnh. Qua ngữ
nghĩa của CSDL không có bằng chứng nào cho thấy rằng các phép kéo theo từ i
s

đến i
11
là đúng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



13
Kết quả của phân mảnh ngang nguyên thuỷ cho DuAn là tạo ra sáu mảnh
F
DuAn
= {DuAn
H1
, DuAn
H2
, DuAn
H3
, DuAn
H4
, DuAn
H5
, DuAn
H6
} của quan hệ

DuAn theo các vị từ hội sơ cấp M nhƣ sau (Chúng ta cũng cần chú ý rằng có
một số mãnh rỗng (DuAn
H2
, DuAn
H5
) và vì thế không đƣợc trình bày trong
Bảng 1.10):
DuAn
H1

MaDuAn
TenDuAn
NganSach
ViTri
DA1

Thiết bị đo đạc
15000
Hải Phòng

DuAn
H3

MaDuAn
TenDuAn
NganSach
ViTri
DA2
Database Develop
135000

Hà Nội

DuAn
H4

MaDuAn
TenDuAn110
NganSach
ViTri
DA3
CAD/CAM
250000
Hà Nội
DuAn
H6

MaDuAn
TenDuAn
NganSach
ViTri
DA4
Bảo dƣỡng
31000
TP.Hồ Chí Minh
Bảng 1.10. Bảng các vị từ hội sơ cấp
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



14

1.1.1.2. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất: Phân mảnh ngang dẫn xuất là phân mảnh một
quan hệ dựa vào các vị từ đƣợc định nghĩa trên quan hệ chủ (Parent).
Nếu cho trƣớc một đƣờng lối L, trong đó owner(L) = S và member(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ụ: Xét đƣờng nối l
1
trong Hình 1.1, owner(l
1
) = TraLuong và
member(l
1

) = NhanVien. Thế thì chúng ta có thể nhóm các kỹ sƣ thành hai
nhóm tuỳ theo lƣơng: nhóm có lƣơng từ 30000 USD trở xuống và nhóm có
lƣơng trên 30000 USD. Trƣớc hết chúng ta phân mảnh quan hệ TraLuong thành
2 mảnh thoả mãn yêu cầu trên: TraLuong
1
, TraLuong
2
. Sau đó chúng ta phân
mảnh quan hệ NhanVien theo các mảnh trên, chúng ta sẽ đƣợc 2 mảnh ngang
dẫn xuất là NhanVien
1
, NhanVien
2
hình 1.2.

Hình 1.2. Đồ thị nối giữa các mảnh
TrinhDoCM
Luong
Kỹ sƣ cơ khí
Lập trình viên
27000
24000
Bảng 1.11. TraLuong
1


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




15
TrinhDoCM
Luong
Kỹ sƣ điện
Phân tích và thiết kế hệ thống
40000
70000
Bảng 1.12. TraLuong
2
Kết quả phân mảnh đƣợc trình bày trong bảng 1.13 và 1.14 nhƣ sau:
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 1.13. Mảnh dẫn xuất NhanVien
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 1.14. Mảnh dẫn xuất NhanVien
2
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ệ chủ (chẳng hạn TraLuong
1
và TraLuong
2
), quan hệ
thành viên, tập các vị từ nối nửa giữa chủ nhân và thành viên (chẳng hạn
NhanVien.TrinhDoCM = TraLuong.TrinhDoCM).
Trong lƣợc đồ CSDL, chúng ta đã gặp nhiều đƣờng nối đến một quan hệ R
(ví dụ nhƣ trong hình 1.1, PhanNhiem có hai đƣờng nối đến). Nhƣ thế có thể có
nhiều cách phân mảnh ngang dẫn xuất cho R. Quyết định chọn cách phân mảnh
nào cần dựa trên hai tiêu chuẩn:
(1) Phân mảnh có đặc tính nối tốt hơn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

×