Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
2,79 MB
Nội dung
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 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 1. LÝ DO PHÂN MẢNH 2. CÁC KIỂU PHÂN MẢNH 3. TÍNH ĐÚNG ĐẮN CỦA PHÂN MẢNH 4. CÁC KIỂU CẤP PHÁT Phương pháp phân mảnh 1. PHÂN MẢNH NGANG 2. PHÂN MẢNH DỌC Chương trình DEMO 2 2 2 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. 3 3 3 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ệm xá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ân tí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 phần này cần được tham chiếu chéo với nhau một cách rõ ràng. 4 4 4 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 ta thà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. 5 5 5 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? 3. Phân mảnh đến mức độ nào? 4. Có cách nào để kiểm tra tính đúng đán và tính phân rã? 5. Cấp phát mảnh như thế nào? 6. Những thông tin nào là cần thiết cho việc phân mảnh và cấp phát mảnh? 2.1 LÝ DO PHÂN MẢNH Nếu dựa trên góc nhìn của việc phân bố dữ liệu thì toàn bộ CSDL chỉ là các tập tin trên hệ thống. Vì thế chỉ cần phân tán các tập tin này trên các node mạng, vì thế không cần đến việc phân mảnh. 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ưng mộ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: 6 6 6 Ta có thể tách theo chiều nganh quan hệ PROJ thành 2 quan hệ PROJ 1 chứa các thông tin về dự án có kinh phí dưới 200000 USD, và PROJ 2 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ệ PROJ 1 chứa các thông tin về kinh phí dự án, và PROJ 2 chứa các thông tin về tên và vị trí dự án. 7 7 7 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ệ bất kỳ. Giả sử được phân mảnh thành các mảnh . Khi đó tính đầy đủ yêu cầu mỗi mục dữ liệu trong có thể tìm thấy trong 1 mảnh trong các mảnh của . TÍNH TÁI TẠO (RECONSTRUCTION) Cho quan hệ bất kỳ. Giả sử được phân mảnh thành các mảnh . Khi đó, tồn tại một toán tử quan hệ sao cho TÍNH TÁCH BIỆT (DISJOINTNESS) Cho quan hệ bất kỳ. Nếu được phân mảnh ngang thành các mảnh . Với bất kỳ một mục dữ liệu thì . 2.4 CÁC KIỂU CẤP PHÁT Các mảnh cần được cấp phát trên các site của mạng. Có 2 kiểu cấp phát chính: KHÔNG NHÂN BẢN Còn gọi là CSDL phân hoạch. Mỗi mảnh nằm trên một site và là bản sao duy nhất của toàn bộ mạng. Khi đó, chi phí truyền tin cao nhưng việc quản trị CSDL sẽ dễ dàng. 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. - 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. 8 8 8 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 THÔNG TIN VỀ CSDL Thông tin này bao gồm lược đồ khái niệm toàn cục.Trong trường hợp này, ta chú ý đến các liên kết giữa các quan hệ, đặc biệt là phép nối. Trong mô hình thực thể quan hệ, các liên kết này biểu diễn bởi mũi tên từ quan hệ đến quan hệ trong đó gọi là owner, gọi là member: , . Ví dụ: liên kết có và . THÔNG TIN VỀ ỨNG DỤNG 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. 9 9 9 Cho quan hệ trong đó là các thuộc tính của quan hệ. Một vị từ đơn có dạng trong đó toán tử , và với là miền xác định của . Ví dụ: PNAME=”Maintenance”, BUGET ≤ 200.000. Các câu truy vấn thường xây dựng từ các vị từ đơn giản bởi các toán tử Boolean. Ở đây, ta gọi một vị từ là vị từ hội sơ cấp (minterm predicate), nếu vị từ có thể xây dựng dựa trên phép hội của các vị từ đơn giản. Bởi vì ta luôn có thể biến đổi một biểu thức bool thành dạng chuẩn hội (conjuctive normal form) nên việc sử dụng vị từ hội 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 , ta định nghĩa tập các vị từ hội tối tiểu (minterm predicates) là: Trong đó . Ví dụ: : PNAME=”Maintencance” ∧ BUGEET ≤ 200000 : NOT(PNAME=”Maintencance”) ∧ BUGEET ≤ 200000 : PNAME=”Maintencance” ∧ BUGEET > 200000 : NOT(PNAME=”Maintencance”) ∧ BUGEET > 200000 Đối với các thông tin định tính về ứng dụng, chúng ta cần biết hai tập dữ liệu. (1) Độ tuyển hội sơ cấp (minterm selectives) là số các bộ của quan hệ được câu truy vấn (tương ứng với minterm predicate ) truy cập. (2) Tần số truy cập dữ liệu (access frequency) của ứng dụng : . 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. Với quan hệ , các mảnh ngang là: Trong đó là công thức chọn dùng để tìm mảnh (còn gọi là minterm fragment). Nếu ở dạng chuẩn hội, thì nó là một minterm predicate. Mỗi một mảnh ngang là tập con các bộ thỏa vị từ hội sơ cấp . Vì vậy, việc phân mảnh ngang là tìm một tập các minterm predicate . Để phân mãnh được tốt, tập vị từ đơn xây dựng nên cần có các tính chất đầy đủ và cực tiểu. 10 10 10 [...]... nghĩa là Và phân mãnh là phân mảnh ngang của 3.2 PHÂN MẢNH DỌC Một phân mảnh dọc của quan hệ là tập các mảnh, trong đó mỗi mảnh chứa tập con các thuộc tính của và các khoá của Mục đích của phân mảnh dọc là phân hoạch một quan hệ thành tập các quan hệ nhỏ hơn để nhiều ứng dụng chỉ cần chạy trên 1 mảnh Phân mảnh tối ưu cho phép giảm tối đa thời gian thực thi các ứng dụng chạy trên các mảnh đó Phân mảnh... và cột theo thứ tự tương ứng để được ma trận hoàn chỉnh Phần cuối của chương trình trình bày về các trường hợp phân hoạch nhị phân ma trận và đưa ra kết luận cuối cùng về phương án phân mảnh dọc tối ưu Tiếp theo là một ví dụ kết quả trả về của chương trình 17 1717 18 1818 19 1919 20 2020 TÀI LIỆU THAM KHẢO Principles of Distributed Database systems M Tamer OZsu, Patrick Valduriez 21 2121 ... đầy đủ và tối tiểu Khởi tạo: - Tìm sao cho phân hoạch theo quy tắc 1 - Tìm sao cho phân hoạch theo quy tắc 1 Lặp Nếu không liên ứng thì loại ra khỏi Cho đến khi đầy đủ Tiếp theo ta suy ra tập các vị từ hội sơ cấp định nghĩa bởi tập vừa tìm được THUẬT TOÁN PHORIZONTAL Input: quan hệ , tập các vị từ đơn đầy đủ và tối tiểu Output: tập các vị từ hội tối tiểu Xác định tập các vị từ hội tối tiểu Xác định... nghĩa theo đều bằng nhau TÍNH TỐI TIỂU (MINIMAL) Cho tập các vị từ đơn giản 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 bị phân thành và thì phải có ít nhất một ứng dụng truy xuất đến và có xác suất khác nhau Nếu tất cả các vị từ trong đều có liên ứng thì 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... Chương trình thể hiện quá trình phân mảnh dọc quan hệ 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 Hình 1 Giao diện của chương trình 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... 1515 4 4 3 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 15 20 10 5 0 0 25 25 25 3 0 0 Chọn 2 cột thuộc tính ban đầu: A1 A2 Solve 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ệ , 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 là và các câu truy vấn Yêu cầu về thông tin ứng dụng còn có ma trận và ma trận... thực thi các ứng dụng chạy trên các mảnh đó 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ân mảnh dọc rất lớn Nếu quan hệ có thuộc tính không khoá, thì số mảnh có thể bằng , số Bell thứ Với lớn 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... từ hội tối tiểu Xác định tập các vị từ hội tối tiểu Xác định tập các phép kéo theo giữa các vị từ đơn Khử các minterm mẫu thuẫn ra khỏi 3.1.3 PHÂN MẢNH NGANG ĐƯỢC SUY 11 1111 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 dựa theo phép chọn trên quan hệ owner của 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... 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 là tập các struy vấn của người dùng sẽ chạy trên quan hệ Với mỗi câu truy vấn và mỗi thuộc tính ta định... của truy vấn tại site Ta thấy càng lớn khi và được sử dụng chung càng nhiều Khi đó ta có thể xây dựng ma trận ái lực mà mỗi phần tử ở dòng cột là 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 . 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 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. 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. 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 ta thành các “mảnh” (fragments) và phân tán những