Phương pháp luận

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 39)

Chương 2 : TÍCH HỢP CÁC HỆ THỐNG CSDL QUAN HỆ VÀ XML

2.1 Phương pháp luận

Tích hợp các hệ thống CSDL quan hệ và XML nghiên cứu về cách chuyển đổi một CSDL 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 CSDL quan hệ. Để giải quyết vấn đề này chúng ta phải tìm hiểu các vấn đề sau.

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 của một Cơ sở dữ liệu quan hệ và một tài liệu XML được thể hiện thông qua các mức so sánh về: mô hình dữ liệu, lược đồ và mức minh hoạ 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 a--->Attribute x

---

Mức minh hoạ

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

Tupe → Value Element Type ---> Attribute Element Value Attribute Value

Tại mức mô hình dữ liệu, nội dung quan hệ và nội dung XML 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 như một đị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ệ 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 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ể được 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 tham khảo độc lập từ bên trong tài liệu XML bởi những trung gian URI. Đâ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 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 hoạ. Trong một CSDL quan hệ, với mỗi bộ (bản ghi) sẽ có một tập các 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 kiểu phần tử, các phần tử con, các thuộc tính và các 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 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.

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ệ. 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ó thì hữu dụng cho việc mô tả với hai mảng phạm trù: Đầu tiê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. Điều này nhấn mạnh là 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.

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ử x

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

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

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

Hình 2.2: Các loại kiểu phần tử

Những kiểu phần tử chỉ bao gồm một 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ụ: 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 miền 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 đị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 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 được gọi là những kiểu phần tử hợp được sử dụng để xây dựng độ sâu tuỳ ý (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ị nguyên thuỷ. 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 khoá ràng buộc 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ử (hình 2.2). 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.

DTD XML Schema

<! ELEMENT village

(name, country, accommodation*)> <! ELEMENT name (#PCDATA)> <! ELEMENT country (#PCDATA)>

<! ELEMENT accommodation (#PCDATA)>

<complexType name= “villageInfo” <sequence>

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

minOccurs= “1” maxOccurs= “1”/>

<element name= “accommodation” type= “string” minOccurs= “0” maxOccurs= “unbounded”/>

XML Document

<village>

<name> Innsbruck </name> <country> Tyrol </country>

<accommodation> Hotel Post </accommodation> <accommodation> Hotel Admiral </accommodation> <accommodation> Hotel Anker </accommodation> </village>

Hình 2.3: Kiểu phần tử hợp thành với nội dung kiểu phần tử

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à kiểu phần tử hợp thành. Hình 2.3 minh hoạ định nghĩa của những kiểu phần tử hợp thành village và đặc biệt của miền hợp thành

villageInfo, từ khoá ComplexType biểu thị sự công bố của miền hợp thành này.

Note: Đị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 hoạ, 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á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

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 hoạ củ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 address 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ệ, cái có thể là duy nhất trong quan hệ của nó.

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 các thuộc tính, 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, nghĩa là 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ị tuỳ ý 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 hoạ, 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), „+‟ (một hoặc nhiều hơn), và không có biểu tượng thì được 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

maxOccurs.

Số các yếu tố

trong một tập hợp UML DTD

XML Schema

minOccurs max Occurs

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 1 0..*, * * 0 Không giới

hạn

1 hoặc 0 1..* + 1 (mặc định) Không giới

hạn Số các yếu tố trong một tập hợp tuỳ ý,

ví dụ, 3 đến 5

3..5 Không được hỗ trợ

3 5

Hình 2.4: So sánh - số các yếu tố trong một tập hợp

Điều này nhấn mạnh là 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ó thể đượ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 trong hình 2.4. DTDs 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.

Database DTD XML Shema

Nội dung Khoá ngoại lai Tuộ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 đó Nó thì 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 hoá 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ị tuỳ ý

Lược đồ XML cung cấp nội dung của keyref , cái tương ứng với các khoá 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ực hiện bởi những kiểu phần tử hợp thành, đặc biệt 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 phần tử 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 xác trong một

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML Luận văn ThS Công nghệ thông tin 1.01.10 (Trang 39)

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

(73 trang)