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

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Ệ
P H Ạ M C H Í D A N H
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 KH OA H Ọ C :
TS. NG UY ỄN TU Ệ
HÀ NỘI - 2003
MỤC LỤC
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ượ ng 7
1.1.6. Đối tượng phức hợp - compỉex objcct
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 hu n g 8
1.2.2. Các đặc trưng trong cơ sở dữ liệu hướng đối tượng 9
1.2.3. Ọuản lý lưu trữ dữ liệu 11
1.2.4. Ngôn ngữ hỏi hướng đối tượng OQ 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Ữ Liệu HƯỚNG Đ ốỉ TƯỢNG

33
2.1. Mô hình mức khái niệ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 BM ): 41
2 .1.3. Mô hình tương tác dối tượng (0 1M ): 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 hoá mô hình khái n iệ m
48
LỜ ì Gỉ Ớ ì TH IỆU 2
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ích 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ích 57
3.2. Đặc la 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 CSDL 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
Hiện nay phương pháp tiếp cận theo hướng đổi tượng (Object - 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 toá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 yéu cẩu trong
thực tiễn. Chí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. Trong 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 (Object
System Analysis) được đề xuất bởi David w . Embley Ị 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 dung 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à: Giớ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: Giớ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 hoá 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 ObjectStore và PSii Pro for ư ' và ứng dụng vào cài đặt phán hệ cơ sử
dữ liệu thu ngành Bảo hiểm xã hội Việ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 Quố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.
Xin được cám ơn sự giúp đỡ của các bạn học viên lóp 7KT - Khoa Công Nghệ trong
quá trình học lập và làm khoá luận.
Cám ơn lãnh đạo và đổng nghiệp Trung tâm CNTT - BHXH Việt Nam đã giúp đỡ,
dộng viên và tạo mọi diều kiện để tôi hoàn thành bản khoá iuận.
Hà Nội, ngày thúng năm 2003
Học viên
Phạm Chí Danh
Trang 4/96
CHƯƠNG I. C ơ SỞ D ữ LIỆU HƯỚNG ĐỐI TƯỢNG
1 .1 . G iớ i th iệ u p h ư ơ n g p h á p tiế 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 (Procedure-O riented Programming).
Phươnu pháp tiếp cận (approach) hướng đổi tượng (Object-Oriented) 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 kh ái niệm
i) Đối tượng (Object):
Đố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 (message).
- 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 khuôn mẫu của
các đối lượng, nó bao gồm định nghĩa các ihuôc 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 hoá (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 (information 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 (user-

defined type), mô đun hoá chương trình (modularity), cho phcp các cơ chế sử đụng lại
(reusab 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. Chú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 ính thừa kế
Thừa kế íà cơ chế 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ơ chế 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 hoá cua lớp khác (quan hệ “ísa”).
Có thể phân ra 2 loại thừa kế:
+ Thừa kế phát triển lên (incremental 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 cha (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 (xubclass) cũng
là các thành viên của lớp cha (superclưss - siêu lớp).
1.1.3. T ín h bao 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 modul được bao gói. Một
modul được bao gói nếu như ứng dụng khách của modul đó bị giới hạn bởi định nghĩa

ngôn ngữ lộp trình truy nhập đến modul chỉ trong vùng được khai báo ở giao diện
ngoài. Quá 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
modul, 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 (method) 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
chung 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.
Như 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ính đa cấu
Tính đa cấu (polymorphism) 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. Client 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 muộ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 (mcssage).
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ũng 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 ính trừu tượng
- Dữ liệu trừu tượng (data abstraction); Cho phép người dùng đị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ượng phức hợp - com plex ob ject
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. Hay nói
khác đi, lược dồ của i đối tượng không phải ỉà ở dạng chuẩn 1 (First N ormal 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ụng 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 chồng, ghi đè 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ố khá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 ữ liệ u h ư ớ n g đ ố i tư ợ n g
1.2.1. Giói thiệu chung
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Ü. Trong khi cơ sở dữ liệu quan hệ (relational database) được đặc lả rất
rõ làng bởi Codđ 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 (ObjectSfore, Oi, GemSlones, Objeetivity/DB
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ũng đã 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
(spatial databases) hay cơ
sở dừ liệu đa phương tiện (multimedia 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 muộn
(late binding),
lính khả m ở (extensibility), bổ sung đầy đủ các tính toán
(computational com pleteness), lính bền vững (persistence), quản ỉý ỉưu trữ
(secondary storage managem 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ê' (multiple 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 ODM G (O bject Data
Management Group) với phiên bản ODMG-2 năm 1997. Trong đó đề cập đến các vấn
dề như m ô hình hoá đối tượng, các ngôn ngữ đặc tả đối tượng, ngôn ngữ hối đối tượng.
Ngoà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 Smalltalk.
1.2.2. C ác đặc trư ng tron g cơ sở dữ liệu hướng đối tượng
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

Đ ịnh
dành
đ ố i
tưọng
Đối
tuợng
phửc
hợp
Kiểu
và lớp
Bao
gói
Nẹp
chong

ghi đè
Mỏ sung
rộng
các
lốp tính
toán
Hình 2. Các thành phẩn cơ bản của cơ sớ d ữ liệu theo tiếp cận hướng đối tượng
Như đã mô ủi ở phần 1.1.1 các đối rượng phức hợp (complcx object) được tạo nôn từ
những kiểu dối tượng đơn giản. Nhữ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. Ngoà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). Nhũ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) luôn tổn lại trong suốt quá 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 hoá chương trình. Sự
bao gói cung cấp 1 khuôn 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Ỉ
10 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 diện và sự cài đặt. Giao đ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 (ADT - Abstract Data Type) là mộl khuôn mẫu cho tất cả các
đối tượng thuộc kiểu đó. Trong 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 ADT mô iả kiểu của dữ íiệu bằng cách cung cấp m ột miề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 đó. Khả năng trừu tượng hoú của ADT Ihường được gọi là tính bao gói như
đã nói ở trên, do đó mỗi ADT 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 AD 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; th ứ hai, các thao tác ADT 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ì 0 0 sở dữ
liệu thưìmg 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
Trong 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 toá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 (i, c,
V) 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); ngoài ra còn các kiểu chung khác là list (danh sách),
bag (túi), và array (mảng). Kiể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ợ.
Trạng thái V của đối lượng (/, c, v) được giải thích irôn cơ sỏ toán ú‘r dựng c:
• Nếu c là kiểu nguyên 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 = (OID, type constructor, State)
Oị = (i|, atom, ‘Nguyen Van A nh’)
o, = (i2, atom, 1975)
o, = (ij, set, { ij, i>})
04 = (i„ tuple, <HOTEN :ij, NAMSINH:i>, DIACHI:i5>)
Chương /. Cơ sở cỉữ liệu hướng dổi tượng





.

,,, Trang 12/96 _


_ _
______
os = (is, set, {¡ft, i7, i8})
o(> = (i6, tuple, <TR UO NGPH ON G:i|, NAM SINH:i, >)
Các dối tượng Oị, o2 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 HOTEN, NAMSINH,
DIACHỈ 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.
Ngôn ngữ khai báo dối tượng (ODL-O bject D efinition Language) 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
nhấ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
chế như sau:
+ Định danh vật lý POID (physical OID) là làm cho OID 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 OID của nó.
Khiế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 OID) 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 OID 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 OID 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ệ CSDL 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. Giố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



_

'[rang 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 OP (Object Oriented 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
quát và tính hiệu quả. Hổ trợ tổng quái 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 OID rất lớn.
Nếu hạn chế 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. Quản lý định danh đối tượng c ó liên quan mật thiết đến các kỹ thuật
lưu trữ.
Tliông tin về định danh LOID-POID thường được iưu trong các bảng băm hoặc cây B +
(Bf-í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)
Trong 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 c ihuộc kiểu công nhân
thì 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 muốn dùng các con trỏ nội nhớ (ín-m emory 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 chế con trỏ" (pointer-swizziing). 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ơ chế điều chế con trỏ
(W hite - Dewitt, 1994). Trong các lược đồ phần cứng, cơ chế 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 memory frame). Các Irang dữ liệu lương ứng với các khung <io
này chỉ được lải vào bộ nhớ khi có truy nhập đến chúng. Việ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ỏ.
Nghĩ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ư chế 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 trữ
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 toán
khoá mức trang (Callback 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 khoá íỉhi lừ server.
Nếu như không có khoá 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 khoá 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ị xoá 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 Y ê u cầu (ừ client và thông tin cho client VC
Chương Ị . Cơ sà dữ liệu hướng đối tượng
cấp plìát khoá 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 khoá ghi được giải phóng. Điều này chí xảy ra sau khi client nắm
ẹiữ hang khoá 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 yêu cầu được
phát sính tại một thời điểm.
1.2.4. N gôn ngữ hỏi hướng đ ối tượng O Q L
Việc xây dựng một hệ thống ngôn ngữ hỏi OQL (Object Query 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. Thí 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ó hoàn toà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.
Chúng ta sẽ tìm hiểu ngôn lìgữ câu hỏi O QL (Object Query 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

toán lử dại số íhì các tập dối tượng đa hình này có thể làm toán hạng cho những loá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, Trong 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 toá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 toá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 quái. 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 duy 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. Những hệ thống khác dề
xuAít một cơ chế 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. Truy 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 ihuôc 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
hoàn toà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) Kiế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 toá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.
Nhiề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 Open OODB 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 en 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ùng bộ sinh m ô hình tối ưu hóa Volcano (V olcano optimizer generator)
(Graefe - M ekenna), có thể mở rộng ứng với các loá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 chế 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 toá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ố. Việ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 EPO 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 hoà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. Thí 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ắng biến đổi các câu hỏi
chành một dạng mong muố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 toà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ÍGU KAT I ỉ ] sử dụng cách tiếp cận dối tượng để mở rộng khả 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ể, meta 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 Query được định nghĩa như kiểu
con của 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
Trang 19/96
____
_
_ _ _ _ _ _
____

như các câu hỏi chuycn dụng và câu hỏi thực dụng. Nguyê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 Tluâ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 Lanzelotte và Vaỉduric.
Khô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. Việ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 qua nguyên tắc đổi tượng cơ bản là sinh kiểu con (subtypíng) và chuyôn
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 đã cung cấp cho phương pháp tối ưu hoá 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ố. Chúng ta cũng
thảo íuận một bài toá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 hoán, tính phân phối. Trong quá 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. Việ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 quá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ô' hoàn toà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.
Chẳng hạn xct ha toán tử đại số đối tượng Ị 1 ] là union (ký hiệu là ) intersection (ký
hiệu là n và toán tử select có tham số (ký hiệu là Per ị,- < Ọ| . . . Q k >), trong đó union
và 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ố (theo một
nghĩ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 (để cho ngắn
gọn, chúng ta đùng ký hiệu Qseĩ biểu thị cho Qi . Qk; Rset được định nghĩa tương tự:
Pơ H < Qset >) ơ P
2
< Rset > <=> (Pơ
, . ' 2
< Rset >) ơ PI < Qset >
(P cr ụ < RSet > o (p ơ ị: < Rset >) u (Q ơ f; < Rset >)
ịPơ ị . Ị < Qser >) cr P 2 < Rset > » (Pơ H < Qset >) n (Per ị . - , < Rset >)
Quì tấc đầu tiên biểu hiện tính chất giao hoá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 đồng nhất thức biểu thị rằng
select chỉ hạn chế 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ị cho các hệ thức tương đương kế
thừa từ ỉý thuyết tập hợp, Qui tắc thứ ba ià một qui tắc biến đổi đặc biệ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ể. Tuy nhiên cả ba
đều có bản chất cú pháp. Trong đó Cị biểu thị cho lập đối tượng trong dòng 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 trong dòng 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 - ệ nếu C| * c2
Ci n c *2 = c *2 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úng phụ thuộc vào các đặc tả

mô hình đối tượng và mô hình câu hỏi. Thí đụ qui tắc thứ nhất đúng vì mô hình đối
tượng hạn chế mồi đối lượng chỉ thuộc về ITÌỘI lớp duy nhất. Qui tắc thứ hai đúng 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. Cuố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, Ỉ990b[ vể khả
Chương l ■ Cơ sở dữ liệu hướng đối tượng
năne áp dụng của nó cũng như một điều kiện (ký hiệu là <• (rên tương dương o ) tức ỉà
F đổ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 toán tìm kiếm vét cạn sẽ liệt kê toà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 al„I9 88 |. Bộ sinh mô hình tối ưu hóa
Volcano 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) [Gracie - Mckenna, 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 toán tìm kiếm liệt kê có lẽ quan trọng hơn trong các
DBMS đố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. Trong các ứng dụng như các hệ hỗ trợ quyết định (decision support
system) m à các hệ quản trị 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 join) và dùng các thuật toá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 toán tìm kiếm kiểu ngẫu nhiên (randomized
search algorithm ) có {hể được xcm như những chọn lựa nhằm hạn ch ế 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 quát 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
T r a n g 2 1 / 9 6
Chương ỉ . Cơ sá dữ liệu hướng dối tượng
Trang 22/96
giao diện ( 15]. Một tiếp cân (ương lự được cung cấp trong dự án TIGU KAT [ 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ó. Trong 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 toà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 quá 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ế. Nhữ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
Trang 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 Gracfc, Ward
và Ioannidis được cài đặt trong Object store [14] là tối ưu hóa câu hỏi với iham s ố (
parametric query optimization) và cũng được gọi là chọn tựa phươỉỉí> ủn động (dynamic
plan selection). Trong 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 "mong muố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 chuỗi tham chiếu (reference chain).
Những chuỗi tham chiếu này được gọi là biểu thức đường di (path expression) (đôi khi
cũng dược gọi là các vị từ phức hoặc nổi ẩn (im plicit join) (W, Kim, 1989b).
Biểu thức đường đi mầu 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

×