Tải bản đầy đủ (.doc) (41 trang)

MÔ PHỎNG THUẬT TOÁN PHÂN MẢNH DỌC

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 (888.27 KB, 41 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
**********    **********
TIỂU LUẬN CHUYÊN ĐỀ
CƠ SỞ DỮ LIỆU NÂNG CAO
ĐỀ TÀI:
MÔ PHỎNG THUẬT TOÁN
PHÂN MẢNH DỌC

GIẢNG VIÊN HƯỚNG DẪN:
PGS.TS ĐỖ PHÚC
HỌC VIÊN THỰC HIỆN:
LÊ MINH TRÍ
MSHV: CH1101148
Thành phố Hồ Chí Minh
08/2012
Hệ thống Logic mờ tránh các chướng ngại vật
MỤC LỤC
Nội dung Trang
DANH MỤC CÁC HÌNH 3
LỜI NÓI ĐẦU 3
Chương I>Giới thiệu: 4
Chương II>Cơ sở dữ liệu phân tán: 5
1/Các khái niệm cơ bản: 5
2/Sự cần thiết của hệ cơ sở dữ liệu phân tán: 8
3/Các đặc điểm của cơ sở dữ liệu phân tán: 9
4/Mô hình kiến trúc của hệ cơ sở dữ liệu phân tán: 10
Chương III>Thiết kế cơ sở dữ liệu phân tán: 14
1/Các kiểu phân mảnh: 14
2/Phương pháp phân mảnh ngang: 16


3/Phương pháp phân mảnh dọc: 19
4/Phân tán tài nguyên: 27
Chương IV>Cài đặt thuật toán tìm phân mảnh dọc: 27
1/Giới thiệu chương trình: 27
2/Một số đoạn mã chính để xây dựng chương trình: 28
3/Hướng dẫn sử dụng chương trình: 36
Chương V>Kết luận & Hướng phát triển đề tài: 39
1/Kết luận : 39
2/Hướng phát triển đề tài: 39
TÀI LIỆU THAM KHẢO 41
HVTH: Lê Minh Trí (CH1101148) Trang 2
Hệ thống Logic mờ tránh các chướng ngại vật
DANH MỤC CÁC HÌNH
Hình 1: Các mô hình không phải hệ CSDLPT 6
Hình 2: Mô hình hệ CSDLPT 7
Hình 3: Các tầng trong suốt của hệ thống 8
Hình 4: Sơ đồ hệ phân tán client/server 11
Hình 5: Sơ đồ kiến trúc của hệ phân tán ngang hàng 13
Hình 6: Sơ đồ kiến trúc của hệ phân tán phức hợp 14
Hình 7: Chia các thuộc tính gom cụm 24
Hình 8: Giao diện chính của chương trình 28
Hình 9: Mở file 36
Hình 10: Chọn file cần mở 37
Hình 11: Dữ liệu được nhập vào hai ma trận 37
Hình 12: Xác nhận việc thực hiện 38
Hình 13: Kết quả thực hiện sau khi tính toán 38
LỜI NÓI ĐẦU
Ngày nay công nghệ thông tin (CNTT) đã vượt ra ngoài khuôn khổ một đối
tượng riêng của khoa học công nghệ. CNTT trở thành một nhân tố quan trọng trong
HVTH: Lê Minh Trí (CH1101148) Trang 3

Hệ thống Logic mờ tránh các chướng ngại vật
sản xuất và phát triển kinh tế toàn xã hội với phạm vi toàn cầu. Trong nền kinh tế tri
thức CNTT đóng vai trò then chốt. Mạng máy tính cũng trở thành công cụ đắc lực
không thể thiếu cho bất kỳ một tổ chức xã hội nào.
Cơ sở dữ liệu phân tán (CSDLPT) nói riêng và các hệ phân tán nói chung là
một lĩnh vực đã được nghiên cứu từ lâu, nhưng gần đây do sự phát triển nhanh
chóng của công nghệ truyền thông và sự bành trướng ngày càng mạnh mẽ của mạng
Internet, cùng với xu thế toàn cầu hóa trong mọi lĩnh vực như ngân hàng, giáo dục,
doanh nghiệp,… đặc biệt là về thương mại, CSDLPT đã trở thành một lĩnh vực thu
hút nhiều sự quan tâm của các nhà nghiên cứu lý thuyết lẫn các nhà sản xuất phần
mềm. Vậy CSDLPT là gì ? Để trả lời cho câu hỏi này người nghiên cứu đang từng
bước tiếp cận, tìm hiểu nhằm đưa ra câu trả lời một cách chính xác hơn.
Về mặt trực quan, cụm từ CSDLPT bao gồm 2 cụm từ là cơ sở dữ liệu (CSDL)
và phân tán (PT). Nhưng về mặt công nghệ CSDLPT chính là sự hợp nhất của hai
hướng tiếp cận đối với quá trình xử lý dữ liệu là công nghệ CSDL và công nghệ
mạng máy tính.
Trong phạm vi bài tiểu luận này người nghiên cứu chỉ trình bày một cách tổng
quát nhất về những khái niệm của CSDLPT và đồng thời cài đặt thử nghiệm chương
trình Mô phỏng thuật toán phân mảnh dọc để thiết kế CSDLPT.
Qua bài thu hoạch, em xin gửi lời cảm ơn chân thành, sâu sắc đến thầy
PGS.TS Đỗ Phúc, người đã tận tình truyền đạt cho em những kiến thức sâu rộng,
bổ ích về môn Cơ sở dữ liệu nâng cao. Từ đó giúp em nắm vững hơn về cơ sở lý
thuyết, và có được một nền tảng kiến thức cơ bản tạo điều kiện thuận lợi để em
hoàn thành tốt bài tiểu luận này. Bên cạnh đó em cũng xin gửi lời cảm ơn đến các
anh/chị trong cùng khóa học đã nhiệt tình chia sẽ tài liệu và những thông tin cần
thiết trong suốt quá trình học.
Thân mến,
Người nghiên cứu
Chương I> Giới thiệu:
Nếu như phần lớn lịch sử phát triển của máy tính cá nhân đã được viết trên đất

Mỹ thì cách đây khoảng 40 năm, TS Nguyễn Chí Công đã cùng đồng nghiệp cho ra
đời chiếc máy vi tính đầu tiên của Việt Nam và cũng là của châu Á. Tại thời điểm
HVTH: Lê Minh Trí (CH1101148) Trang 4
Hệ thống Logic mờ tránh các chướng ngại vật
đó, máy tính đã có đủ khả năng xây dựng hệ thống thông tin và hệ CSDL. Một mặt
đã hình thành và phát triển các mô hình lý thuyết cho hệ CSDL và mặt khác những
nguồn phát triển hệ thống ứng dụng ngày càng có nhiều kinh nghiệm. Hệ thống
thông tin hình thành trên cơ sở kết nối các máy tính khác nhau.
Những năm gần đây, hệ CSDLPT được phát triển dựa trên hai nền công nghệ
dường như đối lập nhau là công nghệ CSDL và công nghệ mạng máy tính. Một
trong những mục đích, động cơ chính của việc sử dụng các hệ CSDL là việc tích
hợp các dữ liệu, giao tác của một xí nghiệp, tổ chức và cho phép truy xuất tập trung,
do vậy có thể điều khiển được các truy xuất đến dữ liệu đó. Còn công nghệ mạng đi
ngược lại với mọi nỗ lực tập trung hóa. Tuy nhiên sự hòa quyện vào nhau của hai
nền công nghệ đó đã giúp cho việc trao đổi dữ liệu, thông tin,…thông qua mạng
máy tính ngày càng nhanh chóng và chính xác hơn, tiết kiệm được nhiều về mặt
thời gian lẫn không gian lưu trữ.
Do đó để xây dựng và cài đặt một CSDLPT chúng ta không những chỉ cần
nắm vững các kiến thức về CSDL mà còn cần phải hiểu biết về mạng máy tính. Cụ
thể để giải quyết bài toán trên chúng ta cần nắm vững các vấn đề về thiết kế phân
tán, thiết kế dữ liệu, các loại mạng máy tính, mạng dải rộng, mạng vô tuyến,
internet,…
Chương II> Cơ sở dữ liệu phân tán:
1/ Các khái niệm cơ bản:
Hệ cơ sở dữ liệu phân tán (CSDLPT) được xây dựng dựa trên hai nền công
nghệ cơ bản là cơ sở dữ liệu (CSDL) và mạng máy tính. Hệ CSDLPT được mô tả
như là tập hợp nhiều CSDL có liên quan logic đến nhau và được phân bố trên mạng
máy tính.
Trong khái niệm được mô tả về CSDLPT ở trên có hai đặc trưng cơ bản là
“liên quan logic” và “phân bố trên mạng”. Trong CSDLPT các tập tin dữ liệu

được lưu trữ độc lập trên các nút của mạng máy tính và phải có liên quan đến nhau
về mặt logic và hơn thế nữa còn đòi hỏi chúng phải được truy xuất qua một giao
diện chung thống nhất.
HVTH: Lê Minh Trí (CH1101148) Trang 5
Cơ sở dữ liệu phân tán
Cơ sở dữ liệu
Mạng máy tính
=
+
Hệ thống Logic mờ tránh các chướng ngại vật
Hiện nay khái niệm xử lý phân tán (Distributed Processing), tính toán phân
tán (Distributed Computing) hoặc các thuật ngữ có từ “phân tán” được dùng để chỉ
các hệ thống rải rác như các hệ thống máy tính có đa bộ xử lý (multiprocessor
system) hay là các xử lý trên mạng máy tính. CSDLPT là một khái niệm không bao
gồm các trường hợp xử lý dữ liệu trong các hệ thống sử dụng bộ nhớ chung, kể cả
bộ nhớ trong hay bộ nhớ thứ cấp (đĩa từ), nhất thiết phải là một hệ có sử dụng giao
tiếp mạng với các trạm làm việc độc lập.
Hệ quản trị cơ sở dữ liệu (Distributed Database Management System) là hệ
thống phần mềm cho phép quản lý các hệ CSDLPT và làm cho sự phân tán trở nên
“trong suốt” đối với người sử dụng.
Hình 1: Các mô hình không phải hệ CSDLPT
HVTH: Lê Minh Trí (CH1101148) Trang 6
Hệ thống Logic mờ tránh các chướng ngại vật
Hình 2: Mô hình hệ CSDLPT
Khái niệm trong suốt (transparent) để chỉ sự tách biệt ở cấp độ cao của hệ
thống với các vấn đề cài đặt ở cấp độ thấp của hệ thống. Có các dạng trong suốt như
sau:
• Trong suốt về phân tán: Do tính chất phân tán của hệ thống nên các dữ
liệu được lưu trữ tại các nút có vị trí địa lý khác nhau, phần mềm sẽ đáp
ứng các yêu cầu sao cho người dùng không cần phải biết vị trí địa lý

của dữ liệu.
• Trong suốt về phân hoạch: Do dữ liệu phân tán và do nhu cầu của công
việc nên dữ liệu cần được phân hoạch và mỗi phân hoạch được lưu trữ
tại một nút khác nhau (đây gọi là quá trính phân mảnh - fragmentation).
Quá trình phân mảnh hoàn toàn tự động bởi hệ thống và người dùng
không cần phải can thiệp vào.
• Trong suốt về nhân bản: Vì lý do tính hiệu năng và độ tin cậy nên dữ
liệu còn được sao chép một phần ở những vị trí khác nhau.
• Trong suốt về độc lập dữ liệu
• Trong suốt về kết nối mạng: Người dùng không cần biết về sự có mặt
của các giao tiếp mạng
HVTH: Lê Minh Trí (CH1101148) Trang 7
Hệ thống Logic mờ tránh các chướng ngại vật
Hình 3: Các tầng trong suốt của hệ thống
2/ Sự cần thiết của hệ cơ sở dữ liệu phân tán:
2.1/ Sự phát triển của các cơ cấu tổ chức:
Cùng với sự phát triển của xã hội, nhiều cơ quan xí nghiệp có cơ cấu tổ chức
không tập trung, hoạt động phân tán trên phạm vi rộng. Vì vậy việc thiết kế và cài
đặt CSDLPT là phù hợp, đáp ứng mọi nhu cầu truy xuất và khai thác dữ liệu. Cùng
với sự phát triển của công nghệ viễn thông tin học, động cơ thúc đẩy kinh tế, việc tổ
chức các trung tâm máy tính lớn và tập trung trở thành vấn đề cần nghiên cứu.
Cơ cấu tổ chức và vấn đề kinh tế là một trong những nguyên nhân quan trọng
nhất của sự phát triển CSDLPT.
2.2/ Giảm chi phí truyền thông:
Trong thực tế sử dụng một số ứng dụng mang tính địa phương sẽ làm giảm chi
phí truyền thông. Bởi vậy việc tối ưu hóa tính địa phương của các ứng dụng là một
trong những mục tiêu chính của việc thiết kế và cài đặt CSDLPT.
2.3/ Hiệu quả công việc:
Sự tồn tại một số hệ thống xử lý địa phương đạt được thông qua việc xử lý
song song. Vấn đề này có thể thích hợp với mọi hệ đa xử lý. CSDLPT có thuận lợi

trong phân tích dữ liệu phản ánh điều kiện phụ thuộc của các ứng dụng. Theo cách
này tác động qua lại giữa các bộ xử lý được làm cực tiểu. Công việc được phân chia
giữa các bộ xử lý khác nhau và tránh được các tắc nghẽn thông tin trên mạng truyền
thông hoặc các dịch vụ chung của toàn hệ thống. Sự phân tán dữ liệu phản ánh hiệu
quả làm tăng tính địa phương của các ứng dụng.
HVTH: Lê Minh Trí (CH1101148) Trang 8
Hệ thống Logic mờ tránh các chướng ngại vật
2.4/ Độ tin cậy và tính sẵn sàng:
Cách tiếp cận CSDLPT cho phép truy nhập độ tin cậy và tính sẵn sàng cao
hơn. Tuy nhiên để đạt được mục đích đó là vấn đề không đơn giãn đòi hỏi kỹ thuật
phức tạp. Những lỗi xuất hiện trong một CSDLPT có thể xẩy ra nhiều hơn vì số các
thành phần cấu thành lớn hơn, nhưng ảnh hưởng của lỗi chỉ ảnh hưởng tới các ứng
dụng sử dụng các site lỗi. Sự hỏng hóc của toàn hệ thống hiếm khi xẩy ra.
3/ Các đặc điểm của cơ sở dữ liệu phân tán:
CSDLPT không đơn giản là sự phân bố của các CSDL, bởi vì CSDLPT có
nhiều điểm khác biệt so với CSDL tập trung truyền thống. CSDLPT có một số điểm
nổi bậc so với CSDL tập trung như: quản lý dữ liệu phân tán và nhân bản một cách
vô hình, độ tin cậy qua các giao dịch phân tán, cải thiện hiệu năng và dễ dàng mở
rộng hệ thống.
3.1/ Quản lý phân tán và nhân bản một cách vô hình:
Đặc tính vô hình muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một
hệ thống với các vấn đề cài đặt ở cấp độ thấp. Nói cách khác, một hệ thống vô hình
sẽ “che khuất” các chi tiết cài đặt, không cho người dùng nhìn thấy. Ưu điểm của
một hệ quản trị CSDLPT vô hình hoàn toàn là mức độ hỗ trợ cao mà nó cung cấp
cho việc phát triển các ứng dụng phức tạp. Rõ ràng là chúng ta mong muốn làm cho
tất cả đề vô hình hoàn toàn.
3.2/ Độ tin cậy qua các giao dịch phân tán:
Các hệ quản trị CSDLPT được dự định dùng để cải thiện độ tin cậy bởi vì
chúng có các thành phần được nhân bản và vì thế loại bỏ được các tình huống có sự
cố tại các điểm riêng lẻ. Sự cố tạo một trạm riêng lẻ hoặc sự cố đường liên lạc làm

mất liên lạc với một hoặc nhiều trạm sẽ không đủ làm ngừng trệ toàn bộ hệ thống.
3.3/ Cải thiện hiệu năng:
Hiệu năng của CSDLPT được cải tiến dựa vào hai điểm:
• Hệ quản trị CSDLPT có khả năng phân mảnh CSDL khái niệm và cho
phép cục bộ hóa dữ liệu.
• Tính song song của các hệ thống phân tán có thể được khai thác để thực
hiện song song liên truy vấn và truy vấn nội bộ.
3.4/ Dễ dàng mở rộng hệ thống:
HVTH: Lê Minh Trí (CH1101148) Trang 9
Hệ thống Logic mờ tránh các chướng ngại vật
Trong môi trường phân tán, dễ dàng tăng kích thước dữ liệu và hiếm khi cần
sửa đổi trong các hệ thống lớn. Việc mở rộng thường có thể được thực hiện bằng
cách tăng khả năng lưu trữ và xử lý của mạng. Rõ ràng là không thể có được sự gia
tăng “khả năng” một cách tuyến tính, vì điều này phụ thuộc vào chi phí phân tán,
Tuy nhiên vẫn có thể có những cải tiến có ý nghĩa. Khả năng mở rộng hệ thống dễ
dàng mang tính kinh tế, chi phí giảm.
4/ Mô hình kiến trúc của hệ cơ sở dữ liệu phân tán:
Trong số các mô hình kiến trúc của hệ quản trị cơ sở dữ liệu phân tán
(QTCSDLPT) được trình bày trong các tài liệu kinh điển ta xét 3 mô hình phổ biến:
4.1/ Mô hình kiến trúc của hệ phân tán client/server:
Đặc trưng của hệ này là các chức năng của hệ thống được chia làm 2 lớp là
client và server.
Trong hệ thống client/server các thao tác xử lý dữ liệu đáp ứng yêu càu của
khách hàng đều được thực hiện bởi các chức năng phía server, chỉ có kết quả mới
được gửi trả lại cho client.
Hệ client với các tầng:
• Giao diện tương tác với người sử dụng (User Interface), các chương
trình ứng dụng (Application Program),…
• Hệ quản trị cơ sở dữ liệu khách hàng (Client DBMS).
• Các phần mềm mạng có chức năng truyền tin (Communication

Software).
Hệ server với các tầng:
• Các phần mềm mạng có chức năng truyền tin.
• Tần kiểm soát ngữ nghĩa của dữ liệu (Semantic Data Controler).
• Tầng tối ưu hóa câu hỏi (Query Optimizer).
• Tầng quản lý các giao thức (Transaction Manager).
• Tần quản lý khôi phục (Recovery Manager).
• Tần hỗ trợ thực thi (Runtime Support Processor).
• Hệ điều hành quản lý chung và giao tiếp với CSDL vật lý.
HVTH: Lê Minh Trí (CH1101148) Trang 10
Hệ thống Logic mờ tránh các chướng ngại vật
Hình 4: Sơ đồ hệ phân tán client/server
Hệ client/server có ưu điểm là xử lý dữ liệu tập trung, trên đường truyền chỉ có
các yêu cầu (câu hỏi) và kết quả đáp ứng câu hỏi, giảm tải được khối lượng truyền
tin trên mạng kết hợp với thiết bị tại server rất mạnh sẽ tăng tốc độ xử lý dữ liệu của
cả hệ thống.
4.2/ Mô hình hệ phân tán ngang hàng:
Đặc điểm nổi bật của hệ thống này là dữ liệu được tổ chức ở các nút có chức
năng như nhau, đồng thời sự tổ chức dữ liệu ở các nút này lại có thể rất khác nhau,
từ đó cần phải có:
• Định nghĩa dữ liệu tại mỗi vị trí: tại mỗi nút phải xây dựng lược đồ dữ
liệu cụ bộ LIS (Local Internal Schema).
HVTH: Lê Minh Trí (CH1101148) Trang 11
Hệ thống Logic mờ tránh các chướng ngại vật
• Mô tả cấu trúc logic toàn cục: Lược đồ khái niệm toàn cục GCS
(Global Conceptual Schema).
• Mô tả cấu trúc logic tại mỗi vị trí, điểu này xẩy ra do nhân bản và phân
mảnh gọi là lược đồ khái niệm cục bộ LCS (Local Conceptual
Schema).
• Mô tả cấu trúc dữ liệu của các ứng dụng gọi là lược đồ ngoại giới ES

(External Schema).
Cấu trúc của hệ thống bao gồm hai thành phần chính: Bộ phận tiếp nhận người
dùng (User Processor) và bộ phận xử lý dữ liệu (Data Processor). Hai modul này
được đặt chung trên mỗi máy chứ không tách biệt như hệ thống client/server.
Các chức năng cơ bản của từng modul như sau:
• Giao tiếp người dùng (User Interface Handle): Diễn dịch yêu cầu, định
dạng kết quả.
• Kiểm soát dữ liệu ngữ nghĩa (Semantic Data Controler): Dựa vào lược
đồ khái niệm toàn cục để kiểm tra câu truy cấn có thực hiện được hay
không.
• Tối ưu hóa câu hỏi toàn cục (Global Query Optimizer): Định ra chiến
lược thực thi tốt nhất trên các nút.
• Giám sát thực thi truy vấn toàn cục (Global Execution Monitor).
• Xử lý truy vấn cục bộ (Local Query Processor).
• Quản lý khôi phục cục bộ (Local Recover Manager): Quản lý sự nhất
quán khi có sự cố.
• Xử lý hỗ trợ thực thi (Runtime Support Processor): Quản lý truy xuất
CSDL
HVTH: Lê Minh Trí (CH1101148) Trang 12
Hệ thống Logic mờ tránh các chướng ngại vật
Hình 5: Sơ đồ kiến trúc của hệ phân tán ngang hàng
4.3/ Mô hình hệ phân tán ngang hàng:
Sự khác biệt cơ bản so với hệ phân tán ngang hàng là ở chỗ phức hệ không có
(hoặc có không đầu đủ) một lược đồ khái niệm toàn cục.
HVTH: Lê Minh Trí (CH1101148) Trang 13
Hệ thống Logic mờ tránh các chướng ngại vật
Hình 6: Sơ đồ kiến trúc của hệ phân tán phức hợp
Tóm lại trong 3 mô hình nêu trên thì mô hình client/server đang được phát
triển rộng rãi và chứng tỏ các ưu điểm của nó về tính đơn giản và hữu hiệu trên
mạng.

Chương III> Thiết kế cơ sở dữ liệu phân tán:
Một CSDLPT dựa trên mô hình quan hệ trước hết phải tuân thủ các quy tắc về
chuẩn hóa cho CSDL quan hệ. Để phân tán CSDL có hai hoat động chính đó là:
Phân mảnh cách quan hệ và phân tán các quan hệ (cấp phát các mảnh dữ liệu).
1/ Các kiểu phân mảnh:
Xét hệ CSDLPT dựa trên các lược đồ quan hệ, như vậy sự phân mảnh chính là
hoạt động chia một bảng thành các bảng nhỏ hơn. Giả sử ta có các quan hệ EMP,
PROJ, PAY, ASG được mô tả như sau:
HVTH: Lê Minh Trí (CH1101148) Trang 14
Hệ thống Logic mờ tránh các chướng ngại vật
EMP
EN
O
EName Title
E1 John Ks.Điện
E2 Mary Ks.Hệ thống
E3 Bill Ks.Cơ khí
E4 Bush Ks.Lập trình
E5 Blair Ks.Hệ thống
E6 Tom Ks.Điện
E7 Algor Ks.Cơ khí
E8DavidKs.Điện
1.1/ Phân mảnh ngang:
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 100000 và cái kia
chứa các dự án có ngân sách nhỏ hơn 100000.
1.2/ Phân mảnh dọc:
Cũng quan hệ PROJ ta phân mảnh thành hai bảng PROJ3 và PROJ4, khóa của
quan hệ PN
O

có mặt ở cả 2 bảng con.
HVTH: Lê Minh Trí (CH1101148) Trang 15
ASGEN
O
PN
O
RespDurE1P1Quản lý12
(tháng)E2P1Phân tích HT24E2P2Phân tích
HT6E3P3Tư vấn10E3P4Kỹ thuật48E4P2Lập
trình18E5P2Quản lý24E6P4Quản
lý48E7P3Kỹ thuật36E8P3Quản lý40
PROJPN
O
PNameBudgetLocP1Thiết
bị150000TorontoP2CSDL125000NewYork
P3Games75000NewYorkP4CAD100000Par
is
PAYTitleSalKs.Điện400
0Ks.Hệ thống7000Ks.Cơ
khí3500Ks.Lập trình2000
PROJ1PN
O
PNameBudgetLocP1Thiết
bị150000TorontoP2CSDL125000NewYork
PROJ2PN
O
PNameBudgetLocP3Games750
00NewYorkP4CAD100000Paris
Hệ thống Logic mờ tránh các chướng ngại vật
Trong thực tế phân mảnh sẽ xảy ra việc kết hợp cả hai loại phân mảnh và ta

gọi là sự phân mảnh hỗn hợp. Mức độ phân mảnh tùy theo yêu cầu của ứng dụng,
phân mảnh quá lớn hay quá nhỏ đều gây ra các hiệu ứng phụ khó kiểm soát.
1.3/ Các quy tắc phân mảnh:
Các quy tắc này nhằm đảm bảo tính chất nhất quán của CSDL, đặc biệt về ngữ
nghĩa của dữ liệu.

Tính đầy đủ: Nếu một quan hệ R được phân mảnh thành các mảnh con
R
1
, R
2
,…,R
n
thì mỗi mục dữ liệu phải nằm trong một hoặc nhiều các
mảnh con. Ở đây trong phân mảnh ngang thì mục dữ liệu được hiểu là
các bộ còn trong phân mảnh dọc là các thuộc tính. Quy tắc này đảm bảo
không bị mất dữ liệu khi phân mảnh.

Tính tái thiết được: Nếu một quan hệ R được phân mảnh thành các
mảnh con R
1
, R
2
,…,R
n
thì phải định nghĩa được một toán tử quan hệ

sao cho R =

=

n
i 1
R
i

Tính tách biệt: Giả sử một quan hệ R được phân mảnh thành các mảnh
con R
1
, R
2
,…,R
n
. Đối với phân mảnh ngang mục d
i
đã nằm trong mảnh
R
j
thì nó sẽ không nằm trong mảnh R
k
với k ≠ j. Đối với phân mảnh
dọc thì khóa chính phải được lập lại trong các mảnh con, còn các thuộc
tính khác phải tách rời.
2/ Phương pháp phân mảnh ngang:
2.1/ Các yêu cầu về thông tin: Để phục vụ cho các loại phân mảnh ta cần có
các loại thông tin sau đây:
• Thông tin về cơ sở dữ liệu:
Đây là thông tin về lược đồ dữ liệu toàn cục, chỉ ra các mối liên kết giữa các
quan hệ. Ta mô hình hóa sự liên kết này bằng một đồ thị có hướng, các cung chỉ
một liên hệ kết nối bằng, mỗi nút là một lược đồ quan hệ. Quan hệ ở đầu đường nối
HVTH: Lê Minh Trí (CH1101148) Trang 16

PROJ3PN
O
PNameLocP1Thiết
bịTorontoP2CSDLNewYorkP3G
amesNewYorkP4CADParis
PROJ4PN
O
Budget
P1150000P2125000
P375000P4100000
Hệ thống Logic mờ tránh các chướng ngại vật
gọi là quan hệ chủ nhân (Owner) còn quan hệ ở cuối đường nối gọi là quan hệ thành
viên (Member). Ta định nghĩa hai hàm Owner và Member từ tập các đường nối đến
tập các quan hệ.
Ví dụ:
Ta có các hàm Owner và Member xác định như sau:
Owner(L1) = PAY, Member(L1) = EMP
Owner(L2) = EMP, Member(L2) = ASG
Owner(L3) = PROJ, Member(L3) = ASG
• Thông tin về ứng dụng:
o Thông tin định tính: hướng dẫn cho hoạt động phân mảnh.
o Thông tin định lượng: chủ yếu được sử dụng trong các mô hình
cấp phát.
2.2/ Phân mảnh ngang nguyên thủy:
Phân mảnh ngang nguyên thủy thực chất là một phép chọn trên quan hệ chủ
của một lược đồ quan hệ R.
R
i
=
δ

Fi
(R) với i = 1,…,t
Trong đó Fi là công thức chọn sử dụng một vị từ hội sơ cấp m
i
.
Khi một tập vị từ là cực tiểu thì tất cả các vị từ trong đó đều sinh ra phân mảnh
được truy xuất bởi ít nhất một ứng dụng, ta gọi những vị từ đó là có liên đới.
Bước 1: Thuật toán tìm vị từ đầy đủ và cực tiểu
Quy tắc cơ bản về DD&CT: Một quan hệ hoặc một mảnh được phân
hoạch thành ít nhất hai phần và chúng được truy xuất khác nhau bởi ít nhất một ứng
dụng.
HVTH: Lê Minh Trí (CH1101148) Trang 17
Hệ thống Logic mờ tránh các chướng ngại vật
Ta gọi f
i
của P
R
là mảnh f
i
được sinh ra từ một vị từ hội sơ cấp trong
P
R
.
Thuật toán COM_MIN:
• Đầu vào: R là quan hệ, P
R
là tập vị từ đơn giản.
• Đầu ra: P
R’
là tập vị từ đơn giản và cực tiểu.

Begin
Tìm một vị từ p
i

P
R
sao cho p
i
phân hoạch R theo quy tắc cơ
bản DD&CT;
P
R’
= { p
i
};
P
R
= P
R
- { p
i
};
F = {f
i
} /* f
i
là mảnh hội sơ cấp sinh ra ra bởi p
i
*/
Do

Begin
Tìm một p
j

P
R
sao cho p
j
phân hoạch một mảnh f
k
của P
R’
theo quy tắc cơ bản DD&CT;
P
R’
= P
R’

{ p
j
};
P
R
= P
R
- { p
j
};
F = F


{f
j
} /* f
j
sinh ra bởi p
j
*/
IF

p
K

P
R’
là một vị từ không liên đới Then

Begin
P
R’
= P
R’
– {p
K
};
F = F – {f
K
};
End
End
Until P

R
’ là đầy đủ
End
Bước 2: Tính tập vị từ hội sơ cấp từ tập đầy đủ và cực tiểu. Việc tính toán này
rất dễ nhưng hay dẫn đến những tập vị từ hội sơ cấp rất lớn do việc tính máy móc.
Việc giản ước tập vị từ hội sơ cấp được thực hiện ở bước 3.
Bước 3: Loại bỏ những vị từ hội sơ cấp vô nghĩa. Việc này đầu tiên phải xác
định những vị từ mâu thuẫn với tập các phép kéo theo.
Bước 4: Thuật toán tìm vị từ hội sơ cấp có nghĩa
• Đầu vào: R là một quan hệ
• Đầu ra: M là tập các vị từ hội sơ cấp có nghĩa.
Begin
HVTH: Lê Minh Trí (CH1101148) Trang 18
Hệ thống Logic mờ tránh các chướng ngại vật
P
R’
= COM_MIN(R, P
R
);
Tính tập M các vị từ hội sơ cấp từ P
R’
;
Tính tập I các phép kéo theo giữa các p
i

P
R’
;
For mỗi m
i


M Do
If m
i
mâu thuẫn với I Then M = M – {m
i
};
End
2.3/ Phân mảnh ngang dẫn xuất:
Phân mảnh ngang dẫn xuất được định nghĩa dựa trên sự phân mảnh ngang một
quan hệ thành viên của một đường nối dựa theo phép toán chọn trên quan hệ chủ
nhân của đường nối đó, hay ta còn gọi đó là sự phân mảnh quan hệ thành viên dựa
trên cơ sở phân mảnh quan hệ chủ nhân.
Cho trước một đường nối L, ta có: Owner (L) = S và Member (L) = R. Định
nghĩa các mảnh ngang dẫn xuất của R như sau:
R
i
= R
θ
S
i
với i = 1…s
Trong đó s là số lượng các mảnh ngang trên R, S
i
=
δ
Fi
(S) là mảnh ngang nguyên
thủy được xây dựng từ vị trí hội sơ cấp F
i

,
θ
là phép liên kết bằng trên khóa kết nối
của chủ nhân và thành viên.
Nhận xét:
• Thuật toán phân mảnh dẫn xuất cần có tập các phân hoạch quan hệ chủ
nhân – thành viên, tập vị từ liên kết quan hệ giữa chủ nhân và thành viên.
• Nếu một quan hệ là thành viên của nhiều hơn một chủ nhân thì vấn đề sẽ
trở nên phức tạp hơn.
• Phân mảnh dẫn xuất sẽ gây nên phân mảnh lan truyền.
3/ Phương pháp phân mảnh dọc:
Ý nghĩa của phân mảnh dọc là tạo ra các quan hệ nhỏ hơn để sao cho giảm tối
đa thời gian thực hiện của các ứng dụng chạy trên mảnh đó. Việc phân mảnh dọc là
hoạt động chia một quan hệ R thành các mảnh con R
1
, R
2
,…,R
n
sao cho mỗi mảnh
con chứa tập con thuộc tính và chứa cả khóa của R. Với cách đặt vấn đề như vậy thì
việc phân mảnh dọc không chỉ là bài toán của CSDLPT mà còn là bài toán của ngay
cả hệ CSDL tập trung.
HVTH: Lê Minh Trí (CH1101148) Trang 19
Hệ thống Logic mờ tránh các chướng ngại vật
Ví dụ: Cho tập Q={Q1,Q2,Q3,Q4} các truy vấn, tập A={A1,A2,A3,A4,A5}
các thuộc tính, tập S={S1,S2,S3} các vị trí trong hệ CSDLPT. Ma trận truy vấn sử
dụng thuộc tính và ma trận sử dụng truy vấn tại các vị trí như sau:
Use A
1

A
2
A
3
A
4
A
5
Q1 1 1 1 0 0
Q2 0 0 1 1 0
Q3 0 1 0 1 1
Q4 0 0 1 0 1
Acc S1 S2 S3
Q1 20 1 0
Q2 10 5 9
Q3 80 1 9
Q4 2 5 4
a. Tìm ma trận ái lực thuộc tính AA.
b. Giả sử ban đầu chọn thuộc tính A5,A3, tính mức độ đóng góp để chọn
vị trí của các thuộc tính A1,A2,A4 bằng thuật toán năng lượng liên kết,
sau đó tính ma trận ái lực gom cụm.
c. Dùng thuật toán tách dọc dựa trên ma trận ái lực gom cụm để gom các
thuộc tính thành 2 nhóm và tạo 2 mảnh dọc.
3.1/ Độ đo ái lực aff(A
i
, A
j
):
Độ đ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
2
,…
A
n
] ứng với tập quan hệ Q = (q
1
, q
2
,…,q
n
) được định nghĩa như sau:
aff(A
i
, A
j
) = ∑
tất cả các query truy cập đến Ai và Aj
(truy vấn)
Truy vấn = ∑
tất cả các site
(tần số truy cập của một truy vấn *
excution
access
Bài toán tìm ma trận AA:
Ta tính được tổng của từng Q như sau:

Q1 = 21
Q2 = 24
Q3 = 90
Q4 = 11
HVTH: Lê Minh Trí (CH1101148) Trang 20
Hệ thống Logic mờ tránh các chướng ngại vật
Từ ma trận use AQ(Q
i
) => các thuộc tính mà Q
i
truy vấn đến:
AQ(Q1) = {A
1
, A
2
, A
3
} (21)
AQ(Q2) = {A
3
, A
4
} (24)
AQ(Q3) = {A
2
, A
4
, A
5
} (90)

AQ(Q4) = {A
3
, A
5
} (11)
Dựa vào công thức tính độ đo ái lực aff(A
i
, A
j
) = ∑
tất cả các query truy cập đến Ai và Aj
(truy vấn) ta tính được ma trận AA như sau:
AA A
1
A
2
A
3
A
4
A
5
A
1
21 21 21 0 0
A
2
21 111 21 90 90
A
3

21 21 56 24 11
A
4
0 90 24 114 90
A
5
0 90 11 90 101
3.2/ Thuật toán gom cụm:
Lấy ma trận AA và tổ chức lại các thứ tự của thuộc tính để tạo các cụm có các
thuộc tính để tạo các cụm có các thuộc tính ứng với cụm có độ ái lực cao hơn cụm
khác.
Thuật toán năng lượng liên kết – Bond Energy Algorithm (BEA) được dùng
để gom cụm các thực thể. BEA tìm thứ tự các thực thể (trong trường hợp này là các
thuộc tính) sao cho độ đo ái lực toàn cục như sau:
AM =
ji
ΣΣ
(độ ái lực của A
i
và A
j
với các láng giềng của nó)
cont(A
i
, A
k
, A
j
) = 2( bond(A
i

,A
k
) + bond(A
k
,A
j
) – bond(A
i
,A
j
) )
bond(A
x
, A
y
) = ∑
z=1…n
aff(A
z
, A
x
)aff(A
z
, A
y
)
Thuật giải BEA:
• Bước 1: Khởi tạo. Đặt và cố định một trong các cột của AA và CA.
• Bước 2: Thực hiện lặp. Lấy lần lược 1 trong n-i cột còn lại (i là số cột
đã đặt vào trong CA) và thử đặt chúng vào i+1 các vị trí còn lại trong

ma trận CA. Nơi đặt được chọn sao cho nó đóng góp nhiều nhất cho độ
đo ái lực chung. Việc lặp kết thúc khi không còn cột nào để đặt.
• Bước 3: Sắp thứ tự dòng. Sắp xếp các dòng theo thứ tự cột.
Thuật toán BEA:
• Đầu vào: AA (ma trận ái lực thuộc tính)
• Đầu ra: CA (ma trận ái lực gom cụm)
HVTH: Lê Minh Trí (CH1101148) Trang 21
Hệ thống Logic mờ tránh các chướng ngại vật
Begin
/*Khởi tạo*/
CA(*,1) := AA(*,1);
CA(*,2) := AA(*,2);
index := 3;
While index ≤ n Do /*Chọn vị trí tốt nhất cho thuộc tính AA
index
*/
Begin
For i := 1 To index-1 Do tính Cont(A
i-1
, A
index
, A
i
);
Tính Cont(A
index-1
, A
index
, A
index+1

);
loc := nơi đặt được chọn bởi giá trị cont lớn nhất
For j := index DownTo loc Do CA(*,j) := AA(*,j-1);
Ca(*,loc) := AA(*,index);
index := index + 1;
End
Sắp thứ tự các dòng theo thứ tự tương đối của cột.
End
Bài toán tìm ma trận CA:
bond(A
1
,A
2
) = 21*21 + 21*111 + 21*21 = 3213
bond(A
1
,A
3
) = 21*21 + 21*21 + 21*56 = 2058
bond(A
1
,A
4
) = 21*90 + 21*24 = 2394
bond(A
1
,A
5
) = 21*90 + 21*11 = 2121
bond(A

2
,A
3
) = 21*21 + 111*21 + 21*56 + 90*24 + 90*11 = 7098
bond(A
2
,A
4
) = 111*90 + 21*24 + 90*114 + 90*90 = 28854
bond(A
2
,A
5
) = 111*90 + 21*11 + 90*90 + 90*101= 27411
bond(A
3
,A
4
) = 21*90 + 56*24 + 24*114 + 11*90 = 6960
bond(A
3
,A
5
) = 21*90 + 56*11 + 24*90 + 11*101 = 5777
bond(A
4
,A
5
) = 90*90 + 24*11 + 114*90 + 90*101 = 27714
Đặt 2 cột A

5
và A
3
vào CA, ta được ma trận CA theo thứ tự [A
5
, A
3
]
+ Chèn A
1
vào CA có 3 cách:
Cont( _ , A
1
, A
5
) = 2(bond(_,A
1
) + bond(A
1
,A
5
) - bond(_,A
5
))
= 2*2121
= 4242
Cont(A
5
, A
1

, A
3
) = 2(bond(A
5
,A
1
) + bond(A
1
,A
3
) - bond(A
5
,A
3
))
= 2(2121 + 2058 – 5777)
= - 3196
HVTH: Lê Minh Trí (CH1101148) Trang 22
Hệ thống Logic mờ tránh các chướng ngại vật
Cont(A
3
, A
1
, _ ) = 2(bond(A
3
,A
1
) + bond(A
1
,_) - bond(A

3
,_))
= 2*2058
= 4116
Do Cont( _ , A
1
, A
5
) = 4242 là MAX nên CA có thứ tự [A
1
, A
5
, A
3
]
+ Chèn A
2
vào CA có 4 cách:
Cont( _ , A
2
, A
1
) = 2(bond(_,A
2
) + bond(A
2
,A
1
) - bond(_,A
1

))
= 2(0 + 3213 + 0)
= 6426
Cont(A
1
, A
2
, A
5
) = 2(bond(A
1
,A
2
) + bond(A
2
,A
5
) - bond(A
1
,A
5
))
= 2(3213 + 27411 – 2121)
= 57006
Cont(A
5
, A
2
, A
3

) = 2(bond(A
5
,A
2
) + bond(A
2
,A
3
) - bond(A
5
,A
3
))
= 2(27411 + 7098 – 5777)
= 57464
Cont(A
3
, A
2
, _ ) = 2(bond(A
3
,A
2
) + bond(A
2
,_) - bond(A
3
,_))
= 2*7098
= 14196

Do Cont(A
5
, A
2
, A
3
) = 57464 là MAX nên CA có thứ tự [A
1
, A
5
, A
2
, A
3
]
+ Chèn A
4
vào CA có 5 cách:
Cont( _ , A
4
, A
1
) = 2(bond(_,A
4
) + bond(A
4
,A
1
) - bond(_,A
1

))
= 2*2394
= 4788
Cont(A
1
, A
4
, A
5
) = 2(bond(A
1
,A
4
) + bond(A
4
,A
5
) - bond(A
1
,A
5
))
= 2(2394 + 27714 - 2121)
= 55974
Cont(A
5
, A
4
, A
2

) = 2(bond(A
5
,A
4
) + bond(A
4
,A
2
) - bond(A
5
,A
2
))
= 2(27714 + 28854 - 27411)
= 58314
Cont(A
2
, A
4
, A
3
) = 2(bond(A
2
,A
4
) + bond(A
4
,A
3
) - bond(A

2
,A
3
))
= 2(28854 + 6960 - 7098)
= 57432
Cont(A
3
, A
4
, _ ) = 2(bond(A
3
,A
4
) + bond(A
4
,_) - bond(A
3
,_))
= 2*6960
HVTH: Lê Minh Trí (CH1101148) Trang 23
Hệ thống Logic mờ tránh các chướng ngại vật
= 13920
Do Cont(A
5
, A
4
, A
2
) = 58314 là MAX nên CA có thứ tự [A

1
, A
5
, A
4
, A
2
, A
3
]
Kết luận: Ma trận CA có thứ tự [A
1
, A
5
, A
4
, A
2
, A
3
]
CA A
1
A
5
A
4
A
2
A

3
A
1
21 0 0 21 21
A
5
0 101 90 90 11
A
4
0 90 114 90 24
A
2
21 90 90 111 21
A
3
21 11 24 21 56
3.3/ Thuật toán phân hoạch thuộc tính:
Cách chia tập các thuộc tính gom cụm {A
1
, A
2
, … , A
n
} thành hai hay nhiều
hơn các tập TA = {A
1
, A
2
, … , A
i

} và BA = {A
i+1
, … , A
n
} sao cho không có (hay
có tối thiểu) các ứng dụng truy cập cả hai (hay nhiều hơn một) của các tập hợp
Hình 7: Chia các thuộc tính gom cụm
Định nghĩa:
TQ = tập các ứng dụng chỉ truy cập TA
BQ = tập các ứng dụng chỉ truy cập BA
OQ = tập các ứng dụng vừa truy cập TA vừa truy cập BA

CTQ = tổng số các truy cập đến các thuộc tính bởi các ứng dụng chỉ
truy cập TA
CBQ = tổng số các truy cập đến các thuộc tính bởi các ứng dụng chỉ
truy cập BA
HVTH: Lê Minh Trí (CH1101148) Trang 24
Hệ thống Logic mờ tránh các chướng ngại vật
COQ = tổng số các truy cập đến các thuộc tính bởi các ứng dụng vừa
truy cập TA vừa truy cập BA
Sau đó tìm điểm dọc theo đường chéo làm cực đại giá trị:
CTQ*CBQ – COQ
2
Thuật toán Vertical Fragmentation:
• Đầu vào: ma trận ái lực gom cụm CA, quan hệ R, ma trận sử dụng
thuộc tính ref, ma trận tần số truy cập Acc, K tập thuộc tính khóa chính
của R.
• Đầu ra: F tập các mảnh dọc.
Begin
z là vị trí thuộc cột thứ nhất

tính CTQ
1
;
tính CBQ
1
;
tính COQ
1
;
best := CTQ
1
* CBQ
1
- COQ
1
2
For i := 2 To n-1 Do
Begin
tính CTQ
i
;
tính CBQ
i
;
tính COQi;
z := CTQ
i
* CBQ
i
– COQ

i
2
;
If z>best Then best := z
End
R
1
:=
Π
TA
(R)

K;
R
2
:=
Π
BA
(R)

K;
F := R
1

R
2
End
Bài toán tìm phân mảnh:
Từ ma trận use AQ(Q
i

) => các thuộc tính mà Q
i
truy vấn đến:
AQ(Q1) = {A
1
, A
2
, A
3
} (21)
AQ(Q2) = {A
3
, A
4
} (24)
AQ(Q3) = {A
2
, A
4
, A
5
} (90)
AQ(Q4) = {A
3
, A
5
} (11)
Từ ma trận CA ta có 4 điểm chia tại A
1
, A

5
,

A
4
, A
2
HVTH: Lê Minh Trí (CH1101148) Trang 25

×