1. Trang chủ
  2. » Mẫu Slide

Bai giang CSDL phan tan

30 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

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 =

p

ik

P

p

ik 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

Ngày đăng: 13/05/2021, 21:36

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w