Phân tích tài liệu XML theo DOM

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 28 - 79)

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

1.3. Phân tích tài liệu XML theo DOM

1.3.1. Mô hình đối tƣợng tài liệu

Để xử lý tài liệu XML, W3C định nghĩa tài liệu theo mô hình hướng đối tượng DOM. Theo mô hình này tài liệu XML được tổ chức theo cấu trúc hình cây bao

gồm các nút đối tượng, nội dung của mỗi nút (node), trên cây có thể chứa phần tử, dữ liệu, thuộc tính,… và các nút con khác. Cụ thể, trong mô hình XML có các loại nút:

Bảng 1.2: Các loại nút trong mô hình XML

Nút Ý nghĩa

Element Phần tử XML

Attribute Thuộc tính XML

Text Dữ liệu text

CDATA section Phân đoạn CDATA

Entity reference Tham chiếu thực thể

Entity Thực thể

Processing Instruction Chỉ thị xử lý

Comment Chú thích

Document Tài liệu

Document Type Kiểu tư liệu

Document fragment Đoạn tài liệu

Notation Ghi chú

Mô hình DOM được W3C định nghĩa theo nhiều mức khác nhau, cụ thể là các mức sau:

Mức 0: đặc tả XML không chính thức và được áp dụng cho các trình duyệt trước đây như Nestcape Navigator 3.0 và IE 3.0.

Mức 1: Tập trung vào kết hợp giữa tài liệu XML và HTML.

Mức 2: Hỗ trợ không gian tên gọi XML, khung nhìn có lọc và các sự kiện DOM.

Mức 3: Nâng cao các khả năng của DOM với việc cho phép nạp, xử lý, lưu lại mô hình cho nội dung tài liệu.

<?xml version="1.0" encoding="utf-8" ?> <Docgia> <Madg> B001 </Madg> <Tendg> Lê Thị Ánh </Tendg> <GioiTinh> Nữ </GioiTinh> <Namsinh> 1992 </Namsinh> <DiaChi> Thái Bình </DiaChi> <Nghenghiep> Sinh viên </Nghenghiep> <Khoa> Kinh tế </Khoa> <Lop> CĐ51KT1 </Lop> <DienThoai> 0123660672 </DienThoai>

</Docgia>

Theo mô hình DOM, tài liệu XML ở ví dụ trên được tổ chức lại theo cấu trúc cây, cụ thể như sau:

Hình 1.2: Tài liệu XML được biểu diễn theo cấu trúc cây

1.3.2. Phân tích tài liệu XML theo mô hình đối tƣợng dữ liệu DOM

Theo W3C, định nghĩa tài liệu theo mô hình đối tượng dữ liệu DOM cơ bản là giao diện trình ứng dụng API không phụ thuộc vào ngôn ngữ và chương trình, cho phép các chương trình và các kịch bản truy cập và cập nhật tự động nội dung, cấu trúc và kiểu của các tài liệu XML cũng như HTML.

Với mô hình đối tượng dữ liệu DOM, một tài liệu XML có thể được phân tích: tạo, duyệt, thêm, loại bỏ, thay đổi các phần tử thông qua các ngôn ngữ như: Java, JavaScript, Visual Stdio.NET, C/C++,…. Cho dù sử dụng ngôn ngữ nào để phân tích thì ta cũng phải sử dụng tới các phương thức mà DOM cung cấp được liệt kê trong bảng sau:

Bảng 1.3: Các phương thức trong mô hình DOM

Phƣơng thức Ý nghĩa

documentElement Lấy nút gốc của tài liệu DOM

Docgia Madg B0001 Tendg Lê Thị Ánh Gioitinh Nữ Namsinh 1992 Diachi Thái Bình Nghe nghiep Sinh viên Khoa Kinh tế Lop CĐ51KT 1 Dien thoai 0123660 672

parentNode Lấy nút cha của nút hiện tại

firstChild Lấy nút con đầu tiên

previousChild Lấy nút con trước đó

nextChild Lấy nút con kế tiếp

lastChild Lấy nút con cuối cùng

firstSibling Lấy nút con cùng cấp đầu tiên

nextSibling Lấy nút con cùng cấp kế tiếp

previousSibling Lấy nút con cùng cấp trước đó

lastSibling Lấy nút con cùng cấp cuối cùng

getElementByTagName Lấy về danh sách các nút

Item(i) Truy cập nút thứ i trong danh sách

childeNodes Trả về danh sách các nút trong tài liệu

docType Trả về kiểu của nút gốc

Length Trả về các nút trong danh sách các nút

nodeName Trả về tên của một nút

noteValue Trả về giá trị của một nút

noteType Xác định kiểu dữ liệu của một nút

createElement() Khởi tạo một thành phần mới trong tài liệu

createTextNode() Khởi tạo dữ liệu text cho một nút

1.4. Cơ sở dữ liệu quan hệ 1.4.1. Hệ quản trị cơ sở dữ liệu 1.4.1. Hệ quản trị cơ sở dữ liệu

Hệ quản trị cơ sở dữ liệu là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. Các chương trình thuộc loại này hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một CSDL.

Tuy nhiên, đa số hệ quản trị CSDL đều có một đặc điểm chung là sử dụng ngôn ngữ truy vấn theo cấu trúc (SQL). Các hệ quản trị CSDL phổ biến được nhiều người biết đến là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix,... Phần lớn các hệ quản trị CSDL kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau

như Linux, Unix và MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên hệ điều hành Windows [7].

* Ưu điểm của việc thiết kế hệ quản trị Cơ sở dữ liệu:

- Cho phép người sử dụng tạo ra và duy trì Cơ sở dữ liệu. - Cho phép định nghĩa, xây dựng và thao tác dữ liệu:

- Định nghĩa một cơ sở dữ liệu là đặc tả các kiểu dữ liệu, các cấu trúc, các ràng buộc cho các dữ liệu sẽ được lưu trữ.

- Xây dựng cơ sở dữ liệu là lưu trữ dữ liệu lên các phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.

- Thao tác trên một cơ sở dữ liêu là quá trình truy vấn cơ sở dữ liệu để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu, tạo ra các báo cáo từ dữ liệu.

1.4.2. Mô hình dữ liệu quan hệ 1.4.2.1. Định nghĩa quan hệ 1.4.2.1. Định nghĩa quan hệ

Gọi RA1,.....,An là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1,...,n có miền giá trị tương ứng là Dom(Ai). Quan hệ trên tập thuộc tính là tập con của tích đề các: rDom Ai .....Dom An . Khi đó ta ký hiệu

lRA1,.....,Anà: r(R) - quan hệ r trên tập thuộc tính R.

Ví dụ 1.16: Cho quan hệ DOC_GIA với các thuộc tính như sau:

DOC_GIA (Hoten Namsinh Gioitinh)

(t1) Lê Thị Ánh 1992 Nữ (t2) Vương Văn Dự 1992 Nam (t3) Nguyễn Thị Đào 1992 Nữ Mỗi cột là một thuộc tính: thuộc tính Hoten, Namsinh, Gioitinh. Mỗi hàng là một bộ : bộ t1, t2, t3.

1.4.2.2. Định nghĩa khoá của quan hệ

Khoá của một quan hệ r trên tập thuộc tính RA1,.....,An là tập con

R

Bất kỳ tập con thực sự K'  K nào đều không có tính chất đó. Tập K là siêu khoá của quan hệ r nếu K là một khoá của quan hệ r.

1.4.3. Kiến trúc cơ sở dữ liệu quan hệ

Một cơ sở dữ liệu quan hệ là một tập của một hoặc nhiều quan hệ, trong đó mỗi quan hệ là một bảng hai chiều bao gồm các cột và các hàng (gọi là bảng dữ liệu hay quan hệ). Bảng dữ liệu chính là hình thức thể hiện cụ thể của kiểu thực thể khi chúng ta xây dựng cơ sở dữ liệu, bảng dữ liệu được sử dụng để lưu dữ liệu về các thực thể trong lớp thực thể đó.

Như vậy, bảng dữ liệu là một tập các bộ dữ liệu hay bản ghi dữ liệu, mỗi bộ có một số lượng thuộc tính như nhau nhưng có thể khác nhau về giá trị. Bảng dữ liệu trong cách tiếp cận CSDL quan hệ được hiểu chính xác hơn bằng cụm từ “quan hệ”. Một quan hệ bao gồm lược đồ quan hệ và một thể hiện quan hệ. Trong đó thể hiện quan hệ chính là một bảng còn một lược đồ quan hệ miêu tả tiêu đề các cột của bảng đó. Trong một quan hệ không thể tồn tại hai bộ dữ liệu giống nhau ở tất cả các thuộc tính.

Một bảng dữ liệu được đặc trưng bởi một tên cụ thể, gọi là tên quan hệ. Mỗi cột trong bảng tương ứng với một thuộc tính trong quan hệ, được đặt tên duy nhất (gọi là tên thuộc tính). Mỗi dòng trong bảng tương ứng với một bộ trong quan hệ, được đặt tên duy nhất (gọi là thuộc tính). Mỗi dòng trong bộ ứng với một bảng tương ứng với một bộ của quan hệ, một bộ là một danh sách các giá trị có thứ tự (tương ứng thứ tự các cột trong bảng) [4].

Trong bảng dữ liệu, mỗi thuộc tính nhận giá trị nằm trong một miền nào đó gọi là miền giá trị. Cũng như kiểu dữ liệu, miền giá trị không chỉ xác định tập giá trị cho thuộc tính mà còn xác định các thao tác được phép sử dụng trên các dữ liệu của CSDL quan hệ.

1.4.4. Ràng buộc toàn vẹn cơ sở dữ liệu quan hệ

Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là một trong những vấn đề quan trọng trong quá trình phân tích, thiết kế và khai thác các hệ thống cơ sở dữ liệu.

1.4.4.1. Định nghĩa

Ràng buộc toàn vẹn là một điều kiện bất biến không được vi phạm trong một cơ sở dữ liệu.

Trong thực tế, một CSDL luôn luôn tồn tại những mối liên hệ qua lại lẫn nhau giữa các thuộc tính, giữa các bộ giá trị trong cùng một quan hệ hoặc trong các quan hệ với nhau. Các mối quan hệ phụ thuộc lẫn nhau này chính là những điều kiện bất biến mà tất cả các bộ của quan hệ có liên quan trong CSDL đều phải thỏa mãn tại bất kỳ thời điểm nào.

1.4.4.2. Các yếu tố của ràng buộc toàn vẹn

Khi xác định một ràng buộc toàn vẹn cần nêu rõ các yếu tố sau:

- Điều kiện của ràng buộc toàn vẹn và trên cơ sở của điều kiện này cho ta cách biểu diễn dữ liệu.

- Bối cảnh xảy ra ràng buộc toàn vẹn: trên một hay nhiều quan hệ và cụ thể là trên quan hệ nào.

- Tầm ảnh hưởng của ràng buộc toàn vẹn, khả năng tính toàn vẹn bị ảnh hưởng và hành động cần phải có khi tính ràng buộc toàn vẹn bị vi phạm.

Như vậy tính ràng buộc toàn vẹn dữ liệu được biểu diễn thông qua các phụ thuộc hàm và cụ thể là dựa trên ràng buộc khóa.

Các khái niệm về khóa: khóa chính, khóa ngoại.

- Khóa chính (primary key): ràng buộc không cho phép có hai giá trị giống hệt nhau cũng như hai giá trị null được đưa vào cột hoặc tập các cột được định nghĩa thỏa mãn mệnh đề ràng buộc này.

- Khóa ngoại (foreign key): ràng buộc đòi hỏi mỗi giá trị trong cột hoặc tập các cột được định nghĩa bởi ràng buộc này phải bằng một giá trị lấy từ quan hệ liên kết tương ứng, và cột trong quan hệ liên kết tương ứng cũng phải thỏa mãn các ràng buộc toàn vẹn là khóa duy nhất hoặc khóa chính. Ràng buộc này đôi khi còn gọi là ràng buộc tham chiếu. Cột được khai báo ràng buộc này có thể nhận giá trị null.

Chuẩn hóa một cơ sở dữ liệu quan hệ là rất cần thiết trong thực tế vì nhờ bước chuẩn hóa này mà chúng ta có thể loại bỏ tối đa sự dư thừa dữ liệu - một trong những nguyên nhân dẫn đến sự không toàn vẹn dữ liệu.

Chuẩn hóa một CSDL có nghĩa là chúng ta sẽ đưa các lược đồ quan hệ về một trong các dạng chuẩn: 1NF, 2NF, 3NF, BCNF.

Chuẩn 1NF: một quan hệ ở dạng chuẩn 1 NF nếu tất cả các giá trị các thuộc tính của nó là sơ cấp. Tức nó chỉ chứa các giá trị nguyên tố - không phân chia nhỏ được nữa.

Chuẩn 2NF: một quan hệ là chuẩn 2NF nếu nó là chuẩn 1NF và mọi thuộc tính không khóa đều phụ thuộc hàm đầy đủ vào khóa chính (tức là không có thuộc tính không khóa nào phụ thuộc hàm một phần vào khóa chính).

Chuẩn 3NF: một quan hệ ở dạng chuẩn 3NF nếu nó là 2NF và tất cả các phụ thuộc hàm giữa khóa chính và các thuộc tính khác của nó đều là trực tiếp.

1.5. Kết luận chƣơng 1

Chương 1 đã nêu những kiến thức cơ bản về cấu trúc một tài liệu XML, nhận biết được thế nào là một tài liệu XML hợp lệ, hợp khuôn dạng, cách tạo một tài liệu XML hợp khuôn dạng, mô hình DOM và cách phân tích tài liệu XML theo mô hình DOM cùng các trình phân ngữ trong XML như: kiểu tài liệu DTD, giản đồ XML, không gian tên gọi, bảng định kiểu CSS. Ngoài những kiến thức cơ bản về XML, trong chương 1 cũng trình bày những kiến thức cơ bản về cơ sở dữ liệu quan hệ, các khái niệm, cấu trúc, các ràng buộc toàn vẹn, các dạng chuẩn hóa CSDL quan hệ.

CHƢƠNG 2

CHUYỂN ĐỔI CÁC CƠ SỞ DỮ LIỆU QUAN HỆ VÀ XML 2.1. Phƣơng pháp luận

Nghiên cứu các thuật toán và đưa ra cách chuyển đổi một cơ sở dữ liệu quan hệ thành một tài liệu XML và ngược lại chuyển một tài liệu XML về một cơ sở dữ liệu quan hệ.

2.1.1. Cấu trúc, kiểu cơ chế của XML và lƣợc đồ CSDL quan hệ

Những cơ chế cơ bản được sử dụng để định rõ cấu trúc của những tài liệu XML và lược đồ quan hệ là những kiểu phần tử và những thuộc tính đối với XML giống như những quan hệ và những thuộc tính đối với CSDL quan hệ. Về kiểu phần tử, nó hữu dụng cho việc mô tả hai mảng phạm trù: Đầu tiên, nó mô tả kiểu phần tử có bao gồm một miền nguyên tử hay không. Thứ hai, biểu thị kiểu phần tử có một miền hợp hay không. Những kết quả này phân biệt trong bốn kiểu phần tử khác nhau. Điều đó nhấn mạnh sự phân loại này thì thích hợp tới cả hai lược đồ DTD và XML. Tuy nhiên, CSDL quan hệ không cho phép tới những miền quan hệ đặc biệt, nhưng với những thuộc tính, hãy xem xét với mỗi loại kiểu phần tử như những thuộc tính XML và CSDL quan hệ với nhiều chi tiết.

Bảng 2.1: Các kiểu phần tử

Kiểu phần tử (Element Type) Miền nguyên tử Miền hợp

Kiểu phần tử nguyên tử True False

Kiểu phần tử hợp thành với nội dung phần tử False True

Kiểu phần tử rỗng False False Các kiểu phần tử chỉ bao gồm miền nguyên tử được gọi là những kiểu phần tử nguyên tử. Những kiểu phần tử DTD chỉ có một miền nguyên tử có thể là #PCDATA (những miền nguyên tử được xác định trước cho những thuộc tính DTD so sánh một kiểu chuỗi được gọi là CDATA), kiểu liệt kê và một vài kiểu đặc biệt, chẳng hạn như: ID, IDREF(s).

Ngược lại DTD, lược đồ XML cung cấp một phạm vi rộng lớn của những nguyên tử được xác định bởi những kiểu phần tử và những thuộc tính. Những miền nguyên tử được xác định trước là phù hợp để biểu diễn trong CSDL quan hệ. Lược đồ XML cho phép những miền nguyên tử được sử dụng như là cơ sở bắt nguồn từ những miền được định nghĩa bởi người dùng. Điều này thì tương tự với nội dung hướng đối tượng của lớp con bằng việc định rõ những mở rộng thích hợp hoặc những ràng buộc.

Với mỗi tài liệu XML, nó được yêu cầu là tất cả các kiểu phần tử hợp được tạo thành từ một hay nhiều kiểu phần tử đơn. Đây là một trong những ràng buộc CSDL quan hệ, nơi mà một phần của những sự phân cấp không thể thực hiện bởi những trung gian ẩn bên trong mà chỉ khi những quan hệ gồm những thuộc tính chỉ có giá trị nguyên thủy. Khi những kiểu phần tử hợp thành có thể có một miền nguyên tử để thêm vào miền hợp thành.

Hơn nữa, bên trong những kiểu phần tử hợp thành với nội dung hỗn hợp và những kiểu phần tử hợp thành với nội dung phần tử. Đặc biệt khi những kiểu phần tử hợp thành xuất hiện trong một chuỗi nối tiếp hoặc như là một sự lựa chọn.

Bảng 2.2: Minh họa định nghĩa kiểu phần tử hợp thành Độc giả

XML Document <Docgia> <Madg> B001 </Madg> <Tendg>

Lê Thị Ánh </Tendg> <GioiTinh> Nữ </GioiTinh> <NamSinh> 1992 </NamSinh> <DiaChi> Thái Bình </DiaChi> <Nghenghiep> Sinh viên </Nghenghiep> <Khoa> Kinh tế </Khoa> <Lop> CĐ51KT1 </Lop> <DienThoai> 0123660672 </DienThoai> </Docgia> DTD

<!ELEMENT Docgia(Madg, Tendg, GioiTinh, Namsinh, Diachi, Nghenghiep,Khoa,Lop,DienThoai>

<! ELEMENT Madg(#PCDATA)> <! ELEMENT Tendg(#PCDATA)>

<! ELEMENT GioiTinh(#PCDATA)> <! ELEMENT Namsinh(#PCDATA)> <! ELEMENT DiaChi(#PCDATA)> <! ELEMENT Nghenghiep(#PCDATA)> <! ELEMENT Khoa(#PCDATA)> <! ELEMENT Lop(#PCDATA)> <! ELEMENT Dienthoai(#PCDATA)> XML Schema

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 28 - 79)

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

(79 trang)