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

Cơ sở dữ liệu hướng đối tượng và một số vấn đề lý thuyết

97 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 42,4 MB

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

Nội dung

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 ố n g c ơ sở

Trang 1

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

Trang 2

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ư ợ n g 7

1 1.6 Đ ối tượng phức hợp - com pỉex o b jc ct 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ư ợ n g 8

1.2.1 G iớ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 q uan 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 hoá m ô hình khái n iệ m 48

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

TƯỢNG

Trang 3

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 C SD 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 l u ậ n 92

TÀ! LIỆU THAM KHẢO 94

Trang 4

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 rien ted ) đã và đang được sử d ụ n g 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 tru y én ihố n g 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à n g h iên cứu q u an 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 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 tro n g cơ sở dữ liệu được phát triển theo m ô hình OSA (O bject System A n aly sis) được đề x u ất bởi David w E m bley Ị 11 và các cộng sự của ông M ô hình được giới th iệu k h á rõ ràn g , với đầy đủ c ơ sở lý íhuyết và các m ô hình thực tế đổ phát trien m ộ t ứng d ụ n g cơ sở dữ liệu theo phương p háp lấy đối tượng làm nền tảng, dồng (hời cũ n g 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 đ an g được p h á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 ch u n g về cơ sở dữ liệu hướng đối tượng

C hưong này trình bày 4 phần cơ bàn là: G iới thiệu ch u n g 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 p hần cơ b ản trình bày về m ô hình khái n iệm , phương pháp biểu

d iễ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 tru n g 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 tro n g đ ó 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

Trang 5

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 N am 2) T ổng kết, đánh giá những m ặt dược và những m ặt còn hạn c h ế 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ù n g, em xin chân thành cảm ơn liến sĩ N guyễn T uệ 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

Trang 6

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

q u a các thuộc tính và hành vi của chúng Các thực thể có thể là 1 k h á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 (B ehavior)

+ Định danh (Identity)

Các đối tượng c ó thổ tương tác với nhau thông q u a việc gửi thông báo (m essage)

- Lớp (class): Các đối tượng ciốn g nhau về hành vi (behavior) và tính chất (ch arateristic) có thê nhóm lại trong m ột lớp K hái n iệm lớp n h ư 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ín h (attrib u te) 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 ú n g 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 7

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 d o người d ù n g định nghĩa (user- defined type), m ô đun hoá chương trình (m odularity), ch o phcp các cơ c h ế sử đ ụ n g lại (r e 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

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 ế ch ia 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 n hậ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 tro n g 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 hoá 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ở ch o 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 8

T rang 6/96 _ _ _ ^

+ Thừa k ế kiêu con (stibtyping ỉtìherìtance): ch o 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)

m odul, Có n g h ĩa rằng không m ột người d ù n g n ào có thể sử d ụ n g 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 ch o khả năng cất giừ ricng biệt đữ liệu và các phương thức (m ethod) tác

độ n g 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 tro n g 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] N hư vậy, sự bao gói không chí đơn thuần !à sự gom

c h u n g 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

đổ n g nhất giữa d ừ liệu và các thao tác lác đ ộng lên dữ liệu đó

Khi đó, ch ú n g ta khô n g cần quan tâm đến vấn dề "phải làm cô n g 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 v iệ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ũ o n 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 k h iển theo cách đặc biệt N hữ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ô n g m ó tả kiểu của đối tượng tới đích m à Ihông báo được đánh địa chỉ C ơ c h ế liên kết m uộn (late

b in d in s) đượ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

Trang 9

_ _ _ _ _ _ _ 1 rang 7/9 6 . _

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

đượ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 ụ n g đố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 án h 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 p hép người d ù n g đ ịn h n g h ĩ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 đó

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 (stru ctu red ) được tạo nên từ các th àn h 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), v ideo (p h im ) v.v C ác h ệ th ố n g 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, b ao 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

Trang 10

- 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

d ụ n g 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 (m ultim ed ia database) , hoặc tro n g 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 C hí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 ố n g 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 ế (in heritan ce), 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 toán (com putational com pleteness), lính bền vững (persisten ce), quản ỉý ỉưu trữ (secon d ary storage m anagem ent), tương tranh (co ncurrency), 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 11

Trang 9/96ii) N goài ra , đc hỗ trợ ch o 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 u ltip le inheritance), kiểm tra kiểu (type ch eck in g ), phân lán (d islrỉb u tio n ), thiết k ế các giao tác (design transactions).

iii)C á c hướng m ở như: lập trình inäll (p arad icm ), hệ thống thể hiện (rep resen tatio n sy stem ), hệ thống kiểu (íype system ) hay thư viện kiểu, các

hộ thống đ ồng d ạn g (uniform ity)

Các nhà nghiên cứu g ần đ ây cũ n g đã c ố g ắng đưa ra m ột ch uẩn công n g hiệ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 hoá đối tượng, các ngôn ngữ đặc tả đối tượng, ngôn ngữ hối đối tượng

N goà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 ố n g c ơ sở dừ liệu

cơ sở Dữ LIỆU HƯỚNG ĐỐ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

và ghi đè

toán

N hư đã m ô ủi ở phần 1.1.1 các đối rượng phức hợp (com plcx o b ject) đượ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 (in teg e r), ký tự (characler), những chuỗi byte (byte string), d ữ liệu kiểu Boole và Float N goà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), d an h 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 ố n g cần phải có là tập hợp, d anh sách và bộ dữ liệu Kiểu lập hợp th ể h iệ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

Trang 12

_ _ _ _ _ _ _ ' I r a n g 10/96trọ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ó N hư 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 ch ia xẻ và đối tượng cập nhật

Sự bao gói (encapsulation) được đặt ra: m ộ t là, d o 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 o á chương trình Sự bao gói cu n g cấp 1 khuôn dạng “độc lập dữ liêu logic” , g iú p ch o 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ỳ th u ộ 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 ch o tất cả các đối tượng thuộc kiểu đó T rong trường hợp này, ta k h ô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 m iề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, d o đ ó 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

Trang 13

liên kết c h ặ 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ù n g dữ liệu m à ch ú n g có thổ được lưu irong các Ihư viện

co n stru cto r) [ 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 ch u n g 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ạn g 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 d an h 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ẽ m inh 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, NAM SINH:i>, D IA C H I:i5>)

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

Trang 14

,,, 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ị, 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ó g iá Irị là các b ộ thuộc tính H O TE N , N A M SIN H ,

D IA C H Ỉ còn o5 là đối tưự ng c ó kiểu tập với các giá trị phụ thuộc vào o 6, o 7, o x

N gôn ngữ khai b áo dối tượng (O D L -O bject D efinition L an g uag e) 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):

Đ ịn h 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 (tran sitiv e) hay bền vững (persitcnt), đo hệ thố n g 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 ch u n g 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 ụ n g , dựa trên định d anh ỉogic hoặc định đanh vật lý, ch ú n g 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ể n hậ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 c h u y ển đến m ột trang khác

+ Phương pháp d ù n g đ ịn h danh logic L O ĨD (logical O ID ) là cấp phát inộl O ÍD duy

n hấ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

b iến nên không phải trả chi p h í 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 ch o 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 ù n g chung, cả hai phương pháp đều có thể xem giá trị đối tượng như định d anh c ủ a ch ú n g Các hộ C SD L m ạng và phân cấp đã đùng phương pháp

đ ịn h danh vật lý này C ác hệ C SD 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 ch o đố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ố n g 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

Trang 15

._ '[ra n 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 p háp định danh vật !ý

có hiệu q u ả 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 tab le), 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 ch u y ể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 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 ch o 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ự

ch ia 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 c ao hơn (m ức trình bicn dịch hoặc ngôn ngữ CSDL) ch o 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 c ó liên quan m ật thiết đến các kỹ thuật lưu trữ

T liông tin về định d anh 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 ch o phép truy nhập nhanh nhưng không nâng cấp được khi kích thước C SD L 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 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 n hữ ng con trỏ này T uy 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 c h ế 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 16

_ T rang 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 fram e) 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 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ý T rong 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 c h ế 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 V I 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 toán khoá mức trang (C allback Locking) được đề xuấl bởi Carey G iải thuậl này đảm bảo các trang trong bộ đệm ở phía client dược giữ đúng T rong khi các client q u ả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ẽ đãn g 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

Trang 17

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ữ h an g 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-serv er 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 T heo 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 X C 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

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ó 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ố n g 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 lan g u ag e) Ị 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 ù n g các kỹ thuật tối ưu hóa đã được phát (riển cho các hệ ühô’ng q uan hệ Tuy nhiên có m ộl số vấn để khiến ch o 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ọ n g được trình bày dưới đ ây [21]:

I N gô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; q uan hệ Tính chất bao đ ó n g của các ngôn ngữ quan hộ ch o 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

Trang 18

. ÍYang 16/96 .

của các p h é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ể th uộ 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 ch o tất cả các dối tượng trong m ột tập như thế Hơn nữa n h ư đã 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 (co llectio n ), ví dụ như tập hợp (set), túi (bag), d anh sách (list) có ý nghĩa khác

nh au, 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 th ao 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 q uan hệ phụ thuộc vào hiểu biết về cách ỉưu trữ dữ liệu vật lý (đường truy n h ập m à ch ún g thường có sẩn ch o việc tối tru hóa câu hỏi, T rong khi đó

b ao 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 g iá) 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 p h í 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 d u y 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 c h ú n g 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 n h ư 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à q u an 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ố n g 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

Trang 19

['rang 17/96thứ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 ún g 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ử i v 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 p h í (cost function) trong m ột không gian trạng thái, cũng được gọi là

k h ô n g gian tìm kiếm (State space hay search space) biểu diễn ch o 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

Dự án O pen O O D B của W ells năm 1992 tập trung vào định n g h ĩa m ột bộ khu n g kiến trúc m ỏ cho các hệ q uả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 O O D B M ô hình tối ưu hóa câu hỏi được B lakeỉ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 o lcan o op tim izer generator) (G raefe - M ek en n a), 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 20

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 ín h 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 ch o 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ư ớ n s 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ừ

n hữ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 T h í dụ m ột vùng c ó thể bao quá! các qui tắc biến đổi sẽ giải q u y ế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

q uyết với các biến đổì ch o 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 ch o 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 ch u y ể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 T1G U K A T 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 ch o các đối tượng (ch ú n g 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 ín h thống nhất của IÌ1Ô hình đối tượniĩ m ở rộng ch o 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 21

T ra ng 19/9 6 _ _ _ _ _ _ _

n h ư 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ộ n g thông q u a nguyên tắc đổi tượng cơ bản là sinh kiểu co n (subtypíng) và chuyôn

b iệ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 p h í như các đối tượng đã cu n g cấp ch o phương pháp tối ưu hoá khả năng m ở rộng vốn có irong các mô

h ìn h đố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ênkết hàm chi p h í và m ột ch iế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ự n h ư 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, T rong phần này ch ú n g ta sẽ xem xét những k hác biệt khi chúng được áp dụng ch o việc tối ưu hóa đại số C hú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

g iao hoán, tính phân phối T rong 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ụ th uộ c rất nhiều vào từng đại số đối lượng cụ thổ vì ch ú n g đượ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ô n g có một định nghĩa chuẩn ch o đạ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 n h iểu nghiôn cứu khác nhau Các vấn đề tổng q u á 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 n g h ĩ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 ú n g 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 22

_ 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 ẳn g hạn xct ha toán tử đại số đối tượng Ị 1 ] là union (ký h iệ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

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 e o m ột

n g h ĩa nào đ ó là m ộl hình t h ái suy rộng của nối nửa) K ết quả của n h ữ n g 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ư ơ n g đ ư ơ ng (để c h o ngắn

g ọ n , chúng ta đùng ký hiệu Qseĩ biểu thị ch o Qi Q k; Rset được đ ịn h n g h ĩa tương tự:

P ơ H < Qset >) ơ P2 < 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 >)

Q uì 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 d iễn tả rằng select phân phối trên union Q uỉ tấc thứ ba là m ộ t đ ồ n g n h ấ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ị c h 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 ch o m ộ t toán

tử đại số đối tượng cụ thể, được định nghĩa với một ng ữ n g h ĩa cụ thể T u y n hiên cả ba đều có bản chất cú pháp T rong đó Cị biểu thị cho lập đối tư ợ n g trong d ò n g tộc củ a lớp C; và c * j biểu thị d ò n g 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)

C l n C2 - ệ nếu C| * c2

C i n c *2 = c *2 nếu Cj là lớp con của c2

những qui tắc biến đổi này có bản chất ngữ nghĩa vì c h ú 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 u i 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ùn g qui tắc thứ ba đại c ơ sở trên các qui tắc nhất q uán kiểu [S traube - Oz.su, Ỉ9 9 0 b [ vể k h ả

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

Trang 23

n ă n e áp d ụ n g 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.

T huậ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 ù n g lối tiếp cận qui hoạch

đ ộ n g , 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„ I 9 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è'

ch u n g 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 DBM S đối tượng so với DBM S 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ô n g k h ả thi Ịloannidis -

W ong, 19871 T rong các ứng dụng như các hệ hỗ trợ quyết định (decision support system ) m à các hệ q uản trị 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 ù n g 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ữ n g h ĩa nối trong một câu hỏi hoàn toàn cao hơn ngưỡng tới hạn 10

T rong những trường hợp như thế, các thuật toá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 quát có lẽ không thay đổi nhưng việc điều chỉnh tham số và định nghĩa khô n g 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 ch o 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 c h ú n g như thành phần của

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

Trang 24

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 d ien 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 ro n g cả hai trường hợp m ột hàm chi phí trừu tượng hơn ch o 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

p hí 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 ụ n g 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, Q uyế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 q uan tâm đến những lỉiay đổi Iren các số liệu thống kê cơ sở dừ liệu d o 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

b iệ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 ch o bản m ẫu thiết kế N hững cơ sở d ữ liệu này theo định n g hĩa thường xuyên bị biến đổi dẫn đến nhiều thay đổi có ý n ghĩ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ồ đ ộ n g rất q uan trọng trong các hệ quản trị cơ sở dữ liệu hướng dối tượng) C hiến lưực tối ưu hóa câu hỏi phải có k h ả 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 q u ả íà 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 p h í lúc chạy để theo dõi việc Ihực

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

Trang 25

T rang 2 3/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 iham s ố( param etric q uery optim ization) và cũng được gọi là chọn tựa phươỉỉí> ủn động (dynam ic plan selectio n ) 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 k h ô n g 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ỏ q u a 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 n h iê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 ù n g 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ô n g chính xác cùa đ ộ tuyển và phương pháp đánh g iá 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 (referen ce chain)

N hững ch u ỗ i tham chiếu này được gọi là biểu thức đường di (path ex p ressio n ) (đôi khi cũng dược gọi là các vị từ phức hoặc nổi ẩn (im plicit jo in ) (W , K im , 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à g iá trị của thuộc tính ten, của đối tượng c đã được định nghĩa là thuộc kiểu

Congnhan C húng ta có thổ tạo ra các biểu thức đường đi chứa các thuộc tính cũ n g 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ý p háp trừu tượng ngắn gọn để biểu diển hành động đuyột q u a 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 C hú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

Trang 26

_ T rangJM /96 _ _

hoặc thành phần của danh sách chiếu M ột biểu thức đường đi là trị âơn nếu m ỗi thành phần của m ội biểu thức đường di đều [à trị đơn; nếu ít nhất m ột thành phần là trị tập ihì loàn bộ biểu thức là trị tập

Bùi loán lối ưu hóa biểu thức dường đi í rải rộng trong toàn bộ quá trình tối ưu hóa câu hỏi T rong hoặc sau khi phân lích cú pháp ch o m ột câu hỏi nhưng trước khi tối ưu hóa

d ại số, trình biên dịch phải nhận dạng được những biểu thức đường đi có khả năng tối

ưu hóa được Đ iều này thường đạt được qua các kỹ thuật viết lại (rew riting), biến đổi các biểu thức đường đi thành các biểu thức đại số logic lương đương [Cluet - D elobei,

1 9 9 2 Ị M ột khi biểu thức đường đi được biểu diễn ở dạng đại số, m ô hình tối ưu hóa câu hỏi sẽ khám phá khô n g gian của các phương án thực thi và đại sô'tương đương, tìm

m ột phương án có chi phí nhỏ nhất [2] Ị C uối cùng phương án thực thi tối ưu có thể chứa những thuật toán tính toán được các biểu thức đường đi m ột cách c ó hiệu quả, gồm có nối bám [Shapiro, 1986], tổng hợp đối tượng phức [K eller et ai., 1991], hoặc

q uét có chí m ục qua các chỉ m ục đường dẫn

❖ V iết lại câu hỏi và tối ưu hóa đại số

Xct biổu thức đường di car.en g ine.m an ufactu rc.n am e G iả sử rằng m ỗi thể hiện của xe hơi có mội tham chiếu đến m ột đối tượng E ngine, mỗi động cơ có m ột tham ch iếu đến

m ội đối tượng M an u facturer, và m ỗi nhà sản xuất có m ộì trường nam e C ũng g iả thiết rằng các kiổu E ngine và M anu factu rer có m ột đòng tộc kiểu tương ứng, Hai đường nối đẩu tiêu cùa đường dãn ở trên có thể phải truy tìm các đối tượng đ ộ n g cơ và nhà sản xuất nằm Irên đĩa Đ ường dẫn thứ ba chí gồm một tìm kiếm của m ột trường bên trong

m ột dối tượng nhà sản xuất Vì th ế chỉ hai đường nối đẩu tiên là dưa ra các cơ hội tối

ưu hóa câu hỏi trong việc tính loán đường dẫn đó M ột trình bien dịch câu hỏi đói iượng cần m ột c ơ c h ế để phùn biệt những đường nối này ỉ rong m ột đường d ăn biểu diễn các khả năng lối ưu hóa Đ iều n ày 1 hườn g có được qua m ột pha viết lợi (rew riting phase) M ột khả năng là dùng m ột kỹ thuật viếl tại dựa trôn kiểu như đ ã được đề xuất trong [Q uel - D elobcl, 1992]- Cách tiếp cận này ,-họp nhất" các kỹ thuật viết lại đựa trên đại số và dựa trên kiểu , cho phép thừa số hóa các biểu thức con chung và hỗ trợ các heuristic nhằm hạn c h ế việc viết lại, T hô n g tin kiểu dược tận d ụng để phân rã các dối phức tạp ban đầu củ a m ột câu hỏi thành m ột lập các toán tử đơn giản hon, và để vịệì lại các biểu thức đường đi thành các nối L anzelotte và V aid u riez đã trình bày m ột

nỗ lực tương tự để tối ưu hóa các biểu thức đường đi bôn trong bộ khung dại s ố bằng cách dùng m ột toán lử được gọi là nối Ổn (im plicit jo in ), Các qui tắc dược định nghĩa

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

Trang 27

Trang 25/96 ., _

dể chuyển m ột loạt các (oán lử nối ẩn thành mội phép toán quct có chỉ m ục bằng cách dùng m ột chí m ục đường dân (xem bên dưới) khi nó có sẩn

M ột toán lử khả chọn đã được đề xuất để tối ưu hóa các biểu thức đường đi là loán tử

materialize (viết tắt là Mat, vậl chất hóa) [B lakeley et al., 19931 N ó biểu diên việc tính toán mỗi tham ch iếu liôn đối tượng (các đường nối trcn đường dẫn) m ột cách tường

m inh Đ iều này cho phép m ô hình tôi ưu hóa cAu hỏi diễn lả việc vật ch ất hóa nhiều thành phần như m ột nhóm bằng cách dùng m ột toán tử Mat, hoặc sử dụng riêng lẻ từng toán tử Mat ch o m ỗ i thành phần M ột cách khúc là xem toán tử này như m ột "định nghĩa lầm vực" bởi vì n ó m ang các phần tử của một biểu thức đường đi vào tầm vực để các phẩn tử này có thể được dùng trong các phép loán sau đ ó hoặc trong việc ước lượng

vị lừ Q ui tắc định tầm sẽ phải làm sao ch o m ột thành phần đối tượng đi vào trong tầm vực do đ an g được quét (được ghi nhận bơi toán tử logic Get trong các nút lá của cây biểu thức) h o ặc đ o đ ang được tham chiếu (ghi nhận bằng toán tử Mat). Các thành phần còn nằm trong tầm vực ch o đến khi m ột phép chiếu loại bỏ ch ú n g đi Toán tử Mat cho phép m ô hình xử lý câu hỏi hợp phần tất cả các vật chất hóa thành phần bắt buộc phải

có để tính m ột câu câu hỏi, bất kể các thành phần đó cần ch o việc ước lượng vị ỉừ hoặc

để sinh ra kết quả của câu hỏi hay không M ục đích của toán từ Mat là chỉ ra cho m ô hình tối ưu h ó a biết các biểu thức đường đi được dùng ch ỗ nào và chỗ nào các phép biến dối dại số có thổ áp dụng được

❖ Chỉ m ục đường đi

N ghicn cứu đ án g chú ý về tôi ưu hóa câu hỏi đối tượng dà dược dành ch o việc thiếí k ế các cấu trúc chỉ m ục (indexing) nhằm lam tăng lốc đ ộ lính toán của các biểu thức đường đi 115]

T ính biểu thức đường đi qua các chỉ m ục chỉ trình bày m ột lớp thuật toán ihực thi câu hỏi được d ùn g trong việc tối ưu hóa câu hỏi đối tượng Nóí cách khác tính toán hiệu quả cúc biểu thức đường đi qua chỉ m ục đưòng dẫn chỉ trình b ày m ột họ các chọn lựa cài đặt ch o các toán tử đại số, chẳng hạn như Mưi và nối, được d ù n g dể biểu điỗn các tham chiếu liên đối tượng

iii) Thưc thi câu hòi

C ác hệ quản trị cơ sở dữ liệu quan hệ lận d ụng dược sự tưưng ứng gần gũi giữa các phép toán đ ại số quan hộ và các truy nhập nguyên thủy của hệ thống ỉưu trữ Vì th ế việc tạo ra các phương án Ihực thi cho m ột biếu thức câu hỏi về cơ bản có liên quan

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

Trang 28

T rang 26/96 .đến việc chọn lựa và cài đặl các ihuật loán hiệu qua nhất clể thực thì từng phép toán đại

số và cúc lổ hợ p của chúng T rong các hệ quản trị cơ sở d ữ liệu hướng đối tượng, vấn

dề phức tạp hơn d o sự khác biệt về các m ức trừu tượng của các đối tượng được định ntĩhìa theo hành vi và việc lưu trữ chúng Bao gói các đối tưựng nhằm che dấu chi tiết cài đặt của chúng và việc lưu các phương thức đã đặt ra một bài toán thiết k ế đẩy thách thức có thể dược khẳng định như sau:

“V ào lúc n ào trong quá trình xử lý câu hỏi, m ô hình tối ưu hóa câu hỏi cần truy nhập các thổn g Ún liên quan đến việc lưu trữ đối tượng” M ột chọn lựa íà để công việc này cho hộ q u ản lý dôi tượng |2 I Ị Hệ quả là phương án thực thi câu hỏi sinh ra lìr biểu thức câu hỏi sẽ thu được vào cuối bước viết lại câu hỏi bằng cách ánh xạ biểu thức câu hỏi thành m ột tập các lòi gọi giao diện của bộ quan lý đối tượng G iao diện bộ q uản lý đối urợiig chứa một tập các thuật toán thực thi Phẩn này sẽ xem xét m ột số thuật loán thực thi rất có thể sẽ là thành phần của các đ ộ n g cơ thực thi câu hỏi dối tượng có hiệu năng (ốt (rong tương lai

M ột động cơ thực thi câu hỏi đòi hỏi phải có ba lớp thuật toán cơ bản trên các rập đối tượng: quét tập (collection scan), quct có chỉ m ục (indexed scan), và đối sánh tập hay

so tập (set m atch in g ) Q uét lập là m ột thuật toán đơn giản bằng cách truy n hập lần lượt tất cả các đối tượng trong m ột tập Ọ uét có chi' m ục ch o phcp truy nhập hiệu q u ả đến các dối lượng được chọn trong một tập thõng qua m ội chỉ m ục Có ih ể d ùng m ột trường của đối tượng hay m ột g iá lrị dược trả về từ m ột phương thức nào dó làm khóa

c h o chỉ m ục C ũng có th ể định nghla các chỉ m ục trên các giá trị được lồng SÛU trong cấu trúc cù a một dối tượng (nghĩa là các chỉ m ục đường dẫn) Các thuật toán đối sánh tập nhận ban đầu là các tập đối tượng và sinh ra các đối tượng hợp phẩn (com posite) có liên quan với nhau theo m ột tiêu chuẩn nào đó Phép nối (join), giao (intersection) và tổng hợp (assem b ly ) là những th í dụ về các thuật toán thuộc loại này

*t* Chí m ục đường đi

Nhiều kỹ thuật tạo chỉ m ục đã được ihiết k ế đổ làm tăng tốc độ tính toán các biểu thức đường di 1151, [B eríino - K im , 1989] dựa trên khái niệm của chỉ m ục nối (join index) [V alduriez, 1987]

M ột trong s ố các kỹ thuật chỉ m ục đường dẫn đã được phát triển cho hệ quản trị CSD L đối tượng G em stone là tạo ra m ột chỉ m ục trên mỗi lóp cần được duyệt qua bởi một dường dẫn [15] Kỹ thuật này cũng được đé xuất cho hệ quản trị cơ sở dữ liệu hướng đối lưọng O rion ỊBertino - Kim, Í989Ị Ngoài chí mục trên các biểu thức đường đì, người

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

Trang 29

T rang 27/96

ta có thể định nghĩa các chỉ mục trên các đối tượng qua sự k ế thừa kiểu của chúng

Q uan hệ hồ trự iruy n hập (access support relation) I K em per - M oerkotle, 1994] ỉà m ộl

kỹ thuật tổng quát khác đổ biểu diễn và tính các hiểu thức dường đi Q uan hệ hỗ (rợ truy nhập là m ột cấu trúc dữ liệu lưu trữ các biểu thức đường đi đã được chọn N hững bien thức được chọn là những biểu thức thường được d uyệt q u a nhất Các nghiên cứu

đã cung cấp những b ằng chứng ban dầu rằng hiệu năng câu hòt được thực hiện bằng

c ác quan hệ hỗ trợ truy nhập cải thiện được vào khoảng hai lần so với các câu hỏi

k h ông dùng nó M ột hệ ỉhống có dùng các quan hệ hồ trợ truy n hập cũng phải xét đến chi phí duy in ch úng khi có cập nhật đến các quan hệ cơ sở

*> Đối sánh tập (set m atching)

Biểu thức đường đì chỉ ra các đường d uyệt dọc theo các m ối liên hệ hợp của các đối tượng C húng ta đã thấy rằng m ột cách để thực thi m ột biểu thức đường đi là biến đổi

nó thành m ột nối giữa các tập đối tượng nguồn và đích M ột s ố thuật toán nối đã được

đ ề xuất, chẳng hạn nối băm lai (hybrid-hash jo in ) hoặc nối băm theo trỏ (pointer-based

h ash join) ỊShckita - C arey, 1990]- Thuật toán đầu dìm g ngu y ên tắc ch ia để trị nhằm

p hân hoạch đệ qui hai tập thể toán hạng vào các lô b ằng cách đ ù n g m ộl hàm băm trẽn

th u ộ c tính nối M ỗi lô này có th ể được chứa vừa trong bộ nhớ M ỗi cặp lồ sau đó được nối lại trong hộ nh ớ để sinh ra kết quả Nối băm theo trỏ được d ùng khi m ỏi đối tượng tro n g một lập (hổ toán hạng (gọi là R ) có m ột con trỏ chỉ đến m ột đối urợng trong một lập làm toán hạng kia (gọi là S) Thuật toán thực hiện q u a ba bước, bước Ihứ nhất là phân hoạch R g iống như thuật toán băm lai, ngoại irừ n ó được phân hoạch (heo giá trị

O ID chứ k h ông phải thuộc tính nối T ập đối tượng s không được phân hoạch T rong bước thứ hai, m ỗi phân hoạch Rì của R đưọc nối với s bằng cách lấy Ri và xây dựng

m ột báng băm cho nó trong bộ nhớ Bảng, này được xây dựng bằng cách băm mỗi đối tượng r € R trôn giá trị COÎ1 trỏ của nó chỉ đến đối tượng tưưng ứng trong s Kết quả là tất cả các đối tượng R có tham chiếu đến cùng một trang trong s đều được nhóm lại trong Clins m ột m ục ghi của bảng băm Bước thứ ba, sau khi xây dựng bảng băm cho

Ri m ỗi m ục của nó sẽ được quét Với m ồi m ục trong b ảng bãm , trang tương ứng trong

s dược đọc, và tất cả các dối tượnq trong R có tham chiếu đến trang đ ó được nối với các đối tượng tương ứ n s iro n s s Một phương pháp khả chọn cho thuật loán thực thi nối, được gọi !à lổng hợp (assem bly) ịK eỉier et al., 1991] là một tổng quát hóa thuật toán nối băm theo trỏ cho l rường hợp chúng ta C íìn tín h m ột nối da đồng (m ulti-w ay

jo in ), assembly đã được đề xuất như m ột toán tử đại s ố đôi lirợng, Phép toán này tổng

Chương ỉ Co' sỏ dữ liệu hướng đối tượng

Trang 30

_ _ _ _ _ _ _ 'I’rang 28/96 ._ _ _ _họp hiệu q u ả các m ảnh của các irạtìg thái đối tượng cần Ihiếỉ cho một bước xử lý cụ thể, vìi irả ch úng về làm một dối tượng phức trong bộ nhớ Nó dịch các biểu diễn trcn

đ ĩa cứa các đối tượng phức thành các hiểu điỗn có thể duyệt được trong bộ nhó T ổng họp m ột dối tượng phức có gốc lại các dối tượng thuộc kiểu R chứa các thành phần có

kiểu s , u và T thì tương tự như việc tính m ột nối bốn d ò n g cửa những tập này K hác biệt giữa tổ n g hợp và nối í rỏ n-clòng là ớ ch ỗ tổng hợp khô n g cần phải quét toàn bộ tập các dối tượng gốc irước khi tạo ra một kết quả duy nhất

Thay vì tổng hợp mỗi lần mội đối tượng phức, toán tử assem b ly tổng hựp m ột cửa sổ

(w indow ) c ó kích thước w eúa các đôi tượng phức m ột cách đ ồ n g thời, N gay khi một

trong những đối tượng phức này được tổng hợp và được truyền lên trên cây thực thi câu

hỏi, toán tử a ssem b ly truy nhập m ọt cửa sổ đ ể liếp tục Sử đ ụng m ột cửa số các đối tượng phức làm tăng kích thước dự trừ các tham chiếu chưa giải quyết và dẫn đến nhiều chọn lựa ch o việc tối ưu hóa các truy nhập đĩa Do tính ngẫu nhiên trong việc hóa giải các ihatn ch iếu , toán tử assembly phân phối các đối tượng đã tổng hợp theo m ột thứ tự ngẫu nhiên hướng ỉên cây thực thi H ành vi này là đúng đắn trong việc xử ỉý câu hỏi hướng lập hợ p nhưng có thể k h ông đúng với các kiểu tập k h ác như danh sách

Ví dụ hình 3 biểu d iễn việc tổng hợp m ột tập các đối tượng lao động. Các hộp trong

hình hiểu diễn các thể hiện của các kiểu được chỉ ra ở bên trái và các cạnh biểu thị các

m ối liên hệ hợp phần (1 thuộc tính của m ỗi đối tượng kiểu lao động chỉ đến m ột đổitượng kicu đơn vị). G iả sử rằng assembly đ ang dùng m ột cửa sổ có kích thước 2 T oán

tử ưssenihỉv bắt đầu bằng cách điền vào cửa sổ này h ai tham chiếu đối tương lao động

(vì w = 2) từ tệp hợp đó T oán tử assembly bắt dầu b ằn g cách chọn ra trong số các

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

Trang 31

_ _ _ _ = T ra ng 2 9 /96 _ _ _ _tham chiếu độc lập, ch ẳn g hạn như E\. Sau khi giai £ '1(chuyển gửi), hai tham chiếu mới chưa oiải được thcm vào danh sách {Hình 4) Giai Ẽ2 khiến phải {liêm hai tham chiếu nữa vào d an h sách -V.V, cho đến khi đối tượng phức Ihứ nhất dược tổng hợp Đ ến iúc này, dối tượng đã tổ n g hợp dược truyền lên trcn cây thực thi câu hỏ i, giải phóng một cửa sổ n ào đó M ột tham chiếu đối lượng lao động m ới là £ , được d u a vào danh sách rồi thrực g iả i, m ang vào hai tham chiếu D3 và J3.

M ục ticu của thuật toán tổng hợp là tổng hợp đổng thời m ột cửa sổ của các đối tượng phức Tại m ỗ i thời điểm trong thuật toán, tham chiếu độc lập có tối ưu hóa các truy nhập đĩa sẽ được chọn Có những thứ lự khác nhau (lịch biểu) giải quyết các tham chiếu, ch ẳng hạn như theo hướng sâu, theo hướng ngang, hoặc leo thang (elevator)

N hững kết quả hiệu năng chỉ ra rằng kiểu leo thang thực hiện lốt hơn so với theo hướng sâu và hướng n g ang trong nhiều tình h u ống íụ d ữ liệu (K eller)

* Xử lý truy ván trong ObjectStore

O bjectS tore là hệ thống cơ sở d ữ íiộu hướng đối lượng hỗ trợ tính trực giao bền vững cho kicu, quản ]ý giao dịch, và các truy vấn kết hợp [ !3J Các tập được cung cấp như là các dối tượng, m ô hình dữ liệu không phải ử dạng ch uẩn 1 (n o n -lN F ), các đối tượng có thê dược lổng nhúng vào các tập hợp Các truy vấn dược tích hợp vào trong ngôn ngữ

mà khuôn d ạng câu hỏi bao gổm tập hợp và các vị từ Ở đây các vị lừ có thể chính nó

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

Trang 32

* K iến trúc của O bjectStore

O bjcctSlore dựa trôn kiến trúc clien t/serv er 1131, client yêu cầu các trang từ server, khác với cơ sở dữ liệu quan hệ là hệ thống gửi Iruy vấn iỗn server O bjectStore server chỉ xử lý với các trang, nội dung trang sẽ được truy nhập bởi client Và chỉ có client mới xử lỵ với các đối tượng Bởi vì các kiểu tập hợp là đối lượng nên chúng cũng được thao tác Irên client, điều đó cũng có nghĩa rằng các truy vấn được thí hành trôn client

* Kiểu (ập hợp, truy vấn và chi' số

O bject Store cung cấp m ột Ihư viện các lớp có kiểu tập hợp bao gồm : set, bag và list

C húng ta giả sử os_Set<T *> ià tập các đối tượng có kiểu T, nếu cần lạo ra m ột tập đối tượng tạm thời Congnhan có kiểu là Laodong như sau:

os_Set cL ao đ o n g * > C ongnhan;

nếu m uốn tạo ra đối tượng bền vững thì khai b áo lại thành:

persistence < db> os_Set c L a o d o n g * > C ongnhan;

Biểu thức truy vấn trong O bjectStore xác định ra một tập hợp, m ột đối tượng đơn lẻ hoặc một biểu thức logic V í dụ, để lìm kiếm m ột ngưòi CÔIÌÍ» nhân c ó tên là “ N guyền Vân A ”, truy vấn sau đây sẽ tìm kiếm và lưu trữ trong tập hợp:

o s _ S e t < c o n g n h an * >& hoten_A = c o n g n h a n [: hoten == “N guyễn V ăn A”:];

[: :| là toán tử hỏi, nó được đ ặt irước bởi biểu llìức tập hợp và trả về tập con của tập

được truy vấn Kết quả truy vấn trả vé tạp họp chứa các đối lượng thoả m ãn yêu cẩu câu hỏi Các vị từ lựa chọn giá trị trong câu hỏi có thể là bâì kỳ biểu thức nào, VI dụ:

eongnhan [:tuoi > = 30 & & tuoi < = 5 0 :| && là loán tử trong c ++

Các cảu hỏi trong O bjectS tore hầu hết thưcmg ở trên tập hợp m ức trôn đơn lẻ, các tập hợp khônũ được nhúng trong các đối tượng, cũng như ở ví dụ trên co ngnhan ỉà tập hợp mức í rên (top - level)

Háu hết các câu hỏi quan hệ là các phép chọn (select), chiếu (project) và nối (join), trong O bjectSîorc chủ yếu là các câu hỏi lồng (nest) và các câu hỏi theo đường dẫn (path) Do vậy, m ột câu hỏi Ihường được chọn (select) từ m ột lập hợp (collection)

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

Trang 33

Trang 31/961.2.5 So s á n h c ơ sở d ữ liệ u h ư ớ n g d ố i tư ợ n g và c ơ s ở d ữ liệ u q u a n h ệ

Sự tương ứng giữa cơ sở d ữ liệu hướng dối tượng và cơ sở dữ liệu quan hệ

CO SỞ DỮ LIỆU HUỐNG Đ ối TUỢNG Cơ SỞ Dử LIỆU QUAN HỆ

Biến thực th ể (instan ce variable} Cột, thuộc tính (colum n, attribute)

Phân cấp ióp (class hierarchy) Lược đồ (d atab ase schem e ‘is-a ’ relation)

Đ ịnh danh O ID (O bjcct Identifier) K hoá (key)

T h ô n g báo (m essage) Lời gọi thủ tục (procedure call)

Phương thức (m eth o d ) T hân thủ tục (procedure body)

Đ ầy chỉ !à sự tương đương giữa 2 hệ quản trị CSDL, đổ ỉý giải cho nhu cầu phát triển của cư sử d ừ liệu hướng dối tượng, ta sẽ tìm hiểu những ưu đ iểm và nhược điểm của hệ quản trị này so với hệ quản trị cơ sở clữ liêu quan hệ

T h ể hiện được các đối tượng và quan hệ

phức tạp

Thay đổi lược đồ khó khăn, đòi hỏi phải biên đích lai toàn bõ

K hông cẩn khoá Hôn kết T hiếu ngôn ngữ hỏi thông d ụng

M ôi mô hình đ ữ ỉiôu Phụ thuộc ngôn ngữ

H iệu năng c ao chính xác K hông hỗ trợ nhiều người d ùn g đ ồ n g thờiCông sức lập trình Íí hơn n h ò các cơ

c h ế thừa kế, sử dụng lại, và tính khả 171 ở

của mã nguồn

N hờ có các ưu điểm nổi bật, g iú p cho việc m ô hình hoá th ế giới thực 1 cách chính xác, đặc biệt trong các hệ Ihống trợ giúp thiết k ế như C A x, CA SE, G IS (G eographic Inform alion System ), cơ sở dữ liệu Ihco tiếp cận hướng đối tượng ngày càng được quan tâm nghiên cứu và hoàn thiện

Mô hình cơ sở dữ liệu quan hệ tổ chức dữ liệu theo m ột phương thức tương đối đơn giản và "ph an g ” Biểu diễn các đối tượng ứng dụng có cấu trúc bằng m ô hình quan hệ phẳng làm m ất đi cấu trúc tự nhiên vốn có m à có khi rất q uan trọng đối với ứng dụng,

Ví dụ như trong các ứng dụng thiết k ế công nghệ ngirờí ta m uốn biổu điỗn rõ ràng rằng

m ột đối tượng xe có chứa m ột đối tượng động cơ, cũng tương tự trong các hệ thông tin

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

Trang 34

_ _ _ , _ T rang 3 2 /96 _ _

đ a plurơiìg tiện, các đối tượng siêu tài liệu chứa bên trong ià các đối tượng video và các

đ ối Uíợng văn bản có đề m ục m à mối liên hệ hàm chứagiữa các đối tượng không dễ gì bicu diễn dược irong m ô hình quan hệ nhưng lại khá tầm thường trong các m ô hình dối lượng thôn g qua các dối tượng hựp phần (com posite object) và dối tượng phức (com plex object)

N hư dà trình bày ở phần trước, khôtm giống như m ô hình quan hệ, m ô hình hướng đối tượng chưa được ỉhừa nhận rộng rãi Có m ột số đặc trưng ch u n g trong phần lớn các đặc

lả m ô hình nhưng trong m ỗi m ô hình, ngừ nghĩa chính xác của các m ô hình này lại

iv) T hiếl k ế d ữ liệu

v) Thiết k ế các m odun và cài đặt

Ta sẽ mô tả chi tiết các quá trình từ m ô hình hoá đến phân lích, đặc tả, thiết k ế và cài đặt mộ! c ơ sở d ữ liệu hướng đối tượng theo m ô hình O SM Ị 3] trong các chương sau

Chưovg ỉ Cơ sá dừ liệu hướng đối tượng

Trang 35

Trang 33/96

TƯỢNG

2 1 M ô h ì n h m ứ c k h á i n i ệ m

M ỏ hìr.h hoá mức khái niệm là việc lổ chức các khái niệm trừu tượng vào trong các m ô

lả cụ thổ M ô hình hoá đối tượng cung cấp nền tảng cho phân tích yêu cầu và m ô tả các vấti đề liôn quan được thể hiện trong m ô hình trừu tượng Đ ể thiết k ế hệ thống cơ sở dữ liệu hướng dối tượng có 2 hình thức trừu tượng được cung cấp: m ột là ch o thiết k ế m ã chương trinh, hai là cho m ã cơ sở dữ liệu Đ ầu íiên là nám bắt các m ô tả trừu tượng, cúc mô hình hệ thống như U M L [20], O M T [9 ị, OSM [3] sử d ụng các khái niệm như lớp, sự tập hợp, hay tính thừa k ế .v.v với các kiểu hàm dể 1Ĩ1Ô tả các hành vi Các m ô hình đối lượng dược hỗ trợ bởi các C SD L hướng đối tượng rất rộng rãi, tuy nhiên chuẩn

O D M G [20] đ ã cố g ắng giải quyết các vấn đề trái ngược nhau trong cơ sở dữ liệu Các khái niệm trong các m ổ hình được ciặỉ ra không nhắm tới sự tương đương giữa các khái niệm đó được h ỗ trợ trong các m ô hình CSDL hướng đối tượng và điều này có thể dần lới lỗi kháng trở khi càì đặt các ứng dụng C SD L và thiếu hiệu quả trong việc xử lý các câu hỏi Các khái niệm ch o m ô lá đối tượng được cung c ấp bởi U M L, O D M G hay OSM đều c ó những điểm khác nhau nhất định Đ ể phát triển m ột ứng dụng trong c ơ SỪ

d ữ liệu đối tượng, m ô hình hoá mức khái niệm cung cấp được các thồng tin và tri thức

- Các đối tượng trong hộ thống và m ối quan hệ giữa chúng

- H ành vi của đối tượng

' Sự tương lác giữa các đối tượng,

Đ ể có được tập hợp các khái niệm (rírii tượng, I1ÌÔ hình khái niệm phải thể hiện được Ihế giới llìực m ột cách trực liếp, và cần có các công cụ cần thiết để m ô tả các đối tượng phức tạp V iệc m ô hình cho phép II q ười phát triển hộ thống hình dung lại các đối iượng, phàn ỉớp ch ú n g (classify) vào trong các tập đối tượng (sets o f object) m ột cách

có ý nghĩa, mô tả m ối quan hệ giữa các đối tượng và giữa các tập đối tượng, đổng thời nhóm các m ối quan hệ đó thành các tập quan hệ giống nhau Đ ối với hành vị của đối iượng, cho p hép m ỏ tả írạng thái m à ở đó các đối tượng có the lự tìm được chúng, trong các điều kiện gây ra sự biến đổi trạng thái, các hành động có khả năng xuất hiện những Irạng thái và những bước chuycn khác nhau Đ ối với sự ỉtrơng tác các dối tượng, m ồ

Chương 2 Mỏ hình hỡá cơ sở dữ liệu hikmq đối tỉũỉììg

Trang 36

Đ ể hiểu được và sử dụng m ột cách linh hoạt, m ô hình cho phép ánh xạ từ các sự m ô tả

th ế giới thực vào I11Ô tả m ô ¡lình ứnc d ụ n g m ột cách trực tiếp và đơn giản, điều đó dễ dàng cho người phát triển có Ihể sử dụng được m ô hình và làm cho các khách hàng có

th ể dễ lìm hiểu hệ thống

Mộ? m ô hình m ức khái niệm được dé xuất đó là IÌ1Ô hình hoá h ệ ihống hướng đối tượng

O SM (O b jcct-o rien tcd System s M odel) được phát triển trôn cơ sở m ô hình OSA (O bject-o rien ted Syslcm s A nalysts) Ị3 ị Đ ây là mô hình khá rõ ràng, rất phù hợp cho việc phát triển các hệ thống lôn, với dữ ỉiệu phức lạp T rong phần này, tôi xin giới thiệu các quy tắc cũng như các ký pháp thể hiện trong mô hình O SA , từ đ ó á p dụng vào phân tích, thiết k ế các hệ cơ sở dữ liệu hướng dối tượng

M ô hình O SM là sự tích hợp của 3 thành phần bao gồm :

i) O R M {O bject-R eialionship M odel): m ô hm h m ối q uan hệ dối tượng

it) O B M (O bject-B ehavior M odel): m ô hình hành vi đối tượng

lit) O IM (O bject-Interaction M odel): m ô hình tương lác đối tượng

Đổ trợ g iú p ch o việc m ô hình hoá ta sử dụng các lược đổ, tất nhiên khổng có m ột lược

d ồ phổ hic'n c h o m ô hình khái niệm nhưng O SM có các ký hiệu tiện lợi và phù hợp, dễ dàng trong việc thể hiện các quan hệ hoặc tạo ra sự truyén thông phức tạp giữa các đối tượng

2 1 1 M ô h ìn h q u a n h ộ g iữ a c á c đ ố i tư ợ n g (O R M ):

Đ ây là m ô hình được đé nghị Irong OSM để thể hiện các đối lượng và các quan hộ giữa các đối tượng Đ ối tượng cổ thể là nguyên tử hoặc phân tử, có các thành phần riêng rẽ tập họp lại tạo nên đối tượng Mặc dù ORiVl ch o phép m ô hình hoá các đối tượng và các mối quan hệ giữa các đối tượng m ột cách trực tiếp, tuy nhiồn chúng ta thường nhóm ch ú n g vào trong các tập hợp và m ô hình hoá các tập q u an hệ giữa các lập hợp đối tượng, N goài ra có thổ m ô hình hoá các tập con của tập dối lượng trong phân cấp lổng

q u át hoá/dãc biệt hoá Đ ể điều khiển sự phức tạp và cung cấp các khung nhìn (view ), rnô hình OSM cũng cung cấp các tập dối tượng và quan hệ m ức c ao (high-level) bằng

Chươìỉí! 3 Phân tích đặc tả rà thiết k ế cơ d ữ liệu luừhìg dốt tượng

Trang 37

Trang 35/96

cách nhóm các đối tượng và quan hệ 111 ức thấp ỉìtm vào trong cùng m ột m ức trừu urợng cao hơn Sau đây ta sẽ m ô lủ chi tiết các thành phần của IĨ 1 Ô hình O R M :

ụ Các dối tượng và các quan hệ

Đối tượng là người, vật hoặc vấn đề nào đó, có the ỉà m ức vật lý hoặc tnức khái niêm

Đ ối urựng được biểu diễn trên lược đ ồ bằng dấu chấm đậm ( • )

M ọi đối tượng hoặc ở dạng từ vựng (lexical) hoặc không (nonlexical) M ột đối tượng

th ế hiện khô n g phân biệt được từ chính nó thì gọi là từ vựng Các định danh như tên riên g , ngày, giờ, các đối tượng d ạng ảnh hay video là dạng từ vựng Các đối tượng khác nhau về m ặt thổ hiện được gọi là n o nlcx ical, ch úng có định danh đối tượng (identifier) Các quan hộ ciữa n đối tượng được biểu diễn bằtig n đường thẳng nối giữa các đối tượng Q uan hệ giữa 2 đối tượng được thổ hiện bằng 1 đường kết nối, tên gọi và mùi tên chỉ hướng

ii) Các lập đối tượng và tập quan hệ

C ác dối tượng thường được nhóm vào trong tập hợp, được gọi ỉà tập đối tượng (object set), tưưne tự với các quan hệ được nhóm vào các tập quan hệ T rên lược đồ, tập đối tượng được biểu diễn bởi hình chữ nhật bao ngoài tên của lập đối lượng đó Tôn xác định mội tập đối tượng duy nhất C húng ta có thể đặt tập đối tượng c ó tên giố n g nhau xuất hiện nhiều lần trong lược đổ

Nếu tấl cả các đối tượng đều là ở dạng từ vựng, dường bao hình c h ữ nhật [à net gạchdứt và chúng ta xem chúng như là tập đối tượng từ vụng T rong các trường hợp khác thìđường bao hình chữ nhật là liền m ạch

C húng ta biểu diễn tập các m ôi quan hệ bởi hình thoi với dường nối tới các tập đối

lượng hoặc các đối tượng rìông lẻ Tên của tập quan hệ bao gồm tên của tập các đối tượng dược kết nối và tên cùa các dối tượng riêng lẻ

Chưư/ìỊi 3 Phân tích, dặc tả và thiết kếcơ sâdữìiện hướng đối tượng

Trang 38

Trang 36/96

Tâì củ các thành phẩn đối lượng, các tập dối tượng, các quan hệ và các tập quan hệ đều

có thể có nhiều lẽn Đôi khi chúng ỉa coi tập các dối tượng như m ột đối tượng, OSM cung cấp các dối lượng là tập dối tượng (object-set) ch o m ục đích này

Ràng buộc toàn vẹn tham chiến lức là m ột quan hệ trong tập các quan hệ được liên kết tới tập đối tượng s có thể không tham chiếu được đến dối tượng X cho liên k ết đ ó irừ khi x e á ì ,

+ R àn g buộc hiện: là ràng buộc các yếu tố trong tập họp đối với các đối tượng và các tập q uan hệ

Rùng buộc sự tham gia (participation constraint): đặc tả số lần mà đới tượng có Ihc tham gia vào tập quan hệ Có các loại ràng buộc như sau:

+ 1:1

+ I:*

+ num ber: *

+ 0:*

(hoặc n-bộ củ a các đối tượng) có thể cùng xuất hiện trong m ối liên kếl với đối tượng khác (hoặc với ni-bộ của các dối lượng)

Rùng buộc trong tập hợp đối tượng (object-set card in ality constraint): số đối tượns có thể c ó trong tập hợp đối tượng, khuôn d ạng ch u n g như sau:

m in 1 :m ax 1, .,m intl:m axn Thông thường ràng buộc trong tập hợp đối tượng của OSM có các dạng: ():*, !0:1 hoặc 1:1 T a có ihc viết tắt trong trường hợp q uan hệ !:1 là I, trong trường hợp n;n là n, nếu không có ràng buộc nào la coi ngầm định là 1

Clníơni’ 3 Phún rích, đặc tù vù thiết kè vơ sớ (ìữ liệu hướ /1 i> đổi tượ/tiỊ

Trang 39

Trang 37/96

Ta cũng có thể dặc tả quan hệ ở m ội vế vừa là số trong 1 khoảng hoặc 1 số chính xác V í ciụ:3:17, 20

+ Ràng buộc tổng quát là những sự phù hợp chung nhất trong hệ thống, nó cho phép

đặc tá bất cứ cái gì ch ú n g ta m uốn, ví dụ: C ô nclâiì V i ệ t N ư m p h o i t ừ 1 8 t u ổ i t r ở l ê n

T hô n g ỉhườtìg các dặc tả loại này được viết không hình thức, nhưng lại phổ biến trongOS.M nhằm chi tiết hoá vấn đề, và vì vậy ta phải hình thức hoá các ràng buộc này để có thổ làm ch o chúng có hiệu ỉực Irong hệ thống

N goài ra, có thể kết họp ràn g buộc lổng quát và ràng buộc tập họp cùng các biến để biểu diễn phạm vi của các ràng buộc đặc biệt

Tuy nhicn, cũng khô n g được nhầm lẫn giữa các ràng buộc tổng quát với các ghi chú, bởi các ghi chú cũng là m ột phần của m ô hình OSM Các ràn g buộc thể hiện sự licn quan giữa m ột hoặc nhiều đối tượng hoặc các tập hợp quan hệ, nhưng ngược lại các ghi chú chi đơn ihuần là cung cấp thêm thông tin

b) Tổng quát hoá/đặc biệt hoá (generalization/specialization)

M ô hình O SM hỗ trợ tính tổng quát hoá và đặc biệt hoá bởi đặc irưng “ /.Ví/” N gười ta đùng hình tam giác để biểu điẻn quan hệ tổng quát hoá/đặc biệt hoá, đỉnh của tam giác chỉ đến dối urựng tổng quát

Như một rà n s buộc, quan hệ tống quát hoá/đặc biệt hoá chỉ ra rằng b ộ các đối tượng trong tập đối tượng đặc biệt hoá là tập con của bộ các đối tượng Irong tập đối tượng tổng quái hoá

Chưư/Iiị 3 Phàn rich cíặ(' tả vù liùết k ể cơ sở dữ liệu hướm> dối tượng

Trang 40

Trang 38/96

Sự tổHi’ quáỉ hoá có mội vài hướng dặc biệí hoá, để thổ hiện ràng buộc giữa chúng người la sử dụng dấu hợp ( u ), còn dấu (+) đổ chỉ ra ràng tập các đối tượng đặc hiệt hoá là khác nhau Kết hợp cá 2 dấu Irên thể hiện ràng buộc cả sự kết hợp và phàn biệi lân nhau

Hình 7 R àng buộc tổng quát hoá/đặc biệt hoá

Tất cả dối tượng Người đều có thể là Công chức hoặc Khách hàng hoặc lá cả hai, dồng thời tất cá Công chức đều hoặc ià Trưởng phòng, hoặc lủ Nhân vi ân nhưng không

C húng ta có thể lợi d ụng sự ràng buộc giao nhau bằng cách d ùng ký hiệu giao ( n ) đặt trong tam giác để biểu thị tập các đối tượng đặc biệt hoá là giao của các tập đối tượng lổng quát hoá Nếu chúng ta bỏ qua các ràng buộc giao nhau, sự đặc biệt hoá cố ihể thực sự ỉà tập con c ủ a giao các tập đối tượng (ổng quát hoá, ở hình 6 chúng ta có thổ chọn ra tập các K hách hàng ỉà C ông chức bằng cách sử d ụ n g ràng buộc giao nhau

Chưưnii 3 Phâti rích, đặc tả và thiết kê cơ sở d ữ liệu hướriiỊ dối tượtiịỊ

Ngày đăng: 16/03/2021, 10:13

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm