Chương 1: Tổng quan về lấy mẫu CSDL Định nghĩa 1. (Tập bão hòa/đóng - saturated/closed set) Một tập thuộc tính X trên U là bão hòa/đóng đối với một tập các phụ thuộc hàm Σ trên U nếu và chỉ nếu X * = X .3: Xét quan hệ và tập phụ thuộc hàm cho ở ví dụ 1. Sử dụng kết quả của ví dụ 1.2, tập hợp các tập đóng là {{TenGV}, {Nam_hoc}, {TenGV, Nam_hoc}, Ø}. (Giống nhau đúng – Agree exactly) Cho tập thuộc tính X, X ⊂ U.
Một cặp bộ t1 và t2 trên U giống nhau đúng trên X nếu và chỉ nếu ∀A∈ X , t1( A) = t2 ( A) và ∀B ∉ X , t1(B) ≠ t2 (B) .4: Xét các bộ t1 = <Giải_tích_1, 1, Nhân> và t2 = <Hình_học, 1, Bình>, được định nghĩa trên U = {TenMH, Nam_hoc, TenGV} như ở ví dụ 1. Theo định nghĩa 1.7, t1 và t2 giống nhau đúng trên thuộc tính Nam_hoc. Có thể thấy là t1(Nam_hoc) = t2(Nam_hoc) nhưng t1(TenMH) ≠ t2(TenMH) và t1(TenGV) ≠ t2(TenGV). Khái niệm này được mở rộng ra toàn bộ quan hệ như trong định nghĩa sau.
Một quan hệ r trên U thỏa mãn X, với X ⊂ U , nếu và chỉ nếu tồn tại 2 bộ khác nhau trong r giống nhau đúng trên X.8 là cơ sở cho các vấn đề lấy mẫu với các phụ thuộc hàm sẽ trình bày ở phần 2. 14 Chương 1: Tổng quan về lấy mẫu CSDL 1. Tóm tắt chương 1 Chương này giới thiệu tổng quan về lấy mẫu CSDL, các khái niệm cơ bản về CSDL và lấy mẫu CSDL làm cơ sở cho các nội dung sẽ trình bày ở các chương tiếp theo.1 giới thiệu về lịch sử nghiên cứu lấy mẫu CSDL. Morgenstein là người đầu tiên giới thiệu về lấy mẫu CSDL.
Nghiên cứu đầu tiên này chỉ đề cập đến việc tìm ra câu trả lời gần đúng cho các truy vấn tập hợp. Tiếp theo đó là nghiên cứu về lấy mẫu CSDL ngẫu nhiên (F. Rotem), lấy mẫu CSDL ứng dụng trong khai phá dữ liệu (J. Mannila), lấy mẫu nhất quán CSDL để hỗ trợ cho việc phát triển và nâng cấp hệ thống thông tin, đặc biệt là các ứng dụng huy động toàn bộ dữ liệu (J.
Bisbal và những người khác). Trong lấy mẫu CSDL nhất quán, các tác giả đã giới thiệu hai thuật toán sử dụng các ràng buộc toàn vẹn và các phụ thuộc hàm để hướng dẫn quá trình lấy mẫu, cũng như đưa ra một công cụ lấy mẫu CSDL nhất quán nhằm tạo ra các CSDL mẫu thỏa mãn nhiều điều kiện lấy mẫu phức tạp hơn. Bisbal và những người khác cũng đưa ra nghiên cứu về một tiếp cận hình thức trong lấy mẫu CSDL nhất quán. Chương 2 sẽ trình bày chi tiết về lấy mẫu CSDL nhất quán.3 trình bày một số khái niệm về lấy mẫu CSDL và các lĩnh vực ứng dụng của lấy mẫu CSDL.4 trình bày các khái niệm cơ bản về CSDL.
Trong đó các khái niệm về quan hệ Armstrong, tập thuộc tính bão hòa/đóng và sự giống nhau đúng của hai bộ làm cơ sở cho việc mô tả các thuật toán sẽ trình bày ở chương 2. 15 Chương 2: Lấy mẫu CSDL nhất quán CHƯƠNG 2: LẤY MẪU CSDL NHẤT QUÁN Nội dung của chương 2. Vấn đề nhất quán trong lấy mẫu CSDL. Lấy mẫu CSDL nhất quán với các ràng buộc toàn vẹn.
Lấy mẫu CSDL nhất quán với các phụ thuộc hàm. Phân tích các thuật toán lấy mẫu. Công cụ lấy mẫu CSDL nhất quán. Tóm tắt chương 2.
Vấn đề nhất quán trong lấy mẫu CSDL 2. Tính nhất quán trong lấy mẫu CSDL Lấy mẫu CSDL nhất quán là quá trình tách ra một mẫu từ một CSDL nguồn sao cho CSDL mẫu kết quả thỏa mãn một tập các ràng buộc toàn vẹn cho trước [12]. Khi có sẵn một CSDL tác nghiệp thì việc xây dựng một CSDL mẫu (cũng là CSDL nguyên mẫu) hỗ trợ cho quá trình phát triển hệ thống nên dựa trên CSDL tác nghiệp này. Quá trình lấy mẫu CSDL nhất quán được minh họa trong hình sau: Điều kiện lấy mẫu CSDL Quá trình CSDL tác nghiệp lấy mẫu CSDL Mẫu Hình 2.1: Quá trình lấy mẫu nhất quán CSDL 16 Chương 2: Lấy mẫu CSDL nhất quán Yêu cầu quan trọng nhất cần xem xét khi lấy mẫu một CSDL tác nghiệp là sự chính xác của CSDL kết quả, nó phải nhất quán với cùng tập ràng buộc có trong CSDL nguồn.
Vì vậy cần phải xác định tập ràng buộc này trước khi thực hiện quá trình lấy mẫu. Yêu cầu thứ hai khi lấy mẫu nhất quán là dựa vào các ràng buộc mà việc đưa một thể hiện vào trong CSDL mẫu có thể đòi hỏi phải đưa thêm vào các thể hiện khác trước khi CSDL mẫu kết quả đạt đến trạng thái nhất quán. Dãy các phép chèn này có thể được biểu diễn bởi một đồ thị có hướng được gọi là đồ thị chèn liên tiếp (xem phần 2. Thuật toán tổng quát lấy mẫu CSDL nhất quán Quá trình lấy mẫu CSDL nhất quán được mô tả bởi thuật toán lặp, và được trình bày ở dạng ngôn ngữ lập trình C++, như sau: void DatabaseSampler::ExtractSample() { InitialiseProcess(); //Khởi tạo quá trình lấy mẫu.
While (!StopSampling()) do { currentInstance = SelectInstance(); //Chọn một thể hiện từ CSDL nguồn SampleDB.2: Thuật toán lấy mẫu CSDL nhất quán. Bước khởi tạo của thuật toán được thực hiện bằng cách gọi phương thức InitialiseProcess(). Phương thức này thực hiện hai thao tác: (1) Đưa ra tập các ràng buộc toàn vẹn được sử dụng để hướng dẫn quá trình lấy mẫu. Ví dụ như một đồ thị chèn liên tiếp [xem 2.2] hoặc một bảng đồng thuận [xem 2.
và (2) Khởi tạo một CSDL mẫu rỗng có lược đồ phù hợp với CSDL nguồn. 17 Chương 2: Lấy mẫu CSDL nhất quán Bước kế tiếp xác định điều kiện để dừng quá trình lấy mẫu bằng cách gọi phương thức StopSampling(). Quá trình lấy mẫu sẽ dừng khi CSDL mẫu hoặc thỏa mãn tập các ràng buộc toàn vẹn cho trước hoặc đạt đến một kích thước mẫu cho trước. Trong thực tế hai điều kiện này có thể được kết hợp với nhau để tạo ra một điều kiện lấy mẫu phức tạp và chặt chẽ hơn.
Khi đó một CSDL mẫu chỉ được xem là đạt yêu cầu chỉ khi nó là nhất quán và đạt được kích thước cần thiết. Quá trình lấy mẫu được thực hiện bằng cách chọn lần lượt các thể hiện thỏa mãn các điều kiện cho trước. Quá trình này diễn ra như sau: - Đầu tiên là phép chọn khởi tạo quá trình lấy mẫu. Phép chọn này có thể không có liên quan trực tiếp đến điều kiện nhất quán được dùng để đánh giá CSDL mẫu kết quả.
Tức là dãy các phép chèn xảy ra trong lấy mẫu nhất quán được khởi tạo bởi một số phép chèn không có liên quan trực tiếp với phép chèn trước đó. Lựa chọn khởi đầu này có thể được thực hiện bằng cách chọn ngẫu nhiên hoặc chọn theo các điều kiện lấy mẫu để có thể dẫn đến một mẫu nhất quán có kích thước nhỏ nhất có thể. Trong thuật toán trên thì loại phép chọn này được thực hiện bởi phương thức SelectInstance(). - Sau đó mẫu được chọn ở trên sẽ được chèn vào CSDL mẫu bằng cách gọi phương thức insertInstance().
- Các lựa chọn cần thiết còn lại, phụ thuộc vào lựa chọn trước đó và điều kiện nhất quán, được thực hiện bởi phương thức UpdateProcess(). Như đã mô tả ở trên, các lựa chọn này được thực hiện sử dụng các thông tin, dựa trên tập các ràng buộc toàn vẹn, hướng dẫn quá trình lấy mẫu. Thông tin này phải được cập nhật sau mỗi phép chèn bởi vì nó sẽ được dùng để xác định các lựa chọn khác. Phương thức UpdateProcess() cũng có nhiệm vụ cập nhật thông tin này.
18 Chương 2: Lấy mẫu CSDL nhất quán Phương thức Synchronise() là trọng tâm của giao thức lấy mẫu, làm cơ sở cho quá trình lấy mẫu và được mô tả chi tiết trong các thuật toán lấy mẫu ở phần 2. Phương thức này cho phép nhiều điều kiện lấy mẫu khác nhau được thỏa mãn đồng thời. CSDL minh họa CSDL Đại học sau đây sẽ được dùng để minh họa cho các ví dụ trong luận văn. Hình sau biểu diễn lược đồ thực thể quan hệ mở rộng (EER) cho CSDL này.
ười $ m # TenMH # " _van ạy ! Thuoc n_li _tri Hình 2.3: Lược đồ thực thể mở rộng của CSDL Đại học. Các hình chữ nhật ký hiệu cho các thực thể, còn các hình thoi ký hiệu cho quan hệ giữa các thực thể. Các thuộc tính được ký hiệu bởi các dấu tròn và có thể nối với cả các thực thể và các quan hệ. Đặc biệt, các dấu tròn đen 19 Chương 2: Lấy mẫu CSDL nhất quán biểu diễn cho các thuộc tính khóa của thực thể đã cho.
Các ràng buộc về số lượng được ký hiệu bởi một cặp số nguyên (nhỏ nhất, lớn nhất) theo thứ tự đó. Một số ngữ nghĩa sau đây của CSDL Đại học sẽ được sử dụng để minh họa cho các thuật toán lấy mẫu: - Quan hệ Dạy cho biết một môn học có thể được dạy bởi một và chỉ một giáo viên, trong khi một giáo viên phải dạy ít nhất một môn nhưng không được quá ba môn. - Quan hệ giữa Sinh_vien và SV_CQ được ký hiệu bởi một mũi tên có nghĩa là một sinh viên chính quy là tập con của tập hợp mọi sinh viên. Điều kiện để một trở thành sinh viên chính quy là sinh viên đó đã thi ít nhất năm môn học.
Chỉ có những sinh viên chính quy mới có người cố vấn, nhưng mọi sinh viên đều có thể đăng ký học các môn học. - Các thực thể có một mũi tên chỉ biểu diễn cho các quan hệ tổng quát hóa. Ví dụ về loại quan hệ này trong lược đồ trên là thực thể Nguoi tổng quát cho cả Sinh_vien và Giao_vien. Lược đồ thực thể mở rộng trên được được ánh xạ thành một lược đồ quan hệ được chuẩn hóa gồm các bảng sau (thuộc tính khóa được gạch dưới).
Nguoi(Ten, Vai_tro) 20 Chương 2: Lấy mẫu CSDL nhất quán 2. Lấy mẫu CSDL nhất quán với ràng buộc toàn vẹn 2. Các cơ sở Các nghiên cứu trước đây về xây dựng nguyên mẫu CSDL áp dụng một tập rất hạn chế các ràng buộc trong CSDL kết quả. Các cách tiếp cận xác định một tập rộng rãi hơn các ràng buộc toàn vẹn thường dựa trên logic vị từ cấp một để định nghĩa tập các ràng buộc được thực hiện [21].
Logic vị từ cấp một thực sự là một hệ hình thức mạnh và dễ hiểu để diễn tả ngữ nghĩa của dữ liệu, và do đó các phương pháp tạo mẫu CSDL dựa trên logic vị từ cấp một có thể sử dụng cơ chế suy diễn của nó để đảm bảo tính nhất quán của CSDL kết quả.