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

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

CHƢƠNG 1 : TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ

2.1 Phƣơng pháp luận

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 thể bao hàm một lƣợc đồ quan hệ khác trong nó. Ngƣợc lại, một lƣợc đồ XML hay một Documtent Type Definition (DTD) chỉ ra: với mỗi kiểu phần tử đƣợc định nghĩa trong nó có thể bao gồm các thuộc tính, các phần tử con và các thuộc tính của các phần tử con đó.

Mặt khác, một DTD hay một lƣợc đồ XML có thể lƣu trữ trực tiếp bên trong một tài liệu XML hoặc cũng có thể đƣợc lƣu trữ trong một file độc lập từ bên trong tài liệu XML. Đây là một trong những khác biệt cơ bản với CSDL quan hệ - nơi mà một lƣợc đồ quan hệ thì bắt buộc phải lƣu trữ bên trong CSDL quan hệ và các mối quan hệ tới lƣợc đồ thì phải đƣợc kiểm tra bởi hệ thống trƣớc khi chèn chúng vào trong CSDL.

Cuối cùng, tại mức minh họa, trong một CSDL quan hệ, với mỗi bộ (bản ghi) sẽ có một tập giá trị tƣơng ứng. Trong một tài liệu XML, với mỗi kiểu phần tử chỉ ra giá trị tƣơng ứng của chúng. Nhƣ vậy, chứng tỏ rằng các tài liệu XML là tự mô tả, nghĩa là các phần tử của lƣợc đồ đƣợc định nghĩa trong các thẻ mẫu là bản sao trong mỗi tài liệu XML và khi đó lƣợc đồ có đƣợc định nghĩa rõ ràng hay khơng thì khơng quan trọng. Đây là một trong những điều trái ngƣợc với CSDL quan hệ, nơi chỉ tồn tại duy nhất một lƣợc đồ quan hệ với CSDL toàn vẹn.

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.2 Cấu trúc và kiểu cơ chế của một tài liệu XML và một 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 loại kiểu phần tử khác nhau [4].

Bảng 2.1 Các loại kiểu phần tử

Loại kiểu phần tử (ET) Miền nguyên tử Miền hợp

Kiểu phần tử nguyên tử  

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

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

Kiểu phần tử rỗng  

Các loại 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ử. Về 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), một kiểu liệt kê và một vài kiểu đặc biệt, ví dụ 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 này 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ƣ cơ sở bắt nguồn từ những miền đƣợc định nghĩa bởi ngƣời dùng. Điều

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à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.

Bên cạnh những miền nguyên tử, những kiểu phần tử đƣợc phép kết hợp với một miền hợp đƣợc gọi là những kiểu phần tử hợp. Kiểu phần tử bao gồm những kiểu phần tử khác nhau gọi là những kiểu phần tử hợp đƣợc sử dụng để xây dựng độ sâu tùy ý (xác định thứ bậc kiểu phần tử trong tài liệu). 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 khi những quan hệ gồm những thuộc tính chỉ có giá trị ngun thủy. Tuy nhiên, một phần của những sự phân cấp có thể đƣợc đƣa ra trong CSDL quan hệ bằng các trung gian của khóa ràng buộc khóa ngoại lai. 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ử (bảng 2.1). Và đặ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.

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

Bảng 2.2 Minh họa định nghĩa của những kiểu phần tử hợp thành SinhVien DTD XML Schema <!ELEMENT SinhVien(SinhVienID,TenSV, NganhHocID,DiaChi,DienThoai*)> <!ELEMENT SinhVienID(#PCDATA)> <! ELEMENT TenSV(#PCDATA)> <!ELEMENT NganhHocID(#PCDATA)> <! ELEMENT DiaChi(#PCDATA)> <!ELEMENT DienThoai(#PCDATA)>

<complexType name = “DS_SinhVien” <sequence>

<elemnent name= “SinhVienID” type = “string” minOccurs = “1” maxOccurs = “1” />

<element name= “TenSV” type= “string” minOccurs = “1” maxOccurs = “1” />

<element name= “NganhHocID” type= “integer” minOccurs = “1” maxOccurs = “1” /> <element name= “DiaChi” type= “string” minOccurs = “1” maxOccurs = “1” />

<element name= “DienThoai” type= “integer” minOccurs = “0” maxOccurs = “unbounded” />

XML Document

<SinhVien>

<SinhVienID> 001 </SinhVienID>

<TenSV> Nguyen Thanh Nam </TenSV> <NganhHocID> 05 </NganhHocID> <DiaChi> Ha Noi </DiaChi>

<DienThoai> 0978543222 </DienThoai> <DienThoai> 0437382840 </DienThoai> </SinhVien>

Xem xét sự định nghĩa kiểu phần tử hợp thành, có một sự khác nhau đáng kể giữa DTD và lƣợc đồ XML. Trong sự ràng buộc với DTD, lƣợc đồ XML tách rời định nghĩa của những kiểu phần tử hợp thành từ sự công bố của những miền hợp thành của nó đặc biệt là những kiểu phần tử hợp thà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

Lưu ý: Định nghĩa một lƣợc đồ đặc biệt sử dụng khơng gian tên lƣợc

đồ XML có thể đƣợc dùng để phân biệt giữa những kiểu phần tử và kiểu dữ liệu đƣợc cung cấp bởi lƣợc đồ XML và đặc biệt những kiểu phần tử và những kiểu dữ liệu đƣợc định nghĩa bởi lƣợc đồ phức tạp.

Tại mức minh họa, những tài liệu XML bao gồm các phần tử, mỗi phần tử đƣợc đánh dấu bởi một thẻ bắt đầu và một thẻ kết thúc. Kiểu phần tử bao gồm kiểu phần tử hợp thành đƣợc biểu diễn bằng những thẻ ẩn giống nhƣ những thuộc tính. Các kiểu phần tử và thuộc tính đều đƣợc phép có giá trị, nhờ đó chúng ta có thể phân biệt giá trị của kiểu phần tử và giá trị của thuộc tính. Các tên thuộc tính và giá trị của chúng thì có vị trí bên trong thẻ bắt đầu, trong khi giá trị kiểu phần tử đƣợc tạo giữa thẻ bắt đầu và thẻ kết thúc. Do đó, thông tin lƣợc đồ của một lƣợc đồ rõ ràng đƣợc tái tạo bên trong những tài liệu XML trong đó mỗi phần tử và mỗi giá trị thuộc tính đƣợc chú giải với tên kiểu phần tử và tên kiểu thuộc tính tƣơng ứng. Trong mức minh họa CSDL quan hệ thì đơn giản hơn.

2.1.3 Tên duy nhất

Tên của quan hệ đƣợc yêu cầu là duy nhất trong phạm vi toàn bộ lƣợc đồ quan hệ, tƣơng tự đối với tên của một kiểu phần tử XML là duy nhất trong DTD. Tuy nhiên, XML cho phép những kiểu phần tử có tên trùng nhau bằng việc sử dụng khơng gian tên khác nhau. Vì vậy, tên giống nhau có thể xuất hiện trong những kiểu phần tử hợp đƣợc định nghĩa trên cơ sở của những miền hợp thành khác nhau mà khơng có sự xung đột. Ví dụ, có hai miền hợp thành có thể bao gồm cùng một kiểu phần tử với tên DiaChi nhƣng những miền khác khơng có xung đột. Tên của một thuộc tính XML đƣợc định nghĩa trong một DTD và một lƣợc đồ XML có thể là duy nhất trong kiểu phần tử của nó, điều này tƣơng tự với tên của thuộc tính CSDL quan hệ, chỉ có thể là duy nhất trong quan hệ của nó.

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.4 Các giá trị rỗng và các giá trị mặc định

Tƣơng tự nhƣ CSDL quan hệ, XML cho phép biểu diễn những giá trị rỗng cũng nhƣ những giá trị mặc định. Trong CSDL quan hệ, nội dung của những giá trị rỗng chỉ đƣợc định nghĩa cho những thuộc tính [7]. Tuy nhiên, XML xác nhận giá trị cho cả các thuộc tính và cả các phần tử. Trong DTD, những giá trị mặc định có thể đƣợc cập nhật chỉ tới những thuộc tính XML, trong khi lƣợc đồ XML xác nhận những giá trị mặc định cho các kiểu phần tử. Về các thuộc tính XML, đƣợc gọi là sự công bố mặc định trong một DTD yêu cầu định rõ cho mỗi thuộc tính với một trong những ràng buộc dƣới đây:

 #REQUYRED: một giá trị đƣợc yêu cầu là không rỗng (NOT NULL)

trong CSDL quan hệ.

 #IMPLIED: biểu thị giá trị tùy ý của thuộc tính, biểu thị bằng cách bỏ

đi giá trị NOT NULL của CSDL quan hệ, chú ý là trong trƣờng hợp khơng có giá trị đƣợc cung cấp cho mỗi thuộc tính XML tại mức minh họa, tên của thuộc tính cũng bị bỏ qua trong tài liệu XML.

 #FIXED<ConstValue>: định nghĩa một hệ số giá trị, điều này không thể trong CSDL quan hệ.

 <DefaultValue>: xác định một giá trị mặc định tƣơng tự nhƣ mệnh đề mặc định trong CSDL quan hệ.

Trong một tài liệu XML, một phần tử có thể bị bỏ quên hoặc không đƣợc chỉ rõ trong cả DTD và lƣợc đồ XML theo nghĩa các yếu tố ràng buộc trong một tập hợp. Khi những kiểu phần tử có thể là hợp thành của nhiều hơn một kiểu hợp thành, mỗi cái xảy ra trong nó nhƣ kiểu phần tử hợp thành có thể đƣa ra số các yếu tố trong một tập hợp khác.

Các kí hiệu số các yếu tố trong một tập hợp cho DTD là „?‟ (0 hoặc 1), „*‟ (0 hoặc nhiều hơn), „+‟ (1 hoặc nhiều hơn) và khơng có biểu tƣợng đƣợ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

hiểu chính xác là 1. Trong lƣợc đồ XML, số các yếu tố trong một tập hợp đƣợc chỉ ra bởi nhiều chi tiết hơn bằng việc sử dụng các thuộc tính

minOccurs và maxOccurs. Bảng 2.3 So sánh các yếu tố trong một tập hợp Số các yếu tố trong một tập hợp UML DTD XML Schema minOccurs maxOccurs 0 hoặc 1 0..1 ? 0 1 (mặc định) Chính xác 1 1 Mặc định 1 (mặc định) 1(mặc định) 0 hoặc nhiều hơn 0..* * 0 Không giới hạn 1 hoặc nhiều hơn 1..* + 1 (mặc định) Không giới hạn Số các yếu tố trong

một tập hợp tùy ý, ví dụ 3 đến 5

3..5 Không đƣợc

hỗ trợ 3 5

Điều này nhấn mạnh có một sự khác nhau về ngữ nghĩa giữa thẻ bắt đầu trực tiếp theo sau bằng một thẻ kết thúc. Vấn đề trƣớc làm hợp nhất một trong ba sự khác nhau đƣợc chỉ ra trong DTD và lƣợc đồ XML:

(1) Một phần tử đƣợc chỉ ra nhƣ một kiểu phần tử rỗng

(2) Một phần tử đƣợc chỉ ra nhƣ một kiểu phần tử nguyên tử, cái có giá trị là một chuỗi rỗng.

(3) Một kiểu phần tử đƣợc chỉ ra nhƣ một kiểu phần tử hợp thành, nhƣng

trong tài liệu XML đặc biệt không tồn tại kiểu phần tử hợp thành.

2.1.5 Quan hệ

Trong CSDL, các quan hệ đƣợc biểu diễn giữa các quan hệ theo nghĩa khóa ngoại lai. Số các bộ tham gia trong các quan hệ có thể đƣợc biểu diễn bởi định nghĩa cho khóa ngoại lai nhƣ NOT NULL và UNIQUE . Nhƣ vậy, số các yếu tố trong một tập hợp khác nhau có thể đƣợc xác nhận nhƣ là minh họa

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

trong bảng 2.4. DTD cho phép có hai cách lựa chọn với những quan hệ đặc biệt giữa những kiểu phần tử gồm những thuộc tính IDREF(s) và những kiểu phần tử hợp thành. Kiểu của những thuộc tính IDREF(s) đƣa ra một số loại khóa ngoại lai tham chiếu kiểu của những thuộc tính ID. Sự phân biệt giữa những thuộc tính IDREF và IDREFS liên quan tới số các phần tử trong một tập hợp của chúng, trong trƣờng hợp đó giá trị đơn có trƣớc và sau đó là giá trị đa.

Bảng 2.4 Nội dung so sánh các quan hệ

Database DTD XML Schema Nội dung Khóa ngoại lai Thuộc tính IDREF(s) Kiểu phần tử hợp thành Keyref (thêm vào các nội dung DTD) Kiểu phần tử hợp thành Các tham gia Các quan hệ (tuples) Các kiểu phần tử Kiểu các tham gia Tuples của một quan hệ nào đó Khơng bắt buộc các phần tử tham gia Các phần tử tham gia bị hạn chế bởi kiểu phần tử hợp thành Các phần tử của một kiểu phần tử nào đó Các phần tử tham gia bị hạn chế bởi kiểu phần tử hợp thành và thuyết tiến hóa của nó Số các yếu tố trong tập hợp (0..1):*,1:*, (0..1): (0..1) 1: (0..1) *:(0..1), *:1, *.*, *:(1..*) 1:1, 1:*, 1:(1..*), 1:(0..1) Giống nhƣ trong CSDL quan hệ 1: giá trị tùy ý

Lƣợc đồ XML cung cấp nội dung của các khóa tham chiếu, tƣơng ứng với các khóa ngoại lai của CSDL quan hệ, điều này nghĩa là sự kết hợp kiểu phần tử/thuộc tính quyết định tham chiếu tƣơng ứng với sự kết hợp kiểu phần tử/thuộc tính xây dựng khóa. Về các quan hệ, cái đƣợc thể hiện bởi những

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

kiểu phần tử hợp thành, đặc biệt là số các yếu tố trong một tập hợp của những kiểu phần tử hợp thành có thể là những giá trị tùy ý nhƣ đã đề cập.

Hơn nữa, những phần tử tham gia khơng chỉ có các phần tử hợp thành nhƣ yêu cầu khi sử dụng DTD nhƣng cũng có thể là những phần tử đƣợc điều khiển từ những kiểu phần tử hợp thành này.

2.1.6 Thứ tự

Trong trƣờng hợp ngƣợc lại với những quan hệ của CSDL quan hệ, những kiểu phần tử và các nội dung của một tài liệu XML tham gia cả trong thứ tự ẩn và hiện. Thứ tự của các kiểu phần tử có thể đƣợc định nghĩa chính

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