Tải bản đầy đủ (.pdf) (65 trang)

Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1 MB, 65 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
----------------------DE---------------------Đào Văn Tâm

TRUY VẤN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
SỬ DỤNG BIỂU THỨC ĐƯỜNG DẪN

CHUYÊN NGHÀNH : CÔNG NGHỆ THÔNG TIN

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS. NGUYỄN KIM ANH

HÀ NỘI – Năm 2010


MỤC LỤC
LỜI CÁM ƠN ......................................................................................................4
LỜI CAM ĐOAN ................................................................................................5
Danh mục các ký hiệu, các chữ viết tắt.................................................................6
Danh mục hình vẽ..................................................................................................7
MỞ ĐẦU...................................................................................................................8
Chương 1 – TỔNG QUAN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG ................ 10
1.1. Cơ sở dữ liệu hướng đối tượng..................................................................... 12
1.2. Khái niệm cơ bản trong cơ sở dữ liệu hướng đối tượng .............................. 13
1.2.1. Định danh đối tượng ........................................................................................ 14
1.2.2. Thuộc tính đối tượng ....................................................................................... 15
1.2.3. Trạng thái đối tượng ........................................................................................ 15
1.2.4. Hành vi đối tượng ............................................................................................ 16
1.2.5. Lớp đối tượng .................................................................................................. 16


1.2.6. Đóng gói dữ liệu .............................................................................................. 16
1.2.7. Thừa kế ............................................................................................................ 17
1.2.8. Đa hình............................................................................................................. 18
1.2.9. Đối tượng phức hợp ......................................................................................... 18

1.3. Hệ quản trị cơ sở dữ liệu hướng đối tượng ................................................. 22
1.3.1. Hệ quản trị OODB .......................................................................................... 22
1.3.2. Vấn đề toàn vẹn cho OODB ........................................................................... 23

Chương 2 – XỬ LÝ TRUY VẤN TRONG HỆ CƠ SỞ DỮ LIỆU
HƯỚNG ĐỐI TƯỢNG........................................................................................... 26
2.1. Các vấn đề liên quan đến truy vấn trong cơ sở dữ liệu hướng đối
tượng.................................................................................................................... 26
2.2. Quá trình xử lý truy vấn .............................................................................. 28

-2-


2.2.1. Phương pháp xử lý truy vấn............................................................................. 29
2.2.2. Tối ưu hóa truy vấn.......................................................................................... 30

2.3. Kỹ thuật tối ưu hóa ...................................................................................... 35
2.3.1. Các vấn đề về tối ưu hóa đại số ....................................................................... 35
2.3.2. Tối ưu hóa biểu thức đường dẫn ...................................................................... 41

Chương 3 – KỸ THUẬT XỬ LÝ TRUY VẤN LỒNG NHAU............................. 46
3.1. Truy vấn biểu thức đường dẫn lồng nhau ................................................... 46
3.2. Các loại truy vấn.......................................................................................... 47
3.2.1. Truy vấn đơn giản........................................................................................ 48
3.2.2. Truy vấn lồng nhau ...................................................................................... 49

3.2.1. Truy vấn tương quan.................................................................................... 49

3.3. Kỹ thuật xử lý truy vấn lồng nhau............................................................... 50
3.3.1. Mô hình hệ thống............................................................................................. 50
3.3.2. Đồ thị truy vấn ................................................................................................. 51
3.3.2.1. Định nghĩa................................................................................................. 51
3.3.2.2. Chuyển đổi đồ thị truy vấn ....................................................................... 56

3.4. Kỹ thuật Access Support Relations (ASRs)................................................. 59
3.4.1. Các toán tử thao tác ASRs ............................................................................... 59
3.4.2. Sơ đồ thực thi chung ........................................................................................ 61

Chương 4 - KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ............................................. 63
TÀI LIỆU THAM KHẢO................................................................................... 64
PHỤ LỤC ............................................................................................................ 65

-3-


LỜI CÁM ƠN
Lời đầu tiên của luận văn tôi xin gửi lời cảm ơn chân thành đến cô giáo, PGS.TS
Nguyễn Kim Anh người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận
lợi cho tôi từ lúc tìm hiểu, định hướng cũng như tìm kiếm tài liệu để hoàn thành
luận văn tốt nghiệp này.
Tôi xin gửi lời cám ơn tới các thầy, cô giáo trong Viện Công nghệ thông tin và
Truyền thông - Trường Đại học Bách khoa Hà Nội đã trang bị cho tôi những kiến
thức quý báu trong suốt quá trình học tập tại trường.
Tôi cũng xin gửi lời cám ơn tới Viện đào tạo Sau đại học - Trường Đại học Bách
khoa Hà nội đã tạo điều kiện giúp đỡ tôi trong thời gian học tập và nghiên cứu.
Cuối cùng, tôi muốn được nói lời cám ơn tới gia đình, người thân, bạn bè và đồng

nghiệp Trường Đại học Công Nghiệp Hà Nội nơi tôi đang công tác đã luôn bên
cạnh động viên, khích lệ tôi trong suốt quá trình nghiên cứu và hoàn thành luận
văn.

Hà Nội, ngày 28 tháng 10 năm 2010

-4-


LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công bố
trong bất kỳ công trình nào khác.

Tác giả luận văn

-5-


Danh mục các ký hiệu, các chữ viết tắt
STT

Từ viết tắt

1

ODBMS

2


OODB

3

OODBMS

4

Viết đấy đủ

Ý nghĩa

Object Database Management

Hệ quản trị cơ sở dữ liệu

Systems

đối tượng

Object Oriented Database

Cơ sở dữ liệu hướng đối
tượng

Object-Oriented Database

Hệ quản trị cơ sở dữ liệu

Management Systems


hướng đối tượng

OID

Object Identifier

Định danh đối tượng

5

OO

Object Oriented

Hướng đối tượng

6

DBMS

Database Management Systems

Hệ quản trị cơ sở dữ liệu

7

OQL

Object Query Language


8

CSDL

Cơ sở dữ liệu

Ngôn ngữ truy vấn đối
tượng
Cơ sở dữ liệu

-6-


Danh mục hình vẽ
Hình 1.1 Các thành phần của CSDL hướng đối tượng ........................................... 12
Hình 1.2 Ví dụ một complex object ........................................................................ 19
Hình 2.1 Phương pháp xử lý đối tượng truy vấn .................................................... 29
Hình 2.2 Phân vùng không gian tìm kiếm vào các vùng ........................................ 33
Hình 2.3 Tối ưu hóa như là một phần của hệ thống loại......................................... 34
Hình 2.4 Tối ưu hóa của biểu thức đường dẫn........................................................ 43
Hình 3.1 Lược đồ cơ sở dữ liệu Employee ............................................................. 48
Hình 3.2 Kiến trúc xử lý truy vấn ........................................................................... 51
Hình 3.3 Ví dụ đại điện đồ họa Navigation-Link ................................................... 53
Hình 3.4 Đại điện đồ họa của e.Supervisor = d.Manager ....................................... 54

-7-


MỞ ĐẦU

Các mô hình dữ liệu và các hệ cơ sở dữ liệu (CSDL) truyền thống, như là quan
hệ, mạng và phân cấp, vốn khá thành công trong việc vận hành, phát triển các hệ
thống thông tin cũng như các chương trìn và phần mềm ứng dụng. Tuy nhiên với sự
phát triển rất nhanh chóng của Công nghệ thông tin, CSDL quan hệ đã dần bộc lộ
những yếu điểm và rất nhiều hạn chế, đặc biệt là trong việc xây dựng các ứng dụng
có dữ liệu phức tạp, dữ liệu đa chiều, các kiểu dữ liệu mới để lưu hình ảnh, văn bản
lớn, âm thanh, video,.. CSDL hướng đối tượng là giải pháp cho các vấn đề trên.
Trong CSDL hướng đối tượng, dữ liệu được lưu trữ dưới dạng các đối tượng của
ngôn ngữ lập trình nên cho phép lưu trữ được các dạng dữ liệu phức tạp, lượng
thông tin lớn, đa chiều, âm thanh, video. Các dữ liệu không lưu trữ đơn thuần, mà
cả các hành vi của đối tượng dữ liệu cũng được lưu trữ trong CSDL.
Trong những năm qua đã có một số nghiên cứu quan trọng trong việc xác định
định hướng mô hình, đối tượng truy vấn bao gồm cả tính toán , đại số, và ngôn ngữ
người dùng. Một trong những chức năng cơ bản của hệ thống quản lý cơ sở dữ liệu
là để có thể xử lý các truy vấn người dùng khai báo. Một số truy vấn biểu thức
đường dẫn yêu cầu các giá trị hiện có trong cơ sở dữ liệu được lấy và sau đó được
sử dụng trong điều kiện so sánh, các truy vấn như vậy thường được hình thành bằng
cách sử dụng các truy vấn lồng nhau, truy vấn lồng nhau có thể đơn giản hóa các
truy vấn trên một cơ sở dữ liệu cho người dùng. Sau khi nghiên cứu một số tài liệu
liên quan tới vấn đề xử lý truy vấn, truy vấn lồng nhau trong cơ sở dữ liệu hướng
đối tượng, được sự đồng ý, động viên của cô giáo hướng dẫn khoa học tôi đã chọn
đề tài “Truy vấn cơ sở dữ liệu hướng đối tượng sử dụng biểu thức đường dẫn” để
nghiên cứu trong luận văn tốt nghiệp của mình.
Mục đích của luận văn là nghiên cứu về xử lý truy vấn biểu thức đường dẫn
trong cơ sở dữ liệu hướng đối tượng và kỹ thuật xử lý truy vấn lồng nhau.

-8-


Việc tổ đồ án thực hiện như sau. Chương 1 trình bày các khái niệm cơ bản

trong cơ sở dữ liệu hướng đối tượng và hệ cơ sở dữ liệu hướng đối tượng, tiếp theo
là Chương 2 trình bày về xử lý truy vấn biểu thức đường dẫn trong cơ sở dữ liệu
hướng và các phương pháp xử lý truy vấn. Chương 3 trình bày về kỹ thuật xử lý
truy vấn cho các truy vấn lồng nhau trong cơ sở dữ liệu hướng đối tượng và cuối
Chương 4 là kết luận với một số ý kiến, công việc đạt được và hướng nghiên cứu
tiếp theo.

-9-


Chương 1 – TỔNG QUAN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI
TƯỢNG
Các mô hình dữ liệu và các hệ cở sở dữ liệu (CSDL) truyền thống, như là quan
hệ, mạng và phân cấp, vốn khá thành công trong việc phát triển kỹ thuật CSDL cấn
thiết cho nhiều ứng dụng CSDL kinh doanh. Tuy nhiên chúng có những khiếm
khuyết nhất định khi phải thiết kế và thực hiện các CSDL phức hợp hơn, ví dụ như
các CSDL dùng trong thiết kế và sản xuất công nghiệp (CAD/CAM và CIM2), các
thí nghiệm khoa học, viễn thông, hệ bản đồ địa lý và đa phương tiện. Các ứng dụng
mới mẻ này có những yêu cầu và đặc tính khác với các ứng dụng kinh doanh truyền
thống, như là cấu trúc phức hợp hơn đối với các đối tượng, thời gian giao dịch lâu
hơn, các kiểu dữ liệu mới để lưu hình ảnh hoặc những văn bản lớn và nhu cầu định
nghĩa các xử lý đặc trưng của ứng dụng.
CSDL hướng đối tượng được xem là phù hợp với những đòi hỏi của các ứng
dụng này. Việc tiếp cận hướng đối tượng tạo ra tính linh động để xử lý một số yêu
cầu mà không bị hạn chế bởi các kiểu dữ liệu và các ngôn ngữ truy vấn có sẵn trong
các hệ CSDL truyền thống. Tính năng then chốt của CSDL hướng đối tượng là năng
lực mà chúng trao cho nhà thiết kế để chỉ ra cấu trúc của các đối tượng phức hợp
các thao tác áp dụng lên các đối tượng này.
Một nguyên nhân khác của ra sự ra đời CSDL hướng đối tượng là việc vận dụng
ngày càng nhiều các ngôn ngữ lập trình hướng đối tượng để xây dựng các ứng dụng

phần mềm. Ngày nay CSDL đang trở thành những thành phần cơ bản trong hệ
thống phần mềm và rất khó sử dụng CSDL truyền thống để nhúng trong các ứng
dụng phần mềm hướng đối tượng được xây dựng bằng một ngôn ngữ lập trình
hướng đối tượng như là C++, SMALLTALK hay JAVA. Object-Oriented Database
(OODB) được thiết kế để có thể tích hợp trực tiếp với phần mềm được xây dựng
bằng những ngôn ngữ lập trình hướng đối tượng.

- 10 -


Các nhà cung cấp hệ CSDL quan hệ còn nhận ra nhu cầu về tính năng mô hình
hóa dữ liệu bổ sung, các phiên bản tốt hơn của các hệ thống quan hệ đang kết hợp
nhiều tính năng đề ra cho OODB như các tiêu chuẩn thiết kế và các vấn đề truy vấn
trong CSDL hướng đối tượng.

- 11 -


1.1. Cơ sở dữ liệu hướng đối tượng
Cơ sở dữ liệu hướng đối tượng (Object – Oriented Database) là một kiểu
CSDL, mà trong đó các dữ liệu được lưu trữ dưới dạng các đối tượng. Hay Cơ sở
dữ liệu hướng đối tượng được xây dựng bằng các kết hợp các yếu tố của Cơ sở dữ
liệu và các kĩ thuật của Lập trình hướng đối tượng nhằm mục đích lưu trữ các đối
tượng dữ liệu. Từ đó có thể tận dụng, phát huy được những ưu điểm, lợi ích và thế
mạnh của ngôn ngữ lập trình hướng đối tượng, đồng thời khắc phục được những
yếu điểm và khó khăn của các CSDL khác.
Hình sau minh học việc tổ hợp các yếu tố của CSDL và các kĩ thuật của lập
trình hướng đối tượng để xây dựng nên CSDL hướng đối tượng.

Hình 1.1 Các thành phần của CSDL hướng đối tượng


- 12 -


1.2. Khái niệm cơ bản trong cơ sở dữ liệu hướng đối tượng
Thuật ngữ hướng đối tượng (Object Oriented - OO) có nguồn gốc từ ngôn từ
lập trình hướng đối tượng (Object Oriented Programming Language - OOPL). Các
khái niệm OO ngày nay được áp dụng trong lĩnh vực CSDL, công nghệ phần mềm,
công nghệ trí thức, trí tuệ nhân tạo và các hệ máy tính nói chung. OOPL có nguồn
gốc từ ngôn ngữ SIMULA, được giới thiệu vào cuối những năm 1960.
Một đối tượng (Object) đặc trưng thường có hai thành phần: trạng thái (State)
và hành vi (Behaviour). Do đó, nó giống với một biến chương trình trong một ngôn
ngữ lập trình, ngoại trừ rằng về nguyên tắc nó sẽ có một cấu trúc dữ liệu phức hợp
cũng như các thao tác đặc thù do người lập trình viên định nghĩa.
Các đối tượng trong một OOPL chỉ tồn tại trong một thời gian chương trình
hoạt động và do đó chúng được gọi là những đối tượng tức thời. Một OODB có thể
kéo dài sự tồn tại của những đối tượng sao cho chúng được lưu trữ vĩnh viễn và do
đó các đối tượng vẫn bảo toàn sau khi chương trình chấm dứt và có thể được gọi lại
sau này cũng như được chia sẻ với các chương trình khác. Nói cách khác, OODB
lưư trữ các đối tượng bảo toàn ở nơi lưu trữ phụ và cho phép chia sẻ những đối
tượng này với nhiều chương trình và ứng dụng. Việc này đòi hỏi kết hợp các tính
năng phổ biến khác của hệ quản trị CSDL, như là cơ chế định chỉ mục, điều khiển
song hành và phục hồi. Một hệ OODB giao tiếp với một hoặc nhiều ngôn ngữ lập
trình hướng đối tượng để cung cấp khả năng đối tượng bảo toàn và chia sẻ.
Mục tiêu của OODB là duy trì sự tương đồng trực tiếp giữa các đối tượng thực
tế và các đối tượng CSDL sao cho đối tượng không mất đi tính toàn vẹn và cá tính
của chúng và có thể xác định và xử lý dễ dàng với chúng. Do đó, OODB cung cấp
một đối tượng định danh (Object Identifier- OID) duy nhất do hệ thống phát sinh
(OID) cho mỗi đối tượng. Ta có thể so sánh điều này với mô hình quan hệ trong đó
mỗi quan hệ phải có một thuộc tính khoá chính mà giá trị của nó xác định từng mẩu

tin duy nhất. Trong mô hình quan hệ, nếu giá trị của khoá chính bị thay đổi, mẩu tin
sẽ có một con số xác định mới, mặc dù nó vẫn thể hiện cùng một đối tượng thực tế.

- 13 -


Nói cách khác, một đối tượng thực tế có thể có nhiều tên khác nhau đối với thuộc
tính khoá trong các quan hệ khác nhau, sẽ khó mà biết được rằng những khoá thể
hiện cùng một đối tượng.
Cấu trúc bên trong của một đối tượng trong OOPL bao gồm đặc tả của biến
bản sao, lưu giữ những giá trị xác định trạng thái bên trong của đối tượng. Do đó,
một biến bản sao tương tự với khái niệm của một thuộc tính (Attributes), ngoại trừ
rằng biến bản có thể được đóng gói bên trong đối tượng và như vậy, không nhất
thiết phải thể hiện ra đối với người sử dụng bên ngoài. Các biến bảo sao còn có thể
thuộc kiểu dữ liệu phức hợp tuỳ ý. Những hệ thống hướng đối tượng cho phép định
nghĩa các thao tác hay hàm ( hành vi) áp dụng lên kiểu đối tượng cụ thể. Trong thực
tế, một số mô hình OO khẳng định rằng tất cả các hành vi mà người sử dụng áp
dụng lên một đối tượng đều phải định nghĩa trước. Điều này bắt buộc một sự đóng
gói hoàn chỉnh các đối tượng.
1.2.1. Định danh đối tượng
Định danh đối tượng : Hệ OODB cung cấp xác định duy nhất cho từng đối
tượng độc lập lưu trữ trong CSDL. Về nguyên tắc, xác định duy nhất này được thực
hiện thông qua phần xác định đối tượng duy nhất, do hệ thống phát sinh, gọi là
định danh đối tượng (Object Identifier - OID). Giá trị của một OID không thể sinh
ra cho người sử dụng bên ngoài, mà nó được sử dụng nội bộ bên trong hệ thống để
xác định từng đối tượng duy nhất, tạo ra và quản lý các tham chiếu lẫn nhau giữa
các đối tượng.
Đặc điểm chính bắt buộc của một OID là tính chất biến; nghĩa là giá trị OID
của một đối tượng nhất định không thay đổi. Điều này giúp bảo toàn ý nghĩa của
một đối tượng thực tế. Do đó, một hệ thống OODB phải có một cơ chế để phát sinh

các OID và bảo toàn tính bất biến. Tốt nhất là mỗi OID chỉ nên sử dụng một lần;
nghĩa là thậm chí khi đối tượng bị xoá khỏi CSDL, thì OID của nó cũng không thể
đem gán cho một đối tượng khác được. Nhờ đó OID không thể phụ thuộc vào giá trị

- 14 -


thuộc tính bất kỳ của đối tượng, bởi vì giá trị thuộc tính có thể bị thay đổi hoặc
chỉnh sửa. Nói chung, OID cũng không thể dựa trên địa chỉ vật lý của đối tượng
trong kho lưu trữ, bởi vì địa chỉ vật lý có thể thay đổi sau một đợt tổ chức lại của
CSDL về phương diện vật lý.
Tuy vậy, một số hệ thống vẫn sủ dụng địa chỉ vật lý làm OID để tăng cường
hiệu quả trong truy vấn đối tượng. Nếu địa chỉ vật lý của một đối tượng thay đổi,
một con trỏ gián tiếp có thể được đặt tại địa chỉ trước đó, sẽ cho biết vị trí vật lý
mới của đối tượng. Phổ biến hơn, người ta sử dụng số Long Interger làm OID, sau
đó sử dụng sẽ sử dụng một số dạng bảng băm (hash table) để ánh xạ giá trị OID đến
địa chỉ vật lý của đối tượng.
1.2.2. Thuộc tính đối tượng
Các đối tượng chứa một tập thông tin nhất định về đối tượng gọi là thuộc tính
của đối tượng. Mỗi thuộc tính có một tên duy nhất trong đối tượng và giá trị được
biểu diễn trong miền giá trị của một kiểu dữ liệu nào đó. Các kiểu dữ liệu này có thể
là các kiểu dữ liệu cơ bản, như khiểu số nguyên, số thực, kiểu xâu ký tự,… hoặc các
kiểu dữ liệu do người dùng định nghĩa, các kiểu đối tượng.
1.2.3. Trạng thái đối tượng
Trạng thái của một đối tượng là thể hiện của đối tượng tại một thời điểm nhất
định, bao gồm một tập các giá trị của các thuộc tính đối tượng tại thời điểm đó.
Trạng thái của đối tượng có thể thay đổi theo thời gian, tương ứng với sự thay đổi
giá trị của các thuộc tính đối tượng.
Tập hợp tất cả các trạng thái có thể của đối tượng được gọi là mạng trạng thái.
Để thay đổi trạng thái của đối tượng (thay đổi giá trị của thuộc tính), cần gửi các

thông điệp hợp lệ đến đối tượng, hay yêu cầu thực thi các hành vi của đối tượng.

- 15 -


1.2.4. Hành vi đối tượng
Hành vi của một đối tượng là các thao tác hợp lệ của chính đối tượng đó trên
các thuộc tính của đối tượng, được sử dụng để khởi tạo hay thay đổi các giá trị của
thuộc tính, hoặc trả về một giá trị nào đó dựa trên các giá trị thuộc tính của đối
tượng. Các đối tượng khác có thể truyền các thông điệp, hay yêu cầu đối tượng thực
thi các hành vị bằng việc gọi tên của hành vi đó và các tham số nếu có.
Một hành vị đối tượng có thể được gọi từ đối tượng bằng cách sử dụng dấu
chấm (.) và tên của hành vi cùng các tham số.
1.2.5. Lớp đối tượng
Lớp đối tượng là một khái niệm trừu tượng mô tả một cấu trúc dữ liệu, biểu thị
cấu trúc chung của một tập các đối tượng cùng kiểu, hay có cùng cấu trúc thuộc tính
và hành vi. Mỗi đối tượng là một thể hiện cụ thể của lớp, có các thuộc tính và hành
vị được khai báo trong lớp. Trong các mô hình và các ngôn ngữ lập trình hướng đối
tượng, lớp thường được mô tả bằng từ khóa class.
1.2.6. Đóng gói dữ liệu
Để truy vấn hay cập nhật các thuộc tính của một đối tượng, các đối tượng khác
chỉ có thể truyền các thông điệp hay yêu cầu thực thi các hành vi của đối tượng, mà
không thể truy cập đến cấu trúc dữ liệu bên trong của đối tượng, và cũng không cần
biết đến các chi tiết thực hiện của đối tượng. Điều này nhằm đảm bảo tính toàn vẹn
của đối tượng (được trình bày ở phần sau), che giấu thông tin, và được gọi là đóng
gói dữ liệu (Data Encapsulation). Các đối tượng khác không thể truy cập và cập
nhất giá trị các thuộc tính đã được đóng gói trong đối tượng.
Đóng gói là một trong các đặc điểm chính của CSDL hướng đối tượng và
không được sử dụng trong các kiểu CSDL truyền thống. Do đó trong CSDL truyền
thống, người dùng hay các chương trình ứng dụng có thể nhìn thấy, truy cập và thay

đổi dữ liệu của các đối tượng làm ảnh hướng đến việc đảm bảo tính toàn vẹn của dữ
liệu.
- 16 -


Các dữ liệu trong CSDL hướng đối tượng là các đối tượng không có kiểu định
trước và thường có cấu trúc phức hợp, trong khi nhiều đối tượng lại có cùng một
cấu trúc hoặc một phần cấu trúc dữ liệu. Do đó, việc sử dụng lại và mở rộng một
kiểu dữ liệu hay kiểu đối tượng có sẵn là rất cần thiết và quan trọng. Điều này có
thể được thực hiện trong các hệ thống hướng đối tượng bằng cách sử dụng kĩ thuật
thừa kế.
1.2.7. Thừa kế
Các dữ liệu trong CSL hướng đối tượng là các đối tượng không có kiểu định
trước và thường có cấu trúc phức hợp, trong khi nhiều đối tượng lại có cùng một
cấu trúc hoặc một phần cấu trúc dữ liệu. Do đó việc sử dụng lại và mở rộng một
kiểu dữ liệu hay kiểu đối tượng có sẵn là rất cần thiết và quan trọng. Điều này có
thể thực hiện trong các hệ thống hướng đối tượng bằng cách sử dụng kỹ thuật thừa
kế.
Thừa kế là kỹ thuật cho phép một lớp đối tượng có khả năng thừa hướng tất cả
các tính chất và đặc trưng của một lớp đối tượng khác, bao gồm tất cả các thuộc
tính, hành vị và các quan hệ đối tượng. Do đó, thừa kế cho phép các đối tượng mới
được tạo ra có khả năng sử dụng lại các kiểu đối tượng có sẵn trong CSDL, đồng
thời cho phép mở rộng kiểu đối tượng đó bằng cách khai báo thêm các thuộc tính,
hành vi và quan hệ riêng, thậm chí có thể định nghĩa lại các hành vị được thừa kế.
Bất kỳ lớp đối tượng nào cũng đều có thể sử dụng và cho phép thừa kế bởi các lớp
đối tượng khác.
Các lớp thừa kế từ các lớp khác gọi là lớp dẫn xuất hay lớp con, lớp được thừa
kế là lớp cơ sở hay lớp cha. Có hai kiểu thừa kế là đơn thừa kế và đa thừa kế. Các
thừa kế mà một lớp dẫn xuất chỉ thừa kế từ một lớp cơ sở gọi là đơn thừa kế và thừa
kế từ nhiều lớp cơ sở gọi là đa thừa kế.


- 17 -


1.2.8. Đa hình
Đa hình là khả năng cho phép các đối tượng thực hiện những hành vi khác
nhau khi nhận được cùng một thông điệp dựa trên các đặc trưng riêng của mình.
Đa hình còn cho phép một đối tượng thực hiện các hành vi khác nhau trong
những ngữ cảnh khác nhau, dựa trên các đặc trưng, hay các kiểu của đối tượng
trong cây thừa kế thì nó có thể thực hiện các hành vi riêng của mình hoặc cũng có
thể thực hiên các hành vi như là một đối tượng của lớp mà nó thừa kế, phụ thuộc
vào ngữ cảnh mà hành vi được thực hiện.
Đa hình có ý nghĩa trong việc thừa kế và mở rộng các kiểu dữ liệu đối tượng
trong CSDL, cho phép có thể vừa định nghĩa lại các hành vị đối tượng nhưng vừa
có thể duy trì, sử dụng lại các hành vị đối tượng đã có sẵn, làm tăng độ khả chuyển
giữa các kiểu dữ liệu đối tượng.
1.2.9. Đối tượng phức hợp
Nguyên nhân chủ yếu dẫn đến sự phát triển của các hệ thống hướng đối tượng là
nhu cầu thể hiện các đối tượng phức hợp.Có hai kiểu đối tượng phức hợp chính:
¾

Có cấu trúc

¾

Không có cấu trúc.

Một đối tượng phức hợp có cấu trúc được cấu tạo từ các thành phần và được
định nghĩa bằng cách áp dụng các thiết lập kiểu đối tượng có sẵn theo cách đệ quy ở
nhiều mức khác nhau.

Một đối tượng phức hợp không có cấu trúc về nguyên tắc là một kiểu dữ liệu đòi
hỏi dung lượng lưu trữ lớn, như kiểu dữ liệu thể hiện một đối tượng hình ảnh hay
khối văn bản.

- 18 -


Hình 1.2 Ví dụ một complex object
Đối tượng phức hợp có cấu trúc
Đối tượng phức hợp có cấu trúc khác với đối tượng phức hợp không cấu trúc ở
chỗ cấu trúc của đối tượng được định nghĩa nhờ ứng dụng lặp đi lặp lại các thiết lập
kiểu đối tượng do hệ quản trị CSDL hướng đối tượng cung cấp. Vì vậy, cấu trúc đối
tượng được định nghĩa và được nhận biết đối với các hệ quản trị CSDL hướng đối
tượng.
Hai kiểu ngữ nghĩa tham chiếu tồn tại giữa một đối tượng phức hợp và những
thành phần của nó ở mỗi mức.
¾

Kiểu đầu tiên, chúng ta có thể gọi là ngữ nghĩa quyền sở hữu, áp dụng khi
các đối tượng con của một đối tượng phức hợp của đối tượng phức hợp.

- 19 -


¾

Kiểu thứ hai, chúng ta gọi là ngữ nghĩa tham chiếu, áp dụng khi những
thành phần của đối tượng phức hợp tự chúng là những đối tượng độc lập
nhưng có thể được tham chiếu đến từ đối tượng phực hợp


Kiểu đầu tiên còn được nói đến như mối quan hệ một phần của hay thành phần
của và kiểu thứ hai được gọi là mối quan hệ gắn với, bởi vì nó mô tả một gắn kết
bằng giữa hai đối tượng độc lập. Mối quan hệ là một phần của (ngữ nghĩa quyền sở
hữu) được dùng để xây dựng đối tượng phức hợp có thuộc tính là những thuộc tính
thành phần được đóng gói ở trong đối tượng phức hợp và được xem như là một
phần của trạng thái đối tượng bên trong.
Chúng không cần có các xác định đối tượng và chỉ có thể được truy cập như
phương thức của đối tượng đó. Chúng bị xoá nếu như chính đối tượng đó bị xoá.
Nói cách khác, một đối tượng phức hợp mà những thành phần của nó được tham
chiếu được xem là bao gồm các đối tượng độc lập có thể có định danh của chính nó
và các phương thức. Khi một đối tượng phức hợp cần truy cập những thành phần
được tham chiếu của nó, nó phải thực hiện việc đó bằng cách kích hoạt phương thức
tương ứng của các thành phần, bởi vì chúng không bị đóng gói ở trong đối tượng
phức hợp.
Do đó, những ngữ nghĩa tham chiếu thể hiện mối quan hệ giữa các đối tuợng
độc lập. Ngoài ra, một đối tượng thành phần được tham chiếu có thể được tham
chiếu đến từ nhiều hơn một đối tượng phức hợp và do dó được tự động xoá khi đối
tượng phức hợp bị xoá.
Một hệ quản trị CSDL hướng đối tượng cần cung cấp tuỳ chọn lưu trữ để
clustering những đối tượng thành phần của một đối tượng phức hợp cùng nhau ở
nơi chứa phụ để tăng cường hiệu quả của những thao tác truy cập đến đối tượng
phức hợp. Trong nhiều trường hợp, cấu trúc đối tượng được cất nên đĩa theo kiểu
phi thông dịch. Khi phần đĩa bao hàm một đối tượng được lấy về trên bộ nhớ, hệ
quản trị CSDL hướng đối tượng có thể xây dựng đối tượng phức hợp có cấu trúc từ

- 20 -


những thông tin trên đĩa, chúng có thể tham chiếu đến những trang đĩa bổ sung cần
được lấy về. Chúng ta gọi chúng là lắp ghép đối tượng phức hợp.

Đối tượng phức hợp không có cấu trúc
Một tiện ích của đối tượng phức hợp không cấu trúc do hệ quản trị CSDL
cung cấp cho phép lưu trữ và chọn lọc ra những đối tượng lớn cần thiết cho ứng
dụng CSDL. Ví dụ điển hình về những đối tượng này là những hình ảnh bitmap và
chuỗi văn bản dài (như là các tài liệu), chúng còn được gọi là các đối tượng lớn kiểu
nhị phân, viết tắt là BLOB.
Những đối tượng này không có cấu trúc theo ý nghĩa là hệ quản trị CSDL
không biết cấu trúc của chúng là gì - chỉ có ứng dụng sử dụng chúng mới có thể biết
được ý nghĩa đó. Ví dụ, ứng dụng có những hàm để trình bày hình ảnh hay tìm kiếm
một từ khoá nào đó trong một chuỗi văn bản lớn. Những đối tượng được xem là
phức hợp bởi vì chúng đòi hỏi vùng lưu trữ lớn và không thuộc những kiểu dữ liệu
chuẩn do hệ các quản trị CSDL truyền thống cung cấp. Do kích cỡ đối tương khá
lớn, hệ quản trị CSDL có thể chọn ra một phần đối tượng và đưa nó cho chương
trình ứng dụng trước khi toàn bộ đối tượng được lọc ra. Hệ quản trị CSDL còn sử
dụng kỹ thuật vùng đệm và cache để lọc trước những phần đối tượng trước khi
chương trình ứng dụng cần truy cập đến chúng.
Phần mềm hệ quản trị CSDL không có khả năng xử lý trực tiếp điều kiện chọn
lọc và những hoạt động khác dựa trên giá trị của những đối tượng này, trừ khi ứng
dụng cung cấp mã nguồn để thực hiện so sánh cần thiết cho sự chọn lọc.
Trong một hệ quản trị CSDL hướng đối tượng, điều này có thể đạt được bằng
cách định nghĩa kiểu dữ liệu khái quát mới cho những đối tượng không cấu trúc và
bằng cách cung cấp những phương thức để chọn lọc, so sánh và hiển thị các đối
tượng đó. Ví dụ, xét những đối tượng là hình ảnh bitmap hai chiều. Giả sử rằng ứng
dụng cần chọn lọc từ tập hợp các đối tượng đó chỉ là những đối tượng chứa một
kiểu mẫu nhất định. Ở trường hợp này, người sử dụng phải cung cấp chương trình

- 21 -


nhận biết kiểu mẫu như một phương thức trên những đối tượng có kiểu bitmap. Sau

đó hệ quản trị CSDL hướng đối tượng sẽ chọn lọc ra những đối tượng từ CSDL và
thi hành phương thức nhận biết kiểu mẫu trên đó để quyết định lấy về đối tượng
kiểu mẫu yêu cầu hay không.
Bởi vì một hệ quản trị CSDL hướng đối tượng cho phép người sử dụng tạo
những kiểu mới và vì một kiểu bao gồm cả cấu trúc và các thao tác, nên chúng ta có
thể xem như hệ quản trị CSDL hướng đối tượng có một hệ thống kiểu mở rộng.
Chúng ta có thể tạo ra hệ thống các thư viện các kiểu phức hợp. Sau đó, ứng dụng
có thể sử dụng hoặc sửa đổi các kiểu này, bằng cách tạo kiểu con của những kiểu đã
được thư viện cung cấp.
Tuy vậy bên trong hệ quản trị CSDL phải cung cấp vùng lưu trữ bên trong và
khả năng chọn lọc ra những đối tượng đòi hỏi vùng lưu trữ dung lượng lớn sao cho
các hoạt động đựơc áp dụng một cách hiệu quả. Nhiều hệ quản trị CSDL hướng đối
tượng cung cấp vùng lưu trữ và chọn lọc ra những đối tượng không cấu trúc lớn như
là chuỗi ký tự hay chuỗi bít, được truyền “như chính nó” đến chương trình ứng
dụng để thông dịch. Mới đây, các hệ quản trị CSDL quan hệ mở rộng cũng có thể
cung cấp khả năng này.
1.3. Hệ quản trị cơ sở dữ liệu hướng đối tượng
1.3.1. Hệ quản trị OODB
Trong một CSDL hướng đối tượng, thông tin được thể hiện dưới dạng một đối
tượng (objects) như khi sử dụng một ngôn ngữ lập trình hướng đối tượng. Hệ quản
trị cơ sở dữ liệu hướng đối tượng ODBMS (object database management system) là
sự kết hợp của OODB với OOPL.
ODBMS cho phép cơ sở dữ liệu được thể hiện như là các đối tượng được sử
dụng trong lập trình hướng đối tượng. Điều này cho phép ODBMS mở rộng khả
năng của ngôn ngữ lập trình cho phép trực tiếp quản lý dữ liệu được được lưu trữ.

- 22 -


Đây là một sự khác biệt như việc cần thiết phải sử dụng một sub-language như

truy vấn SQL hay sử dụng ODBC hoặc JDBC. Kết quả là hiệu năng đạt được cao
hơn và người lập trình phải viết ít code hơn. Các cấu trúc dữ liệu phức hợp trong bộ
nhớ được ánh xạ 1-1 tới đối tượng của cơ sở dữ liệu. Nó làm mờ đi khái niệm dữ
liệu được lưu trữ cục bộ tại bộ nhớ chương trình hay trên thiết bị lưu trữ.
Hiện nay, OODB đã được thiết kế để làm việc với các ngôn ngữ lập trình hướng
đối tượng như Python, Java, C#, Visual Basic.NET, C++ và SmallTalk.
1.3.2. Vấn đề toàn vẹn cho OODB
Tồn tại hai loại thay đổi của dữ liệu trong CSDL không được mong đợi
¾

Những thay đổi do cố tình.

¾

Những thay đổi do vô ý gây nên.

Những thay đổi do cố tình thuộc về phạm trù trong lĩch vực bảo đảm an toàn an
ninh CSDL (database security). Vấn đề đặt ra là kiểm soát việc truy cập và thay đổi
dữ liệu trong CSDL từ người sử dụng không được cấp phép và các hacker.Dạng thứ
hai của vấn đề thay dổi dữ liệu không mong đợi mà chúng ta đề cập ở đây là: Bảo
đảm tránh hư hỏng dữ liệu một cách ngẫu nhiên từ phía người sử dụng đã được cấp
phép truy cập.
Khái niệm toàn vẹn dữ liệu mang hai nghĩa sau đây :
¾

Dữ liệu được lưu trữ trong máy tính không sai khác so với nguồn dữ liệu
ban đầu và không bị thay đổi (ngẫu nhiên hay cố ý) cũng như bị phá hủy.

¾


Chất lượng của thông tin được lưu trữ được bảo vệ trước sự giảm sút của
chất lượng thông tin.

Kiểm soát toàn vẹn không được giao cho hệ điều hành (OS) bởi vì OS không thể
kiểm soát đến từng ứng dụng cụ thể có liên quan.Kiểm soát toàn vẹn cũng không
được thực hiện tại mức chương trình sử dụng vì các lý do sau :

- 23 -


¾

Việc lặp lại mã kiểm soát toàn vẹn trong các ứng dụng cụ thể dẫn tới vấn
đề khó bảo trì khi thay thế, sửa đổi.

¾

Khó kiểm soát rằng buộc cho sự chính xác nếu việc kiểm soát trải ra trên
nhiều ứng dụng.

¾

Mỗi ứng dụng có quy tắc toàn vẹn riêng, không thể ép các ứng dụng khác
phải tuân theo các quy tắc đó.

Dữ liệu có sự toàn vẹn nếu nó đầy đủ và hợp lệ. Dữ liệu là đầy đủ nếu nó bao
gồm tất cả các thực thể dữ liệu trong thế giới thực. Dữ liệu là hợp lệ nếu nó không
chứa đựng những thông tin mà không tồn tại trong dữ liệu của thế giới thực. Việc
kiểm tra tính đầy đủ là khó nhưng không phải không thể. Kiểm soát tính hợp lệ
cũng có thể được thực hiện từng phần.

Một vài vấn đề khi nghiên cứu về tính toàn vẹn trong CSDL hướng đối tượng
là kết quả của quá trình nghiên cứu trong lĩnh vực an toàn, an ninh thông tin. Một
mô hình hướng đối tượng an toàn an ninh nhiều tầng trong đó mỗi 1 đối tượng
(phương thức, thuộc tính, và ràng buộc) có mức truy cập khác nhau.
Một ràng buộc toàn vẹn có thể được xếp làm 3 lớp: ẩn, hiện và cố hữu. Một
ràng buộc ẩn (implicit constraint) có thể được đặc tả và thể hiện trên lược đồ CSDL
của mỗi 1 mô hình. VD khóa và toàn vẹn tham chiếu có liên quan trong mô hình dữ
liệu quan hệ. Một ràng buộc hiện là ràng buộc mà người sử dụng chỉ định cụ thể.
Một ràng buộc cố hữu như là 1 phần của mô hình dữ liệu và không cần phải đặc tả
bởi người sử dụng.
Ràng buộc toàn vẹn có thể là một ràng buộc trạng thái hay ràng buộc khi
chuyển trạng thái (state or transition constraint). Một ràng buộc trạng thái là ràng
buộc giới hạn trên trạng thái của CSDL tức là trạng thái của dữ liệu trong CSDL tại
1 thời điểm xác định. CSDL là nhất quán nếu nó thỏa mãn tất cả các ràng buộc
trạng thái. Ràng buộc trạng thái được kiểm tra sau mỗi lần cập nhật CSDL.

- 24 -


Một ràng buộc chuyển trạng thái là một giới hạn phạm vi khi chuyển từ trạng
thái này qua trang thái khác. VD tuổi của một nhân viên không thể giảm.
Tổng kết :
Trong chương này đã giới thiệu về khái niệm cơ sở dữ liệu hướng đối tượng
và các khái niệm cơ bản của cơ sở dữ liệu hướng đối tượng như định danh đối
tượng, thuộc tính đối tượng, trạng thái đối tượng, hành vi đối tượng,…và khái niệm
về hệ quản trị cơ sở dữ liệu hướng đối tượng. Chương tiếp theo sẽ trình bày về xử lý
truy vấn biểu thức thức đường dẫn trong cơ sở dữ liệu hướng đối tượng bao gồm
các vấn đề kiến trúc xử lý truy vấn đã được phát triển và thử nghiệm, xác định các
phương pháp xử lý truy vấn, các phương pháp tiếp cận khác nhau để tối ưu hóa các
biểu thức truy vấn đối tượng.


- 25 -


×