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