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 - Pdf 25

ĐẠ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

1
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

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 3
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
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
5
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

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

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ế. 9
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ệ

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 11
 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ở

Thế hệ thứ nhất
Hệ thống tệp

CSDL mạng và
phân cấp

Cơ sở dữ liệu
CODASYL

Cơ sở dữ liệu
quan hệ

CSDL h-ớng
đối t-ợng

Thế hệ thứ hai
Thế hệ thứ ba
Thế hệ thứ 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. 14
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. 15


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ì. 17

* 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.

};

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). 19 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. iu hng cỏc i tng bng vic i theo cỏc con tr
Tip cn ny c xem xột l t nhiờn vi vic tỡm kim i tng hn l
phng phỏp i s hc c s dng trong cỏc c s d liu quan h.
1.2.2.3. Thao tỏc d liu
Ngụn ng truy vn d liu chun cho cỏc OODB l Ngụn ng truy vn i
tng (OQL). OQL chim ly nhng c trng chc chn t SQL (tc l cõu lnh
SQL y ) v thờm vo cỏc m rng hng i tng. c thit k lm vic
vi cỏc i tng, nú thiu ht cỏc c trng ch rừ UPDATE thay vo ú phi gi
cỏc thao tỏc i tng sa i trng thỏi ca i tng. Cú th sa i cỏc i
tng v to cỏc i tng bn vng mi thụng qua cỏc cõu lnh OQL [Riccardi


21
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


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

Trích đoạn Những việc trước nhất Tổng quan hệ thống Phõn tớch thiết kế
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status