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

Nghiên cứu và phát triển các ứng dụng với cơ sở dữ liệu hướng đối tượng

97 1,5K 5

Đ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 1,97 MB

Nội dung

Luận văn này nghiên cứu, tìm hiểu về cơ sở dữ liệu hướng đối tượng và một số hệ quản trị cơ sở dữ liệu cơ sở dữ liệu hướng đối tượng tiêu biểu và từ đó trình bày các quy trình phát triển

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LÝ ANH TUẤN

Nghiên cứu và phát triển các ứng dụng với cơ sở dữ liệu hướng đối tượng

luËn v¨n th¹c sÜ CÔNG NGHỆ THÔNG TIN

Hµ néi - 2006

Trang 3

Mục lục

Lời cám ơn 3

Bảng ký hiệu các chữ viết tắt 4

Danh mục các hình vẽ 5

Danh mục các bảng 6

Mở đầu 7

Chương 1 Tổng quan về cơ sở dữ liệu hướng đối tượng 9

1.1 Sự phát triển của công nghệ cơ sở dữ liệu 9

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

1.2.1 Mô hình cơ sở dữ liệu hướng đối tượng 15

1.2.2 Định nghĩa dữ liệu, Điều hướng và Thao tác dữ liệu 17

1.2.3 Các vấn đề thi hành 20

1.3 Hệ quản trị cơ sở dữ liệu đối tượng 21

1.3.1 Những đặc trưng chính của một cơ sở dữ liệu đối tượng 21

1.3.2 Cơ chế hoạt động của một cơ sở dữ liệu đối tượng 23

1.4 Những ưu điểm và nhược điểm của cơ sở dữ liệu hướng đối tượng 27

1.4.1 Những ưu điểm của cơ sở dữ liệu hướng đối tượng 27

1.4.2 Những nhược điểm của cơ sở dữ liệu hướng đối tượng 29

Chương 2 Các hệ quản trị cơ sở dữ liệu hướng đối tượng 33

2.1 Hệ thống ObjectStore 34

2.1.1 Tổng quan 34

2.1.2 Kiến trúc ObjectStore 35

2.1.3 Chức năng 37

2.1.4 Mô hình dữ liệu 39

2.2 PSE Pro 40

2.2.1 Kiến trúc PSE Pro 41

2.2.2 Giao diện trình ứng dụng 44

Trang 4

2.3 Cơ sở dữ liệu FastObjects t7 48

2.3.1 Tổng quan 48

2.3.2 Kiến trúc 48

2.3.3 Các đặc trưng 50

Chương 3 Phân tích thiết kế hướng đối tượng 57

3.1 Phát triển phần mềm hướng đối tượng với UML 57

3.1.1 Đặc tả yêu cầu 57

3.1.2 Tạo mô hình Use Case 58

3.1.3 Tạo mô hình khái niệm 58

3.1.4 Tạo biểu đồ tương tác giữa các đối tượng 60

3.1.5 Ánh xạ biểu đồ lớp thiết kế với mã nguồn 61

3.2 Một số công cụ phân tích thiết kế hướng đối tượng 61

3.2.1 Rational Rose 61

3.2.2 Database Designer 62

Chương 4 Phát triển ứng dụng với cơ sở dữ liệu hướng đối tượng 64

4.1 Ứng dụng ODMG C++ 64

4.2 Từng bước phát triển một ứng dụng Java sử dụng OODB 70

4.2.1 Những việc trước nhất 70

4.2.2 Xây dựng ứng dụng 73

4.3 Ứng dụng cửa hàng trực tuyến Webshop 79

4.3.1 Yêu cầu của ứng dụng 79

4.3.2 Tổng quan hệ thống 81

4.3.3 Phân tích thiết kế 83

4.3.4 Cài đặt ứng dụng 87

Kết luận 91

Các kết quả đạt được trong luận văn 91

Hướng nghiên cứu tiếp theo 93

Tài liệu tham khảo 94

Trang 5

Lời cám ơn

Đầu tiên, tôi xin gửi lời cám ơn sâu sắc tới cán bộ hướng dẫn khoa học, thầy giáo, T.S Nguyễn Tuệ, người đã chỉ bảo tận tình, truyền thụ cho tôi nguồn cảm hứng nghiên cứu và đưa tôi vào lĩnh vực khoa học này

Tôi xin bày tỏ lời cám ơn tới các thầy cô giáo đã giảng dạy tôi trong suốt hai năm học qua như PGS.TSKH Phạm Trần Nhu, PGS.TS Đoàn Văn Ban, TS Hà Quang Thụy, TS Nguyễn Kim Anh, PGS.TS Đặng Văn Đức, PGS.TS Ngô Quốc Tạo, TS Nguyễn Việt Hà, v v

Tôi xin gửi lời cám ơn sâu sắc tới GS.VS Nguyễn Văn Hiệu người đã giúp đỡ, động viên và truyền thụ cho tôi tâm huyết nghiên cứu khoa học Tôi cũng xin ghi nhận những tình cảm, sự giúp đỡ về chuyên môn cũng như trong cuộc sống của các thầy giáo, các bạn đồng nghiệp trong Khoa Công nghệ thông tin, Trường ĐH Công nghệ, ĐHQG Hà Nội

Cuối cùng tôi xin gửi lời cám ơn sâu sắc tới tất cả những người thân trong gia đình và bạn bè tôi Họ thực sự là nguồn động viên vô tận đối với tôi trong công việc cũng như trong cuộc sống

Học viên thực hiện luận văn

Lý Anh Tuấn

Trang 6

Bảng ký hiệu các chữ viết tắt

Từ hoặc cụm từ Từ viết tắt Từ tiếng Anh

Cơ sở dữ liệu hướng đối tượng OODB Object Oriented DataBase

Hệ quản trị cơ sở dữ liệu hướng

đối tượng

OODBMS Object Oriented DataBase

Management System Ngôn ngữ lập trình hướng đối

tượng

OOPL Object Oriented Programming

Language Ngôn ngữ truy vấn đối tượng OQL Object Query Language

Ngôn ngữ định nghĩa đối tượng ODL Object Definition Language Nhóm quản lý dữ liệu đối tượng ODMG Object Data Management Group Ngôn ngữ định nghĩa dữ liệu DDL Data Definition Language

Ngôn ngữ điều khiển dữ liệu DCL Data Control Language

Ngôn ngữ thao tác dữ liệu DML Data Manipulation Language

Trang 7

Danh mục các hình vẽ

Hình 1 Sự phát triển của công nghệ cơ sở dữ liệu 12

Hình 2 CSDL hướng đối tượng là sự hoà hợp của lập trình hướng đối tượng và công nghệ CSDL 15

Hình 3 Ví dụ về sự chuyên môn hoá của các đối tượng và sự phân cấp lớp 17

Hình 4 Tạo một lớp đối tượng trong một ngôn ngữ lập trình hướng đối tượng 18

Hình 5 Tạo một lớp đối tượng bao chứa một con trỏ tới lớp Course trong Hình 4 18 Hình 6 Điều hướng các đối tượng bằng việc đi theo các con trỏ 19

Hình 7 Các câu lệnh OQL để lấy về các thông tin được yêu cầu trong Hình 6 20

Hình 8 Kiến trúc client-server của một ODBMS 22

Hình 9 Định danh đối tượng 23

Hình 10 Kiến trúc client-side của một cơ sở dữ liệu đối tượng 24

Hình 11 Các kiến trúc cơ sở dữ liệu khác nhau 25

Hình 12 Việc xử lý truy vấn 26

Hình 13 Mô hình kiến trúc của ObjectStore: (a) Một server, một client (b) Nhiều server, nhiều client 36

Hình 14 Đối tượng được lưu trữ dưới khuôn dạng tự nhiên của nó 39

Hình 15 PSE Pro dành sẵn một miền trong bộ nhớ ảo cho các trang CSDL 42

Hình 16 Ánh xạ các trang cơ sở dữ liệu vào các trang nhớ ảo 43

Hình 17 Các trạng thái khác nhau của một trang cơ sở dữ liệu 44

Hình 18 Bộ tăng cường FastObjects JDO byte-code và sự phát sinh lược đồ 49

Hình 19 Bộ tăng cường FastObjects t7 JDO byte-code và việc phát sinh lược đồ 51 Hình 20 Bộ tiền xử lý FastObjects t7 C++ và việc phát sinh lược đồ 52

Hình 21 Cửa sổ ứng dụng của Rational Rose 62

Trang 8

Hình 22 Công cụ Database Designer của ObjectStore 63

Hình 23 Ví dụ UML 65

Hình 24 Lớp Employee 65

Hình 25 Lớp Department 66

Hình 26 Tạo một đối tượng 67

Hình 27 Một ứng dụng đơn giản 68

Hình 28 Thi hành một truy vấn 69

Hình 29 Thiết kế PhoneApp trước khi dùng một OODB 72

Hình 30 Tổng quan hệ thống 82

Hình 31 Các use case khách hàng mua hàng và người quản lý cập nhật hàng 85

Hình 32 Các use case khách hàng xem hiện trạng giao hàng và người quản lý quyết định giao hàng 85

Hình 33 Các mô hình lớp trong Rational Rose 87

Hình 34 Giao diện trang chủ của ứng dụng 88

Hình 35 Trang tìm kiếm sản phẩm 88

Hình 36 Trang thông tin về sản phẩm 89

Hình 37 Trang giỏ hàng của khách hàng 89

Hình 38 Trang cập nhật sản phẩm 90

Hình 39 Trang quản lý các đơn hàng 90

Danh mục các bảng Bảng 1 Các công cụ cần có của ứng dụng 71

Bảng 2 Các use case 84

Bảng 3 Mô hình nghiệp vụ 86

Trang 9

Mở đầu

Kể từ khi ra đời, lý thuyết về cơ sở dữ liệu đã trải qua nhiều bước phát triển và

đã đạt được nhiều kết quả quan trọng đáp ứng được nhu cầu thực tế trong việc lưu trữ và quản lý dữ liệu Nhiều mô hình dữ liệu đã xuất hiện, phong phú về khả năng

và phạm vi ứng dụng như mô hình phân cấp, mô hình mạng, mô hình quan hệ, trong

đó mô hình quan hệ với một cơ sở lý thuyết vững chắc thực sự là một bước phát triển đột phá

Mô hình dữ liệu quan hệ và cơ sở dữ liệu quan hệ tuy được sử dụng rộng rãi nhất, nhưng nó cũng bộc lộ những hạn chế nhất định (những hạn chế này sẽ được nêu rõ trong Chương 1) Điều này dẫn đến sự xuất hiện mô hình dữ liệu hướng đối tượng và cơ sở dữ liệu hướng đối tượng

Khi mới được đề xuất cơ sở dữ liệu hướng đối tượng hứa hẹn tạo ra bước đột phá trong lĩnh vực lưu trữ và quản lý dữ liệu Tuy nhiên những dự đoán về việc OODB sẽ nhanh chóng thay thế RDB đã không xảy ra Thay vào đó, bây giờ người phát triển ứng dụng phải lựa chọn một giải pháp quản trị dữ liệu phù hợp cho ứng dụng của mình Với những ứng dụng nghiệp vụ thông thường, RDB vẫn là một sự lựa chọn thích hợp và điều này đã được minh chứng qua quá trình tồn tại, phát triển lâu dài của nó Còn đối với những kiểu ứng dụng mới đòi hỏi những mô hình thiết

kế phức tạp, có nhiều giao dịch, hoặc đòi hỏi hỗ trợ những kiểu mới thì OODB là sự lựa chọn tối ưu

Luận văn này nghiên cứu, tìm hiểu về cơ sở dữ liệu hướng đối tượng và một số

hệ quản trị cơ sở dữ liệu cơ sở dữ liệu hướng đối tượng tiêu biểu và từ đó trình bày các quy trình phát triển ứng dụng với cơ sở dữ liệu hướng đối tượng sử dụng phương pháp phân tích thiết kế hướng đối tượng

Luận văn được tổ chức thành bốn chương như sau:

Chương 1 trình bày tổng quan về cơ sở dữ liệu hướng đối tượng, bao gồm mô

hình cơ sở dữ liệu hướng đối tượng, các khái niệm về định nghĩa dữ liệu, thao tác

Trang 10

dữ liệu và vấn đề thi hành của cơ sở dữ liệu hướng đối tượng Tiếp đó các vấn đề về kiến trúc và cách làm việc của cơ sở dữ liệu hướng đối tượng cũng được giới thiệu một cách sơ lược Phần cuối của chương trình bày những ưu điểm và nhược điểm của cơ sở dữ liệu hướng đối tượng

Chương 2 giới thiệu một số hệ quản trị cơ sở dữ liệu hướng đối tượng phổ biến

hiện nay, bao gồm: ObjectStore, PSE Pro và FastObject t7 Chương này đi sâu vào tìm hiểu các khía cạnh về kiến trúc, chức năng và các đặc trưng của các hệ quản trị

cơ sở dữ liệu hướng đối tượng này

Chương 3 trình bày sơ lược về phương pháp phân tích thiết kế hướng đối tượng

bằng UML Phần đầu của chương trình bày các khái niệm trong UML như đặc tả yêu cầu, mô hình use case, mô hình khái niệm, biểu đồ tương tác, và việc ánh xạ biểu đồ lớp vào mã nguồn Phần cuối của chương giới thiệu hai công cụ phân tích thiết kế hướng đối tượng là Rational Rose và PSE Designer

Chương 4 tập trung vào vấn đề phát triển ứng dụng với cơ sở dữ liệu hướng đối

tượng Ba ứng dụng được nêu ra để minh hoạ Trong ứng dụng đầu tiên (ODMG C++), luận văn trình bày cách phát triển một ứng dụng đơn giản với kết gán ngôn ngữ C++ tuân theo chuẩn ODMG Trong ứng dụng thứ hai, luận văn trình bày từng bước để phát triển một ứng dụng Java sử dụng OODB, ban đầu ứng dụng này chỉ được viết bằng ngôn ngữ Java, sau đó được kết hợp với ObjectStore để được hỗ trợ lưu trữ bền vững Trong ứng dụng thứ ba, luận văn trình bày một ứng dụng có ý nghĩa thiết thực, đó là ứng dụng Web Shop Ứng dụng được phát triển qua các bước: tìm hiểu yêu cầu, phân tích thiết kế, lập trình Các ứng dụng này đều đã được triển khai trên môi trường thực tế

Trang 11

Chương 1 Tổng quan về cơ sở dữ liệu hướng đối tượng

1.1 Sự phát triển của công nghệ cơ sở dữ liệu

Trong suốt ba thập kỷ gần đây, công nghệ cơ sở dữ liệu cho các hệ thống thông tin đã phát triển trải qua bốn thế hệ, và công nghệ cơ sở dữ liệu thế hệ thứ năm hiện nay đang được phát triển Bước chuyển tiếp từ một thế hệ tới một thế hệ tiếp theo luôn luôn là cần thiết bởi sự gia tăng liên tục về độ phức tạp của các ứng dụng cơ sở

dữ liệu và về chi phí thi hành, bảo trì, và mở rộng những ứng dụng này Thế hệ thứ nhất là hệ thống file, chẳng hạn như ISAM và VSAM Thế hệ thứ hai là các hệ cơ

sở dữ liệu phân cấp, chẳng hạn như IMS và System 2000 Thế hệ thứ ba là các hệ

cơ sở dữ liệu CODASYL, chẳng hạn như IDS, TOTAL, ADABAS, IDMS, v v Các hệ thống thế hệ thứ hai và thứ ba đã thực hiện việc chia sẻ một cơ sở dữ liệu tích hợp giữa nhiều người trong một môi trường ứng dụng Sự thiếu tính độc lập dữ liệu và việc truy cập điều hướng khó khăn tới cơ sở dữ liệu dẫn đến công nghệ cơ sở

dữ liệu thế hệ thứ tư, gọi là công nghệ cơ sở dữ liệu quan hệ Công nghệ cơ sở dữ liệu quan hệ được đặc trưng bởi truy vấn khai báo Công nghệ cơ sở dữ liệu thế hệ thứ năm sẽ được đặc trưng bởi một mô hình dữ liệu phong phú hơn và một tập các tiện ích cơ sở dữ liệu phong phú hơn cần thiết để đáp ứng những đòi hỏi của các ứng dụng ngoài các ứng dụng xử lý dữ liệu nghiệp vụ mà do nó 4 thế hệ công nghệ

cơ sở dữ liệu trước đó đã được phát triển

Sự chuyển tiếp từ một thế hệ tới một thế hệ tiếp theo của công nghệ cơ sở dữ liệu đã được đánh dấu bằng việc trút bớt một số thủ tục kế toán chán ngắt và lặp lại

từ các ứng dụng vào trong hệ cơ sở dữ liệu Điều này tạo ra sự thuận tiện cho các lập trình viên ứng dụng lập trình ứng dụng cơ sở dữ liệu; tuy nhiên, nó gây ra một vấn đề lớn cho sự thi hành của các hệ thống cơ sở dữ liệu và đòi hỏi những nghiên cứu và phát triển đáng kể để gia tăng sự thi hành của các hệ cơ sở dữ liệu thế hệ mới tới một mức có thể chấp nhận được Điều này đặc biệt đúng với việc chuyển tiếp vào trong lĩnh vực các cơ sở dữ liệu quan hệ Việc giới thiệu các truy vấn khai báo trong các cơ sở dữ liệu quan hệ làm nhẹ bớt cho những người lập trình ứng

Trang 12

dụng khỏi những công việc nhỏ nhặt buồn tẻ của việc lập trình điều hướng khôi phục các bản ghi từ cơ sở dữ liệu Tuy nhiên, một thành phần mới chính, tên là bộ tối ưu hoá truy vấn, đã được thêm vào hệ cơ sở dữ liệu để tự động đi đến một kế hoạch tối ưu cho việc xử lý bất kỳ truy vấn nào được đưa ra, chẳng hạn như kế hoạch sẽ tạo ra việc sử dụng các phương pháp truy cập phù hợp được cung cấp trong hệ thống

Trong suốt những thập niên 70 các hoạt động nghiên cứu và triển khai về cơ sở

dữ liệu đã tập trung vào việc mô tả công nghệ cơ sở dữ liệu quan hệ Đỉnh điểm của những nỗ lực này là việc giới thiệu các hệ thống cung cấp thương mại cuối những năm 70 và đầu những năm 80, chẳng hạn như Oracle, SQL/DB và DB2 và INGRES Tuy nhiên, công nghệ cơ sở dữ liệu quan hệ, cũng như mỗi công nghệ cơ

sở dữ liệu thế hệ trước, đã được phát triển cho các ứng dụng xử lý dữ liệu nghiệp

vụ, chẳng hạn như kiểm tra hàng tồn, bảng lương, sổ sách kế toán, v v Những nỗ lực để tạo ra việc sử dụng công nghệ cơ sở dữ liệu quan hệ trong một miền rộng các kiểu khác nhau của ứng dụng đã nhanh chóng phơi bày một số thiếu sót nghiêm trọng của công nghệ cơ sở dữ liệu quan hệ và thế hệ trước đây Các ứng dụng này bao gồm các hệ thống thiết kế, kỹ nghệ, công nghệ phần mềm và việc chế tạo được máy tính trợ giúp (CAD, CAE, CASE và CAM) và ứng dụng chạy trên chúng; các

hệ thống dựa trên tri thức (các hệ chuyên gia và các shell hệ chuyên gia); Các hệ thống đa phương tiện đi kèm với các hình ảnh, âm thanh và các tài liệu nguyên bản

và các hệ ngôn ngữ lập trình Các hệ cơ sở dữ liệu quan hệ và thế hệ trước đây từ đây trở đi sẽ được gọi là các hệ cơ sở dữ liệu truyền thống

Chúng ta hãy xem qua một số thiếu sót đáng chú ý của công nghệ cơ sở dữ liệu truyền thống [6, 7]:

 Một mô hình cơ sở dữ liệu truyền thống, nhất là mô hình quan hệ, quá đơn giản để mô hình hoá các thực thể xếp lồng vào nhau phức tạp, chẳng hạn như các đối tượng thiết kế và công trình, và các tài liệu phức tạp

Trang 13

 Các hệ cơ sở dữ liệu truyền thống chỉ hỗ trợ một tập hạn chế các kiểu dữ liệu nguyên tử, chẳng hạn như integer, string, v v; chúng không hỗ trợ các kiểu

dữ liệu tổng quát được tìm thấy trong các ngôn ngữ lập trình

 Sự thi hành của các hệ cơ sở dữ liệu truyền thống, đặc biệt là các hệ cơ sở dữ liệu quan hệ là không thể chấp nhận được cho các kiểu khác nhau của các ứng dụng cần nhiều tính toán, chẳng hạn như các chương trình mô phỏng trong các môi trường thiết kế được máy tính trợ giúp và các môi trường ngôn ngữ lập trình

 Các chương trình ứng dụng được thi hành trong một số ngôn ngữ lập trình thuật toán (chẳng hạn như COBOL, FORTRAN, C) và một số ngôn ngữ cơ

sở dữ liệu được nhúng vào trong nó Các ngôn ngữ cơ sở dữ liệu là rất khác

so với các ngôn ngữ lập trình, trong cả mô hình dữ liệu và cấu trúc dữ liệu Vấn đề trở ngại ghép không khớp này đã thúc đẩy việc phát triển các ngôn ngữ thế hệ thứ tư (4GL)

 Mô hình các giao tác được hỗ trợ trong các hệ cơ sở dữ liệu truyền thống không thích hợp cho các giao tác trong khoảng thời gian dài cần thiết trong các môi trường thiết kế có tính cộng tác ảnh hưởng lẫn nhau Các hệ cơ sở

dữ liệu truyền thống không hỗ trợ các tiện ích để biểu diễn và quản lý chiều thời gian trong các cơ sở dữ liệu, bao gồm khái niệm thời gian và các phiên bản của các đối tượng và lược đồ, và các thông báo thay đổi

Việc khám phá ra những thiếu sót của công nghệ cơ sở dữ liệu truyền thống đã cung cấp động lực cho các chuyên gia cơ sở dữ liệu trong phần lớn những năm

1980 để mở đường cho thế hệ thứ năm của công nghệ cơ sở dữ liệu Công nghệ cơ

sở dữ liệu thế hệ tiếp theo cần phải được xây dựng trên công nghệ cơ sở dữ liệu truyền thống và sát nhập các giải pháp cho nhiều vấn đề được phác hoạ ở trên để đáp ứng các đòi hỏi của các ứng dụng cơ sở dữ liệu hiện nay và mới nổi lên Hiện nay có ít nhất hai cách tiếp cận được đề xuất cho việc chuyển tiếp từ công nghệ cơ

sở dữ liệu thế hệ thứ tư sang công nghệ thế hệ thứ năm: công nghệ cơ sở dữ liệu

Trang 14

quan hệ mở rộng và công nghệ cơ sở dữ liệu hướng đối tượng Các khác biệt cơ bản giữa chúng là mô hình dữ liệu cơ sở và ngôn ngữ cơ sở dữ liệu Tiếp cận cơ sở dữ liệu quan hệ mở rộng bắt đầu với mô hình dữ liệu quan hệ và một ngôn ngữ truy vấn quan hệ, và mở rộng chúng theo các cách khác nhau để cho phép việc mô hình hoá và thao tác đối với các mối quan hệ ngữ nghĩa và các tiện ích cơ sở dữ liệu cộng thêm POSTGRES là hệ cơ sở dữ liệu thế hệ tiếp theo nổi tiếng nhất dựa trên tiếp cận quan hệ mở rộng Tiếp cận hướng đối tượng, được chấp nhận trong hệ thống ORION của MCC và một số các hệ thống khác (chẳng hạn như Ontos, GemStone, IRIS, O2 ) bắt đầu với một mô hình dữ liệu hướng đối tượng và một ngôn ngữ cơ

sở dữ liệu nắm bắt nó, và mở rộng chúng theo các cách khác nhau cho phép cộng thêm các khả năng

CSDL m¹ng vµ ph©n cÊp

C¬ së d÷ liÖu CODASYL

C¬ së d÷ liÖu quan hÖ

Hình 1 Sự phát triển của công nghệ cơ sở dữ liệu

Một điểm quan trọng chúng ta phải nhìn nhận đó là một mô hình cơ sở dữ liệu hướng đối tượng là một nền tảng tự nhiên hơn một mô hình quan hệ mở rộng cho

Trang 15

việc khắc phục một số thiếu hụt của công nghệ cơ sở dữ liệu truyền thống được kể

ra trước đây; ví dụ, hỗ trợ các kiểu dữ liệu tổng quát, các đối tượng xếp lồng nhau,

và hỗ trợ các ứng dụng có nhiều tính toán

Có những khác biệt quan trọng giữa một mô hình cơ sở dữ liệu hướng đối tượng

và mô hình cơ sở dữ liệu quan hệ Một mô hình cơ sở dữ liệu hướng đối tượng bao gồm các khái niệm hướng đối tượng như bao gói, kế thừa và đa hình thái; những khái niệm này không phải là thành phần của các mô hình dữ liệu truyền thống Khác biệt giữa một hệ cơ sở dữ liệu hướng đối tượng và một hệ cơ sở dữ liệu không hướng đối tượng đó là một hệ cơ sở dữ liệu hướng đối tượng có thể trực tiếp hỗ trợ những nhu cầu của các ứng dụng, như là tạo và quản lý các đối tượng mang ngữ nghĩa hướng đối tượng, đó là các ngôn ngữ lập trình hướng đối tượng hoặc các ứng dụng được thiết kế trong một kiểu mẫu hướng đối tượng

Hơn nữa, một ngôn ngữ lập trình hướng đối tượng có thể được mở rộng thành một ngôn ngữ lập trình và cơ sở dữ liệu thống nhất Ngôn ngữ kết quả tuỳ thuộc vào vấn đề trở ngại ghép đôi không khớp nằm trong phạm vi không vượt xa so với tiếp cận của việc nhúng một ngôn ngữ cơ sở dữ liệu thế hệ hiện tại vào trong một ngôn ngữ lập trình truyền thống Lý do là vì một ngôn ngữ lập trình hướng đối tượng được xây dựng trên các khái niệm hướng đối tượng, và các khái niệm hướng đối tượng bao gồm một số khái niệm mô hình hoá dữ liệu, chẳng hạn như sự kết tập, sự tổng quát hoá, và các mối quan hệ thành viên Một hệ cơ sở dữ liệu hướng đối tượng hỗ trợ một sự hợp nhất giữa ngôn ngữ lập trình hướng đối tượng và ngôn ngữ

cơ sở dữ liệu sẽ là nền tốt cho việc phát triển các ứng dụng cơ sở dữ liệu hơn là một

hệ thống cơ sở dữ liệu quan hệ mở rộng cái hỗ trợ một ngôn ngữ cơ sở dữ liệu quan

hệ mở rộng

Chúng ta có thể khẳng định rằng cả hai tiếp cận quan hệ mở rộng và hướng đối tượng đều có thể đứng vững, và nhiều khả năng sẽ cùng tồn tại các hệ thống tuân theo một trong hai tiếp cận này

Trang 16

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

Các khái niệm hướng đối tượng ra đời vào những năm 1980 và nhanh chóng trở thành một giải pháp hiệu quả cho việc phát triển phần mềm Một số ngôn ngữ lập trình hướng đối tượng như Java, C++ được sử dụng để xây dựng các ứng dụng đã cho thấy tính khả thi của chúng cao hơn so với các ngôn ngữ lập trình không hướng đối tượng

Trong thời gian này người ta cũng bắt đầu nhận ra những khiếm khuyết khi thi hành của các cơ sở dữ liệu quan hệ Việc xuất hiện của các môi trường thương mại

đa phương tiện, thông qua sự bùng nổ của thương mại điện tử và viễn thông, đòi hỏi

cơ sở dữ liệu phải có khả năng hỗ trợ các kiểu mới Điều này không thể có được trong các cơ sở dữ liệu quan hệ hiện có do vậy nảy sinh nhu cầu cần phải có những giải pháp mới

Trên cơ sở đó khái niệm cơ sở dữ liệu hướng đối tượng ra đời như là một giải pháp cho phép vận hành đối tượng bền vững, nó là sự hoà hợp của các khái niệm hướng đối tượng và năng lực của hệ quản trị cơ sở dữ liệu [7, 8, 9] Martin (1993)

mô tả các OODB dựa trên đối tượng và cũng sử dụng các mô hình quan niệm như Phân tích hướng đối tượng, Thiết kế hướng đối tượng và Lập trình hướng đối tượng

Trang 17

Hình 2 CSDL hướng đối tượng là sự hoà hợp của lập trình hướng đối tượng và

công nghệ CSDL

1.2.1 Mô hình cơ sở dữ liệu hướng đối tượng

Biểu diễn thế giới thực của OODB là một chuỗi các đối tượng Một đối tượng có thể biểu diễn bất kỳ phần tử thế giới thực nào trong phạm vi từ một số nguyên đơn đến một cái bánh ô tô Tất cả các đối tượng đều sở hữu các đặc tính chung:

 Bền vững: Trạng thái của đối tượng được giữ lại sau khi chương trình đã kết thúc

 Định danh duy nhất: Khi đối tượng được tạo một định danh duy nhất được sinh ra và được liên kết với đối tượng trong suốt vòng đời của đối tượng Định danh tách rời với trạng thái của các đối tượng do vậy nó phân biệt hai đối tượng

Trang 18

tượng Ngoài ra, chúng ta cũng có thể tạo ra một kiểu dữ liệu mới bằng việc sử dụng thêm các kiến tạo kiểu được hỗ trợ trong các cơ sở dữ liệu đối tượng cụ thể

 Các thao tác: Một tập các hàm vận hành trạng thái của đối tượng

 Bao gói: Chính sách bảo quản dữ liệu và các thao tác bên trong đối tượng Các thao tác lập ra một giao diện thông qua nó việc gọi các hàm có thể vận hành đối tượng Kết quả là đối tượng được xem như một hộp đen

 Các mối quan hệ

Giống với bất kỳ mô hình dữ liệu nào, một tính chất quan trọng là làm thế nào để biểu diễn các mối quan hệ giữa các thành phần khác nhau của dữ liệu OODB có hai kiểu: giữa các lớp (thông qua việc sử dụng các con trỏ - xem Định nghĩa dữ liệu) hoặc hệ thống phân cấp lớp [Manion 01]

 Lớp và hệ thống phân cấp lớp

Các đối tượng có các tính chất và thao tác giống nhau được phân lớp để tạo

ra các lớp đối tượng riêng biệt Do vậy tất cả các đối tượng là một cá thể của một lớp đối tượng Mỗi cá thể của một lớp đối tượng mang một định danh duy nhất và một tập các tính chất dữ liệu và các thao tác giống nhau

Trong khi xây dựng một OODB các lớp nhiều đối tượng sẽ được tạo và các

hệ thống phân cấp và chuyên môn hoá lớp có thể được áp dụng để làm việc quản lý chúng được dễ dàng

Việc sử dụng sự chuyên môn hoá định ra các tính chất và các thao tác chung cho các đối tượng Các tính chất và các thao tác này bị loại bỏ và được đặt vào trong một đối tượng siêu lớp Các đối tượng sau đó được tổ chức lại một cách phân cấp, với đối tượng siêu lớp ở đỉnh và các đối tượng chuyên biệt là các phân lớp của đối tượng chung

Thông qua sự kế thừa, các lớp chuyên biệt có thể trình ra các tính chất và các thao tác của chúng cộng với các tính chất và các thao tác của siêu lớp (Hình 3) Việc này giảm bớt sự lặp lại của mã trình và cải thiện việc bảo trì

Trang 19

* c¸c tÝnh chÊt vµ thao t¸c ®-îc kÕ thõa

Hình 3 Ví dụ về sự chuyên môn hoá của các đối tượng và sự phân cấp lớp

Một lớp đối tượng có một siêu lớp như vậy được biết như một đơn kế thừa

Sự chuyên môn hoá có thể được áp dụng khắp các mức của một hệ thống phân cấp và các lớp đối tượng có thể có nhiều hơn một siêu lớp đó, điều này được xem là việc đa kế thừa

1.2.2 Định nghĩa dữ liệu, Điều hướng và Thao tác dữ liệu

1.2.2.1 Định nghĩa dữ liệu

Không chấp nhận sự tồn tại ngôn ngữ định nghĩa dữ liệu chuẩn cho các OODB thay vào đó những lập trình viên tạo ra các lớp đối tượng trong ngôn ngữ thi hành O-O, chẳng hạn như C++ hoặc Java, (Hình 4)

Trang 20

class Course : public Entity {

char* courseId;

char* courseName;

public:

virtual int CourseId(){ return courseId;}

virtual void CourseId(char* newCourseId);

virtual int CourseName(){ return courseName;}

virtual void CourseName(char* newCourseName);

};

Hình 4 Tạo một lớp đối tượng trong một ngôn ngữ lập trình hướng đối tượng

Các mối quan hệ có thể được đưa ra trong lược đồ bằng việc bao gồm một thuộc tính dữ liệu, được biết như một con trỏ, trong một đối tượng, nó trỏ đến đối tượng liên kết (Hình 5)

class Student : public Entity {

Hình 5 Tạo một lớp đối tượng bao chứa một con trỏ tới lớp Course trong Hình 4

Việc thay đổi lược đồ sẽ đòi hỏi việc sửa đổi và dịch lại định nghĩa lớp

1.2.2.2 Điều hướng

Một OODB có thể bao gồm một lượng từ nhỏ đến lớn các đối tượng Việc tìm kiếm một đối tượng đặc thù, bởi con trỏ, được mang lại bằng việc điều hướng từ đối tượng tới đối tượng (Hình 6)

Trang 21

“Khoá học nào Sinh viên 2 đã đăng ký tham gia?”

 duyệt chỉ mục Student để tìm Sinh viên 2

 đi theo con trỏ Course tới SCISM5 và trả về khoá học (computing)

“Tên tất cả các sinh viên tham gia khoá học điện toán”

 tìm kiếm chỉ mục Course và tìm Course# (tức là SCISM5)

 đi theo các con trỏ Student, tìm kiếm mỗi Student#

Hỡnh 6 Điều hướng cỏc đối tượng bằng việc đi theo cỏc con trỏ

Tiếp cận này được xem xột là tự nhiờn với việc tỡm kiếm đối tượng hơn là phương phỏp đại số học được sử dụng trong cỏc cơ sở dữ liệu quan hệ

1.2.2.3 Thao tỏc dữ liệu

Ngụn ngữ truy vấn dữ liệu chuẩn cho cỏc OODB là Ngụn ngữ truy vấn đối tượng (OQL) OQL chiếm lấy những đặc trưng chắc chắn từ SQL (tức là cõu lệnh SQL đầy đủ) và thờm vào cỏc mở rộng hướng đối tượng Được thiết kế để làm việc với cỏc đối tượng, nú thiếu hụt cỏc đặc trưng chỉ rừ UPDATE thay vào đú phải gọi cỏc thao tỏc đối tượng để sửa đổi trạng thỏi của đối tượng Cú thể sửa đổi cỏc đối tượng và tạo cỏc đối tượng bền vững mới thụng qua cỏc cõu lệnh OQL [Riccardi 01] Hỡnh 7 hiển thị cỏc cõu lệnh OQL cho những tiến trỡnh được mụ tả trong Hỡnh

6

Trang 22

“Khoá học nào Sinh viên 2 đã đăng ký tham gia?”

“Tên tất cả các sinh viên tham gia khoá học điện toán”

Hỡnh 7 Cỏc cõu lệnh OQL để lấy về cỏc thụng tin được yờu cầu trong Hỡnh 6

1.2.3 Cỏc vấn đề thi hành

 Tương tranh – cỏc OODB hỗ trợ tương tranh, tuy nhiờn điều này nảy sinh khả năng xung đột cho phộp nhiều người dựng nỗ lực sửa đổi cựng một đối tượng ở một thời điểm Hai tiếp cận phổ biến nhất được sử dụng để ngăn chặn điều này xảy ra:

 Locking: í tưởng là tạo một đối tượng khụng cho phộp nhiều hơn một người dựng cú khả năng truy cập ở một thời điểm Do vậy, khi một người dựng yờu cầu một đối tượng nú được đỏnh dấu là “bị khoỏ” Bất kỳ người dựng nào khỏc cố gắng yờu cầu đối tượng phải đợi cho đến khi người giữ khoỏ từ bỏ đối tượng

 Check In – Check Out: Sự bền vững của cỏc đối tượng trong cỏc OODB được thực hiện dựa vào việc phiờn bản – việc tạo ra một phiờn bản mới của một đối tượng khi cú một yờu cầu được thực hiện để thay đổi nú

Một phiờn bản mới của một đối tượng là „check-out‟ khi người dựng yờu cầu sửa đổi nú Phiờn bản được gửi tới vựng làm việc cục bộ của những người dựng một cỏch hiệu quả bằng việc thiết lập một khoỏ ghi đối với nú

Vỡ thế, nhiều người dựng cú thể truy cập đồng thời nhiều phiờn bản của cựng một đối tượng Khi người dựng đó kết thỳc đối tượng là „checked-in‟

để tạo ra một phiờn bản đối tượng mới [Brown 91]

Trang 23

Check in-check out là tiếp cận được sử dụng phổ biến nhất trong các OODB ở mức độ lớn bởi vì nó cải thiện rất nhiều khả năng tương tranh của

hệ thống

 Phân trang – OODB giảm đáng kể sự cần thiết phân trang bằng việc chỉ tải những đối tượng được đòi hỏi vào trong bộ nhớ Điều này hoàn toàn tương phản với các cơ sở dữ liệu quan hệ, chúng tải các bảng chứa dữ liệu được yêu cầu và dữ liệu không cần thiết vào bộ nhớ

 Phát triển ứng dụng – OODB được tích hợp tốt với các ngôn ngữ lập trình hướng đối tượng, cả hai sử dụng cùng một mô hình đối tượng như nhau Do vậy việc xây dựng một hệ thống OODB với một ngôn ngữ lập trình O-O loại

bỏ sự cần thiết của việc ánh xạ giữa cơ sở dữ liệu và ngôn ngữ ứng dụng như với các cơ sở dữ liệu quan hệ Điều này làm sự phức tạp của chương trình và

số lượng dòng mã lệnh cần được viết giảm đi rất nhiều Việc sử dụng các kỹ thuật Object-Oriented Analysis và Object-Oriented Modelling trong giai đoạn khảo sát và thiết kế của vòng đời phát triển hệ thống có thể cải thiện đáng kể

sự hiểu nhau giữa người phân tích, người thiết kế và người lập trình Điều này

có thể làm giảm đáng kể số lượng các lỗi kỹ thuật và các lỗi thi hành gặp phải trong hệ thống cuối cùng

1.3 Hệ quản trị cơ sở dữ liệu đối tượng

1.3.1 Những đặc trưng chính của một cơ sở dữ liệu đối tượng

Các cơ sở dữ liệu đối tượng xuất hiện trong tầm nhận thức trong khoảng giữa những năm 1980 Mục tiêu sau đó là cung cấp một dòng cơ sở dữ liệu mới, được thiết kế và được tối ưu hoá để lưu trữ và thao tác các đối tượng Mục tiêu này được khích lệ bởi sự chấp nhận rộng rãi của các kỹ thuật và các ngôn ngữ mô hình hoá hướng đối tượng Các quyết định thiết kế được thực hiện ở thời điểm này phân biệt các cơ sở dữ liệu đối tượng với các cơ sở dữ liệu quan hệ sẵn có Đầu tiên, thay vì tập trung vào một mô hình dữ liệu (dựa vào một tập cố định các kiểu) được chỉ dưới

Trang 24

một số khuôn dạng chuẩn hoá, trừu tượng, cơ sở dữ liệu đối tượng tập trung vào mô hình đối tượng như được định nghĩa trong ngôn ngữ O-O

Sức mạnh chính của một cơ sở dữ liệu đối tượng là khả năng dựng sẵn của nó để quản lý các mô hình phức tạp tuỳ ý (dưới dạng các kiểu) với các mối quan hệ phức tạp tuỳ ý Việc quản lý các đối tượng chủ yếu bao gồm các thuộc tính có giá trị đơn giản (các số nguyên, các xâu), các thuộc tính đa trị (các mảng giá trị động) và các cấu trúc phức tạp, nhưng năng lực của nó để vận hành các mối quan hệ mới là điều cốt yếu – không chỉ là một-một, một-nhiều, mà các mối quan hệ bao gồm các ngữ nghĩa: chẳng hạn như các tập (không duy nhất), các danh sách (có thứ tự), các bản

đồ (tìm kiếm liên kết) Các mối quan hệ này tự bản thân chúng có thể là các đối tượng phức tạp, có thể bao chứa các giá trị được băm để việc tìm kiếm và khôi phục hiệu quả

Trong thế giới đối tượng các giao tác bao gồm việc điều hướng các mối quan hệ

và thực hiện các thao tác phức tạp trên đó Các cơ sở dữ liệu đối tượng được tối ưu hoá cho việc truy cập điều hướng này và cho việc đưa dẫn các đối tượng giữa server

cơ sở dữ liệu và client Hình 8 thể hiện một kiến trúc ODBMS tiêu biểu [24]

Hình 8 Kiến trúc client-server của một ODBMS

Tiến trình server cung cấp việc điều khiển tương tranh và giao tác, đảm bảo khả năng phục hồi (như với bất kỳ cơ sở dữ liệu nào) Cache phía client quản lý các đối tượng đã được truyền tới từ server, đem lại sự truy cập trong suốt thông qua ngôn ngữ lập trình Khi các mối quan hệ được duyệt, các đối tượng được yêu cầu từ server và được tải lập tức vào trong cache một cách tự động Một khi ở trong cache

Trang 25

chúng được duy trì ở đó cho đến khi giao tác kết thúc Khi client cam kết một giao dịch, bất kỳ đối tượng nào đã được sửa đổi được truyền trở lại server và giao tác kết thúc

1.3.2 Cơ chế hoạt động của một cơ sở dữ liệu đối tượng

1.3.2.1 Các khái niệm cơ bản

Trước hết, một khái niệm quan trọng cần nắm bắt đó là định danh đối tượng Trong thế giới đối tượng tất cả các đối tượng có thể được xem là có một định danh, định danh này là trạng thái của nó trực giao (các giá trị của các thuộc tính của nó) Định danh đối tượng là vấn đề nền tảng vì đây là phương tiện mà thông qua nó các đối tượng được thao tác; định danh đối tượng được sử dụng để xây dựng các mối quan hệ giữa các đối tượng, và bằng việc điều hướng để quyết định đối tượng nào được truy cập tiếp theo

Trong khi định danh đối tượng là nền tảng trong thế giới đối tượng, nó không tồn tại trong thế giới quan hệ, ở đây dữ liệu được truy cập dựa trên giá trị của chúng (bằng việc sử dụng các khoá) Xét một đối tượng Vòng tròn, nếu màu của nó thay đối từ Vàng sang Đỏ, định danh của nó vẫn giữ nguyên Trong thế giới quan hệ, nếu thuộc tính màu sắc là khoá của quan hệ biểu diễn đối tượng Vòng tròn thì chúng ta

sẽ không thể tìm thấy hàng trước kia đã chứa giá trị Vàng nữa Trong thiết kế cơ sở

dữ liệu quan hệ điều này có thể và nên được giải quyết bằng việc sử dụng các khoá duy nhất không được lấy ra từ bất kỳ các thuộc tính ứng dụng nào, nhưng trong một

cơ sở dữ liệu quan hệ những giá trị này vẫn tiềm tàng khả năng có thể bị thay đổi bởi ứng dụng

Hình 9 Định danh đối tượng

Trang 26

1.3.2.2 Kiến trúc cơ sở dữ liệu hướng đối tượng

Cũng như vậy định danh đối tượng là nền tảng của một cơ sở dữ liệu đối tượng Hình 10 thể hiện chi tiết hơn kiến trúc client-side của một cơ sở dữ liệu đối tượng [24]

Hình 10 Kiến trúc client-side của một cơ sở dữ liệu đối tượng

Ứng dụng được liên kết với Object Manager (OM) được cung cấp bởi nhà sản xuất cơ sở dữ liệu, nó cung cấp sự điều hướng trong suốt (dựa trên định danh đối tượng) và quản lý các đối tượng bền vững, lấy chúng về theo yêu cầu từ server và đặt vào trong không gian đối tượng của client Ứng dụng gọi các OM API để quản

lý các ranh giới giao tác; trên việc gọi cam kết (hoặc rollback loại bỏ các thay đổi)

OM gửi các đối tượng được thay đổi trở lại server và kết thúc giao tác Server cơ sở

dữ liệu ép buộc toàn vẹn giao tác và cách ly giữa nhiều client, bằng cách sử dụng việc khoá để đảm bảo sự gắn kết cache giữa các đối tượng được giữ trong client-cache và giữa các đối tượng trong server Như mong đợi ở bất kỳ cơ sở dữ liệu nào, server cung cấp việc phục hồi giao tác trên sự hỏng hóc và đảm bảo các đối tượng được giữ trong cơ sở dữ liệu là nhất quán trong giao tác

Trong lúc tất cả các cơ sở dữ liệu đối tượng khác nhau sẵn có trên thị trường ngày nay cung cấp cùng một khả năng cơ sở, chúng có khuynh hướng tiếp cận vấn

đề từ các phối cảnh khác nhau Hầu hết tập trung vào việc cung cấp các mở rộng bền vững cho các ngôn ngữ, C++ hoặc Smalltalk, và thường phân loại theo các động cơ lưu trữ bền vững Một số khác tập trung vào việc cung cấp một cơ sở dữ

Trang 27

liệu của các đối tượng Sự khác biệt có thể được minh hoạ bằng việc xem xét xem các truy vấn được xử lý như thế nào

Hình 11 Các kiến trúc cơ sở dữ liệu khác nhau

Các động cơ lưu trữ bền vững đảo ngược tiếp cận server-centric của cơ sở dữ liệu quan hệ, thay vào đó chấp nhận một tiếp cận client-centric Thay vì trút bỏ gánh nặng xử lý dữ liệu cho server cơ sở dữ liệu (như khi sử dụng SQL), tiếp cận này lựa chọn đơn giản hoá server cơ sở dữ liệu để cho nó chỉ chịu trách nhiệm quản lý các trang (như trong các trang của bộ nhớ) Server cơ sở dữ liệu gửi các trang này tới các client khi có yêu cầu (kiểu server cơ sở dữ liệu này thường được nhắc đến như

là một server trang) Sau đó client thực hiện việc xử lý được yêu cầu Để thực hiện

một truy vấn tất cả các đối tượng được đòi hỏi phải được truyền từ server cơ sở dữ liệu tới client, client sau đó quyết định các đối tượng nào thoả mãn tiêu chí được đưa ra

Tiếp cận thứ hai là để thiết kế một cơ sở dữ liệu của các đối tượng thay vì cho các khối dữ liệu vô định hình Kiến trúc này cho phép ba tiện lợi chính: Việc xử lý nhận biết đối tượng có thể xảy ra ở cả client và server; các đối tượng có thể được

Trang 28

vận chuyển như là các đối tượng thay vì như là các khối dữ liệu; và các đối tượng

có thể được vận chuyển giữa các nền khác nhau dễ dàng hơn

 Lợi ích đầu tiên có nghĩa là vì cơ sở dữ liệu là nhận biết đối tượng, server có thể thực hiện việc xử lý trên các đối tượng đó Nó có thể thực hiện việc điều hướng, truy vấn, duy trì các mối quan hệ giữa các đối tượng, và các chức năng phức tạp khác Ví dụ để thực hiện một truy vấn, client đơn giản là chỉ

ra tiêu chí bằng việc sử dụng một cú pháp giống SQL và truyền nó tới server Server tối ưu hoá và thực thi truy vấn, sử dụng các chỉ mục đa người dùng nếu được cung cấp, trả lại chỉ những đối tượng tổng hợp cho client

Hình 12 Việc xử lý truy vấn

 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

Trang 29

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

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

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

Trang 30

ứ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à

Trang 31

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

Trang 32

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

 Hỗ trợ nền bị hạn chế

Trang 33

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ụ,

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ử

Trang 34

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

Trang 35

Chương 2 Các hệ quản trị cơ sở dữ liệu hướng đối 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ệ

Trang 36

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 hướng đối tượng thuần tuý cho việc quản trị cơ sở dữ liệu Nó hỗ trợ một miền rộng các nền với giao diện Hệ cơ sở dữ liệu quan hệ truyền thống

Dòng sản phẩm bao gồm PSE Pro- một phiên bản thu gọn của ObjectStore, lý tưởng cho các ứng dụng nhúng hướng giao tác PSE Pro giảm cho phí phát triển và làm cho việc phát triển và triển khai ứng dụng phân tán được tiện lợi, cải thiện hiệu suất của các hệ thống nhúng, các thiết bị di động, và các ứng dụng Web [15, 19]

Trang 37

2.1.2 Kiến trúc ObjectStore

ObjectStore dựa trên kiến trúc client/server Để đạt được sự thực thi tốt nhất, ObjectStore thi hành một kiến trúc độc đáo gọi là “Cache-Forward” [14, 15, 16] Kiến trúc này dựa trên bộ nhớ ảo với khái niệm lỗi trang Việc truy cập và thao tác

dữ liệu xảy ra trong bộ nhớ ở phía client thay vì ở phía server Khi dữ liệu được một ứng dụng tìm đến không ở trong bộ nhớ chính của client, một lỗi trang xảy ra Tiếp

đó để đáp lại các lỗi trang, client yêu cầu các trang từ server, và server sẽ truyền các trang bao chứa thông tin được yêu cầu tới client Dĩ nhiên các trang được truyền được đặt vào trong bộ nhớ chính của client Truy cập đối tượng trực tiếp từ bộ nhớ không chỉ gia tăng đáng kể tốc độ xử lý dữ liệu mà còn làm cho giao thông mạng giảm đi rất nhiều

(a)

Trang 38

(b) Hình 13 Mô hình kiến trúc của ObjectStore: (a) Một server, một client (b) Nhiều

server, nhiều client

Để đảm bảo sự toàn vẹn và nhất quán giao tác của dữ liệu được trữ cục bộ trong khi duy trì sự thực thi toàn thể hệ thống ở mức cao, ObjectStore cung cấp công nghệ callback locking đã được cấp bằng sáng chế Nó sẽ được thảo luận trong tiến trình ObjectStore Server

Có 3 tiến trình chính trong ObjectStore: tiến trình server, tiến trình client, và tiến trình Cache Manager Tiến trình ObjectStore Server điều khiển việc truy cập tới các

cơ sở dữ liệu ObjectStore trên một host Bao gồm lưu trữ và khôi phục dữ liệu bền vững; kiểm soát việc truy cập đồng thời của nhiều ứng dụng client bằng việc sử dụng callback locking; và phục hồi các cơ sở dữ liệu tới một trạng thái nhất quán giao tác nếu xảy ra sự bãi bỏ các tiến trình hoặc đổ vỡ host hoặc trong trường hợp hỏng hóc mạng Tiến trình Client ánh xạ các đối tượng cơ sở dữ liệu bền vững vào các địa chỉ ảo, yêu cầu server cấp phát và huỷ cấp phát vùng nhớ cho các đối tượng bền vững, duy trì việc trữ các trang được sử dụng gần đây và trạng thái khoá của các trang đó, và điều khiển các lỗi trang Với bộ quản lý Cache trong ObjectStore,

Trang 39

chức năng chính của nó là giúp cho việc truy cập đồng thời đến dữ liệu được thuận tiện bằng việc điều khiển các thông điệp callback từ Server Nó quyết định hoặc cấp quyền đọc hoặc cấp quyền ghi cho client hoặc từ chối yêu cầu cấp quyền [17, 18]

2.1.3 Chức năng

Các hệ thống kinh doanh tới hạn và các ứng dụng cho phép Web đòi hỏi khả năng cung cấp 24x7 và độ tin cậy và hiệu suất thực hiện mức cao ObjectStore cung cấp một số khả năng an toàn để bảo vệ dữ liệu trong một môi trường phân tán Chúng bao gồm điều khiển tương tranh cho sự nhất quán giao tác, cập nhật trực tuyến, khắc phục lỗi một cách tự động và sao lặp [14]

Một vị trí nguy hiểm tiềm tàng với bất bỳ ứng dụng quản trị dữ liệu nào là sự đổ

vỡ hệ thống trong quá trình một giao tác Cơ chế phục hồi của ObjectStore cho phép

cơ sở dữ liệu được khôi phục lại trạng thái nhất quán theo sau một đổ vỡ Sự cam kết hai pha tuân theo XA được sử dụng để đảm bảo sự nhất quán giữa các server phân tán và giữa nhiều cơ sở dữ liệu Theo sau một đổ vỡ hệ thống, các tệp nhật ký giao tác được xử lý để khôi phục các cơ sở dữ liệu tới trạng thái nhất quán sau cùng ngay trước đổ vỡ

Một lợi ích nữa của việc ghi tất cả các thay đổi tới nhật ký giao tác và sử dụng nhật ký cho việc truy cập dữ liệu tiếp theo, khi đó thời gian đáp ứng nhanh trong suốt các cam kết giao tác có thể được đảm bảo Nếu server cơ sở dữ liệu bận phục

vụ các yêu cầu từ các client, nhật ký giao tác có thể đợi trước khi cam kết những thay đổi tới cơ sở dữ liệu, loại bỏ rủi ro của một sự thắt cổ chai trong server cơ sở

dữ liệu

Một thao tác chung nhất của các ứng dụng cơ sở dữ liệu là việc huỷ tham chiếu đối tượng một cách thông thường, việc này trong C++ được thực hiện bằng việc sử dụng các con trỏ, và trong Java với các tham chiếu Trong cả hai trường hợp điểm chính của sự thực thi cơ sở dữ liệu là tốc độ ở đó việc huỷ tham chiếu có thể được thực hiện ObjectStore sử dụng công nghệ đã được cấp bằng sáng chế trong Kiến trúc ánh xạ bộ nhớ ảo [16 ,17, 18]

Trang 40

ObjectStore cải tiến không gian địa chỉ ảo của trạm làm việc bằng việc ánh xạ động dữ liệu liệu bền vững được tham chiếu trong suốt các phiên ứng dụng, do vậy đảm bảo rằng việc truy cập tới dữ liệu bền vững thì nhanh như việc truy cập tới dữ liệu trong suốt Các ứng dụng rất thường xuyên truy cập tới các số lượng lớn các đối tượng nhỏ Thông thường phải cần đến một chỉ thị Đơn vị xử lý trung tâm (CPU) để lấy về một đối tượng đơn, điều này là một sự sử dụng kém hiệu quả của các tài nguyên ObjectStore cho phép lấy về vài đối tượng được lưu trên một trang đơn được yêu cầu trong một thao tác CPU, đặt vào cache và được ánh xạ vào trong

bộ nhớ ảo

Bất cứ khi nào có thể, các đối tượng được lưu trữ trên server theo khuôn dạng như là chúng được biểu diễn trong bộ nhớ ảo để cải thiện hiệu suất Tuy nhiên, để cho phép truy cập không đồng nhất thông qua các nền khác nhau, thông thường đòi hỏi mộ số tiêu chuẩn sửa đổi, ví dụ, việc thay đổi thứ tự byte

Một cách cải tiến hiệu quả khác, được ObjectStore chấp nhận, là khả năng phân cụm các đối tượng trên một trang hoặc trên các trang cụm, để khi dữ liệu được đặt vào trong cache, việc truy cập tới dữ liệu liên kết lấy về được nhanh chóng

Trong một RDBMS, một mức tri thức Ngôn ngữ truy vấn có cấu trúc (SQL) thường được đòi hỏi để cung cấp các truy vấn phi thể thức Trong thực tế điều này hầu như có nghĩa đặt ra một yêu cầu cho phòng IT, nó có thể đòi hỏi một thời gian trễ vài ngày đợi một câu trả lời – phi thể thức khó Các tiện ích được cung cấp trong ObjectStore để mô hình hoá các mối quan hệ giữa các đối tượng, cho phép các tập hợp lớn các đối tượng được quản lý Những tập hợp này thiết lập cơ sở của việc truy vấn với những người dùng bằng việc đơn giản là chọn những phần tử thoả mãn một điều kiện đặc thù Những sự khôi phục liên kết và điều hướng phi thể thức cũng được hỗ trợ

Một nhân tố có thể có một ảnh hưởng nghiêm trọng tới việc thực thi của một cơ

sở dữ liệu là một sự thiếu hụt việc đánh chỉ số hiệu quả Tuy nhiên, việc tạo ra các chỉ số tự chúng cũng tạo ra các vấn đề không gian vật lý Do vậy có thể là một hành

Ngày đăng: 25/03/2015, 10:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Tuệ, Lý Anh Tuấn (2005), ObjectStore PSE Pro: Một giải pháp quản trị dữ liệu hướng đối tượng, Một số vấn đề chọn lọc của công nghệ thông tin, Hải Phòng 2005 Sách, tạp chí
Tiêu đề: ObjectStore PSE Pro: Một giải pháp quản trị dữ liệu hướng đối tượng
Tác giả: Nguyễn Tuệ, Lý Anh Tuấn
Năm: 2005
2. Đoàn Văn Ban (1997), Phân tích, thiết kế và lập trình hướng đối tượng, NXB Thống kê Sách, tạp chí
Tiêu đề: Phân tích, thiết kế và lập trình hướng đối tượng
Tác giả: Đoàn Văn Ban
Nhà XB: NXB Thống kê
Năm: 1997
3. Đoàn Văn Ban (2003), Lập trình hướng đối tượng với Java, NXB Khoa học & Kỹ thuật Sách, tạp chí
Tiêu đề: Lập trình hướng đối tượng với Java
Tác giả: Đoàn Văn Ban
Nhà XB: NXB Khoa học & Kỹ thuật
Năm: 2003
4. Đặng Văn Đức (2002), Phân tích thiết kế hướng đối tượng bằng UML, NXB Giáo dục Sách, tạp chí
Tiêu đề: Phân tích thiết kế hướng đối tượng bằng UML
Tác giả: Đặng Văn Đức
Nhà XB: NXB Giáo dục
Năm: 2002
5. Nguyễn Kim Anh (2004), Nguyên lý của các hệ cơ sở dữ liệu, tr. 52-58, NXB Đại học quốc gia Hà nội.Tiếng Anh Sách, tạp chí
Tiêu đề: Nguyên lý của các hệ cơ sở dữ liệu
Tác giả: Nguyễn Kim Anh
Nhà XB: NXB Đại học quốc gia Hà nội. Tiếng Anh
Năm: 2004
6. W. Kim (1990), Introduction to Object-Oriented Databases, The MIT Press, Massachusetts Sách, tạp chí
Tiêu đề: Introduction to Object-Oriented Databases
Tác giả: W. Kim
Năm: 1990
7. R. Elmasri and S.B. Navathe (2000), Fundamentals of Database Systems, 3rd ed., pp. 359-433 Sách, tạp chí
Tiêu đề: Fundamentals of Database Systems
Tác giả: R. Elmasri and S.B. Navathe
Năm: 2000
8. P. Rob, C. Coronel (1998), Database Systems: Design, Implementation, and Management, pp. 417-474, Wadsworth Pusblishing Co Sách, tạp chí
Tiêu đề: Database Systems: Design, Implementation, and Management
Tác giả: P. Rob, C. Coronel
Năm: 1998
13. R.G.G. Cattell, D.K. Barry (1999), The Object Data Standard: ODMG 3.0, Morgan Kaufmann Publishers Sách, tạp chí
Tiêu đề: The Object Data Standard: ODMG 3.0
Tác giả: R.G.G. Cattell, D.K. Barry
Năm: 1999
17. Object Design, Inc., ObjectStore Documentation: ObjectStore Management. (Part number: SW-OS-DOC-MGT-510) Sách, tạp chí
Tiêu đề: ObjectStore Documentation: ObjectStore Management
27. Z. Liu (2002), Object-Oriented Software Development with UML, UNU/IIST Report No. 259 Sách, tạp chí
Tiêu đề: Object-Oriented Software Development with UML
Tác giả: Z. Liu
Năm: 2002
29. Rational Software Corp., Using Rose: Rational Rose, Version: 2001A.04.00, Part number: 800-024462-000 30. Rational Software Corp., http://www.rational.com Sách, tạp chí
Tiêu đề: Using Rose: Rational Rose
9. K. Pentayya (2002), Object Oriented Database (OODB) Khác
10. S. Franklin (2004), Object Oriented Databases Are Worth a Closer Look Khác
11. S. Franklin (2004), Using Object-Oriented Databases: A Step-By-Step Tutoria Khác
12. M. Atkinson,F. Bancilhon, D. DeWitt, K. Dittrich, D. Maier, S. Zdonik (1995), The Object-Oriented Database System Manifesto Khác
14. S. Clarke (2001), Data Management Research: Object Design Object Store Khác
15. Bloor Research (2005), ObjectStore from Progress Software Khác
16. Progress Software Corp., Introducing Cache-Forward Architecture Khác
24. Versant Corporation, Inc., Whitepager: Objects End-to-End The ODBMS Advantage Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w