XML DATABASE
Ngày nay, việc ứng dụng công nghệ thông tin vào đời sống được phát triển vô cùng mạnh mẽ. Ngành công nghệ thông tin nói chung và lĩnh vực công nghệ mạng nói riêng đã cho ra đời nhiều ứng dụng, dịch vụ đặc biệt kể đến là dịch vụ “aplication as service”. Các giao dịch, tương tác đều thông ...
Ngày nay, việc ứng dụng công nghệ thông tin vào đời sống được phát triển vô cùng mạnh mẽ. Ngành công nghệ thông tin nói chung và lĩnh vực công nghệ mạng nói riêng đã cho ra đời nhiều ứng dụng, dịch vụ đặc biệt kể đến là dịch vụ “aplication as service”. Các giao dịch, tương tác đều thông qua môi trường internet. Cùng với sự phát triển đó là sự ra đời của các ngôn ngữ và các giao thức giao tiếp để phục vụ những mục đích và dịch vụ nhất định. Có thể kể đến một số ngôn ngữ HTML, Java, PHP, .Net ... Với dự phát triển của ngôn ngữ XML mấy năm gần đây và đã được sử dụng rỗng rãi trên nhiều ngôn ngữ khác nhau. Cùng với nó là sự phát triển của các cơ sở dữ liệu đặc biệt là cơ sở dữ liệu XML để thao tác dữ liệu với các ngôn ngữ đó một cách dễ dàng và tiện lợi.
1.XML DB là gì?
- là một hệ thống phần mềm dữ liệu không đổi cho phép quy định dữ liệu, lưu trữ trong định dạng XML.
- Dữ liệu này có thể truy vấn, chuyển đổi, exported và trả lại kết quả để gọi hệ thống.
- Là một ‘hương vị’ của CSDL hướng đối tượng – là một phần của NoSQL DB.
- Các dữ liệu lưu trữ trong DB có thể truy vấn bằng Xquery và exported sang các định dạng mong muốn
2.Đặc điểm XML DB
- XML phù hợp cho dữ liệu thưa, dữ liệu lồng nhau và dữ liệu có nội dung hỗn hợp (như một văn bản với các thẻ đánh dấu).
- Là một ‘hương vị’ của CSDL hướng đối tượng – là một phần của NoSQL DB.
- Một doanh nghiệp có thể có rất nhiều định dạng XML trong tài liệu hiện hành.
- Dữ liệu web có sẵn như RDF/XML
3.XML DB có hai loại
- XML-enabled: không có gì ngoài việc cung cấp phần mở rộng để chuyển đổi tài liệu XML. Đây là CSDLQH - nơi dữ liệu được lưu trữ trong các bảng gồm các hàng và các cột. Các bảng được thiết lập gồm các bản ghi trong đó gồm các trường.
- Native XML (NXD):Dựa trên ý tưởng thùng chứa chứ không phải định dạng bảng. Nó có thể lưu trữ số lượng lớn các tài liệu XML và dữ liệu. NXD được truy vấn bằng các câu lệnh truy vấn XQuery. Xử lý tài liệu XML và các dữ liệu có cấu trúc, không phải là các bảng, bản ghi hay các truòng.
4.XML là gì?
- là một ngôn ngữ đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của mình.
- XML ra đời nhằm khắc phục những nhược điểm của HTML.
- XML có khả năng mô tả nhiều loại dữ liệu khác nhau và đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống được kết nối với Internet.
- Dễ dàng xử lý, chuyển tải và trao đổi dữ liệu.
- Mô tả dữ liệu và cách dữ liệu muốn thể hiện thông qua tên các thẻ.
- Tổ chức dữ liệu có cấu trúc và phân cấp.
Tài liệu XML
-
Một tài liệu XML có hai phần:
- Cấu trúc logic: định nghĩa các phần tử, các thuộc tính, kiểu dữ liệu ...
- Cấu trúc vật lý: chứa dữ liệu và các phần tử chứa dữ liệu như text, hình ảnh, media ...
-
Tài liệu XML có thể được soạn thảo bởi các phần mềm như: notepad, editPlus, XML notepad ...
5.XML DB với CSDLQH
- Trong những năm đầu tiên của CSDL sự khác biệt của NXD với các hệ thống quản lý CSDLQH (RDBMS)có hỗ trợ xml là rất lớn. Các NXD được tối ưu hóa để lưu trữ các tài liệu XML, các bản RDBMS chỉ thêm 1 số chức năng vào các đối tượng nhị phân lớn để chứa XML
- Ngày nay NXD được cải tiến rất nhiều, song hành cùng nó là các nhà cung cấp RDBMS cũng có thời gian đuổi kịp để lưu trữ tài liệu XML. Các tài liệu XML không còn được lưu trữ dưới dạng nhĩ phân lớn mà thay vào đó chúng được lưu trữ trong các cấu trúc cây, được tối ưu hóa để chứa các tài liệu có cấu trúc câu – bản chất tự nhiên của một tài liệu XML.
- Một số nền tảng của sự phát triển được thêm vào sự chuẩn hóa của các ngôn ngữ truy cấn trên các tài liệu XML đáng chú ý nhất là Xquery. Giống như ngôn ngữ truy vấn có cấu trúc SQL, XQuery đẩy mạnh sự độc lập của các nhà cung cấp và tái sử dụng.
Tại sao XMLDB lại tối ưu hơn
- CSDL thường có thể lưu trữ tài liệu có cấu trúc và không có cấu trúc.cả hai đều yêu cầu các cấu trúc dữ liệu mà không thường xuyên thay đổi. Tuy nhiên điểm yếu của CSDLQH là việc lưu trữ bán cấu trúc.bạn có thể lưu dữ liệu bán cấu trúc trong các cấu trúc quan hệ nhưng kết quả mong muốn trả về là một tài liệu cấu trúc thường xuyên thay đổi.
- Trong khi đó XML phù hợp với định dạng bán cấu trúc. Thêm nữa bạn có thể duy trì mô hình dữ liệu một cách dễ dàng, thêm tên của các thành phần không làm thay đổi cấu trúc dữ liệu- vì nó là cáu trúc cây.
- XML phù hợp với các tài liệu như hồ sơ xin việc, các mô tả sản phẩm, các đơn hàng của khách hàng ...
- NXD phù hợp với để chứa tài liệu XML hoặc các phân mảnh của tài liệu XML.
- NXD: là cách dùng các công nghệ có liên quan đến XML mà không pha tạp với các công nghệ phi XML- tức là khả năng sử dụng XQuery và Xpath không có chút SQL nào.
- NXD NXD cũng có thể được phân loại như là một kho chứa tài liệu như CSDLQH
- NXD: thực hiện câu lệnh truy vấn select nhanh. Với insert và update thì chậm hơn.
**6.Phân tích tài liệu XML theo DOM **
DOM là gì?
- DOM – Document Object Model hay mô hình đối tượng tài liệu là một giao diện lập trình ứng dụng (API). Thông thường DOM có dạng một cây cấu trúc dữ liệu, được dùng để truy xuất các tài liệu dạng HTML và XML.
- Mô hình DOM độc lập với hệ điều hành và dựa theo kỹ thuật lập trình hướng tượng để mô tả tài liệu.
- DOM không có giới hạn về cấu trúc dữ liệu của một tài liệu.
Các phiên bản mô hình DOM được sắp xếp theo cấp độ hay bậc.
- Cấp độ 0: Bao gồm mọi chi tiết DOM theo quy định của từng nhà phát triển riêng biệt tồn tại trước khi DOM cấp độ 1 ra đời.
- Cấp độ 1: Cách duyệt qua tài liệu (cấu trúc cây) của DOM (HTML và XML) và thao tác nội dung bao gồm cả việc thêm thành phần. Các thành phần riêng cho HTML cũng được đưa vào.
- Cấp độ 2: Hỗ trợ không gian tên XML, khung nhìn có lọc và các sự kiện DOM
- Cấp độ 3: Nhằm nâng cao các khả năng của DOM với việc cho phép nạp, xử lý và lưu lại mô hình cho nội dung tài liệu.
Hiện tại bản chi tiết kỹ thuật hiện hành của DOM đang ở cấp độ 2.
Phân tích tài liệu XML theo DOM
- Các ứng dụng dựa trên XML, bao gồm việc đọc ghi có chọn lọc cho mỗi lần phân tích, DOM cho thấy được sự tối ưu về mặt bộ nhớ.
- XML DOM định nghĩa một tiêu chuẩn cho việc truy cập và thao tác tài liệu XML
- DOM trình bày một tài liệu XML dưới dạng cây.
- Bất kỳ ai làm việc với XML đều biết đến XML DOM
- XML DOM đóng vai trò như lớp giao tiếp ở giữa của chương trình ứng dụng và XML parser
Sử dụng DOM đọc dữ liệu
- Toàn bộ tài liệu XML được chuyển đổi sang mô hình đối tượng.
- Element được chuyển thành node.
- Element Content tương ứng một node.
- Mỗi attribute tương ứng một node.
- Tùy theo từng loại node sẽ có cách lấy dữ liệu tương ứng.
- Sau khi mở tài liệu XML, toàn bộ tài liệu được thành một node. Để truy xuất đến root Node có thể dùng thuộc tính documentElement hay fristChild.
- Mỗi node đều có ba thuộc tính: nodeType, nodeName và nodeValue.
Sử dụng DOM ghi dữ liệu
- Tạo node: createNode: tạo mới tất cả các loại node createElement: = createNode với loại ELEMENT_NODE reateTextNode: - createNode với loại TEXT_NODE
- Gắn node mới vào tài liệu XML nodeParent.appendChild: thêm vào phần tử cuối cùng của danh sách. nodeParent.insertBefore: thêm node mới vào trước phần tử nào đó trong ChildNode của node cha.
- Tạo attribute createAttribute: = createNode với loại ATTRIBUTE_NODE
- Thêm attribute vào tài liệu XML node.setAttributeNode node.attribute.setNameItem
- Xóa node node.RemoveChild
**7.Chuyển đổi CSDL và XML **
Trong đó:
- R_ET: là một quan hệ R được ánh xạ thành một kiểu phần tử ET.
- A_ET: là một thuộc tính của quan hệ (A) được ánh xạ thành một kiểu phần tử (ET) nhờ vào quan hệ của thuộc tính đưa ra quan hệ của kiểu phần tử.
- A_A: là thuộc tính của một quan hệ được ánh xạ thành thuộc tính XML.
Thuật toán chuyển đổi CSDL quan hệ và XML_
- Bước 1: biểu diễn XML theo mô hình DOM
- Bước 2: biểu diễn tài liệu XML theo dạng bảng của cơ sở dữ liệu quan hệ và chuyển thành cơ sở dữ liệu quan hệ.
- Bước 3: chuyển một cơ sở dữ liệu quan hệ sang tài liệu XML.