1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một tiếp cận hình thức trong lấy mẫu cơ sở dữ liệu

99 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Một Tiếp Cận Hình Thức Trong Lấy Mẫu Cơ Sở Dữ Liệu
Tác giả Hồ Nhã Phong
Người hướng dẫn PGS. TS. Hồ Thuần
Trường học Trường Đại Học Sư Phạm Hà Nội
Chuyên ngành Khoa Học Công Nghệ Thông Tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2007
Thành phố Hà Nội
Định dạng
Số trang 99
Dung lượng 843,22 KB

Nội dung

MỘT SỐ THUẬT NGỮ VÀ TỪ VIẾT TẮT Breadth-first traversal Duyệt theo chiều rộng calculus Cardinality constraints Ràng buộc bản số Consistent Database Sample Tool Consistent Database Sampli

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI

-o0o -

HỒ NHÃ PHONG

MỘT TIẾP CẬN HÌNH THỨC

TRONG LẤY MẪU CƠ SỞ DỮ LIỆU

LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN

Hà Nội – 2007

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI

-HỒ NHÃ PHONG

MỘT TIẾP CẬN HÌNH THỨC TRONG LẤY MẪU CƠ SỞ DỮ LIỆU

LUẬN VĂN THẠC SĨ KHOA HỌC CÔNG NGHỆ THÔNG TIN

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH

MÃ SỐ: 60.48.01

Hà Nội – 2007

Trang 3

MỤC LỤC

LỜI CẢM ƠN

MỤC LỤC i

DANH MỤC CÁC BẢNG iii

DANH MỤC CÁC HÌNH VẼ iii

MỘT SỐ THUẬT NGỮ VÀ TỪ VIẾT TẮT iv

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ LẤY MẪU CSDL 3

1.1 Lịch sử nghiên cứu về lấy mẫu CSDL - 3

1.2 Một số khái niệm trong lấy mẫu CSDL [5] - 5

1.3 Các ứng dụng của lấy mẫu CSDL [5] - 6

1.4 Một số khái niệm CSDL cơ bản [1, 2, 5] - 10

1.5 Tóm tắt chương 1 - 15

CHƯƠNG 2: LẤY MẪU CSDL NHẤT QUÁN 16

2.1 Vấn đề nhất quán trong lấy mẫu CSDL - 16

2.1.1 Tính nhất quán trong lấy mẫu CSDL 16

2.1.2 Thuật toán tổng quát lấy mẫu CSDL nhất quán 17

2.1.3 CSDL minh họa 19

2.2 Lấy mẫu CSDL nhất quán với ràng buộc toàn vẹn - 21

2.2.1 Các cơ sở 21

2.2.2 Đồ thị chèn liên tiếp 22

2.2.3 Ví dụ về đồ thị chèn liên tiếp 24

2.2.4 Thuật toán lấy mẫu sử dụng đồ thị chèn liên tiếp 28

2.3 Lấy mẫu CSDL nhất quán với các phụ thuộc hàm [5, 11] - 33

2.3.1 Cơ sở 33

2.3.2 Bài toán 34

2.3.3 Bảng đồng thuận 34

2.3.4 Lấy mẫu CSDL nhất quán sử dụng một bảng đồng thuận 38

2.3.5 Lấy mẫu với các tập con hoặc siêu tập của Σ 41

Trang 4

2.3.6 Ví dụ về lấy mẫu với bảng đồng thuận 44

2.3.7 Lấy mẫu ngẫu nhiên với các phụ thuộc hàm 46

2.4 Phân tích các thuật toán lấy mẫu [5, 6, 11] - 46

2.4.1 Tính dừng và tính đúng đắn 46

2.4.2 Độ phức tạp 48

2.5 Công cụ lấy mẫu CSDL nhất quán [5, 12] - 50

2.5.1 Giới thiệu 50

2.5.2 Các yêu cầu của một công cụ lấy mẫu CSDL nhất quán 51

2.5.3 Giao thức lấy mẫu CSDL nhất quán 51

2.5.4 Cơ chế tích hợp các bộ lấy mẫu CSDL 53

2.5.5 Thiết kế của công cụ lấy mẫu CSDL nhất quán 54

2.6 Tóm tắt chương 2 - 56

CHƯƠNG 3: MỘT TIẾP CẬN HÌNH THỨC TRONG LẤY MẪU CSDL 58

3.1 Giới thiệu - 58

3.2 Các cơ sở - 59

3.2.1 Hệ ngữ nghĩa ký hiệu và λ − [5, 14] 59

3.2.2 Các bài toán không quyết định được và bài toán dẫn về được [5] 62

3.3 Ngữ nghĩa hình thức của lấy mẫu CSDL nhất quán [6, 14] - 63

3.3.1 Các miền 64

3.3.2 Miền như là dàn đầy đủ 65

3.3.3 Các hàm hỗ trợ 67

3.3.4 Hàm ý nghĩa 69

3.3.5 Làm sạch dữ liệu trong quá trình lấy mẫu nhất quán 71

3.4 Các ràng buộc toàn vẹn liên quan tới lấy mẫu - 74

3.4.1 Định nghĩa 74

3.4.2 Đặc điểm của sự liên quan tới lấy mẫu 75

3.4.3 Tính không quyết định được của sự liên quan tới lấy mẫu 76

3.5 Tóm tắt chương 3 - 80

KẾT LUẬN 81

DANH MỤC TÀI LIỆU THAM KHẢO 83

PHỤ LỤC A: MINH HỌA THUẬT TOÁN LẤY MẪU VỚI ĐỒ THỊ CHÈN LIÊN TIẾP 87

Trang 5

DANH MỤC CÁC BẢNG

Bảng 2.1: Các loại mũi tên trong một đồ thị chèn liên tiếp 23

Bảng 2.2 δcho đồ thị chèn liên tiếp ở hình 2.4 28

Bảng 2.3: Thông tin lấy mẫu cho đồ thị chèn liên tiếp ở hình 2.4 32

Bảng 2.4: Một số bộ của bảng Mon_hoc 35

Bảng 2.5: Bảng đồng thuận cho các bộ của bảng Mon_hoc ở bảng 2.4 36

Bảng 2.6: Lấy mẫu với các phụ thuộc hàm của quan hệ Mon_hoc 45

DANH MỤC CÁC HÌNH VẼ Hình 1.1: Khai phá dữ liệu với lấy mẫu CSDL nhất quán 9

Hình 2.1: Quá trình lấy mẫu nhất quán CSDL 16

Hình 2.2: Thuật toán lấy mẫu CSDL nhất quán 17

Hình 2.3: Lược đồ thực thể mở rộng của CSDL Đại học 19

Hình 2.4: Đồ thị chèn liên tiếp cho CSDL Đại học 25

Hình 2.5: Thuật toán lấy mẫu CSDL nhất quán với ICG 30

Hình 2.6: Thuật toán lấy mẫu CSDL nhất quán với các phụ thuộc hàm 40

Hình A.1: Sơ đồ biểu diễn quá trình lấy mẫu sử dụng đồ thị chèn liên tiếp 90

Trang 6

MỘT SỐ THUẬT NGỮ VÀ TỪ VIẾT TẮT

Breadth-first traversal Duyệt theo chiều rộng

calculus

Cardinality constraints Ràng buộc bản số

Consistent Database Sample Tool

Consistent Database Sampling Lấy mẫu CSDL nhất quán

Consistent database sampling

protocol (CoDaSP)

Giao thức lấy mẫu CSDL nhất quán

Data cleaning process Quá trình làm sạch dữ liệu

Database Sampler Integration

Mechanism (DaSIM) Cơ chế tích hợp các bộ lấy mẫu CSDL Data-intensive application Ứng dụng huy động toàn bộ dữ liệu Denotational semantics Hệ ngữ nghĩa ký hiệu

Depth-first traversal Duyệt theo chiều sâu

Finite database instance Thể hiện CSDL hữu hạn

First Order Logic Logic vị từ cấp một

First-class object Đối tượng lớp đầu tiên

Trang 7

General Constraints Ràng buộc tổng quát

Generalisation Constraints Ràng buộc tổng quát hóa

Generalisation dependencies Phụ thuộc tổng quát hóa

Inclusion dependencies Phụ thuộc bao hàm

Insertion Chain Graph Đồ thị chèn liên tiếp

Insertions function Hàm chèn

Inter-Sampler Consistency Nhất quán liên bộ lấy mẫu

Intra-Sampler Consistency Nhất quán trong cùng bộ lấy mẫu Least-fix-point Điểm bất động nhỏ nhất

Legacy database CSDL cũ hiện còn lại

Legacy information system

migration Nâng cấp hệ thống thông tin hiện còn lại Natural solution Nghiệm tự nhiên

notation

Operational database CSDL tác nghiệp

Prototype database CSDL nguyên mẫu

Ramdom Sampler with

Trang 8

Relevant semantic information Thông tin ngữ nghĩa có liên quan Sampler with Functional

Dependencies Lấy mẫu với các phụ thuộc hàm Sampler with Insertion Chain

Graph

Lấy mẫu với đồ thị chèn liên tiếp

SamplerIntegrator Bộ tích hợp lấy mẫu

Sampling protocol Giao thức lấy mẫu

Sampling-irrelevant Không liên quan đến lấy mẫu Sampling-relevant Liên quan đến lấy mẫu

Trang 9

MỞ ĐẦU

1 Lý do chọn đề tài

Lấy mẫu CSDL được dùng trong các ứng dụng mà ở đó việc sử dụng toàn bộ CSDL đang có sẽ không có hiệu quả về mặt chi phí hoặc không cần thiết như khai phá dữ liệu, tính toán các truy vấn gần đúng,… nhằm đạt được

sự dung hòa giữa tính chính xác của kết quả và chi phí tính toán [14]

Việc sử dụng các nguyên mẫu CSDL để hỗ trợ việc phát triển các ứng

dụng huy động toàn bộ dữ liệu đã được nghiên cứu trong vài năm trở lại đây

Gần đây có các nghiên cứu [6, 11] đề nghị sử dụng lấy mẫu CSDL để tạo ra các nguyên mẫu CDSL, tức là các CSDL được dùng trong việc hỗ trợ các giai

đoạn phát triển các ứng dụng huy động toàn bộ dữ liệu Cách tiếp cận này

được chấp nhận do xu hướng là ngày càng có nhiều dự án phát triển phần mềm được thực hiện theo hướng cải tiến, mở rộng hệ thống hiện có thay vì phát triển một hệ thống mới hoàn toàn Nhận thấy được tính thiết thực của vấn đề này qua sự gợi ý của Thầy hướng dẫn và tham khảo thêm tài liệu, tôi

đã chọn đề tài “Một tiếp cận hình thức trong việc lấy mẫu CSDL” cho luận

văn tốt nghiệp của mình

2 Mục đích, nhiệm vụ nghiên cứu

Tìm hiểu tổng quan về lấy mẫu CSDL, nhất là lấy mẫu CSDL nhất quán

và đưa ra một tiếp cận hình thức trong lấy mẫu CSDL dùng hệ ngữ nghĩa ký hiệu Hai mục tiêu chủ yếu của luận văn là: (1) Tìm hiểu các thuật toán xây

dựng một CSDL mẫu nhất quán từ một CSDL tác nghiệp nhằm thỏa mãn các điều kiện lấy mẫu cho trước và (2) Giới thiệu một mô tả hình thức cho lấy mẫu CSDL nhất quán sử dụng hệ ngữ nghĩa ký hiệu

Trang 10

3 Đối tượng nghiên cứu

Các đối tượng nghiên cứu của luận văn bao gồm: lịch sử nghiên cứu về vấn đề lấy mẫu CSDL, các cơ sở toán học có liên quan, các phương pháp, thuật toán lấy mẫu đã và đang được nghiên cứu, các ứng dụng của lấy mẫu CSDL và hướng phát triển của nó

4 Phương pháp nghiên cứu

Tìm, chọn lọc và đọc các tài liệu về CSDL, về lấy mẫu CSDL, các cơ sở toán học có liên quan đến việc lấy mẫu CSDL,… từ các nghiên cứu đã công bố, kết hợp các gợi ý, chỉ dẫn, góp ý của giảng viên hướng dẫn để rút ra được các kiến thức cần thiết để hoàn thành nhiệm vụ nghiên cứu được đặt ra ở trên

6 Bố cục của luận văn

Ngoài phần mở đầu và kết luận, luận văn được trình bày trong ba chương và một phụ lục, nội dung chính của các chương và phụ lục như sau:

Chương 1 – Tổng quan về lấy mẫu CSDL: Giới thiệu lịch sử nghiên

cứu về lấy mẫu CSDL, ứng dụng của lấy mẫu CSDL, các khái niệm cơ bản về CSDL và một số khái niệm về lấy mẫu CSDL

Chương 2 – Lấy mẫu CSDL nhất quán: Trình bày các thuật toán lấy

mẫu CSDL thỏa mãn các điều kiện lấy mẫu cho trước và mô tả một công cụ lấy mẫu nhằm kết hợp các thuật toán lấy mẫu để có thể lấy mẫu theo các điều kiện phức tạp hơn

Chương 3 – Một tiếp cận hình thức của lấy mẫu CSDL: Chương này

cung cấp một mô tả hình thức cho lấy mẫu CSDL nhất quán sử dụng hệ ngữ nghĩa ký hiệu Ngoài ra còn giới thiệu một loại ràng buộc toàn vẹn đặc biệt gọi là ràng buộc toàn vẹn liên quan tới lấy mẫu

Phụ lục A – Minh họa thuật toán lấy mẫu với đồ thị chèn liên tiếp

Trang 11

CHƯƠNG 1: TỔNG QUAN VỀ LẤY MẪU CSDL

Nội dung của chương

1.1 Lịch sử nghiên cứu về lấy mẫu CSDL

1.2 Một số khái niệm về lấy mẫu CSDL

1.3 Ứng dụng của CSDL mẫu

1.4 Một số khái niệm CSDL cơ bản

1.5 Tóm tắt

1.1 Lịch sử nghiên cứu về lấy mẫu CSDL

Vấn đề lấy mẫu CSDL đã được J Morgenstein giới thiệu lần đầu tiên vào đầu những năm 1980 [22] Trong nghiên cứu của mình, Morgenstein chỉ chú ý đến vấn đề đưa ra câu trả lời gần đúng cho các truy vấn tập hợp (SUM, COUNT,…) một cách nhanh chóng

Đến năm 1984 F Olken và D Rotem, từ các nghiên cứu của J Morgenstein, đã bắt đầu nghiên cứu về lấy mẫu CSDL quan hệ [22] Các nghiên cứu của F Olken và D Rotem tập trung vào các thuật toán để có được các mẫu ngẫu nhiên của các truy vấn CSDL Các nghiên cứu này sau đó được tổng hợp thành một luận án tiến sĩ chuyên ngành khoa học máy tính tại Đại

học California ở Berkeley năm 1993 với tên là “Lấy mẫu ngẫu nhiên từ CSDL”

Năm 1993, J Kivinen và H Mannila [17] đã trình bày nghiên cứu về lấy mẫu CSDL ứng dụng trong khai phá dữ liệu Theo đó, thay vì thực hiện quá trình khai phá phức tạp trên toàn bộ dữ liệu, đầu tiên người ta sẽ lấy ra một mẫu nhỏ, tìm các qui luật trong đó rồi xác minh các qui luật này trên toàn

Trang 12

bộ dữ liệu Mẫu được lấy ra phải đủ nhỏ nhưng không được nhỏ quá vì như vậy có thể tạo ra các luật giả (spurious regularities) mà điều này đòi hỏi việc xác minh mẫu này sẽ phức tạp hơn

Vấn đề xây dựng một CSDL mẫu nhất quán để 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 đã được J Bisbal và những người khác [6] công bố vào năm 1998

Nghiên cứu này đề nghị sử dụng CSDL tác nghiệp để xây dựng một CSDL

nguyên mẫu Các tác giả đã đưa ra một phương pháp gọi là lấy mẫu CSDL nhất quán, phương pháp này sử dụng một khái niệm mới gọi là Đồ thị chèn liên tiếp để hỗ trợ cho việc chọn các thể hiện sao cho CSDL nguyên mẫu kết

quả đạt đến trạng thái nhất quán Phương pháp này sử dụng một số loại ràng buộc toàn vẹn như phụ thuộc bao hàm, ràng buộc bản số, ràng buộc tổng quát hóa,… để hướng dẫn quá trình lấy mẫu nhằm làm cho CSDL mẫu kết quả nhất quán với CSDL nguồn

Trong nỗ lực nghiên cứu tiếp theo nhằm đưa thêm các thông tin ngữ nghĩa có liên quan từ CSDL nguồn vào CSDL mẫu như phương pháp sử dụng

đồ thị chèn liên tiếp, J Bisbal và J Grimson đã đưa ra một phương pháp lấy mẫu mới trong đó sử dụng các phụ thuộc hàm để hướng dẫn quá trình lấy mẫu [11] Phụ thuộc hàm là loại ràng buộc được nghiên cứu rất nhiều trong CSDL quan hệ và là ràng buộc không thể được biểu diễn trong đồ thị chèn liên tiếp

Sử dụng đồ thị chèn liên tiếp hoặc các phụ thuộc hàm để lấy mẫu CSDL chỉ có thể áp dụng cho các điều kiện lấy mẫu tương đối đơn giản Để có thể xây dựng các CSDL mẫu với các điều kiện lấy mẫu phức tạp hơn, J Bisbal

đã đưa ra một công cụ lấy mẫu CSDL nhất quán [5] Công cụ này bao gồm các mô-đun lấy mẫu, còn gọi là các bộ lấy mẫu CSDL Mỗi bộ lấy mẫu tách

ra một mẫu từ một CSDL theo một vài điều kiện nào đó (như một loại ràng

buộc cụ thể, ngẫu nhiên,…) Nguyên tắc thiết kế các bộ lấy mẫu này là chúng

có thể được tích hợp với nhau để tạo ra các bộ lấy mẫu phức tạp hơn từ đó có

Trang 13

thể lấy mẫu một CSDL theo nhiều điều kiện một cách đồng thời Để đạt được các yêu cầu đó, các bộ lấy mẫu phải hoạt động theo cùng một giao thức lấy mẫu Ngoài ra công cụ lấy mẫu này còn sử dụng một bộ lấy mẫu đặc biệt gọi

là bộ tích hợp lấy mẫu, nhiệm vụ của bộ lấy mẫu này chỉ là tích hợp các bộ

lấy mẫu khác nhằm tạo ra các bộ lấy mẫu đáp ứng được các yêu cầu lấy mẫu phức tạp hơn

Năm 2005, J Bisbal, J Grimson, và D Bell đã giới thiệu nghiên cứu về một tiếp cận hình thức trong lấy mẫu CSDL Nghiên cứu này mô tả các loại ràng buộc toàn vẹn phải được xem xét trong quá trình lấy mẫu, ứng dụng lấy mẫu CSDL để cải thiện chất lượng dữ liệu của một CSDL hiện còn lại, trong

đó việc lấy mẫu CSDL được dùng để xác định lần lượt tập hợp các bộ là nguyên nhân của sự không nhất quán trong CSDL, và nên được chỉ ra trong

quá trình làm sạch dữ liệu.

1.2 Một số khái niệm trong lấy mẫu CSDL [5]

a CSDL nguyên mẫu – Prototype database

Là một CSDL được dùng để làm mô hình cho dữ liệu và/hoặc ngữ nghĩa của một CSDL khác và để hỗ trợ cho các ứng dụng huy động toàn bộ

dữ liệu Có hai loại CSDL nguyên mẫu đó là CSDL mẫu và CSDL thử sẽ được định nghĩa sau đây

b CSDL mẫu - Sample database

Là một CSDL nguyên mẫu được tạo ra từ dữ liệu của một CSDL có sẵn

c CSDL thử - Test database

Là một CSDL nguyên mẫu được hình thành từ các giá trị dữ liệu giả

d CSDL nguồn – Source database

Là CSDL được dùng để lấy mẫu CSDL nguồn còn được gọi là CSDL tác nghiệp (Operational database)

Trang 14

e CSDL mẫu nhất quán – Consistent sample database

Là một CSDL mẫu trong đó dữ liệu được chọn theo các điều kiện cho trước, nhờ vào các điều kiện này mà CSDL mẫu kết quả sẽ nhất quán với CSDL gốc

f Lấy mẫu CSDL ngẫu nhiên – Random database sampling

Là quá trình xây dựng một CSDL mẫu bằng cách chọn ngẫu nhiên các thể hiện từ CSDL nguồn theo một phân phối xác suất nào đó

1.3 Các ứng dụng của lấy mẫu CSDL [5]

Lấy mẫu CSDL được sử dụng rộng rãi trong các ứng dụng CSDL khi toàn bộ CSDL không thể được sử dụng do chi phí tính toán quá đắt, hoặc tiêu tốn quá nhiều thời gian,…

a Phát triển hệ thống thông tin

CSDL nguyên mẫu thường được dùng để hỗ trợ các giai đoạn sau của quá trình phát triển các hệ thống thông tin

+ Phân tích yêu cầu: Một nguyên mẫu được cung cấp cho người dùng

sử dụng thử để họ đánh giá, từ đó có được sự hiểu biết tốt hơn các yêu cầu của người dùng

+ Thiết kế: Thử nghiệm với các lựa chọn thiết kế khác nhau giúp dễ dàng

có được một hiểu biết đầy đủ hơn về tính chính xác và đầy đủ của

chúng Một bản thiết kế là đầy đủ nếu nó chứa đựng mọi ngữ nghĩa mong muốn và là chính xác nếu nó không bao gồm bất kỳ ngữ nghĩa

không mong muốn nào Một CSDL được thực hiện từng phần có thể hỗ trợ sự đánh giá các lựa chọn thiết kế khác nhau bằng cách bộc lộ các quan hệ còn thiếu và không mong muốn giữa các mục dữ liệu

Trang 15

+ Kiểm thử: Ở các giai đoạn cuối của việc kiểm thử phần mềm, các ứng

dụng phải được kiểm tra ở các điều kiện càng giống với thực tế càng tốt Một CSDL thử với lược đồ phù hợp có thể tạo ra một CSDL nguyên mẫu thực tiễn hơn Các bước cuối của giai đoạn kiểm thử phần mềm bao gồm kiểm tra chức năng hệ thống, đánh giá hiệu năng

và kiểm tra với nhiều phiên bản khác nhau để so sánh kết quả (back to back testing)

+ Một nguyên mẫu CSDL hỗ trợ quá trình phát triển hệ thống thông tin

như trên có thể được tạo ra với các giá trị dữ liệu giả hoặc từ một CSDL tác nghiệp Tuy nhiên, nguyên mẫu được tạo ra từ CSDL tác nghiệp sẽ hỗ trợ hiệu quả hơn Ngoài ra việc huấn luyện người dùng cũng có thể được hỗ trợ rất tốt bởi các dữ liệu từ CSDL tác nghiệp vì

họ được làm quen với các giá trị dữ liệu gần với dữ liệu thật khi hệ thống được đưa vào vận hành

b Nâng cấp hệ thống thông tin hiện còn lại

CSDL mẫu cũng được ứng dụng để thực hiện việc nâng cấp hệ thống thông tin hiện còn lại, một loại dự án phát triển hệ thống thông tin đặc biệt

Nâng cấp hệ thống thông tin hiện còn lại nằm trong quá trình chuyển một hệ thống thông tin sang một môi trường linh hoạt hơn cho phép nó được duy trì

dễ dàng và đáp ứng được các yêu cầu mới trong khi vẫn sử dụng được dữ liệu

và các chức năng của hệ thống cũ mà không phải xây dựng lại từ đầu

Trong trường hợp này thì dữ liệu tác nghiệp đã có sẵn cho việc lấy mẫu, bởi vì tự nó là một bộ phận của hệ thống sẽ được tích hợp

Trang 16

c Khai phá dữ liệu

Các thuật toán khai phá dữ liệu thường đòi hỏi chi phí tính toán rất lớn

Do đó nhiều nghiên cứu đã được tiến hành nhằm cải thiện vấn đề này, trong

đó có công trình của J Kivinen và H Mannila [xem phần 1.1] Theo đó sẽ chỉ

sử dụng một phần thay vì toàn bộ CSDL để khai phá thông tin Phương pháp này đạt được sự hài hòa giữa tính chính xác của tri thức được tách ra và chi phí tính toán của thuật toán khai phá thông tin đó

Trong trường hợp này một CSDL nguyên mẫu sẽ được tách ra từ CSDL được khai phá và quá trình khai phá dữ liệu sẽ được thực hiện trên CSDL nguyên mẫu này Các mục dữ liệu được dùng để xây dựng CSDL nguyên mẫu

có thể được chọn ngẫu nhiên

d Đánh giá truy vấn xấp xỉ

Vấn đề cải thiện hiệu năng cho các câu trả lời của các truy vấn xấp xỉ trong CSDL quan hệ có thể được thực hiện bằng cách đưa ra các câu trả lời gần đúng Ví dụ khi cần tính giá trị trung bình của một thuộc tính đặc biệt, một mẫu ngẫu nhiên của CSDL có thể được tách ra và kết quả được tính toán cho mẫu này Kết quả của toàn bộ CSDL có thể được suy diễn từ kết quả cho mẫu này F Olken và D Rotem [22] đã đề nghị rằng một toán tử lấy mẫu có thể được đưa vào trong các hệ quản trị CSDL, sao cho chỉ một mẫu ngẫu nhiên của kết quả thực sự được trả về Cách tiếp cận này có thể vận dụng khi việc tính toán toàn bộ kết quả là không cần thiết hoặc có chi phí quá lớn Lưu

ý rằng toán tử này có thể được sử dụng để thực hiện các câu trả lời xấp xỉ đối với các truy vấn chỉ ra ở trên

Lấy mẫu ngẫu nhiên đã được sử dụng chủ yếu trong các ứng dụng loại này

Trang 17

e Khai phá dữ liệu với CSDL mẫu nhất quán

Phần 1.3.3 đã phác họa việc sử dụng CSDL mẫu không có thông tin ngữ nghĩa trong khai phá dữ liệu Trong trường hợp đó, chỉ các cách tiếp cận dựa trên lấy mẫu ngẫu nhiên đã được nghiên cứu Bằng cách lấy mẫu ngẫu nhiên một CSDL, một số mẫu có thể bị mất bởi vì các mục dữ liệu có liên hệ với nhau có thể không phải lúc nào cũng được đưa vào mẫu Phần này đưa ra một cách tiếp cận khác dựa trên việc lấy mẫu CSDL nhất quán

Lấy mẫu nhất quán được mong đợi sẽ mang lại một CSDL mẫu thích hợp hơn so với lấy mẫu ngẫu nhiên, từ đó làm tăng khả năng khai phá được các mẫu thích hợp

Lấy mẫu nhất quán trong khai phá dữ liệu sẽ dẫn tới một chu trình khai phá dữ liệu như minh họa trong hình 1.1

Hình 1.1: Khai phá dữ liệu với lấy mẫu CSDL nhất quán

Đầu tiên là lấy mẫu CSDL tác nghiệp sử dụng một điều kiện nhất quán cho trước, một ràng buộc toàn vẹn chẳng hạn Sau đó CSDL mẫu sẽ được

CSDL tác nghiệp

Các điều kiện lấy mẫu (ví dụ: các ràng buộc toàn vẹn,…)

(6)

Trang 18

khai phá Các mẫu được phát hiện trong quá trình khai phá có thể cần phải xem xét các điều kiện bổ sung khi tách một mẫu mới của CSDL Quá trình này có thể được lặp lại cho đến khi CSDL mẫu được xem là đáp ứng được các điều kiện nhất quán và có đủ các mẫu cần thiết

Quá trình mô tả ở trên có thể dẫn đến một sự am hiểu tốt hơn các ngữ nghĩa của CSDL, một vấn đề quan trọng trong các hệ thống thông tin cũ hiện còn lại [8] và trong một CSDL mẫu gần giống với CSDL tác nghiệp, từ đó tạo

ra một nguyên mẫu thực tiễn hơn Quá trình khai phá được mong đợi sẽ hiệu quả hơn so với khi sử dụng toàn bộ CSDL vì nó sẽ khai phá nhiều CSDL nhỏ thay vì một CSDL lớn

Việc sử dụng lấy mẫu nhất quán trong khai phá dữ liệu được mô tả ở trên có thể là nghịch lý Nó phụ thuộc vào điều kiện ban đầu để tách ra một CSDL mẫu, CSDL mẫu này sau đó được khai phá chính xác để tách ra chính các điều kiện này Tuy nhiên nghịch lý này không tồn tại vì thực tế là nó mô

tả một quá trình lặp lại Mẫu ban đầu có thể được tách ra theo các ràng buộc

cơ bản, ví dụ chỉ một tập các ràng buộc toàn vẹn tham chiếu Mẫu ban đầu này sau đó có thể kích hoạt quá trình mô tả ở trên

1.4 Một số khái niệm CSDL cơ bản [1, 2, 5]

• Thể hiện (instance): Là một mục dữ liệu trong CSDL Ví dụ các bộ

trong các bảng của CSDL

• Thực thể (entity): Là một tập hợp các thể hiện Ví dụ như các bảng

trong CSDL quan hệ

• Miền (domain): Giả sử có một tập các thuộc tính U, mỗi thuộc tính có

giá trị thuộc vào một miền nào đó Miền cho thuộc tính A ký hiệu là

DOM A DOM ký hiệu cho hợp của tất cả các miền, A

Trang 19

• Lược đồ quan hệ (relational schema): Một lược đồ quan hệ R trên U

là một tập con của U

• Lược đồ CSDL (database schema): Một lược đồ CSDL D = {R 1 ,

R 2 ,…, R n } là một tập hợp các lược đồ quan hệ

• Quan hệ (relation): Một quan hệ r trên lược đồ quan hệ R là một tập

hợp của các R-bộ, trong đó các R-bộ là các ánh xạ từ các thuộc tính của R vào các miền giá trị của chúng R-bộ cũng có thể gọi đơn giản là một bộ

• Thể hiện CSDL (database instance): Một thể hiện CSDL là một tập

các quan hệ CSDL Trong phạm vi của luận văn này chỉ xét các thể hiện CSDL hữu hạn

Các thuộc tính trong U được ký hiệu bởi các ký tự hoa A, B, C,… R-bộ được ký hiệu bởi các ký tự thường, có thể kèm theo các chỉ số dưới, t 1 , t 2,

Một quan hệ r chứa một R-bộ sẽ luôn được xác định Giá trị của một thuộc tính A, A∈ U , của một bộ đặc biệt t 1 được ký hiệu là t 1 (A) Ký hiệu này được

mở rộng tới các tập thuộc tính sao cho đối với Y U t Y⊆ , ( )1 ký hiệu cho bộ u 1

trên Y với u 1 (A) = t 1 (A) cho mọi thuộc tính A∈ Y

• Ràng buộc toàn vẹn (integrity constraint): Một ràng buộc toàn vẹn là

một khẳng định (assertion) về một thể hiện CSDL Một thể hiện

CSDL I thỏa mãn một ràng buộc toàn vẹn σ, ký hiệu là I ‘ , nếu σ

khẳng định là đúng cho thể hiện này Ở đây các ràng buộc toàn vẹn được giả sử là các biểu thức của phép tính quan hệ, tức là các công thức logic vị từ cấp một không có các hàm và các biến tự do Các ràng buộc toàn vẹn cũng có thể được gọi đơn giản là các ràng buộc

Trang 20

t (Y) = t (Y) kéo theo t (Z) = t (Z) Nếu 1 2 Σ là một tập các phụ thuộc hàm, khi

đó r Σ hàm ý rằng mọi phụ thuộc hàm trong Σ được thỏa mãn trong r

Các phụ thuộc hàm riêng lẻ được ký hiệu bởi các ký tự Hi Lạp thường, có thể có các chỉ số dưới: σ, γ1, γ2… Tập hợp các phụ thuộc hàm được ký hiệu bởi các ký tự Hi Lạp hoa, có thể kèm theo chỉ số: Σ, Γ1, Γ2,…

Định nghĩa 1.2 (Phéo kéo theo)

Gọi ΣΓ là các tập phụ thuộc hàm trên U Khi đó Σ kéo theo Γ, ký hiệu là Σ ‘ Γ, nếu và chỉ nếu với mọi quan hệ r trên U, r Σ thì r Γ

Định nghĩa 1.3 (Bao đóng của tập phụ thuộc hàm)

Gọi Σ là tập phụ thuộc hàm trên U Bao đóng của Σ, ký hiệu là *

Σ , được định nghĩa là Σ = * {YZ Y Z| , ⊆U và Σ ‘ YZ}

Ví dụ 1.1:

Xét quan hệ Mon_hoc được định nghĩa trên tập thuộc tính U = {TenMH, Nam_hoc, TenGV} Quan hệ này chứa các thông tin về các khóa học trong một trường học Thuộc tính TenMH là khóa chính cho quan hệ này, do

đó tập các phụ thuộc hàm phải chứa trong quan hệ này là Σ ={TenMH Nam_hoc, TenMH Ten_GV} Giả sử rằng quan hệ này không chứa một phụ

thuộc hàm nào khác nữa, theo định nghĩa 1.3, có thể thấy rằng:

Trang 21

Định nghĩa 1.4 (Quan hệ Armstrong)

Một quan hệ r là một quan hệ Armstrong đối với một tập phụ thuộc hàm

Σ nếu và chỉ nếu r thỏa mãn mọi phụ thuộc hàm trong *

Σ và chỉ các phụ thuộc hàm đó Nó là cực tiểu nếu mỗi quan hệ Armstrong đối với Σ có số bộ tối thiểu bằng r

Các quan hệ Armstrong rất hữu ích trong thiết kế CSDL bởi vì một tập các phụ thuộc hàm và một quan hệ Armstrong cho tập đó biểu diễn cho cùng một thông tin Phần 2.3 sử dụng tính chất này của các quan hệ Armstrong để phát triển một phương pháp lấy mẫu CSDL với các phụ thuộc hàm Phương pháp này phụ thuộc vào bao đóng của tập các thuộc tính tương ứng với một tập phụ thuộc hàm được định nghĩa tiếp theo đây

Định nghĩa 1.5 (Bao đóng của tập thuộc tính)

Cho một tập Σ các phụ thuộc hàm trên U và một tập thuộc tính X ⊆ U , bao đóng phụ thuộc hàm của X đối với Σ, ký hiệu (X, )Σ *,U hoặc đơn giản

là X * , là tập X* ={A X∈ | Σ ‘ X →A}

Ví dụ 1.2:

Xét quan hệ và tập phụ thuộc hàm đã cho ở ví dụ trên, có thể thấy rằng:

{TenMH}* = {TenMH, TenGV, Nam_hoc}, {TenGV}* = {TenGV}, {Nam_hoc}* = {Nam_hoc}, {TenMH, TenGV}* = {TenMH, TenGV, Nam_hoc}

Có thể thấy rằng X * biểu diễn tập của tất cả các thuộc tính được xác định bởi X theo Σ Một số tập thuộc tính không xác định thêm bất kỳ thuộc tính nào khác ngoại trừ chúng được gọi là tập bão hòa/đóng và được định nghĩa như sau

Trang 22

Định nghĩa 1.6 (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

Ví dụ 1.3:

Xét quan hệ và tập phụ thuộc hàm cho ở ví dụ 1.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}, Ø}

Định nghĩa 1.7 (Giống nhau đúng – Agree exactly)

Cho tập thuộc tính X, X ⊂ U Một cặp bộ t 1 và t 2 trên U giống nhau đúng trên X nếu và chỉ nếu ∀ ∈A X t A t A, ( )1 = 2( )∀ ∉B X t B, ( )1 ≠t B2( )

Ví dụ 1.4:

Xét các bộ t 1 = <Giải_tích_1, 1, Nhân> và t 2 = <Hình_học, 1, Bình>, được định nghĩa trên U = {TenMH, Nam_hoc, TenGV} như ở ví dụ 1.1 Theo định nghĩa 1.7, t 1 và t 2 giống nhau đúng trên thuộc tính Nam_hoc Có thể thấy

là t 1 (Nam_hoc) = t 2 (Nam_hoc) nhưng t 1 (TenMH) ≠ t 2 (TenMH) và t 1 (TenGV)

≠ t 2 (TenGV)

Khái niệm này được mở rộng ra toàn bộ quan hệ như trong định nghĩa sau

Định nghĩa 1.8

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

Định nghĩa 1.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.3

Trang 23

1.5 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

Phần 1.1 giới thiệu về lịch sử nghiên cứu lấy mẫu CSDL J 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 Olken và D Rotem), lấy mẫu CSDL ứng dụng trong khai phá dữ liệu (J Kivinen và H 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 Ngoài ra, J 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

Phần 1.2 và 1.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

Phần 1.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

Trang 24

CHƯƠNG 2: LẤY MẪU CSDL NHẤT QUÁN

Nội dung của chương

2.1 Vấn đề nhất quán trong lấy mẫu CSDL

2.2 Lấy mẫu CSDL nhất quán với các ràng buộc toàn vẹn

2.3 Lấy mẫu CSDL nhất quán với các phụ thuộc hàm

2.4 Phân tích các thuật toán lấy mẫu

2.5 Công cụ lấy mẫu CSDL nhất quán

2.6 Tóm tắt chương 2

2.1 Vấn đề nhất quán trong lấy mẫu CSDL

2.1.1 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:

Hình 2.1: Quá trình lấy mẫu nhất quán CSDL

Điều kiện lấy mẫu

Quá trình lấy mẫu CSDL

CSDL

tác nghiệp

CSDL Mẫu

Trang 25

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.2)

2.1.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:

Hình 2.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.3] và (2) Khởi tạo một CSDL mẫu rỗng có lược đồ phù hợp với CSDL nguồn

Trang 26

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

Trang 27

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.2 và 2.3 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

2.1.3 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

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

Trang 28

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)

1 Sinh_vien(TenSV, Nam_hoc)

2 Mon_hoc(TenMH, Nam_hoc, TenGV)

3 Giao_vien(TenGV, Khoa)

4 Khoa(TenKhoa, Chu_nhiem)

5 Phong_hoc(SoPh, So_ghe, TenKhoa)

6 Thi(TenSV, TenMH, Điem)

7 Tien_quyet(TenMH, MonDK)

8 TKB(TenMH, Ngay, Gio, SoPh)

9 SV_CQ(TenSV, Co_van)

10 Nguoi(Ten, Vai_tro)

Trang 29

2.2 Lấy mẫu CSDL nhất quán với ràng buộc toàn vẹn

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ả Tuy nhiên, các hạn chế của cách tiếp cận này là:

- Việc hình thức hóa một tập lớn các ràng buộc trong logic vị từ cấp một sẽ cho ra một tập các công thức tối nghĩa, trong đó các ràng buộc

bị mất và không mong muốn có thể khó xác định

- Tập các công thức phải được chứng minh là nhất quán Tuy nhiên vấn

đề chứng minh rằng một tập các công thức logic vị từ cấp một là nhất quán là một bài toán nửa có thể quyết định được (semi-decidable)

- Suy diễn trong logic vị từ cấp một đã được chứng minh là không phù hợp trong việc xây dựng CSDL nguyên mẫu

Một đồ thị chèn liên tiếp được thiết kế như là một biểu diễn thay thế

cho các ràng buộc để khắc phục các hạn chế này

- Bản chất của đồ thị chèn liên tiếp làm cho tập các ràng buộc toàn vẹn được biểu diễn tường minh và có thể hiểu được

- Ngữ nghĩa của nó không thể định nghĩa một tập các ràng buộc toàn vẹn không nhất quán

- Nó được thiết kế đặc biệt cho mục đích lấy mẫu CSDL, do đó việc xác định các thể hiện phải được chèn thêm vào nhằm duy trì tính nhất quán được mong đợi là hiệu quả hơn so với việc sử dụng logic vị từ cấp một

Trang 30

Phần kế tiếp sẽ trình bày về đồ thị chèn liên tiếp, một cơ chế dùng để biểu diễn một tập các ràng buộc toàn vẹn được sử dụng rộng rãi để định nghĩa các liên hệ ngữ nghĩa giữa các thực thể (quan hệ hoặc bảng trong CSDL quan hệ) trong một CSDL

Một đồ thị chèn liên tiếp có thể được định nghĩa một cách hình thức gồm một bộ 4: IC G =(Q ,I,T ,δ), trong đó:

- Q: Tập các thực thể trong CSDL

- I: Tập các định danh mũi tên

- T: Tập các loại mũi tên mô tả các kiểu kết quả của thao tác chèn một thể hiện vào CSDL mẫu, như mô tả ở bảng 2.1 Trong đó có thể thấy các

mũi tên Bộ_phận hàm chứa tất cả các loại mũi tên khác Tuy nhiên các

mũi tên khác cũng tồn tại vì chúng đơn giản hóa đồ thị chèn liên tiếp kết quả và đặc biệt hữu ích khi được sử dụng cho mục đích lấy mẫu

- δ : Hàm chèn Mô tả tập hợp các mũi tên đi ra từ một thực thể nào đó trong đồ thị chèn liên tiếp Hàm này được định nghĩa hình thức bởi công thức 2.1:

C T

Trang 31

Phụ thuộc bao hàm

Số_lượng

(Quantified)

Số thể hiện cần bổ sung

Chèn thêm vào thực thể nguồn số lượng cho trước các thể hiện sau khi chèn thể hiện có liên quan vào thực thể đích

Ràng buộc bản số

Hoặc (OR) Không

Một thể hiện phải được chèn thêm vào các thực thể cho trước, sau khi chèn một thể hiện vào thực thể nguồn

Ràng buộc tổng quát hóa

Bộ_phận

(Partial) Điều kiện

Chỉ khi điều kiện cho kết quả đúng thì phép chèn mới cần thiết

Ràng buộc tổng quát

Bảng 2.1: Các loại mũi tên trong một đồ thị chèn liên tiếp

Do đó mỗi mũi tên trong đồ thị chèn liên tiếp có thể được mô tả bởi

một bộ 4, <i, P, t, c>, trong đó:

- i là định danh mũi tên, i I

- P là tập các thực thể đích cho mũi tên này, P∈ 2Q Nó luôn là duy

nhất, ngoại trừ các mũi tên Hoặc, như mô tả trong bảng 2.1

- t là loại mũi tên, t T

- c biểu diễn cho các thông tin bổ sung cần thiết cho một số loại mũi

tên, như chi tiết trong bảng 2.1, với c C∈∈∈∈ ====¥ ∪∪∪∪P (P ký hiệu cho

Predicate – vị từ) Nó phải được diễn tả theo các cách khác nhau phụ

thuộc vào loại mũi tên gắn với nó

Số_lượng: c ∈ ∈ ∈ ¥

Trang 32

Bộ_phận: c∈ P Trường hợp này c là một điều kiện phải được thỏa

mãn bởi CSDL mẫu trước khi chèn thêm một bộ vào thực thể đích

Tổng: c không có ý nghĩa trong trường hợp này

Hoặc: Tương tự trên c cũng không có ý nghĩa trong trường hợp

này Loại mũi tên này có thể bao gồm nhiều thực thể đích và danh sách các thực thể này là thông tin duy nhất cần thiết để thực hiện ngữ nghĩa của nó

Sự xuất hiện của bốn loại mũi tên trong định nghĩa của một đồ thị chèn liên tiếp là do chúng có thể diễn tả được các ngữ nghĩa của CSDL nguồn

Loại ràng buộc mà mỗi loại mũi tên diễn tả được mô tả trong cột Loại ràng buộc ở bảng 2.1

Lưu ý rằng, đối với mô hình quan hệ, hàm chèn δ phải xác định các thuộc tính được dùng để kết nối các thực thể nguồn và đích Điều này không được xác định tường minh trong định nghĩa ở trên vì nó là một trường hợp riêng của mô hình quan hệ và các khái niệm về đồ thị chèn liên tiếp ở đây được định nghĩa một cách chung nhất có thể Nếu nó được áp dụng cho một

mô hình dữ liệu khác thì cơ chế được dùng để xác định liên kết giữa các thực thể sẽ khác với cơ chế được dùng trong mô hình quan hệ

2.2.3 Ví dụ về đồ thị chèn liên tiếp

Hình 2.4 biểu diễn một đồ thị chèn liên tiếp trong đó chứa đựng tất cả ngữ nghĩa của CSDL Đại học mô tả ở phần 2.1.3 Mỗi nút của đồ thị biểu diễn một bảng trong mô hình logic và các cạnh của nó biểu diễn các ngữ nghĩa CSDL có liên quan tới quá trình lấy mẫu Lưu ý là có một số loại ràng buộc, như ràng buộc bản số tối đa, không được biểu diễn trong đồ thị vì nếu thiếu chúng thì cũng không thể dẫn tới một CSDL mẫu không nhất quán Ví

dụ trong CSDL đã cho, mỗi giáo viên có thể dạy tối đa ba môn học mà nếu CSDL nguồn đã thỏa mãn ràng buộc này thì không thể có một mẫu tách ra từ

Trang 33

nó chứa thông tin về một giáo viên dạy hơn ba môn học Do đó, ràng buộc này không cần phải xem xét trong quá trình lấy mẫu Phần 3.4 sẽ xem xét thuộc tính này của các ràng buộc toàn vẹn được xem là không có liên quan tới lấy mẫu một cách chi tiết hơn

Hình 2.4: Đồ thị chèn liên tiếp cho CSDL Đại học

Ở hình 2.4, các mũi tên không có thông tin kết hợp bên cạnh tên của

chúng là các mũi tên Tổng_thể A 1 là một ví dụ của loại mũi tên này, trong quá trình lấy mẫu nó sẽ được sử dụng để bảo đảm rằng mỗi khi có một bộ từ

bảng Thi được chèn thêm vào mẫu thì một bộ có liên quan tới sinh viên đó từ bảng Sinh_vien cũng sẽ được đưa vào mẫu Điều này nhằm duy trì tính chất

nhất quán của CSDL mẫu A 2 là một ví dụ của loại mũi tên Số_lượng bởi vì

nó có một số nguyên bên cạnh Nó biểu diễn cho sự kiện là một sinh viên sẽ

được đưa vào bảng SV_CQ nếu sinh viên đó đã dự thi ít nhất năm môn học Cùng ràng buộc này đòi hỏi sự bổ sung của mũi tên Bộ_phận A 3, sao cho nếu

bảng Thi ghi nhận hơn năm môn thi cho cùng một sinh viên thì sinh viên này

Trang 34

phải được xem là một sinh viên chính quy (và do đó sinh viên này cần phải có một cố vấn, vì vậy mà mũi tên A 4 cũng được đưa vào đồ thị) Theo định nghĩa

ở trên, một mũi tên Bộ_phận cần một điều kiện để xác định khi nào một phép

chèn là cần thiết Điều kiện C 1 gắn với mũi tên A 3 được cho như sau:

C1: (Select count(*) From Thi Where TenSV =’ x’) ≥ 5

Với ‘x’ là tên của sinh viên (khóa chính của bảng Sinh_vien) Điều kiện

này đòi hỏi CSDL mẫu đếm xem có bao nhiêu môn thi mà sinh viên ‘x’ đã

tham gia mỗi khi có một thể hiện mới được chèn thêm vào bảng Thi Nếu “x”

đã thi nhiều hơn năm môn học thì “x” là một sinh viên chính quy Mũi tên

Hoặc A 14 dùng để thực hiện một phụ thuộc tổng quát hóa của CSDL nguồn,

trong đó thực thể Người tổng quát cho cả bảng Sinh_vien và Giao_vien Các mũi tên Tổng_thể A 15 và A 16 thực hiện chính ràng buộc đó nhưng theo chiều ngược lại, tức là nếu có một giáo viên/sinh viên được đưa vào mẫu thì giáo

viên/sinh viên đó cũng phải được đưa vào thực thể Người trong CSDL mẫu

Tương tự như thế, toàn bộ đồ thị chèn liên tiếp cho CSDL ví dụ đã cho

có thể được xây dựng như mô tả ở hình 2.4 Lưu ý là một đồ thị như vậy trong thực tế có thể được tạo ra từ lược đồ EER tương ứng, trong đó:

- Các quan hệ 1-N trở thành các mũi tên Tổng_thể, ví dụ quan hệ giữa các bảng SV_CQ và Giao_vien

- Các ràng buộc tổng quát hóa (ví dụ cả Sinh_vien và Giao_vien đều là Nguoi) là các mũi tên Hoặc

- Các ràng buộc về số lượng (ví dụ một giáo viên phải dạy ít nhất một

môn học) ánh xạ thành các mũi tên Số_lượng

Chỉ có sự biến đổi của các quan hệ tập con (ví dụ SV_CQ là tập con của Sinh_vien) là đòi hỏi các thông tin bổ sung bởi vì ngữ nghĩa của nó không thể

luôn được mô tả trong một lược đồ EER

Trang 35

Thay vì sử dụng một biểu diễn bằng đồ thị, một đồ thị chèn liên tiếp cũng có thể được mô tả sử dụng định nghĩa hình thức của nó ở dạng bộ bốn

) , , ,

(Q I T δ

tiếp có thể được xác định như sau:

- Q = {Mon_hoc, Thi, SV_CQ, Giao_vien, Nguoi, Sinh_vien, TKB, Tien_quyet, Phong_hoc}

Các thực thể đích (P)

Loại mũi tên (t)

Trang 36

Sinh_vien A16 {Người} Tổng_thể

Giao_vien A17 {Mon_hoc} Số_lượng 1

Mon_hoc A18 {TKB} Số_lượng 1

SV_CQ A19 {Sinh_vien} Tổng_thể

Khoa A20 {Phong_hoc} Số_lượng 1

Mon_hoc A21 {Tien_quyet} Hoặc

Bảng 2.2 Hàm chènδ cho đồ thị chèn liên tiếp ở hình 2.4

2.2.4 Thuật toán lấy mẫu sử dụng đồ thị chèn liên tiếp

Phần này mô tả một thuật toán lấy mẫu nhất quán một CSDL dựa trên

đồ thị chèn liên tiếp Dữ liệu đầu vào bao gồm:

- Đồ thị chèn liên tiếp cho CSDL được lấy mẫu

- Kích thước tối thiểu của CSDL mẫu Đây là điều kiện để dừng quá trình lấy mẫu

- Số các thực thể mà một thực thể chỉ tới và được chỉ tới trong đồ thị chèn

liên tiếp gọi là các giá trị đi ra (Fan-out) và đi vào (Fan-in) tương ứng

Thông tin này có thể được tách ra từ chính đồ thị chèn liên tiếp

Trang 37

Hình sau mô tả thuật toán lấy mẫu một CSDL nhất quán với tập các ràng buộc toàn vẹn được biểu diễn trong một đồ thị chèn liên tiếp, đây cũng chính là tham số đầu vào

//Hàm tách ra một mẫu từ CSDL D theo đồ thị chèn liên tiếp ICG

Function ConsistentSampleICG(input ICG: InsertionsChainGraph,

input D: Database, input Sample: Database) output bool {

/* ICG.NotFullEntities biểu diễn tập các tên thực thể vẫn chưa đạt đến số lượng thể hiện tối thiểu trong CSDL mẫu

entity và instance chỉ tới một bảng và một bộ thuộc bảng entity trong

CSDL nguồn */

while (ICG.NotFullEntities ≠ θ) do

entity = SelectEntity(ICG);

// Chọn một thực thể để lấy mẫu dựa trên các giá trị đi ra và đi vào

instance = SampleInstance(D, entity);

// Lấy ngẫu nhiên một thể hiện từ thực thể entity vừa chọn

InsertInstance(Sample, entity, instance, ICG.NotFullEntities);

/*Chèn thể hiện instance vào CSDL mẫu, kiểm tra và xóa tên thực thể

entity ra khỏi tập ICG.NotFullEntities nếu nó đã đạt đến kích thước tối

thiểu*/

TargetEntities = ICG.δ(tEntity)| P ;

/*Tập của các thực thể có được do kết quả của phép chèn ở trên*/

For each targetEntity TargetEntities do

newInstance:= SampleInstance_local (D, targetEntity, instance);

if (newInstance = ) then return false;

// CSDL nguồn không nhất quán

if NOT (KeepConsistentICG (ICG, Sample, targetEntity,

Trang 38

Function KeepConsistentICG(input/output ICG : InsertionsChainGraph,

input/output Sample: Database, input tEntity: DBEntity, input tInstance: DBInstance, input D: Database)

output bool {

InsertInstance(Sample, tEntity, tInstance, NotFullEntities);

TargetEntities = ICG.δ(tEntity)| P ;

/* Tập của các thực thể là kết quả của phép chèn ở trên*/

for each targetEntity TargetEntities do

newInstance:= SampleInstance_local(D, targetEntity, tInstance );

if (newInstance = ) then return false;

//CSDL nguồn không nhất quán

if NOT (KeepConsistent(ICG, Sample, targetEntity, newInstance, D)) return false;

endfor

return true;

}

Hình 2.5: Thuật toán lấy mẫu CSDL nhất quán với ICG

Các hàm được sử dụng trong thuật toán này bao gồm:

- SelectEntity(): Chọn các thực thể với giá trị đi ra lớn nhất, nếu có

nhiều giá trị đi ra trùng nhau thì chọn thực thể có giá trị đi vào nhỏ

nhất, nếu lại bằng nhau thì sẽ chọn ngẫu nhiên Thuật giải (heuristics) này sẽ dẫn tới một CSDL mẫu nhất quán có kích thước nhỏ, bởi vì cùng một thể hiện có thể được dùng để thực hiện các thao tác chèn trong nhiều thực thể thay vì yêu cầu một thể hiện mới cho mỗi thực thể Hàm này sử dụng đồ thị chèn liên tiếp và chỉ xét các thực thể chưa đạt đến kích thước tối thiểu trong CSDL mẫu (có tên

thuộc vào tập NotFullEntities)

Trang 39

- SampleInstance(): Lấy ngẫu nhiên một thể hiện từ thực thể đầu vào

Cần phải chọn một phân phối xác suất để sử dụng, để đơn giản có thể

sử dụng một phân phối đồng bộ Ngoài ra một kiểu phân phối khác

có thể được chọn là phân phối tác nghiệp (operational distribution), trong đó các thể hiện thường được truy xuất trong thực tế sẽ được ưu tiên chọn đưa vào mẫu

- InsertInstance(): Chèn thể hiện được lấy mẫu vào CSDL mẫu Nó

cũng kiểm tra xem thực thể này đã đạt được kích thước tối thiểu chưa Nếu đạt thì tên của thực thể sẽ bị xóa khỏi danh sách các thực thể chưa đủ kích thước tối thiểu (NotFullEntities)

- ICG ( tEntity ) | Pδδ δ δ : ICG ()δ δδ δ là hàm chèn (Insertions Function) và |P

ký hiệu cho sự giới hạn của bộ bốn kết quả về thành phần thứ hai của

nó, P, tập các thực thể đích cho thực thể này

- SampleInstance_local(): Chọn từ CSDL nguồn một thể hiện của

targetEntity có liên quan tới tInstance Nó phải là một thể hiện chưa

có trong mẫu, nếu có nhiều thể hiện có thể chọn thì nó sẽ được chọn ngẫu nhiên

Thuật toán mô tả ở trên là một thuật toán chi tiết hóa của thuật toán

tổng quát ở hình 2.2 Phương thức khởi tạo InitialiseProcess() tương ứng với

bước xây dựng đồ thị chèn liên tiếp, trong trường hợp này đồ thị chèn liên

tiếp là tham số đầu vào của thuật toán SelectEntity() cùng với hoặc là SampleInstance_Local() hoặc là SampleInstance() thực hiện các chức năng của phương thức SelectInstance() tương ứng StopSampling() được thực hiện trong trường hợp này bởi điều kiện NotFullEntities ≠ ø Cuối cùng UpdateProcess() được biểu diễn bởi hàm KeepConsistentICG()

Trang 40

Bảng 2.3 chứa các thông tin lấy mẫu có được từ đồ thị chèn liên tiếp ở

hình 2.4 Thông tin bao gồm các giá trị đi vào và đi ra, cũng như kích thước

mẫu tối thiểu của mỗi thực thể

Tên thực thể Đi vào Đi ra Kích thước mẫu tối thiểu

Bảng 2.3: Thông tin lấy mẫu cho đồ thị chèn liên tiếp ở hình 2.4

Quá trình lấy mẫu áp dụng thuật toán ở hình 2.5 có thể được tóm tắt

như sau Mỗi thực thể đòi hỏi ít nhất một thể hiện ngoại trừ bảng SV_CQ có thể rỗng Theo điều kiện chọn của SelectEntity(), quá trình lấy mẫu có thể bắt đầu từ thực thể Thi hoặc SV_CQ bởi vì hai thực thể này có cùng giá trị đi ra lớn nhất và đi vào nhỏ nhất trong bảng 2.3 Do bảng SV_CQ có thể rỗng nên thực thể Thi sẽ là nơi bắt đầu quá trình lấy mẫu Theo đồ thị chèn liên tiếp ở hình 2.4, mỗi khi một thể hiện từ thực thể Thi được đưa vào mẫu thì một thể hiện mới cũng phải được chèn thêm vào thực thể Sinh_vien vì mỗi môn thi

phải có ít nhất một sinh viên tham dự Khi một sinh viên được đưa vào mẫu

thì một bộ có liên quan ở bảng Người cũng được đưa vào mẫu Phép chèn ban đầu này vào bảng Thi cũng sẽ đòi hỏi các bộ có liên quan ở bảng Mon_hoc

Ngày đăng: 16/12/2024, 09:57

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w