Trong phạm vi đồ án thực tập tốt nghiệp này, em đã nghiêncứu và cài đặt thành phần tách truy vấn và hợp dữ liệu trong hệ thống tích hợp dữ liệu bán cấu trúc.. Hệ thống của ta không chỉ đ
Trang 1Mục lục
PHẦN I: TỔNG QUAN VỀ HỆ THỐNG TÍCH HỢP DỮ LIỆU BẰNG XML 3
I)GIỚI THIỆU 3
II)CÁC KIẾN THỨC CƠ SỞ CỦA HỆ THỐNG 4
1)XML 4
2)RDF 5
3)Ontology 6
III)KIẾN TRÚC VÀ CÁC THÀNH PHẦN CỦA HỆ THỐNG 7
1)Kiến trúc: 7
2)Các thành phần của hệ thống 7
a)Meta Data 7
b)Khối tương tác MetaData 9
c)Wrapper 9
d)Query Engine 9
e)Tách truy vấn 9
f)Hợp dữ liệu 9
g)Giao tiếp mạng: 10
PHẦN II: TÁCH TRUY VẤN VÀ HỢP DỮ LIỆU TRONG HỆ THỐNG TÍCH HỢP DỮ LIỆU BÁN CẤU TRÚC 11
I)TÁCH TRUY VẤN: 11
1)Biểu diễn truy vấn người dùng: 11
2)Truy vấn dữ liệu XQuery: 13
3)Tách truy vấn: 16
a)Phân tích từ vựng 18
b)Phân tích cú pháp 19
c)Phân tích cấu trúc 19
d)Lấy ánh xạ tương ứng từ MetaData 20
e)Xây dựng câu truy vấn con cho mỗi nguồn: 21
II)HỢP DỮ LIỆU: 22
PHẦN III: CÀI ĐẶT HỆ THỐNG TÍCH HỢP DỮ LIỆU 23
1)CÀI ĐẶT BỘ CÔNG CỤ TRUY VẤN DỮ LIỆU XML 23
2)CÀI ĐẶT CÁC THÀNH PHẦN CỦA HỆ THỐNG 23
a)Giao tiếp mạng: 23
b)Khối giao tiếp Meta Data: 25
c)Khối tách truy vấn và hợp dữ liệu 25
PHẦN IV:KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 28
1)KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 28
2)Hướng phát triển 28
Trang 2Tổng quan
Trong thời đại bùng nổ thông tin như hiện nay, các nguồn thông tin vôcùng dồi dào và hết sức phong phú Chúng có thể tồn tại ở nhiều nơi và ở nhiềudạng khác nhau Dữ liệu có thể lưu ở dạng có cấu trúc như cơ sở dữ liệu quan
hệ, cơ sở dữ liệu hướng đối tượng hoặc ở dạng không có cấu trúc như các dữliệu Text: Doc, Excel
Hiện nay, việc thu thập, tích hợp để lấy được các thông tin cần thiết là
vô cùng quan trọng đôi khi còn có ý nghĩa sống còn đối với mỗi cá nhân cũngnhư mỗi tổ chức Nhờ nắm bắt được các thông tin một cách nhanh chóng vàchính xác mà cá nhân hay tổ chức có thể đưa ra các quyết định một cách đúngđắn và kịp thời.Tuy nhiên với nguồn dữ liệu vô cùng phong phú và đa dạngviệc tập hợp các thông tin cần thiết là hết sức khó khăn đối với các nhân cũngnhư tổ chức Do vậy, việc xây dựng một hệ thống tích hợp dữ liệu là yêu cầucấp thiết hiện nay
Trong hệ thống tích hợp gồm nhiều phân hệ Mỗi phân hệ chính là mộtvấn đề nghiên cứu Trong phạm vi đồ án thực tập tốt nghiệp này, em đã nghiêncứu và cài đặt thành phần tách truy vấn và hợp dữ liệu trong hệ thống tích hợp
dữ liệu bán cấu trúc Đây là một trong những thành phần quan trọng của hệthống Thành phần này đảm nhiệm việc nhận câu truy vấn từ người dùng tiếnhành tách truy vấn và xây dựng câu truy vấn con cho các nguồn dữ liệu Saukhi có kết quả truy vấn thành phần này sẽ tiến hành hợp nhất các dữ liệu đểđược thông tin cần thiết
Bản báo cáo của đồ án có 4 phần chính Phần I sẽ trình bày tổng quan về
hệ thống tích hợp dữ liệu bán cấu trúc bằng XML Phần II sẽ trình bày việctách truy vấn và hợp dữ liệu Phần III sẽ trình bày công việc cài đặt thành phầntách truy vấn và hợp dữ liệu trong hệ thống Phần IV trình bày kết quả đạt được
và hướng phát triển tiếp theo
Trang 3Phần I: Tổng quan về hệ thống tích hợp dữ liệu
bằng XML I)Giới thiệu
Hệ thống tích hợp dữ liệu cung cấp cho người sử dụng một giao diệnđơn giản dễ dùng để lấy các thông tin cần thiết Hệ thống sẽ lấy dữ liệu từnhiều nguồn khác nhau Các nguồn dữ liệu này có thể tồn tại ở nhiều nơi vàdưới nhiều dạng khác nhau như dữ liệu có cấu trúc, bán cấu trúc Hệ thống của
ta không chỉ đơn thuần là tìm các thông tin từ các nguồn mà nó còn phải tíchhợp được các nguồn thông tin khác nhau thành một nguồn thông tin cần thiếtcho người sử dụng
Tuy nhiên việc hợp nhất dữ liệu không phải là một vấn đề đơn giản Cácnguồn dữ liệu ở nhiều dạng khác nhau Do vậy để hợp nhất ta cần đưa về mộtdạng thống nhất Không những vậy,vấn đề chính của hệ thống tích hợp dữ liệu
là tồn tại các dữ liệu không đồng nhất về ngữ nghĩa và cấu trúc:
Tồn tại trường hợp nhiều nguồn dữ liệu có các khái niệm cùng tênnhưng là các khái niệm khác nhau
Nhiều nguồn dữ liệu có các khái niệm khác tên nhưng là cùng một kháiniệm
Một khái niệm của nguồn dữ liệu này có thể là hợp nhất nhiều khái niệm
ở nguồn khác
Các khái niệm ở các nguồn có thể có cấu trúc khác nhau
Những vấn đề này là khó khăn chính cho các hệ thống tích hợp dữ liệu.Trên thế giới đã có nhiều công trình nghiên cứu liên quan đến vấn đề này và đãcũng có nhiều giải pháp khác nhau
Trong hệ thống tích hợp dữ liệu của ta, ta sẽ sử dụng dữ liệu XML là dữliệu thống nhất cho tích hợp XML là ngôn ngữ đánh dấu mở rộng do tổ chứcW3C phát triển và chuẩn hoá cho mục đích biểu diễn và trao đổi dữ liệu trênWeb XML là ngôn ngữ rất linh hoạt và có một số ưu việt nên còn được sử
Trang 4dụng như một chuẩn trong biểu diễn dữ liệu bán cấu trúc Các nguồn dữ liệukhác nhau của hệ thống sẽ được chuyển về dạng chuẩn thống nhất XML để chotích hợp.
Để giải quyết vấn đề hỗn tạp ngữ nghĩa và cấu trúc, hệ thống sử dụngthông tin từ khối MetaData để tích hợp dữ liệu Khối MetaData chứa lược đồtổng thể và ánh xạ giữa lược đồ tổng thể với các nguồn cục bộ
Nguån d÷ liÖu Nguån d÷ liÖu Nguån d÷ liÖu
HÖ tÝch hîp d÷ liÖu
Metadata
Ng êi sö dông
Wrapper Wrapper Wrapper
Người sử dụng sẽ dựa vào lược đồ tổng thể để đưa ra câu truy vấn lấy
dữ liệu Hệ thống sẽ tiến hành phân tích câu truy vấn, lấy các ánh xạ tương ứngvới các khái niệm ở lược đồ tổng thể từ lược đồ cục bộ, xây dựng câu truy vấncon cho mỗi nguồn cục bộ Wrapper của mỗi nguồn dựa vào câu truy vấn thôngtin sẽ tiến hành lấy các dữ liệu từ các nguồn và trả lại kết quả dưới dạng XML.Sau khi có được kết quả từ các nguồn cục bộ hệ thống sẽ dựa vào MetaData đểtiến hành tích hợp dữ liệu
II)Các kiến thức cơ sở của hệ thống
1)XML
XML, ngôn ngữ đánh dấu mở rộng- Extensible Markup Language, do tổchức W3C phát triển và chuẩn hóa cho mục đích biểu diễn và trao đổi dữ liệutrên Web
Trang 5XML là ngôn ngữ đánh dấu giống HTML nhưng HTML chỉ định dạngcách thể hiện của dữ liệu còn dữ liệu phải được hiểu bằng con người Trong khi
đó với XML dữ liệu có thể được hiểu bằng máy nhờ đó các máy tính có thể dễdàng trao đổi và xử lý dữ liệu Bên cạnh đó XML biểu diễn dữ liệu không theokhuân dạng định trước và các thẻ định nghĩa có thể do con người tự đặt Do vậyXML cho phép lưu trữ dữ liệu theo mô hình bất kỳ và ta có thể dễ dàng chuyểnđổi dữ liệu từ các định dạng khác nhau về XML
Tài liệu XML sẽ nhóm dữ liệu trong các phần tử giới hạn bởi các thẻđóng, mở <tag> phần tử dữ liệu </tag> Các thẻ đóng mở có thể lồng nhau nhờvậy ta có thể biểu diễn cấu trúc bất kỳ của một đối tượng
Có 2 kiểu tài liệu của XML là :
Tài liệu XML hợp khuân dạng (well-formed Document ): tài liệu phảiđược thể hiện theo chuẩn cấu trúc cú pháp nhất định
Tài liệu XML hợp lệ (valid Document ): Trong tài liệu ta phải có địnhnghĩa kiểu tư liệu DTD để khai báo tư liệu và cấu trúc của tài liệu
DTD (Document Type Definition):
Khi định nghĩa thẻ XML, ta tuỳ ý quyết định cách sử dụng chúng Ví dụnhư ta quyết định phần tử <HOUSE> chỉ chứa dữ liệu thuần Text hoặc chứacác phần tử con khác như <OWNER>, <FURNITURE> Phần tử <BOOK> sẽchứa thêm thẻ con < PAGE_COUNT> hay chỉ đơn giản lưu nội dung text củamột trang sách nào đó Tuy nhiên để rõ ràng, ta nên định nghĩa kiểu dữ liệu màmỗi phần tử sẽ biểu diễn
Một tài liệu XML được xem là hợp lệ và có giá trị khi toàn bộ các phần
tử trong tài liệu được định nghĩa kiểu (type definition) mà nó sẽ chứa Việcđịnh nghĩa kiểu dữ liệu cho các phần tử thẻ còn gọi là định nghĩa kiểu tư liệu(DTD - Document Type Definition)
Khi một tài liệu XML có định nghĩa DTD, rõ ràng chưa cần xem quatoàn bộ nội dung tài liệu ta đã biết được ý nghĩa và cấu trúc của toàn bộ tài liệu
2)RDF
RDF cung cấp cách thức định nghĩa và mô tả tài nguyên một cách chuẩnhóa RDF là một nền tảng để xử lý siêu dữ liệu đặc biệt là tài nguyên trên Web.RDF dựa trên mô hình dữ liệu đồ thị và sử dụng định dạng XML để xử lý siêu
dữ liệu RDF được phân biệt làm 2 loại lược đồ RDF và mô tả RDF
Trang 6RDF được sử dụng để mô tả bất kỳ kiểu tài nguyên nào mà chúng đượcđịnh danh bởi URI Mô hình dữ liệu của RDF gồm 3 thành phần chính :
Resource : thể hiện mọi đối tượng thông tin trong thế giới thực qua URI(định danh tài nguyên thống nhất )
Property: mô tả thuộc tính, tính chất hoặc quan hệ của tài nguyên
Statement : Một tài nguyên cụ thể cùng với thuộc tính và giá trị của nóđược gọi là RDF statement Có 3 thành phần độc lập của statement đượcgọi là subject, predicate, object
Ngôn ngữ đặc tả lược đồ RDF là ngôn ngữ kiểu khai báo được sử dụng
để định nghĩa các RDF schema Ngôn ngữ này được kết hợp từ mô hình biểudiễn ngữ nghĩa, ngôn ngữ định nghĩa lược đồ cơ sở dữ liệu và mô hình đồ thị.Một lược đồ RDF định nghĩa các lớp và thuộc tính mà chúng có thể được thểhiện trong RDF
Trong hệ thống tích hợp dữ liệu của ta RDF schema được dùng để biểudiễn Ontology
3)Ontology
Ontology là một đặc tả hình thức tường minh chính quy cho các kháiniệm thuộc một lĩnh vực Ontology biểu diễn cho cấu trúc thông tin bao gồmcác khái niệm và mối quan hệ giữa các khái niệm.Xét về hình thức Ontologykhông khác gì so với lược đồ khái niệm nhưng Ontology có tính tổng quát hơn.Lược đồ khái niệm của một nguồn dữ liệu phải biểu diễn cấu trúc thông tin củanguồn trong khi đó Ontology không biểu diễn cấu trúc thông tin của một nguồn
cụ thể mà nó đưa ra cấu trúc liên ứng đối với một nhóm các nguồn dữ liệu,được diễn giải cụ thể với từng nguồn thông qua cơ chế ánh xạ thông tin
Trong hệ thống tích hợp dữ liệu bán cấu trúc của ta, các nguồn dữ liệuđược biểu diễn ở những dạng khác nhau nên để cho quá trình tích hợp dữ liệuđược dễ dàng và chính xác ta phải chuyển thể hiện của các dữ liệu từ mức vật
lý thành mức khái niệm Ontology đựơc dùng để thể hiện mức khái niệm củanguồn dữ liệu Nhờ có Ontology mà ta có thể biểu diễn dữ liệu từ các nguồnkhông đồng nhất thành một dạng thống nhất ở mức khái niệm
Trang 8Lược đồ tổng thể và ánh xạ sẽ được biểu diễn dưới mô hình Ontology vì
nó mô tả chính xác và đầy đủ mối quan hệ giữa các thành phần trong các nguồn
dữ liệu Đồng thời nó cũng giải quyết được các vấn đề hỗn tạp ngữ nghĩa, cấutrúc trong tích hợp dữ liệu
Mapping
Sex Workfor
AttributeBridge AttributeBridge AttributeBridge
Trang 9Các mô hình này sẽ được thể hiện lưu trữ trong các file XML hoặc RDF.XML rất linh hoạt với các tag do người dùng tự định nghĩa nên ta hoàn toàn cóthể dùng XML để biểu diễn các mô hình trên RDF cũng là một trong cácchuẩn để biểu diễn Ontology
b)Khối tương tác MetaData
Khối này sẽ thực hiện giao tiếp với MetaData để phục vụ cho quá trìnhtách truy vấn và hợp dữ liệu
Đầu vào là các khái niệm cần tìm ứng với lược đồ tổng thể
Đầu ra các các khái niệm cục bộ tương ứng trong ánh xạ
c)Wrapper
Nhiệm vụ của Wrapper là nhận câu truy vấn, phân tích câu truy vấn vàchuyển các dữ liệu cần thiết từ các dạng khác nhau về dữ liệu dạng XML.Ngoài ra Wrapper còn phải đưa ra được lược đồ cục bộ (DTD) cho mỗi nguồn
dữ liệu để phục vụ cho công việc tích hợp lược đồ
Do kích thước một cơ sở dữ liệu là vô cùng lớn nên ta sẽ không thể thựchiện được việc chuyển đổi toàn bộ cơ sở dữ liệu về dạng XML sau đó mới tíchhợp vì như thế vừa lãng phí tài nguyên lưu trữ và thời gian chuyển đổi
Do vậy Wrapper của ta có 2 nhiệm vụ chính:
Đưa ra một lược đồ cục bộ cho nguồn dữ liệu bằng việc đưa ra DTD
Chuyển đổi các dữ liệu được yêu cầu về dạng XML để phục vụ cho truyvấn và tiến hành truy vấn để đưa ra kết quả.Ví dụ như truy vấn chỉ yêucầu đưa ra tên tác giả của quyển sách thì Wrapper chỉ chuyển đổi các dữliệu tên tác giả thành XML
Dữ liệu XML là những dữ liệu đã được chuyển đổi theo yêu cầu Khi cótruy vấn Query Engine sẽ tìm trong dữ liệu XML, nếu đã có thì truy vấn luôn.Nếu chưa có thì thực hiện chuyển đổi trong Wrapper
d)Query Engine
Query Engine là một thành phần trong Wrapper sẽ truy vấn trên nguồn
dữ liệu XML và đưa ra kết quả dưới dạng XML
Truy vấn trên XML sẽ sử dụng XQuery để truy vấn Hiện tại hệ thống sẽ
sử dụng bộ thư viện QLogic để tiến hành truy vấn XQuery trên nguồn dữ liệuXML
Trang 10Việc hợp nhất dữ liệu này có thể được bằng bộ truy vấn XQuery Engine.
Bộ này có thể tiến hành xây dựng dữ liệu XML mới từ các dữ liệu đã có
Trang 11Phần II: Tách truy vấn và hợp dữ liệu trong hệ
thống tích hợp dữ liệu bán cấu trúc
I)Tách truy vấn:
Người sử dụng sẽ lấy thông tin qua việc thực hiện các câu truy vấn.Thường người sử dụng là những người không chuyên, do vậy câu truy vấn của
hệ thống cho người sử dụng phải là câu truy vấn đơn giản, dễ sử dụng
Người sử dụng sẽ lấy thông tin dựa vào lược đồ tổng thể của hệ thống.Lược đồ tổng thể này thể hiện dưới dạng Ontology Do vậy câu truy vấn ngườidùng phải linh hoạt, mạnh mẽ đáp ứng được yêu cầu truy vấn trên lược đồ tổngthể
Sau khi người sử dụng đưa vào câu truy vấn dữ liệu Hệ thống sẽ tiếnhành công việc tách truy vấn Việc tách truy vấn gồm những công việc sau:
Phân tích từ vựng
Phân tích cú pháp
Phân tích cấu trúc
Lấy ánh xạ
Xây dựng câu truy vấn con
Câu truy vấn con ứng với mỗi nguồn được xây dựng theo dạng truy vấnXQuery
1)Biểu diễn truy vấn người dùng:
Đây là query được tự định nghĩa nhằm phục vụ việc truy vấn dữ liệu củangười dùng
Hệ thống thực hiện việc truy vấn trên dữ liệu XML bằng XQuery để lấy
về kết quả Nhưng câu truy vấn XQuery,một loại chuẩn truy vấn do W3C đưa
ra là khá phức tạp và không thân thiện với nhiều người Không những vậy lược
đồ tổng thể dùng để người dùng truy vấn dữ liệu có cấu trúc khác với dữ liệuXML ở từng nguồn Do vậy ta phải đưa ra một loại chuẩn truy vấn để phục vụthuận tiện cho người dùng truy vấn dữ liệu đồng thời đáp ứng được việc truyvấn trên lược đồ tổng thể
Mục đích và yêu cầu để đưa ra query này:
Query đối với người sử dụng phải là một query có cấu trúc đơn giản, dễ
Thể hiện truy vấn người dùng:
Cấu trúc câu truy vấn gồm 2 phần chính: phần lựa chọn(từ khoá Select)
và phần điều kiện (từ khoá where) Các lựa chọn hay điều kiện đều đi với các
lớp cụ thể
Trang 12Truy vấn đơn giản ( Không có quan hệ )
Ví dụ: Đưa ra tên ấn phẩm xuất bản sau năm 1991
where publication.year >1991 ORDER publication.year DESC
Truy vấn phức tạp (có quan hệ giữa các lớp)
Ví dụ: Đưa ra tên các cuốn sách được viết bởi tác giả tên là John
Select book.title
where book.author.name="John"
Trong câu truy vấn trên có thể hiện được 2 loại quan hệ Book kế thừa từlớp Publication và có thuộc tính Title Book có quan hệ với lớp Author
Quan hệ với số lượng (Quantifier)
Dùng từ khoá Some, All
Ví dụ: Đưa ra tên tất cả các cuốn sách được viết bởi một vài tác giảSelect book.title
Trang 13where (all book).(some author)
Quy định cách biểu diễn đầu ra
Dùng từ khoá AS
Select book.title as tuade, book.year as nam
where book.year>1991
2)Truy vấn dữ liệu XQuery:
XQuery là câu truy vấn trên dữ liệu XML Nó là chuẩn do tổ chức W3Cđưa ra và hỗ trợ các khả năng sau đây:
Ta dùng file bib.xml sau làm ví dụ thể hiện
< last >Abiteboul</ last >
< first >Serge</ first >
</ author >
- < author >
< last >Buneman</ last >
< first >Peter</ first >
</ author >
- < author >
< last >Suciu</ last >
< first >Dan</ first >
Trang 14- < editor >
< last >Gerbarg</ last >
< first >Darcy</ first >
< affiliation >CITI</ affiliation >
Lấy dữ liệu từ nhiều nguồn
Ví dụ: Với mỗi cuốn sách tìm thấy trong bib và reviews, đưa ra tựa đề
và giá của chúng từ mỗi nguồn
<books-with-prices>{
for $b in $bib//book, $a in $reviews//entry
where $b/title = $a/title return
<book-with-prices>
{$b/title}