Sử dụng quan hệ như đơn vị phân bổ: Nếu quan hệ không được nhân bản, chúng ta có khối lương lớn dữ liệu phải được truy cập từ xa Nếu quan hệ được nhân bản, có thể có những nhân bản
Trang 1Thiết kế CSDL phân tán
Trang 3 Phân tán các ưng dụng chạy trên CSDL
Chúng ta sẽ không quan tâm đến phân bố ứng dụng mà quan tâm đến phân bố
dữ liệu
Trang 4Khung qui chiếu cho thiết kế
Hệ trục qui chiếu quá trình thiết kế
Mức độ chia sẽ : không chia sẽ, chia sẽ dữ liệu, ứng dụng + dữ liệu
cách truy xuất dữ liệu : tĩnh, động
Mức độ tri thức về cách truy xuất: không có thông tin , có một phần thông tin, có đầy
đủ thông tin
Thiết kế phải được xem xét trong khung qui chiếu này
Trang 5Chiến lược thiết kế
Tiếp cận từ trên xuống (Top-down)
Trang 6Thiết kế từ trên xuống
Trang 7Thiết kế từ trên xuống (tt.)
Thiết kế phân tán là công việc chính của quá trình thiết kế (các công việc khác tương đương trong CSDL tập trung)
Mục tiêu : Thiết kế các lược đồ cục bộ bằng cách phân bổ lược đồ toàn cục lên các vị trí
Hai yếu tố quan trọng
Làm sao để kiểm tra tính đúng ?
Làm sao định vị cho các phân mảnh ? Có cần nhân bản không ? Bao nhiêu bản ?
Trang 8Thiết kế từ dưới lên (Bottom-up)
Trang 9Phân mảnh
Đơn vị hợp lý để phân bổ là gì ? Quan hệ hay mảnh của quan hệ ?
Sử dụng quan hệ như đơn vị phân bổ:
Nếu quan hệ không được nhân bản, chúng ta có khối lương lớn dữ liệu phải được truy cập từ xa
Nếu quan hệ được nhân bản, có thể có những nhân bản không cần thiết và làm tăng chi
chí lưu trữ cũng như cập nhật
Có thể là một giải pháp tốt, nếu các truy vấn cần tất cả dữ liệu của quan hệ và dữ liệu chỉ được truy xuất ở vị trí nó được lưu trữ
S d ng m nh c a quan hử ụ ả ủ ệ:
Khung nhìn cho ứng dụng thường là tập con của quan hệ
Như vậy, tính cục bộ cuea các truy xuất được định nghĩa trên tập con của quan hệ
Cho phép một số giao tác được xử lý đồng thời
Cho phép xử lý song song cho cùng một câu truy vấn (intra-query concurrency)
Tuy vậy quản trị ngữ nghĩa của dữ liệu sẽ phức tạp hơn (đặc biệt là kiểm tra RBTV)
⇒ Các mảnh của quan hệ thường là các đơn vị phân bổ
Trang 10 Các thông tin sau cần thiết cho việc xác định phân mảnh:
Thông tin định lượng: tần suất truy vấn, truy vấn được thực hiện ở đau, tính chọn lọc của truy vấn v.v.
Thông tin định tính: loại truy xuất, đọc/viết v.v.
Trang 11Các loại phân mảnh
Phân mảnh ngang
Phân mảnh dọc
Phân mảnh hỗn hợp
Trang 12Ví dụ
Trang 13Ví dụ (tt)
Phân mảnh ngang quan hệ PROJ thành 2 mảnh
PROJ1 : các dự án có kinh phí ít hơn 200000
PROJ2 : các dự án có kinh phí lơn hơn hay bằng 200000
Trang 14Ví dụ (tt)
Phân mảnh dọc quan hệ PROJ thành hai mảnh
PROJ1 : chỉ chứa các thông tin PNO, BUDGET
PROJ2 : chỉ chứa các thông tin PNO,PNAME,LOC
Trang 15Tính đúng của phân mảnh
Tính đầy đủ
Một LDQH R được phân ră thành n lược đồ con R1, R2,…Rn là đầy đủ nếu và chỉ nếu mỗi yếu tố dữ liệu trên R đều có thể tìm thấy trong một vài Ri
Tính tái thiết được
Nếu một LDQH R được phân mảnh thành n lược đồ con R1,R2,…,Rn thì phải tồn tại một phép toán quan hệ ∆ sao cho
R = ∆ Ri ∀ Ri, i=1 n
Tính tách biệt
Nếu một LDQH R được phân ră thành n lược đồ con R1,,R2,…Rn và một mục dữ liệu
di trong Rj, thì nó sẽ không nằm trong Rk nào khác (k=1 n và k≠j)
Trang 16Phân mảnh ngang
Nguyên tắc của phân mảnh ngang
Mỗi vị trí nên giữ tất cả dữ liệu mà nó cần truy xuất
Thông tin tại một vị trí phải được phân mảnh sao cho truy vấn được thực hiện nhanh
hơn
Phân mảnh ngang được định nghĩa như phép chọn
Ví dụ :
Trang 17Phân mảnh ngang (tt.)
Tính toán phân mảnh ngang (lý tưởng)
Tính tần suất của mỗi câu truy vấn trên vị trí q1,,,,qn
Viết lại các câu truy vấn dưới dạng chuẩn kết (disjunction of conjunctions); các biểu thứ chuẩn kết được gọi là các minterms.
Tính độ chọn của các minterms
Tìm tập đầy đủ và tối thiểu của các minterms (predicates)
Tập vị từ là đầy đủ nếu và chỉ nếu hai bộ bất kỳ của cùng một mảnh phải có cùng xác suất được truy xuất từ bất kỳ ứng dụng nào
Tập vì từ là tối thiểu nếu và chỉ nếu có ít nhất một truy vấn truy xuất đến phân mảnh
Có một số giải thuật để xác định phân mảnh ngang như CON MIN và
PHORIZONTAL
Trang 18Phân mảnh ngang
Ví dụ : phân mảnh ngang quan hệ PROJ
Xét câu truy vấn : liệt kê tên và kinh phí của dự án theo mã số dự án PNO
Câu truy vấn này có thể được phát ra ở cả 3 vị trí
Phân mảnh dựa trên LOC, sử dụng tập vị từ sau :
Trang 19Phân mảnh ngang (tt)
Nếu truy xuất chỉ theo vị trí, thì tập vị từ (phân mảnh) trên là đầy đủ
Do các bộ của các phân mảnh có xác suất đuợc truy cập như sau là 1/6
Nếu có thêm yêu cầu truy xuất chỉ những dự án có kinh phí nhỏ hơn $200.000, thì tập vì từ trên là không đầy đủ
Do bộ P2 trong phân mảnh PROJ2 có xác suất được truy cập cao hơn bộ P3
Thêm vào tập vị từ các vị từ BUDGET < 200000 và BUDGET >= 200000, sẽ bảo đảm tính đầy đủ
Trang 20Phân mảnh ngang tiếp theo
Tập vị từ dưới đây là đầy đủ
tập minterms xây dựng tập vị từ này là
Trang 21Phân mảnh ngang (tt.)
Các phân mảnh ngang hình thành là
Nhận xét : phân mảnh PROJ2 bị phân thành hai mảnh, các phân mảnh
PROJ1,PROJ3 cũng có thể được phân ra nếu có các dự án nhỏ hơn và lớn hơn 200000
Trang 22Phân mảnh ngang (tt.)
Phân mảnh ngang trên cũng là tốt thiểu
Do các phân mảnh điều được truy xuất ít nhất bởi một yêu cầu truy xuất (ứng dụng)
Giả sử chúng ta có thêm yêu cầu truy xuất chỉ những dự án về Intrusmentation (PNAME=“Intsrusmentation”), thì phân phân mảnh trên là không thối thiểu
Do chỉ có phân mảnh PROJ1 được truy xuất, các phân mảnh khác không được truy xuất
đến !!!
Trang 23Các thông tin cần thiết cho phân mảnh ngang
Vị từ hội sơ cấp (minterm predicate) là hội (conjunction) của các vị từ đơn giản
định nghĩa M={m1,m2,…,mz} như sau :
Trang 24Các thông tin cần thiết (tt.)
Điều kiện của một câu truy vấn có thể được biểu diễn dưới dạng chuẩn hội (conjunctive normal form) của các vị từ hội sơ cấp
E= ∨ mi
⇒Không mất tính tổng quát chúng ta sẽ làm việc với các vị từ sơ cấp
⇒Vấn đề là làm sao xác định được một tập các vị từ đơn giản đầy đủ và tối thiểu
Trang 25Các thông tin cần thiết (tt.)
Ví dụ : với Pr gồm 2 vị từ hội đơn giản
JNAME =« Maintenance »;BUDGET≤ 200000
chúng ta có các vị từ hội sơ cấp sau :
Trang 26Các thông tin cần thiết (tt.)
Thông tin về cơ sở dữ liệu
Các mối liên hệ (relationships)
L c lự ượng c a quan h card(R)ủ ệ
Trang 27Vi dụ
Trang 28Các thông tin cần thiết (tt.)
Trang 29Phân mảnh ngang nguyên thủy
Định nghĩa
Rj = R: Fj 1≤j≤m
ở đây Fj là một công thức chọn (là một vị từ hội sơ cấp mi)
Như vậy một phân mảnh Rj là các bộ của R thỏa vị từ hội sơ cấp mi
Cho trước một tập các vị từ hội sơ cấp M, số phân mảnh ngang bằng số lượng vị từ hội
sơ cấp => tập phân mảnh ngang này được gọi là tập các phân mảnh ngang sơ cấp
Trang 30Thuật toán
Input : một quan hệ R, tập các vị từ đơn giản Pr
Output : Một tập phân mảnh của R={R1,R2,…Rn} thỏa hai tính chất
Đầy đủ
Tối thiểu
Trang 31Thuật tóan COM_MIN
Input : Một quan hệ R, và tập các vị từ đơn Pr
Output : Một tập Pr’ đầy đủ và tối thiểu của Pr
Qui tắc 1 : Một quan hệ hoặc một phân mảnh đựoc phân hoặch thành ít nhất hai phần được truy xuất khác nhau bởi một ứng dụng
Trang 32Thuật toán COM_MIN
1 Khởi tạo
Tìm một Pi ∈ Pr sao cho Pi phân hoặch R theo qui tắc 1
Pr’=pi; Pr= Pr-pi; F = fi
2 Lặp và thêm vị từ vào Pr’ cho đến khi nó đầy đủ
1. Tìm một pj ∈ Pr sao cho pj phân hoặch một mảnh fk của Pr’ theo qui tắc 1
2. Pr’=Pr’ ∪ pj;Pr=Pr – pj; F=F ∪ Fj
3. Nếu ∃ pk ∈ Pr’, là mmột vị từ không liên quan thì Pr’ = Pr’ –pk; F = F – pk
Trang 33Giải thuật phân mảnh ngang
Sử dụng thuật tóan COM_MIN để phân rã
Input : một quan hệ R, một tập các vị từ đơn giản Pr
Output : Một tập các vị từ sơ cấp M theo đó quan hệ R được phân rã
1. Pr’ nhận đựoc từ thuật tóan COM_MIN
2. Xác định tập M của các vị từ cơ sở
3. Xác định tập I các suy diễn giữa các pk ∈ Pr
4. Lọai bỏ các vị từ cơ sở mâu thuẩn trong M
Trang 34Ví dụ
Hai quan hệ cần phân mảnh : S và J
Phân mảnh quan hệ S
Ứng dụng : kiểm tra mức lương và tăng lương
Các mẩu tin về nhân viên đựoc lưu trử ở hai vị trí => ứng dụng sẽ được thực thi ở hai nơi
Các vị từ đơn giản
Pr={p1,p2} là đầy đủ và tối thiểu : Pr’=Pr
Các vị từ cơ sở
Trang 36 Phân mảnh quan hệ J
Ứng dụng :
Tìm tên và BUDGET của một dự án theo mă số (JNO) : ứng dụng được thực thi trên 3 vị trí
Truy xuất thông tin dự án thông qua BUDGET : mmọt vị trí lưu giữ các dự án có BUDGET≤ 200000 và một vị
trí khác lưu giữ các dự án có BUDGET>200000
Các vị từ đơn giản
Cho ứng dụng 1
Cho ứng dụng 2
Pr’=Pr={p1,p2,p3,p4,p5}
Trang 37 Phân mảnh quan hệ J (tiếp theo)
Phân mảnh cơ sở sau khi loại bỏ các mâu thuẩn
Trang 39Phân mảnh dọc
Trang 41Phân mảnh dọc (tt.)
Gom nhóm các thuộc tính
⇒ Các phân mảnh giao nhau
• Tách thuộc tính
• Các phân mảnh không giao nhau
• Phù hợp với thiết kế từ trên xuống
• Chúng ta không xem việc các mảnh có chứa khóa của quan hệ ban đầu là giao nhau
Trang 42Các thông tin cần thiết
Thông tin về ứng dụng
Độ tương đồng của thuộc tính (attribute affinities) :
Đo độ « giống nhau » của một thuộc tính với các thuộc tính khác
Giá trị sử dụng của thuộc tính (attribute usage value)
Cho một tập các câu truy vấn Q={Q1,Q2,…,Qm} thực hiện trên một quan hệ R(A1,A2,…,An), chúng ta định nghĩa
Chúng ta cũng định nghĩa vector use(qi, • ) cho mỗi câu truy vấn qi
Trang 43Độ tương đồng của thuộc tính
Độ tương đồng giữa hai thuộc tính Ai, Aj của quan hệ R(A1,A2,…,An) với một tập hợp các câu truy vấn Q(Q1,Q2,…,Qm) được định nghĩa như sau
Trang 44Định nghĩa use(qi,Aj)
Cho 4 quan hệ sau :
Cho A1=JNO, A2=JNAME, A3=BUDGET, A4=LOC
Trang 45Ví dụ
Giả sử chi phí của mọi truy vấn là 1
Giả sử tần xuất truy xuất như sau:
Thì ma trận độ đo tương đồng
Trang 46Giải thuật phân nhóm
Từ ma trận độ đo tương đồng thuộc tính AA, tìm giải pháp sắp xếp lại các thuộc tính để nhận được các nhóm thuộc tính có độ đo liên kết cao hơn độ liên kết với các thuộc tính của nhóm khác
Thuật tóan năng lượng liên kết BEA (Bond energy algorithm) được sử dụng
để phân nhóm các thực thể sao cho độ đo liên kết tổng thể
là cao nhất
Trang 47Thuật toán BEA
Input : ma trận liên kết thuộc tính AA
Output : một ma trận liên kết CA đã phân nhóm
1. Khởi tạo : đặt và cố định một cột của AA vào ma trận CA
2. Lặp: đặt n-i cột còn lại vào i+1 vị trí còn lại của CA, sao cho nó đóng góp lớn
nhất vào độ đo ái lực toàn cục
3. Thứ tự của dòng : theo thứ tự cột
Trang 48Thế nào là vị trí tốt nhất ?
Vị trí nào là tốt nhất ? Định nghĩa sự đóng góp của một vị trí
ở đây
Trang 50Ví dụ
Bởi vậy, vị trí được chọn là
Trang 51Ví dụ
Sau khi A4 được đặt, chúng ta có CA như sau
Trang 52Thuật tóan phân mảnh dọc
Làm thế nào chúng ta có thể chia một tập thuộc tính đã gom nhóm A1,A2,
…,An thành hai (hay nhiều) tập {A1,…,Ai} và {Ai, ,An} sao cho không có (hoặc ít nhất) các ứng dụng truy xuất cả hai tập này
Trang 53 CTQ : tổng số truy xuất đến các thuộc tính của các ưng dụng chỉ truy xuất TA
CBQ : tổng số truy xuất đến các thuộc tính của các ứng dụng chỉ truy xuất BA
COQ : tổng số truy xuất đến các thuộc tính của các ứng dụng truy xuẩt cả hai TA và BA
Vấn đề : Tìm một điểm trên đường chéo sao cho biểu thức sau lơn nhất
Trang 54Thuật tóan
Hai vấn đề
1 Phân nhóm tiến hành từ giửa ma trận CA
1. Dời một dòng lên và một cột sang trái và áp dụng thuật toán tìm điểm phân
Trang 56Phân mảnh hổn hợp
Trang 57Ví dụ
Trang 58Nhân bản và cấp phát
Trang 59Định nghĩa
Nhân bản (Replication) : phân mảnh nào sẽ được nhân ra nhiều bản ?
Nhân bản toàn bộ : sao chép toàn bộ CSDL cho nhiều vị trí khác nhau
Nhân bản chọn lọc : chọn các phân mảnh để nhân lên nhiều bản đặt ở nhiều vị trí
Cấp phát/định vị (Allocation): Các mảnh sẽ được đặt tại vị trí nào ?
Tập trung: một CSDL được quản lý bởi một DBMS tại một vị trí tập trung
Phân hoạch : các phân mảnh được đặt ở các vị trí khác nhau
Trang 60Nhân bản (Replication)
So sánh các giải pháp nhân bản
Trang 61Cấp phát phân mảnh
Vấn đề
Cho F={F1, ,Fm} các phân mảnh
S={S1,…,Sn} các vị trí (node) Q={q1,…,qs} các ứng dụng Tìm một phân bổ tối ưu các Fi trên các Sj
Yếu tố tối ưu
Chi phí thấp nhất
Truyền thông + lưu trữ + xử ký
Chi phí về thời gian đáp ứng
Trang 62Các giải pháp cấp phát
Cấp phát tập tin (File Allocation) vs Cấp phát cơ sở dữ liệu (Database Allocation)
Các phân mảnh không phải là các tập tin riêng rẽ : các mối liên hệ phải được quan tâm
Truy cập cơ sở dữ liệu thì phức tạp hơn
Chi phí bảo đảm ràng buộc tòan vẹn phải được tính đến
Chi phí quản lý truy xuất đồng thời
Trang 63Các thông tin cần thiết
Thông tin về cơ sở dữ liệu
Tần suất chọn các phân mảnh
Kích thước của phân mảnh
Thông tin về ứng dụng
Số truy xuất chỉ đọc của một câu truy vấn đến một phân mảnh
Số truy xuất cập nhật của một câu truy vấn đến một phân mảnh
Một ma trận chỉ ra câu truy vấn nào sẽ thao tác trên mảnh nào
Vị trí kích họat của các câu truy vấn
Thông tin về vị trí
Đơn giá xử lý
Đơn giá lưu trữ
Thông tin về mạng
Chí phí truyền giữa hai vị trí
Kích thước của một đơn vị truyền
Trang 66Mô hình cấp phát (tt)
Chi phí xử lý là tổng của 3 yếu tố
Chi phí truy xuất
Chi phí bảo đảm ràng buộc toàn vẹn
Chi phí kiểm soát đồng thời
Trang 67Mô hình cấp phát (tt)
Chi phí truyền bao gồm 2 thành phần
Chí phí cập nhật
Chi phí truy hồi
Mô hình hóa các ràng buộc
Thời gian đáp ứng
Không gian lưu trữ
Khả năng xử lý
Trang 68Mô hình cấp phát (tt)
Nhận xét
Độ phức tạp của mô hình cấp phát này là NP-đầy đủ
Sử dụng heuristic để giảm không gian tìm kiếm lời giải