Người ta có thể nhóm các sinh viên thành hai nhóm tùy theo sĩ số: Nhóm thuộc lớp có sĩ số lớn hơn 50 và nhóm thuộc lớp có sĩ số nhỏ hơn hoặc bằng 50. Hai mảnh Sinh viên1 và Sinh viên2 được định nghĩa như sau: SV1=Sinh viên |>< Lớp1; SV2=Sinh viên |>< Lớp2; Trong đó: Lớp1=sĩ số >50( Lớp); Lớp2=sĩ số <=50( Lớp)
Lưu ý ở đây: muốn thực hiện phân mảnh ngang dẫn xuất, chúng ta cần ba nguyên liệu (input):
1. Tập các phân hoạch của quan hệ chủ nhân (Thí dụ: Lớp1, Lớp2). 2. Quan hệ thành viên
Sinh viên. mã lớp.
4. Vấn đề phức tạp cần chú ý: Trong lược đồ CSDL, chúng ta hay gặp nhiều đường nối đến một quan hệ R. Như thế có thể có nhiều cách phân mảnh cho quan hệ R. Quyết định chọn cách phân mảnh nào cần dựa trên hai tiêu chuẩn sau: (i) Phân mảnh có đặc tính nối tốt hơn; (ii) Phân mảnh được sử dụng trong nhiều ứng dụng hơn.
Người ta cần kiểm định tính đúng đắn: Kiểm tra tính đúng của phân mảnh ngang.
a. Tính đầy đủ
Phân mảnh ngang nguyên thuỷ: Với điều kiện các vị từ chọn là đầy đủ, phân mảnh thu cũng được đảm bảo là đầy đủ, bởi vì cơ sở của thuật toán phân mảnh là tập các vị từ cực tiểu và đầy đủ Pr‟, nên tính đầy đủ được bảo đảm với điều kiện không có sai sót xảy ra.
Phân mảnh ngang dẫn xuất: Có khác chút ít, khó khăn chính ở đây là do vị từ định nghĩa phân mảnh có liên quan đến hai quan hệ. Trước tiên chúng ta hãy định nghĩa qui tắc đầy đủ một cách hình thức.
R là quan hệ thành viên của một đường nối mà chủ nhân là quan hệ S. Gọi A là thuộc tính nối giữa R và S, thế thì với mỗi bộ t của R, phải có một bộ t‟ của S sao cho t.A=t‟.A. Quy tắc này được gọi là ràng buộc toàn vẹn hay toàn vẹn tham chiếu, bảo đảm rằng mọi bộ trong các mảnh của quan hệ thành viên đều nằm trong quan hệ chủ nhân.
b. Tính tái thiết được
Tái thiết một quan hệ toàn cục từ các mảnh được thực hiện bằng toán tử hợp trong cả phân mảnh ngang nguyên thủy lẫn dẫn xuất. Vì thế một quan hệ R với phân mảnh Fr={R1, R2,…,Rm} chúng ta có R = Ri, Ri FR
c. Tính tách rời
Với phân mảnh nguyên thuỷ tính tách rời sẽ được bảo đảm miễn là các vị từ hội sơ cấp xác định phân mảnh có tính loại trừ tương hỗ. Với phân mảnh dẫn xuất tính tách rời có thể bảo đảm nếu đồ thị nối thuộc loại đơn giản.
2.2.2. Phân mảnh dọc
2.2.2.1. Khái niệm phân mảnh dọc
Liên quan đến vấn đề này , theo Phạm Thế Quế [8]: Phân mảnh dọc quan hệ R sinh ra các mảnh R1, R2,..., Rr, sao cho mỗi mảnh chứa một tập con các thuộc tính của quan hệ R và khoá của nó. Mục đích của phân mảnh dọc là phân chia quan hệ R thành tập các quan hệ nhỏ hơn để có nhiều ứng dụng có thể chỉ cần thực hiện trên một mảnh. Mảnh tối ưu là mảnh sinh ra một lược đồ phân mảnh cho phép giảm tối thiểu thời gian thực hiện của ứng dụng trên mảnh đó.
Kỹ thuật phân mảnh dọc phức tạp hơn so với kỹ thuật phân mảnh ngang, vì số lựa chọn phân hoạch rất lớn. Để có được các lời giải tối ưu cho bài toán phân mảnh dọc rất không hiệu quả, phải sử dụng hai phương pháp Heuristic cho phân mảnh dọc các quan hệ toàn cục:
1. Nhóm thuộc tính: Bắt đầu gán mỗi thuộc tính cho một mảnh và trong mỗi bước, nối một số mảnh lại với nhau cho đến khi thỏa điều kiện.
2. Tách mảnh: Bắt đầu bằng một quan hệ và quyết định cách phân chia dựa trên hành vi truy nhập của các ứng dụng trên các thuộc tính.
Kỹ thuật tách mảnh thích hợp với phương pháp thiết kế từ trên xuống. Các mảnh không gối chồng lấn lên nhau (không phải là khoá chính). Ngược lại, với phương pháp nhóm thuộc tính thường tạo ra các mảnh gối chồng lên nhau. Trong các hệ CSDL phân tán, các mảnh không gối chồng lên nhau được quan tâm, nghiên cứu.
Việc nhân bản các thuộc tính khóa tại mỗi trạm sẽ bảo đảm tính toàn vẹn ngữ nghĩa và làm giảm đi quá trình trao đổi dữ liệu.
2.2.2.2. Thông tin cần thiết của phân mảnh dọc
Do phân hoạch 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, chúng ta cần có một giá trị đo nào đó để định nghĩa chính xác hơn về khái niệm “chung với nhau”. Số đo này gọi là tụ lực hay lực hút (Affinity) của thuộc tính, chỉ ra mức độ liên đới giữa các thuộc tính.
2.3. Câu hỏi trong hệ thống phân tán 2.3.1. Bài toán xử lý vấn tin 2.3.1. Bài toán xử lý vấn tin
Theo Nguyễn Văn Huân, Phạm Việt Bình [7], có hai phương pháp tối ưu hóa cơ bản được sử dụng trong các bộ xử lý vấn tin: Phương pháp biến đổi đại số và chiến lược ước lượng chi phí.
Phương pháp biến đổi đại số đơn giản hóa các câu vấn tin nhờ các phép biến đổi đại số nhằm hạ thấp chi phí trả lời câu vấn tin, độc lập với dữ liệu thực và cấu trúc vật lý của dữ liệu.
Nhiệm vụ chính của thể xử lý vấn tin quan hệ là biến đổi câu vấn tin cấp cao thành một câu vấn tin tương đương ở cấp thấp hơn được diễn đạt bằng đại số quan hệ. Câu vấn tin cấp thấp thực sự sẽ cài đặt chiến lược thực thi vấn tin. Việc biến đổi này phải đạt được cả tính đúng đắn lẫn tính hiệu quả. Một biến đổi được xem là đúng đắn nếu câu vấn tin cấp thấp có cùng ngữ nghĩa với câu vấn tin gốc, nghĩa là cả hai cùng cho ra một kết quả.
Một câu vấn tin có thể có nhiều cách biến đổi tương đương thành đại số quan hệ. Bởi vì mỗi chiến lược thực thi tương đương đều sử dụng tài nguyên máy tính rất khác
nhau, khó khăn chính là chọn ra được một chiến lược hạ thấp tối đa việc tiêu dùng tài nguyên.
Xét các quan hệ sau: Sinh viên (Mã SV, họ tên, …, mã lớp); Điểm (Mã SV, mã môn học, lần thi, điểm); Và một câu vấn tin đơn giản sau: “Cho biết họ tên của các sinh viên phải học lại các học phần”
Biểu thức vấn tin bằng phép tính quan hệ theo cú pháp của SQL là:
SELECT họ tên
FROM Sinh viên, Điểm
WHERE (Sinh viên.Mã SV=Điểm.Mã SV) AND (lần thi=3)
Hai biểu thức tương đương trong đại số quan hệ do biến đổi chính xác từ câu vấn tin trên là: họ tên(lần thi=3 Sinh viên.Mã SV=Điểm.Mã SV (Sinh viên x Điểm)) và họ tên(Sinhviên|><|MãSV(lần thi=3 (Điểm)))
Hiển nhiên là trong câu vấn tin thứ hai, tránh sử dụng tích Descartes, vì thế nên có chi phí thời gian và sử dụng tài nguyên ít hơn.
Trong trường hợp cơ sở dữ liệu tập trung, việc chuyển đổi câu truy vấn sang các phép đại số quan hệ được tiến hành một cách thuận lợi. Trong môi trường phân tán, các phép đại số quan hệ không đủ để mô tả các giải pháp thực hiện. Nó phải được cung cấp thêm các thao tác để chuyển đổi dữ liệu giữa các vị trí. Việc lựa chọn thứ tự các thao tác đại số quan hệ, bộ xử lý truy vấn cũng phải lựa chọn các vị trí tốt nhất để xử lý dữ liệu và đường truyền thông mà dữ liệu sẽ lưu chuyển. Việc này sẽ làm tăng số các giải pháp lựa chọn cần lựa chọn trong số đó một giải pháp thực hiện. Vì vậy việc xử lý truy vấn phân tán càng trở nên khó khăn hơn.
2.3.2. Các tầng của quá trình xử lý truy vấn
Theo Phạm Thế Quế [8]: Câu truy vấn phải được phân rã thành một chuỗi các phép toán quan hệ được gọi là truy vấn đại số. Dữ liệu cần truy vấn phải được cục bộ hoá để các thao tác trên các quan hệ được chuyển thành các thao tác trên dữ liệu cục bộ (các mảnh). Cuối cùng câu truy vấn đại số trên các mảnh phải được mở rộng bao gồm các thao tác trao đổi thông tin giữa các vị trí và được tối ưu hoá câu truy vấn. Như vậy có thể mô tả việc xử lý truy vấn trong nhiều vấn đề nhỏ tương ứng với các tầng khác nhau. Lược đồ phân tầng chung của quá trình xử lý truy vấn như hình 2.6. Đầu vào là một câu truy vấn trên dữ liệu phân tán được xác định dưới dạng các phép tính quan hệ. Câu truy vấn phân tán được đặt trên các quan hệ toàn cục, nghĩa là dữ liệu phân tán được che dấu. Bốn tầng lược đồ ánh xạ truy vấn phân tán thành một chuỗi các thao tác cục bộ được tối ưu hoá, hoạt động trên cơ sở dữ liệu cục bộ.
Chức năng các tầng bao gồm: Phân rã truy vấn, tập trung hoá dữ liệu, tối ưu hoá truy vấn toàn cục và tối ưu hoá truy vấn cục bộ.