1. Trang chủ
  2. » Công Nghệ Thông Tin

slide cơ sở dữ liệu chương (9) cơ sở dữ liệu xml

66 753 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 269,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

21/10/14 Cơ sở dữ liệu XML 18 Là các loại tài liệu sử dụng XML như dữ liệu chuyển đổi  Được thiết kế cho việc sử dụng của các hệ thống  Không quan trọng cho ứng dụng hoặc CSDL có

Trang 1

Chương 9

CƠ SỞ DỮ LIỆU XML

Trang 2

21/10/14 Cơ sở dữ liệu XML 2

Nội dung trình bày

Trang 3

XML là gì?

 XML(Extensible Markup Language) ra đời 2/1998

 XML là ngôn ngữ có kiến trúc gần giống như HTML

 XML thiết kế dùng để mô tả dữ liệu

 Người dùng tự định nghĩa các thẻ (tag)

 XML dùng DTD(Document Type Definition) hoặc XML Schemas để mô tả dữ liệu

Trang 4

21/10/14 Cơ sở dữ liệu XML 4

Sự khác biệt giữ XML và HTML

 XML ra đời không phải là sự thay thế cho HTML

 XML dùng để mô tả dữ liệu – HTML dùng để biểu

diễn dữ liệu

 XML quan tâm đến dữ liệu lưu trữ là gì? – HTML

quan tâm đến việc hiển thị dữ liệu như thế nào

 Cách qui định lưu dữ liệu trên file XML nghiêm ngặt

hơn HTML

Trang 5

XML được sử dụng như thế nào?

Trang 6

21/10/14 Cơ sở dữ liệu XML 6

Cú pháp của XML

 Các qui định cú pháp của XML rất đơn giản nhưng rất nghiêm ngặt

 Tất cả các tài liệu của XML phải có một nút gốc(Root Element)

 Mỗi một thành phần (element) bắt buộc phải có thẻ đóng (</>)

Trang 7

 Các thẻ đóng mở của XML có phân biệt chữ hoa và chữ thường (</letter> # </Letter>)

 Tất cả các thành phần của XML phải lồng nhau một cách chính xác:

Trang 8

21/10/14 Cơ sở dữ liệu XML 8

Cú pháp cho XML

<? xml version =“1.0” encoding =“ISO-8859-1”?>

<note>

<to> Tove </to>

<from> Jani </from>

<heading> Reminder <heading>

<body> Don’t forget me this weekend! </body>

</note>

Ví dụ trên định nghĩa một thành phần gốc là note, trong đó có 4 thành phần con là: to, from, heading, body

Trang 9

 Thành phần(Element)

- Các thành phần được đặt tên theo luật.

- Các thành phần có thể mở rộng và có sự liên hệ với nhau

+ Elements must have a closing tag

+ Elements must be properly

nested

Các khái niệm của XML

<book>

<title> My first XML </title>

<prod id = “33-657” medid =“paper” </prod>

<chapter> Introduction to XML <para> What is HTML </para>

<para> What is XML </para>

</chapter>

<chapter> XML Syntax <para> Elements must have a closing tag </para> <para> Elements must be properly nested </para> </chapter>

</book>

Trang 10

21/10/14 Cơ sở dữ liệu XML 10

Các khái niệm của XML

<person sex = “female”>

<firstname> Anna</firstname>

<lastname> Smith</lastname>

</person>

Trang 11

 Namspace: cung cấp phương pháp tránh đụng độ tên các thành phần

 XML Parser: dùng để phân tích cấu trúc XML khi đọc – sửa đổi, tạo – xử lý

 XML Encoding:chuyển các ký tự sang dạng chuẩn unicode để cho bộ phân tích XML hiểu khi gặp ký tự lạ

 CDATA:Các dữ liệu văn bản trong đoạn này không bị phân tích bởi bộ phân tích XML

 PCDATA:Nội dung trong phần này đơn giản ở dạng văn bản thô, ngoài tính chất mô tả văn bản chúng không có hỗ trợ nào thêm, tất cả dữ liệu trong phần này đều lưu dưới dạng text

Các khái niệm của XML

Trang 12

21/10/14 Cơ sở dữ liệu XML 12

 XML có phải là một cơ sở dữ liệu?

 Liệu XML có gần gũi hơn một cơ sở dữ liệu?

 Sự lựa chọn giữa một CSDL bình thường và CSDL thuần XML (native XML database)

 Data-centric documents

 Document-centric documents

 Mối quan hệ giữa dữ liệu, tài liệu và cơ sở dữ liệu.

 Đánh giá các kiểu cơ sở dữ liệu dùng lưu trữ dữ liệu XML

XML VÀ CƠ SỞ DỮ LIỆU

Trang 13

 Ưu điểm của XML:

- Tự nó mô tả cấu trúc và tên của loại dữ liệu.

- Dễ dàng di chuyển

- Có thể mô tả dưới cấu trúc dạng cây hoặc đồ thị

 Khuyết điểm của XML:

- Dài dòng

- Truy xuất dữ liệu chậm

XML có phải là một cơ sở dữ liệu?

Trang 14

21/10/14 Cơ sở dữ liệu XML 14

XML có gần gũi hơn một CSDL?

 Một số điểm XML giống với CSDL:

- Có khả năng lưu trữ

- Có các lược đồ (DTDs, XML Schemas, Relaxng,…)

- Ngôn ngữ truy vấn(XQuery, XPath, XQL, XML-QL, QUILT…)

- Hỗ trợ lập trình giao diện

Trang 15

XML có gần gũi như một CSDL

 Một số vấn đề XML chưa hỗ trợ như một CSDL:

- Lưu trữ hiệu quả

- Tạo chỉ mục hiệu quả

- Bảo mật dữ liệu

- Quản lý giao tác và tính toàn vẹn dữ liệu

- Truy cập đa người dùng

- Triggers

- Truy vấn thông qua nhiều tài liệu

Trang 16

21/10/14 Cơ sở dữ liệu XML 16

XML có gần gũi như một CSDL

 Câu trả lời “là một phần nào”

=> Kết luận: XML không phù hợp cho môi trường đa người dùng , tính toàn vẹn dữ liệu được yêu cầu nghiêm ngặt

Trang 17

Câu hỏi đặt ra:

 Chúng ta có một dữ liệu nguồn cần đưa ra ngoài?

 Chúng ta tìm một nơi để lưu trữ các website của mình?

 Một ứng dụng e-commerce sử dụng một CSDL mà XML chỉ được xem là dữ liệu chuyển đổi?

Trang 18

21/10/14 Cơ sở dữ liệu XML 18

 Là các loại tài liệu sử dụng XML như dữ liệu chuyển đổi

 Được thiết kế cho việc sử dụng của các hệ thống

 Không quan trọng cho ứng dụng hoặc CSDL có lưu trữ tài liệu dạng XML

 Không phù hợp với dữ liệu có cấu trúc theo qui tắc, dữ liệu ở mức ít thô

 Nội dung thể hiện ít hoặc không trộn lẫn nhau.

 Ví dụ: các hóa đơn bán hàng, lịch bay,…

Data - centric Documents

Trang 19

 Là các loại tài liệu sử dụng XML để lưu dữ liệu

 Được thiết kế cho việc sử dụng của con người

 Đặc tính: ít hoặc không theo qui tắc, dữ liệu thô, có sự trộn lẫn giữa các nội dung

 Thường được viết thủ công hay một vài các chuẩn khác như: RTF, PDF, hoặc SGML và rồi được chuyển sang XML

 Ví dụ: Sách, email, quảng cáo, và hầu hết các tài liệu được viết bằng XHTML

Document – Centric Documents

Trang 20

21/10/14 Cơ sở dữ liệu XML 20

=> Trong thực tế khó có thể phân biệt được giữa data và document – centric documents.

- Cần lưu dữ liệu dạng dữ liệu bình thường -> CSDL truyền thống: CSDL quan hệ, CSDL hướng đối tượng, CSDL phân cấp

- Cần lưu trữ dữ liệu dạng tài liệu -> CSDL thuần XML hoặc một hệ thống quản lý văn bản

Trang 21

 Sử dụng hệ thống file:

- Không hỗ trợ cho việc liên kết các thành phần của cấu trúc cây => việc lưu trữ những liên kết về cấu trúc và ngữ nghĩa của nó rất phức tạp

- Không thể thực thi được những yêu cầu rút trích dữ liệu phức tạp

=> Việc lưu trữ dữ liệu trên XML là không hiệu quả.

 Sử dụng CSDL quan hệ:

- Csdl quan hệ xây dựng dựa trên cấu trúc bảng -> không phù hợp cho cấu trúc phân cấp và kết nối tự nhiên trong nội dung của XML

Đánh giá các kiểu cơ sơ dữ liệu

lưu trữ dữ liệu XML

Trang 22

21/10/14 Cơ sở dữ liệu XML 22

Đánh giá các kiểu cơ sở dữ liệu lưu trữ dữ liệu XML

- Cố gắng lưu trữ trong CSDL quan hệ cho phù hợp bằng các bảng dữ liệu và các mối quan hệ => phá vỡ cấu trúc đối tượng và ngữ nghĩa của XML, phải chịu sự trùng lắp trong thiết kế dữ liệu,…

- Không hỗ trợ lock ở mức lược đồ, đối tượng chỉ hỗ trợ lock ở mức dòng => truy xuất đồng thời và theo bậc thang sẽ gặp khó khăn.

Trang 23

Đánh giá các kiểu cơ sở dữ liệu lưu

trữ dữ liệu XML

cầu phức tạp của cấu trúc XML đưa ra.

=> CSDL quan hệ là lựa chọn thông minh trong nhiều ứng dụng khác, nhưng nó không phù hợp và không hiệu quả cho việc lưu trữ dữ liệu phân cấp của XML.

Trang 24

21/10/14 Cơ sở dữ liệu XML 24

Đánh giá các kiểu cơ sở dữ liệu lưu trữ dữ liệu XML

 CSDL hướng đối tượng

- Được thiết kế bằng các chuẩn riêng của chúng

- Các đối tượng chứa dữ liệu, phương thức, mối liên hệ

và các ngữ cảnh riêng của chúng => lý tưởng cho việc tạo và quản lý các cây phân cấp của XML.

Trang 25

Đánh giá các kiểu cơ sở dữ liệu lưu trữ dữ liệu XML

- Mô hình csdl đối tượng có định hướng phân cấp và có chứa các liên kết theo chiều ngang => giảm sự tính toán

và tăng khả năng thực hiện

- Được thiết kế một cách mềm dẻo, quản lý lock tốt => giải quyết đụng độ khi có nhiều người sử dụng truy cập tốt.

=> CSDL đối tượng phù hợp trong việc lưu trữ dữ liệu XML

Trang 26

21/10/14 Cơ sở dữ liệu XML 26

Đánh giá các kiểu cơ sở dữ liệu lưu trữ dữ liệu XML

 Một Kho lưu trữ dữ liệu XML lý tưởng phải đáp ứng:

- Các yêu cầu của XML cũng như các yêu cầu của ứng dụng kết hợp với nó

- Tích hợp vừa vẹn với cấu trúc cây của XML, quản lý các đường liên kết bên trong, import/export dữ liệu, đưa nội dung lên web.

- Hỗ trợ cho NNLT Hướng đối tượng cũng như các ngôn ngữ kịch bản khác.

Trang 27

XML DTD

 DTD là gì?

 Cách khai báo một DTD

 Cách khai báo DTD elements

 Cách khai báo DTD attributes

 Cách khai báo DTD entities

 Kiểm tra một DTD hợp lệ

 Một số ví dụ về DTD

Trang 28

21/10/14 Cơ sở dữ liệu XML 28

DTD là gì?

 DTD – Document Type Defination

 DTD tập hợp các qui tắc định nghĩa cho các elements và attributes trong tài liệu XML.

 DTD định nghĩa một chuẩn riêng cho tài liệu XML phục vụ cho việc trao đổi dữ liệu

 Dùng DTD để kiểm tra lại dữ liệu được lấy từ bên ngoài có hơp lệ hay không

 DTD có thể được khai báo bên trong hoặc bên ngoài tài liệu XML

Trang 29

Khai báo DTD bên trong tài liệu XML

<!DOCTYPE root-element [element-declarations]>

<?xml version="1.0"?>

<!DOCTYPE note [ <!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

Trang 30

21/10/14 Cơ sở dữ liệu XML 30

Khai báo DTD bên ngoài tài liệu XML

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

Trang 31

DTD Elements

<!ELEMENT element-name category> hoặc

<!ELEMENT element-name (element-content)>

<!ELEMENT element-name EMPTY>

Trang 32

21/10/14 Cơ sở dữ liệu XML 32

<!ELEMENT element-name ANY>Ví dụ:

<!ELEMENT note ANY>

DTD Elements (tt)

<!ELEMENT element-name (child-element-name)> hoặc

<!ELEMENT element-name (child-element-name,child-element-name, )>

Ví dụ:

<!ELEMENT note (to,from,heading,body)>

<!ELEMENT to (#PCDATA)>

<!ELEMENT from (#PCDATA)>

<!ELEMENT heading (#PCDATA)>

<!ELEMENT body (#PCDATA)>

Trang 33

 Khai báo element con xuất hiện một lần duy nhất trong element cha

 Khai báo element con không xuất hiện hoặc xuất hiện nhiều lần trong element cha.

<!ELEMENT element-name (child-name)>

Ví dụ:

<!ELEMENT note (message)>

DTD Element(tt)

<!ELEMENT element-name (child-name+)>

Ví dụ:<!ELEMENT note (message+)>

<!ELEMENT element-name (child-name*)>

Ví dụ:<!ELEMENT note (message*)>

Trang 34

21/10/14 Cơ sở dữ liệu XML 34

 Khai báo element con không xuất hiện hoặc xuất hiện một lần trong element cha

 Khai báo sự lựa chọn hoặc element này hoặc element khác

 Cách khai báo nội dung trộn lẫn

<!ELEMENT element-name (child-name?)>Ví dụ:

<!ELEMENT note (message?)>

Trang 35

Cách khai báo

<!ATTLIST element-name attribute-name attribute-type default-value>

ENTITIES Giá trị là một danh sách của các entity NOTATION Giá trị là tên của một chú thích

Giá trị là một giá trị định nghĩa lại một tài liệu

Giá trị Diễn giải

CDATA Giá trị là loại dữ liệu ký tự

(en1|en2| ) Giá trị phải nhận một kiểu giá trị từ danh sách liệt kê

ID Giá trị là kiểu duy nhất

IDREF Giá trị là ID của một element khác

Trang 36

21/10/14 Cơ sở dữ liệu XML 36

DTD Attributes(tt)

Giá trị Diễn giải

Value Giá trị mặc định của thuộc tính

#REQUIRED Giá trị thuộc tính phải nằm trong thành phần

#IMPLIED Giá trị thuộc tính không phải nằm trong thành phần

#FIXED value Giá trị thuộc tính không được chỉnh sửa.

Các giá trị default-value có thể nhận:

Cách khai báo giá trị mặc định của thuộc tính

+ Ví dụ DTD khai báo:

<!ELEMENT square EMPTY>

<!ATTLIST square width CDATA "0">

+ Nội dung thể hiện trên file XML hợp lệ:

<square width="100" />

Trang 37

DTD Attributes(tt)

Các khai báo với giá trị là #IMPLIED

Các khai báo với giá trị là #REQUIRED

<!ATTLIST contact fax CDATA #IMPLIED>

+ Nội dung file XML hợp lệ là:

<contact fax="555-667788" /> Hoặc:

<contact />

Trang 38

21/10/14 Cơ sở dữ liệu XML 38

DTD Attributes (tt)

Các khai báo với giá trị là #FIXED

+ Cách khai báo:

<!ATTLIST element-name attribute-name

attribute-type #FIXED "value"> + Ví dụ DTD định nghĩa:

<!ATTLIST sender company CDATA #FIXED "Microsoft">

Trang 39

<!ENTITY writer "Donald Duck.">

<!ENTITY copyright "Copyright W3Schools.">

+ File XML:

<author>&writer;&copyright;</author>

1 Cách khai báo các entities bên trong DTD

2 Cách khai báo các entities bên ngoài DTD

+Cú pháp: <!ENTITY entity-name SYSTEM "URI/URL">

Trang 40

21/10/14 Cơ sở dữ liệu XML 40

Kiểm tra sự hợp lệ của DTD

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")

Trang 41

Ví dụ về DTD

<!DOCTYPE TVSCHEDULE [

<!ELEMENT TVSCHEDULE (CHANNEL+)>

<!ELEMENT CHANNEL (BANNER,DAY+)>

<!ELEMENT BANNER (#PCDATA)>

<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>

<!ELEMENT HOLIDAY (#PCDATA)>

<!ELEMENT DATE (#PCDATA)>

<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>

<!ELEMENT TIME (#PCDATA)>

<!ELEMENT TITLE (#PCDATA)>

<!ELEMENT DESCRIPTION (#PCDATA)>

<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>

<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>

<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>

<!ATTLIST TITLE RATING CDATA #IMPLIED>

<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>

]>

Trang 42

21/10/14 Cơ sở dữ liệu XML 42

 Định nghĩa lược đồ XML

 Tại sao chọn lược đồ XML

 Các mô tả lược đồ

 Cách khai báo các elements trên lược đồ

 Cách khai báo các thuộc tính trên lược đồ

Trang 43

Một lược đồ XML định nghĩa:

 Định nghĩa các element có thể xuất hiện trong tài liệu

 Định nghĩa các thuộc tính có thể xuất hiện trong tài liệu

 Định nghĩa các element con của các element khác

 Định nghĩa thứ tự của các element con

 Định nghĩa số lượng của các element con.

 Định nghĩa một element rỗng hoặc có chứa dữ liệu text

 Định nghĩa kiểu dữ liệu cho các element và các thuộc tính

 Định nghĩa các giá trị mặc định và giá trị không được chỉnh sửa cho các element và các thuộc tính.

Định nghĩa lược đồ XML

Trang 44

21/10/14 Cơ sở dữ liệu XML 44

- Dễ dàng mô tả nội dung tài liệu

- Dễ dàng nhận biết tính đúng đắn của dữ liệu

- Dễ dàng làm việc với các dữ liệu từ một CSDL

- Dễ dàng đặt các ràng buộc cho dữ liệu

- Dễ dàng định nghĩa các dữ liệu mẫu

- Dễ dàng chuyển đổi giữa các kiểu dữ liệu với nhau

- Không phải học một ngôn ngữ mô tả khác

- Có thể sử dụng trình soạn thảo cho file XML để soạn cho các file lược đồ XML

- Có thể sử dụng bộ phân tích XML để phân tích file lược đồ

- Có thể xử lý lược đồ bằng XML DOM

- Có thể chuyển đổi lược đồ bằng XSLT

- Sử dụng lại lược đồ này cho lược đồ khác

- Xây dựng kiểu dữ liệu xuất phát từ kiểu dữ liệu chuẩn

- Tham chiếu phức tạp các lược đồ từ một tài liệu

Tại sao chọn lược đồ XML

Trang 45

Khai báo lược đồ XML

<?xml version="1.0"?

><note><to>Tove</to><from>Jani</from><heading>Reminder</headi ng><body>Don't forget me this weekend!</body>

</note>

Giả sử có file note.xml

Một lược đồ XML đơn giản note.xsd mô tả cho note.xml

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

Ngày đăng: 21/10/2014, 22:50

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm