BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2
LÊ VĂN THUẬN
PHƢƠNG PHÁP GỘP TOÁN TỬ QUA MA TRẬN ĐẶC TRƢNG
ĐỂ TÌM CÂY TOÁN TỬ CÓ CHI PHÍ NHỎ NHẤT
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
HÀ NỘI, 2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2
LÊ VĂN THUẬN
PHƢƠNG PHÁP GỘP TOÁN TỬ QUA MA TRẬN ĐẶC TRƢNG
ĐỂ TÌM CÂY TOÁN TỬ CÓ CHI PHÍ NHỎ NHẤT
Chuyên ngành: Khoa Học Máy Tính
Mã số: 60 48 01 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
HÀ NỘI, 2017
LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn sâu sắc nhất tới thầy giáo, PGS.TS. Lê Huy
Thập - ngƣời đã hƣớng dẫn tận tình để tôi hoàn thành luận văn này.
Tôi cũng xin bày tỏ lòng biết ơn tới Ban giám hiệu trƣờng Đại học Sƣ
phạm Hà Nội 2, phòng Sau đại học, quý thầy cô đã trực tiếp giảng dạy tôi
trong suốt khóa học.
Xin trân trọng cảm ơn sự giúp đỡ động viên của gia đình, bạn bè và đồng
nghiệp đã giúp đỡ và tạo điều kiện tốt nhất để tôi hoàn thành luận văn này.
Mặc dù đã có những cố gắng, tìm tòi nhất định, song chắc chắn luận
văn không tránh khỏi hạn chế. Vì vậy, tôi rất mong nhận đƣợc những ý kiến
đóng góp của thầy, cô và các bạn để luận văn đƣợc hoàn thiện hơn.
Hà Nội, ngày ... tháng ... năm 2017
Học viên
Lê Văn Thuận
LỜI CAM ĐOAN
Luận văn đƣợc hoàn thành dƣới sự hƣớng dẫn trực tiếp của thầy giáo,
PGS. TS. Lê Huy Thập. Tôi xin cam đoan:
- Luận văn là kết quả của tự bản thân tôi tìm hiểu
- Những tƣ liệu đƣợc trích dẫn trong luận văn là trung thực.
- Những gì đƣợc triển khai trong luận văn không trùng khít với bất kì
công trình nghiên cứu của các tác giả nào đã đƣợc công bố trƣớc đó.
- Mọi sự giúp đỡ cho việc thực hiện luận văn này đã đƣợc cảm ơn và
các thông tin trích dẫn trong luận văn đã đƣợc chỉ rõ nguồn gốc.
Hà Nội, ngày ... tháng ... năm 2017
Học viên
Lê Văn Thuận
MỤC LỤC
Trang phụ bìa
Trang
Lời cam đoan......................................................................................................... i
Lời cảm ơn.. ......................................................................................................... ii
Mục lục................................................................................................................ iii
Danh mục các bảng................................................................................................iv
Danh mục các hình vẽ, đồ thị.................................................................................v
Các ký tự viết tắt....................................................................................................vi
PHẦN MỞ ĐẦU ................................................................................................ 1
1. Lý do chọn đề tài .......................................... Error! Bookmark not defined.1
2. Mục đích nghiên cứu ...................................................................................... 1
3. Nhiệm vụ nghiên cứu ..................................................................................... 1
4. Đối tƣợng và phạm vi nghiên cứu ................................................................... 1
5. Phƣơng pháp nghiên cứu ................................................................................ 1
6. Giả thiết khoa học .......................................................................................... 1
PHẦN NỘI DUNG ............................................................................................ 2
Chƣơng 1: CƠ SỞ LÝ THUYẾT ...................................................................... 2
1.1 Toán rời rạc ................................................................................................ ..2
1.1.1. Cây liên thông có trọng số tại đỉnh và cạnh ............................................ ..7
1.1.2. Các phƣơng pháp kiểm tra đồ thị là liên thông là cây không phải rừng
qua ma trận đặc trƣng. ....................................................................... ..................7
1.2. Cơ sở dữ liệu song song…………………………………………......…........9
1.2.1. Các phƣơng pháp phân mảnh cơ bản .........................................................9
1.2.2. Cách tái thiết các mảnh…………………………………………....... .........12
1.2.3. Cây toán tử……………………………………………………...................13
Chƣơng 2 CÁC THUẬT TOÁN GỘP THÔNG QUA MA TRẬN ĐẶC
TRƢNG ĐỂ CÓ CÂY TOÁN TỬ CHI PHÍ CỰC TIỂU………………...... ......25
2.1. Các dạng hàm chi phí trong xử lý song song……………………..................32
2.1.1. Chi phí tại bộ xử lý............................................................................... ......32
2.1.2. Chi phí truyền thông…………………………………………..…...... ........33
2.2. Thuật toán gộp để có cây toán tử tốt nhất......................................................34
2.2.1. Thuật toán cắt……………………………………………………… ..........34
2.2.2. Thuật toán gộp……………………………………………….....…. ...........35
2.3. Thuật toán tính chi phí trên cây toán tử………………………….....…. .......43
2.3.1. Thuật toán tính chi phí trên cây…………………………………...… ........43
2.3.2. Khôi phục câu lệnh từ cây toán tử……………………………………. ......44
Chƣơng 3. CHƢƠNG TRÌNH ĐỀ MÔ .............................. .................................49
3.1. Giới thiệu CSDL và các ứng dụng (Các câu truy vấn) tại trƣờng............ ......50
3.2. Thuật toán gộp trên cây toán tử và tính chi phí....................................... .......51
3.3. Xây dựng lại cây toán tử......................................................................... ........51
KẾT LUẬN VÀ KIẾN NGHỊ .............................................................................58
TÀI LIỆU THAM KHẢO……………………………………………..…. ..........59
DANH MỤC CÁC BẢNG
Bảng 1.1. Ma trận đặc trƣng của cây ......................................................... 9
Bảng 1.2-1. Quan hệ NhanVien .................................................................. 10
Bảng 1.2-2. Quan hệ DuAn ........................................................................ 10
Bảng 1.2-3. Quan hệ TraLuong .................................................................. 11
Bảng 1.2-4. Quan hệ PhanNhiem ............................................................... 11
Bảng 2 . Mảnh ngang DuAn H1 ................................................................... 14
Bảng 3 . Mảnh ngang DuAn H2 ................................................................... 14
Bảng 4 . Mảnh ngang DuAn H3 ................................................................... 14
Bảng 5. Mảnh dẫn xuất NhanVienDanxuat1 tƣơng ứng TraLuong1 ................. 15
Bảng 6. Mảnh dẫn xuất NhanVienDanxxuat2 tƣơng ứng TraLuong2 ................ 16
Bảng 7. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với DuAnH1 ............ 16
Bảng 8. Mảnh dẫn xuất PhanNhiemDanxuat2 tƣơng ứng với DuAnH3 ............. 17
Bảng 9. Mảnh dẫn xuất PhanNhiemDanxuat3 tƣơng ứng với DuAnH4 ............. 17
Bảng 10. Mảnh dẫn xuất PhanNhiemDanxuat4 tƣơng ứng với DuAnH6 ........... 17
Bảng 11. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với NhanVienH1 .... 18
Bảng 12. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với NhanVienH2 .... 18
Bảng 13. Quan hệ nhân viên ....................................................................... 21
Bảng 14. Phân mảng hàm băm ................................................................... 22
Bảng 15. Bảng có trọng số ......................................................................... 26
Bảng 16. Bảng C trọng số của đồ thị .......................................................... 40
Bảng 17. Bảng D nội dung lệnh tại các nút ................................................. 41
CÁC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1. Cây liên thông 11 đỉnh có 10 cạnh đƣợc gắn trọng số .............................. 8
Hình 2 . Đồ thị nối giữa các mảnh ........................................................................ 14
Hình 3. Ví dụ về cây toán tử ................................................................................. 24
Hình 4. Cây có trọng số ........................................................................................ 25
Hình 5. Đồ thị liên thông ...................................................................................... 29
Hình 6. Cắt rời hai nút i và j ................................................................................. 36
Hình 7. Gộp đỉnh j vào i ....................................................................................... 37
Hình 8. Cây có trọng số ........................................................................................ 39
CÁC KÝ TỰ VIẾT TẮT
- LAN: mạng cục bộ (local area network)
- CSDL: cơ sở dữ liệu
- NV: nhân viên
- TenNV: tên nhân viên
- MaNV: mã nhân viên
- TrinhdoCM: trình độ chuyên môn
- DA: dự án
- LV: làm việc
- DS: danh sách
- SQL: (structured query language) ngôn ngữ truy vấn mang tính cấu trúc
- PC: personal computer (máy tính cá nhân)
1
PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Chúng ta sẽ dùng phƣơng án gộp các toán tử cho các bộ xử lý để tổng
thời gian (hay chi phí bằng tiền) trả lời câu truy vấn nhỏ nhất. Đặc biệt,
chúng ta sẽ tập trung vào bài toán cây toán tử “Đƣờng ống”. Hơn nữa,
trong đề tài sẽ đề xuất việc gộp sẽ đƣợc thực hiện trên ma trận đặc trƣng
của cây toán tử. Đây là vấn đề mới và hiệu quả hơn khi xử lý trực tiếp trên
cây toán tử đã cho.
2. Mục đích nghiên cứu (Các kết quả cần đạt đƣợc)
Dựa vào ma trận đặc trƣng để tìm cây toán tử có chi phí nhỏ nhất.
3. Nhiệm vụ nghiên cứu
Phƣơng pháp gộp các toán tử trên cây toán tử đẻ có chi phí xử lý nhỏ
nhất dựa vào ma trận đặc trƣng .
4. Đối tƣợng và phạm vi nghiên cứu
Toán rời rạc.
Xử lý song và phân tán
5. Phƣơng pháp nghiên cứu
Dùng các kiến thức: Toán rời rạc, xử lý song - phƣơng pháp gộp các
toán tử dựa trên chi phí xử lý và truyền thông
6. Giả thuyết khoa học
Nghiên cứu sâu về xử lý song song và phân tán nhằm mục đích bổ sung
thêm các kiến thức và ứng dụng.
2
PHẦN NỘI DUNG
Chương 1: CƠ SỞ LÝ THUYẾT
1.1.Toán rời rạc
Đồ thị[9]
Định nghĩa 1.1.1: Một đơn đồ thị G = (V, E) gồm một tập khác rỗng V mà
các phần tử của nó gọi là các đỉnh và một tập E mà các phần tử của nó gọi là
các cạnh, đó là các cặp không có thứ tự của các đỉnh phân biệt.
Định nghĩa 1.1.2: Một đa đồ thị G = (V, E) gồm một tập khác rỗng V mà các
phần tử của nó gọi là các đỉnh và một họ E mà các phần tử của nó gọi là các
cạnh, đó là các cặp không có thứ tự của các đỉnh phân biệt. Hai cạnh đƣợc gọi
là cạnh bội hay song song nếu chúng cùng tƣơng ứng với một cặp đỉnh.
Định nghĩa 1.1.3: Một giả đồ thị G = (V, E) gồm một tập khác rỗng V mà các
phần tử của nó gọi là các đỉnh và một họ E mà các phần tử của nó gọi là các
cạnh, đó là các cặp không có thứ tự của các đỉnh (không nhất thiết là phân
biệt).
Định nghĩa 1.1.4: Một đồ thị có hƣớng G = (V, E) gồm một tập khác rỗng V
mà các phần tử của nó gọi là các đỉnh và một tập E mà các phần tử của nó gọi
là các cung, đó là các cặp có thứ tự của các phần tử thuộc V.
Định nghĩa 1.1.5: Một đa đồ thị có hƣớng G = (V, E) gồm một tập khác rỗng
V mà các phần tử của nó gọi là các đỉnh và một họ E mà các phần tử của nó
gọi là các cung, đó là các cặp có thứ tự của các phần tử thuộc V.
Các ví dụ về đồ thị
1) Đồ thị“lấn tổ” trong sinh thái học. Đồ thị đƣợc dùng trong nhiều mô
hình có tính đến sự tƣơng tác của các loài vật. Chẳng hạn sự cạnh tranh của
các loài trong một hệ sinh thái có thể mô hình hóa bằng đồ thị “lấn tổ”. Mỗi
3
loài đƣợc biểu diễn bằng một đỉnh. Một cạnh vô hƣớng nối hai đỉnh nếu hai
loài đƣợc biểu diễn bằng các đỉnh này là cạnh tranh với nhau.
2) Đồ thị ảnh hƣởng. Khi nghiên cứu tính cách của một nhóm nguời, ta
thấy một số ngƣời có thể có ảnh hƣởng lên suy nghĩ của những ngƣời
khác. Đồ thị có hƣớng đƣợc gọi là đồ thị ảnh hƣởngcó thể dùng để mô
hình bài toán này. Mỗi ngƣời của nhóm đƣợc biểu diễn bằng một đỉnh. Khi
một ngƣời đƣợc biểu diễn bằng đỉnh a có ảnh hƣởng lên ngƣời đƣợc biểu
diễn bằng đỉnh b thì có một cung nối từ đỉnh a đến đỉnh b.
3) Thi đấu vòng tròn. Một cuộc thi đấu thể thao trong đó mỗi đội đấu với
mỗi đội khác đúng một lần gọi là đấu vòng tròn. Cuộc thi đấu nhƣ thế có
thể đƣợc mô hình bằng một đồ thị có hƣớng trong đó mỗi đội là một đỉnh.
Một cung đi từ đỉnh a đến đỉnh b nếu đội a thắng đội b.
4) Các chƣơng trình máy tính có thể thi hành nhanh hơn bằng cách thi hành
đồng thời một số câu lệnh nào đó. Điều quan trọng là không đƣợc thực
hiện một câu lệnh đòi hỏi kết quả của câu lệnh khác chƣa đƣợc thực hiện.
Sự phụ thuộc của các câu lệnh vào các câu lệnh trƣớc có thể biểu diễn
bằng một đồ thị có hƣớng. Mỗi câu lệnh đƣợc biểu diễn bằng một đỉnh và
có một cung từ một đỉnh tới một đỉnh khác nếu câu lệnh đƣợc biểu diễn
bằng đỉnh thứ hai không thể thực hiện đƣợc trƣớc khi câu lệnh đƣợc biểu
diễn bằng đỉnh thứ nhất đƣợc thực hiện. Đồ thị này đƣợc gọi làđồ thị có ƣu
tiên trƣớc sau.
Bậc của đỉnh.
Định nghĩa 1.1.6: Hai đỉnh u và v trong đồ thị (vô hƣớng) G=(V,E) đƣợc
gọi là liền kề nếu (u,v)E. Nếu e = (u,v) thì e gọi là cạnh liên thuộc với
các đỉnh u và v. Cạnh e cũng đƣợc gọi là cạnh nối các đỉnh u và v. Các
đỉnh u và v gọi là các điểm đầu mút của cạnh e.
4
Định nghĩa 1.1.7: Bậc của đỉnh v trong đồ thị G=(V,E), ký hiệu deg(v), là
số các cạnh liên thuộc với nó, riêng khuyên tại một đỉnh đƣợc tính hai lần
cho bậc của nó.
Đỉnh v gọi là đỉnh treo nếu deg(v)=1 và gọi là đỉnh cô lập nếu deg(v)=0.
Định nghĩa 1.1.8: Đỉnh u đƣợc gọi là nối tới v hay v đƣợc gọi là đƣợc nối
từ u trong đồ thị có hƣớng G nếu (u,v) là một cung của G. Đỉnh u gọi là
đỉnh đầu và đỉnh v gọi là đỉnh cuối của cung này.
Định nghĩa 1.1.9: Bậc vào (t.ƣ. bậc ra) của đỉnh v trong đồ thị có hƣớng
G, ký hiệu degt(v) (t.ƣ. dego(v)), là số các cung có đỉnh cuối là v.
Một vài ứng dụng của các đồ thị đặc biệt:
1) Các mạng cục bộ (LAN): Một số mạng cục bộ dùng cấu trúc hình sao,
trong đó tất cả các thiết bị đƣợc nối với thiết bị điều khiển trung tâm.
Mạng cục bộ kiểu này có thể biểu diễn bằng một đồ thị phân đôi đầy đủ
K1,n. Các thông báo gửi từ thiết bị này tới thiết bị khác đều phải qua thiết
bị điều khiển trung tâm.
Mạng cục bộ cũng có thể có cấu trúc vòng tròn, trong đó mỗi thiết bị nối
với đúng hai thiết bị khác. Mạng cục bộ kiểu này có thể biểu diễn bằng
một đồ thị vòng Cn. Thông báo gửi từ thiết bị này tới thiết bị khác đƣợc
truyền đi theo vòng tròn cho tới khi đến nơi nhận.
Cuối cùng, một số mạng cục bộ dùng cấu trúc hỗn hợp của hai cấu trúc
trên. Các thông báo đƣợc truyền vòng quanh theo vòng tròn hoặc có thể
qua thiết bị trung tâm. Sự dƣ thừa này có thể làm cho mạng đáng tin cậy
hơn. Mạng cục bộ kiểu này có thể biểu diễn bằng một đồ thị bánh xe Wn.
2) Xử lý song song: Các thuật toán để giải các bài toán đƣợc thiết kế để
thực hiện một phép toán tại mỗi thời điểm là thuật toán nối tiếp. Tuy
5
nhiên, nhiều bài toán với số lƣợng tính toán rất lớn nhƣ bài toán mô phỏng
thời tiết, tạo hình trong y học hay phân tích mật mã không thể giải đƣợc
trong một khoảng thời gian hợp lý nếu dùng thuật toán nối tiếp ngay cả khi
dùng các siêu máy tính. Ngoài ra, do những giới hạn về mặt vật lý đối với
tốc độ thực hiện các phép toán cơ sở, nên thƣờng gặp các bài toán không
thể giải trong khoảng thời gian hợp lý bằng các thao tác nối tiếp. Vì vậy,
ngƣời ta phải nghĩ đến kiểu xử lý song song.
Khi xử lý song song, ngƣời ta dùng các máy tính có nhiều bộ xử lý riêng
biệt, mỗi bộ xử lý có bộ nhớ riêng, nhờ đó có thể khắc phục đƣợc những
hạn chế của các máy nối tiếp. Các thuật toán song song phân chia bài toán
chính thành một số bài toán con sao cho có thể giải đồng thời đƣợc. Do
vậy, bằng các thuật toán song song và nhờ việc sử dụng các máy tính có bộ
đa xử lý, ngƣời ta hy vọng có thể giải nhanh các bài toán phức tạp. Trong
thuật toán song song có một dãy các chỉ thị theo dõi việc thực hiện thuật
toán, gửi các bài toán con tới các bộ xử lý khác nhau, chuyển các thông tin
vào, thông tin ra tới các bộ xử lý thích hợp.
Khi dùng cách xử lý song song, mỗi bộ xử lý có thể cần các thông tin ra
của các bộ xử lý khác. Do đó chúng cần phải đƣợc kết nối với nhau. Ngƣời
ta có thể dùng loại đồ thị thích hợp để biểu diễn mạng kết nối các bộ xử lý
trong một máy tính có nhiều bộ xử lý. Kiểu mạng kết nối dùng để thực
hiện một thuật toán song song cụ thể phụ thuộc vào những yêu cầu với
việc trao đổi dữ liệu giữa các bộ xử lý, phụ thuộc vào tốc độ mong muốn
và tất nhiên vào phần cứng hiện có.
Mạng kết nối các bộ xử lý đơn giản nhất và cũng đắt nhất là có các liên kết
hai chiều giữa mỗi cặp bộ xử lý. Các mạng này có thể mô hình bằng đồ thị
6
đầy đủ Kn, trong đó n là số bộ xử lý. Tuy nhiên, các mạng liên kết kiểu này
có số kết nối quá nhiều mà trong thực tế số kết nối cần phải có giới hạn.
Biểu diễn đồ thị bằng ma trận
Định nghĩa 1.1.10: Cho đồ thị G=(V,E) (vô hƣớng hoặc có hƣớng), với
V={v1,v2,..., vn}. Ma trận liền kề của G ứng với thứ tự các đỉnh v1,v2,..., vn là
ma trận
A= (aij )1i, jn M (n, Z ) ,
trong đó aij là số cạnh hoặc cung nối từ vi tới vj.
Nhƣ vậy, ma trận liền kề của một đồ thị vô hƣớng là ma trận đối xứng,
nghĩa là aij a ji , trong khi ma trận liền kề của một đồ thị có hƣớng không
có tính đối xứng.
Ví dụ: Ma trận liền kề với thứ tự các đỉnh v1, v2, v3, v4trong đồ thị vô
hƣớng là:
0
3
0
2
3 0 2
0 1 1
1 1 2
1 2 0
v1
v2
v4
v3
Ma trận liền kề với thứ tự các đỉnh v1, v2, v3, v4, v5 là:
1
0
1
0
1
1
1
0
0
1
0
2
0
2
0
1
1
1
0
1
1
0
0
1
0
v1
v5
v2
v4
v3
7
Định nghĩa 1.1.11: Các đơn đồ thị G1=(V1,E1) và G2=(V2,E2) đƣợc gọi là
đẳng cấu nếu tồn tại một song ánh f từ V1 lên V2 sao cho các đỉnh u và v là
liền kề trong G1 khi và chỉ khi f(u) và f(v) là liền kề trong G2 với mọi u và
v trong V1. Ánh xạ f nhƣ thế gọi là một phép đẳng cấu.
Thông thƣờng, để chứng tỏ hai đơn đồ thị là không đẳng cấu, ngƣời ta
chỉ ra chúng không có chung một tính chất mà các đơn đồ thị đẳng cấu cần
phải có. Tính chất nhƣ thế gọi là một bất biến đối với phép đẳng cấu của
các đơn đồ thị.
1.1.1. Cây liên thông có trọng số tại đỉnh và cạnh
Trong mục này chúng ta chỉ xét loại đơn đồ thị vô hƣớng hữu hạn và có
trọng số.
Định nghĩa.
Cây liên thông là đồ thị liên thông n-đỉnh và có đúng n-1 cạnh.
Trên mỗi đỉnh và mỗi cạnh đều được gán một số được gọi là trọng số tại đỉnh
và trọng số tại cạnh.
Ví dụ 1. hình 1 là cây liên thông
2
4
1
5
10
9
7
3
3
19
9
17
13
11
5
6
7
8
21
15
5
Hình 1. Cây liên thông 11 đỉnh có 10 cạnh đƣợc gắn trọng số
11
8
1.1.2. Các phương pháp kiểm tra đồ thị là liên thông là cây không phải
rừng qua ma trận đặc trưng.
Định nghĩa
Ma trận đặc trưng của một cây n- đỉnh là một bảng mà tiêu đề của các hàng
và các cột có kèm theo trọng số của nó và các O (giao hàng và cột là trọng số
của cạnh) ghi trọng số các cạnh.
Ví dụ 2. Ma trận đặc trƣng của cây ở hình 1 đƣợc thể hiện ở bảng 1.1
1
2
3
4
5
6
7
8
9
t1
1
t1
10
11
t10
t11
0
0
3
0
0
0
0
0
0
0
0
2
0
0
5
0
0
0
0
0
0
0
0
3
3
5
0
7
9
0
0
0
0
0
0
4
0
0
7
0
0
0
0
0
0
0
0
5
0
0
9
0
0
11
13
0
0
0
0
6
0
0
0
0
11
0
0
0
0
0
0
7
0
0
0
0
13
0
0
15
0
0
0
8
0
0
0
0
0
0
15
0
17
0
21
9
0
0
0
0
0
0
0
17
0
19
0
10
t10
0
0
0
0
0
0
0
0
19
0
0
11
t11
0
0
0
0
0
0
0
21
0
0
0
Bảng 1.1. Ma trận đặc trƣng của cây ở hình 1
9
Nhận xét
Ma trận đặc trƣng là ma trận đối xứng qua đƣờng chéo chính
Các phần tử trên đƣờng chéo chính đều bằng không
Theo định nghĩa của cây liên thông thì phía dƣới (trên) đƣờng chéo
chính chỉ có n-1 có giá trị khác không.
Từ đây chúng ta có thể đƣa ra các thuật toán để kiểm tra dữ liệu nhập vào
có tạo thành cây hay không. Nghĩa thỏa mãn các nhận xét trên hay không.
Các thuật toán đƣợc trình bày tại chƣơng 2
1.2. Cơ sở dữ liệu song song
1.2.1. Các phương pháp phân mảnh cơ bản.
Để thuận lợi cho viện nghiên cứu, chúng ta xét CSDL quan hệ và dữ liệu của
công ty Điện-Toán nhƣ sau:
Quan hệ NhanVien(MaNV, TenNV, TrinhDoCM)
MaNV
TenNV
TrinhDoCM
NV1
Nguyễn Văn Bổng
Kỹ sƣ điện
NV2
Lê Hồng Ngoc
Phân tích và thiết kế hệ thống
NV3
Hoàng Trung Mã
Kỹ sƣ cơ khí
NV4
Trịnh Kim Thanh
Lập trình viên
NV5
Ngô Đình Vinh
Phân tích và thiết kế hệ thống
NV6
Trần Mỹ Lệ
Kỹ sƣ điện
NV7
Lê Hồng Hạnh
Kỹ sƣ cơ khí
NV8
Nguyễn Trƣờng Tam
Phân tích và thiết kế hệ thống
Bảng 1.2-1. Quan hệ NhanVien
10
Quan hệ DuAn(MaDuAn, TenDuAn, NganSach)
MaDuAn TenDuAn
NganSach
ViTri
DA1
Thiết bị đo đạc
150000
Hải Phòng
DA2
Phát triển CSDL
135000
Hà Nội
DA3
CAD/ CAM
250000
Hà Nội
DA4
Bảo dƣỡng
310000
TP.Hồ Chí Minh
Bảng 1.2-2. Quan hệ DuAn
Quan hệ TraLuong(TrinhDoCM, Luong)
TrinhDoCM
Luong
Kỹ sƣ điện
4000
Phân tích và thiết kế hệ thống
3400
Kỹ sƣ cơ khí
2700
Lập trình viên
2400
Bảng 1.2-3. Quan hệ TraLuong
11
Quan hệ PhanNhiem (MaNV, MaDuAn, ThoiGianLV, ChucVu)
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
NV2
DA2
Nhân viên phân tích và thiết kế
6
NV3
DA3
Nhân viên tƣ vấn
10
NV3
DA4
Kỹ sƣ
48
NV4
DA2
Lập trình viên
18
NV5
DA2
Giám đốc
24
NV6
DA4
Giám đốc
48
NV7
DA3
Kỹ sƣ
36
NV8
DA3
Giám đốc
40
Bảng 1.2-4. Quan hệ PhanNhiem
Với mô hình liên kết thực thể nhƣ sau:
12
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.
1.2.1.1. 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.
(1) Phân mảnh ngang nguyên thuỷ.
Phân mảnh ngang nguyên thuỷ là phân rã một quan hệ thành các tập gồm
các bộ dựa trên các vị từ đƣợc định nghĩa trên quan hệ đó.
(2) 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).
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ụ
Phân rã quan hệ DuAn thành các mảnh ngang DuAnH1 và DuAnH2 nhƣ sau:
DuAnH1 = NganSach
200000
(DuAn)
DuAnH2 = NganSach > 200000 (DuAn)
Một số vấn đề gặp phải khi phân hoạch ngang.
13
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.
DuAnH1
=
ViTri =
DuAnH2 = ViTri
DuAnH3 = ViTri
"Hải Phòng"(DuAn)
= "Hà Nội"
(DuAn)
= "TP.Hồ chí Minh"
(DuAn)
Các mảnh thu đƣợc trình bày trong các bảng 2,3,4 tƣơng ứng
MaDuAn
TenDuAn
NganSach
ViTri
DA1
Thiết bị đo đạc
150000
Hải Phòng
Bảng 2 . 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 3 . Mảnh ngang DuAn H2
MaDuAn
TenDuAn
NganSach
ViTri
DA4
Bảo dƣỡng
310000
TP.Hồ
Chí
Minh
Bảng 4 . Mảnh ngang DuAn H3
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 đích 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 đó. Chúng ta
cần nhớ hai điểm. Trƣớc tiên, đƣờng nối giữa quan hệ nguồn và đích đƣợc
định nghĩa là một đƣờng nối bằng (equijon). Thứ hai, nối bằng có thể đƣợc
cài đặt nhờ các nối nửa (semijooin). Điểm này rất quan trọng đối với mục
14
đích của chúng ta vì chúng ta muốn phân hoạch quan hệ đích theo phân mảnh
của nguồn nhƣng cũng muốn mảnh thu đƣợc chỉ định nghĩa trên các thuộc
tính của quan hệ đích.
Nhƣ thế 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 i
Trong đó là số lƣợng các mảnh đƣợc định nghĩa trên R, và S i = Fi(S) với
Fi là công thức định nghĩa mảnh ngang nguyên thuỷ Si.
Ví dụ
Xét đƣờng nối l1 trong hình 2, trong đó Nguon(l1) = TraLuong và Dich(l1)
= 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ó trên 30000 USD.
Hai mảnh đƣợc sinh ra nhƣ sau:
TrinhDoCM, Luong
TrinhDoCM, Luong
TraLuong1
TraLuong2
MaNV, TenNV, TrinhDoCM
MaNV, TenNV, TrinhDoCM
NhanVien1
NhanVien2
Hình 2 . Đồ thị nối giữa các mảnh
NhanVienDanxxuat1 = NhanVien ╞ TraLuong1
NhanVienDanxxuat2 = NhanVien ╞ TraLuong2
Trong đó
TraLuong1 = Luong 30000 (TraLuong)
TraLuong2 = Luong > 30000 (TraLuong)
Kết quả phân mảnh đƣợc trình bày trong các bảng 5,6
15
MaNV
TenNV
TrinhDoCM
NV3
Hoà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 5. 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ệ
NV5
Ngô Đình Vinh
thống
NV6
Trần Mỹ Lệ
Phân tích và thiết kế hệ
NV8
Nguyễn Trƣờng Tam
thống
Kỹ sƣ điện
Phân tích và thiết kế hệ
thống
Bảng 6. 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
Ví dụ
Xét PhanNhiem theo các mảnh DuAnH1, DuAnH3 , DuAnH4 và DuAnH6 của
DuAn đã thu đƣợc trong Ví dụ 2-10. Cần nhớ lại rằng
DuAnH1 = ViTri = “Moltreal” NganSach 200000 (DuAn)
DuAnH3 = ViTri = “Hà Nội” NganSach 200000 (DuAn)
DuAnH4 = ViTri = “Hà Nội” NganSach > 200000 (DuAn)
DuAnH6 = ViTri = “TP.Hồ Chí Minh ” NganSach > 200000 (DuAn)
16
Vì thế phân mảnh dẫn xuất của PhanNhiem theo { DuAn 1,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 7-8-9
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV1
DA1
Giám đốc
12
NV2
DA2
Nhân viên phân tích và thiết kế
24
Bảng 7. Mảnh dẫn xuất PhanNhiemDanxuat1 tƣơng ứng với DuAnH1
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV2
DA2
Nhân viên phân
6
NV4
DA2
tích và thiết kế
18
NV5
DA2
Lập trình viên
24
Giám đốc
Bảng 8. Mảnh dẫn xuất PhanNhiemDanxuat2 tƣơng ứng với DuAnH3
MaNV
MaDuAn
ChucVu
ThoiGianLV
NV3
DA3
Nhân viên tƣ vấn
10
NV6
DA3
Kỹ sƣ
36
V7
DA3
Giám đốc
40
Bảng 9. Mảnh dẫn xuất PhanNhiemDanxuat3 tƣơng ứng với DuAnH4