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.. nh
Trang 1BỘ 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
Trang 2BỘ 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
Trang 3Xin 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
Trang 4LỜ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
Trang 5MỤ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
Trang 62.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
Trang 7DANH 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
Trang 8CÁ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
Trang 9CÁ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)
Trang 10PHẦ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
Trang 11Đị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
Trang 12loà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
Trang 13Đị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
Trang 14nhiê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ị
Trang 15đầ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=(a ij)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à a ij a ji, trong khi ma trận liền kề của một đồ thị có hướng không
1
2
21
1
0
11
0
3
20
1
1
1 0 2
0
0
0 1 0
0
1
0 1 2
1
0
1 1 0
Trang 16Đị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
Hình 1 Cây liên thông 11 đỉnh có 10 cạnh được gắn trọng số
Trang 171.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
Trang 18Nhậ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)
Lê Hồng Hạnh Nguyễn Trường Tam
Kỹ sư điện Phân tích và thiết kế hệ thống
Kỹ sư cơ khí Lập trình viên Phân tích và thiết kế hệ thống
Kỹ sư điện
Kỹ sư cơ khí Phân tích và thiết kế hệ thống
Bảng 1.2-1 Quan hệ NhanVien
Trang 19 Quan hệ DuAn(MaDuAn, TenDuAn, NganSach)
Quan hệ TraLuong(TrinhDoCM, Luong)
Trang 20 Quan hệ PhanNhiem (MaNV, MaDuAn, ThoiGianLV, ChucVu)
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
Trang 21Cá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
Trang 22DuAnH3 = ViTri = "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
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
Trang 23đí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à Si = 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:
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
Trang 24MaNV 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 5 Mảnh dẫn xuất NhanVienDanxuat1 tương ứng TraLuong1
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 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)
Trang 25Vì thế phân mảnh dẫn xuất của PhanNhiem theo { DuAn1,DuAn3, DuAn4, DuAn6} Sẽ cho:
PhanNhiemDanxuat1 = PhanNhiem ╞ DuAnH1
PhanNhiemDanxuat2 = PhanNhiem ╞ DuAnH3
PhanNhiemDanxuat3 = PhanNhiem ╞ DuAnH4
PhanNhiemDanxuat4 = PhanNhiem ╞ DuAnH6
Thể hiện của các mảnh này được trình bày trong các bảng 7-8-9
12
24 Bảng 7 Mảnh dẫn xuất PhanNhiemDanxuat1 tương ứng với DuAnH1
NV2
NV4
NV5
DA2 DA2DA2
Nhân viên phân tích và thiết kế Lập trình viên Giám đốc
6
18
24
Bảng 8 Mảnh dẫn xuất PhanNhiemDanxuat2 tương ứng với DuAnH3
NV3
NV6
V7
DA3 DA3DA3
Nhân viên tư vấn
Kỹ sư Giám đốc
10
36
40 Bảng 9 Mảnh dẫn xuất PhanNhiemDanxuat3 tương ứng với DuAnH4
Trang 26Ví dụ
Câu vấn tin thứ hai có thể được viết bằng SQL như sau
SELECTChucVu, ThoiGianLV
FROMPhanNhiem, NhanVien
WHERE PhanNhiem.MaNV = NhanVienHi.MaNV
Trong đó i = 1 hoặci = 2, tuỳ thuộc vào nơi đưa ra câu vấn tin Phân mảnh dẫn xuất của PhanNhiem theo phân mảnh của NhanVien được định nghĩa dưới đây và được trình bày trong các bảng 2.3-9
PhanNhiemDanxuat1 = PhanNhiem ╞ NhanVienH1
PhanNhiemDanxuat2 = PhanNhiem ╞ NhanVienH2
NV1
NV2
NV3
DA1 DA1DA2
Giám đốc Nhân viên phân tích và thiết
Kỹ sư Giám đốc
48
48 Bảng 10 Mảnh dẫn xuất PhanNhiemDanxuat4 tương ứng với DuAnH6
Nhân viên tư vấn
Kỹ sư Lập trình viên
Trang 27NV5
NV6
DA2DA4 DA3
Nhân viên phân tích và thiết
kế Giám đốc Giám đốc Giám đốc
hệ nhỏ hơn, để có nhiều ứng dụng chỉ cần chạy trên một mảnh, điều này sẽ làm giảm đáng kể chi phí
Ví dụ Giả sử các ứng dụng sau đây chạy trên quan hệ DuAn trong mỗi trường hợp chúng ta đều thể hiện bởi SQL
q1 : Tìm ngân sách của một dự án, cho biết mã số dự án
SELECT NganSach
FROM DuAn
WHERE MaDuAn = Value
q2 : Tìm tên và ngân sách của mọi dự án
SELECT TenDuAn, NganSach
FROM DuAn
q3 : Tìm tên của mọi dự án được thực hiện tại một thành phố đã cho
SELECT TenDuAn
FROM DuAn
Trang 28q4 : Tìm tổng ngân sách dự án cho mỗi thành phố
- Các loại phân mảnh dọc, khoảng (ngang) hay vùng (hay hỗn hợp) đều
WHERE MaDuAn = Value
q2 : Tìm tên và ngân sách của mọi dự án
SELECT TenDuAn, NganSach
Trang 29FROM DuAn
q3 : Tìm tên của mọi dự án được thực hiện tại một thành phố đã cho
SELECT TenDuAn
FROM DuAn
WHERE ViTri = Value
q4 : Tìm tổng ngân sách dự án cho mỗi thành phố
SELECT SUM(NganSach)
FROM DuAn
WHERE ViTri = Value
* Phân mảnh ngang theo hàm băm
Phân mảnh theo hàm băm là trường hợp tổng quát của Robin Giả sử cần
phân mảnh quan hệ R cho N vùng được đánh số 0, 1, , N-l với thuộc tính phân mảnh là A Bộ t thuộc R được đưa vào vùng k nếu
k = t(A) mod N, trong đó t(A) là giá trị trên thuộc tính A của bộ t
Mã giả như sau:
Y = {t(A)}
For i = 0 To N-1
For Each element In Y
If element mod N = i // Save Bản ghi tương ứng với element vào vùng i
Y - = element
End If
Next element
End For
Trang 30Ví dụ Với quan hệ Nhanvien (bảng 13)
IDNumber HO_VA_TEN NAM_SINH LUONG
Vùng 0 : (NAM_SINH mod 3) = 0
Trang 31- Tái thiết một quan hệ toàn cục từ các mảnh dọc được thực bằng toán tử nối
Tức là nếu quan hệ R được phân thành các mảnh dọc V1, V2, Vv thì:
R = Vi (8)
- Tái thiết một quan hệ toàn cục từ phân mảnh hỗn hợp được thực hiện bằng cách dùng toán tử nối để nối các mảnh dọc sau đó dùng toán tử hợp để hợp các mảnh ngang nếu thứ tự phân mảnh hỗn hợp là phân mảnh ngang sau đó mới phân mảnh dọc hoặc dùng toán tử hợp để hợp các mảnh ngang sau đó dùng toán tử nối để nối các mảnh dọc nếu thứ tự phân mảnh hỗn hợp là phân mảnh dọc trước sau đó mới phân mảnh ngang Như vậy công việc tái thiết có thứ tự ngược với thứ tự phân mảnh ngang và dọc Ký hiệu (HV)i là mảnh hỗn hợp, khi đó: R = (HV)i hoặc (VH)i với (HV)i và
1
v
i 1
Trang 32Nếu các mảnh (HV)i thoả mãn điều kiện (HV)i (HV)J (HV)i - (HV)J hoặc (HV)i (HV)J (HV)J - (HV)i với i,j thì theo định lý 5.5 trang 100 của [2] thì việc phân mảnh và tái thiết sẽ không mất mát thông tin
1.2.3 Cây toán tử
Định nghĩa cây toán tử
Một cây toán tử là cây với mỗi nút lá biểu thị cho một quan hệ được lưu trong cơ sở dữ liệu, nút không phải là lá biểu thị một quan hệ trung gian được sinh ra bởi phép toán quan hệ Chuỗi các phép toán để đi theo hướng lá đến gốc, gốc biểu thị kết quả vấn tin
Cách biến đổi câu vấn tin phép tính quan hệ trở thành một cây toán tử như sau:
i Trước hết tạo ra các nút lá là các quan hệ trong SQL các nút lá nằm sau FROM
ii Nút gốc được tạo ra như phép chiếu chứa các thuộc tính kết quả, các thuộc tính này nằm sau SELECT
iii Lượng tử hoá (vị từ sau WHERE) được chuyển thành các phép tính quan hệ thích hợp (phép chọn, phép nối ,…) đi từ các nút lá đến gốc Chuỗi này có thể được cho trực tiếp qua thứ tự xuất hiện của các vị trí và các toán
tử
Ví dụ : Tìm tên các nhân viên, trừ J.Doe đã làm cho dự án CAD/CAM trong một
hoặc hai năm
Câu SQL là :
SELECT
ENAME {Gốc }
FROM
ASG , EMP, PROJ {Lá}
WHERE ASG.ENO = EMP.ENO
Trang 34Định nghĩa cây toán tử có trọng số
AND 5 SELECT HoTen 6
bộ quản lý”
DS_DuAn.Ten DuAn = “Cao tốc Bắc Nam”
3 DS_NhanVien.Q
ueQuan =
“Hà Nội”
1
7