1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận môn cơ sở dữ liệu nâng cao Thiết kế Cơ sở dữ liệu phân tán

23 874 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

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 2,79 MB

Nội dung

Việc thiết kế một hệ thống máy tính phân tán liên quan đến việc đưa quyết định về vịtrí đặt dữ liệu và chương trình trên các miền của một mạng máy tính, cũng như thiết kế cả chính hệ thố

Trang 1

Trường Đại học Công Nghệ Thông Tin

Đại học quốc gia TP Hồ Chí Minh

Thiết kế Cơ sở dữ liệu

phân tán

***

HV: Lương Chấn Viễn MHV: CH1101155 Môn: Cơ sở dữ liệu nâng cao GV: PGS.TS Đỗ Phúc

Trang 2

MỤC LỤC

QUÁ TRÌNH THIẾT KẾ TOP-DOWN

CÁC VẤN ĐỀ CỦA THIẾT KẾ PHÂN TÁN

Trang 3

Việc thiết kế một hệ thống máy tính phân tán liên quan đến việc đưa quyết định về vịtrí đặt dữ liệu và chương trình trên các miền của một mạng máy tính, cũng như thiết

kế cả chính hệ thống mạng đó Trong trường hợp hệ thống cần thiết kế là một hệ quản trị cơ sở dữ liệu phân tán (distributed DBMSs), thì bài toán đặt ra là: việc phân tán của hệ quản tri CSDL và phân tán của những chương trình ứng dụng chạy trên hệ phân tán đó

Việc tổ chức hệ thống phân tán có thể biểu diễn trên hệ trục toạ độ 3 chiều như sau:

1 Chiều biểu diễn về mức độ chia sẻ của dữ liệu

2 Chiều biểu diễn về hành vi của kiểu mẫu truy xuất

3 Chiều biểu diễn về độ thông tin có được của kiểu mẫu truy xuất

Trong đó, chiều về mức độ chia sẻ (1) có những 3 mốc như sau: (1.0) không có chia

sẽ giữa các ứng dụng với nhau, mỗi ứng dụng và dữ liệu của nó thực thị tai một miền duy nhất và không có bất cứ giao tiếp nào với ứng dụng khác hoặc truy cập dữ liệu tại miền khác (1.1) chia sẽ dữ liệu: tức là mọi chương trình được nhân bản tại mỗi site, nhưng dữ liệu thì không Khi đó yêu cầu từ người dung sẽ được xử lý tại chính site của người dùng, và dữ liệu cần thiết sẽ được truyền qua mạng máy tính Và cuối cùng (1.2) là mức độ chia sẽ dữ liệu lẫn chương trình, khi đó, yêu cầu của người dùng có thể được xứ lý tại một site khác và trả kết quả

Dọc theo chiều (2) về hành vi của kiểu mẫu truy xuất gồm 2 cực: (2.0) tĩnh: tức là các kiểu mẫu truy suất của người dùng không thay đổi theo, và cực còn lại (2.1) động: kiểu mẫu truy suất thay đổi theo từng thời kỳ Trên thực tế, kiểu mẫu truy suất

là tĩnh hoàn toàn thì hiếm gặp, ở đây, ta quan tâm đến mức độ thay đổi qua từng thời điểm của kiểu mẫu truy suất

Chiều thứ (3) thể hiện thông tin của ta về kiểu mẫu truy xuất Từ mốc (3.0) là ta không có bất cứ thông tin gì về người dùng sẽ truy cập CSDL như thế nào đến (3.1)

là ta có thể dự đoán được toàn bộ các kiểu truy vấn của người dùng

Trang 4

1 QUÁ TRÌNH THIẾT KẾ TOP-DOWN

Có 2 chiến lược chính trong việc thiết kế CSDL phân tán là top-down và bottom-up

Ở phần này ta tập trung trình bày về việc thiết kế CSDL theo hướng top-down

Quá trình thiết kế diễn ra như hình vẽ Bắt đầu từ việc phân tích yêu cầu

(requirements analysis) nhằm định nghĩa môi trường của hệ thống, tức ra vạch ra cả

dữ liệu và tiến trình cần thiết có thể cho tất cả người dùng của hệ CSDL Cũng như đưa ra những mục tiêu cho hệ CSDL phân tán đó về hiệu năng, tính đúng đắn, tính kinh tế và tính mở rộng…

Yêu cầu phân tích sẽ được đưa vào 2 hoạt động song song là thiết kế view (view design) và thiết kế khái niệm (concept design) Việc thiết kế view nhằm định nghĩa những giao diện tương tác với người dùng cuối Trong khí đó, việc thiết kế khái niệmxác định những loại thực thể (entity type) và quan hệ giữa những thực thể đó Trong thiết kế khái niệm gồm 2 phần: phân tích thực thể (entity analysis) và phân tích tính năng (functional analysis) liên quan với nhau Phân tích thực thể yêu cầu ta xác định

về cấu trúc thực thể như thuộc tính (attributes) và quan hệ giữa chúng với nhau Phântích tính năng là để xác định nhưng chức năng cơ bản liên quan đến mô hình trên 2

Trang 5

Liên hệ giữa việc thiết kế view với thiết kế khái niệm thể hiện thông qua việc tích hợp view (view intergration) Chú ý rằng mô hình khái niệm không những phải có khả năng tích hợp được với những ứng dụng hiện tại, mà ta còn phải xem xét đến những ứng dụng được đưa ra sau này Quá trình tích hợp viem cần bảo đảm rằng yêu cầu về thực thể và quan hệ cho những view được bao phủ với sơ đồ khái niệm.Không những những thông tin về dữ liệu thực thể và những ứng dụng chạy trên đó được cung cấp, ta còn cần những số liệu thống kê về như tần suất sử dụng của ứng dụng… Những quá trình trên tương ứng với việc thiết kế của một hệ CSDL tập trung.Khi sơ đồ khái niệm toàn cục GCS (Global cemceptual schema) và thông tin về kiểu mẫu truy cập được thu thập, bước tiếp theo ta tiến đến việc thiết kế phân tán

(Distributed Design) Mục tiêu của giai đoạn này, cũng chính là phần trình bày của bài báo cáo, là thiết kế những sơ đồ khái niệm cục bộ LCSs (Local conceptual schemas) bởi việc phân tán các thực thể trên các site của hệ thống phân tán

Việc phân tán không chỉ dừng ở mức phân tán các quan hệ, mà còn chia nhỏ chúng tathành các “mảnh” (fragments) và phân tán những mảnh đó Khi đó việc thiết kế gồm

2 bước: phân mảnh và bố trí các mảnh

Bước cuối cùng của việc thiết kế là thiết kế vật lý (physical design) tức ánh xạ các sơ

đồ khái niệm cục bộ được tìm ra ở bước trước vào các thiết bị lưu trữ vật lý tương ứng ở mỗi site

Quá trình này được lặp lại khi đưa vào thực tế do những biến động của yêu cầu thực

tế Qua một thời gian quan sát, ta cần đưa ra những điều chỉnh hợp lý cho từng giai đoạn

Trang 6

2 CÁC VẤN ĐỀ CỦA THIẾT KẾ PHÂN TÁN

Mục tiêu của phần này là đưa ra những giải thích cụ thể của tiến trình thiết kế phân tán mà ta đã trình bày ở phần trước Trong phần này, ta trả lời các câu hỏi liên quan sau:

1 Tại sao cần phân mảnh?

2 Phân mảnh như thế nào?

Tuy nhiên, vấn đề quan trong là có một số đơn vị thích hợp cho việc phân tán Nhưngmột quan hệ lại không phải là một đơn vị thích hợp Vì (1) ứng dụng thường truy xuất đến một tập con của quan hệ Ta có thể coi mỗi tập con vậy là một đơn vị truy xuất (2) là giả sử ứng dụng cần truy xuất đến quan hệ mà nằm ở một site khác Khi

đó, nếu không phân mảnh thì (2.1) toàn bộ toàn hệ chỉ nằm tại một site khác, và lượng thông tin liên lạc giữa các site sẽ lớn Hay ngược lại (2.2) quan hệ được nhân bản tại mỗi site và ta phải đối mặt với việc lãng phí dung lương lưu trữ

Cuối cùng (3) việc phân rã quan hệ thành nhiều mảnh và mỗi mảnh xử lý như một đơn vị cho phép ta thực hiện nhiều giao dịch đồng thời Hơn thế nữa, ta còn có thể thực thi song song một câu truy vấn bằng cách chia nó thành những câu truy vấn nhỏ tương ứng với các mảnh

2.2 CÁC KIỂU PHÂN MẢNH

Có hai cách phân mảnh: phân mảnh theo chiều ngang, phân mảnh theo chiều dọc

Ví dụ: Xét CSDL như sau:

Trang 7

Ta có thể tách theo chiều nganh quan hệ PROJ thành 2 quan hệ PROJ1 chứa các thông tin về dự án có kinh phí dưới 200000 USD, và PROJ2 chứa các thông tin về dự

án có kinh phí lớn hơn 200000 USD

Hay tách quan hệ PROJ theo chiều dọc (giữ nguyên thuộc tính khoác) thành 2 quan

hệ PROJ1 chứa các thông tin về kinh phí dự án, và PROJ2 chứa các thông tin về tên

và vị trí dự án

Trang 8

Ngoài ra, ta có thể lồng ghép nhiều phân mảnh trên 1 quan hệ Nếu lồng ghép 2 kiểu phân mảnh khác nhau thì ta gọi là phân mảnh hỗn hợp (hybrid fragmentation).

2.3 TÍNH ĐÚNG ĐẮN CỦA PHÂN MẢNH

TÍNH ĐẦY ĐỦ (COMPLETENESS)

Cho quan hệ R bất kỳ Giả sử R được phân mảnh thành các mảnh

FR= { R1, … , R2} Khi đó tính đầy đủ yêu cầu mỗi mục dữ liệu trong R có thể tìm thấy trong 1 mảnh Ri trong các mảnh của R

TÍNH TÁI TẠO (RECONSTRUCTION)

Cho quan hệ R bất kỳ Giả sử R được phân mảnh thành các mảnh

FR= { R1, … , R2} Khi đó, tồn tại một toán tử quan hệ sao cho

NHÂN BẢN

Kiểu CSDL nhân bản có hai dạng:

- Nhân bản đầy đủ: khi đó toàn bộ CSDL đều có bản sao ở mỗi site

Trang 9

- Nhân bản từng phần: khi đó các mảnh được phân tán đến các vị trí, mỗi mảnh có thể có nhiều bản sao nằm ở các vị trí khác nhau Khi đó việc quản trị cơ sở dữ liệu khá phức tạp, khó thực thi.

3 PHƯƠNG PHÁP PHÂN MẢNH

Như đã nói ở phần trước, có 2 kiểu phân mảnh ngang và phân mảnh dọc Ở đây ta trình bày về 2 phương pháp phân mảnh này

3.1 PHÂN MẢNH NGANG

Phân mảnh ngang phân hoạch quan hệ theo các bộ Mỗi mảnh là một tập con của các

bộ của quan hệ Có hai loại phân mảnh ngang: phân mảnh ngang nguyên thuỷ (primary horizontal fragmentation), và phân mảnh ngang được suy Phân mảnh ngang nguyên thủy được thực hiện dựa trên các vị từ được định nghĩa bởi quan hệ

đó Phân mảnh ngang được suy (derived horizontal fragmentation) là sự phân hoạch quan hệ dựa trên vị từ định nghĩa theo một quan hệ khác Trước khi thực hiện phân mảnh, chúng ta cần thu thập thông tin cần thiết

3.1.1 YÊU CẦU THÔNG TIN

trong đó R gọi là owner, S gọi là member: owner ( L)=R, member ( L)=S

Ví dụ: liên kết L1 có owner( L1) =PAY và member( L1) = EMP

THÔNG TIN VỀ ỨNG DỤNG

Trang 10

Yêu cầu thông tin của ứng dụng gồm cả thông tin định tính lẫn định lượng Thông tinđịnh tính định hướng cho việc phân mảnh, trong khi thông tin định lượng được sử dụng chủ yếu trong mô hình cấp phát Những thông tin định tính cơ bản gồm các vị

từ được câu truy vấn của người dùng

Cho quan hệ R[ A1, …, An] trong đó Ai là các thuộc tính của quan hệ Một vị từ đơn p có dạng

sơ cấp trong thuật toán thiết kế không làm mất tính tổng quát

Cho tập các vị từ đơn cho trước Pr={ p1, … , pm}, ta định nghĩa tập các vị từ hội tốitiểu (minterm predicates) M={m1, … , mr} là:

(2) Tần số truy cập dữ liệu (access frequency) của ứng dụng q: acc (q)

3.1.2 PHÂN MẢNH NGANG NGUYÊN THUỶ

Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một phép toán chọn trên các quan hệ owner trong lược đồ CSDL

Trang 11

Với quan hệ R, các mảnh ngang là:

TÍNH ĐẦY ĐỦ (COMPLETE)

Tập các vị từ đơn giản Pr gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng truy

xuất đến một bộ bất kỳ thuộc về một mảnh hội sơ cấp (minterm fragment) nào đó được định nghĩa theo Pr đều bằng nhau

TÍNH TỐI TIỂU (MINIMAL)

Cho tập các vị từ đơn giản Pr Ta nói một vị từ là có liên đới (relevant) trong việc

xác định phân mảnh, nếu nó ảnh hưởng đến việc mảnh f bị phân thành f1 và f2 thì phải có ít nhất một ứng dụng truy xuất đến f1 và f2 có xác suất khác nhau

Nếu tất cả các vị từ trong Pr đều có liên ứng thì Pr là tối tiểu

Qui tắc 1: Một quan hệ hoặc một mảnh được phân hoạch thành ít nhất hai phần khác nhau và được ít nhất một ứng dụng truy cập các bộ ới xác suất khác nhau

THUẬT TOÁN COM_MIN

Input: quan hệ R, tập các vị từ đơn Pr

Output: P r' tập các vị từ đơn đầy đủ và tối tiểu

- Nếu ∃ pk∈ P r' không liên ứng thì loại pk ra khỏi P r'

Cho đến khi P r' đầy đủ

Trang 12

Tiếp theo ta suy ra tập M các vị từ hội sơ cấp định nghĩa bởi tập P r' vừa tìm được.

THUẬT TOÁN PHORIZONTAL

Input: quan hệ R, tập các vị từ đơn đầy đủ và tối tiểu Pr

Output: tập các vị từ hội tối tiểu M

Xác định tập M các vị từ hội tối tiểu

Xác định tập I các phép kéo theo giữa các vị từ đơn p ∈ Pr.

Khử các minterm mẫu thuẫn ra khỏi M

3.1.3 PHÂN MẢNH NGANG ĐƯỢC SUY

Phân mảnh ngang được suy được định nghĩa trên một quan hệ member của một liên kết L dựa theo phép chọn trên quan hệ owner của L Ta cần lưu ý hai điểm sau: (1) đường nối giữa quan owner và member được định nghĩa bằng một phép đẳng nối (equijoin) (2) đẳng nối có thể được cài đặt nhờ các phép bán nối (semijoin)

Cho trước đường nối L, trong đó owner (L)=S và member (L)=R, các mảnh ngang được suy của R được định nghĩa là

Phân mảnh dọc phức tạp hơn so với phân mảnh ngang Điều này do số khả năng phânmảnh dọc rất lớn Nếu quan hệ có m thuộc tính không khoá, thì số mảnh có thể bằng

B(m), số Bell thứ m Với m lớn B (m) mm

3.2.1 YÊU CẦU THÔNG TIN

Những thông tin chính cần cho phân mảnh dọc có liên quan tới các ứng dụng Vì phân mảnh dọc đặt vào một mảnh các thuộc tính thường được truy xuất chung với nhau, ta cần xác định một độ đo khái niệm “tru xuất chung” Số đo này gọi là ái lực (affinity) của thuộc tính, chỉ mức độ liên đới giữa các thuộc tính

Yêu cầu dữ liệu chính có liên quan đến các ứng dụng là tần suất truy xuất (access frequency) của chúng Gọi Q={ q , … , q } là tập các struy vấn của người dùng sẽ

Trang 13

chạy trên quan hệ R( A1, , An) Với mỗi câu truy vấn qi và mỗi thuộc tính Aj ta

định nghĩa giá trị sử dụng (attribute usage value) use( qi, Aj) =1 nếu thuộc tính Aj

được sửa dụng trong truy vấn qi

Ta định nghĩa số đo ái lực thuộc tính (attribute affinity measure) giữa hai thuộc tính

AiAj của quan hệ R( A1, , An) ứng với tập ứng dụng Q={ q1, … , qk} là

aff ( Ai, Aj) = ∑

q ∈Q use(q , A i)∧use(q , A j)

s ∈S

refs(q) accs(q)

Trong đó refs(q ) là số lượng các truy cập đến thuộc tính Ai, Aj cho mỗi thực

thi của ứng dụng qaccs(q ) là tần suất sử dụng của truy vấn tại site s Ta

thấy aff ( Ai, Aj) càng lớn khi Ai và Aj được sử dụng chung càng nhiều

Khi đó ta có thể xây dựng ma trận ái lực AA mà mỗi phần tử ở dòng i cột j là

aff ( Ai, Aj)

3.2.2 THUẬT TOÁN GOM NHÓM

Nhiệm vụ cơ bản trong việc xây dựng thuật toán phân mảnh dọc là tìm cách nào đó

để nhóm các thuộc tính của quan hệ dựa trên ma trận ái lực Ta cần tìm hoán vị các

hàng và cột ma trận ái lực để tạo thành ma trận CA (clustered affinity matrix) sao cho

số đo ái lực toàn cục AM (global affinity measure) là lớn nhất Ta định nghĩa:

aff ( Ai, Aj) ( aff ( Ai, Aj−1)+ aff ( Ai, Aj +1)+ aff ( Ai +1, Aj)+ aff ( Ai−1, Aj) )

Vì ma trận ái lực đối xứng nên

Trang 14

Khi đó ta cần tìm vị trí chèn Ak sao cho max cont( Ai, Ak, Aj).

THUẬT TOÁN BEA

Input: ma trận affinity AA.

Output: ma trận CA

Khởi tạo: cố định 2 cột bất kỳ từ AA vào CA.

Với mỗi cột Ak còn lại

- Tìm vị trí l sao cho cont ( Ai, Ak, Aj) là lớn nhất

- Chèn Ak vào vị trí l

Xem ví vụ ở phần chương trình demo

3.2.3 THUẬT TOÁN PHÂN HOẠCH

Mục đích của việc phân mãnh dọc là tìm những tập thuộc tính được truy xuất cùng nhau bởi các ứng dụng Ta có thể tách các thuộc tính thành m tập con Ở đây, ta chỉ xét việc tách thành 2 tập con

Do ma trận CA đã được gom nhóm nên ta chỉ cần tìm 1 điểm chia theo thứ tự đã xét như sau:

Trang 15

Ta ký hiệu TA là tập các thuộc tính nằm bên trái điểm chia, BA là tập các thuộc tính nằm bên phải điểm chia.

Ta gọi AQ (q )= { Ai:use ( q , Ai) =1 } là tập tất cả các thuộc tính Ai được sử dụng trong truy vấn q Khi đó:

TQ= { q : AQ (q )⊆TA } là tập các truy vấn chỉ sử dụng các thuộc tính trong TA

BQ= { q : AQ( q) ⊆BA } là tập các truy vấn chỉ sử dụng các thuộc tính trong BA

OQ=Q−(TQ ∪ BQ) là tập các truy vấn chỉ sử dụng cả những thuộc tính trong

Trang 16

Xem ví dụ ở chương trình Demo.

CHƯƠNG TRÌNH DEMO

Chương trình thể hiện quá trình phân mảnh dọc quan hệ R bởi thuật toán gom cụm BEA và thuật toán phân hoạch PARTITON Chương trình được viết trên nền Web bởi ngôn ngữ đặc tả HTML và ngôn ngữ lập trình Javascript, có thể chạy trên các trình duyệt web hiện đại hiện nay như Chrome, Opera hay Firefox và Safari

Trang 17

Chương trình gồm 2 phần:

- phần nhập dữ liệu đầu vào bên trái và

- phần trình bày lời giải bên phải

Hình 1 Giao diện của chương trình

Trang 18

Trong đó phần nhập dữ liệu đầu vào yêu cầu nhập số lượng các thuộc tính của quan

hệ R, số lượng các câu lệnh truy vấn và số các site của hệ thống phân tán Chương trình quy ước các thuộc tính của quan hệ của R là A1, … , An và các câu truy vấn

Q1, … ,Qm Yêu cầu về thông tin ứng dụng còn có ma trận USE và ma trận ACC

Do trong thuật toán BEA lúc khởi tạo cố định 2 cột tương ứng với 2 thuộc tính Ai

Aj, vì thế, người dùng có thể chọn 2 thuộc tính tương ứng với 2 cột cố định ban đầu.Phần trình bày lời giải sẽ trả trình bày gồm các phần:

- yêu cầu thông tin: viết lại ma trân USE và ma trận ACC từ dữ liệu đầu vàocũng như tính tổng tần suất truy cập trên các site của truy vấn q Ở đây quy ước refs( q)=1, ∀ site s∈ S.

Solve

4 4 3

Ngày đăng: 10/04/2015, 14:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w