Giới thiệu về hệ ObjectStore

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 175 - 179)

- 17

8.2.2 Giới thiệu về hệ ObjectStore

Khác với các CSDLQH, trọng tậm của các chương trình ứng dụng với ObjectStorelà thaotáctrên cácđốitượng. ObjectStorecónhữngđặc trưngchínhnhư sau:

1. Hỗ trợ mô hình đối tượng

ObjectStorehỗtrợtấtcảcáckháiniệmcủamôhìnhđốitượng:

Lớp:Đốitượngvàlớplànhữngkháiniệm trungtâmcủa ObjectStore.Đốitượng hiệnhữutronghệthốngdựavàođịnhdanh.

Các thuộc tính:ObjectStore chophép ánh xạtrựctiếp cácthuộctính vàonhững

cấu trúcxácđịnhcủa ngônngữ lậptrình. Đốivớinhững thuộctínhdẫnxuất, ObjectStorekhônghỗtrợ trựctiếpmàbạnphảiviếtchươngtrìnhđểxácđịnh nhữngthuộctínhđó.

Các phương thức:ObjectStore cung cấpnhững khả năng dịch khá hiệu quả các

phươngthức(hàm)sangmãchương trìnhthựchiệnđược.

Các quan hệ kết hợp: ObjectStore hỗ trợ những quan hệ kết hợp nhị nguyên,

không hỗ trợ những khái niệm nâng cao như các thuộc tính liên kết (link

attributes), lớpkếthợp(association classes).

Kế thừa:ObjectStorehỗtrợcảkếthừađơnvàkếthừabội.

2. Đối tượng bền vững và tạm thời

Đối tượngở trongcác ứng dụngcủa ObjectStorecó thể làbền vững (persistent) hoặc tạm thời (transient). Đối tượng bền vững là đối tượng được lưu trong CSDL và có thể trảiquanhiều ứngdụngkhácnhau. Đối tượng tạm thờilàđối tượng chỉtồn tại trongbộnhớ vàbịbiếnmấtkhiứngdụng kếtthúc. Nhưthế,đốitượngtạm thờilàđối tượnglậptrình thôngthường. Mộtlớpcó thểcó cảđốitượng bềnvững lẫnnhữngđối tượngtạmthời.

CSDL của ObjectStore liên kết các đối tượng bằng các con trỏ bền vững và các tham chiếu (reference). Tham chiếu của ObjectStore không giống như tham chiếu trong C++.Nó làlớpđượctham sốhoá (parameterized class) củaObjectStore, có thể

sử dụng như là con trỏ, nhưng cho phép viết đè đểhạn chế sự tham chiếu trong các CSDLvàtrongcácgiaodịch.

Bạn có thể truy cập các đối tượng tạm thời khi muốn sửdụng những đối tượng lậptrìnhkháchaysửdụngcáctruyvấncủaObjectStore.Cóthểtruycậpđốitượngbền vữngthôngqua gốccủaCSDL(database roots)hoặccáccâutruyvấn.

- 157 -

Loạicontrỏ Contrỏ hợplýkhi

Con trỏ tạm thời trỏ tới đối tượng tạmthời

Chỉkhichươngtrìnhthựchiện

Contrỏtạmthờitrỏtớiđốitượng bền vững

Hợp lệ cho một giao tác hoặc trong khoảng thời gian chạy của một ứng dụng.

Con trỏ bền vững trỏ tới đối tượng bềnvữngtrongcùngmộtCSDL

Luônluônhợplý

Con trỏ bền vững trỏ tới đối tượng bềnvữngtrongcácCSDLkhácnhau

Hợp lý cho một giao tác hoặc nhiều giao tác phụ thuộc vào sự lựa chọn trongứngdụng

Con trỏ bền vững trỏ tới đối tượng tạmthời

Hợplýcho một giaotác. Phảigán giá trịnull chocon trỏhoặcchuyển nó về đối tượngbền vữngtrướckhi giaotác đượcuỷthác.

Bạn có thể tạora nhữngđối tượngbền vữngbằng cáccơ chế của C++ (trongbộ nhớtĩnh,ởStackhaytrênHeap).

Nói chung, tất cảcáctính chấtcủa cáckiểuđều cóthể ápdụng cho cảđối tượng bền vữngvàtạmthời,kểcảquanhệkếthừa.Tuynhiên,tacũngphảituântheomộtsố qui tắc khi sửdụng các con trỏ và tham chiếu tới cácđối tượng trongmột hay nhiều CSDL.

Thư viện lớp là thành phần quan trọng của môi trường phát triển phần mềm hướngđốitượng,trongđócáclớp Collection làquantrọngnhất.

Một Collection làmột đối tượng kết nhập từ nhữngđối tượng khác.Những đối

tượngnàycóthể làđối tượngnguyên thuỷhoặc lạilàtuyển tập nhỏ hơn.ObjectStore hỗ trợ cảnhững tuyển tậpthuần nhất (các phần tửcó kiểu cùng loại) vànhững tuyển tậpkhôngthuầnnhất(cácphầntửcónhiềukiểukhácnhau).

Các Collection được sửdụng cho nhiều mục đích khác nhau. Ta cóthể sử dụng

Collectionđểthểhiện,càiđặtcácquanhệkếthợp.ObjectStorechophéptruyvấntrên

các Collection.Cóthểsử dụng Collectionđể càiđặtnhững thành phầnđiều khiểncác

đốitượng.ObjectStorehỗtrợnhữnglớp Collectionsau:

Set:tuyển tập khôngđược sắp thứ tự và không lặp lại các đối tượng. Chỉ chèn đượcmộtđối tượngvào Setkhitrongđó khôngcó đốitượngđó. Cóthểtruy cậpcácđốitượnglặplạitheothứtựbấtkỳ.

Bag:tuyển tậpkhôngđược sắpthứtựnhưngđượcphéplặplạicácđốitượng.Có thể chèn thêmmộtđối tượngvào Bag. Lấyratừ Bag mộtđối tượnglàgiảm

-158-

đimột lầnxuấthiện củađốitượng đó.Có thểtruycập đếncácđốitượng lặp lạitheothứtựxácđịnh.

List: tuyển tậpđược sắpthứ tựvàđượcphép lặp lạicácđốitượng. Chèn thêm, lấyramộtđốitượng từListđượcthựchiệnởnhữngvịtríxácđịnh củaList.

Cóthểtruycậpđếncácđốitượnglặplạitheothứtựxácđịnh.

Array: tuyển tậpđược chỉ sốhoá, đượcsắp thứ tựvà đượcphép lặp lại cácđối tượng. Khi một đối tượng mảng được tạo lập, tất cả các phần tử của nó là Null. Nhữngphép toán cơbản nhưđọc /ghi đều đượcthựchiện ởnhững vị trí được chỉ số hoá của mảng. Kích thước của mảng làkhông thayđổi. Các đốitượngcủamảngđượctruycậplặplạitheochỉsố.

Dictionary:tuyểntậpkhôngđượcsắpthứtựvàđượcphép lặplạicácđốitượng. Từ điển (Dictionary) khác với những lớptrước đó (Bag) ởchỗ nócho phép liên kếtkhoá với mỗiphần tử. Khoá có thểlàmộtgiá trịcủa contrỏ vàkiểu nàođó trongC++.Chènthêm, lấyramộtđối tượngtừDictionaryđược thực hiện thông qua khoá (key) được gán với các đối tượng. Có thể truy cập đến cácđốitượnglặplạitheothứtựbấtkỳ.

ObjectStorehỗtrợcácphéptoántrêntậphợpđốivớicáclớptuyểntập:hợp,giao,

hiệuvàtuyểntậpcon.

4. Một số đặc tính khác của ObjectStore

ObjectStore có cả những tính năng như các CSDL truyền thống và CSDL phát triển.

+ Khả năng thực hiện đồng thời(concurrency). ObjectStorecó thểđọc/ghi từngtrang trên đĩa (disc page). Cơ chế khoá trang (page locking) là rất hiệu quả của ObjectStore.Tuynhiên,đốivớimộtsốứngdụng,khoátrangcũnghạnchếkhảnăng thựchiệnđồngthờihơnsovớikhoáđốitượng.

+ Khôi phục những phần bị phá vỡ (Crash Decovery).ObjectStore có khảnăng phục hồi dữ liệu và khôiphục những phần việc đãbịđổ vỡcủa phần mềm, máytính và củađĩa.

+ Khả năng đảm bảo an ninh (security). Cũng giống như nhiều hệ QTCSDL HĐT khác,ObjectStorecóthểđảmbảoanninhchohệthốngtệptrongCSDL.

+ Cung cấp từ điển dữ liệu(Data Dictionary).ObjectStorecósẵntừđiểndữliệu,song việctruycậpvàonólàkhóđốivớingườilậptrình.

+ Xử lý các giao dịch(Transaction).Mỗigiaotácthựchiệncóthểliênquanđếnnhiều đối tượng bền vững và tạm thời của nhiều CSDL. Đối với những đối tượng bền vững,hoặc là toàn bộ chương trình ứng dụng phải được viết vào những CSDL đó hoặc không viết gì cả.ObjectStore yêu cầu tất cả các giao dịch trên các đối tượng bền vững phải xuất hiện trong cùngmột giao dịch. Tất nhiên nó hỗ trợ cả những giao dịch lồng nhau. Giao dịch lồng nhau là những giao dịch được đặt trong một giaodịchkhác.

- 159 -

+ Chỉ số hoá(Index).ChỉsốhoácủaObjectStorecó thểlàmtăngtốcđộtrảlờichocác câutruycập.Tacó thểtạo ramộthoặcnhiềuchỉ sốchomột tuyểntập.ObjectStore duy trì cơ chế chỉ số hoá một cách trong suốt và sử dụng nó để cải tiến hiệu suất trong truyvấn đối tượng. Tacũng cóthể tạo lậphoặc huỷbỏchỉ số bấtkỳlúc nào trongthờigianthựchiệncủachươngtrìnhứngdụng.

Khi định nghĩa một chỉ số, ta có thể sử dụng cơ chế đường đi của ObjectStore.

Đường đi của ObjectStore là một dãy các đỉnh, trong đó mỗi đỉnh là giá trị của

thuộc tínhcủa đốitượngtươngứngđượcchỉsốhoá.Vídụ: đối tượng :KhachHang

có thể có con trỏ chỉ tới đối tượng :DiaChi với các thuộc tính phố, quận/huyện,

tỉnh/thành. KhiđótacóthểđánhchỉsốtrêntuyểntậpcácđốitượngKhachHangsử

dụngđườngđitheo tỉnh/thành.

Lưu ý: Đường đi trong ObjectStore khác với đường đi trong OMT ởchỗ mỗi đỉnh trênđườngđichỉcóthểnhiềunhấtlàmộtđốitượng.

+ Truy vấn đối tượng. ObjectStore cung cấp các câu truyvấn (queries)để tìm kiếm các đốitượng. Truy vấn tìm trên tuyển tập cácđối tượngthoả mãn tântừđược xác địnhdựatrêncácthuộctínhcủanhữngđốitượngmongđợi.

ObjectStoretheohướngdẫncủadãycáccon trỏnhư(obj1->obj2->obj3).

+ Sự tiến hoá của sơ đồ (Schema evolution). Sự tiến hoá sơ đồ muốn đềcậpđến việc

di trúdữliệungangqua nhữngthayđổicủacấu trúc dữliệu.Người pháttriển phải đồngthờigiữlạinhữngdữliệuquákhứtrongkhiphảimởrộngcấutrúctheonhững yêucầumới.Việcditrúdữliệusang sơđồmớiđượcthựchiệnquahaipha.

1.Thayđổi cáccon trỏvàsựthamchiếu tớidữliệucầnphảidichuyển vàđánh dấucácchỉsố.

2.Thựchiệnchươngtrìnhmàbạnviếtđểđảmbảoduytrìhệthống.

ObjectStore hỗ trợ cho sự tiến hoá sơ đồ bằng cách duytrì riêng biệt siêu dữ liệu (metadata)chocảsơđồCSDLvàsơđồứngdụng.

+ Hỗ trợ phân tán. Các đối tượng bền vững được lưu trữ trong các CSDL, mỗi đối tượng ởmột CSDL. ObjectStore khôngcho phép lặp lại. Nếubạn muốn có sự lưu trữlặpthìphảiviếtchươngtrìnhứngdụngriêng.

ObjectStore được xây dựng tối ưu trên kiến trúc Client-Server. Mỗi CSDL được quản lý bởi một Server và mỗi Server cóthể quản lýnhiều CSDL. Mộtứngdụng cóthểcónhiều Servers, Clients (máy khách),vànhiềuCSDL.

+ Khách hàng là trung tâm (Client-centric Computing). ObjectStore chấp nhận kiến trúclấykháchhàng làtrung tâmvàhướngtớikiếntrúc Client-Server.Trongcáchệ QTCSDL QH thì chủ yếu dựa vào kiến trúc lấy Server làm trọng tâm. Những hệ QTCSDLsửdụngkiếntrúclấy Client làtrungtâmsẽhỗtrợkháchhàngnhiềuhơn.

- 160 -

Một phần của tài liệu giáo trình ngôn ngữ hóa thống nhất uml (Trang 175 - 179)