Phân tích tài liệu XML theo mô hình DOM

Một phần của tài liệu tích hợp cơ sở dữ liệu quan hệ và xml (Trang 25 - 74)

W3C định nghĩa tài liệu theo mô hình DOM. Về cơ bản DOM là giao diện trình ứng dụng API (Application Progam Interface) 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 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 Studio.NET, C/C++, …. 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:

Phƣơng thức Ý nghĩa

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

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

SinhVien SinhVien

SinhVienID TenSV NganhHocID DiaChi DienThoai

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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

Bảng 1.3 Các phƣơng thức trong mô hình DOM 1.2 Cơ sở dữ liệu quan hệ

1.2.1 Cấu 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 đồ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 trƣờng). Mỗi dòng trong bảng tƣơng ứng với một bộ trong quan hệ (đƣợc gọi là bản ghi), mỗi 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).

Ví dụ 1.5: Cho bảng dữ liệu hay quan hệ SINHVIEN nhƣ sau:

SinhVienID TenSV NganhHocID DiaChi DienThoai

SV001 Nguyễn Văn Nam 1 Hà Nội 043229433

SV002 Trần Học Ninh 3 Hải Dƣơng 03203844033

SV003 Phạm Hữu Lực 5 Hà Nội 043779045

Bảng 1.4 Bảng dữ liệu SinhVien

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.

Định nghĩa miền giá trị:

Miền giá trị của bảng quan hệ là miền xác định các giá trị thuộc tính trong quan hệ.

Miền giá trị phải đơn giản, chỉ nhận giá trị đơn (đơn trị). Nếu miền giá trị nhận giá trị là đa trị (không phải là nguyên tố) thì ta phải tách giá trị đa trị thành đơn trị (bằng cách thêm vào các quan hệ phụ).

Quan hệ có thể hiểu là tập con của tích đề các của một hoặc nhiều miền. Nhƣ vậy, mỗi quan hệ có thể gọi là vô hạn. Với giả thiết rằng quan hệ là một tập hữu hạn. Ngƣời ta dùng thuật ngữ “quan hệ cơ sở” để chỉ mức độ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

thấp nhất của thể hiện dữ liệu với ngƣời dùng. Tất cả dữ liệu trong CSDL quan hệ sẽ đƣợc lƣu trữ theo tập các “quan hệ cơ sở”. Dữ liệu có thể đƣợc truy cập và xử lý theo cách nhìn nhận riêng, đặc biệt gọi là “khung nhìn”. Khung nhìn là quan hệ logic, tƣơng ứng trực tiếp hoặc gián tiếp với quan hệ cơ sở.

Định nghĩa khung nhìn (View):

Khung nhìn là quan hệ liên kết logic cho phép hai hay nhiều quan hệ một cách trực tiếp hoặc gián tiếp.

Một khung nhìn có thể là một tập con của một cơ sở dữ liệu quan hệ.

Ví dụ 1.6: Cho bảng quan hệ MonHocInHocKy

MonHocID TenMonHoc NganhHocID HocKyID GhiChu

1 CSDL CNTT 3 2 Toán ứng dụng SP Toán 2 3 PP dạy Tin CNTT 4 Bảng 1.5 Bảng dữ liệu MonHocInHocKy

MonHocID TenMonHoc GhiChu

1 CSDL

2 Toán ứng dụng 3 PP dạy Tin

Bảng 1.6 Bảng dữ liệu MonHoc

Ta nhận thấy khung nhìn của MonHoc là tập con của bảng quan hệ MonHocInHocKy. Các khung nhìn cho phép ngƣời dùng khác nhau cùng một CSDL theo các góc độ khác nhau về dữ liệu. Hệ thống đảm bảo ngƣời dùng nào cũng cảm thấy chỉ một mình họ truy cập CSDL. Ở đây khung nhìn đƣợc

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

xem nhƣ các bảng cơ sở trong CSDL quan hệ và dùng chúng trong các phép xử lý.

1.2.2 Ràng buộc toàn vẹn trên một 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].

1.2.2.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. Ràng buộc toàn vẹn còn có thể đƣợc hiểu là các quy tắc (rule) đƣợc áp đặt trên các đối tƣợng của thế giới thực.

1.2.2.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 [1] cần chỉ rõ:

 Đ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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Có các khái niệm về khóa: khóa chính (primary key), khóa ngoại (foreign key) và khóa duy nhất (unique key).

Khóa duy nhất (unique key): Ràng buộc không cho phép có hai giá trị giống y hệt nhau trên cột hoặc tập các cột đƣợc định nghĩa bởi mệnh đề dạng này.

Khóa chính (primary key): ràng buộc không cho phép có hai giá trị giống y 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.

1.2.3 Chuẩn hóa một cơ sở dữ liệu quan hệ

Chuẩn hóa một cơ sở dữ liệu quan hệ [7] 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 1NF 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).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Nếu một quan hệ chƣa ở dạng 2NF thì ta tách quan hệ ban đầu thành các quan hệ mới gồm: quan hệ chứa các thuộc tính không khóa không phụ thuộc bộ phận vào khóa chính và các quan hệ trong đó mỗi quan hệ chứa các thuộc tính là các thuộc tính bộ phận của khóa chính và các thuộc tính phụ thuộc bộ phận vào thuộc tính bộ phận của 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.

Nếu một quan hệ chƣa ở dạng chuẩn 3NF thì thực hiện các bƣớc sau đây:

 Tìm các phụ thuộc hàm bắc cầu vào khóa chính có dạng: K -> X,

 X-> Y, trong đó K là tập các khóa chính, X và Y là tập các thuộc tính không khóa.

 Nếu tìm thấy phụ thuộc hàm bắc cầu nhƣ trên thì tiến hành tách quan hệ hiện thời thành hai quan hệ, quan hệ thứ nhất bao gồm các thuộc tính X, Y và quan hệ thứ hai bao gồm các thuộc tính trong quan hệ ban đầu trừ thuộc tính Y.

Kiểm tra các quan hệ con xem đã ở dạng chuẩn 3 NF hay chƣa, nếu chƣa thì lặp lại hai bƣớc trên.

Chuẩn BCNF: một quan hệ ở dạng chuẩn BCNF nếu nó là 3NF và tập các phụ thuộc hàm không chứa phụ thuộc hàm tầm thƣờng.

Phụ thuộc hàm tầm thƣờng: với phụ thuộc hàm A B, và B là tập con

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

1.3 Kết luận

Chƣơng 1 đã trình bày những kiến thức cơ bản về cấu trúc một tài liệu XML cũng nhƣ các kiến thức giúp chúng ta 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, 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, lƣợc đồ XML, không gian tên, 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 trên CSDL quan hệ.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƢƠNG 2: TÍCH HỢP CÁC HỆ THỐNG CƠ SỞ DỮ LIỆU QUAN HỆ VÀ XML

Các cơ sở dữ liệu ngày nay đƣợc lƣu trữ ở rất nhiều định dạng file khác nhau. Chuyển đổi dữ liệu giữa chúng là một vấn đề nan giải mặc dù đã có không ít những trình ứng dụng hỗ trợ. Nếu dữ liệu của file chỉ đƣợc lƣu theo dạng text thì mọi việc trở nên đơn giản do file text có thể đƣợc đọc bởi hầu nhƣ tất cả các trình ứng dụng. Tuy nhiên file text khó có thể bố trí dữ liệu theo cấu trúc. XML [2] ra đời đã khắc phục đƣợc những bất cập nói trên. Trong XML, dữ liệu và định dạng đƣợc lƣu ở dạng text và chúng ta có thể dễ dàng cấu hình cũng nhƣ thay đổi chúng bằng các trình soạn thảo thông thƣờng.

Việc ngày càng có nhiều hệ quản trị cơ sở dữ liệu tổ chức lƣu trữ các file với nhiều định dạng khác nhau gây khó khăn cho việc giao tiếp giữa các hệ thống thông tin. Để khắc phục tình trạng này, chúng ta dùng các file XML làm cầu nối để lƣu trữ và trao đổi dữ liệu. Do đó, chuyển đổi dữ liệu từ một cơ sở dữ liệu bất kỳ sang định dạng file XML và ngƣợc lại là một việc làm cần thiết và mang giá trị thực tiễn cao.

Với cấu trúc của một tài liệu XML, các cơ sở dữ liệu đƣợc tổ chức dƣới dạng mô hình đối tƣợng DOM. Việc xử lý các dữ liệu này thông qua mô hình DOM nhƣ có thể chuyên một cơ sở dữ liệu quan hệ sang một tài liệu XML hoặc ngƣợc lại chuyển một tài liệu XML sang dạng một cơ sở dữ liệu quan hệ là nội dung của việc tích hợp giữa các hệ thống cơ sở dữ liệu và XML [6].

2.1 Phƣơng pháp luận

Tích hợp cơ sở dữ liệu quan hệ và XML nghiên cứu về 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ệ. Để giải quyết vấn đề này chúng ta phải tìm hiểu các vấn đề sau:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.1.1 Đối sánh nội dung của một CSDL quan hệ và một tài liệu XML

Mối quan hệ giữa nội dung một cơ sở dữ liệu quan hệ và một tài liệu XML đƣợc thể hiện qua các mức so sánh về: mô hình dữ liệu, lƣợc đồ và các mức đƣợc minh họa nhƣ sau:

Mức mô hình dữ liệu

Nội dung quan hệ Nội dung XML

Relation  Attribute Element Type  Attribute

Mức lƣợc đồ

Lƣợc đồ quan hệ Lƣợc đồ DTD/XML

Relation A  Attribute X Relation B Attribute Y

………

Element Type a  Attribute x Element Type b Attribute y

…………..

Mức minh họa

Cơ sở dữ liệu quan hệ Tài liệu XML

Tupe  Value Element Type ---> Attribute

Element Value Attribute Value

Hình 2.1 Các mức so sánh giữa mô hình quan hệ và XML

Tại mức mô hình dữ liệu, nội dung dữ liệu và nội dung quan hệ có sự khác nhau đáng kể do những mục đích khác nhau của CSDL quan hệ và XML. Mục đích của CSDL quan hệ là để đáp ứng khả năng lƣu trữ rộng lớn, truy cập hiệu quả và đảm bảo tính chắc chắn của chúng. Ngƣợc lại, XML đƣợc sử dụng với mục đích đáp ứng một nhu cầu định dạng về cấu trúc và sự trao đổi của những tài liệu siêu liên kết. Trong nội dung quan hệ, từ quan hệ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

chỉ ra các thuộc tính tƣơng ứng của nó. Trong nội dung XML, từ kiểu phần tử chúng ta biết đƣợc các phần tử con và các thuộc tính tƣơng ứng của chúng.

Sự khác nhau đáng kể về nội dung của quan hệ và XML có ảnh hƣởng không tốt tới việc tích hợp cả hai mô hình này.

Tại mức lƣợc đồ, sự khác nhau cũng đƣợc chỉ rõ. Ở lƣợc đồ quan hệ, mối liên hệ giữa các quan hệ và thuộc tính đƣợc xác định rõ: một lƣợc đồ chỉ bao gồm các thuộc tính trong quan hệ tƣơng ứng, một lƣợc đồ quan hệ không

Một phần của tài liệu tích hợp cơ sở dữ liệu quan hệ và xml (Trang 25 - 74)