Phân mảnh ngang chính là việc chia quan hệ thành nhiều các nhóm bộ. Kết quả của quá trình phân mảnh ngang là các quan hệ con, số lƣợng quan hệ con phụ thuộc vào điều kiện ràng buộc của các thuộc tính. Và các bộ trong các quan hệ con là tách biệt nhau. Phân mảnh ngang thực chất là phép chọn quan hệ thỏa mãn một biểu thức điều kiên cho trƣớc. Phần lớn các hệ cơ sở dữ liệu phân tán đƣợc thiết kế theo hƣớng từ trên xuống.Trong đó Thiết kế phân mảnh dữ liệu là công việc đầu tiên phải thực hiện. Mục đích của việc phân mảnh dữ liệu là tạo ra các đơn vị cấp phát logic, sao cho chi phí để thực hiện truy vấn thông tin là thấp nhất. Các bộ hoặc các thuộc tính của quan hệ không thể đƣợc xem nhƣ một đơn vị cấp phát, vì sẽ làm cho việc cấp phát trở lên phức tạp hơn. Thiết kế phân mảnh bằng cách nhóm một số bộ trong trƣờng hợp phân mảnh ngang hay nhóm các thuộc tính trong trƣờng hợp phân mảnh dọc có cùng đặc tính theo quan điểm cấp phát. Các mảnh hình thành bằng các phƣơng pháp phân mảnh tạo ra các đơn vị cấp phát dữ liệu khác nhau.
Có hai loại phƣơng pháp phân mảnh ngang là:
Phân mảnh ngang nguyên thủy: Là phân mảnh ngang đƣợc thực hiện trên các vị từ của chính quan hệ đó.
Phân mảnh ngang dẫn xuất: Là phân rã một quan hệ dựa trên các vị từ của quan hệ khác.
+ Yêu cầu thông tin của phân mảnh ngang:
Công việc thiết kế cơ sở dữ liệu phân tán phụ thuộc rất nhiều vào các yếu tố có là ảnh hƣởng đến một thiết kế tối ƣu, tổ chức logic cơ sở dữ liệu, vị trí các ứng dụng, đặc tính truy xuất của các ứng dụng đến cơ sở dữ liệu và các đặc tính của hệ thống máy tính tại mỗi vị trí. Điều này làm cho việc diễn đạt bài toán phân tán trở nên hết sức phức tạp. Các thông tin cần thiết cho thiết kế phân tán bao gồm:
Thông tin cơ sở dữ liệu Thông tin ứng dụng
26
Thông tin về mạng
Thông tin về hệ thống máy tính
Yêu cầu thông tin về mạng và thông tin về hệ thống máy tính chỉ đƣợc sử dụng trong các mô hình cấp phát, không sử dụng trong các thuật toán phân mảnh dữ liệu sau đây ta xét 2 thông tin sử dụng trong kỹ thuật phân mảnh ngang là thông tin về cơ sở dữ liệu và thông tin về ứng dụng.
+ Thông tin về CSDL: Thông tin về CSDL muốn nói đến lƣợc đồ khái niệm toàn cục. Tức là chúng ta cần biết đƣợc các quan hệ sẽ kết lại với nhau nhƣ thế nào, đặc biệt là bằng các phép nối. Trong mô hình quan hệ, các mối liên hệ này cũng đƣợc biểu thị bằng các quan hệ. tuy nhiên trong các mô hình khác nhƣ mô hình thực thể liên hệ( entity-relationship model), các mối liên hệ đƣợc biểu diễn tƣờng minh. Với mục đích thiết kế phân tán, các mối liên hệ cũng đƣợc mô hình hoá trong bộ khung quan hệ. Theo cách này, chúng ta sẽ vẽ các đƣờng nối có hƣớng (cung các) giữa quan hệ có liên hệ với nhau qua một nối bằng (equijoin).
+ Thông tin về ứng dụng:
Chúng ta cần hai loại thông tin: định tính và định lƣợng về các ứng dụng. Thông tin định tính phục vụ phân mảnh, còn thông tin định lƣợng sử dụng cho mô hình cấp phát.
Bây giờ chúng ta cần tìm cách xác định các vị từ đơn giản cho quan hệ R(A1,A2 …, An) trong đó Ai là thuộc tính với miền giá trị Di. Vị từ đơn giản pk đƣợc định nghĩa trên R có dạng:
pk : Ai Giá trị thuộc tính
Trong đó θ {,=, <, ≠, ≤, >, ≥} và giá trị thuộc tính đƣợc chon từ miền Di. Thấy rằng vị từ đơn giản rất dễ xử lý, tuy nhiên câu vấn tin lại thƣờng là tổ hợp của các vị từ đơn giản. Một tổ hợp cần đặc biệt chú ý là vị từ dạng chuẩn hội, đó là hội của các tuyển vị từ đơn giản.
27
Cho một tập PR = { p1, p2,... pm }, tập các vị từ hội sơ cấp đƣợc ký hiệu là M = { m1,m2... mn }, trong đó mk đƣợc xác định nhƣ sau:
mk =
K i
p*i với 1≤k≤ m, 1 ≤ j ≤ z
Với K là tập con bất kỳ của I = {1, 2, …, m}, và p*i = pi hoặc p*i = pi.
2.1.1. Thuật toán phân mảnh ngang nguyên thủy
Phân mảnh ngang nguyên thuỷ đƣợc định nghĩa bằng một thuật toán chọn trên các quan hệ nguồn của một lƣợc đồ CSDL. Mảnh ngang Ri bao gồm các bộ của R đƣợc chọn ra theo công thức:
Ri = Fi(R), 1≤ i ≤ z.
Trong đó Fi là công thức chọn. Chú ý rằng chúng ta xét Fi có dạng chuẩn hội, nó là một vị từ hội sơ cấp.
- Thuật toán phân mảnh ngang nguyên thủy
Input: R là quan hệ cần phân mảnh ngang cơ sở. Pr là tập các vị từ đơn giản
Output: M là tập các vị từ hội sơ cấp Begin
Pr’ ← COM_MIT(R, Pr)
Xác định tập M các vị từ hội sơ cấp
Xác định tập I các phép kéo theo giữa các pi ∈ Pr’ For mỗi mi ∈ M do
If mi mâu thuẫn với I then M ← M - mi
End_if End_for
End. {PHORIZONTAL} Nhận xét:
Cho tập các vị M = {mi | mi là vị từ hôi sơ cấp i = 1, 2 ,…} Ký hiệu |M| = Card(M). Vậy thì:
28
(1) Mảnh ngang Ri của quan hệ R là một quan hệ chứa các bộ của R thoả mãn vị từ hội sơ cấp mi .
(2) Số lƣợng các mảnh ngang khi phân mảnh theo M sẽ là |M|, mỗi mảnh ngang trong trƣờng hợp này cũng đƣợc gọi là mảnh hội sơ cấp.
Do lí luận trên, chúng ta thấy bƣớc đầu tiên của mọi thuật toán phân mảnh ngang là xác định các vị từ đơn giản sẽ tạo ra các vị từ hội sơ cấp.
Một số tính chất quan trọng của tập vị từ đơn giản là tính đầy đủ và tính cực tiểu.
Định nghĩa 1. Tập các vị từ đơn giản đầy đủ
Tập các vị từ đơn giản Pr đƣợc gọi là đầy đủ nếu và chỉ nếu xác suất mỗi ứng dụng (vấn tin) truy xuất đến một bộ bất kỳ thuộc một mảnh hội sơ cấp nào đó đƣợc định nghĩa theo Pr đều bằng nhau.
Định nghĩa 2. Vị từ đơn giản liên đới
Vị từ đơn giản pđƣợc gọi là liên đới nếu biết đƣợc sự ảnh hƣởng của nó đến cách thực hiện phân mảnh (nghĩa là vị từ p làm cho mảnh F bị phân thành các mảnh Fi và Fj đều khác rỗng, thì vẫn có ít nhất một ứng dụng truy xuất đến Fi và Fj theo những cách khác nhau. Nói cách khác, vị từ đơn giản p phải có liên đới với vị từ phân mảnh.
Định nghĩa 3. Tập vị từ đơn giản cực tiểu
Nếu tất cả các vị từ của tập Pr đều có liên đới thì Pr đƣợc gọi là cực tiểu. Ghi chú :
Một kinh nghiệm để rút ra tính liên đới có thể đƣợc trình bày nhƣ sau: Gọi mi và mj là hai vị từ hội sơ cấp và gọi Fi, Fj là hai mảnh tƣơng ứng với các vị từ hội sơ cấp này. Thế thì pi là liên đới khi và chỉ khi có sự thỏa mãn sau:
) card(F ) acc(m ) card(F ) acc(m j j i i
29
Qui tắc 1 (Thừa nhận). Quy tắc về tính đầy đủ và cực tiểu.
Một quan hệ (hoặc một mảnh) đƣợc phân hoạch thành ít nhất hai phần thì chúng phải đƣợc truy xuất khác nhau bởi ít nhất một ứng dụng.
Nhận xét thuật toán
Thuật toán bắt đầu tìm một vị từ có liên đới và phân hoạch quan hệ đã cho. Vòng lặp Do …. Until để thêm các vị từ vào tập này, bảo đảm tính cực tiểu tại mỗi bƣớc vì thế vào cuối vòng lặp, tập P’R là đầy đủ và cực tiểu.
Bƣớc thứ hai trong quá trình thiết kế phân mảnh ngang nguyên thuỷ là tìm các vị từ hội sơ cấp có thể định nghĩa trên các vị từ trong tập P’R. Việc xác định các vị từ hội sơ cấp là tầm thƣờng; khó khăn chính là tập các vị hội sơ cấp có thể rất lớn - là hàm mũ theo số lƣợng các vị từ đơn giản. Trong bƣớc kế tiếp chúng ta sẽ tìm cách làm giảm số lƣợng vị từ hội sơ cấp cân đƣợc định nghĩa trong phân mảnh.
Bƣớc thứ ba của quá trình thiết kế là loại bỏ một số mảnh vô nghĩa (điều này đƣợc thực hiện khi sử dụng phép kéo theo I đã đƣợc trình bày trong [2], [3].
Nhằm chỉ ra cách tìm tập vị từ hội sơ cấp từ tập các vị từ đơn giản PR (đã đƣợc xác định từ các ứng dụng trên quan hệ R), phân mảnh ngang nguyên thuỷ quan hệ R theo các các vị từ hội sơ cấp đã tìm đƣợc, chúng ta dùng thuật toán P_HORIZONTAL [2],[3], [5].
2.1.2. Thuật toán xác định tập vị từ đầy đủ và cực tiểu
Vị từ đơn giản có tính đầy đủ (Completeness) và tính cực tiểu (Minimality). Tập các vị từ đơn giản Pr là đầy đủ khi và chỉ khi xác suất truy nhập bởi mỗi ứng dụng tới bộ bất kỳ của một mảnh hội sơ cấp bất kỳ đƣợc định nghĩa theo Pr là nhƣ nhau. Vị từ đầy đủ sẽ đảm bảo cho các mảnh thoả mãn các vị từ sơ cấp, nhất quán về mặt logic. Đồng nhất về mặt thống kê theo cách ứng dụng truy nhập. Vì vậy, sử dụng một tập vị từ đầy đủ làm cơ sở cho việc phân mảnh ngang cơ sở.
30
- Mô tả Thuật toán:
Thuật toán COM_MIN tạo ra ra một tập đầy đủ và cực tiểu các vị từ Pr’ từ một tập các vị từ đơn giản Pr cho trƣớc theo quy tắc: một quan hệ hoặc một mảnh “đƣợc phân hoạch thành ít nhất hai phần và chúng đƣợc truy nhập khác nhau bởi ít nhất bởi một ứng dụng” Mảnh fi đƣợc định nghĩa theo một vị từ hội sơ cấp trên Pr’, qui ƣớc là fi của Pr’
- Thuật toán COM_MIN :
Input: R là quan hệ cần phân mảnh ngang cơ sở. Pr là tập các vị từ đơn giản Output: Pr’ là tập các vị từ đơn giản.
Khai báo: F là tập các mảnh hội sơ cấp. Begin
Tìm một vị từ pi ∈ Pr sao cho pi phân hoạch R theo qui tắc Pr’ ← pi
Pr ← Pr – pi
F ← fi {fi là mảnh hội sơ cấp theo pi }
do begin
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 Pr’ ← Pr’ ∪ pj
Pr ← Pr - pj
F ← F ∪ fi
If ∃pk ∈ Pr’, một vị từ không có liên đới then begin
Pr’ ← Pr’ - pk
F ← F - pk
31
End. { COM_MIN}
Thuật toán thực hiện nhƣ sau:
Bắt đầu bằng cách tìm một vị từ có liên đới và phân hoạch quan hệ đã cho. Vòng lặp do-until thêm các vị từ vào tập Pr’, đảm bảo Pr’ là cực tiểu và đầy đủ.
Bƣớc thứ hai: Trong quá trình phân mảnh ngang cơ sở suy dẫn ra tập các vị từ hội sơ cấp có thể đƣợc định nghĩa trên các vị từ trong tập Pr’. Các vị từ hội sơ cấp này xác định các mảnh cấp phát.
Bƣớc thứ ba: Các vị từ hội sơ cấp có thể rất lớn, tỷ lệ hàm mũ theo số lƣợng các vị từ đơn giản Vì vậy cần phải loại bỏ những mảnh không có ý nghĩa, bằng cách xác định những vị từ mâu thuẫn với tập các phép kéo theo (Implication).