1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tích hợp cơ sở dữ liệu quan hệ và XML

84 381 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 84
Dung lượng 2,63 MB

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

Nội dung

Từ đây dẫn đến nhu cầu cần trao đổi thông tin dữ liệu bên trong các hệ thống con, nội bộ hệ thống tin học này cũng xuất hiện những vấn đề là dữ liệu với các thành phần khác nhau, việc tr

Trang 1

Tôi xin trân trọng cảm ơn quý thầy, cô đã giảng dạy, truyền đạt những kiến thức và kinh nghiệm quý báu cho tôi trong suốt thời gian học tập, nghiên cứu chuyên ngành cao học Khoa học Máy tính tại Trường Đại học Công nghệ Thông tin và Truyền thông, Đại học Thái Nguyên khóa 2014-2016

Đặc biệt, tôi xin được bày tỏ lòng biết ơn sâu sắc đến PGS.TS Đoàn Văn Ban, người đã trực tiếp hướng dẫn, tận tình giúp đỡ tôi trong suốt thời gian thực hiện luận văn tốt nghiệp

Cuối cùng tôi xin được gửi lời cảm ơn thân thiết nhất đến các bạn bè, đồng nghiệp và gia đình là những người luôn gần gũi để động viên, chia sẻ trong

suốt thời gian học tập chương trình cao học

Thái Nguyên, tháng 06 năm 2016

Đỗ Trung Thành

Trang 2

PHẦN MỞ ĐẦU 1

1 Lý do chọn đề tài 1

2 Đối tượng và phạm vi nghiên cứu 2

3 Hướng nghiên cứu của đề tài 3

4 Phương pháp nghiên cứu 4

5 Ý nghĩa khoa học của đề tài 4

6 Bố cục của luận văn 6

CHƯƠNG 1 TỔNG QUAN VỀ CSDL VÀ XML 7

1.1 CSDL quan hệ 7

1.1.1 Khái niệm về CSDL và hệ quản trị CSDL 7

1.1.2 Kiến trúc CSDL quan hệ 8

1.1.3 Ràng buộc toàn vẹn CSDL quan hệ 10

1.1.4 Chuẩn hóa một CSDL quan hệ 11

1.2 XML (eXtensible Markup Language) 13

1.2.1 Các thành phần cơ bản của XML 16

1.2.2 Đặc tả cấu trúc dữ liệu XML 17

1.2.3 Phân tích tài liệu XML theo mô hình DOM 25

1.2.4 Tiếp cận, lưu trữ và xử lý dữ liệu XML 28

1.3 Kết luận chương 1 33

CHƯƠNG 2 TÍCH HỢP CSDL QUAN HỆ VÀ XML 35

2.1 Mối quan hệ giữa CSDL quan hệ và XML 35

2.1.1 Phi chuẩn các lược đồ quan hệ 36

Trang 3

2.2 Thuật toán đặc tả XML theo mô hình DOM và DataTabe 46

2.2.1 Đặc tả XML theo mô hình DataTable 47

2.2.2 Đặc tả XML theo mô hình DOM 49

2.2.2.1 Thuật toán đệ quy 49

2.2.2.2 Thuật toán sử dụng vòng lặp 51

2.2.2.3 Thuật toán sử dụng Dataset 54

2.3 Chuyển đổi CSDL quan hệ sang XML 55

2.4 Chuyển đổi XML sang CSDL quan hệ 57

2.5 Kết luận chương 2 58

CHƯƠNG 3 ỨNG DỤNG TÍCH HỢP CSDL VÀ XML 59

3.1 Cài đặt đặc tả dữ liệu XML theo mô hình DOM và DataTable 61

3.2 Cài đặt thuật toán chuyển đổi CSDL quan hệ sang dữ liệu XML 62 3.3 Cài đặt thuật toán chuyển đổi dữ liệu XML sang CSDL quan hệ 66 3.4 Cài đặt ứng dụng quản lý điểm với dữ liệu XML và một số hệ quản trị CSDL phổ biến 69

3.5 Cài đặt Website tin tức với dữ liệu XML, Sql Server và MySql 70

3.6 Kết luận chương 3 71

KẾT LUẬN 72

Trang 4

Bảng kiểu xếp chồng: Cascading Style Sheets

Địa chỉ định vị tài nguyên toàn cầu: Universal Resource Locator

Định danh tài nguyên trên Internet: Uniform Resource Identifier

Định nghĩa kiểu tài liệu: Document Type Definition

Mô hình đối tượng tài liệu: Document Object Model

Ngôn ngữ định dạng mở rộng: eXtensible Markup Language

Ngôn ngữ định dạng siêu văn bản: HyperText Markup Language

Ngôn ngữ định dạng siêu văn bản động: Dynamic HTML

Ngôn ngữ truy vấn có cấu trúc: Structured Query Language

Trang 6

1NF: First Normal Form

2NF: Second Normal Form

3NF: Third Normal Form

API: Application Program Interface

ASP: Active Server Pages

BCNF: Boyce Codd Normal Form

CSDL: Cơ sở dữ liệu

CSS: Cascading Style Sheets

DHTML: Dynamic HyperText Markup Language

DOM: Document Object Model

DTD: Document Type Definition

GML: Geography Markup Language

HTML: HyperText Markup Language

LAN: Local Area Network

ODBC: Open Database Connectivity

PHP: Personal Home Page

RDF: Resource Description Framework

RSS: Really Simple Syndication

SGML: Standard Generalized Markup Language

SQL: Structured Query Language

Trang 7

W3C: World Wide Web Consortium

WAN: Wide Area Network

XHTML: Extensible HyperText Markup Language

XML: eXtensible Markup Language

MS: Microsoft

LinQ Language-Integrated Query

Trang 8

Hình 1.1 Sơ đồ quan hệ giữa các dạng chuẩn 13

Hình 1.2 Cấu trúc tài liệu XML 18

Hình 1.3 Các kiểu dữ liệu trong Schema (Schema Datatypes) 22

Hình 1.4 Tài liệu XML được biểu diễn theo cấu trúc cây 27

Hình 2.1: Các mức so sánh giữa mô hình quan hệ và XML 35

Hình 2.2 Sơ đồ thực thể liên kết 1-1 36

Hình 2.3 Chuẩn hóa các lược đồ quan hệ 1-1 37

Hình 2.4 Phi chuẩn quan hệ 1-1 37

Hình 2.5 Sơ đồ thực thể liên kết N-N 38

Hình 2.6 Chuẩn hóa các lược đồ quan hệ N-N 38

Hình 2.7 Phi chuẩn lược đồ quan hệ N-N 38

Hình 2.8 Sơ đồ thực thể liên kết 1-N 39

Hình 2.9 Chuẩn hóa các lược đồ quan hệ 1-N 39

Hình 2.10 Phi chuẩn các lược đồ quan hệ 1-N 40

Hình 2.11 Các bảng của CSDL quan hệ 41

Hình 2.12 Kết quả sau khi thực hiện câu lệnh Sql 41

Hình 2.13 Những ánh xạ cơ bản từ CSDL quan hệ thành tài liệu XML 42 Hình 2.14 Ánh xạ một CSDL quan hệ thành tài liệu XML 43

Hình 2.15 Sơ đồ ánh xạ một CSDL quan hệ thành tài liệu XML 44

Hình 2.16 Sơ đồ ánh xạ từ tài liệu XML thành CSDL quan hệ 45

Hình 2.17 Ánh xạ tài liệu XML sang CSDL quan hệ 46

Hình 2.18 Mô hình XML ở dạng bảng và dạng cây 46

Trang 9

Hình 3.4 Đặc tả dữ liệu XML theo 3 thuật toán đã trình bày 62

Hình 3.5 Chuyển đổi dữ liệu Sql Server sang XML 63

Hình 3.6 Chuyển đổi dữ liệu MySql sang XML 64

Hình 3.7 Chuyển đổi dữ liệu MS Access sang XML 65

Hình 3.8 Chuyển đổi dữ liệu VS Foxpro sang XML 65

Hình 3.9 Chuyển đổi XML sang Sql Server 66

Hình 3.10 Chuyển đổi XML sang MySql 67

Hình 3.11 Chuyển đổi XML sang MS Access 68

Hình 3.12 Chuyển đổi XML sang VS Foxpro 69

Trang 10

Bảng 1.1 Dữ liệu về sinh viên 8

Bảng 1.2 Tham chiếu thực thể trong XML 19

Bảng 1.3: Các loại nút trong mô hình XML 26

Bảng 1.4: Các phương thức trong mô hình DOM 28

Trang 11

PHẦN MỞ ĐẦU

1 Lý do chọn đề tài

Ngày nay, công nghệ thông tin đã và đang được ứng dụng rộng rãi trong mọi lĩnh vực của đời sống xã hội Cùng với sự phát triển đó nhu cầu trao đổi thông tin là một nhu cầu không thể thiếu trong nội bộ các hệ thống tin học cũng như giữa các hệ thống tin học với nhau

Các hệ thống tin học ngày nay có sự phát triển vượt bậc về quy mô, độ phức tạp cao, phạm vi sử dụng ngày càng lớn dẫn đến nhu cầu cần phải phân rã

hệ thống, việc xử lý dữ liệu cần được phân cấp thành nhiều tầng, mỗi hệ thống tin học cần được xây dựng thành các hệ thống con Từ đây dẫn đến nhu cầu cần trao đổi thông tin dữ liệu bên trong các hệ thống con, nội bộ hệ thống tin học này cũng xuất hiện những vấn đề là dữ liệu với các thành phần khác nhau, việc trao đổi dữ liệu giữa các hệ thống con cũng gặp phải không ít khó khăn

Xuất phát từ thực tiễn, các hệ thống tin học ngày càng có yêu cầu cao về chất lượng, khả năng đáp ứng nhanh,… dẫn đến nhu cầu cần phải nâng cấp hệ thống cũ lên hệ thống mới Khi đó, một lượng lớn dữ liệu cần được chuyển đổi sang hệ thống mới Trong quá trình chuyển đổi, dữ liệu không tương thích thường bị mất mát thông tin

Sự phát triển mạnh mẽ, sôi động của Internet và các ứng dụng trên Web, đặc biệt là các ứng dụng trong thương mại điện tử Nhu cầu về trao đổi thông tin giữa các ứng dụng trong lĩnh vực này là rất lớn

Cơ sở dữ liệu (CSDL) trong ngành công nghệ thông tin ngày nay rất đa dạng với nhiều kiểu định dạng khác nhau, chẳng hạn như MySql, Oracle, PostgreSql, Sql Server, DB2, Infomix, Microsoft Access, Visual Foxpro,… các loại dữ liệu này đều có sự khác nhau về định dạng, lưu trữ, truy xuất và xử lý

Do đó, việc trao đổi dữ liệu giữa các hệ thống như vậy sẽ tiêu tốn rất nhiều thời

Trang 12

gian của các nhà phát triển, hạn chế đến tốc độ xử lý của ứng dụng,…

Nhu cầu cần xây dựng một hệ thống thông tin được tích hợp từ nhiều CSDL khác nhau ngày càng trở nên phổ biến Dữ liệu được truy xuất từ những CSDL này được tích hợp lại để xử lý và cung cấp thông tin cho người dùng, sau

đó lại được lưu vào những CSDL tương ứng theo yêu cầu Những dữ liệu cần tích hợp với nhau không phải là toàn bộ các bảng dữ liệu mà là những dữ liệu cần trích xuất theo yêu cầu Để thực hiện việc điều này thì các dữ liệu từ nhiều

mô hình khác nhau phải được chuyển về cùng một mô hình và sau khi xử lý, chúng lại phải chuyển về mô hình của dữ liệu gốc Do vậy, việc chuyển đổi các CSDL quan hệ sang XML và ngược lại đóng vai trò quan trọng trong các mô hình tích hợp này

Ngoài việc làm trung gian trong chuyển đổi dữ liệu, XML còn có ứng dụng trong việc lưu trữ thông tin, việc sử dụng tập tin XML cũng mang lại giá trị cao trong thực tiễn vì những ứng dụng sử dụng XML không cần sự hỗ trợ của các hệ quản trị CSDL Vì vậy, việc xây dựng ứng dụng với dữ liệu XML đã và đang được các nhà phát triển quan tâm và triển khai xây dựng khá rộng rãi, đặc biệt nó đã và đang được sử dụng làm dữ liệu không chỉ trên môi trường Desktop hay môi trường Web mà dữ liệu XML đã và đang là dữ liệu được sử dụng rất nhiều trên môi trường cảm ứng của điện thoại di động và máy tính bảng

2 Đối tượng và phạm vi nghiên cứu

a) Đối tượng nghiên cứu

- Một số hệ quản trị CSDL quan hệ phổ biến trong thực tế Cụ thể là MySql, MS Access, Sql Server, VS Foxpro

- Cách đặc tả, tiếp cận, xử lý dữ liệu XML

- Các thuật toán chuyển đổi CSDL quan hệ sang XML và ngược lại

Trang 13

- Các dữ liệu dạng Text, và số, logic, datetime, Không nghiên cứu về dữ

liệu đa phương tiện khác như hình ảnh, âm thanh, video,…

- Lý thuyết về CSDL quan hệ; các thuật toán chuyển đổi CSDL quan hệ

và XML với công nghệ Net 4.0 trở lên, ngôn ngữ lập trình C#

- Phân tích, đặc tả, tiếp cận và xử lý dữ liệu XML và một số hệ quản trị CSDL như Sql Server, Access, MySqlbằng ngôn ngữ C#

3 Hướng nghiên cứu của đề tài

a) Về lý thuyết:

- Lý thuyết về CSDL quan hệ, một số hệ quản trị CSDL phổ biến, cụ thể

là Sql Server, MySql, MS Access và Visual Foxpro

- Các phương pháp phân tích, đặc tả, tiếp cận và xử lý dữ liệu XML

- Các thuật toán chuyển đổi giữa CSDL quan hệ và XML

b) Về thực nghiệm:

- Nghiên cứu công cụ lập trình Visual Studio với công nghệ Net 4.0 trở lên và ngôn ngữ lập trình C#

- Xây dựng ứng dụng phân tích, đặc tả dữ liệu XML dưới dạng DataTable

và mô hình DOM (Cụ thể là hiển thị dữ liệu XML lên DataGridView và TreeView)

- Xây dựng công cụ chuyển đổi một số CSDL quan hệ sang XML và ngược lại từ XML sang một số CSDL quan hệ phổ biến này

- Xây dựng Demo ứng dụng trên Windows Form và Asp.Net với việc sử dụng dữ liệu XML

Trang 14

4 Phương pháp nghiên cứu

- Nghiên cứu các vấn đề cơ sở các nội dung nêu trên thông qua các tài liệu, sách, các bài báo, thông tin trên Internet và các tài liệu liên quan

- Phân tích, tổng hợp lý thuyết và xây dựng các thuật toán phân tích, đặc

tả tài liệu XML; các thuật toán chuyển đổi CSDL quan hệ sang XML và ngược lại trên môi trường Asp.Net và môi trường Windows Form với ngôn ngữ C#

- Nghiên cứu ứng dụng ngôn ngữ C# trong môi trường ASP.NET và Windows Form để triển khai xây dựng ứng dụng demo quản lý điểm trên một số CSDL quan hệ phổ biến cũng như trên tài liệu XML

5 Ý nghĩa khoa học của đề tài

Chuyển đổi CSDL quan hệ sang XML và ngược lại giữ một vai trò quan trọng Việc nghiên cứu, xây dựng thuật toán chuyển đổi CSDL quan hệ sang XML và ngược lại là việc làm cần thiết, thực hiện tốt các thuật toán này sẽ mang lại giá trị cao trong thực tiễn ngành Công nghệ Thông tin trong giai đoạn hiện nay

XML đã và đang được sử dụng rộng rãi trong thực tế, đặc biệt với sự phát triển sôi động, mạnh mẽ của công nghệ cảm ứng trên điện thoại di động và máy tính bảng (dữ liệu XML được ứng dụng nhiều trong lĩnh vực này do lợi thế việc

sử dụng, tiếp cận, xử lý và lưu trữ dữ liệu XML không cần đến các hệ quản trị CSDL) Chính vì vậy, việc xây dựng và phát triển các ứng dụng với dữ liệu XML đã và đang giữ một vai trò quan trọng Việc khai thác các phương pháp tiếp cận, lưu trữ, xử lý tốt dữ liệu XML cũng sẽ mang lại nhiều lợi ích cho các

hệ thống thông tin trong bối cảnh ngành Công nghệ Thông tin trong giai đoạn hiện nay

Mô hình tích hợp nhiều hệ quản trị CSDL quan hệ khác nhau cùng hoạt

Trang 15

lại giữa các CSDL quan hệ thông qua XML hoặc trích xuất dữ liệu theo yêu cầu của người sử dụng dưới dạng XML sẽ giữ một vai trò quan trọng của hệ thống này

Trang 16

6 Bố cục của luận văn

Đề tài “Tích hợp CSDL quan hệ và XML” gồm các nội dung nghiên cứu chính với bố cục như sau:

CHƯƠNG 3 ỨNG DỤNG TÍCH HỢP CSDL VÀ XML

Cài đặt các thuật toán, phương pháp xử lý dữ liệu XML trên cơ sở chương

1 và chương 2 đã trình bày; cài đặt ứng dụng quản lý điểm (trên môi trường Windows Form và Asp.Net), Website tin tức (trên môi trường Asp.Net và PHP) với dữ liệu XML và một số hệ quản trị CSDL phổ biến như Sql Server, MySql,

MS Access

Trang 17

CHƯƠNG 1 TỔNG QUAN VỀ CSDL VÀ XML 1.1 CSDL quan hệ

1.1.1 Khái niệm về CSDL và hệ quản trị CSDL

a) Cơ sở dữ liệu (CSDL)

Cơ sở dữ liệu được xác định như là một bộ sưu tập các dữ liệu có liên quan logic với nhau; nó được tổ chức, sắp xếp theo một cách nào đó và được các

hệ ứng dụng của một đơn vị/cơ quan cụ thể nào đó sử dụng[5]

Ví dụ: một CSDL quản lý điểm của một trường có thể chứa các dữ liệu về sinh viên(bao gồm các khoản dữ liệu như tên sinh viên, ngày sinh, giới tính, dân tộc, quê quán,…), các dữ liệu về điểm của sinh viên (bao gồm các khoản dữ liệu như điểm thi lần 1, điểm thi lần 2, …)

CSDL thường được sử dụng với những ứng dụng cài đặt riêng lẻ trong máy tính cá nhân, hoặc dưới dạng một CSDL tập trung trên mạng LAN, hoặc dưới dạng một CSDL phân tán trên mạng WAN

Các thành phần của môi trường sử dụng CSDL bao gồm:

Trang 18

Hiện nay, chúng ta thường gặp các hệ quản trị CSDL cỡ vừa và nhỏ như Foxpro, Access, cỡ lớn như Sql Server, Oracle

1.1.2 Kiến trúc CSDL 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, 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 là các “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 đồ 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 đặt tên duy nhất (gọi là trường) Mỗi dòng trong bộ ứng với một bảng tương ứng với một bộ của quan hệ, một 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) [5]

Ví dụ 1.1.Cho bảng dữ liệu về sinh viên

Trang 19

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

a) Khái niệm 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ỉ có giá trị đơn trị Nếu miền giá trị nhận giá trị là đa trị 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 độ 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”

b) Khung nhìn

Khung nhìn là một bảng tạm thời, có cấu trúc như một bảng, khung nhìn không lưu trữ dữ liệu mà nó được tạo ra khi sử dụng, khung nhìn là đối tượng thuộc CSDL

Khung nhìn được tạo ra từ câu lệnh truy vấn dữ liệu (lệnh SELECT), truy vấn từ một hoặc nhiều bảng dữ liệu Khung nhìn được sử dụng khai thác dữ liệu như một bảng dữ liệu, chia sẻ nhiều người dùng, an toàn trong khai thác, không ảnh hưởng dữ liệu gốc

Trang 20

Có thể thực hiện truy vấn dữ liệu dựa trên cấu trúc của khung nhìn Như vậy, một khung nhìn trông giống như một bảng với một tên khung nhìn và là một tập bao gồm các dòng và các cột Điểm khác biệt giữa khung nhìn và bảng

là khung nhìn không được xem là một cấu trúc lưu trữ dữ liệu tồn tại trong cơ sở

dữ liệu Thực chất dữ liệu quan sát được trong khung nhìn được lấy từ các bảng thông qua câu lệnh truy vấn dữ liệu Ví dụ như trong CSDL Sql Server ta có thể thấy các Views là sự thể hiện các khung nhìn rõ ràng nhất về vấn đề này

1.1.3 Ràng buộc toàn vẹn CSDL 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

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 [1]

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 được áp đặt trên các đối tượng của thế giới thực

Khi xác định một ràng buộc toàn vẹn cần nêu rõ các yếu tố sau:

- Đ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

Trang 21

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 phụ thuộc hàm và cụ thể là dựa trên ràng buộc khóa

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 chính (primary key): ràng buộc không cho phép có hai giá trị giống 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

Khóa duy nhất (unique key): Ràng buộc không cho phép có hai giá trị giống hệt trên cột hoặc tập các cột được định nghĩa bởi mệnh đề dạng này

1.1.4 Chuẩn hóa một CSDL quan hệ

Chuẩn hóa một cơ sở dữ liệu quan hệ là một công việc rất cần thiết trong thực tế vì nhờ việc chuẩn hóa này mà chúng ta có thể loại bỏ được tối đa sự dư thừa thông tin, dữ liệu dư thừa không cần thiết là 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à phải biến đổi, đưa các lược đồ quan hệ

về một trong các dạng chuẩn: 1NF, 2NF, 3NF, BCNF [1]

Chuẩn 1NF: Một lược đồ quan hệ ở dạng chuẩn 1NF nếu toàn bộ các

thuộc tính của mọi bộ đều mang giá trị đơn Tức nó chỉ chứa các giá trị nguyên

tố không phân chia nhỏ được nữa

Trang 22

Chuẩn 2NF:Một lược đồ quan hệ ở dạng chuẩn 2NF thì nó phải đạt

chuẩn 1NF và mọi thuộc tính không khóa của lược đồ quan hệ đều phụ thuộc đầ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)

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 lược đồ 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 lược đồ quan hệ chưa ở dạng chuẩn 3NF thì phải 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 trong quan hệ thì tiến hành tách quan hệ hiện đó 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ứ 2 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 3NF hay chưa, nếu chưa thì lặp lại hai bước trên cho đến khi nó là 3NF

Chuẩn BCNF: Một lược đồ quan hệ ở dạng chuẩn BCNF nếu mọi phụ

thuộc hàm X→A  F+ với A  X đều có X là siêu khóa

Trang 23

Nhận xét: Các lớp dạng chuẩn của một lược đồ quan hệ có quan hệ lồng

vào nhau Nghĩa là, lớp sau nằm gọn trong lớp trước: BCNF  3NF  2NF  1NF

Hình 1.1 Sơ đồ quan hệ giữa các dạng chuẩn

1.2 XML (eXtensible Markup Language)

XML là một tập con của SGML (Standard Generalized Markup Language) [10], trong đó, SGML là một hệ thống tổ chức và gắn thẻ yếu tố của một tài liệu SGML được phát triển và tiêu chuẩn hóa bởi Tổ chức Tiêu chuẩn quốc tế (ISO) vào năm 1986 SGML chính nó không chỉ định bất kỳ đặc biệt là định dạng mà nó quy định cụ thể các quy tắc cho các yếu tố gắn thẻ Các thẻ sau

đó có thể được giải thích để các yếu tố định dạng theo nhiều cách khác nhau SGML được sử dụng rộng rãi để quản lý các văn bản lớn mà có thể bản sửa đổi thường xuyên và cần phải được in trong các định dạng khác nhau Bởi vì nó là một hệ thống lớn và phức tạp, đó là chưa sử dụng rộng rãi trên máy tính cá nhân.Tuy nhiên, sự phát triển của Internet, và đặc biệt là World Wide Web, đang tạo ra đổi mới quan tâm đến SGML vì World Wide Web sử dụng HTML, mà là một cách để xác định và thông dịch thẻ theo các quy tắc SGML

Vào giữa những năm 90 của thế kỷ XX, các chuyên gia SGML đã có kinh nghiệm với World Wide Web (vẫn còn khá mới vào thời đó) tin tưởng rằng SGML có thể cung cấp giải pháp cho vấn đề mà Web đang gặp phải Jon Bosak

B

Trang 24

đưa ra ý kiến W3C nên tài trợ cho một chương trình mang tên “SGML trên Web” Sau thời gian này một tập con của SGML ra đời mang tên XML

XLM (viết tắt từ tiếng Anh eXtensible Markup Language, “Ngôn ngữ đánh dấu mở rộng”) là ngôn ngữ đánh dấu với mục đích chung do W3C đề nghị

để tạo ra các ngôn ngữ đánh dấu khác Đây là một tập con đơn giản của SGML,

có khả năng mô tả nhiều loại dữ liệu khác nhau Mục đích chính của XML là đơ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 Các ngôn ngữ dựa trên XML (chẳng hạn như: RDF, RSS, MathML, XHTML, SVG, GML và cXML) được định nghĩa theo cách thông thường, cho phép các chương trình sửa đổi và kiểm tra hợp lệ bằng các ngôn ngữ này mà không cần có hiểu biết trước về hình thức của chúng

XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và

áp dụng một cấu trúc kiểu cây cho thông tin đó Tại mức văn bản, mọi thông tin đều thể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm

vụ ký hiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu

ký tự, các phần tử dùng để chứa dữ liệu và các thuộc tính của phần tử đó

Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character Set (Bộ ký tự toàn cầu) Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạo thành một tài liệu XML Tài liệu này bao gồm nhiều thực thể (Entity), mỗi thực thể thường là một phần tử nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng một chuỗi các bit và lưu trữ trong một tệp văn bản (text file)

Trước XML, có rất ít ngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet, dễ học và dễ tạo Thực tế, đa số các định dạng trao đổi dữ liệu trước đó đều chuyên dụng, có tính độc quyền và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự), khó dùng chung giữa các ứng dụng

Trang 25

phần mềm khác nhau hay giữa các hệ nền (platform) khác nhau Việc tạo ra và bảo trì trên các trình soạn thảo thông dụng lại càng khó khăn

Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép và ý nghĩa của các phần tử cùng cuộc tính của chúng XML có tính chất mở và có thể được định nghĩa bởi một giản đồ có thể tùy biến được

Giống như HTML, XML cũng dùng các thẻ (Tags) để encodes data (mã hóa dữ liệu) Điểm khác biệt chính giữa HTML và XML là trong khi các thẻ của HTML chứa ý nghĩa về cách trình bày dữ liệu thì các thẻ của XML chứa ý nghĩa

về cấu trúc của các dữ liệu Chính vì vậy, một tài liệu HTML có thể tồn tại một

số thẻ không đúng quy định thì trình biên dịch sẽ bỏ qua những thẻ này, với tài liệu XML thì điều này không thể xảy ra Khi xây dựng một tài liệu XML phải tuân thủ theo một số quy luật nhất định

XML thuộc loại công nghệ biểu diễn thông tin Công nghệ biểu diễn thông tin là ngành khoa học nghiên cứu về các mô hình, phương pháp, kỹ thuật biểu diễn thông tin Các mô hình chính trong công nghệ biểu diễn thông tin bao gồm:

- Tập tin (File) : Thông tin lưu trữ trên bộ nhớ phụ

- Cơ sở dữ liệu (Database) : Thông tin lưu trữ trên bộ nhớ phụ

- Cấu trúc dữ liệu (Data Structure) : Thông tin xử lý trong bộ nhớ chính

- Trang Web (WebPage) : Thông tin thể hiện

- Luồng dữ liệu (Data Stream) : Thông tin trao đổi nội bộ bên trong một

hệ thống tin học hay giửa các cáchệ thống tin học

Chính vì vậy mà phạm vi ứng dụng của các tài liệu XML không chỉ dừng

ở việc trao đổi thông tin mà bao hàm cả các vần đề biểu diễn thông tin khác như lưu trữ thông tin , cấu trúc dữ liệu , thể hiện thông tin , [2]

Trang 26

1.2.1 Các thành phần cơ bản của XML

a) Định dạng và dữ liệu ký tự

Trong tài liệu XML, định dạng giúp phân biệt các thành phần khác nhau trong tài liệu XML hay các nút khác nhau trong cây XML Định dạng bao gồm các thẻ bắt đầu, thẻ kết thúc, các phần tử thẻ rỗng,…Tất cả các dữ liệu còn lại trong tài liệu XML không phải là định dạng đều được xem là dữ liệu kí tự

b) Các khai báo trong thẻ XML

Khai báo thẻ XML là không bắt buộc trong tài liệu XML, nếu sử dụng khai báo thẻ XML thì khai báo này bắt buộc phải được đặt ở dòng đầu tiên của tài liệu XML theo cú pháp sau:<?xml [các thuộc tính của thẻ XML]?>

Trong đó [các thuộc tính của thẻ XML] gồm:

- Khai báo phiên bản (version): khai báo này cho biết phiên bản đặc tả XML mà tài liệu sử dụng (khai báo này là tùy chọn nhưng W3C khuyến cáonên

sử dụng khai báo này)

- Khai báo mã hóa (encoding): bộ mã được sử dụng trong tài liệu XML mặc định là UTF-8 Ngoài ra có thể sử dụng các bộ mã khác như Unicode, UCS-

2, USC-4, (khai báo này là tùy chọn)

- Khai báo thực thể độc lập (standalone): được đặt thuộc tính là ‘yes’ nếu tài liệu không tham chiếu đến các thực thể khác bên ngoài, ngược lại được đặt là

‘no’ (khai báo này là tùy chọn)

c) Phần chú thích

Chú thích trong tài liệu XML được đặt trong cặp kí tự <! Nội dung chú thích trong XML >

d) Chỉ thị xử lý

Trang 27

Các chỉ thị xử lý được dùng để chỉ dẫn cho bộ phân tích cách xử lý tài liệu XML trong qua trình phân tích Những chỉ thị này thường bắt đầu bằng dấu <? kết thúc cũng bằng dấu ?> Chẳng hạn, khi chỉ thị yêu cầu bộ phân tích kết hợp

dữ liệu của XML với bảng định kiểu CSS thì ta phải khai báo như sau: stylesheet?>

f) Thuộc tính

Thuộc tính luôn được gán giá trị là kiểu text, giá trị của thuộc tính phải đặt trong cặp dấu nháy kép “” Tuy nhiên, nếu giá trị chuỗi truyền cho thuộc tính có dấu nháy kép ta có thể sử dụng nháy đơn để thay thế

g) Không gian tên gọi

XML cho phép tự định nghĩa và đặt tên cho các thẻ Nếu tài liệu XML chỉ

sử dụng cho một mục đích nào đó và không cần phải kết hợp với các tài liệu XML khác thì điều này không cần thiết Nhưng một khi các ứng dụng phát triển, tập định nghĩa các thẻ XML cần chia sẻ và kết hợp với nhau thì đó là một vấn

đề cần phải quan tâm

1.2.2 Đặc tả cấu trúc dữ liệu XML

Một tài liệu XML có thể được chia thành 2 thành phần chính, mỗi thành phần có các quy định khác nhau

Trang 28

- Phần khởi đầu bao gồm các khai báo như: phiên bản sử dụng của XML, cách thức mã hóa dữ liệu, chỉ thị xử lý, định nghĩa kiểu tư liệu cho tài liệu XML, các chú thích, các khoảng trắng,… XML không bắt buộc phải khai báo phần mở đầu của tài liệu XML Tuy nhiên W3C khuyến khích chúng ta nên sử dụng phần khai báo này, ít nhất cũng phải có phần khai báo phiên bản sử dụng của XML

- Phần thân của tài liệu chứa nội dung của dữ liệu tối thiểu phải có ít nhất một thành phần, những thành phần này bao gồm các phần tử Mỗi phần tử bao gồm một cặp thẻ gồm thẻ bắt đầu và thẻ kết thúc, phần tử đầu tiên của tài liệu được coi là phần tử gốc, nó chứa tất cả các phần tử và các cặp thẻ khác

Hình 1.2 Cấu trúc tài liệu XML

a) Cấu trúc tài liệu XML hợp khuôn dạng

Một tài liệu XML được coi là một tài liệu hợp khuôn dạng nếu tuân theo các quy tắc sau:

- Các khai báo XML phải được đặt ở dòng đầu tiên của tài liệu Khai báo chỉ thị xử lý XML đầu tiên không bắt buộc, tuy nhiên nếu sử dụng thì phải đặt chúng ở ngay dòng đầu tiên của tài liệu Nếu không theo yêu cầu này thì tài liệu XML được xem là không hợp lệ

- Một tài liệu XML chỉ có duy nhất một phần tử gốc, các phần tử khác nếu có phải là con của phần tử gốc

- Mọi phần tử XML khác rỗng phải bao gồm đầy đủ thẻ đóng và thẻ mở

Phần mở đầu

Khai báo

Mô tả cấu trúc tài liệu XML

Phần nội dung

Trang 29

- Phần tử rỗng trong tài liệu XML là phần tử chỉ có một thẻ Dấu kết của phần tử rỗng phải là /> nếu không tài liệu sẽ được coi là không hợp khuôn dạng

- Mọi phần tử trong tài liệu XML khác phần tử gốc đều phải nằm giữa cặp thẻ gốc

- Các phần tử lồng nhau phải có thẻ đóng, thẻ mở tương ứng đúng vị trí

- Trong tài liệu XML, chỉ nên sử dụng 5 tham chiếu thực thể được định nghĩa trước Ở đây, một số kí tự nhận dạng đặc biệt như <, >, ‘, “, và & không thể sử dụng trong tài liệu theo cách thể hiện dữ liệu thông thường Muốn sử những kí hiệu này phải dùng tham chiếu thực thể đã được XML định nghĩa trước như bảng cho dưới đây:

Tham chiếu thực thể Ý nghĩa tương ứng

Bảng 1.2 Tham chiếu thực thể trong XML

- Sử dụng tên thuộc tính là duy nhất Các thẻ trong thuộc tính không được đặt cùng tên

- Tất cả các giá trị của thuộc tính đều phải nằm trong cặp dấu nháy kép (“) hoặc nháy đơn (‘)

- Chỉ nên sử dụng kí tự < và & đối với thẻ mở và các thực thể

b) Đặc tả cấu trúc XML với DTD (Document Type Definition)

DTD là một tập hợp các khai báo để mô tả ràng buộc các tài liệu được viết bằng ngôn ngữ đánh dấu như SGML, XML, HTML.DTD có thể được khai báo bên trong một tài liệu XML hoặc trong một tập tin bên ngoài.Với DTD, các

Trang 30

nhóm xây dựng hệ thống thông tin có thể thỏa thuận sử dụng một DTD tiêu chuẩn cho việc trao đổi dữ liệu.Các ứng dụng với XML có thể sử dụng một DTD tiêu chuẩn để xác định các kiểu dữ liệu được nhận từ bên ngoài vào là hợp lệ.Chúng ta có thể sử dụng DTD để kiểm tra dữ liệu XML của hệ thống

Ví dụ 1.2 Dữ liệu XML được tham chiếu bởi một file DTD từ bên ngoài như sau:

<?xmlversion="1.0"?>

<!DOCTYPEnote SYSTEM "note.dtd">

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

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

</note>

Nội dung file node.dtd:

<!ELEMENTnote(to,from,heading,body)>

<!ELEMENTto(#PCDATA)>

<!ELEMENTfrom(#PCDATA)>

<!ELEMENTheading(#PCDATA)>

<!ELEMENTbody(#PCDATA)>

- Nếu DTD được khai báo trong tập tin XML, nó phải được bao bọc bên trong thẻ<DOCTYPE!>:

Trang 31

<!DOCTYPEnote [

<!ELEMENTnote(to,from,heading,body)>

<!ELEMENTto(#PCDATA)>

<!ELEMENTfrom(#PCDATA)>

<!ELEMENTheading(#PCDATA)>

<!ELEMENTbody(#PCDATA)>

]>

<note>

<to>Tove</to>

<from>Jani</from>

<heading>Reminder</heading>

<body>Don't forget me this weekend</body>

</note>

Trong đó,các DTD ở trên được giải thích như sau:

! DOCTYPE xác định rằng các phần tử gốc của tài liệu này là node

! ELEMENT xác định rằng các phần tử của node phải có bốn yếu tố: "to, from, heading, body”

! ELEMENT xác định các yếu tố để trở thành loại "#PCDATA"

! ELEMENT từ định nghĩa các từ yếu tố để có kiểu "#PCDATA"

! ELEMENT đề xác định các yếu tố tiêu đề là các loại "#PCDATA"

! ELEMENT cơ thể xác định các yếu tố cơ thể là kiểu "#PCDATA"

c) Đặc tả cấu trúc XML với Schemma

Trang 32

Để mô tả dữ liệu trong một tài liệu XML, DTD được sử dụng rất phổ biến

vì tính đơn giản của nó Tuy nhiên đối với các tài liệu XML lớn và phức tạp, DTD bắt đầu bộc lộ nhiều hạn chế như: không hỗ trợ nhiều kiểu dữ liệu, không quy định được khoảng giá trị,… Để khắc phục những hạn chế đó của DTD, XML schema được tạo ra Cùng một mục đích với DTD là kiểm tra cấu trúc và tính đúng đắn của một tài liệu XML, vì ra đời sau XML Schema được kế thừa những thành công của DTD và mở rộng thêm một số tính năng để khắc phục những hạn chế của DTD XML Schema được phát triển trên nền tảng của DTD

và nổi trội hơn ở một số đặc điểm:

- Schema cũng là một dạng tài liệu theo chuẩn XML, do đó để mô tả cấu trúc của dữ liệu người dùng schema không cần phải làm quen với cấu trúc mới

- Schema có thể mở rộng, người dùng có thể định nghĩa thêm các kiểu dữ liệu riêng từ các kiểu dữ liệu chuẩn

Hình 1.3 Các kiểu dữ liệu trong Schema(Schema Datatypes)

Các kiểu dữ liệu có sẵn trong Schema bao gồm:

XML

Trang 33

- time: thời gian

Ví dụ 1.3 Chomột tài liệu XML như sau:

<?xmlversion="1.0"encoding="utf-8"standalone="yes"?>

<QuanLyDiem>

<xs:schemaid="QuanLyDiem"xmlns="http://www.w3school.com"xmlns:xs="http://www.w3.org/2001/XMLSchema"xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">

<xs:elementname="QuanLyDiem"msdata:IsDataSet="true"msdata:UseCurrentLocale="true">

<xs:complexType>

<xs:choiceminOccurs="0"maxOccurs="unbounded">

<xs:elementname="ThongTin">

<xs:complexType>

<xs:sequence>

<xs:elementname="tinh"type="xs:string"minOccurs=" " />

<xs:elementname="donViChuQuan"type="xs:string"minOccurs="0

" />

Trang 34

<xs:elementname="khoaHoc"type="xs:string"minOccurs="0" />

<xs:elementname="nganhHoc"type="xs:string"minOccurs="0" />

<xs:elementname="chuyenNganh"type="xs:string"minOccurs="0"/>

<tinh>Yên Bái</tinh>

<donViChuQuan>SỞ GD&ĐT YÊN BÁI</donViChuQuan>

<tenTruong>TRƯỜNG C.Đ.S.P YÊN BÁI</tenTruong>

<khoaHoc>2013-2016</khoaHoc>

<nganhHoc>Cao đẳng Tin học</nganhHoc>

<chuyenNganh>Tin ứng dụng</chuyenNganh>

</ThongTin>

</QuanLyDiem>

Trong đó, Một số nội dung cơ bản được giải thích như sau:

xmlns:xs=http://www.w3.org/2001/XMLSchema:Kiểu dữ liệu dùng trong schema được khai báo trong namespace trên với tiền tố xsd

xmlns="http://www.w3school.com":thể hiện rằngnamespace mặc định

là http://www.w3school.com

Trang 35

1.2.3 Phân tích tài liệu XML theo mô hình DOM

a) Mô hình đối tượng tài liệu XML

Để xử lý tài liệu XML, W3C định nghĩa tài liệu theo mô hình hướng đối tượng DOM (Document Object Model) Theo mô hình này tài liệu XML được tổ chức theo cấu trúc hình cây bao gồm các nút đối tượng, nội dung của mỗi nút (note), trên cây có thể chứa phần tử (element), dữ liệu (text), thuộc tính (attribute),… và các nút con khác Cụ thể, trong mô hình XML có các loại nút:

Attribute Thuộc tính XML

CDATA section Phân đoạn CDATA

Entity reference Tham chiếu thực thể

Processing Instruction Chỉ thị xử lý

Document Type Kiểu tư liệu

Document fragment Đoạn tài liệu

Trang 36

Notation Ghi chú

Bảng 1.3: Các loại nút trong mô hình XML

Mô hình DOM được W3C định nghĩa theo nhiều mức khác nhau, cụ thể là các mức sau:

Mức 0: đặc tả XML không chính thức và được áp dụng cho các trình

duyệt trước đây như Nestcape Navigator 3.0 và IE 3.0

Mức 1: Tập trung vào kết hợp giữa tài liệu XML và HTML

Mức 2: Hỗ trợ không gian tên gọi XML, khung nhìn có lọc (filtered

views) và các sự kiện DOM

Mức 3: Nâng cao các khả năng của DOM với việc cho phép nạp, xử lý,

lưu lại mô hình cho nội dung tài liệu

Ví dụ 1.4 Cho một tài liệu XML như sau:

<?xmlversion="1.0"encoding= utf-8"standalone="yes"?>

<SinhVien>

<maSV>131C14</maSV>

<hoTen>Trần Tuấn Anh</hoTen>

<ngaySinh>18/4/1994</ngaySinh>

<gioiTinh>Nam</gioiTinh>

<noiSinh>Văn Yên</noiSinh>

<danToc>Kinh</danToc>

<maLop>tin13a</maLop>

</SinhVien>

Theo mô hình DOM, tài liệu XML ở ví dụ trên được tổ chức lại theo cấu trúc cây, cụ thể như sau:

Trang 37

Hình 1.4 Tài liệu XML được biểu diễn theo cấu trúc cây

b) Phân tích tài liệu XML theo mô hình DOM

Theo W3C, định nghĩa tài liệu theo mô hình DOM cơ bản là giao diện trình ứng dụng API 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 Stdio.NET, C/C++,… Cho 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 dưới đây:

documentElement Lấy 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

Trang 38

firstSibling Lấy nút con cùng cấp đầu tiên

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.4: Các phương thức trong mô hình DOM

1.2.4 Tiếp cận, lưu trữ và xử lý dữ liệu XML

Trong khuôn khổ của đề tài, chúng ta tập trung đi sâu vào việc xử lý dữ liệu XML bằng ngôn ngữ lập trình chứ không nghiên cứu về cách hiển thị dữ liệu XML bằng CSS hay XSLT lên trình duyệt Website

XML ra đời từ năm 1996 và đã được W3C phê chuẩn XML trở thành một phần không thể thiếu trong các bộ công cụ lập trình hiện đại

XML có ba chức năng chính :

- Lưu trữ dữ liệu như là một phần bổ sung cho CSDL quan hệ

- Trao đổi thông tin trong một ứng dụng, giữa các ứng dụng và nhất là

trao đổi thông tin trên nền web

Trang 39

- Làm cầu nối trung gian để chuyển đổi dữ liệu giữa các hệ quản trị

CSDL

Đã có rất nhiều mô hình truy cập dữ liệu và truy vấn XML W3C đưa ra

mô hình DOM và ngôn ngữ truy vấn Xquery IBM đưa ra giải pháp hybrid database DB2 với hai ngôn ngữ truy vấn dữ liệu: Xquery cho dữ liệu dạng XML

và Sql cho dữ liệu quan hệ Xquery và ngôn ngữ lập trình Java là thế mạnh của lập trình cho CSDL DB2 và dữ liệu XML nói chung

Năm 2005 được xem như một mốc quan trọng của Microsoft khi xây dựng NET framework 3.5 và ngôn ngữ truy vấn tích hợp LINQ Đặc điểm quan trọng của LINQ là truy vấn dữ liệu dạng IEnumberable, dữ liệu quan hệ và dữ liệu XML Cách tiếp cận này được Oracle ủng hộ

Từ NET framework 3.5, LinQ được gắn liền với class XDocument LinQ gồm có 3 bộ phận:

- LinQ to object, truy vấn trên dữ liệu có thể triển khai dạng IEnumberable

- LinQ to SQL, truy vấn trên CSDL quan hệ, đặc biệt là Sql Server

- LinQ to XML, truy vấn trên CSDL phi quan hệ XML

Tuy ba bộ phận khác nhau, nhưng có cùng cú pháp và kiểu dữ liệu trả về Mỗi bộ phận được cài đặt trong cácName Space khác nhau

LinQ là từ viết tắt của Language-Integrated Query, do Anders Hejlsberg xây dựng Thường được gọi Microsoft Linq Với Linq, việc lập trình trên các kiểu dữ liệu Ienumerable, Sql Server, XML trở nên dễ dàng, trực quan, giải phóng các lao động cấp thấp của lập trình viên, tăng hiệu quả của quy trình xây dựng phần mềm.LinQ To XML có cấu trúc truy vấn tương tự SQL Nhà phát triển trung bình có thể viết các truy vấn ngắn gọn, mạnh mẽ, viết mã ít hơn

Trang 40

nhưng có ý nghĩa nhiều hơn,họ có thể sử dụng các biểu thức truy vấn từ nhiều

dữ liệu các lĩnh vực tại một thời điểm

LinQ to XML cũng giống như Document Object Model (DOM) ở chỗ có thể chuyển các tài liệu XML vào bộ nhớ, có thể truy vấn và sửa đổi các tài liệu Sau khi chỉnh sửa nó, có thể lưu vào một tập tin hoặc xuất nó ra Tuy nhiên, LinQ to XML khác DOM ở chỗ: cung cấp mô hình đối tượng mới đơn giản hơn

và dễ thao tác hơn để làm việc, đó là tận dụng các cải tiến ngôn ngữ trong Visual C#

Trong ví dụ dưới đây, chúng ta sẽ xem xét việc sử dụng LinQ To XML để thực hiện các thao tác truy vấn và xử lý dữ liệu Ở đây, ta sử dụng một tập tin XML đơn giản Dữ liệu có nút gốc là QuanLyDiem và trong nội dung bảng Lops có hai Elements là maLop và tenLop

<xs:elementname="QuanLyDiem"msdata:IsDataSet="true"msdata:UseCurrentLocale="true">

<xs:complexType>

<xs:choiceminOccurs="0"maxOccurs="unbounded">

<xs:elementname="Lops">

<xs:complexType>

<xs:sequence>

<xs:elementname="maLop"type="xs:string"minOccurs= 0" />

Ngày đăng: 09/12/2016, 01:08

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Kim Anh, Nguyên lý của các hệ cơ sở dữ liệu, Nhà xuất bản Đại học Quốc gia Hà Nội, 2009, in lần thứ 4 Sách, tạp chí
Tiêu đề: Nguyên lý của các hệ cơ sở dữ liệu
Nhà XB: Nhà xuất bản Đại học Quốc gia Hà Nội
[2] Nguyễn Thiên Bằng, Hoàng Đức Hải, Phương Lan, Giáo trình nhập môn XML, Nhà xuất bản Lao động-Xã hội, 2005 Sách, tạp chí
Tiêu đề: Giáo trình nhập môn XML
Nhà XB: Nhà xuất bản Lao động-Xã hội
[3] Nguyễn Xuân Huy, Lê Hoài Bắc, Bài tập Cơ sở dữ liệu, Nhà xuất bản Thông tin và Truyền thông, 2012, Hiệu đính và xuất bản lần thứ 6 Sách, tạp chí
Tiêu đề: Bài tập Cơ sở dữ liệu
Nhà XB: Nhà xuất bản Thông tin và Truyền thông
[4] Nguyễn Phương Lan, XML nền tảng và ứng dụng, Nhà xuất bản Lao động-Xã hội, 2003 Sách, tạp chí
Tiêu đề: XML nền tảng và ứng dụng
Nhà XB: Nhà xuất bản Lao động-Xã hội
[5] Lê Văn Phùng, Cơ sở dữ liệu quan hệ và Công nghệ phân tích-thiết kế, Nhà xuất bản Thông tin và Truyền thông, 2009 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu quan hệ và Công nghệ phân tích-thiết kế
Nhà XB: Nhà xuất bản Thông tin và Truyền thông
[6] Lê Văn Phùng, Kỹ thuật phân tích và thiết kế hệ thống thông tin hướng cấu trúc, Nhà xuất bản Thông tin và Truyền thông, 2014, tái bản lần 3 Sách, tạp chí
Tiêu đề: Kỹ thuật phân tích và thiết kế hệ thống thông tin hướng cấu trúc
Nhà XB: Nhà xuất bản Thông tin và Truyền thông
[7] Lê Văn Phùng, Kỹ nghệ phần mềm, Nhà xuất bản Thông tin và Truyền thông, 2014 Sách, tạp chí
Tiêu đề: Kỹ nghệ phần mềm
Nhà XB: Nhà xuất bản Thông tin và Truyền thông
[8] Nguyễn Tiến, Đặng Xuân Hường, Nguyễn Văn Hoài, Nguyễn Tuấn Ngọc, Nhập môn XML thực hành và ứng dụng, NXB Thống kê, 2001.B. Tiếng Anh Sách, tạp chí
Tiêu đề: Nhập môn XML thực hành và ứng dụng
Nhà XB: NXB Thống kê
[9] Ash Rofail and R. Allen Wyke, XML Programming (Core Reference), Published by Microsoft Corporation, 2002 Sách, tạp chí
Tiêu đề: XML Programming (Core Reference)
[10] Bhavani Thuraisingham, XML Databases and the Semantic Web, Published by CRC Press, 2002 Sách, tạp chí
Tiêu đề: XML Databases and the Semantic Web
[11] Bipin Joshi, Beginning XML with C# 2008: From Novice to Professional,Published by Apress, 2008 Sách, tạp chí
Tiêu đề: Beginning XML with C# 2008: From Novice to Professional
[12] David Hunter, Kurt Cagle, Chris Dix et al, Beginning XML, 2nd Edition: XML Schemas, SOAP, XSLT, DOM, and SAX 2.0, Published by Wrox Press Ltd, 2003 Sách, tạp chí
Tiêu đề: Beginning XML, 2nd Edition: XML Schemas, SOAP, XSLT, DOM, and SAX 2.0
[13] KevinWilliams, Michael Brundage, Patrick Dengler, Jeff Gabriel, Andy Hoskinson, Michael Kay, Thomas Maxwell, Marcelo Ochoa, Johnny Papa, Mohan Vanmane, Professional XML Databases, Published by Wrox Press Ltd, 2002 Sách, tạp chí
Tiêu đề: Professional XML Databases
[14] Mitch Amiano, Conrad D'Cruz, Kay Ethier, and Michael D. Thomas, XML Problem Design Solution (Programmer to Programmer), Wiley Publishing, Inc, 2006.C. Internet Sách, tạp chí
Tiêu đề: XML Problem Design Solution (Programmer to Programmer)

HÌNH ẢNH LIÊN QUAN

Hình 1.4. Tài liệu XML được biểu diễn theo cấu trúc cây - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 1.4. Tài liệu XML được biểu diễn theo cấu trúc cây (Trang 37)
Hình 2.5. Sơ đồ thực thể liên kếtN-N - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.5. Sơ đồ thực thể liên kếtN-N (Trang 48)
Hình 2.11. Các bảng của CSDL quan hệ - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.11. Các bảng của CSDL quan hệ (Trang 51)
Hình 2.14. Ánh xạ một CSDL quan hệ thành tài liệu XML - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.14. Ánh xạ một CSDL quan hệ thành tài liệu XML (Trang 53)
Hình 2.15. Sơ đồ ánh xạ một CSDL quan hệ thành tài liệu XML - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.15. Sơ đồ ánh xạ một CSDL quan hệ thành tài liệu XML (Trang 54)
Hình 2.16.Sơ đồ ánh xạ từ tài liệu XML thành CSDL quan hệ - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.16. Sơ đồ ánh xạ từ tài liệu XML thành CSDL quan hệ (Trang 55)
Hình 2.18. Mô hình XML ở dạng bảng và dạng cây - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 2.18. Mô hình XML ở dạng bảng và dạng cây (Trang 56)
Hình 3.2. Giao diện ứng dụng trên Windows Form - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.2. Giao diện ứng dụng trên Windows Form (Trang 70)
Hình 3.3. Đặc tả dữ liệu XML theo DOM và DataTabe - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.3. Đặc tả dữ liệu XML theo DOM và DataTabe (Trang 71)
Hình 3.5.Đặc tả dữ liệu XML theo 3 thuật toán đã trình bày - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.5. Đặc tả dữ liệu XML theo 3 thuật toán đã trình bày (Trang 72)
Hình 3.7. Chuyển đổi dữ liệu MySql sang XML - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.7. Chuyển đổi dữ liệu MySql sang XML (Trang 74)
Hình 3.8. Chuyển đổi dữ liệu MS Access sang XML - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.8. Chuyển đổi dữ liệu MS Access sang XML (Trang 75)
Hình 3.11. Chuyển đổi XML sang MySql - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.11. Chuyển đổi XML sang MySql (Trang 77)
Hình 3.13. Chuyển đổi XML sang VS Foxpro - Tích hợp cơ sở dữ liệu quan hệ và XML
Hình 3.13. Chuyển đổi XML sang VS Foxpro (Trang 79)

TỪ KHÓA LIÊN QUAN

w