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

(Luận văn thạc sĩ) cơ sở dữ liệu hướng đối tượng và một số vấn đề lý thuyết

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 (42.4 MB, 97 trang )

ĐẠỈ HỌC QUỐC GỈA HÀ NỘI
KHOA CÔNG NGHỆ

PHẠM C H Í DANH

C ơ SỞ DỮ LIỆU
HƯỚNG ĐỐI TƯỢNG
m
9
VÀ MỘT
SỐ VẤN ĐỂ LÝ THUYẾT

CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 1.01.10

LUẬN VĂN THẠC s ĩ
«

m

N G Ư Ờ I HƯ ỚN G DẪN K H O A H Ọ C :
TS. NGUYỄN TU Ệ

HÀ NỘI - 2003


MỤC LỤC

LỜ ì Gỉ Ớ ì T H IỆ U ............................................................................................................2

CHƯƠNG /. CƠ SỞ DỮ LỈỆU HƯỚNG Đ ố Ị TƯỢNG.......................................................... 4


1.1. Giói Ihìệu phương pháp tiếp cân hướng đối tượng..................................................... 4
1.1.1. C ác khái n iệ m .......................................................................................................... 4
1.1.2. Tính thừa k ế .............................................................................................................. 5
I .! .3. Tính bao g ó i.............................................................................................................. 6
1.1.4. T ính đa c ấ u ............................................................................................................... 6
1.1.5. Tính trừu tư ợ n g ........................................................................................................ 7
1 .1.6. Đối tượng phức hợp - com pỉex o b jcct................................................................ 7
1 .1.7. N ạp chổng, ghì đè và liên kết m u ộ n ...................................................................7
1.2, Cơ sở dữ liệu hướng đối tượ ng......................................................................................... 8
1.2.1. Giới thiệu c h u n g ...................................................................................................... 8
1.2.2. Các đặc trưng trong cơ sở dữ liệu hướng đối tư ợ n g ....................................... 9
1.2.3. Ọ uản lý lưu trữ dữ liệ u ..........................................................................................11
1.2.4. N gôn ngữ hỏi hướng đối tượng O Q L ...................................... .........................15
] .2.5. So sánh cư sở dữ liệu hướng đối tượng và cư sở dữ liệu quan h ệ ..............31

CHƯƠNG 2. MÔ HỈNH HOẢ c ơ SỞ DỮ L iệ u HƯỚNG Đ ố ỉ TƯỢNG......................... 33
2.1. M ơ hình mức khái n iệ m .................................................................................................. 33
2.1.1. M ồ hình quan hệ giữa các đối tượng (O R M ) :.............................................. 34
2.1.2. M ơ hình hành vi đối tượng (O B M ):..................................................................41
2 .1.3. M ơ hình tương tác dối tượng (0 1 M ):...............................................................42
2.2. Biểu diễn tri thức irong cơ sớ dữ liệu hướng đối tư ợ n g ......................................... 46
2.3. H ình thức hố m ơ hình khái n iệ m ............................................................................... 48

TƯỢNG....................................................................
3.1. Phân tích hộ thống hướim dối tượng

52


3.1.1. Pli ân tích yêu cầu hẹ Ihống và đánh giá tính kha t h ỉ ...................................53

3.1.2. Các cơng cụ phân tíc h .......................................................................................... 54
3.1.3. Tích hợp các m ơ hình ứng d ụ n g ....................................................................... 55
3.1.4. Kiểm chứng bản phùn tíc h .................................................................................. 57
3.2. Đặc l a ....................................................................................................................................59
3.3. Thiết k ế ................................................................................................................................ 63
3.3.1. Thiết k ế dữ liệ u ...................................................................................................... 63
3.3.2. Lý thuyết phụ thuộc h à m .................................................................................... 68
3.3.3. Chuẩn hoá dữ liệ u ................................................................................................. 75

CHƯƠNG 4. CÀI ĐẶT c ơ SỞ DỮ LỈỆU HƯỚNG Đ ố! TƯƠNG..................................... 8ỉ
4.1. Cài đặt CSD L ngành Bảo hiểm xã h ộ i .........................................................................81
4.1.1. Giới th iệ u ................................................................................................................. 81
4.1.2. Phân tích, thiết k ế ................................................................................................. 82
4.1.3. Cài đ ặ t.......................................................................................................................86
4.2. Kết lu ậ n ...............................................................................................................................92

TÀ! LIỆU THAM KHẢO .................................................................................................................94


LÒI GIỚI THIỆU
H iện nay phương pháp tiếp cận theo hướng đổi tượng (O bject - O riented) đã và
đang được sử dụng hết sức rộng rãi irong việc phát triển phần m ềm . Các phưưng pháp
lập trình truyén ihống dần được thay th ế bằng phương pháp iập trình hướng dối tượng.
Các bài tốn thực tế dược đặt ra với số lượng dữ liệu lớn, phức lạp, đa chiều đòi hỏi
vượt khỏi tẩm của các Cư sở dữ liệu quan hệ. Đ ồng ỉhờì, vói phương pháp tiếp cận
hướng đố i tượng, việc m ơ hình hóa th ế giới thực (real World) được thực hiện dễ dàng,
chính xác hơn. Lý thuyêì về cơ sở dữ liệu hướng đối tượng chính vì th ế đã được rất
nhiều nhà nghiên cứu quan tâm và phất triển. Tuy nhiên, cho đến nay cũng chưa có
lììộl hệ quản irị c ơ sở dữ liệu hướng dốị tượng hoàn chỉnh đáp ứng các u cẩu trong
thực tiễn. C hính vì vậy việc tìm hiểu các vấn đề lý thuyết Irong


ca sở dữ liệu hướng đối

tượng là hết sức cần thiết. T rong phạm vi bản luận văn này tôi đề cập đến phương pháp
tiếp cận hướng đối tượng trong cơ sở dữ liệu được phát triển theo m ơ hình OSA (O bject
System A nalysis) được đề xuất bởi David w . Em bley Ị 11 và các cộng sự của ông. M ơ
hình được giới thiệu khá rõ ràng, với đầy đủ c ơ sở lý íhuyết và các m ơ hình thực tế đổ
phát trien m ột ứng dụng cơ sở dữ liệu theo phương pháp lấy đối tượng làm nền tảng,
dồng (hời cũng hỗ trợ việc cài đặt thông qua một số hệ quản trị cơ sở dữ liệu hướng đối
tượng đang được phát triển hiện nay |2 |.
Toàn bộ nội d u n g của bản luận văn bao gồm:
Chương 1. Giới Ihiệu chung về cơ sở dữ liệu hướng đối tượng
Chưong này trình bày 4 phần cơ bàn là: G iới thiệu chung về tiếp cận hướng đối tượng,
cơ sỡ dữ liệu hướng đối lượng, phương pháp lưu trữ dữ liệu, hỏi dữ liệu và so sánh cơ
sở dữ liệu hướng đố i íượng với cơ sở dữ liệu quan hệ.
Chương 2: G iới thiệu về m ơ hình hóa cơ sở dữ liệu m ức khái niệm
Chương này gồm 3 phần cơ bản trình bày về m ơ hình khái niệm , phương pháp biểu
diễn tri thức, và hình thức hố m ơ hình khái niệm.
Chương 3. Phân tích, đặc tả và thiết k ế cơ sở dữ liệu hướng đối tượng.
Chương này tập trung vào 3 vấn đé chính là : 1) Phân tích hệ thống; 2) Đ ặc ỉa hệ thống;
3) Thiết k ế d ữ liệu trong đó giới thiệu m ột số phương pháp giảm dư thừa dữ liệu.
Chương 4. Cài đạt cơ sở dữ liệu hirớns dối tượng


Trên cơ sử nội dung các chươnq trước, trong chương này trình bày 2 phần: i ) Giới
thiệu phần m ềm O bjectStore và PSii Pro for

ư ' và ứng d ụ n g vào cài đặt phán hệ cơ sử

dữ liệu thu ngành Bảo hiểm xã hội V iệt Nam. 2) T ổng kết, đánh giá những m ặt dược và

những m ặt còn hạn ch ế của cơ sớ dữ liệu hướng đối tượng, cũng như những hướng phái
Iricn sau này.
Cuối cùng, em xin chân thành cảm ơn liến sĩ Nguyễn Tuệ cùng các thẩy cơ trong khoa
Cóng nghệ - Đại học Q uốc gia Hà Nội đã tạo diều kiện giúp đỡ trong suốt quá Irình
học tập và làm khoá luận.
X in được cám ơn sự giúp đỡ của các bạn học viên lóp 7K T - K hoa Cơng N ghệ trong
q trình học lập và làm khoá luận.
Cám ơn lãnh đạo và đổng nghiệp T rung tâm CNTT - BHXH V iệt N am đã giúp đỡ,
dộng viên và tạo mọi diều kiện để tôi hồn thành bản khố iuận.

Hà Nội, ngày

thúng

năm 2003

H ọc viên

Phạm C hí Danh


T rang 4/96

CHƯƠNG I. C ơ SỞ D ữ LIỆU HƯỚNG ĐỐI TƯỢNG
1 . 1 . G iớ i t h i ệ u p h ư ơ n g p h á p t i ế p c ậ n h ư ớ n g đ ố i t ư ợ n g
Phươniĩ pháp tiếp cận hướng đối tượng hiện nay đã trở nên rất phổ biến trong việc
nghiên cứu và phát triển các hộ thông Ihông tin và lập trình ứng tỉụng.
Đ ây là m ột cách tiếp cận hoàn toàn mới m ẻ, khác hẳn các phương pháp lập trình truyền
Chống như hướng chức năng hay hướng thủ tục (P rocedure-O riented Program m ing).
Phươnu pháp tiếp cận (approach) hướng đổi tượng (O bject-O riented) với quan điểm iấy

đối tượng làm nền tảng là m ột cách nhìn mới trong việc lập trình 15 Ị, cách tiếp cận này
tạo ra một khung nhìn trực tiếp, chính xác hơn vồ các hạ thống trong th ế giới thực. Đ ể
có thể hiểu rõ hơn vé cách tiếp cận này, chúng ta sẽ tìm hiểu các khái niệm về hướng
đối tượng trong các phần sau.

1.1 .1 . C ác k h á i n iệ m
i) Đối tượng (O bject):
Đối tưựng là sự biểu diễn các thực (hể (entity) trong th ế giới thực và được m ô lả thơng
qua các thuộc tính và hành vi của chúng. Các thực thể có thể là 1 khái niệm , 1 sự trừu
tượng hoặc ! vật có giới hạn rõ ràng và có ý nghĩa trong 1 lĩnh vực cụ thể.
M ột đối tượng gổm các thành phần:
+ Trạng thái (Stale)
+ Hành vi (Behavior)
+ Định danh (Identity)
Các đối tượng có thổ tương tác với nhau thông qua việc gửi thông báo (m essage).
- Lớp (class): Các đối tượng ciống nhau về hành vi (behavior) và tính chất
(charateristic) có thê nhóm lại trong m ột lớp. Khái niệm lớp như là m ột khn m ẫu của
các đối lượng, nó bao gồm định nghĩa các ihc tính (attribute) và các hành vi
(behavior) của đối tượng.
- Phân cấp lớp (class hierarchy): Khi các lớp được dẫn từ các lớp khác, chúng lạo thành
tập hợp các định nghĩa lớp theo cấu trúc cây (tree), trong đó mối quan hệ giữa 2 lớp
trong I nhánh được biểu diễn bằng quan hệ lớp con - lớp cha (subclass - superclass).
Lớp con được xem như ià sự đặc biệi hố (specialization) của lớp cha.

Chươ/IỊÌ /. Cơ sở dữ liệu hướìig dơi MỢìì ẹ


Trang 5/96
ii) Khái niệm về


_

hướng (lối tượng (Object Orientcd-OO):

Hướng đối tượng là sự kết họp các nội dung cùa Ihiết kế phần m ềm như sự k ế Ihừa
(inheritance), lính bao gói (encapsulation), che giấu thơng tin (inform ation hiding), hồ
trự các kiểu dữ liệu trừu tượng (data abstraction) hoặc do người dùng định nghĩa (userdefined type), m ô đun hố chương trình (m odularity), cho phcp các cơ ch ế sử đụng lại
(re u s a b le )... Cũng vì có các tính chất đó mà phương pháp tiếp cận hướng đối tượng đã
khắc phục được rất nhiểu nhược điểm trong iập trình truyền thống.

Hình 1.

Các thành phần hộ thống hướng đối tượng

Mơ hình đối lượng hay m ơ hình hướng đối tượng rất đa dạng, Nó bao gồm những m ạng
ngữ nghĩa và các ngôn ngữ lập trinh hướng đối tượng. C húng cho phép m ô hình hóa
những hệ thống phức tạp, trừu lượng hoặc hay thay đổi trong th ế giới thực.
Ta sẽ tìm hiểu lừng tính chất của một hệ thống thiết k ế theo hướng đối tượng.

1.1.2. T ín h th ừ a k ế
Thừa kế íà cơ c h ế chia xẻ bằng cách m ột lớp mới có thể được định nghĩa trong m ột
phần của lớp đã tổn tại, gọi là lớp cơ sở (base-class). Các lớp nhận được từ lớp c ơ sở bổ
.sung thêm hoặc định nghĩa lại cấu trúc và phương thức đã tổn tại trong lớp cơ sở, hay
nói cách khác thừa k ế là cơ c h ế chia xỏ các hành vi và thuộc tính giừa các lớp m à mội
iớp là sự đặc biệt hố cua lớp khác (quan hệ “ís a ” ).
Có thể phân ra 2 loại thừa kế:
+ Thừa kế phát triển lên (increm ental inheritance): quá trình bổ sung thôm các phương
thức và biến ( variable) vào khai báo các lớp hiện có đ ể thu dược các lớp mới. Kỳ thuật
này là cơ sở cho việc sử dụng lại các đoạn m ã của lóp ch a


(parent class) m à không

nằm trong bốt kỳ sự bảo đảm rằng lớp mới nhận ctuợe sẽ ỉà sự đặc biệt hoá của lớp cha.

Chương 1. Cơ sở dữ liệu hưímg đổi tượng


Trang 6/96 _____.......... .............^
+ Thừa k ế kiêu con

(stibtyping ỉtìherìtance): cho plìép sắp đặt các định nghĩa ỉớp trong

1 cấu Irúc phân cấp, ỉhoả m ãn điều kiện là các thành viên của lóp con
là các thành viên của lớp cha

(xubclass) cũng

(superclưss - siêu lớp).

1.1.3. T ín h b a o gói

- Bao

gói

cho phép định rõ các đoạn m ã và dữ liệu trong 1 phạm vi nhất định, được giới

hạn và điều khiển truy nhập bới các ứng dụng khách củ a các m odul được bao gói. Một
m odul được bao gói nếu như ứng dụng khách của m odul đó bị giới hạn bởi định nghĩa
ngơn ngữ lộp trình truy nhập đến m odul chỉ trong vùng được khai báo ở giao diện

ngồi. Q trình kết hợp giữa dữ liệu và m ã nguồn phù hợp với dừ liệu, tất cả trong mộl
m odul, Có nghĩa rằng khơng m ột người dùng nào có thể sử dụng các hàm dược cài đặt
bên trong các lớp (cỉass), m à chỉ phụ thuộc vào giao diện bén ngoài.
- Sự bao gói cho khả năng cất giừ ricng biệt đữ liệu và các phương thức (m ethod) tác
động lên dữ liệu đó. Tất cả các thơng tin của m ột hệ thống hướng đối tượng được lưu
trữ bên trong các đối tượng của nó và chỉ có thể hành xử khi các đối tượng đó được ra
lệnh thực hiện các thao lác [10]. Như vậy, sự bao gói khơng chí đơn thuần !à sự gom
ch ung dữ liệu và chương trình vào trong m ột khối mà chúng cịn được hiểu theo nghĩa
đổng nhất giữa dừ liệu và các thao tác lác động lên dữ liệu đó.
Khi đó, chúng ta không cần quan tâm đến vấn dề "phải làm cơng việc cụ thổ gì ” m à ta
chỉ điều khiển bằng mộ( m ệnh lệnh hay thông báo “ làm việc”, chương trình sẽ tự nhận
biết và thực hiện các phương thức được lựa chọn.
N hư vậy có m ột sự che giấu thơng tin (iníịrm aũon hiding) và chí có phương thức giao
tiếp làm cầu nối, giữa người dùng và tlữ liệu.

1.1.4. T ín h đ a c ấ u
Tính đa cấu (polym orphism ) là khả năng gửi các thông báo lới m ột vài đối lượng m à
được điều khiển theo cách đặc biệt . Những sự đáp ứng của các đối tượng tới các thông
báo chung ià chủ quan của từng đối tưựng. C lient gửi thơng báo m à khơng m ó tả kiểu
của đối tượng tới đích m à Ihơng báo được đánh địa chỉ. Cơ ch ế liên kết m uộn (late
bindins) được sử dụng để xác định dối tượns: ngay khi chạy là m ột dẫn chứng cho sự
cài đặí các phương thức đối với các thơng báo (m cssage).
Có thổ giới thiệu tính đa cấu trong mơi trường hướng đối tượng theo 2 phương thức;

Chương Ị . Cơ sở dữ ỉiệii hướng đối tượng




_ _


1 rang 7/96

...... ......... ............................_____...
.

_ _ _ _ _ ...................

Bằng cách phân lớp: phưưng thức đã khai báo trong 1 lớp cá biệt cũ n g tự

dộng

được khai báo ở tất cả các lớp con của nó.


Bằng cách nạp chổng: tên giông nhau được sử dụng đối với các phương (hức
trong những phẩn dộc lập của phân cấp lớp.

Tính đa cấu tạo ra phương thức liên kết phức tạp hơn ánh xạ m ột - m ột, đó là ánh xạ
một - nhiều của tên phương thức lên sự cài đặt.

ỉ . 1.5. T ín h trừ u tư ợ n g
- Dữ liệu trừu tượng (data abstraction); Cho phép người d ù n g định nghĩa các phương
thức trừu tượng trên dữ liệu trừu tượng. Hành ví của đối tượng dừ liệu trừu tượng được
khai báo m ột cách đẩv đủ bởi tập các phương thức trừu tượng trên đối urợng đó.

]. 1.6. Đ ố i tư ợ n g ph ứ c h ợ p - c o m p le x o b je c t
Các hệ thống hướng đối tượng hổ trợ các kiểu dữ liệu phức tạp, trừu tượng tức là m ột
đối urợng có chứa các thuộc tính m à các thuộc tính đó có thể là các đối tượng. H ay nói
khác đi, lược dồ của i đối tượng không phải ỉà ở dạng ch u ẩn 1 (F irst N orm al Form ).

Các thuộc tính trên có ihể là các đối urợng phức như: danh sách (list), lúi (bag) và lập
(set) hay các đối tượng nhúng (em bedded object).
O íc dối tượng phức hợp dược chia làm loại: Các đối tượng có cấu trúc và các đối tượng
phi cấu trúc.
- Các đối tượng có cấu trúc (structured) được tạo nên từ các thành phán và được khai
báo từ các kiểu dược tạo dựng sẵn ở các m ức khác nhau.
- Các ctốị tượng phi cấu trúc (unstructured) là các kiểu dữ liệu địi hỏi m ột số lượng lưu
trữ ión các đữ liệu đa phương tiện như ảnh (im age), video (phim ) .v.v. C ác hệ thống
hướng đối tượng cũng cho phép người dùng định nghĩa các kiểu dữ liệu m ới, bao gồm
các cấu trúc và thao tác, từ dó cho phcp tạo ra thu viện các kiểu d ữ liệu phức hợp. Từ
thư viện này, các kiểu dữ ỉiộu đã khai báo có thể được sử d ụ n g lại hoặc thay đổi dựa
trên việc thừa k ế các kiểu dữ liệu đã được định nghĩa.

1.1.7. N ạ p c h ồ n g , g h i đ è v à liên k ết m u ộ n
- Nạp chồng {overloading}: Lớp sửa đổi phương íhức đ ã khai báo, bằng cách sử dụng
tên ai ổng nhau, nhưng vớí danh sách kiểu hoặc tham số k h ác nhau.

Chương ì ■ Cơ sà dữ liệu hướng đối tượng


- Ghi dc (overriding): Sự cài dặt các phương Ihức sẽ phụ thuộc vào kiểu của đối urựng
m à nó gắn và«.
- Liên kết m uộn (late binding): Các phương thức chỉ được hiên dịch và chạy khi có lời
gọi den phương thức đó.
Hộ thốns được thiết k ế hao cồm các thành phần trên được xem như ìà một hệ thống
hướng đối tượng, trong dó có các thành phần được sử dụng lại (reuse), dỗ dàng thay dổi
và m ở rộng.

1 .2 . C ơ SỞ d ữ l i ệ u h ư ớ n g đ ố i t ư ợ n g


1 .2 .1 . G iói th iệ u c h u n g
Phát triển C ơ sở dữ liệu theo phương pháp liếp cận hướng đối tượng được đưa ra từ
những nãm 198Ü. T rong khi c ơ sở dữ liệu quan hệ

(relational database) được đặc lả rất

rõ làng bởi C odđ cả về m ặt m ơ hình cũng như ngơn ngữ hỏi dữ liệu, trong khi đó lại
chưa có m ột m ô tả đầy đủ cho hệ thống hướng đối tượng [15], mặc dù đã có m ột số sản
phẩm được phát triển trên thị trường (O bjectSfore, Oi, G em Slones, O bjeetivity/D B
Các cơ sở dữ liệu quan hệ hiện nay vẫn chiếm tỉ lệ lớn trong các hệ thống ứng dụng,
tuy nhiên nó cũ n g đ ã bộc lộ rất nhiều điểm yếu. Đạc biệt trong việc xây dựng các ứng
dụng với dừ liệu phức tạp, Irên qui m ô lớn như dữ liệu văn bản lớn, đổ thị (graphic),
các loại dữ liệu không gian (rong cơ sờ dữ liệu không gian
sở dừ liệu đa phương tiện (m ultim edia

(spatial databases) hay cơ

database)..., hoặc trong các hệ thống tương tác

phức tạp thì cơ sở dừ liệu quan hệ khơng giải quyết được. Chính vì vậy m à m ơ hình cơ
sở dữ liệu hướng đối tượng đã được quan tâm và phát triển trong những năm gần đây.
M ột cơ sở đữ liệu m ẫu được dưa ra năm 1989 (M anifesto), irong đó đưa ra các lựa
chọn, các đặc tính cần có của m ột cơ sở dữ liệu dối tượng, tập trung theo 3 hướng:
i) Hệ thống c ơ sở dữ liệu hướng đối tượng cần có các thành phần: Các đối
lượng phức hợp (com plex objects), định danh đối tượng (object identity), sự
bao gói (encapsulation), các kiểu hoặc ỉớp (types or classes), sự Ihừa kế
(inheritance), nạp chồng (overloading), ghi đè (overriding), ỉiên kết m uộn
(late binding), lí nh khả m ở (extensibility), bổ sung đầy đủ các tính tốn
(com putational com pleteness), lính bền vững (persistence), quản ỉý ỉưu trữ
(secondary storage m anagem ent), tương tranh (concurrency), khả năng khôi

phục (recovery) và các càu hỏi phức tạp (ađ hoc query).

Chương ỉ. Cơ sà dữ Ỉiệỉt hướng dối tượng


Trang 9/96
ii)

Ngoài ra, đc hỗ trợ cho hệ chống tốt hơn, có ihc có sự lựa chọn các thành
phần: đa Ihừíi kê' (m ultiple inheritance), kiểm tra kiểu (type checking), phân
lán (dislrỉbution), thiết k ế các giao tác (design transactions).

iii)C á c

hướng

m ở như:

lập trình

inäll (paradicm ), hệ thống

thể hiện

(representation system ), hệ thống kiểu (íype system ) hay thư viện kiểu, các
hộ thống đồng dạng (uniform ity).
Các nhà nghiên cứu gần đây cũng đã cố gắng đưa ra một chuẩn công nghiệp cho m ột
hệ quản trị cơ sở đừ liệu hướng đối tượng, điển liình như nhóm O D M G (O bject Data
M anagem ent G roup) với phiên bản O D M G -2 năm 1997. Trong đó đề cập đến các vấn
dề như m ơ hình hố đối tượng, các ngơn ngữ đặc tả đối tượng, ngơn ngữ hối đối tượng.

Ngồi ra, cịn có sự liên kết vói các ngơn ngữ lập trình hướng đối lượng như c + + , Java
hay Sm alltalk.

1.2 .2 . C á c đ ặ c trư n g tro n g c ơ sở d ữ liệu h ư ớ n g đ ố i tư ợ n g
Phát triển cơ sở dữ liệu hướng đối tượng thực chất là sự tích hợp phương pháp luận
hướng đối tượng vào hệ thống c ơ sở dừ liệu.

cơ sở Dữ LIỆU HƯỚNGĐỐI TƯỢNG
QUẦN TRĨ CO SỜ Dữ tl£u

Tlgp CẨN HƯỚNG Dối TƯƠNG

Phán
cẩp
lớp

Hình 2.

Đ ịnh

dành
đ ối
tưọng

C ác thành phẩn c ơ bản của cơ sớ

Như đã m ô ủi ở phần 1.1.1 các

Đối
tuợng

phửc
hợp

dữ

Kiểu
và lớp

Bao
gói

Nẹp
chong

ghi đè

Mỏ
rộng
lốp

sung
các
tính
tốn

liệu theo tiếp cận hướng đối tượng

đối rượng phức hợp (com plcx object) được tạo nôn từ

những kiểu dối tượng đơn giản. N hững đối tượng đơn giản nhấi là những đối tượng có

kiểu số nguyên (integer), ký tự (characler), những chuỗi byte (byte string), dữ liệu kiểu
Boole và Float. N gồi ra cịn có nhiều đối tượng phức tạp : bộ đữ liệu (tuple), tập hợp
(set), túi (bag), danh sách (list), và m ảng (array) là nhữỉìg ví dụ.
T ập hợp kiểu tối thiểu m à hệ thống cần phải có là tập hợp, danh sách và bộ dữ liệu.
Kiểu lập hợp thể hiện các tập hợp một cách tự nhiên từ th ế giới thực. Bộ ỉà thể hiện
thuộc lính cùa các thực thể

(entity). N hũng đanh sách hoặc những m ảng cũng quan

Chươnịị ì . Cơ sở dữ liệu hướng đối tượng


_

_

_____

'I r a n g

10/96

trọng bởi vì chúng có thứ ur, rất thuận lợi cho việc thể hiện các kiểu đối lượng trong thế
giới thực.

Định danh đối tượng (object identity) ln tổn lại trong suốt q trình Ihực thi chương
trình; Iron g m ơ hình với định danh đối tượng thì m ột đối tượng sẽ tổn lại độc lộp với
giá trị của nó. Như vậy, sỗ có 2 khái niệm tương đương

VC


đối tượng cùng tổn tại: 2 đối

tượng có thể dồng nhất (tức là chúng cùng là 1 dối iượiìg ) và 2 đối tượng bằng nhau
(nếu chúng có cùng giá trị). Từ đó có các khái niệm đối tượng chia xẻ và đối tượng cập
nhật.

Sự bao gói (encapsulation) được đặt ra: m ột là, do yêu cầu từ việc phân biệt giữa sự đặc
tả và cài đặt các thao tác (operation); hai là, do yêu cẩu m ô đun hố chương trình. Sự
bao gói cung cấp 1 khn dạng “độc lập dữ liêu logic” , giúp cho việc íhay đổi các cài
đật kiểu của dữ liệu mà không phải thay đổi chương trình có sử dụng kiểu đó. Sự bao
gói làm CỈ1 0 các thao tác thể hiện rất rõ ràng còn dữ liệu và sự cài đặt các thao tác đó
được che giấu (hiding).

Kiểu (type), trong m ột hệ thống hướng đối tượng là sự tổng hợp những dặc tính chung
của tập hợp các dối tượng với những đặc tính giống nhau. Nó tương ứng với khái niệm
của m ột kiểu dừ liệu trừu tượng gồm hai phần ; giao d iện và sự cài đặt. G iao điộn bao
gồm một danh sách các thao tác (operation) cùng với ký hiệu của chúng, phần cài đặt
kiểu hao gồm phần dữ liệu và phần các thao tác, tuỳ thuộc vào từng hộ ỉhống m à cấu
trúc của d ữ liệu có thể phức lạp hoặc khơng, phần thao tác gồm có các thủ tục đã khai
báo irong giao diện.

Lớp (class) thì khác với khái niệm kiểu: sự đặc tả của lớp thì giống

như của kiểu nhưng khác nhau ở thời điểm chạy hay thực hiện chương trình.
Kiểu dữ liệu trừu tượng (A D T - A bstract Data Type) là m ộl khuôn m ẫu cho tất cả các
đối tượng thuộc kiểu đó. T rong trường hợp này, ta không phán biệt giữa các đối tượng
hệ Ihống (các giá trị), các đối tượng cấu trúc (bộ, lập) và các đối tượng do người dùng
định nghĩa. M ột A D T m ơ iả kiểu của dữ íiệu bằng cách cung cấp m ột m iền dữ liệu với
cùng cấu trúc cũng như các thao tác (hay phương thức) áp dụng được cho các phấn lử

của miền đó. K hả năng trừu tượng hoú của A D T Ihường được gọi là tính bao gói như
đã nói ở trên, do đó m ỗi A D T có thổ được người dùng nhận ra thơng qua các tính chất
(property) mà nó hỗ trợ. Cấu trúc dừ liệu giao diện của A D T có thể phức tạp và lớn tuỳ
ý. Kiểu dữ liệu trừu tượng cung cấp 2 ưu điểm chính:

một là, kiểu nguyên thuỷ dược

cuim cấp bởi hệ thống có thê dề đàng dược m ở rộng

với các kiểu được người dùng

định nghĩa; t h ứ

hai, các thao tác A D T biểu thị các phần của chương trình ứng dụng có

Chương Ị . Cơ sà dữ liệu hướng dối tượng


liên kết ch ặt chẽ với dữ liệu, tuy nhiên khơng phai các thao lác sẽ được lưu síữ chung
cùng dữ liệu m à chúng có thổ được lưu irong các Ihư viện.

1.2.3, Q u ả n lý lưu trữ d ữ liệu
Lưu trừ d ữ liệu là vấn đé hết sức cần thiết trong việc thiết k ế cư sở dừ liệu, vì

sở dữ

00

liệu thưìm g rất lớn nên ta không thể lưu trữ tấĩ cả dữ liệu trên vùng nhớ chính.
1.2,3.1 Q u ả n lý đói tư ự ng

T rong liếp cận hướng đối tượng, trạng thái của đối tượng phức có thể được xây dựng
lên từ các đối tượng khác (hoặc giá trị) bằng cách sử dụng các tốn tử dựng kiểu (type
constructor) [7 ị. Có thể biểu diễn đối tượng m ột cách hình thức với m ột bộ ba
V)

(i, c,

với i ỉà định đanh đối tượng duy nhất; c là toán tử dựng kiểu và V ià trạng thái đối

tượng lioặc giá trị hiện thời. Ba kiểu cơ bẳn được xây đựng là kiểu nguyên thuỷ (atom ),
kiểu bộ (tuple) vằ kiểu tập (set); ngồi ra cịn các kiểu chung khác là list (danh sách),
bag (túi), và array (m ảng). K iểu nguyên thuỷ là những kiểu được xây dựng sẩn như:
kiểu nguyèn, thực, số, kí (ự, logic và một vài kiểu khác m à hệ thống hỗ trợ.
T rạng thái V của đối lượng (/,

c, v) được giải thích irơn cơ sỏ tốn ú‘r dựng c:

• Nếu c là kiểu ngun thuỷ thì trạng thái V là các giá trị được cấu thành lừ các
kiểu c ơ bản


Nếu

c íà kiểu tập hợp, trạng thái

V

Ịà tập các định danh đới tượng Ịiị, ìi,

inỊ


của tập các đối tượng có cùng kiểu


Nếu c là kiểu tuple (bộ) thì trạng íhái V là hộ của < a j:i|, a,:i),

a„:i„ > với iìj Ịà

lèn thuộc tính và ij là định danh đối tượng


Nếu

c là kiểu danh sách, giá trị V là m ột danh sách đã được sắp [ỉ], i2,

i„| các

định danh của các đối tượng cùng kiểu.


Nếu

c là là kiểu m ảng, trạng thái của đối tượng là m ột m ảng đơn chiều các định

danh đối tượng,
Ta sẽ minh họa cấu trúc đối tượng phức thông qua ví dụ sau:
o = (O ID , type constructor, State)
Oị = (i|, atom , ‘N guyen Van A n h ’)
o, = (i2, atom , 1975)
o, = (ij, set, { ij, i>})

04 = (i„ tuple, <H O T E N :ij, NAMSINH:i>, D IA C H I:i5>)

Chương /. Cơ sở cỉữ liệu hướng dổi tượng


...

............. ......... ,,,

Trang 12/96..................._ ..... ..............._

_

______

o s = (is, set, {¡ft, i7, i8})
o (>= (i6, tuple, < T R U O N G P H O N G :i|, N A M SIN H :i, >)

C ác dối tượng O ị , o 2 là các đối ỉượng nguyôn thuỷ, điểm phân biệt giữa các đối íượng Ịà
các giá trị hằng số. Đ ối tượng o4 có giá Irị là các bộ thuộc tính H O TEN , N A M SIN H ,
D IA CH Ỉ còn o5 là đối tưựng có kiểu tập với các giá trị phụ thuộc vào o6, o7, ox.
N gôn ngữ khai báo dối tượng (O D L-O bject D efinition L anguage) kết hợp chặt chẽ với
hàm dựng kiểu có thể khai báo các kiểu của đối tượng cho các ứng đụng CSDL riêng
biệt.

Quản Ịý ổịììh danh đối tượng (Object Identity):
Đ ịnh danh đối tượng - O ID là việc xác định m ột cách duy nhất m ỗi đối tượng: đối
tượng là tạm thời (transitive) hay bền vững (persitcnt), đo hệ thống tạo hay người dùng
tạo ra irong hệ thống. Cài đặt định danh cho các đối tượng bền vững nói chung khác
với cài đặt các đối lượng tạm thời vì trường hợp đầu địi hỏi phải cung cấp tính duy

n hất ở mức toàn cục. C ài đ ặt O ỈD của các đối tượng bển vững có hai giải pháp thông
dụng, dựa trên định danh ỉogic hoặc định đanh vật lý, chúng có những lợi điểm và hạn
c h ế như sau:
+ Đ ịnh danh vật lý PO ID (physical O ID ) là làm cho O ID bằng với địa chỉ vật lý của
đối tượng. Đ ịa chỉ này có thể là địa chỉ trang và m ột üffset tính lừ địa chí cơ sở của
trang. Ư u điểm ià có thể nhận dược đối tượng một cách irực liếp qua O ID của nó.
K hiếm khuyết là tất cả các đối tượng cha và các chi' m ục đều phải được cập nhật mỗi
khi một dối tượng được di chuyển đến m ột trang khác.
+ Phương pháp dùng định danh logic LO ĨD (logical O ID ) là cấp phát inộl O ÍD duy
nhấl cho mỗi đối lượng trên toàn hộ hệ thống {nghĩa là m ột đại diện). Vì O ỈD lằ bấl
biến nên khơng phải trả chi ph í nào khi đì chuyển đối tượng. Đ iều này có được qua một
bảng O ID licn kết m ỗi O ID với địa chỉ đối tượng vật lý, bù lại phải tốn m ột chi phí tìm
kiếm bảng cho m ỗi truy nhập đối lượng. Đ ể tránh phải trả chi phí của O ID cho các đối
tượng nhỏ không được dùng chung, cả hai phương pháp đều có thể xem giá trị đối
tượng như định danh của chúng. Các hộ CSDL m ạng và phân cấp đã đùng phương pháp
định danh vật lý này. C ác hệ CSD L hướng đối lượng có xu hướng dùng phương pháp
định danh logic vì nó hỗ trợ các mơi trường động tốt hơn.
Cài dặt định danh cho đối tượng tạm thời bao gổm những kỹ thuật được dùng trong các
ngơn ngữ lập trình. G iống với định danh dối tượng bền vững, chúng có thể thuộc loại

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


.... ...................._

........... '[ran g 13/96 ______

__ _

vậ{ iv hoặc loiĩic. Định danh vật lý có (hc là địa chỉ Ihực hay ảo củ a đôi tượng, tùy

thuộc vào việc bộ nhớ ảo có được cung cấp hay khơng. Phương pháp định danh vật !ý
có hiệu quả nhất nhưng khơng cho phép di chuyển các đối tượng. Cách dùng định đanh
logic, được dẩy m ạnh sử dụng bời lập í rình hướng đối tưcmg, xử lý các đối tượng một
cách thống nhất thơng qua bảng gián tiếp (indirection table), có tính cục bộ đối với sự
thực thi chương trình. Báng này liên kết một định danh logic, được gọi là con trỏ hướng
đối tượng O O P (O bject O riented Pointer) chỉ đến định đanh vật lý của đối tượng. Ta có
thể di chuyển đối tượng và chỉ m âì mộl bước tìm kiếm bảng cho m ỗi truy xuất đối
tượng. Đ iều cẩn cân nhắc đối với bộ quản ỉý đối tượng là sự được m ất giữa tính tổng
q u át và tính hiệu quả. Hổ trợ tổng qi của m ơ hình đối tượng sẽ phải mất một chi chí
nào đấy. T h í dụ: các định danh cho các đối tượng nhỏ có thể làm cho bảng O ID rất lớn.
N ếu hạn c h ế sự hỗ trợ của m ơ hình đối tượng; chẳng hạn bằng cách không cung cấp sự
chia xẽ trực tiếp các đối lượng, và bằng cách đặt cơ sở trên các m ức hệ thống cao hơn
(m ức trình bicn dịch hoặc ngơn ngữ CSDL) cho hồ trợ đó, chúng ía có thể có được tính
hiệu quả cao hơn. Q uản lý định danh đối tượng



liên quan m ật thiết đến các kỹ thuật

lưu trữ.
Tliông tin về định danh L O ID -PO ID thường được iưu trong các bảng băm hoặc cây B +
(B f-írec), cả hai đều có những ưu và khuyết điểm Ị 14]: bảng băm cho phép truy nhập
nhanh nhưng khơng nâng cấp được khi kích thước CSDL lãng lên. B+-trce giải quyết
được vấn đồ này nhưng lại m ất thời gian truy nhập logarithm và địi hỏi những chiến
iược điều khiển đồng thời và khơi phục (recovery) phức tạp.

Diếu ché'con trỏ ịpointer-swizzling)
T rong các hệ quản trị CSDL đối tượng, người ta có thể duyệt từ m ột đối tượng đến m ộl
đối tượng khác bằng cách dùng các biểu thức đường đi (path expression) có chứa các
thuộc lính với giá trị của chúng dựa trên đối tượng (thí dụ nếu

thì

c ihuộc kiểu cơng nhân

c.ten.hođem là m ột biểu thức đường đi), v ề cơ bản chứng đều là con trỏ. Thông

thường trên đĩa, định danh đối tượng dược đùng dể biểu diễn những con trỏ này. Tuy
nhiên trong bộ nhớ, người ta m uốn dùng các con trỏ nội nhớ (ín-m em ory pointer) để
duyệt lừ đối lượng này đến đối tượng khác, Q uá trình chuyển phiên bản con trỏ đĩa
(hành phiên bản con trỏ nội nhớ được gọi [à "điều c h ế con trỏ" (pointer-sw izziing). Các
lược đổ clựa trcn phần cứng và dựa trên phần m ềm là hai loại c ơ c h ế điều ch ế con trỏ
(W hite - D ew itt, 1994). Trong các lược đồ phần cứng, cơ c h ế khuyết trang (page fault)
của hệ diều hành được sử dụng. Cơ ch ế như sau: khi m ột trang được (lưa vào bộ nhớ,

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


_____

Trang 14/96

....... ................

tát cà các con trỏ trong đó đều được điều chế, và chúng chỉ đến các khung nhớ ảo dành
riêng (reserved virtual m em ory frame). Các Irang dữ liệu lương ứng với các khung này chỉ được lải vào bộ nhớ khi có truy nhập đến chúng. V iệc truy nhập trang sẽ sinh
ra m ột khuyết trang của hộ điều hành m à nó phải được ghi nhận và xử lý. Trong các
lược đồ phần niềm , m ột bảng đối lượng được dùng cho m ục đích điều chế con trỏ.
N ghĩa là m ột con trỏ được điều ch ế chỉ đến một vị trí trong bảng đối tượng. Có các
biến thể "hăng hái" và "trễ nải" của các lược đổ dựa phần niềm , tùy thuộc vào ỉúc con

trỏ cần được diều chế, Vì ihế mỗi iruy nhập dối lượng đéu có m ộl mức độ gián tiếp
(indirection) di kèm với nó. Ưu điểm của lược đổ phán cứng íà nó dẫn đến m ột hiệu
năng tốt hơn khi phải duyệt Ịặp đi lặp iại một cây phân cấp đối tượng

VI

không hiện

diện một mức độ gián tiếp cho mỗi lruy nhập đối tượng. Tuy nhiên trong những tình
huống tụ kérrì khỉ chỉ có một ít các đối tượng cần Iruy nhập m ỗi trang, chi phí cao cho
cư c h ế xử lý khuyết trang làm cho lược đổ phần cứng không được hấp dẫn lắnì.
Lược đồ phần cứng cũng khơng ngăn dược các ứng dụng khách tránh truy nhập các đối
tượng đã bị xóa trên m ội trang.
! .2.3.2 Q u ả n lý lư u t r ữ
Một vài hệ quản trị co' sở dữ liêu hướng đối tượng gửi các đối tượng giữa client và
server, gọi là hệ thống object-servcr, nhưng hầu hết các hệ thống hiện có tiều sử dụng
lược dồ trang (page-server), ở đây các trang dược gửi trong m ạng, được cố định kích
thước và có thể bao gồm m ội hoặc nhiổu đối tượng (các đối tượng lớn có thể m ở rộng
ra hơn m ột trang).
Trong cách liếp cận lược đổ trang, các (rang được coi như đơn vị truyền nhận dữ liộu
cư bán giữa client và server và tính nhất quán của bộ đệm được duy trì bởi thuật tốn
khố mức trang (C allback Locking) được đề xuấl bởi Carey. Giải thuậl này đảm bảo
các trang trong bộ đệm ở phía client dược giữ đúng. Trong khi các client quản lý các
khoá đọc, các server điều khiển các khoá ghi và phát hiện các vị trí của các trang bộ
đệm irỗn m ạng. Đối với việc client cập nhật trang, nó phải chứa khố íỉhi lừ server.
Nếu như khơng có khố ghi trên trang, server gọi lại tất cả các client m à lưu trữ trang
VCU cầu, so sánh vói khố duy nhất trcn trang riêng. Nếu m ỗi yêu cầu không thể được

chấp nhận, client sẽ Ihông báo cho server. Mặl khác, trang sẽ bị xố khỏi bộ đệm đồng
thời được ghì nhận rồi gửi thông báo cho server. Trong khi nhận lất cả các sự ghi nhận,

server sẽ đãng ký khoá ghi trcn trang cho

Chương Ị . Cơ sà dữ liệu hướng đối tượng

Y êu

cầu (ừ client và thông tin cho client

VC


cấp plìát khố ghi. T ừ đó irở đi tấl c;'i các yêu cáu dọc/ghi dối với trang bị ngăn cản bởi
server cho đến khi khố ghi được giải phóng. Điều này chí xảy ra sau khi client nắm
ẹiữ hang khố ghi, truyền írang đã cập nhật trở lại server sau khi thao lác ghi hoàn
thành.
C ách liếp cận object-server hầu như cũng giống page-server chỉ trừ các hàm bao gồm
truyén dữ liệu, dieu khiển tương Iranh và quản lý nhân bản, tất cả sử dụng nhân dữ liệu
là đối tượng. Theo phương pháp này, cách sử dụng bộ nhớ có thể được giảm thiểu đáng
kc và sự chia

XC

sai có thể được ngăn ngừa hoàn toàn. Tuy nhiên cách này cũng có

nhược điểm là việc truyền thơng dữ liệu sẽ gặp khó khăn nếu có nhiều u cầu được
phát sính tại một thời điểm .

1.2.4. N g ô n n g ữ hỏi h ư ớ n g đ ố i tư ợ n g O Q L
V iệc xây dựng m ột hệ thống ngôn ngữ hỏi O Q L (O bject Q uery Language) là lất cẩn
thiết trong quá Irình phát triển hệ cơ sở dữ liệu. Tuy được đặl vấn đề từ rất sớm nhưng

VJ các hệ thống hướng đối tượng ỉà rất phức tạp, do đó việc nghiên círu về vấn đề này

vẫn dược rất nhiều người quan tâm. Các hệ quản trị CSDL quan hệ đã Ihu được nhiều
ích lợi íừ định nghĩa ban đầu về mộl ngơn ngữ hỏi chính xác và hình thức cùng với m ột
tập các phép toán đại số quan hệ được chấp nhận rộng rãi, các hệ quản trị cơ sở dữ liêu
đối lượng khơng được như vây.
Có một mối liôn hệ m ậl thiết giữa các kỹ thuật lối ưu hóa cău hỏi, m ơ hình câu hỏi và
ngơn ngữ hỏi. T hí dụ như m ột ngơn ngữ hỏi chức năng có xu hướng tối ưu hóa chức
năng, và nó hồn tồn khác với các kỹ thuật tối ưu hóa đựa irên đại số và dựa trên chi
phí dã được dùng trong các hệ thống quan hệ lẫn m ột số hệ thống hướng đối lượng.
C húng ta sẽ tìm hiểu ngơn lìgữ câu hỏi O Q L (O bject Q uery language) Ị 16], đó ỉà mội
phiên bản hướng đối tượng của ngôn ngữ SQL. Phần lớn các m ơ hình xử lý câu hỏi đối
tượng đã được đổ xuất cho đến hôm nay đều dùng các kỹ thuật tối ưu hóa đã được phát
(riển cho các hệ ühơ’ng quan hệ. Tuy nhiên có m ộl số vấn để khiến cho việc xử lý và tỏi
ưu hóa câu hỏi phức tạp hơn nhiều trong các hệ quản trị cơ sở dữ liệu hướng đối tượng.
Các vấn đề quan trọng được trình bày dưới đây [21]:
I. Ngơn ngữ hỏi quan hệ íhực hiện trên những hệ thống kiểu rất đơn giản bao gồm m ột
kiểu duy nhất; quan hệ. Tính chất bao đóng của các ngơn ngữ quan hộ cho thấy rằng
mỗi toán tử quan liệ nhận m ột hoặc hai quan hệ ỉàm toán hạng và sinh ra m ột quan hệ
làm kốl quả. Ngược lại, các hệ đối tương có các hộ thống kiểu phong phú hơn. Kết quả

Chương ỉ . Cơ sở íỉữ liệu hướng đối tượng


..............

ÍYang 16/96

...............................................


của các phép loan đại số dối tượng thường ià các lập đối tượng (colỉection) mà chúng
có thể thuộc những kiểu khác nhau. Nếu ngôn ngữ đối tưựng ià đóng dối với những
tốn lử dại số íhì các tập dối tượng đa hình này có thể làm tốn hạng cho những lốn tử
khác. Điều này địi hỏi phải phát trien các lược đồ suy diễn kiểu chi liếl để xác định
những phương ihức nào có Ihể áp dụng được cho tất cả các dối tượng trong m ột tập như
thế. Hơn nữa như đã nói ở trên, các dại sô' đối tượng thường thực hiện irôn các kiểu lập
hợp (collection), ví dụ như tập hợp (set), túi (bag), danh sách (list) có ý nghĩa khác
nhau, dặt thêm những yêu cầu cho các lược đồ suy diễn kiểu khi xác định kiểu các kết
quá của các thao tác trên các tập với nhiều kiểu khác nhau.
2. Tối ưu hóa câu hỏi quan hệ phụ thuộc vào hiểu biết về cách ỉưu trữ dữ liệu vật lý
(đường truy nhập m à chúng thường có sẩn cho việc tối tru hóa câu hỏi, T rong khi đó
bao gói các phương thức với đừ liệu m à chúng ihao ĩác trong các hệ quản trị cơ sở dữ
liệu hướng đối tượng lại làm nảy sinh ít nhất hai vấn đề quan trọng. Trước tiên xác định
(hoặc đánh giá) chi phí thực thi các phương thức rõ ràng ỉà khó khăn hơn nhiều so với
tính tốn chi phí truy nhập m ột thuộc tính theo m ột đường truy nhập. Thực sự các mặt
tối ưu hóa phải quan tâm đến việc tối ưu hóa việc thực thi các phương thức mà đây
khơní» phải là bài tốn dễ vì các phương (hức có thể được viết bằng m ột ngơn ngữ lập
trình tổng qi. Thứ hai việc bao gói làm nảy sính các vấn đề có liên quan đến khả
năng d uy nhập các thơng tin lưu trữ của việc xử lý câu hỏi. M ột số hệ thống giải quyết
khó khăn này bằng cách xem việc lối ưu hóa câu hỏi như m ột ứng dụng đặc biệt, có thể
phá bỏ được sự bao gói và truy nhập trực tiếp các thơng tin. N hững hệ thống khác dề
xuAít một cơ c h ế m à qua dó các đối lượng bộc lộ chi phí của chúng như m ột phẩn irong
giao diện của chúng.
3. Các đối tượng thường có cấu trúc phức tạp, qua đó trạng thái củ a m ột đối tượng lại
tham chiếu đốn m ột đối tượng khác. T ruy nhập các đối tượng phức như th ế phải chứa
cả các biểu thức đường đi (path expression). Tối ưu hóa biểu thức đường đi là m ột vấn
đề chủ chốt và quan trọng trong các ngốn ngữ hỏi hướng đối tượng. Hơn nữa các đối
lượng ihc các kiểu có liên hệ với nhau qua các phân cấp thừa kế. Tối ưu hóa việc
truy nhập các đối tượng qua các phân cấp thừa k ế của chúng cũng ỉằ m ột bài toán phân
biệt các xử lý cáu hỏi hướng đối tượng với xử lý câu hỏi quan hộ.

4. Mộl vấn đề trong các hệ quản Irị cơ sở dữ liệu là sự thiếu vắng m ột định nghĩa mổ
hình dối tượng được thừa nhận rộng rãi. M ặc đù có m ột số điểm thống nhấi về tập các
dặc trimg c ơ ban cẩn phải đtrợr hỗ Irợ trong mọi m ơ hình đối tượng (chẳng hạn như
định (lanh đối tượng, bao gói trạng thái và hành vi, k ế thừa kiểu, và các kiểu tập), cách

Chương ỉ . Cơ sở dữ ìiện hướng đối tượng


['rang 17/96
thức hỗ Irợ những dặc trưng này đều khác nhau trong các m ơ hình

V il

hệ thống. Kết quả

là nhiều dự án thứ nghiệm với các kiểu tối ưu hóa đối tượng đi theo những xu hướng
hồn tồn khác nhau và ở một mức độ nào dó đéu khơng tương thích, làm cho chúng ta
hết sức khó khăn khi m uốn sử dụnq các kết quả của những m ơ hình khác. Bài vì sự đa
đạn« vé các phương thức tiếp cận có lỗ

SC

thịnh hành trong m ột thời gian nào đó, các

tiếp cận m ở rộng được vể vấn đề tối ưu hóa câu hỏi eho phép thử nghiệm những ý
tưởng mới khi chúng tiến trien là đicu rất quan trọng đối với việc xử !ý các câu hỏi
hướng đối tượng.
i) K iến irúc xử

iv


câu hỏi

Tối ưu hóa câu hỏi có thể được m ơ hình hóa như m ột bài tốn tối un hóa m à lời giải
của nó là sự chọn lựa trạng thái "tối ưu” (tương ứng với m ột câu hỏi đại số) dựa trên
m ột hàm chi phí (cost function) trong m ột khơng gian trạng thái, cũng được gọi là
khơng gian tìm kiếm (State space hay search space) biểu diễn cho m ột họ các câu hỏì
đại số tương đương, v ề m ặt kiến trúc, bộ xử lý câu hỏi khác nhau ở cách thức chúng
m ơ hình hóa những thằnh phẩn này.
N hiều cách lối ưu hóa hệ quản trị cơ sớ dữ liệu hướng đối tượng hiện có được cài đặt
như thành phần của bộ quản Ịý đốt tượng bên trên m ột hệ thống lưu trữ, hoặc như các
m ô đun khách trong m ột kiến trúc client/server. Trong phần lớn các trường hợp, các
thành phần được đổ cập ở trên được "nối cứng" vào trong phương thức tối ưu hóa cãu
hỏi. Cứ cho rằng tính m ở rộng được là mục tiêu chính của các hệ quản trị cơ sở dữ liệu
hướng dối tượng, người ta hy vọng sẽ phát triển một phưcmg pháp tối ưu hóa có thể m ở
rộng đẩ đáp ứng cíưực các chiến lược tìm kiếm , các đặc tả đại số (với những qui tắc
biến đổi khác nhau) và hàm chi phí khác nhau, Phương pháp lối ưu hóa cftu hỏi dựa
Irên quì lắc được Freytag đưa ra năm 1987 cung cấp m ột

số khả năng m ở rộng bằng

cách cho phép định nghĩa những qui tắc biến dổi mới, Tuy nhiên chúng không cho
phép m ở rộng theo những trục khác. Sau đây là m ột số dề xuất m ới về khả năng m ở
rộng tronc các hộ quản trị cơ sở cỉữ liệu hướng đối tượng.
Dự án O pen O O D B của W ells năm 1992 tập trung vào định nghĩa m ột bộ khung kiến
trúc m ỏ cho các hệ quản trị cơ sở dữ liệu hướng dối tượng và m ô tả không gian thiết k ế
cho nhữim hệ thống này. M ô đun câu hịi là m ột thí dụ vé tính m ừ rộng được nội m ô
đun trong o p e n OODB. M ơ hình tối ưu hóa câu hỏi được Blakeỉey xây dựng năm ỉ 993
bằng cách d ù n g bộ sinh m ơ hình tối ưu hóa V olcano (V olcano optim izer generator)
(G raefe - M ekenna), có thể m ở rộng ứng với các lốn tử dại số, các qui tắc biến đổi


ChươììiỊ ỉ . Cơ sở dừ liệu hướng đối tượng


Trang 18/96... .

^

^

......

logic, các thuật toán thực thi, các qui tắc cài dật, hàm đánh giá chi phí và các hàm
cưỡng c h ế tính ehấi vật !ý (thí dụ sự hiện diện của các đối tượng trong bộ nhớ). Sự tách
biệt giữa các cấu trúc phàn lích cú phííp của ngỏn ngữ hỏi với đồ thị toán tử dược m ơ
hình tối ưu hóa thưc hiện cho phép thay Ihế chính ngơn ngữ hoặc chính m ơ hình tối ưu
hóa, Sự tách biệt giữa các tốn tử đại số và các thuật toán lhực thi cho phép khám phá
những phương pháp cài đặt khác nhau cho các toán tử đại số. V iệc sinh m ã cũng ¡à m ột
{hành phần con được định nghĩa rõ ràng của m ô đun câu hỏi, nó tạo dễ dàng cho việc
đưa thêm các m ô đun câu hỏi vào thực hiện bên irồn các hệ quản trị cơ sở dữ ỉiệu khác.
Dự án E P O P do M ìlchell đề xướ ns là một cách tiếp cận khác về vấn dề m ở rộng khả
rìãng tối ưu hóa câu hỏi,

ở dó khơng gian tìm kiếm được chĩa thành các vùng (region).

M ỗi vùng tương ứng vói m ột họ các biểu thức câu hỏi tương đương có thể đến được từ
những họ khác. Các vùng khơng nhâì thiết phải hồn toàn độc lập và khác nhau về các
câu hỏi m à chứng thao tác, các chiến lược điều khiển được dùng, các qui tắc biến đổi
câu hỏi, và các m ục tiêu tối ưu hóa cần đạt. T h í dụ m ột vùng có thể bao quá! các qui
tắc biến đổi sẽ giải quyết với các câu hỏi chọn dơn giản, cịn vùng khác có thể giải

quyết với các biến đổì cho các câu hỏi lồng (nesíed). Tương tự m ột vùng có thổ có m ục
licu cực tiểu hóa hàm chi phí, cịn m ội vùng khác có thể c ố gắn g biến đổi các câu hỏi
chành một dạng m ong m uốn nào đó. Mỗi vùng có thể được lồng đến m ột số mức, cho
phcp tìm kiếm phân cấp bèn trong một vùng. Vì các vùng không biểu diễn cho các lớp
tương dương, chiến lược điều khiển tồn cục cần phải có để xác định xem m ơ hình tối
ưu hóa câu hỏi cần chuyển như th ế nào từ vùng này đến vùng khác.
Dự án T ÍG U K A T I ỉ ] sử dụng cách tiếp cận dối tượng để m ở rộng k h ả năng xử lý câu
hỏi. Mơ hình đối tượng T1GUKAT là m ột m ơ hình hành vi Ihống nhấi có thể m ở rộng,
được đặc trưng bởi m ột ngữ nghĩa hành vi đơn íhuần và m ột cách tiếp cận thống nhâì
đối với đối tượng. M ổ hình này có đặc trưng hành vi

ở chỗ cách duy nhất truy nhập

được các đối tượng ỉà áp dụng các hành vi cho các đối tượng (chúng thay cho cả biến
thể hiện và phương ihức có trong các m ơ hình dối tượng khác). H ành vi được định
nghĩa trên kiểu và sự cài đặt của chúng được m ơ hình hóa như các hàm . (kiểu và lớp là
khác nhau). C ác câu hỏi thực hiện trên các tập và trả về các lập làm kết quả. Mổi khái
niệm, kổ cả kiểu, lớp, tập thể, m eta thông tin, !à một đối tượng ỉớp đầu tiên (first-class
object). T ính thống nhất của IÌ1Ơ hình đối tượniĩ m ở rộng cho m ơ hình câu hỏi, xử lý
các câu hỏi như các đối tượng hạng nhất. M ột kiểu
con của kiểu

Query được định nghĩa như kiểu

Function. Vì thố câu hỏi là m ột loai hàm đác dụng có thể được hiên dịch

và thực thi. Hơn nữa kiểu

Query có thể được dặc dụng dựa trên m ột lược đổ phân loại -


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


T rang 19/9 6

_____

____

như các câu hỏi chuycn dụng và câu hỏi thực dụng. N guyên liệu

_ _

____ ...

và thành phẩm của

các câu hỏi là các tập (các đối tượng), cung cấp dược một hệ đóng.
M ơ hình lối ưu hóa câu hỏi T ÍG U K A T lu ân theo cùng ý tưởng biểu diễn các khái niệm
hệ thống bằng các đối tượng và đi theo chiều hướng của L anzelotte và

V aỉduric.

K hơng gian tìm kiếm , chiến lược tìm kiếm và hàm chi phí được m ơ hình hóa bằng các
đối lượng. V iệc đưa các thành phần này vào trong hệ thống kiểu cung cấp khả năng mở
rộng thông q u a nguyên tắc đổi tượng cơ bản là sinh kiểu con (subtypíng) và chun
biệt hóa (specialization).
M ơ hình hóa các đơn vị xây dựng của việc tối ưu hóa dựa trên chi phí như các đối
tượng đã cu ng cấp cho phương pháp tối ưu hố khả năng m ở rộng vốn có irong các mơ
hình đối lượng. M ơ hình tối ưu hóa về cơ bản cài đặt m ột chiến lươe íìm kiếm có liên

kết hàm chi phí và một chiến hrợc tìm kiếm với m ỗi câu hỏi.
ii) Các vấn đ ể xử ỉv câu hỏi
Phương pháp luận xử lý câu hòi trong các hệ quản trị cơ sở dữ liệu hướng đơi tượng thì
tương tự như trong các hộ thống quan hệ, nhưng có nhiều chi tiết khác biệt do đặc
trinm của

I11Ơ

hình dối tượng và ngơn ngừ hỏi, Trong phần này chúng ta sẽ xem xét

những khác biệt khi chúng được áp dụng cho việc tối ưu hóa đại số. C húng ta cũng
thảo íuận m ột bài tốn đặc biệt của m ơ hình câu hỏi đối lượng, đó ỉà vấn đề thực thi
các biểu thức dường đi


Tối ưu hóa đại số

Ưu điểm chính của lối ưu hóa đại số nằm ở chỗ mội biểu thức câu hỏi đại số có thổ
được biến đối bằng cách dùng các tính chất đại số chuẩn mực như tính bắc cầu, tính
giao hốn, tính phân phối. T rong q trình xử !ý, người ta loại bỏ các phương án có
thời gian thực thi kém hơn so với giá trị nhỏ nhất đã tìm ra trước đó. Các qui tắc biến
dổi phụ thuộc rất nhiều vào từng đại số đối lượng cụ thổ vì chúng được dịnh nghĩa
ri ơng biệt cho mỗi đại số đối tượng và cho các tổ hợp của chúng. V iệc khơng có một
định nghĩa chuẩn cho đại số đối tượng gây nhiều khó khăn bởi vì cộng đồng nghiên
cứu khơng ibể thu được những ích lợi từ việc tổng q u át hóa nhiểu nghiơn cứu khác
nhau. Các vấn đề tổng quát của việc định nghĩa các qui tắc biến đổi và sự thao tác các
biểu thức dại sơ' hồn tồn tương tự như Irong các hệ thống quan hệ nhưng có m ột khác
biệt quan trọng. Các biểu thức câu hỏi quan hệ được định nghĩa trên các quan hệ
phắng. còn các câu hỏi đối tượng được định nghĩa trên các lớp (hoặc tập hợp các dối
tượng) m à chúng có m ối liên hệ kiểu con hoặc hợp phần với nhau. Vì th ế chúng ta có


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


Trang 20/96

_

thể (.lùng ngữ nghĩa của những mối liên hệ này tronc các m ỏ hình tơi ưu hóa câu hỏi
đối tượng đ ể có »hể có thêm những biến đổi khác.
C hẳng hạn xct ha toán tử đại số đối tượng Ị 1] là
hiệu là n và toán tử


union (ký h iệu là

)

intersection (ký

select có tham số (ký hiệu là Per ị,- < Ọ | . . . Q k > ), trong đó union

intersection có ngữ nghĩa như trong lý thuyết tập hợp llìơng thường, select chọn các

đối tượng từ tập

p bằng cách đùng các tập đối tượng Q ị . . . Q k làm iham số (th eo m ột

n g hĩa nào đó là mộl hình thái suy rộng của nối nửa). Kết quả của những toán tử này
cũng ià các tập dối tượng. Dưới đây íà m ột sơ qui tắc biến đổi có thể được áp dụng

trong khi tối ưu hóa nhằm ỉhu được các biểu Ihức câu hỏi tương đương (để ch o ngắn
gọn, chúng ta đùng ký hiệu

Qseĩ biểu

thị cho Qi . . . Q k; Rset được định nghĩa tương tự:

P ơ H < Qset >) ơ P2 < Rset > <=> (Pơ ,.'2 < Rset >) ơ PI < Qset >
cr ụ <

(P

ịPơ

ị.Ị

<

RSet

>

Qser >) cr 2 Rset >
P

<

o

(p ơ ị: <


Rset >)

»

(Pơ H < Qset

u (Q ơ f; <

>) n (Per

ị.- ,

Rset >)
<

Rset >)

Q uì tấc đầu tiên biểu hiện tính chất giao hốn của select cồn qui tấc thứ hai diễn tả
rằng select phân phối trên union. Quỉ tấc thứ ba là m ột đ ồ n g nhất thức biểu thị rằng
select chỉ hạn c h ế nguyên liệu của nó và trả về m ột tập con củ a đối thứ nhất. Hai qui
lắc dầu tiên hoàn toàn tổng quát ở chỗ chúng biểu thị ch o các hệ thức tương đương k ế
thừa từ ỉý thuyết tập hợp, Q ui tắc thứ ba ià m ột qui tắc biến đổi đặc b iệt cho m ột toán
tử đại số đối tượng cụ thể, được định nghĩa với một ngữ nghĩa cụ thể. T u y nhiên cả ba
đều có bản chất cú pháp. T rong đó Cị biểu thị cho lập đối tượng trong d ò n g tộc củ a lớp
C; và c* j biểu thị dịng tộc xa của lóp Cj (nghĩa là tập các đối tượng tro n g d ò n g tộc của
Cj cũng như trong các đòng tộc của tất cả các Ịóp con của Cj)
Cl

n C2


Ci n c

*2

- ệ
= c

nếu C|
*2

* c2

nếu Cj là lớp con của c2

( P ơ v < Qset >) r> R <=> (P ơ F< Qset >) n (Rỡ-p < Qseí >)o P n ( R ơ p< Qset >)

những qui tắc biến đổi này có bản chất ngữ nghĩa vì ch ú n g phụ th u ộ c vào các đặc tả
m ơ hình đối tượng và mơ hình câu hỏi. T hí đụ qui tắc thứ nhất đ ú n g vì mơ hình đối
tượng hạn c h ế mồi đối lượng chỉ thuộc về ITÌỘI lớp duy nhất. Q ui tắc th ứ hai đ ú n g vì mơ
hình C1ÌU hỏi cho phép truy tìm các đổi lượng trong dịng tộc xa của lớp đích. C uối cùng
qui tắc thứ ba đại c ơ sở trên các qui tắc nhất quán kiểu [Straube - Oz.su, Ỉ9 9 0 b [ vể khả

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


T

r a n g


2

1 / 9 6

n ăn e áp dụng của nó cũng như một điều kiện (ký hiệu là <• (rên
F

tương dương o ) tức ỉà

đổng nhất với F, ngoại ỉrừ m ỗi xuất hiện của Ị) được thay bằng r.

Thuật loán tim kiếm đầu tiên là các thuật tốn tìm kiếm vét cạn sẽ liệt kê tồn bộ
khỏnq gian tìm kiếtn, áp dụng m ột hàm chi phí cho m õi biểu thức tương đương để xác
định biểu thức có chi phí thấp nhất. Một cách tốt hơn ỉà dùng lối tiếp cận qui hoạch
động, qua đó các biểu thức m ới được xây dựng (ừ dưới lên bằng cách dùng các biểu
thức con tối uru đã được xác định trước đó [Lee et a l„ I9 8 8 |. Bộ sinh m ơ hình tối ưu hóa
V olcano sử dụng lối tiếp cận qui hoạch động từ trên xuống để tìm với kỹ thuật tỉa rè'

nlìứnh-vủ-bnộc (bradh-and-bound pruning) [G racie - M ckenna, 1993]. Chúng được gọi
chung là các thuật

loán liệt kê (enum erative algorithm ).

Ban chất tổ hợp của các thuật tốn tìm kiếm liệt kê có lẽ quan trọng hơn trong các
DBM S đối tượng so với DBMS quan hệ. Người ta cho rằng nếu số lượng nối trong m ột
câu hỏi vợt quá mười thì các chiến lược tìm kiếm liệt kê sẽ không khả thi Ịloannidis W ong, 19871. T rong các ứng dụng như các
system ) m à các hệ quản trị

hệ hỗ trợ quyết định (decision support


cơ sở dữ liệu hướng đối tượng rất thích hợp, thường gặp

phải các càu hỏi với độ phức tạp này. Hơn nữa, một phương pháp thực thi các biểu thức
đường di là biểu diễn chúng như các

nối hiện (explicit jo in ) và dùng các thuật tốn nối

đã dược biết để tối ưu hóa chúng. Nếu là trường hợp này thỉ số ỉượng nối và các thao
lác có ngữ nghĩa nối trong một câu hỏi hoàn toàn cao hơn ngưỡng tới hạn 10.
Trong những trường hợp như thế, các thuật tốn tìm kiếm kiểu ngẫu nhiên (random ized
search algorithm ) có {hể được xcm như những chọn lựa nhằm hạn c h ế vùng khơng gian
tìm kiếm cần phải phùn tích. Tuy nhìẻn chưa có bất kỳ m ột nghiơn cứu nào vé các thuật
toán Om kiếm kiểu ngẫu thiên trong ngữ cảnh các hệ quản trị c ơ sở đữ liệu hướng dối
tượng. Các chiến lược lổng qt có lẽ khơng thay đổi nhưng việc điều chỉnh tham số và
định nghĩa không gian các lời giải chấp nhận được cần phải thay đổi. M ơ hình tối ưu
hóa sẽ xem xét số lượng các mục dữ liệu (ìực lượng), kích thước mỗi m ục, tổ chức của
I1Ĩ (thí dụ như có chí m ục trên nó hav khơng). Thơng tin này có sẩn cho m ơ hình tối ưu
hóa cảu hỏi trong các hệ thống quan hộ (ihông qua hổ SO' hộ thống) nhưng có thể khơng
có trong các hệ quản trị cơ sở dữ liệu hướng đối tượng.
H àm chi phí có thể được định nghĩa m ột cách đệ qui dựa trên cây xử lý đại số. Nếu cấu
trúc nội tại của các đối tượng không thể thấy được bởi m ơ hình tối ưu hóa câu hỏi, chi
phí của m ỗi nút (biểu diễn m ột phép loán đại số) phải được định nghĩa. M ột cách để
dịnh rtchĩa nó là yêu cầu các đối lượng "bộc lộ" chỉ phí cua chúng như thành phần của

Chương ỉ . Cơ sá dữ liệu hướng dối tượng


Trang 22/96
g iao diện ( 15]. Một tiếp cân (ương lự được cung cấp trong dự án T IG U K A T [ I ]. Vì các
phcp Joan dại số kì những hành vi được định nghía trên kiểu tập (collection), các nút

của cây xử lý đại số ià các áp dụng hành vi, Có nhiều hàm khác nhau cài đặt mỗi hành
vi (biểu dien các thuật toán thực thi khác nhau ), trong ỉrường hợp này các hành vi "bộc
íộ" chi phí của chúng như m ột hàm của thuật loan thực thi và lập m à chúng thực hiện
trên dó. T rong cả hai trường hợp m ột hàm chi phí trừu tượng hơn cho các hành vi được
đặc tả vào lúc định nghĩa kiểu để từ đó m ơ hình lối ưu hóa câu hỏi có thể tính dược chi
phí của tồn bộ cây xử lý. Đ ịnh nghĩa các hàm chi phí, đặc biệt là trong cách tiếp cận
dựa ircn việc các đối tượng bộc lộ chi phí của chúng ỉà rất cần thiết.



ITiam số hóa

Tối ưu hóa câu hỏi ỉúc biên dịch ià m ột q trình tĩnh ơ chỗ m ơ hình tối ưu hóa sử
dụng các số ỉiệu thống kê cơ sở dữ liệu vào lúc câu hồi được biên dịch và được tối ưu
hóa bằng việc chọn phưcmg án thực thi lối ưu, Quyết định này độc lập với số liệu thống
kê lúc Ihực thi như tải trọng hệ rhống chẳng hạn. H ơn nữa nó khơng quan tâm đến
những lỉiay đổi Iren các số liệu thống kê cơ sở dừ liệu do kết quả củ a các cập nhật có
thể xảy ra giữa thời điểm câu hỏi được tối ưu hóa và thời điểm nó được thực thí. Đ ặc
biệt đây là m ột vấn đề trong các câu hỏi thuộc loại sản xuất với khả năng được tối ưu
hóa một lẩn (vói chì phí đáng kể) và dược thực chỉ nhiều lẩn. Nó có thể là một vấn đề
nghiêm trọng him trong các hệ quản trị cơ sở dữ liệu hướng đối tượng với khả năng
được dùng như các kho dữ liệu cho bản m ẫu thiết kế. N hững cơ sở dữ liệu này theo
định nghĩa thường xuyên bị biến đổi dẫn đến nhiều thay đổi có ý nghĩa đối với CSDL
{điều này giải thích

VI

sao sự phát triển các lược dồ động rất quan trọng trong các hệ

quản trị cơ sở dữ liệu hướng dối tượng). Chiến lưực tối ưu hóa câu hỏi phải có khả năng

thích ứng được với những thay đổi này, Vấn đề này có thể được giải quyết bằng một
trong hai cách.

Mộỉ lủ xác định m ột khoảng thời gian tối ưu hóa/tái tối ưu hóa và thực

hiện lại việc tối ưu hóa câu hỏi theo định kỳ. M ặc dù đây là cách đơn giản, nó dựa trên
một khoang thời gian cố định m à việc xác định là m ột vấn đề khó. M ột biến thể đơn
giản là xác định thời điểm tối ưu hóa lại dựa trơn sự khác biệt giữa thời gian thực thi
Ìhực sự và thời ỄỊĨan thực thi dự báo. Kết quả íà hệ thống vào lúc chạy phải có khả năng
theo dõi thời gian thực Ihĩ ỉhực sự, và mỗi khi nó ỉệch quá xa khỏi í hời gian dự kiến
m ột ngưỡng cố định nào đó, câu hỏi cần được tối ưii hóa lại. Một lần nữa việc xác định
ngưỡng này là một diều cần xcm xét cũng như chi phí lúc chạy để theo dõi việc Ihực

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


T rang 23/96

................................ ....

_

thi cáu hỏi. ìMột chọn lựa khác đã được nghiên cứu đo các nhà khoa học G racfc, W ard
và Ioannidis được cài đặt trong O bject store [14] là tối ưu hóa câu hỏi với
param etric query optim ization) và cũng được gọi là

iham s ố (

chọn tựa phươỉỉí> ủn động (dynam ic


plan selection). T rong trường hợp này, m ơ hình tối tru hóa duy trì nhiều chiến lược thực
thi vào [úc biên dịch và thực hiện chọn lựa phương án cuối cung vào lúc chạy dựa vào
các tham số hệ ihôYig và số liệu thốn« kê hiện (hời của cơ sở đữ liệu. Nếu m ơ hình tối
ưu hóa khơng có quyền truy nhập tâì cả những dữ liệu này, việc tối ưu hóa dại số có thể
bỏ qua tất cả các dặc ỉrưng thực thi vật lý thay vì sinh ra m ội tập các biểu thức câu hỏi
tương đương "m ong m uốn" (luỵ được dính nghĩa) m à chúng được chuyển giao cho bộ
quản lý đối tượng. Bộ quản lý đối tượng sau dó có thể so sánh các chọn lựa {vào lúc
chạy) dựa trẽn các đặc trưng thực thi cua chúng. Tuy nhiêu cách tiếp cận Iiày cũng có
những vấn đề tiêu tốn chi phí cao vào lúc thực thi. M ộí vấn đề với tối ưu hóa tham số
vào lúc bicn dịch (và phân giải vào lúc thực thi) là sự bùng nổ tổ hợp củ a các phương
án độn« như m ột hàm theo cả độ phức tạp của cáu hỏi và số lượng các tham số tối ưu
hóa khơng được biết vào lúc biên dịch. Vấn đề này, cùng với những vấn đề khi làm lan
truyền lồi và tính khơng chính xác cùa độ tuyển và phương pháp đánh giá chi phí, làm
cho vấn đ ế tối ưu hóa câu hỏì lúc chạy irở thành một vấn đề khó.


Biểu thức đường đi

Phần lớn các ngơn ngữ câu hỏi đều cho phép đùng các câu hòi với các vị từ chứa những
điều kiện về cách íruy nhập đối tượng đọc theo các
Những chuỗi tham chiếu này được gọi là
cũng dược gọi là các vị từ phức hoặc
Biểu thức đường đi m ầu

chuỗi tham chiếu (reference chain).

biểu thức đường di (path expression) (đôi khi

nổi ẩn (im plicit jo in ) (W , K im , 1989b).


c.ten.hodem iruy nhập giá trị của thuộc tính hodem của đối

iượng là giá trị của thuộc tính ten , của đối tượng c đã được định nghĩa là thuộc kiểu

Congnhan. Chúng ta có thổ tạo ra các biểu thức đường đi chứa các thuộc tính cũng
như phương thức. T ối ưu hóa việc tính toán biểu tliức đường đi ià mộl bài toán đã nhận
được nhiều chú ý trong lĩnh vực xử lý câu hỏi dối tượng. Biểu thức đường đi đưa đến
một ký pháp trừu tượng ngắn gọn để biểu diển hành động đuyột qua các đồ thị họp
phần dối tượng, cho phép định hình các vị từ trên các giá í rị được ỉồng sâu trong cấu
irúc của m ột đối tượng. Chúng cung cấp m ột cơ chế thống nhất cho việc định hình các
câu hỏi có chứa hợp phần và các hàm thành vicn k ế thừa. Biểu thức đường đi có thể
thuộc loại

trị đơn (single-valued) hoặc trị tập (set-valued). và có thể xuất hiện trong

một câu hỏi như ỉhành phần của mội vị từ, m ột đích của m ột câu hỏi (khi ỉà lậ tập),

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


×