Lợi ớch thứ hai của một cơ sở dữ liệu của cỏc đối tượng đú là server và client cú thể trao đổi và trữ cỏc đối tượng như là cỏc đối tượng. Điều này giảm tổng phớ trong cả việc vận tải và việc trữ, và cho phộp thực thi nhanh hơn nhiều.
Lợi ớch chớnh thứ ba của server nhận biết đối tượng là khả năng dễ dàng chia sẻ cỏc đối tượng giữa cỏc nền, cỏc bộ biờn dịch và cỏc ngụn ngữ khỏc nhau. Bởi vỡ cỏc cơ sở dữ liệu hiểu và lưu cỏc đối tượng, khụng phải cỏc trang của bộ nhớ, cỏc lient NT cú thể giao tiếp với server Solaris, cỏc ứng dụng Java cú thể thao tỏc cỏc đối tượng được tạo bởi cỏc ứng dụng C++ và ngược lại. Tất cả cỏc vấn đề về tớnh khụng đồng nhất được quan tõm bởi cơ sở dữ liệu, một khỏi niệm quan trọng để giỳp đỡ cỏc ứng dụng ngày nay và mai sau.
Người muốn khỏm phỏ khụng thể truy nhập cỏc đối tượng của họ từ một mỏy/bộ biờn dịch/ngụn ngữ mới bởi vỡ bài trớ bộ nhớ của nú khụng tương thớch với những gỡ được lưu trữ trong cơ sở dữ liệu, (vớ dụ, 32 bit địa chỉ so với 64 bớt địa chỉ?) Hoặc tăng phớ tổn của sự phỏt triển thụng qua nền?
1.4. Những ưu điểm và nhược điểm của cơ sở dữ liệu hướng đối tượng đối tượng
Mặc dự cỏc cơ sở dữ liệu hướng đối tượng cú thể mang lại nhiều lợi thế hơn so với cỏc cơ sở dữ liệu quan hệ (RDB), cỏc OODB khụng thể làm suy chuyển thành trỡ RDB trong cỏc hệ thống điều khiển dữ liệu. Chỳng là một cụng nghệ mới hơn đó được sự thừa nhận rộng rói của nhiều kiến trỳc sư DB, tuy nhiờn những người phỏt triển ứng dụng thường chọn RDB.
Đừng lóng quờn OODB khi xem xột cỏc dự ỏn cơ sở dữ liệu. Để chọn một giải phỏp đỳng đắn, cần ước lượng khả năng chịu đựng rủi ro, những yờu cầu kỹ thuật, những đũi hỏi khi thi hành, và giải phỏp kỹ thuật tổng thể được đề xuất. Trong trường hợp lựa chọn đỳng, một OODB cú thể là một cụng cụ tuyệt vời. Trong trường hợp lựa chọn sai, chỳng ta cú thể phải làm lại việc thiết kế gần như hoàn toàn - nếu khụng làm lại kiến trỳc. Hóy tỡm hiểu những ưu điểm và nhược điểm khi lựa chọn OODB [8, 9, 10].
1.4.1. Những ưu điểm của cơ sở dữ liệu hướng đối tượng
Thiết kế tao nhó
Một OODB cú thể đơn giản hoỏ những thỏch thức về khả năng bền vững của hệ thống. Với cỏc hệ thống động, sự nỗ lực đỏng kể thường tập trung vào tầng truy cập dữ liệu. Một OODB khụng loại bỏ việc cần cú nỗ lực này, nhưng trong nhiều trường hợp nú cú thể làm cho việc quyết định lưu trữ và khụi phục thụng tin như thế nào đơn giản hơn.
Trong một dự ỏn hướng đối tượng, sự tớch hợp giữa lụ gớch ứng dụng và dữ liệu được lưu trữ cú thể là trong suốt hoàn toàn. Khả năng giữ sự bền vững và lụ gớch
ứng dụng trong cựng một mụ hỡnh hướng đối tượng làm đơn giản việc mụ hỡnh hoỏ, thiết kế cỏc yờu cầu nghiệp vụ, và sự trừu tượng của kiến trỳc và thiết kế hệ thống. Một số OODB thậm chớ cũn cú một phiờn bản thu gọn cho phộp chỳng tớch hợp với ứng dụng vào trong một hệ thống nhỳng.
Với một số OODB, chỳng ta cú thể làm bền vững khụng chỉ dữ liệu mà cả toàn bộ đối tượng, bao gồm ứng xử thực thi của nú. Một số OODB cũng cho phộp gọi cỏc phương thức của đối tượng bền vững trờn một server cơ sở dữ liệu từ xa, điều này mang lại cho chỳng ta một số thuận lợi ở tớnh khả mở và sự phõn tỏn. Ngược lại, để hoàn thành việc này trong một cơ sở dữ liệu quan hệ chỳng ta cần thực thi những thủ tục được lưu hoặc cỏc đối tượng COM, do vậy bắt buộc phải cú một vài sự lặp lại trong cỏc nỗ lực lập trỡnh hoặc một kiến trỳc bất tiện hơn.
Giảm bớt sự phỏt triển
Việc đào tạo và huấn luyện cú thể chiếm một chi phớ đỏng kể với cỏc dự ỏn. Hơn nữa, cỏc yờu cầu nghiệp vụ, cỏc xem xột cựng mức, cỏc chỉ dẫn xõy dựng, và cỏc yờu cầu kiểm tra cú thể bị phức tạp hoỏ bởi nhiều cụng cụ, ngụn ngữ, và mụi trường hỗ trợ. Một OODB cú thể giảm số lượng cỏc ngụn ngữ được đũi hỏi trong kiến trỳc của chỳng ta. Đội ngũ phỏt triển sẽ khụng cần cú những kỹ năng trong cỏc cụng nghệ chẳng hạn như JDBC, Pro*C/C++, và PL/SQL. Thay vào đú, những người phỏt triển cú thể làm việc với nhiều khỏi niệm phổ biến hơn chẳng hạn như cỏc đối tượng Java, sự lặp lại thụng qua cỏc tập hợp, v..v.
OODB cũng cú thể giảm bớt thời gian phỏt triển bằng việc cho phộp những người phỏt triển tập trung vào tớnh bền vững đối tượng, khụng phõn ró cỏc đối tượng thành cỏc hàng và cỏc mối quan hệ cha con vào trong một hoặc nhiều bảng. Trong hầu hết cỏc trường hợp, một người phỏt triển chỉ đơn giản là lưu một đối tượng vào cơ sở dữ liệu. Hóy so sỏnh thủ tục một bước này với những trở ngại của việc lưu một đối tượng phức tạp vào một RDB. Người phỏt triển khụng chỉ phải biến đổi đối tượng thành một chuỗi cỏc bản ghi, mà việc quản lý giao dịch, điều khiển lỗi, và
việc tỏi thiết về sau cũng sẽ được yờu cầu khi khụi phục đối tượng. Hơn nữa, cỏc thuộc tớnh đối tượng phải được xuất thành kiểu dữ liệu tương thớch ANSI.
Một số OODB cung cấp sự tớch hợp liền nột hoàn toàn giữa ứng dụng và mó trỡnh bền vững, điều này giỳp đơn giản hoỏ việc gỡ lỗi và việc kiểm tra sản phẩm cuối cựng. Trong khi một số kiến trỳc cơ sở dữ liệu đũi hỏi cỏc thư viện và một giao thức giữa mó trỡnh ứng dụng và bộ lưu trữ dữ liệu, một OODB cú thể bỏ qua ràng buộc này và cho phộp bộ gỡ lỗi giỏm sỏt điều gỡ xảy ra khi dữ liệu đang được lưu.
Thực thi tốt hơn
Tuỳ thuộc vào sản phẩm và sự thực thi, OODB cú thể mang lại sự thực thi hiệu quả cho kiểu ứng dụng đỳng. Nếu ứng dụng sử dụng một RDB và chỳng ta phải dựng lại một đối tượng từ dữ liệu trong cơ sở dữ liệu, chỳng ta thường xuyờn phải thực hiện nhiều truy vấn. Mỗi truy vấn này chịu một tổng phớ và, nếu khụng lập kế hoạch cẩn thận cho cỏc chỉ mục cú thể dẫn đến những trả giỏ thực thi trầm trọng. Một OODB làm giảm vấn đề này một cỏch đỏng kể, bằng việc cung cấp một khỏi niệm như đó biết là định danh đối tượng hoặc OID - cơ sở dữ liệu khụi phục đối tượng trong trạng thỏi toàn vẹn của nú hoặc như một bộ nạp lười, một kỹ thuật truy vấn theo đú mó trỡnh của ứng dụng được tải từng phần khi cần thiết.
Một số thi hành OODB cũng dựng caching phớa client cựng với caching phớa server. Mặc dự điều này cú những bất lợi, nhưng nú chắc chắn cú thể cải tiến sự thực thi của ứng dụng. Chỳng ta sẽ thường nhỡn thấy cỏc dấu hiệu cơ sở dữ liệu “ấm” hoặc “lạnh”, trong đú một dấu hiệu ấm ngụ ý cú một chương trỡnh kiểm tra chạy đi chạy lại một hay nhiều lần để đỏnh giỏ cỏc lợi thế caching và buffering. OODB thường trội ở cỏc dấu hiệu ấm bởi cỏc tiện ớch caching phớa client của chỳng.
1.4.2. Những nhược điểm của cơ sở dữ liệu hướng đối tượng
Cỏc cơ sở dữ liệu hướng đối tượng cú những nhược điểm mà chỳng ta cũng cần phải xem xột. Một trong những hạn chế đương nhiờn và đỏng kể nhất là rủi ro trong việc chuyển một RDB sang OODB. Cỏc cơ sở dữ liệu quan hệ cú những điểm yếu
của nú nhưng chỳng đó được thử thỏch và được sử dụng thành cụng trong cỏc hệ thống điều khiển dữ liệu. Cỏc mẫu kiến trỳc/thiết kế cho việc tớch hợp cỏc RDB vào trong một hệ thống cũng đó được định nghĩa và minh hoạ.
Múc nối ứng dụng chặt khớt
Trong nhiều thi hành OODB, OODB được múc nối chặt khớt tới ứng dụng. Điều này giỳp đơn giản hoỏ cả việc thiết kế và lập trỡnh, nhưng tầng trừu tượng hoỏ dữ liệu cũng cú một số giỏ trị. Khi loại bỏ nú, chỳng ta đó đỏnh mất một tầng cỏch ly với cơ sở dữ liệu. Điều này làm cho ứng dụng khụng thể dễ dàng chuyển sang một sản phẩm cạnh tranh mà khụng cần cú những thay đổi và sự rà soỏt lại đỏng kể. Chỳng ta cũng cú thể luụn luụn thi hành một tầng trừu tượng hoỏ dữ liệu quanh sự thi hành OODB. Mặc dự điều này sẽ đỏnh mất một số lợi ớch của OODB, tuy nhiờn việc phỏt triển tầng này cho một OODB chắc chắn sẽ rẻ hơn việc tạo một RDB tương đương.
Những thiếu sút thực thi
Như đó thảo luận, một trong những ưu điểm của OODB là khả năng khụi phục trọn vẹn cỏc đối tượng một cỏch hiệu quả. Tuy nhiờn, một đặc thự của OODB đú là cỏc truy vấn phi thể thức với cơ sở dữ liệu của chỳng khỏ yếu. Việc nới lỏng sự điều hướng thụng qua dữ liệu cú thể là một thỏch thức, và việc tối ưu hoỏ và chức năng hoỏ truy vấn OODB cũng thường tụt hậu so với cỏc sản phẩm cơ sở dữ liệu quan hệ chớnh.
Một số thi hành OODB khụng cung cấp một cỏch đầy đủ việc khoỏ kết chuỗi. Vỡ vậy, nếu khụng cẩn thận mó trỡnh ứng dụng cú thể khoỏ một nhúm lớn cỏc đối tượng. Trong khi hầu hết cỏc RDB thi hành việc khoỏ mức hàng, một số OODB tiếp tục thi hành việc khoỏ trang. Hơn nữa, cỏc khoỏ cú thể lan qua cỏc mối quan hệ trong một đối tượng, cho phộp tiềm ẩn một hành động khoỏ một lượng đỏng kể dữ liệu.
Ngay cả khi một OODB được thực thi trong Java, chỳng ta vẫn phải tiếp tục tỡm kiếm một sự bảo đảm trong việc hỗ trợ đa nền. Mặc dự Java là khả chuyển, cỏc phần mềm Java phức tạp cú thể cú những kiểu cỏch và sắc thỏi riờng trong một mụi trường cú sẵn, với những phần mềm này chỉ cỏc nhà cung cấp mới cú thể giỳp chỳng ta di chuyển chỳng. Một số nhà cung cấp OODB khụng thể dành đầy đủ nguồn lực để hỗ trợ rộng rói trong việc vượt qua nhiều nền bởi vỡ họ cú ngõn quỹ nhỏ hơn cỏc nhà cung cấp RDB chớnh. Để đỏnh giỏ sự hỗ trợ nền, tỡm hiểu xem nhà cung cấp cung cấp những gỡ và kiểm tra cỏc nhúm thảo luận (vớ dụ,
comp.databases.object và comp.object) để giỏm sỏt tần suất những thảo luận về
một sự kết hợp của phiờn bản và sản phẩm cú sẵn.
Di chuyển khú
Việc lưu cỏc đối tượng tới một OODB khỏc rất nhiều so với việc lưu cỏc đối tượng tới cỏc cơ sở dữ liệu quan hệ. Do vậy, rất dễ để di chuyển một hệ thống dựa trờn quan hệ tới một OODB và một khi đó cam kết việc thiết kế và phỏt triển cho một OODB, chỳng ta cú thể nhận thấy rằng rất khú để di chuyển trở lại một RDB.
Với nhiều dự ỏn, an toàn hơn nhiều là di chuyển từ một cơ sở dữ liệu quan hệ tới một cơ sở dữ liệu quan hệ đối tượng. Một số nhà cung cấp chẳng hạn như Oracle đó làm cho việc di chuyển này là đương nhiờn bằng cỏch đơn giản là thờm cỏc thuộc tớnh quan hệ đối tượng tới sản phẩm lừi của họ. Kết quả là, RDB kế thừa thường cú thể được mở rộng để sỏt nhập cỏc chức năng quan hệ đối tượng và được di chuyển theo một cỏch thức hợp lý.
Đũi hỏi nhiều kỹ năng
Cũng như cỏc RDB, mỗi OODB hướng tới việc cú cỏc cỏch thức và cỏc mở rộng của riờng nú. Do đú, việc tỡm ra những người cú cỏc kỹ năng đặc thự của một OODB nào đú sẽ khú khăn hơn so với việc tỡm những người cú cỏc kỹ năng RDB chớnh thống của một cơ sở dữ liệu nào đú (tức là, DB2, Oracle, Microsoft SQL Server, v..v). Hơn nữa, việc tỡm những cỏ nhõn với kinh nghiệm chuyờn sõu đó được thử thỏch trong việc quản trị OODB sẽ rất khú khăn. Cứ cho là nhiều người sử
dụng OODB cảm thấy rằng cỏc OODB đũi hỏi ớt cụng việc quản trị hơn trong những giai đoạn ban đầu, nhưng giống như đa số cỏc hệ thống đang phỏt triển OODB sẽ đũi hỏi sự điều chỉnh để chuẩn bị triển khai. Việc chuyển từ một mụ hỡnh cơ sở dữ liệu quan hệ sang một mụ hỡnh cơ sở dữ liệu OO cũng sẽ đũi hỏi một số sự huấn luyện và cố vấn kinh nghiệm bởi vỡ những vấn đề chẳng hạn như sự thực thi, cỏc khoỏ, và cỏc kết nối thường đũi hỏi những tiếp cận khỏc nhau.
Truy vấn phức tạp
Việc hỗ trợ truy vấn khỏc nhau đụi chỳt giữa cỏc OODB khỏc nhau. Ứng dụng sẽ khụng thể luụn luụn khụi phục một đối tượng bởi Object ID. Đỳng hơn là, nhiều khi chỳng ta sẽ cần tỡm kiếm theo cỏc phạm vi, cỏc mẫu, và tiờu chớ mờ bao gồm cỏc đối tượng khụng cú cỏc mối quan hệ hiển nhiờn. Việc hỗ trợ truy vấn phi thể thức dường như là một lĩnh vực mà ở đú cỏc OODB thấy rằng khú để cạnh tranh trong cả việc thực thi và cỏc đặc trưng. Cú khả năng là chức năng này sẽ tiếp tục hoàn thiện, và nhiều ứng dụng cú cỏc đũi hỏi khụi phục rành mạch sẽ khụng chịu tổn thất do bất kỳ sự lóng phớ nào của chức năng truy vấn phi thể thức.
Chương 2. Cỏc hệ quản trị cơ sở dữ liệu hướng đối tượng tượng
Trong vài năm gần đõy, nhiều nguyờn mẫu thớ nghiệm và hệ thống cơ sở dữ liệu hướng đối tượng thương mại đó được tạo ra, mỗi hệ thống trong số chỳng cú một tập cỏc đặc trưng khỏc nhau [12]. Những vớ dụ về cỏc OODBMS như vậy gồm cú:
Những nguyờn mẫu thớ nghiệm:
- Hệ thống ORION được phỏt triển ở MCC
- OPENOODB ở Texas Instruments
- Hệ thống IRIS ở cỏc phũng thớ nghiệm Hewlett-Packard
- Hệ thống ODE ở AT&T Bell Labs
- Đề ỏn ENCORE/ObServer ở trường đại học Brown
Cỏc hệ thống cung cấp thương mại:
- GEMSTONE/OPAL của GemStone Systems
- ONTOS của Ontos
- Objectivity của Objectivity Inc.
- Versant của Versant Object Technology
- ObjectStore của Object Design
- ARDENT của ARDENT Software
- POET của POET Software
Chỳng chỉ là một phần của danh sỏch những nguyờn mẫu thớ nghiệm và những hệ thống cơ sở dữ liệu hướng đối tượng cung cấp thương mại.
Cỏc đặc tớnh OO phổ biến cú trong cỏc thi hành OODBMS là [8]:
Việc sử dụng cỏc giao diện người dựng đồ hoạ (GUI) để quản lý DBMS. Cỏc OODBMS xuất hiện được trang bị một GUI chẳng hạn như trỡnh duyệt hệ
thống phõn cấp lớp để cho phộp người dựng cuối khỏm phỏ cỏc lớp cú trong thiết kế.
Sử dụng một số kiểu OOPL. Cỏc lệnh DDL, DCL, DML được nhỳng vào trong một ngụn ngữ như vậy.
Ngụn ngữ được hỗ trợ bởi OODBMS được xem xột để trở nờn hoàn chỉnh trong việc tớnh toỏn; tức là, toàn bộ ứng dụng cú thể được viết trong ngụn ngữ này, và người dựng cuối khụng cần học hai ngụn ngữ để phỏt triển ứng dụng
2.1. Hệ thống ObjectStore
2.1.1. Tổng quan
ObjectStore được đăng ký nhón hiệu của Object Design, Inc. Nú là một hệ quản trị cơ sở dữ liệu hướng đối tượng tốc độ cao, linh hoạt, tin cậy và cú tớnh khả dụng cao được thiết kế bởi Object Design. Nú cung cấp một giao diện ngụn ngữ được tớch hợp chặt chẽ với cỏc đặc trưng hệ quản trị cơ sở dữ liệu truyền thống của lưu trữ bền vững, quản trị giao tỏc (điều khiển tương tranh và phục hồi), truy nhập phõn tỏn, truy vấn kết hợp trờn một lượng lớn dữ liệu, và cỏc tiện ớch quản trị cơ sở dữ liệu [14, 15, 17, 18].
Nú là một trong những sản phẩm dẫn đầu trong việc cung cấp cỏc giải phỏp