III. Bố cục luận văn
1.3. Phân tích tài liệu XML theo DOM
1.3.1. Mô hình đối tƣợng tài liệu
Để 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. 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 (node), trên cây có thể chứa phần tử, dữ liệu, thuộc tính,… và các nút con khác. Cụ thể, trong mô hình XML có các loại nút:
Bảng 1. 2: Các loại nút trong mô hình XML
Nút Ý nghĩa
Element Phần tử XML
Attribute Thuộc tính XML
Text Dữ liệu text
CDATA section Phân đoạn CDATA
Entity reference Tham chiếu thực thể
Entity Thực thể
Processing Instruction Chỉ thị xử lý
Comment Chú thích
Document Tài liệu
Document Type Kiểu tư liệu
Document fragment Đoạn tài liệu
Notation Ghi chú
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 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 sau:
<?xml version="1.0" encoding="utf-8" ?> <Hocvien>
<HocvienID> 0001 </HocvienID> <LopID> TA01 </LopID> <TenHocVien>
Lê Thị Thu Trang
</TenHocVien> <GioiTinh> Nữ </GioiTinh> <NamSinh> 1984 </NamSinh> <DiaChi>
255 Trần Huy Liệu – Tp Nam Định
</DiaChi> <DienThoai>
0123660672
</DienThoai> </Hocvien>
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:
Hình 1. 2: Tài liệu XML được biểu diễn theo cấu trúc cây
1.3.2. Phân tích tài liệu XML theo mô hình đối tƣợng dữ liệu DOM
Theo W3C, định nghĩa tài liệu theo mô hình đối tượng dữ liệu 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 đối tượng dữ liệu 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 sau:
Bảng 1. 3: Các phương thức trong mô hình DOM
Phƣơng thức Ý nghĩa
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 đó
HocVien 0001 TA01 Nữ 1984 255 Trần Huy Liệu – Tp Nam Định 012366 0672 Lê Thị Thu Trang Hoc VienID LopID TenHoc Vien Gioi Tinh Nam Sinh Dia Chi Dien Thoai
nextChild Lấy nút con kế tiếp
lastChild Lấy nút con cuối cùng
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
1.4. Cơ sở dữ liệu quan hệ
Quan hệ: Là một bảng hai chiều bao gồm các cột và các dòng (gọi là bảng dữ liệu)
Thuộc tính dữ liệu: Là tên các cột của 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ệ. Cơ sở dữ liệu được hiểu theo cách định nghĩa kiểu kĩ thuật thì nó là một tập hợp thông tin có cấu trúc. Tuy nhiên, thuật ngữ này thường dùng trong công nghệ thông tin và nó thường được hiểu rõ hơn dưới dạng một tập hợp liên kết các dữ liệu, thường đủ lớn để lưu trên một thiết bị lưu trữ như đĩa hay băng. Dữ liệu này được duy trì dưới dạng một tập hợp các tập tin trong hệ điều hành hay được lưu trữ trong các hệ quản trị cơ sở dữ liệu.
Nói các khác Cơ sở dữ liệu là một tập hợp có cấu trúc của những dữ liệu có liên quan với nhau được lưu trữ trong máy tính.
Ví dụ: Quan hệ HocVien là một CSDL quan hệ
1.4.1. Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu. Cụ thể, các chương trình thuộc loại này hỗ trợ khả năng lưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một CSDL. Có rất nhiều loại hệ quản trị CSDL khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân cho đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính.
Tuy nhiên, đa số hệ quản trị CSDL đều có một đặc điểm chung là sử dụng ngôn ngữ truy vấn theo cấu trúc (SQL). Các hệ quản trị CSDL phổ biến được nhiều người biết đến là MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix,... Phần lớn các hệ quản trị CSDL kể trên hoạt động tốt trên nhiều hệ điều hành khác nhau như Linux, Unix và MacOS ngoại trừ SQL Server của Microsoft chỉ chạy trên hệ điều hành Windows [7].
* Ưu điểm của việc thiết kế hệ quản trị Cơ sở dữ liệu:
- Cho phép người sử dụng tạo ra và duy trì Cơ sở dữ liệu. - Cho phép định nghĩa, xây dựng và thao tác dữ liệu:
Định nghĩa một cơ sở dữ liệu là đặc tả các kiểu dữ liệu, các cấu trúc, các ràng buộc cho các dữ liệu sẽ được lưu trữ.
Xây dựng cơ sở dữ liệu là lưu trữ dữ liệu lên các phương tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.
Thao tác trên một cơ sở dữ liêu là quá trình truy vấn cơ sở dữ liệu để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu, tạo ra các báo cáo từ dữ liệu.
Hình 1. 3: Mô hình hệ quản trị cơ sở dữ liệu
1.4.2. Mô hình dữ liệu quan hệ
1.4.2.1. Định nghĩa quan hệ
Gọi RA1,.....,An là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1,...,n có miền giá trị tương ứng là Dom(Ai). Quan hệ trên tập thuộc tính RA1,.....,An là tập con của tích đề các:
Ai Dom An Dom
r ..... . Khi đó ta ký hiệu là: r(R) - quan hệ r trên tập thuộc tính R
Ví dụ: Cho quan hệ NHAN_VIEN với các thuộc tính như sau:
NHAN_VIEN (Hoten Namsinh Gioitinh)
(t1) Nguyễn Thị Lan 1981 Nữ (t2) Lê Anh Tuấn 1979 Nam
(t3) Lê Thị Thu Trang 1984 Nữ Mỗi cột là một thuộc tính: thuộc tính Hoten, Namsinh, Gioitinh
Mỗi hàng là một bộ : bộ t1, t2, t3
1.4.2.2. Định nghĩa khoá của quan hệ
Khoá của một quan hệ r trên tập thuộc tính RA1,.....,An là tập con
R
t2(K). Bất kỳ tập con thực sự K' K
nào đều không có tính chất đó. Tập K là siêu khoá của quan hệ r nếu K là một khoá của quan hệ r
1.4.3. Kiến trúc cơ sở dữ liệu 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 dữ liệu, 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 hơn bằng cụm từ “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 thuộc tính). 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à thuộc tính). 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) [4].
Ví dụ 1.5: Cho bảng dữ liệu về các học viên
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 của CSDL quan hệ.
Ví dụ 1.6: Cho cơ sở dữ liệu quanlyhv.mdb với các quan hệ và các liên kết, trong đó mỗi quan hệ là một bảng 2 chiều :
Bảng 1. 5: Cơ sở dữ liệu quản lý học viên
1.4.3.1. Định nghĩa miền giá trị
Miền giá trị: Là tập hợp các giá trị nguyên tử gắn với thuộc tính. Nó bao gồm các thông số như tên, kiểu dữ liệu, khuôn dạng và mô tả
Ví dụ: Tên: SDT_Hocvien
Kiểu dữ liệu: Chuỗi ký tự Khuôn dạng: xxx_xxxxxxx
Mô tả: miền giá trị số điện thoại của học viên
Miền giá trị của bảng quan hệ là miền xác định các giá trị của 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”.
1.4.3.2. Định nghĩa khung nhìn
Khung nhìn là một tập hợp các bảng dữ liệu đã tồn tạ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.
Ví dụ 1.7: Các View hạy các Query là các khung nhìn
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.
Có thể thực hiện truy vấn dữ liệu 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.
1.4.4. Ràng buộc toàn vẹn cơ sở dữ liệu 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.
1.4.4.1. Định nghĩa
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.
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.
1.4.4.2. Các yếu tố của ràng buộc toàn vẹn
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 hưởng và hành động cần phải có khi tính ràng buộc toàn vẹn bị vi phạm. 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, khóa ngoại.
- 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.
1.4.4.3. Chuẩn hóa một cơ sở dữ liệu 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.
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.
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à