2. Cấu trúc luận văn
1.8. Kết luận chương
Qua chương này luận văn trình bày khung nhìn tổng quát hơn về hệ thống cơ sở dữ liệu phân tán. Từ đó để người đọc có thể hình dung được và dễ dàng so sánh hệ thống cơ sở dữ liệu tập trung và phân tán. Dễ dàng hơn trong việc lựa chọn sử dụng mô hình nào tốt trong ứng dụng của mình.
Chương 1 của luận văn đã nêu hiện trạng về xử lí dữ liệu, tổ chức cơ sở dữ liệu tập trung và phân tán tại Thái Nguyên, rồi cho thấy nhu cầu của phân tích, thiết kế, xây dựng cơ sở dữ liệu phân tán, đáp ứng nhu cầu xử lí dữ liệu về công tác tuyển sinh học sinh THPT tại Thái Nguyên.
Chương 2.
CƠ SỞ LÍ THUYẾT LIÊN QUAN 2.1. Phân đoạn dữ liệu
Theo [1, 2, 5], phân đoạn trong cơ sở dữ liệu phân tán được quan tâm theo (i) phân đoạn ngang; (ii) phân đoạn dọc; và (iii) phân đoạn hỗn hợp. Chủ đề thứ ba ứng với việc phân đoạn cả dọc lẫn ngang.
Nói trong mô hình dữ liệu quan hệ, phân đoạn ngang cho phép tách các bảng dữ liệu thành các bảng dữ liệu nhỏ hơn, không thay đổi lược đồ dữ liệu. Mỗi quan hệ nhỏ ứng với tập con của các dòng dữ liệu. Việc khôi phục bảng dữ liệu ban đầu được thực hiện nhờ phép hợp của đại số quan hệ.
2.1.1. Giới thiệu
Phân đoạn là kỹ thuật quan trọng trong cơ sở dữ liệu phân tán. Nó quyết định tính sẵn sàng và hiệu suất truy vấn của cơ sở dữ liệu phân tán. Các phần dưới đây sẽ dùng cơ sở dữ liệu quan hệ để minh họa cách phân đoạn dữ liệu.
Phân hoạch cơ sở dữ liệu thành các mảnh (fragments): sự phân đoạn cho phép phân chia một đối tượng đơn lẻ thành hai hay nhiều mảnh. Việc chia quan hệ tổng thể thành các mảnh có thể thực hiện bằng cách áp dụng các kiểu phân đoạn sau:
Phân đoạn ngang;
Phân đoạn dọc;
Phân đoạn hỗn hợp: là sự kết hợp giữa phân đoạn ngang và phân đoạn dọc
2.1.2. Nhu cầu phân đoạn dữ liệu
Trong thiết kế cơ sở dữ liệu phân tán, việc phân đoạn dữ liệu là vô cùng quan trọng vì các lý do sau đây:
Dữ liệu được lưu theo dạng bảng hai chiều, chiều ngang và chiều dọc, các thao tác trên cơ sở dữ liệu thực chất là thao tác trên các bảng dữ liệu. Nếu không phân đoạn dữ liệu, các truy vấn và xử lý sẽ phải quét toàn bộ dữ liệu trên bảng để đưa ra được một kết quả đúng. Nếu dữ liệu bảng rất lớn thì việc xử lý và truy vấn sẽ rất lâu.
Hình 2.2. Phân đoạn dữ liệu
được xử lý như một đơn vị dữ liệu. Sẽ cho phép thực hiện các giao dịch đồng thời. Các xử lý không phải quét toàn bộ dữ liệu của bảng mà chỉ cần quét trên các mảnh dữ liệu đúng với điều kiện truy vấn. Đồng thời việc phân đoạn các quan hệ cũng cho phép thực hiện song song một câu truy vấn bằng cách chia nó thành một tập các truy vấn con thực hiện trên các mảnh. Vì vậy việc phân đoạn sẽ làm tăng mức hoạt động đồng thời và tăng lưu lượng hoạt động của hệ thống.
Tuy nhiên việc phân đoạn dữ liệu không được tối ưu hoàn toàn mà nó có một số hạn chế như sau:
1. Nếu ứng dụng có các khung nhìn được định nghĩa trên nhiều mảnh dữ liệu khác nhau sẽ làm giảm hiệu suất hoạt động của hệ thống, làm tăng truy xuất dữ liệu đến các mảnh và tăng chi phí kết nối các mảnh.
2. Việc kiểm soát ngữ nghĩa và tính toàn vẹn sẽ khó khăn hơn.
2.1.3. Các điều kiện ràng buộc trong thiết kế phân đoạn
Một phương pháp thiết kế phân đoạn đúng đắn phải thoải mãn ba ràng buộc sau:
Tính đầy đủ: Toàn bộ dữ liệu của quan hệ tổng thể phải được ánh xạ vào các phân đoạn quan hệ và ngược lại. Điều này có nghĩa là, không tồn tại một mục dữ liệu nào thuộc vào quan hệ tổng thể mà không thuộc vào bất kỳ một phân đoạn nào.
Xây dựng lại: Quan hệ tổng thể có thể được xây dựng lại từ các phân đoạn mà nó đã tách ra. Điều kiện này là hiển nhiên, bởi vì trong thực tế chỉ có các phân đoạn được lưu trữ trong CSDL phân tán, và quan hệ tổng thể phải được xây dựng lại thông qua các phân đoạn khi cần thiết.
Tính rời nhau: các phân đoạn được tách ra từ quan hệ tổng thể phải là rời nhau. Tuy nhiên, điều kiện này chỉ áp dụng chính vào việc phân đoạn ngang, trong khi việc phân đoạn dọc nhiều khi vẫn được phép vi phạm điều kiện này.
2.2. Phân đoạn ngang
Theo [2, 5], phân đoạn ngang cho phép tách quan hệ tổng thể R thành các tập con R1, Rp, …, Rn. Mỗi tập con chứa một số n-bộ của R, điều này rất hữu ích trong CSDL phân tán, nơi mỗi tập con bao gồm các dữ liệu có các thuộc tính địa lý chung. Mỗi n-bộ thuộc vào một trong các thành phần để có thể khôi phục được quan hệ tổng thể R khi cần thiết. Việc khôi phục quan hệ R được thực hiện bằng phép hợp các quan hệ: R R1 R2 R3 ... Rn
2.3. Phân đoạn dọc
2.3.1. Giới thiệu
Theo [1, 2, 5], phân đoạn dọc một quan hệ tổng thể là việc chia các thuộc tính của nó thành các nhóm. Điều này là hữu ích trong các CSDL phân tán, khi mà mỗi nhóm các thuộc tính có thể chứa dữ liệu có chung những thuộc tính địa lý.
Việc phân đoạn là đúng đắn nếu như mỗi thuộc tính của quan hệ tổng thể được ánh xạ thành thuộc tính của ít nhất một đoạn con, và phải đảm bảo điều kiện là quan hệ tổng thể được xây dựng lại từ các phân đoạn mà nó chia ra bằng các phép kết nối.
Phân rã theo chiều dọc quan hệ tổng thể R thành các quan hệ Ri: Ri = chiếu của quan hệ R trên các thuộc tính Ai, …, Aj. Quan hệ ban đầu được khôi phục nhờ các phép kết nối tự nhiên.
Sau phân đoạn dọc, cơ sở dữ liệu mới sẽ gồm nhiều bảng dữ liệu nhỏ, ứng với các Ri.
Bài toán phân đoạn dọc được phát biểu trong bài năm 1984 [10].
Tuy nhiên việc phân đoạn đối với Ri là như nhau với mọi i, nên có thể xét bài toán rút gọn, tức phân đoạn dọc với quan hê ̣ R.
Theo [10], giả sử có quan hệ R(A1, …, An), phân đoạn dọc yêu cầu tách R thành các Rj, chẳng hạn R(A1, …, A8) được tách ra R1 (A1, …, A4), Rp (A5, …, A8), tức tách theo các thuộc tính của bảng quan hệ. Điều kiện của việc tách phải là (i) khôi phục được bảng R ban đầu, mà không mất thông tin; (ii) đáp ứng nhu cầu truy cập R của các quá trình trong hệ thống cơ sở dữ liệu, tức đáp ứng các nhu cầu truy cập của các giao tác Tp đến các thuộc tính, hay cột, Ai.
Hình 2.3. Minh họa tách bảng
Khi có thuộc tính khóa trong bảng, thuộc tính này cần nằm trong các quan hệ nhỏ, để bảo đảm khôi phục bảng quan hê ̣ ban đầu, mà không mất thông tin, nhờ phép nối của đại số quan hệ.
2.3.2. Quá trình phân đoạn
Phân đoạn bảng quan hê ̣ thuộc quá trình thiết kế cơ sở dữ liệu. Bắt đầu từ bảng dữ liệu phổ quát, ngườ i ta tách ra các bảng quan hê ̣ nhỏ. Yêu cầu không mất thông tin.
Theo tài liệu của Bobak [6], quá trình tách có các bước:
1. Xác định ma trận sử du ̣ng thuộc tính; 2. Xây dựng ma trận hấp dẫn xếp cụm;
3. Phân đoạn ma trận hấp dẫn xếp cụm;
4. Gán các bảng phân đoạn ứng với các trạm phân tán.
2.3.4. Thuật toán tụ năng lượng BEA và ứng du ̣ng
2.3.4.1. Chuẩn bị dữ liệu
Thuật toán BEA được trình bày trong [10]. Bước đầu yêu cầu xác định các quá trình chạy trên cơ sở dữ liệu phân tán. Ứng với mỗi bảng quan hệ sẽ có ma trận hai chiều; trục ngang chứa các cột tạo nên bảng quan hệ. Cột dọc cho biết các quá trình truy cập các cột của bảng.
Hình 2.4. Bảng dữ liệu biết được khi thiết kế cơ sở dữ liệu
Một khi tất cả các ma trận sử du ̣ng thuộc tính được xác định, người ta xác định tần số truy cập của ứng du ̣ng trên các phần của bảng. Chẳng hạn quá trình P1 truy cập các trạm Si được tính theo số lần/ tuần, tức
Bảng 2.1. Dữ liệu từ hình trên
Quá trình Trạm Số lần chạy/ tuần
P1 P1 P1 S1 S2 S3 5 10 2
ACC (P1) = 5, SITE = S1 ACC (P1) = 10, SITE = S2 ACC (P1) = 2, SITE = S3
Sau đó người ta thấy cần xác định tính hấp dẫn, tức sự gần nhau của các thuộc tính thông qua việc khai thác các quá trình, để phân cụm các thuộc tính.
2.3.4.2. Thuật toán BEA
Theo [10], bước thứ hai tạo ma trận hấp dẫn xếp cụm. Ma trận này cho biết các cụm có xác suất truy cập cao như nhau. Việc phân đoạn các cụm cho phép xác định lược đồ phân đoạn của quan hê ̣.
Khái niệm về phân cụm các thuộc tính có xác suất truy cập gần nhau xuất phát từ khái niệm "năng lượng tụ", cho biết sự tụ lại của năng lượng tại nơi nào đó. Thuâ ̣t toán BEA được sử du ̣ng.
Năng lượng ME của các phần tử của ma trận A = (aij), M*N được tính theo ) ( 2 1 ) ( , 1 , 1 1, 1, 1 1 j i j i j i j i M i M j ij a a a a a A ME Công thức 1
Hình 2.5. Thí dụ về mức tụ năng lượng ME
Vấn đề đặt ra là xác định hoán vị các dòng và cột của ma trận A, để giá trị ME (A)- max. Nếu xét trên một dòng của ma trận A, giả sử có giao hoán
={(1), …, (N)} của N cột, cho ma trận mới B = [bij] = [ai, (j)], ngườ i ta cần cực đại
( )
max bi,j bi,j 1 bi,j 1
Trong đó xét tất cả N! hoán vị có thể. Việc này dẫn đến bài toán gán bình phương QAP.
2.3.4.3 Xác định điểm tách
Bước thứ ba sử du ̣ng ma trận hấp dẫn đã xếp cụm và sử du ̣ng hàm giá để định vị tọa độ của điểm phân tách bảng trên ma trận các thuộc tính. Điểm tách này cho phép xác định các bảng quan hê ̣ nhỏ, đặt tại các trạm phân tán.
2.3.4.4. Xét lại vấn đề tách
Quay lại bài toán phân đoạn đã nhắc ban đầu: người ta cần xác định các bản ghi logic hay các quan hệ như một đối tượng phân đoạn; mỗi đối tượng gồm tập các thuộc tính. Một đối tượng có thể được phân đoạn dọc, nhờ phép chiếu của đại số quan hệ, vào các tập thuộc tính khác nhau, tạo nên các đối tượng mới, gọi là các đoạn.
Phân đoạn dọc nhị phân tạo nên hai đoạn. Việc này gọi là (i) không chồng lắp nếu giao của các thuộc tính là rỗng; (ii) ngược lại là chồng lắp.
Liên quan đến phân đoạn dọc, người ta đề cập:
1. Đặc tả cơ sở dữ liệu và đặc tả giao tác. Cơ sở dữ liệu gồm các đối tượng, cho dưới dạng các định nghĩa lược đồ. Mỗi đối tượng có tập các thuộc tính. Tập các giao tác được xác định trước cơ sở dữ liệu, tức người ta biết về mức quan trọng của giao tác. Đặc tả giao tác là thích hợp với phân đoạn dọc của một đối tượng, và mang thông tin sau:
Tần suất, theo đơn vị thời gian hay trong thời kì, xảy ra giao tác; cùng một giao tác có thể tiếp cận nhiều trạm trong cơ sở dữ liệu phân tác. Người ta xác định được tần suất truy cập của giao tác Ti
tạo mỗi trạm Sj;
Tập con các thuộc tính dùng trong phép cập nhật hay tìm kiếm của giao tác Ti;
Tổng các xuất hiện của đối tượng quan tâm, tính theo trung bình của xuất hiện của giao tác Ti.
Thông tin này luôn có sau pha thiết kế logic của hoạt động thiết kế cơ sở dữ liệu.
Quyết định logic, liên quan đến cấu trú c và thành phần của các đoạn của đối tượng;
Quyết định về phân bố và định vị, liên quan đến việc đặt các đoạn tại các thiết bị nhớ, hay trạm, khác nhau;
Quyết định vật lí, liên quan đến cấu trú c lưu trữ, tổ chức tệp, và các phương pháp truy cập đối với mỗi đoạn.
Việc sử du ̣ng thuật ngữ logic hay vật lí trên chỉ để tiện gọi, do người ta khó xác định rõ rệt khác biệt giữa chúng.
3. Phân đoạn dọc có hai pha:
Thiết kế các đoạn theo kinh nghiệm, dựa trên tần suất truy cập logic của các giao tác;
Thiết kế dựa trên các nhân tố giá, liên quan đến môi trường vật lí. Pha này cho phép làm tinh việc phân đoạn và phân bố các đoạn tại các mức lưu trữ phân cấp hay trong nhiều trạm của cơ sở dữ liệu phân tán.
4. Định tên các thể hiện trong các đoạn. Trong môi trường mà đối tượng đơn được tách và phân bố tới một hay nhiều trạm, cần thiết biết mỗi thể hiện của đối tượng trong các doạn được định tên đầy đủ. Ngườ i ta thực hiện yêu cầu này theo hai cách:
Tạo bản sao của khóa chính của đối tượng trong mỗi đoạn;
Dùng tên của thể hiện dữ liệu, tức định tên bộ dữ liệu, tức các tên điều khiển hệ thống đối với mỗi bộ dữ liệu của đối tượng ban đầu. Tên này được gắn với mỗi đoạn.
2.3.5. Xác định ma trận sử du ̣ng các thuộc tính
Trong các phần này và phần sau, quá trình phân đoạn được thể hiện qua thí dụ đơn giản. Thủ tục hình thức được thể hiện qua thuật toán trong phần sau. Nhắc lại là có các quá trình cần thiết (i) phân cụm các thuật toán, để đạt được năng lượng tích tụ cực đại; (ii) hoán vị các cột, dòng của ma trận thuâ ̣t toán, để tạo các cụm thuộc tính có xác suất được các giao tác {Ti} truy cập gần như nhau, tức cực đại hóa giá trị về giá.
Theo thí dụ trong tài liệu của Boback [6], giả sử có lược đồ đơn giản R(mã số của đơn vị, tên lãnh đạo đơn vị, địa chỉ, tên đơn vị, số nhân viên), kí hiệu để tiện trình bày thí dụ R(C1, …, C5). Thuộc tính C1 là khóa của quan hệ.
Hình 2.6. Chương trình SQL để khai báo lược đồ
Người ta xác định các quá trình Pk truy cập các cột dữ liệu Ci. Quá trình P Các thuộc tính được truy cập
P1 Pp P3 P4 P5 C1, C4 Cp, C5 C3, C4 C1, C3 C3, C5 Bảng 2.2. Quá trình Pk truy cập Ci
Thể hiện qua dạng ma trận, ngườ i ta có ma trận sử du ̣ng các thuộc tính.
Giả sử có các trạm S1, …, S4. Các tần suất truy cập của mỗi quá trình được xác định theo ACC (Pj) = giá trị, trạm = i. Từ các có số này, và tham số REF (Pj) cho biết số các tham chiếu của Pj đến bảng dữ liệu, ngườ i ta tính được:
AFFj = REF (Pj) * ACC (Pj) (công thức 2)
Theo [6], trong nhiều tài liệu, ngườ i ta chọn REF = 1.
Hình 2.8. Các tần suất truy cập của các quá trình Pj
Như vậy độ hấp dẫn của các thuộc tính được thống kê là:
Bảng 2.3. Các AFF tính được dựa trên các ACC, như kết quả trong hình 5
Quá trình P Các thuộc tính được truy cập Hấp dẫn AFF
P1 Pp P3 P4 P5 C1, C4 Cp, C5 C3, C4 C1, C3 C3, C5 4 7 5 5 4 2.3.6. Xây dựng ma trận hấp dẫn xếp cụm
Thuật toán hấp dẫn tụ năng lượng BEA được trình bày trực quan qua thí dụ vừa nêu, với các bước dưới đây. Sơ đồ khối thực hiện thuật toán, trong bài toán ứng dụng thực tế, được trrình bày trong chương 3 của luận văn.
2.3.6.1. Viết lại ma trận
Ma trận hấp dẫn xếp cụm được xác định theo bảng trên là:
Hình 2.9. Ma trận hấp dẫn xếp cụm