CHƯƠNG 2 MỘT SỐ VẤN ĐỀ CƠ BẢN CỦA TÍCH HỢP DỮ LIỆU
2.2 Kiến trúc hệ thống tích hợp dữ liệu
Như đã trình bày trước đây, các thuộc tính trọng tâm của hệ tích hợp dữ liệu đó là khả năng tích hợp, tạo ra một lược đồ trung gian cho người dùng truy vấn, khả năng biên dịch, tính toán lại câu truy vấn ban đầu để lấy thông tin từ các nguồn dữ liệu dựa trên mối liên hệ của chúng với lược đồ dữ liệu trung gian, và khả năng thực hiện các truy vấn và điều khiển tại các nguồn cơ sở dữ liệu. Một hệ thống tích hợp dữ liệu là sự biến đổi và mang hầu hết các tính chất của hệ cơ sở dữ liệu tiêu chuẩn:
nó có hoặc rất ít các hệ thống lưu trữ vật lý con, và thường không chứa các cập nhật nhanh, nhưng nó cần khả năng biên dịch truy vấn và khả năng lấy dữ liệu từ các nguồn dữ liệu từ xa. Các thành phần chính của hệ tích hợp dữ liệu được thể hiện như hình 2.1, chúng gồm có những nội dung sau:
Ứng dụng hoặc các giao diện người
dùng
Bộ tính toán lại truy vấn
(Viết lại và lựa chọn nguồn dữ liệu)
Trình bao bọc
Dữ liệu
Các nguồn XML động Các nguồn dữ liệu quan hệ Các nguồn dữ liệu XML có thể lưu trữ;
Các nguồn dữ liệu khác Truy vấn trên
lược đồ trung gian
Kết quả Danh sách
Nguồn dữ liệu
Bộ xử lý truy vấn (đánh giá và thực thi)
Dữ liệu Dữ liệu
Các thông số Nguồn dữ liệu
Mô tả nguồn dữ liệu
Tính toán lại câu truy vấn
Điểm chứa
Hình 2.1 Lƣợc đồ kiến trúc tích hợp dữ liệu. Ứng dụng và giao diện người dùng cho truy vấn dưới dạng lược đồ trung gian. Bộ tính toán lại sử dụng dữ liệu từ nhiều nguồn và viết lại câu truy vấn này để liên hệ với các
nguồn dữ liệu thật. Bộ xử lý truy vấn sẽ tìm một kế hoạch tối ƣu nhất để thực thi câu truy vấn này. Sau đó lấy dữ liệu từ các nguồn (trong một số trường hợp thông qua các bộ chuyển hoặc các điểm lưu trữ) và chúng được kết hợp trả về câu trả lời toàn diện nhất.
Ứng dụng hoặc các giao diện người dùng.
Thông thường, hệ thống gồm một giao diện có khả năng khởi tạo truy vấn và tổng kết các thông tin trả về một cách linh động, giao diện người dùng dựa trên chuẩn GUI, ứng dụng người dùng hợp lý, hoặc một ứng dụng dựa trên nền Web.
Thông thường thì các dữ liệu yêu cầu được khởi tạo trước khi có câu trả lời do đó nó có thể cung cấp thông tin phản hồi nhanh hơn tới người dùng. Hơn nữa, nhiều ứng dụng được đặt ở chế độ đặc biệt, các câu truy vấn con có thể kết thúc trước khi chúng hoàn thành.
Bộ tính toán lại câu truy vấn.
Câu truy vấn ban đầu được viết dưới dạng một lược đồ gián tiếp, một lược đồ đơn thống nhất. Lược đồ sẽ được điều chỉnh dựa trên các mối quan hệ giữa lược đồ chung và các nguồn dữ liệu trên cơ sở định nghĩa khung nhìn.
Có hai loại công nghệ được đề cập (xem thêm tại tài liệu [13]): local-as-view (khung nhìn cục bộ) định nghĩa nguồn dữ liệu như là khung nhìn trên lược đồ trung gian, global-as-view (khung nhìn toàn cục) định nghĩa lược đồ trung gian như là khung nhìn dựa trên các nguồn dữ liệu. Lược đồ khung nhìn toàn cục có ưu điểm là các câu truy vấn lược đồ trung gian có thể dễ dàng kết hợp với định nghĩa khung nhìn (”trải ra”) để có được câu truy vấn đầy đủ. Khung nhìn cục bộ yêu cầu sự phức tạp nhiều hơn trong vấn đề tính toán lại câu truy vấn, nhưng nó có khả năng thể hiện một cách có ý nghĩa hơn – và hầu hết các hệ tích hợp hiện đại đều sử dụng nó (hoặc một mô hình lai giữa hai công nghệ).
Hiện nay, vấn đề thuật toán tính toán lại truy vấn là một trong những nội dung nghiên cứu chính tại đại học Washington. Các thuật toán phổ biến ra đời tại đại học này là thuật toán Bucket và thuật toán Minicon.
Vấn đề tính toán lại truy vấn hiện nay được thực hiện trên truy vấn liên kết và hầu hết trong dữ liệu quan hệ. Tuy nhiên, hầu như các mô hình dữ liệu tự nhiên đều phù hợp với chuẩn trao đổi dữ liệu XML, kể từ khi chuẩn dữ liệu này đủ thông dụng để hoà hợp với các nguồn dữ liệu như hướng đối tượng, văn bản, và dữ liệu quan hệ. XQuery là chuẩn ngôn ngữ được phát triển bởi XML, ngôn ngữ này được xây dựng để thực hiện truy vấn trong các tài liệu XML và nó đang được nghiên cứu và xác định là có thể thể hiện câu truy vấn trong hệ tích hợp dữ liệu bằng ngôn ngữ này. Trong thực tế, các nghiên cứu gần đây của dự án Piazza (trang 14 tài liệu [17]) đã bắt đầu sử dụng thuật toán Minicom để làm việc với tập con liên kết của XQuery.
Danh mục các nguồn dữ liệu.
Danh mục các nguồn dữ liệu chứa một vài dạng kiểu siêu dữ liệu về mỗi một nguồn dữ liệu. Đầu tiên là mô tả ngữ nghĩa nội dung của nguồn dữ liệu. Một lượng lớn các dự án, đã từng thảo luận về việc phát triển công nghệ cho việc tự động hoặc bán tự động tạo ra các ánh xạ giữa các nguồn dữ liệu và lược đồ trung gian của hệ tích hợp dữ liệu.
Kích cỡ của các nguồn dữ liệu và mặt khác là tính phân tán của dữ liệu cũng có thể được ghi chú vào cùng với các thông tin về các ánh xạ, nhưng điều này chỉ có tính khả thi nếu như các nguồn dữ liệu hiếm khi thay đổi và nó có thể được khảo sát nhanh chóng; chúng ta thực sự không thể trông đợi đây là một tình huống thông thường được. Trong một vài tình huống, hệ thống thậm chí phải có nhiều thông tin mô tả hơn về tính gối chồng giữa các giá trị dữ liệu tại các nguồn dữ liệu khác nhau.
Một mô hình cho vấn đề gối chồng mô tả khả năng rằng một giá trị dữ liệu d xuất hiện trong nguồn S1 và nó cũng được xuất hiện trong nguồn S2. Điều này có thể
được sử dụng như giá trị thông tin cận biên để đánh giá dữ liệu từ các nguồn dữ liệu chắc chắn.
Chúng ta cần xây dựng mô tả nguồn dữ liệu và uớc tính sự phát triển giá trị dữ liệu đối với quá trình thực thi song song với thời gian, và cung cấp một mô hình mở rộng cho vấn đề xác định khả năng của các nguồn dữ liệu.
Bộ xử lý truy vấn
Bộ xử lý truy vấn nhận được đầu ra của bộ tính toán lại truy vấn - một truy vấn trên các nguồn dữ liệu thực (có thể bao gồm các mô tả của các nguồn dữ liệu dự khuyết) – và cố gắng đánh giá và thực thi nó (trang 6 tài liệu [4]). Các bộ đánh giá truy vấn tìm kiếm cây ước lượng phép toán tốt nhất cho việc thực thi truy vấn (theo các thuộc tính cá biệt của đối tượng, ... ví dụ, lượng công việc, thời gian để hoàn thành), và bộ thực thi truy vấn có thể tuỳ ý ghi lại các thông tin các hồ sơ được thống kê trong danh mục các nguồn dữ liệu. Chúng ta cần quan tâm đến vấn đề làm thế nào để các kỹ thuật và kênh liên lạc có thể được sử dụng để làm tăng hiệu năng cho bộ xử lý truy vấn đối với dữ liệu XML trên mạng.
Trình bao bọc
Ban đầu công việc trên tích hợp dữ liệu là cố gắng để chuẩn hoá các dữ liệu trao đổi. Mỗi một nguồn dữ liệu có thể có các định dạng riêng để thể hiện dữ liệu (ví dụ: ODBC từ CSDL quan hệ, HTML từ máy chủ Web, dữ liệu nhị phân từ cơ sở dữ liệu hướng đối tượng... ). Một nhiệm vụ chúng ta cần quan tâm trong hệ tích hợp dữ liệu là làm thế nào tạo ra được trình bao bọc. Một trình bao bọc là một chức năng phần mềm chấp nhận các yêu cầu dữ liệu từ hệ tích hợp dữ liệu (hoặc dữ liệu trung gian) và trả về các dữ liệu đã yêu cầu từ các nguồn; sau đó chuyển đổi từ nguồn dữ liệu dưới dạng trình bày của định dạng dữ liệu thường dùng trong lược đồ trung gian. Các nghiên cứu gần đây đã thành công trong việc tạo ra các trình bọc nhanh chóng, bao gồm các công cụ cho việc tự động tạo ra trình bao bọc cho các
nguồn dữ liệu dạng Web dựa trên những ví dụ huấn luyện, cũng như có các bộ công cụ dễ dàng cho việc lập trình các trình bao bọc cho các dịch vụ thông tin trên Web.
Ngày nay, các yêu cầu đối với trình bao bọc đã giảm đi, XML phát triển đã nhanh chóng như một định dạng chuyển đổi các nguồn dữ liệu.
Nguồn dữ liệu
Nguồn dữ liệu (Data Source) là nơi chứa dữ liệu và chúng ta có thể lấy thông tin tại đó. Nguồn dữ liệu có thể là một cớ sở dữ liệu, các tệp XML, các định dạng bảng tính, các file văn bản, các thông tin kết nối dữ liệu, các cấu trúc định dạng tệp tin khác … hoặc có thể là sự kết hợp của những loại trên.
Trong xây dựng hệ thống, thành phần nguồn dữ liệu được sử dụng cho nhiều mục đích như trong việc xây dựng các trang web động hoặc các phần mềm quản trị nội dung…. Điều này có nghĩa là, các thông tin chi tiết và loại dữ liệu trong nguồn dữ liệu cho phép phân trang nội dung, ví dụ: tập các bảng có khả năng truy vấn.
Trong thực tế, nguồn dữ liệu cho phép chúng ta làm đơn giản quá trình phát sinh tự động và khai thác truy vấn dữ liệu.
Thông tin trong nguồn dữ liệu thông thường được lưu trữ trong các hàng và các cột hay còn được gọi là các trường. Những thông tin được sử dụng cho việc kết hợp cùng với các văn bản, các nhãn, hoặc các cấu trúc để tạo ra các trang tin phù hợp với yêu cầu của người thiết kế và người sử dụng. Các trường thông tin có thể là: Họ tên, Ngày sinh, Điểm số, ...
Với sự phát triển dần theo thời gian, các kiểu dữ liệu không chỉ dừng lại các dạng văn bản thông thường. Hiện nay có rất nhiều kiểu dữ liệu được nghiên cứu và đưa vào ứng dụng một cách mạnh mẽ. Như là: kiểu dữ liệu âm thanh, kiểu dữ liệu hình ảnh, kiểu dữ liệu video, kiểu dữ liệu không gian … Trong thế giới tràn ngập thông tin như vậy, chúng ta cần phải xây dựng những công cụ thích hợp cho phép chúng ta lấy được các tri thức cần thiết để quyết định các hành động của mình.
Các nguồn dữ liệu trong một môi trường tích hợp giống như là kết hợp các nguồn dữ liệu hiện tại, hỗn tạp và tự trị. Sự chênh lệch sẽ tăng cao nếu như không một hệ thống nào được thiết kế hỗ trợ việc tích hợp, vì các điều kiện thuận lợi cho việc đánh đổi siêu dữ liệu và số liệu thống kê, đánh giá chi phí sẽ không xác định được ngay tức thời. Đôi khi một số nguồn dữ liệu thậm chí sẽ không có khả năng truy vấn chính xác, ví dụ như dữ liệu XML hoặc các bảng tính. Hơn nữa, trong một số tình huống các nguồn dữ liệu có thể được điều khiển từ các thực thể bên ngoài, mà họ lại chỉ muốn cho phép việc truy nhập một cách giới hạn về lưu lượng, và các tính toán trên nguồn đữ liệu. Những hạn chế của khả năng truy cập này có thể bao gồm cả các mô hình mẫu liên kết, nơi mà các nguồn dữ liệu lấy các thông tin thường gắn với các thông tin cá nhân mang theo.
Các hệ thống tích hợp dữ liệu sẽ thường xuyên nhận dữ liệu từ các nguồn với tỷ lệ không đồng đều và có trường hợp là vô định về mặt thời gian. Hệ tích hợp dữ liệu phải có khả năng hỗ trợ giải quyết các vấn đề này, có thể hệ thống sẽ phải sử dụng một địa điểm làm bộ nhớ lưu tạm thời các thông tin.
Một nội dung quan trọng liên quan là các nguồn dữ liệu bên ngoài có quan hệ ngữ nghĩa với các thực thể. Dữ liệu đa nguồn có thể có cùng các thực thể (một người dùng có thể là thành viên của nhiều dịch vụ Web). Thông thường những nguồn dữ liệu khác nhau này sẽ có cách thể hiện các định danh khác nhau, và một trong những vấn đề quan trọng là xác định khi nào hai thực thể là trùng nhau hay khác nhau. Vấn đề này vẫn còn chưa giải quyết được, nhưng một vài nghiên cứu ban đầu đã hoàn thành bằng cách sử dụng kỹ nghệ chiết xuất thông tin cho việc tìm kiếm sự tương tự và xác suất. Tuy nhiên trong một số trường hợp, việc đối sánh ngữ nghĩa cần phải sử dụng các công thức toán để đánh giá hoặc dựa trên sự đánh giá thủ công của người sử dụng. Trong những tình huống này, điều quan trọng là chúng ta cần một định dạng dữ liệu thông dụng.
XML đã phát triển và đóng vai trò như là một nhân tố chuẩn trong việc trao đổi thông tin, việc điều hướng tích hợp dữ liệu dựa trên nền dữ liệu XML thông qua HTTP. Hầu hết các ứng dụng đều hỗ trợ các form có thể xuất định dạng XML, song các ứng dụng kế thừa có thể yêu cầu các trình bọc để xuất dữ liệu ra định dạng XML. Đặc trưng của XML là khả năng mã hoá cấu trúc hoặc bán cấu trúc thông tin hầu hết các định dạng: dữ liệu quan hệ, dữ liệu hướng đối tượng, dữ liệu văn bản, thậm chí cả các dữ liệu hình ảnh ....