Cơ chế chuyển một CSDL quan hệ thành một tài liệu XML

Một phần của tài liệu nghiên cứu cách chuyển đổi cơ sở dữ liệu quan hệ và xml, ứng dụng hệ thống vào quản lý thư viện (Trang 47 - 79)

4. Tổng quan luận văn

2.2. Cơ chế chuyển một CSDL quan hệ thành một tài liệu XML

Như chúng ta biết, các CSDL tồn tại thường đã được chuẩn hóa ở mức cao. Mặt khác, các CSDL tồn tại trong các tài liệu XML thì không nhất thiết phải chuẩn hóa ở mức cao mà nó chỉ được chuẩn hóa một phần, bởi các CSDL đã được chuẩn hóa có thể giải quyết được các dị thường trong lưu trữ, cập nhật, bảo trì CSDL nhưng nếu chúng được thiết kế chặt chẽ quá thì có thể dẫn tới việc xử lý dữ liệu kém hiệu quả.

Chính vì vậy, để chuyển một CSDL quan hệ sang một tài liệu XML thì chúng ta phải xây dựng CSDL đó dựa theo cấu trúc của một tài liệu XML. Việc này hoàn toàn có thể làm được thông qua các bước sau:

Phi chuẩn bằng cách chuyển đổi các quan hệ đã được chuẩn hóa ở mức cao hơn thành những dạng chuẩn hóa ở mức thấp hơn nhằm tăng tốc độ truy nhập, lưu trữ trong CSDL.

Bƣớc 2: Kết nối dữ liệu giữa các bảng

Sau khi đã phi chuẩn các CSDL, ta kết nối các CSDL

Bƣớc 3: Ánh xạ CSDL quan hệ đã kết nối sang tài liệu XML

Các bảng CSDL sau khi kết nối thành công sẽ ánh xạ vào một DOM chính và sau đó nó được ánh xạ thành một tài liệu XML theo nguyên tác ánh xạ cơ bản.

2.2.1. Phi chuẩn hoá các lƣợc đồ quan hệ

Trong thực tế, các CSDL thường tồn tại dưới dạng các CSDL đã được chuẩn hóa nhằm giải quyết các dị thường trong lưu trữ, cập nhật, bảo trì CSDL. Do vậy, để CSDL đó phù hợp với cấu trúc của một tài liệu XML thì CSDL đó phải được phi chuẩn hóa - chuyển đổi các quan hệ đã được chuẩn hóa thành những quan hệ chuẩn hóa ở mức thấp hơn với những mục đích xử lý dữ liệu một cách hiệu quả nhất.

Để phi chuẩn CSDL quan hệ chúng ta căn cứ vào một số trường hợp cụ thể sau:

Trường hợp hai quan hệ được hình thành từ hai kiểu thực thể tham gia liên kết một - một: nếu việc truy xuất giữa hai quan hệ diễn ra thường xuyên thì chúng ta nên kết hợp chúng thành một quan hệ [4].

Ví dụ 2.1: Có hai quan hệ đã được chuẩn hóa, một thuộc tính NGUOIDUNG liên kết với một thuộc tính DANGNHAP thông qua khóa TenDangNhap (Hình 2.2).

Hình 2.2: Sơ đồ thực thể liên kết

Từ sơ đồ thực thể liên kết trên, ta thấy các thực thể NGUOIDUNG và DANGNHAP có quan hệ một - một đã được chuẩn hóa như sau (Hình 2.3):

DANGNHAP

TenDangNhap MatKhau

NGUOIDUNG

MaNV HoTen NamSinh DiaChi DienThoai TenDangNhap

Hình 2.3: Chuẩn hóa các quan hệ

Từ quan hệ giữa các thực thể NGUOIDUNG và DANGNHAP đã được chuẩn hóa, ta có thể gộp lại thành một quan hệ được phi chuẩn sau (Hình 2.4):

NGUOIDUNG

MaNV HoTen Nam

Sinh

Dia Chi

Dien

Thoai TenDangNhap MatKhau

Hình 2.4: Phi chuẩn quan hệ

2.2.2. Kết nối các CSDL đã phi chuẩn hoá

Với các CSDL đã được tạo trong một hệ quản trị CSDL (cụ thể như Microsoft Access, Microsoft SQL Server hay MySQL). Sau khi tiến hành phi chuẩn các CSDL này, ta thực hiện tạo kết nối tới các bảng CSDL đã tạo đồng thời thiết lập các kết nối giữa các bảng CSDL đã tạo, đảm bảo sao cho các ràng buộc dữ liệu vẫn được bảo toàn khi kết nối [7].

Để tạo kết nối tới các bảng CSDL quan hệ, ta sử dụng cầu nối ODBC trong Windows. Với cầu nối này, các CSDL đã tạo sẽ được kết nối tới hệ thống. Khi đó, ta có thể truy xuất dữ liệu của các tệp CSDL quan hệ đã kết nối.

Nhằm đáp ứng các nhu cầu sử dụng dữ liệu khác nhau của nhiều người dùng, các CSDL phải được kết nối với nhau. Ngôn ngữ truy vấn SQL là một trong những công cụ hữu ích giúp ta kết nối được dữ liệu giữa các bảng CSDL quan hệ mà vẫn đảm bảo được các ràng buộc dữ liệu, đồng thời đáp ứng một cách linh hoạt các mục đích, nhu cầu sử dụng dữ liệu của người dùng.

Sau khi kết nối đến CSDL, các dữ liệu sẽ được lưu trữ trong một bảng dữ liệu liên kết.

Bảng dữ liệu liên kết được xây dựng khi ta kết nối dữ liệu trên các bảng theo nhu cầu sử dụng dữ liệu của người dùng thông qua truy vấn SQL.

2.2.3 Ánh xạ một CSDL quan hệ thành một tài liệu XML

Các CSDL được kết nối lại và được ánh xạ vào trong một DOM chính, sau đó nó được ánh xạ thành một tài liệu XML.

Dựa vào cấu trúc của một tài liệu XML cũng như mối quan hệ giữa một tài liệu XML và một CSDL quan hệ chúng ta có một số ánh xạ cơ bản từ một CSDL quan hệ sang một tài liệu XML [1] [19] như sau (Hình 2.5):

Hình 2.5: Những ánh xạ cơ bản từ CSDL quan hệ thành tài liệu XML

 R_ET: một quan hệ R được ánh xạ thành một kiểu phần tử ET.

 A_ET: một thuộc tính của quan hệ (A) được ánh xạ thành một kiểu phần tử (ET) nhờ vào quan hệ của thuộc tính đưa ra quan hệ của kiểu phần tử.

 A_A: thuộc tính của một quan hệ được ánh xạ thành thuộc tính XML.

Ví dụ 2.2: Ánh xạ một CSDL quan hệ thành một tài liệu XML (Hình 2.6): DOCGIA Madg B001 B002 <Madg> B001 </Madg> Nội dung XML Các khả năng ánh xạ Nội dung CSDL quan hệ

Ten DG Lê Thị Ánh Nguyễn Thị Đào <TenDG> Lê Thị Ánh </Tendg> <Gioitinh> Nữ </Gioitinh> <Namsinh> 1992 </Namsinh> <Diachi> Thái Bình </Diachi> <Nghenghiep> Thái Bình </Nghenghiep> <Khoa> Kinh tế </Khoa> <Lop> CĐ51KT1 </Lop> <Dienthoai> 0123660672 </Dienthoai> Gioi tinh Nữ Nữ Nam sinh 1992 1992

Diachi Thái Bình Nam Định

Nghe

nghiep Sinh viên Sinh viên

Khoa Kinh tế Kinh tế Lop CĐ51KT1 CĐ51KT9 Dien thoai 0123660672 0914306796

Hình 2. 6: Ánh xạ một CSDL sang một tài liệu XML

Sau khi thực hiện kết nối các bảng cơ sở dữ liệu quan hệ thành công. Các bảng cơ sở dữ liệu liên kết được hình thành và được ánh xạ thành DOM chính theo các nguyên tắc ánh xạ cơ bản và sau đó được chuyển thành một tài liệu XML tương ứng, được thể hiện qua sơ đồ sau (Hình 2.7).

Hình 2.7: Sơ đồ chuyển CSDL quan hệ thành tài liệu XML

Ví dụ 2.3: Chuyển từ CSDL quan hệ thành XML (Hình 2.8)

Hình 2.8: Chuyển từ bảng CSDL quan hệ thành tài liệu XML

DOCGIA MaDg Tendg Namsinh Gioitinh

B001 Lê Thị Ánh 1992 Nữ

<DOCGIA MADG= “B001”>

<TenDG> Lê Thị Ánh</TenDG> <Namsinh>1992</Namsinh> <Gioitinh>Nữ</Gioitinh> </DOCGIA> R_ET A_A A_ET A_ET A_ET Bước 3 Bước 1,2

2.3. Chuyển một tài liệu XML sang một CSDL quan hệ

Để chuyển một tài liệu XML sang một CSDL quan hệ trên cơ sở thỏa mãn một số ràng buộc nhất định, chúng ta sử dụng mô hình đối tượng tài liệu DOM.

Một tài liệu XML được tổ chức theo mô hình DOM có dạng (Hình 2.9):

Hình 2.9: Tài liệu XML được thể hiện theo mô hình DOM

Thông qua các phương thức xử lý các đối tượng trong tài liệu XML mà mô hình cung cấp, ta truy cập đến từng đối tượng trong tài liệu cũng như nội dung và thuộc tính của các đối tượng.

Mô hình DOM tổ chức một tài liệu XML dưới dạng hình cây nên trong quá trình truy cập tới mỗi đối tượng, ta sẽ lưu giữ được cấu trúc của mỗi đối tượng. Việc chuyển một tài liệu XML sang một CSDL quan hệ thực chất là việc tổ chức các đối tượng trong tài liệu XML thành các nhóm đối tượng thỏa mãn một số ràng buộc nào đó, và mỗi nhóm này sẽ tương ứng với một lược đồ CSDL. Căn cứ vào các lược đồ CSDL ta đưa ra các CSDL phù hợp dưới dạng các bảng rồi chuyển thành CSDL quan hệ được thể hiện qua sơ đồ sau (Hình 2.10).

Hình 2. 10: Sơ đồ chuyển tài liệu XML thành CSDL quan hệ

Để chuyển một tài liệu XML sang một CSDL quan hệ, ta sử dụng 2 phương pháp sau:

2.3.1. Phƣơng pháp ánh xạ một tài liệu XML thành CSDL quan hệ

Ánh xạ một tài liệu XML sang một CSDL quan hệ được thực hiện thông qua việc ánh xạ trực tiếp các phần tử thành các thuộc tính dựa trên một số quy tắc ánh xạ [15] sau (Hình 2.11):

 ET_R: một kiểu phần tử (ET) của tài liệu XML được ánh xạ thành một quan hệ R.

 ET_A: một kiểu phần tử (ET) của tài liệu XML được ánh xạ thành một thuộc tính A của quan hệ.

 A_A: một thuộc tính của tài liệu XML được ánh xạ thành một thuộc tính của quan hệ.

Hình 2. 11: Những ánh xạ cơ bản từ tài liệu XML thành CSDL quan hệ

Ví dụ 2.4: Ánh xạ tài liệu XML thành CSDL quan hệ (Hình 2.12): DOCGIA Madg B001 B002 <Madg> B001 </Madg> <TenDG> Lê Thị Ánh </Tendg> <Gioitinh> Nữ </Gioitinh> <Namsinh> 1992 </Namsinh> Ten DG Lê Thị Ánh Nguyễn Thị Đào Gioi tinh Nữ Nữ Nam sinh 1992 1992

Diachi Thái Bình Nam Định <Diachi> Thái Bình </Diachi> <Nghenghiep> Sinh viên </Nghenghiep> <Khoa> Kinh tế </Khoa> <Lop> CĐ51KT1 </Lop> <Dienthoai> 0123660672 </Dienthoai> Nghe

nghiep Sinh viên Sinh viên

Khoa Kinh tế Kinh tế Lop CĐ51KT1 CĐ51KT9 Dien thoai 0123660672 0914306796

Hình 2. 12: Ánh xạ một tài liệu XML thành một CSDL quan hệ

Ví dụ 2.5: Chuyển từ tài liệu XML thành bảng CSDL quan hệ

DOCGIA MaDg Tendg Gioitinh Namsinh

B001 Lê Thị Ánh Nữ 1992

<DOCGIA MADG= “B001”>

<TenDG> Lê Thị Ánh</TenDG> <Namsinh>1992</Namsinh> <Gioitinh>Nữ</Gioitinh> </DOCGIA> ET_R Bước 1 Bước 2 ET_A ET_A ET_A ET_A

2.3.2. Phƣơng pháp băm nhỏ hay phân tách các tài liệu XML

Chuyển đổi các tài liệu XML thành các hàng trong các bảng dữ liệu quan hệ hay được biết đến như việc băm nhỏ hay phân tách các tài liệu XML. Một trong những lý do chính cho việc băm nhỏ là các ứng dụng SQL đang tồn tại vẫn cần truy cập vào dữ liệu dưới định dạng quan hệ. Chính vì vậy đôi khi ta sẽ thấy khá hữu dụng trong việc băm nhỏ tất cả hoặc một số giá trị dữ liệu của một tài liệu XML được chỉ định vào các cột và các hàng nằm trong các bảng dữ liệu quan hệ.

Để thực hiện phương pháp này ta lần lượt nghiên cứu các vấn đề sau:

 Những ưu điểm và nhược điểm của việc băm nhỏ

 Cách băm nhỏ dữ liệu XML thành các bảng quan hệ bằng lệnh INSERT có chứa hàm XMLTABLE.

* Ưu điểm và nhược điểm của việc băm nhỏ

Bảng 2.6 tóm tắt các ưu điểm và nhược điểm của việc băm nhỏ (shred) dữ liệu XML thành các bảng quan hệ.

Bảng 2.6: Khi việc băm nhỏ là có hay không là một lựa chọn thích hợp

Là lựa chọn thích hợp khi… Là lựa chọn không thích hợp khi…

- Dữ liệu XML được chỉ định đang cung cấp cho một cơ sở dữ liệu quan hệ đang tồn tại.

- Dữ liệu XML của bạn phức tạp, xếp chồng và khó cho việc bản đồ hóa thành một giản đồ quan hệ.

- Các tài liệu XML không thể hiện được các đối tượng logic doanh nghiệp cần được duy trì.

- Việc bản đồ hóa định dạng XML của bạn thành giản đồ quan hệ dẫn đến một số lượng lớn các bảng.

- Mục đích chính của bạn là cho phép các ứng dụng quan hệ đang tồn tại có thể truy cập vào dữ liệu XML

- XML Schema của bạn hay thay đổi

- Bạn ưng thuận với giản đồ quan hệ của mình và thích sử dụng nó nếu có thể.

- Mục tiêu của bạn là quản lý các tài liệu XML như các đối tượng doanh nghiệp nguyên vẹn.

- Cấu trúc của dữ liệu XML của bạn dễ dàng được bản đồ hóa thành các bảng dữ liệu quan hệ.

- Bạn thường cần xây dựng lại các tài liệu được băm nhỏ hoặc một phần trong chúng.

- Định dạng XML của bạn tương đối ổn định và ít thay đổi.

- Sử dụng dữ liệu XML trong một cơ sở dữ liệu với tốc độ cao cho ứng dụng của bạn.

- Bạn ít khi cần xây dựng lại các tài liệu được băm nhỏ.

- Việc truy vấn hoặc nâng cấp dữ liệu với SQL quan trọng hơn chèn.

* Cách băm nhỏ dữ liệu XML thành các bảng quan hệ bằng lệnh INSERT có chứa hàm XMLTABLE.

Các câu lệnh INSERT của SQL sử dụng hàm XMLTABLE. Hàm này sẽ điều hướng vào một tài liệu đầu vào và sinh ra một hoặc nhiều hàng quan hệ dùng để chèn vào bảng quan hệ.

2.4. Thuật toán chuyển đổi giữa cơ sở dữ liệu quan hệ và XML

Dựa vào phương pháp luận chuyển đổi các cơ sở dữ liệu quan hệ và XML, thuật toán chuyển đổi giữa các cơ sở dữ liệu quan hệ và XML được xây dựng theo mô hình tổng quát sau (Hình 2.14):

Hình 2.14: Mô hình XML ở dạng bảng và dạng cây

Để xây dựng thuật toán chuyển đổi CSDL quan hệ và XML ta thực hiện theo các bước sau:

Bƣớc 1: Biểu diễn tài liệu XML theo mô hình DOM

Bƣớc 2: Biểu diễn tài liệu XML theo dạng bảng của CSDL quan hệ và chuyển thành CSDL quan hệ

2.4.1. Biểu diễn tài liệu XML theo mô hình DOM

Một cây được tạo bởi từ nhiều nút, mỗi nút lại là một cây chứa những nút khác. Nút lá thì không có con, vì thế nút này được dùng để hiển thị văn bản.

Lớp XmlDataDocument kế thừa lớp XmlDocument vì thế nó cũng có một số phương thức giống lớp XmlDocument.

Với mô hình DOM, một tài liệu XML được tổ chức dưới dạng một sơ đồ hình cây có cấu trúc tương tự như một cây thư mục trong Windows. Vì vậy mục đích chính của phần này là biểu diễn tài liệu XML theo mô hình DOM như minh họa sau (Hình 2.15):

Hình 2.15: Biểu diễn tài liệu XML theo mô hình DOM

* Thuật toán 2.1

+ Dữ liệu vào: Tập tài liệu XML

+ Dữ liệu ra: Tài liệu XML theo mô hình DOM

Tài liệu XML được đọc thông qua hình thức đọc một tập tin dữ liệu và được xây dựng theo dạng mô hình DOM [15] qua các bước sau:

Bƣớc 1: Truy cập và lấy phần tử gốc của tài liệu.

Bƣớc 2: Lấy danh sách tất cả các phần tử con của phần tử gốc.

Bƣớc 3: Mỗi phần tử con tìm được sẽ được gán một nhãn đặc trưng.

Bƣớc 4: Tìm các phần tử con được thực hiện theo phương pháp đệ quy.

Bƣớc 6: Xây dựng và lưu trữ đường dẫn tương ứng tới mỗi phần tử con trong tài liệu XML.

Bƣớc 7: Lấy tên các phần tử con và các giá trị thuộc tính của nó.

Bƣớc 8: Chuyển đổi thông tin về đường dẫn, nội dung của các phần tử sang dạng chuỗi để in ra màn hình dưới dạng một cây tài liệu. [12] [13]

+ Độ phức tạp thuật toán: Sử dụng phương pháp đệ quy để gán nhãn, sau đó chuyển thông tin về đường dẫn để in ra dưới dạng cây tài liệu. Độ phức tạp của thuật toán là O(n2)

2.4.2. Biểu diễn tài liệu XML theo dạng bảng của CSDL quan hệ

Như đã trình bày ở trên, tài liệu XML là một cây (theo mô hình DOM) bao gồm các nút (node). Những nút này nội dung có thể chứa phần tử (element), dữ liệu (text), các thuộc tính (attribute),… và các nút con khác. Hình sau minh họa việc biểu diễn tài liệu XML theo dạng bảng (Hình 2.16):

Hình 2.16: Biểu diễn tài liệu XML theo dạng bảng

Để chuyển một tài liệu XML dưới dạng cây sang dạng bảng ta sử dụng thuật toán sau:

* Thuật toán 2.2

+ Dữ liệu vào: Tập tài liệu XML

+ Dữ liệu ra: Bảng cơ sở dữ liệu quan hệ

Bƣớc 1: Duyệt qua tất cả các nút của cây theo mô hình DOM, bắt đầu từ nút gốc theo phương pháp đệ quy.

Bƣớc 2: Xây dựng một hàm để kiểm tra và xử lý nút của cây tài liệu DOM. Đối với mỗi nút hiện hành mà có nút con thì hàm đệ quy tìm sâu xuống các nút bên dưới và hình thành một DOM tương ứng cho nút.

Bƣớc 3: Với mô hình DOM thu được, thực hiện một ánh xạ các phần tử, các thuộc tính với giá trị tương ứng thành các quan hệ, thuộc tính và giá trị tương ứng

Một phần của tài liệu nghiên cứu cách chuyển đổi cơ sở dữ liệu quan hệ và xml, ứng dụng hệ thống vào quản lý thư viện (Trang 47 - 79)

Tải bản đầy đủ (PDF)

(79 trang)