Trong cơ sở dữ liệu phân tán 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à còn hơn thế nữa còn đòi hỏi chúng ph[r]
(1)Chương VI
CƠ SỞ DỮ LIỆU PHÂN TÁN
Chương đề cập đến khái niệm hệ sở liệu phân tán, hệ quản trị sở liệu phân tán toán thiết kế sở liệu phân tán Bài toán thiết kế sở liệu phân tán phức tạp trọng tâm giáo trình trình bày kiến thức hệ sở liệu quan hệ nên phương pháp thiết kế phân tán khơng trình bày chi tiết giải thuật mà chủ yếu nêu vấn đề Mặt khác hệ sở liệu phân tán dựa mơ hình quan hệ nên trước thiết kế phân tán sở liệu phải thiết kế theo chuẩn hệ sở liệu quan hệ tập trung
I CÁC KHÁI NIỆM VỀ HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
Hệ sở liệu phân tán (Distributed DataBase System) xây dựng dựa hai công nghệ sở liệu mạng máy tính Hệ sở liệu phân tán mô tả tập hợp nhiều sở liệu có liên quan logic đến phân bố mạng máy tính
Trong khái niệm mơ tả sở liệu phân tán có hai đặc trưng “liên quan logic” “phân bố mạng” Trong sở liệu phân tán tập tin liệu lưu trữ độc lập nút mạng máy tính phải có liên quan đến mặt logic đòi hỏi chúng phải truy xuất đến qua giao diện chung, thống
Hiện khái niệm xử lý phân tán (Distributed procesing), tính tốn phân tán (Distributed computing) thuật ngữ có từ “phân tán” hay dùng để hệ thống rải rác hệ thống máy tính có đa xử lý (multiprocessor system) xử lý mạng máy tính Cơ sở liệu phân tán khái niệm không bao gồm trường hợp xử lý liệu hệ thống sử dụng nhớ chung, kể nhớ hay nhớ thứ cấp (đĩa từ), thiết phải hệ có sử dụng giao tiếp mạng với trạm làm việc độc lập
Hệ Quản trị sở liệu phân tán (Distributed DBMS) hệ thống phần mềm cho phép quản lý hệ sở liệu phân tán làm cho phân tán trở nên “trong suốt” người sử dụng
(2)CPU … CPU
Memory
CPU Memory
CPU Memory …
DISK
Trạm
Trạm
Trạm
Môi trường mạng
Trạm Trạm
Hình 6.1 Các mơ hình Hệ CSDL phân tán
Trạm Trạm
Trạm
Trạm
Mơi trường mạng Trạm
Hình 6.2 Mơ hình hệ CSDL phân tán
(3)của người sử dụng cho người sử dụng khơng cần phải biết vị trí địa lý liệu + “Trong suốt” phân hoạch (Partition) Do liệu phân tán nhu cầu công việc liệu cần phân hoạch phân hoạch lưu trữ nút khác (đây gọi trình phân mảnh – fragmentation) Quá trình phân mảnh hoàn toàn tự động hệ thống người sử dụng không cần phải can thiệp
+ “Trong suốt” nhân (Replication) Vì lí “hiệu năng”, “tin cậy” nên liệu chép phần vị trí khác
+ “Trong suốt” độc lập liệu
+ “Trong suốt” kết nối mạng Người sử dụng không cần biết có mặt giao tiếp mạng
Phân tán Phân mảnh
Nhân Kết nối mạng Độc lập liệu
Dữ liệu
Hình 6.3 Các tầng suốt hệ thống
Ví dụ 6.1: Một cơng ty có văn phịng Paris, London, NewYork, Toronto Cơng ty có sở liệu sau đây:
Cơ sở liệu nhân viên: EMP (ENo, EName, Title)
Cơ sở liệu dự án: PROJ (PNo, PName, Budget, Loc) Cơ sở liệu lương: PAY (Title, Sal)
Cơ sở liệu phân công: ASG (ENo, PNo, Dur, Resp)
(4)Do tính phân tán văn phịng nên văn phịng có lưu trữ liệu tác nghiệp văn phịng đó, nhân viên dự án mà văn phịng quản lý Ta có sơ đồ lưu trữ phân tán phân mảnh giả định sau:
London Emp London
Emp Paris Proj London
Emp London Emp Paris Proj London
Paris
Emp London Emp Paris Proj London Proj Paris
Paris
Emp o Proj To Torontronto NewYork
Hình 6.4 Sơ đồ lưu trữ phân tán
II MƠ HÌNH KIẾN TRÚC CỦA HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHÂN TÁN Trong mơ hình kiến trúc hệ QTCSDL phân tán trình bày tài liệu kinh điển ta xét mơ hình phổ biến
1.1 Mơ hình kiến trúc hệ phân tán khách/đại lý – client/server.
Đặc trưng hệ chức hệ thống chia làm hai lớp: + Chức đại lý – server function
+ Chức khách hàng – client function
Trong hệ thống khách/đại lý thao tác xử lý liệu đáp ứng yêu cầu khách hàng thực chức đại lý, có kết gửi trả cho khách hàng Ta có mơ hình chức sơ đồ hình 7.5
Hệ khách có tầng:
+ Giao diện tương tác với người sử dụng (User Interface), chương trình ứng dụng (Application Program),
+ Hệ quản trị sở liệu khách hàng (Client DBMS)
+ Các phần mềm mạng có chức truyền tin (Communication Software)
Hệ đại lý có tầng:
+ Các phần mềm mạng có chức truyền tin
(5)+ Tầng tối ưu hóa câu hỏi (Query Optimizer) + Tầng quản lý giao tác (Transaction Manager) + Tầng quản lý khôi phục (Recovery Manager)
+ Tầng hỗ trợ thực thi (Run – time Support Processor)
+ Hệ điều hành quản lý chung giao tiếp với sở liệu vật lý
H
ệ
đ
i
ề
u hà
nh
User Interface Application Program
Client DBMS
Op
erating
sy
st
em
Communication Software Client
Communication Software
Semantic Data Controler
Query Optimizer
Transaction Manager
Recovery Manager
Run – time Support Processor
Op
erating
sy
st
em
Yêu cầu SQL Kết
Server
DataBase
Hình 6.5 Sơ đồ hệ phân tán client/server
(6)truyền tin mạng kết hợp với thiết bị đại lý mạnh tăng tốc độ xử lý liệu hệ thống
1.2 Mơ hình hệ phân tán ngang hàng
Semantic Data Controler User Interface Handler
Global Query Optimizer
Global Execution Monitor
External Schema
Global Conceptual Schema
Local Query Processor
Local Recovery Manager
Run-Time Support Processor
Local Conceptual Schema
System Logic
Local Internal Schema
DataBase User
Processor
Data Processor
User
Requets responses System User
(7)Đặc điểm bật hệ thống liệu tổ chức nút có chức nhau, đồng thời tổ chức liệu nút lại khác nhau, từ cần phải có:
+ Định nghĩa liệu vị trí: nút phải xây dựng lược đồ liệu cục LIS (Local Internal Schema)
+ Mơ tả cấu trúc logic tồn cục: Lược đồ khái niệm toàn cục GCS (Global Conceptual Schema)
+ Mô tả cấu trúc logic vị trí, điều nảy xảy nhân phân mảnh, gọi lược đồ khái niệm cục LCS (Local Conceptual Schema)
+ Mô tả cấu trúc dữu liệu ứng dụng gọi lược đồ ngoại giới ES (External Schema)
Cấu trúc 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) phận xử lý liệu (Data Processor) Hai modun đặt chung máy không tách biệt hệ thống khách/đại lý
Các chức modun sau:
+ User Interface Handler - Giao tiếp người sử dụng: Diễn dịch yêu cầu, định dạng kết
+ Semantic Data Controler - Kiểm soát liệu ngữ nghĩa: Dựa vào lược đồ khái niệm toàn cục để kiểm tra câu vấn tin có thực hay khơng
+ Global Query Optimizer - Tối ưu hóa câu hỏi tồn cục: Định chiến lược thực thi tốt nút
+ Global Execution Monitor – Điều khiển thực thi câu vấn tin toàn cục + Local Query Processor – Xử lý câu hỏi cục
+ Local Recovery Manager – Quản lý khôi phục cục bộ: Quản lý quán có cố
+ Run-Time Support Processor - Bộ phận hỗ trợ thực thi: Quản lý truy xuất sở liệu
1.2 Mơ hình hệ phân tán phức hợp.
(8)Query Processor
Recovery Manager
Run-Time Support Processor
DataBase
User Requets System responses
Transaction Manager
Scheduler
Query Processor
Recovery Manager
Run-Time Support Processor
DataBase
Transaction Manager
Scheduler Multi DBMS Layer
User
Hình 6.7 Sơ đồ kiến trúc hệ phân tán phức hợp
Trong mơ hình nêu mơ hình khách/đại lý phát triển chứng tỏ ưu điểm tính đơn giản hữu hiệu mạng
II THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN
Một sở liệu phân tán dựa mô hình quan hệ trước hết phải tuân thủ quy tắc chuẩn hóa cho sở liệu quan hệ Để phân tán sở liệu có hai hoạt động là: Phân mảnh quan hệ Phân tán quan hệ (cấp phát mảnh)
2.1 Các kiểu phân mảnh
(9)EMP ASG
ENo EName Title ENo PNo Resp Dur
E1 John Ks Điện E1 P1 Quản lý 12 (tháng)
E2 Mary Ks Hệ thống E2 P1 Phân tích HT 24
E3 Bill Ks Cơ khí E2 P2 Phân tích HT
E4 Bush Ks Lập trình E3 P3 Tư vấn 10
E5 Blair Ks Hệ thống E3 P4 Kỹ thuật 48
E6 Tom Ks Điện E4 P2 Lập trình 18
E7 Algor Ks Cơ khí E5 P2 Quản lý 24
E8 David Ks Điện E6 P4 Quản lý 48
E7 P3 Kỹ thuật 36
E8 P3 Quản lý 40
PROJ PAY
PNo PName Budget Loc Title Sal
P1 Thiết bị 150000 Toronto Ks Điện 4000
P2 CSDL 125000 NewYork Ks Hệ thống 7000
P3 Games 75000 NewYork Ks Cơ khí 3500
P4 CAD 100000 Paris Ks Lập trình 2000
2.1.1 Phân mảnh ngang.
Giả sử ta có yêu cầu phân mảnh quan hệ PROJ thành hai bảng PROJ1 PROJ2 cho bảng chứa dự án có ngân sách lớn 100000 chứa dự án có ngân sách nhỏ 100000
PROJ1
PNo PName Budget Loc
P1 Thiết bị 150000 Toronto
P2 CSDL 125000 NewYork
PROJ2
PNo PName Budget Loc
P3 Games 75000 NewYork
(10)2.1.2 Phân mảnh dọc
Cũng quan hệ PROJ ta phân mảnh thành hai bảng PROJ3 PROJ4, khóa quan hệ PNo có mặt hai bảng
PROJ3 PROJ4
PNo PName Loc PNo Budget
P1 Thiết bị Toronto P1 150000
P2 CSDL NewYork P2 125000
P3 Games NewYork P3 75000
P4 CAD Paris P4 100000
Trong thực tế phân mảnh xảy việc kết hợp hai loại phân mảnh ta gọi phân mảnh hỗn hợp Mức độ phân mảnh tùy theo yêu cầu ứng dụng, phân mảnh lớn hay nhỏ gây hiệu ứng phụ khó kiểm sốt
2.1.3 Các quy tắc phân mảnh
Các quy tắc nhằm đảm bảo tính quán sở liệu, đặc biệt ngữ nghĩa liệu
q1. Tính đầy đủ
Nếu quan hệ R phân mảnh thành mảnh R1, R2, , Rn mục liệu phải nằm nhiều mảnh Ở phân ngang mục liệu hiểu cịn phân mảnh dọc thuộc tính Quy tắc đảm bảo không bị liệu phân mảnh
q2. Tính tái thiết
Nếu quan hệ R phân mảnh thành mảnh R1, R2, , Rn phải định nghĩa toán tử quan hệ ∇ cho R = ∇ R
=
n i
i q3 Tính tách biệt
Giả sử quan hệ R phân mảnh thành mảnh R1, R2, , Rn Đối với phân mảnh ngang mục di nằm mảnh Rj khơng nằm mảnh Rk với k≠j
Đối với phân mảnh dọc khóa phải lặp lại mảnh con, cịn thuộc tính khác phải tách rời
2.2 Phương pháp phân mảnh ngang.
(11)Để phục vụ cho hoạt động phân mảnh ta cần có loại thơng tin sau đây: a1) Thơng tin sở liệu.
Đây thông tin lược đồ liệu toàn cục, mối liên kết quan hệ Ta mơ hình hóa liên kết đồ thị có hướng, cung liên hệ kết nối bằng, nút lược đồ quan hệ Quan hệ đầu đường nối gọi quan hệ chủ nhân (Owner) quan hệ cuối đường nối gọi quan hệ thành viên (Member) ta định nghĩa hai hàm Owner Member từ tập đường nối đến tập quan hệ
Ví dụ 6.2:
PAY
Title Sal
EMP PROJ
ENo EName Title PNo PName Budget Loc Dur
ASG
ENo PNo Resp Dur
L3 L2
L1
Ta có hàm Owner Member xác định sau: Owner (L1) = PAY, Member (L1) = EMP Owner (L2) = EMP, Member (L2) = ASG Owner (L3) = PROJ, Member (L3) = ASG a2) Thông tin vềứng dụng.
Thông tin ứng dụng có hai loại: Thơng tin định tính dùng để phân mảnh
thông tin định lượng dùng để cấp phát
Thơng tin định tính vị từ dùng câu vấn tin, vị từ xây dựng dựa phân tích ứng dụng
Định nghĩa vị từđơn giản: Cho lược đồ R = (A1, A2, , An) với thuộc tính Ai có miền xác định Di ta có vị từ đơn giản
(12)Tập PRi chứa vị từ đơn giản quan hệ Ri Ví dụ với quan hệ PROJ ta có tập vị từ đơn giản sau: PPROJ = { PName = ‘Xây dựng’, Budget ≤ 100000 }
Định nghĩa vị từ hội sơ cấp: Cho tập PRi = {pi1, pi2, , pim} chứa vị từ đơn giản Ri Ta định nghĩa tập vị từ hội sơ cấp Mi = {mi1, mi2, , mit} sau:
* mij = pik
P
pik Ri
∧
∈
trong p*ik pik ⎤pik
Ở lí phức tạp nên ta xét đến phủ định vị từ đẳng thức đơn giản
Ví dụ 6.3: Ta xét quan hệ PAY có vị từ đơn giản p1: Title = ‘Ks Điện’
p2: Title = ‘Ks Hệ thống’ p3: Title = ‘Ks Cơ khí’ p4: Title = ‘Ks Lập trình’ p5: Sal ≤ 3500
p6: Sal > 3500
từ ta xây dựng vị từ hội sơ cấp sau: m1: Title = ‘Ks Điện’ ∧ Sal ≤ 3500 m2: Title = ‘Ks Điện’ ∧ Sal > 3500 m3: ⎤(Title = ‘Ks Điện’) ∧ Sal ≤ 3500 m4: ⎤(Title = ‘Ks Điện’) ∧ Sal > 3500
Tất nhiên vị từ đơn giản coi phận vị từ hội sơ cấp thực m3 m4 viết cách sử dụng vị từ tương đương, chẳng hạn: Title ≠ ‘Ks Điện’ ∧ Sal ≤ 3500 Nếu ta xây dựng vị từ hội cách máy móc có số trường hợp vơ nghĩa quan hệ
Các thơng tin có liên quan đến vị từ hội sơ cấp độ tuyển hội sơ cấp tần số
truy xuất Độ tuyển hội sơ cấp đo số lượng quan hệ truy xuất câu vấn tin sử dụng vị từ hội sơ cấp Tần số truy xuất để tần số ứng dụng truy xuất liệu có sử dụng câu vấn tin sử dụng vị từ hội sơ cấp
(13)Phân mảnh ngang nguyên thủy phép chọn quan hệ chủ lược đồ R
Ri = δFi(R) i = 1, , t Fi công thức chọn sử dụng vị từ hội sơ cấp mi
Ví dụ 6.4: Ta phân rã quan hệ PROJ thành PROJ1 PROJ2 sử dụng vị từ Budget ≤ 100000 Budget > 100000
PROJ1 = δBudget ≤ 100000 (PROJ)
PROJ2 = δBudget > 100000(PROJ)
Một vấn đề phức tạp tập vị từ hội sơ cấp dùng để phân mảnh thay đổi ứng dụng hoạt động, gặp nhiều khó khăn miền xác định thuộc tính vô hạn liên tục Chẳng hạn thêm vào PROJ có budget 500000 lúc ta phải xem xét đặt vào PROJ2 hay phải xây dựng thêm PROJ3 hạn chế PROJ2
PROJ2 = δ100000<Budget ≤ 400000 (PROJ)
PROJ3 = δBudget > 400000 (PROJ)
Ví dụ 6.5: Ta phân mảnh PROJ dựa vào vị trí dự án PROJ1 = δ Loc = ‘Toronto’ (PROJ) PROJ2 = δ Loc = ‘NewYork’ (PROJ) PROJ3 = δ Loc = ‘Paris’ (PROJ)
Như từ tập Mi vị từ hội sơ cấp ta có tập mảnh ngang tương ứng Ri i=1 t xây dựng phép chọn sử dụng mi, ta gọi tập {Ri} tập mảnh hội sơ cấp Số mảnh ngang phụ thuộc vào tập vị từ hội sơ cấp, để phân mảnh cần xác định tập vị từ đơn giản tạo vị từ hội sơ cấp Một tập vị từ đơn giản phải tập vị từ có tính đầy đủ cực tiểu Tính đầy đủ hiểu xác suất ứng dụng truy xuất đến mảnh hội sơ cấp sinh nhờ tập vị từ đơn giản Tính cực tiểu hiểu vị từ thừa khơng có ứng dụng truy xuất đến mảnh sinh
Ví dụ 6.6: Với ví dụ 6.5 ta xác định tập PPROJ = {Loc = ‘Toronto’, Loc = ‘NewYork’, Loc = ‘Paris’}
• Nếu truy xuất theo vị trí PPROJ đầy đủ
(14)đủ lúc ta có PPROJ = {Loc = ‘Toronto’, Loc = ‘NewYork’, Loc = ‘Paris’, Budget ≤100000, Budget >100000}
Ví dụ 6.7: Xét PROJ có ứng dụng truy xuất theo vị trí ngân sách ví dụ 6.6
• Tập PPROJ ví dụ 6.6 đơn giản cực tiểu
• Nếu bổ xung thêm vị từ đơn giản PName = ‘Xây dựng’ vào PPROJ làm cho tập vị từ khơng cực tiểu khơng có ứng dụng truy xuất đến mảnh sinh
Khi tập vị từ cực tiểu tất vị từ sinh phân mảnh truy xuất ứng dụng, ta gọi vị từ có liên đới
Bước 1: Thuật tốn tìm tập vị từ đầy đủ cực tiểu
Quy tắc DD&CT: Một quan hệ mảnh phân hoạch thành hai phần chúng truy xuất khác ứng dụng Ta gọi fi PR mảnh fi sinh từ vị từ hội sơ cấp PR Thuật toán COM_MIN
Đầu vào R quan hệ; PR tập vị từ đơn giản Đầu PR’ tập vị từ đơn giản cực tiểu Begin
Tìm vị từ pi ∈PR cho pi phân hoạch R theo quy tắc DD&CT;
PR’ = {pi}; PR = PR –{pi};
F = {fi} /* fi mảnh hội sơ cấp sinh pi*/ Do
Begin
Tìm pj∈PR cho pj phân hoạch mảnh fk PR’ theo quy tắc DD&CT ;
PR’ = PR’ ∪{pj} ; PR = PR –{pj} ;
(15)If ∃ pk∈PR’ vị từ khơng có liên đới then Begin
PR’ = PR’ -{pk} ; F = F-{fk} End ;
End ; Until PR’ đầy đủ End
Bước 2 : Tính tập vị từ hội sơ cấp từ tập đầy đủ cực tiểu
Việc tính tốn dễ hay dẫn đến tập vị từ hội sơ cấp lớn việc tính máy móc Việc giản ước tập vị từ hội sơ cấp thực bước thứ
Bước : Loại bỏ vị từ hội sơ cấp vô nghĩa
Việc phải xác định vị từ mâu thuẫn với tập phép kéo theo Ví dụ , PR’ = {p1, p2} với Att thuộc tính {V1, V2} miền thuộc tính Att ta giả thiết :
p1 : Att = V1 p2 : Att = V2 Vậy ta có phép kéo theo
(Att = V1) ⇒⎡(Att = V2) ⎡(Att = V1 ) ⇒ (Att = V2)
Ta có vị từ hội sơ cấp tính theo quy tắc: m1: (Att = V1) ∧ (Att = V2 )
m2: (Att = V1) ∧⎡(Att = V2 ) m3: ⎡(Att = V1) ∧ (Att = V2 ) m4: ⎡(Att = V1) ∧⎡(Att = V2 )
Các vị từ m1 m4 mâu thuẫn với phép kéo theo xác định loại khỏi PR’
Bước 4: Thuật tốn tìm tập vị từ hội sơ cấp có nghĩa Thuật tốn PHORIZONTAL
Đầu vào R môt quan hệ
(16)Begin
PR’ = COM_MIN (R, PR) ;
Tính tập M vị từ hội sơ cấp từ PR’ ;
Tính tập I phép kéo theo pi ∈ PR’ ; For mỗi mi ∈ M Do
If mi mâu thuẫn với I then M = M – {mi} End
Ví dụ 6.8 : Giả sử có quan hệ PAY PROJ phải phân mảnh ngang nguyên thủy
Giả sử có ứng dụng truy xuất PAY, mẫu tin nhân viên lưu trữ hai nơi Một nơi quản lý thông tin nhân viên có lương cao 3500 nơi nhân viên có lương từ 3500 trở xuống Vì câu vấn tin ứng dụng truy xuất hai nơi Tập vị từ đơn giản dùng để phân hoạch PAY :
p1 : Sal ≤ 3500 p2 : Sal > 3500
Từ ta có tập vị từ đơn giản khởi đầu PR = {p1, p2} Áp dụng thuật tốn COM_MIN với khởi đầu i=1 ta có PR’ = {p1} Đây tập đầy đủ cực tiểu p2 khơng phân hoạch f1 mảnh hội sơ cấp sinh từ p1 Vậy có vị từ hội sơ cấp sau :
m1 : Sal ≤ 3500
m2 : ⎡(Sal ≤ 3500) tương đương với (Sal > 3500)
Cuối có mảnh ngang nguyên thủy PAY phân hoạch theo m1 m2:
PAY2 PAY1
Title Sal Title Sal
Ks Điện 4000 Ks Cơ khí 3500
Ks Hệ thống 7000 Ks Lập trình 2000
Giả sử có hai ứng dụng truy xuất đến PROJ Một ứng dụng truy xuất theo vị trí, chẳng hạn ta có câu truy vấn:
Select PName, Budget
From PROJ
(17)Từ ta có:
PPROJ = { p1: Loc = ‘Toronto’; p2: Loc = ‘New York’; p3: Loc = ‘Paris’} Một ứng dụng khác truy xuất theo ngân sách, ta thêm vào vị từ:
p4: Budget ≤ 100000 p5: Budget > 100000 Cuối ta có tập vị từ đơn giản là:
PPROJ = { p1: Loc = ‘Toronto’; p2: Loc = ‘New York’; p3: Loc = ‘Paris’; p4: Budget ≤ 100000; p5: Budget > 100000}
Thực thuật toán COM_MIN với PPROJ ta thấy tập PPROJ đầy đủ cực tiểu
Xây dựng tập vị từ hội sơ cấp M:
m1: Loc = ‘Toronto’ ∧ Budget ≤ 100000 m2: Loc = ‘Toronto’ ∧ Budget > 100000 m3: Loc = ‘New York’ ∧ Budget ≤ 100000 m4: Loc = ‘New York’ ∧ Budget > 100000 m5: Loc = ‘Paris’ ∧ Budget ≤ 100000 m6: Loc = ‘Paris’ ∧ Budget > 100000 m7: p1 ∧ p2 ∧ p3 ∧ p4 ∧ p5
Các phép kéo theo hiển nhiên:
i1: p1 ⇒ ⎡p2 ∧⎡p3 i5: p5 ⇒ ⎡p4 i2: p2 ⇒ ⎡p1 ∧⎡p3 i6: ⎡p4 ⇒ p5 i3: p3 ⇒ ⎡p1 ∧⎡p2 i7: ⎡p5 ⇒ p4 i4: p4 ⇒ ⎡p5
Xét tập M có vị từ hội chứa hai vị từ đơn giản không xảy mâu thuẫn với phép kéo theo, loại bỏ hết vị từ hội giữ lại vị từ Như có tập vị từ hội sơ cấp cuối là:
(18)Phân mảnh ngang nguyên thủy quan hệ PROJ theo M (lưu ý PROJ1 PROJ6 rỗng) có:
PROJ2 PROJ3
PNo PName Budget Loc PNo PName Budget Loc
P1 Thiết bị 150000 Toronto P2 CSDL 125000 NewYork
PROJ4 PROJ5
PNo PName Budget Loc PNo PName Budget Loc
P3 Games 75000 NewYork P4 CAD 100000 Paris
2.2.3 Phân mảnh ngang dẫn xuất.
Phân mảnh ngang dẫn xuất định nghĩa dựa phân mảnh ngang quan hệ thành viên đường nối dựa theo phép toán chọn quan hệ chủ nhân đường nối đó, hay ta cịn gọi phân mảnh quan hệ thành viên dựa sở phân mảnh quan hệ chủ nhân
Cho trước đường nối L, ta có: Owner (L) = S Member (L) = R Định nghĩa mảnh ngang dẫn xuất R sau:
Ri = R θ Si với i=1 s
trong s số lượng mảnh ngang R, Si = δFi(S) mảnh ngang nguyên thủy xây dựng từ vị từ hội sơ cấp Fi, θ phép liên kết khóa kết nối chủ nhân thành viên
Ví dụ 6.9: xét sơ đồ quan hệ PAY với EMP có đường kết nối L1, ta định nghĩa phép liên kết θ: PAY.Title = EMP.Title.
Trên quan hệ PAY ta có MPAY = { m1: Sal ≤ 3500; m2: Sal >3500} từ PAY chia thành mảnh hội sơ cấp PAY1 PAY2
PAY1 = δSal ≤3500(PAY) PAY2 = δSal >3500(PAY)
Ta có mảnh ngang dẫn xuất: EMP1 = EMP θ PAY1 EMP2 = EMP θ PAY2
EMP1 EMP2
ENo EName Title ENo EName Title
(19)E2 Mary Ks Hệ thống
E3 Bill Ks Cơ khí
E5 Blair Ks Hệ thống
E6 Tom Ks Điện
E7 Algor Ks Cơ khí
E8 David Ks Điện
Sơ đồ liên kết sở liệu sau phân mảnh:
PAY1
Title Sal
PAY2
Title Sal
EMP1
ENo EName Title
EMP2
ENo EName Title
PROJ
PNo PName Budget
L3 L2
L11 L12
ASG
ENo PNo Resp Dur
Ta có số nhận xét quan trọng sau đây:
+ Thuật toán phân mảnh dẫn xuất cần có tập phân hoạch quan hệ chủ nhân - thành viên, tập vị từ liên kết quan hệ chủ nhân thành viên
+ Nếu quan hệ thành viên nhiều chủ nhân vấn đề trở nên phức tạp
+ Phân mảnh dẫn xuất gây nên phân mảnh lan truyền 2.3 Phương pháp phân mảnh dọc.
(20)việc phân mảnh dọc khơng tốn hệ sở liệu phân tán mà cịn tốn hệ sở liệu tập trung
Phân mảnh dọc toán phức tạp, người ta chứng minh quan hệ có m thuộc tính khơng phải thuộc tính khóa số lượng mảnh dọc phân số Bell thứ m (kí hiệu B(m)), số tăng nhanh với số m lớn đạt đến mm Chẳng hạn m=10 B(m)≈115.000, với m=15 B(m)≈109, với m=30 B(m)≈1023 Vì tốn phân mảnh dọc phải sử dụng đến thuật giải heuristic Có hai phương pháp nghiên cứu phương pháp nhóm
phương pháp tách, hai phương pháp phương pháp tách tỏ có tối ưu
Phương pháp nhóm: Khởi đầu tập mảnh, mảnh có thuộc tính, bước ghép số mảnh lại thỏa mãn tiêu chuẩn
Phương pháp tách: Tại bước tìm phân hoạch có lợi cho việc truy xuất ứng dụng thuộc tính
Thơng tin dùng để phân mảnh dọc có liên quan đến ứng dụng, mảnh dọc thường chứa thuộc tính thường xuyên truy xuất chung ứng dụng, người ta tìm cách lượng hóa khái niệm số đo gọi “ái lực” (affinity – lực lơi cuốn) Số đo tính ta tính tần số truy xuất tới thuộc tính ứng dụng Trên sở khái niệm “ái lực” tính độ sử dụng
thuộc tính câu vấn tin ứng dụng người ta xây dựng giải thuật tách hữu hiệu
Gọi Q = {q1, q2, , qt} tập câu vấn tin mà ứng dụng truy xuất quan hệ R(A1, A2, , An) Với câu vấn tin qi thuộc tính Aj đưa giá trị sử dụng thuộc tính, kí hiệu use (qi, Aj) định nghĩa sau:
1 Aj vấn tin qi sử dụng use (qi, Aj) =
0 trường hợp ngược lại
các giá trị use (qi, *) dễ xác định biết ứng dụng chạy CSDL
Ví dụ 6.10: Xét quan hệ PROJ, giả sử ứng dụng sử dụng câu vấn tin SQL truy xuất đến nó:
q1: Tìm ngân sách dự án theo mã số
SELECT Budget
(21)q2: Tìm tên ngân sách tất dự án
SELECT PName, Budget
FROM PROJ q3: Tìm tên dự án theo vị trí
SELECT PName
FROM PROJ
WHERE Loc = V
q4: Tìm tổng ngân sách dự án vị trí SELECT Sum (Budget) FROM PROJ
WHERE Loc = V
Để thuận tiện ta kí hiệu A1 = PNo, A2 = PName; A3 = Budget; A4 = Loc Chúng ta có ma trận sau
A1 A2 A3 A4
q1 1
q2 1
q3 1
q4 0 1
Ta nhận xét giá trị sử dụng không chứa thông tin độ lớn tần số ứng dụng, số đo nằm định nghĩa số đo lực thuộc tính aff (Ai, Aj)
aff (Ai, Aj) = ∑ ∑
= ∧
=1 ( , ) ∀ ) , ( : ) ( ) ( j k i
k A use q A l
q use
k S
k l k acc q
q
ref
trong ref(qk) số truy xuất đến thuộc tính (Ai, Aj) cho ứng dụng qk vị trí Sl acc(qk) kí hiệu số đo tần số truy xuất ứng dụng Kết tính tốn ma trận vng nxn ta gọi ma trận lực thuộc tính AA
Ví dụ 6.11: Tiếp tục với ví dụ đơn giản giả sử ref(qk) = cho tất qk Sl Số đo tần số truy xuất ứng dụng giả thiết sau:
acc1(q1) = 15 acc2(q1) = 20 acc3(q1) = 10 acc1(q2) = acc2(q2) = acc3(q2) =
(22)Như tính số đo lực thuộc tính A1 A3 ứng dụng truy xuất đến hai thuộc tính q1 nên ta có:
aff(A1, A3) = ∑ ∑1k=1 3l=1 accl(qk) = acc1 (q1) +acc2 (q1) + acc3 (q1) = 45 Ma trận lực thuộc tính đầy đủ sau:
A1 A2 A3 A4
A1 45 45
AA = A2 80 75
A3 45 53
A4 75 78
Thuật toán tụ nhóm
Mục tiêu thuật tốn tìm phương pháp để nhóm thuộc tính quan hệ lại dựa giá trị lực thuộc tính AA Ý tưởng thuật toán từ ma trận lực thuộc tính AA sinh ma trận lực tụ CA dựa hoán vị hàng cột, hoán vị thực cho số đo lực chung AM lớn
AM = aff(A
1
n n
i= j=
∑ ∑ i,Aj).[aff(Ai,Aj-1) + aff(Ai,Aj+1) + aff(Ai-1,Aj) +aff(Ai+1,Aj)] aff(A0,Aj) = aff(Ai,A0) = aff(An+1,Aj) = aff(Ai,An+1) = điều kiện biên thuộc tính đặt vào CA vào bên trái thuộc tính cận trái bên phải thuộc tính cận phải hóan vị cột, tương tự cận hốn vị hàng Vì ma trân lực AA có tính đối xứng nên cơng thức thu gọn:
AM = aff(A
1
n n
i= j=
∑ ∑ i,Aj).[aff(Ai,Aj-1) + aff(Ai,Aj+1)] Chúng ta định nghĩa cầu nối (bond) hai thuộc tính Ax Ay là:
bond(Ax,Ay) =
1
n z=
(23)dựa vào định nghĩa viết lại AM sau: AM = [bond(A
1
n j=
∑ j,Aj-1) + bond(Aj,Aj+1)] Bây xét dãy thuộc tính sau:
A1 Ai-1 Ai Aj Aj+1 An AM’ AM’’ số đo lực chung cho thuộc tính là:
AMold = AM’+AM ’’+ bond(Ai-1,Ai)+bond(Ai,Aj)+bond(Aj,Ai)+bond(Aj,Aj+1) = AM’+AM ’’+ bond(Ai-1,Ai)+bond(Aj,Aj+1)+ 2bond(Ai,Aj)
Khi đặt thuộc tính Ak thuộc tính Ai Aj số đo lực chung là:
AMnew = AM’+AM ’’+ bond(Ai-1,Ai)+
bond(Ai,Ak)+bond(Ak,Ai)+bond(Ak,Aj)+bond(Aj,Ak)+bond(Aj,Aj+1) = AM’+AM ’’+ bond(Ai-1,Ai)+bond(Aj,Aj+1)+
2bond(Ai,Ak) + 2bond(Ak,Aj)
Đóng góp thực cho số đo lực chung đặt Ak Ai Aj là:
cont(Ai,Ak,Aj) = AMnew – AMold = 2bond(Ai,Ak) + 2bond(Ak,Aj) - 2bond(Ai,Aj) Ví dụ 6.12: Với ma trận AA tính trên, tính đóng góp thực chuyển thuộc tính A4 vào thuộc tính A1 A2:
cont(A1,A4,A2) = 2bond(A1,A4) + 2bond(A4,A2) - 2bond(A1,A2) Ta có:
bond(A1,A4) = 45*0 + 0*75 + 45*3 + 0*78 = 135 bond(A4,A2) = 11865
bond(A1,A2) = 225
vì vậy: cont(A1,A4,A2) = 2*135 + 2*11865 – 2*225 = 23550 Thuật toán lượng nối BEA (Bond Energy Algorithm) Thuật toán lượng nối thực qua ba bước
(24)B2 Thực lặp Lấy n-i cột lại (i số cột đặt vào CA) thử đặt chúng vào i+1 vị trí cịn lại ma trận CA Nơi đặt chọn cho đóng góp nhiều cho số lực chung mô tả Việc lặp kết thúc khơng cịn cột để đặt
B3 Sắp thứ tự hàng Một thứ tự cột xác định, hàng cần đặt lại để vị trí tương đối chúng phù hợp với vị trí tương đối cột Thuật toán BEA
Đầu vào: AA ma trận lực thuộc tính Đầu ra: CA ma trận lực tụ
Begin
/* Khởi gán */
CA(*,1) := AA(*,1) ; CA(*,2) := AA(*,2) ; index := ;
While index <= n Do /*Chọn vị trí tốt cho thuộc tính AAindex */ Begin
For i :=1 To index -1 Do tính cont (Ai-1,Aindex,Ai); tính cont (Aindex-1, Aindex, Aindex+1);
loc := nơi đặt chọn giá trị cont lớn For j := index DownTo loc Do CA(*,j) := AA(*,j-1);
CA(*,loc) := AA(*,index);
index := index + End
Sắp thứ tự hàng theo thứ tự tương đối cột End
Ví dụ 6.13 Tiếp tục với kết tính tốn ví dụ trên, xem xét q trình gom tụ thuộc tính quan hệ PROJ
(25)Thứ tự 0-3-1 :
cont(A0,A3,A1) = 2bond(A0,A3) + 2bond(A3,A1) - 2bond(A0,A1) biết bond(A0,A1) = bond(A0,A3) = 0, vậy:
cont(A0,A3,A1) = 2bond(A3,A1) = 2(45*48+5*0+53+45+3*0) = 8820 Thứ tự 1-3-2 :
bond(A1,A3) = bond(A3,A1) = 4410 bond(A3,A2) = 890
bond(A1,A2) = 225
cont(A1,A3,A2) = 2bond(A1,A3) + 2bond(A3,A2) - 2bond(A1,A2) = 10150 Thứ tự 2-3-4 :
bond(A1,A4) = 890
bond(A3,A4) = bond(A2,A4) =
cont(A2,A3,A4) = 2bond(A2,A3) + 2bond(A3,A4) - 2bond(A2,A4) = 1780
Trong cách tính tốn lưu ý cột A0 cột A4 vị trí rỗng ma trận CA ngữ cảnh tại, không nhầm lẫn với thuộc tính A4.Ta thấy thứ tự 1-3-2 có số đóng góp lớn nên vị trí chọn
A1 A2 A1 A3 A2
A1 45 A1 45 45
A2 80 A2 80
A3 45 A3 45 53
A4 75 A4 75
(a) (b)
A1 A3 A2 A4 A1 A3 A2 A4
A1 45 45 0 A1 45 45 0
A2 80 75 A3 45 53
A3 45 53 A2 80 75
A4 75 78 A4 75 78
(26)Trong bảng (d) ta thấy ma trận có hai tụ, góc trái bao gồm giá trị lực nhỏ, góc phải có giá trị lực lớn, nhiên thực tế tách biệt không hoàn toàn rõ ràng Nếu ma trận CA lớn ta thấy có nhiều tụ dẫn đến có nhiều phân hoạch để lựa chọn
Thuật tốn phân hoạch thuộc tính
Xét ma trận tụ, điểm nằm đường chéo xác định hai tập thuộc tính Giả sử điểm nằm cột i tập {A1, , Ai} {Ai+1, , An}, ta gọi tập đỉnh (top) TA tập đáy (bottom) BA
A1 A2 Ai Ai+1 An A1
A2 TA
Ai
Ai+1
BA
An
Xét tập ứng dụng Q = {q1, q2, , qt}, ta định nghĩa tập ứng dụng truy xuất TA, truy xuất BA hai AQ(qi) tập thuộc tính truy xuất ứng dụng qi, TQ BQ tập ứng dụng truy xuất TA BA, OQ tập ứng dụng truy xuất hai
AQ(qi) = {Aj ⎪ use (qi,Aj) = 1} TQ = {qi | AQ(qi) ⊆ TA} BQ = {qi | AQ(qi) ⊆ BA} OQ = Q – {TQ ∪ BQ} Giả sử có n thuộc tính có n-1 vị trí chọn cho điểm phân chia Vị trí tốt để chọn cho tống truy xuất mảnh lớn tổng truy xuất hai mảnh nhỏ Chúng ta định nghĩa phương trình chi phí sau: CQ = ∑∑ ref
∈ ∀Q qi Sj
j(qi) accj(qi) CTQ = ∑ ∑
∈TQ∀
qi Sj
refj(qi) accj(qi) CBQ = ∑ ∑ ref
∈BQ∀
qi Sj
j(qi) accj(qi) COQ = ∑ ∑
∈OQ∀
qi Sj
(27)Phương trình tối ưu hóa xác định điểm x (1≤x≤n) cho: z = CTQ * CBQ – COQ2→ max
Để chọn x theo phương trình tối ưu hóa phải xét tất n-1 trường hợp Để cho đơn giản xét trường hợp điểm z tụ nằm góc trái góc phải ma trận CA Điểm z chia quan hệ R thành hai mảnh R1 R2 cho R1∩R2 = K (tập thuộc tính khóa chính)
Thuật tốn PARTITION
Đầu vào: CA ma trận lực tụ, R quan hệ, ref ma trận sử dụng thuộc tính, acc ma trận tần số truy xuất, K tập thuộc tính khóa R
Đầu ra: F tập mảnh dọc Begin
z vị trí thuộc cột thứ nhất;
tính CTQ1;
tính CBQ1;
tính COQ1;
best := CTQ1 * CBQ1 – COQ21 For i := To n-1 Do
Begin
tính CTQi; tính CBQi; tính COQi;
z := CTQi * CBQi – COQ2i; If z > best Then best := z End;
R1 := ∏TA(R) ∪ K; R2 := ∏BA(R) ∪ K; F := R1∪R2
(28)Ví dụ 6.14 : Tiếp tục với tính tốn với liệu có acc1(q1) = 15 acc2(q1) = 20 acc3(q1) = 10
acc1(q2) = acc2(q2) = acc3(q2) = acc1(q3) = 25 acc2(q3) = 25 acc3(q3) = 25 acc1(q4) = acc2(q4) = acc3(q4) =
A1 A2 A3 A4
q1 1
q2 1
q3 1
q4 0 1
Ở vị trí : TA = {A1}, TQ = {}, BQ = {q2, q3, q4}, OQ = {q1} CTQ1 =
CBQ1 = acc1(q2) + acc2(q2) + acc3(q2) + acc1(q3) + acc2(q3) + acc3(q3) + acc1(q4) + acc2(q4) + acc3(q4) = 83
COQ1 = 45 z = - 2025
Ở vị trí : TA = {A1, A3}, TQ = {q1}, BQ = {q3}, OQ = {q2, q4} CTQ2 = 45
CBQ2 = 75 COQ2 =
z = 3311
Ở vị trí : TA = {A1, A3, A2}, TQ = {q1, q2}, BQ = {}, OQ = {q3, q4} CTQ3 = 50
CBQ3 = COQ3 = 78
z = - 6084
(29)2.4 Phân tán tài nguyên
Phân tán tài nguyên toán hệ sở liệu phân tán, sở liệu phân tán có đặc trưng riêng, toán biết đến lý thuyết mạng với cách đặt vấn đề cấp phát tập tin Giả sử ta có tập mảnh F = {F1, F2, , Fn} mạng bao gồm nút S = {S1, S2, , Sm}, mạng có tập ứng dụng chạy App = {A1, A2, , Aq} Bài tốn cấp phát u cầu tìm cách phân phối tối ưu mảnh Fi cho nút S
Tính tối ưu hiểu cấp phát với chi phí nhỏ với hiệu cao Các chi phí bao gồm khơng gian lưu trữ mảnh Fi vị trí Sj, chi phí vấn tin, chi phí cập nhật, chi phí cho truyền liệu Hiệu tính sở giảm thời gian đáp ứng tăng tối đa lưu lượng hệ thống vị trí
Đây toán phức tạp, người ta phải giải toán phương pháp heuristic chưa có phương pháp thật hữu hiệu để giải toán tối ưu tổng quát
TĨM TẮT CHƯƠNG
• Hệ sở liệu phân tán: Hệ sở liệu phân tán mô tả tập hợp nhiều sở liệu có liên quan logic đến phân bố mạng máy tính
• Hệ Quản trị sở liệu phân tán: Hệ thống phần mềm cho phép quản lý hệ sở liệu phân tán làm cho phân tán trở nên “trong suốt” người sử dụng
• Kiến trúc Hệ Quản trị sở liệu phân tán: Mơ hình phổ biến có nhiều ưu điểm mơ hình client/server
• Thiết kế phân tán gồm ba toán chủ yếu: Phân mảnh ngang để chia quan hệ theo bộ, phân mảnh dọc để chia quan hệ theo thuộc tính phân tán tài nguyên để cấp phát tập tin liệu
CÂU HỎI VÀ BÀI TẬP
(30)2 Hãy phân tích ưu điểm kiến trúc hệ quản trị sở liệu phân tán theo mơ hình khách/đại lý
3 Hãy mơ tả chức tầng kiến trúc hệ quản trịc CSDL phân tán theo mơ hình khách/đại lý
4 Phân tích ý nghĩa quy tắc phân mảnh thiết kế hệ sở liệu phân tán