You are on page 1of 46

Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP


�����
1. Định hướng đề tài tốt nghiệp
 Nghiên cứu các vấn đề về cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu về các tiêu chuẩn và thiết kế cơ sở dữ liệu hướng đối tượng.
 Vấn đề bảo mật trong cơ sở dữ liệu hướng đối tượng.
 Mô phỏng bài toán bảo mật cơ sở dữ liệu hướng đối tượng dựa trên hệ quản trị cơ
sở sở dữ liệu hướng đối tượng DB4O.
2. Các nhiệm vụ cụ thể của đồ án tốt nghiệp
 Tìm hiểu về tổng quan chung về cơ sở dữ liệu hướng đối tượng và các mô hình dữ
liệu, các hệ cơ cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu các tiêu chuẩn, ngôn ngữ và thiết kế cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu mô hình toàn vẹn cho hệ cơ sở dữ liệu hướng đối tượng và vấn đề an toàn,
an ninh cho cơ sở dữ liệu thời gian thực.
 Tìm hiểu hệ quản trị cơ sở dữ liệu hướng đối tượn DB4O để xây dựng bảo mật cho
hệ thống. Xây dựng bài toán ‘Bán hàng online -Laptop ’để mô phỏng bài toán bảo
mật.
3. Lời cam đoan của sinh viên
Tôi - Đào Văn Tâm - cam kết ĐATN là công trình của bản thân tôi dưới sự hướng
dẫn của Th.S Đỗ Văn Uy.
Các kết quả trong đồ án là trung thực không phải là sao chép toàn văn của bất kì
công trình nào khác.

Hà nội, Ngày…. Tháng…. Năm 2008


Tác giả ĐATN

Đào Văn Tâm

4. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của đồ án tốt nghiệp và cho
phép bảo vệ.

Hà nội, Ngày…. Tháng…. Năm 2008


Giáo viên hướng dẫn

Th.S Đỗ Văn Uy

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP


Nội dung của đồ án này bao gồm những nội dung sau :
- Tìm hiểu về cơ sở dữ liệu hướng đối tượng, các khái niệm hướng đối tượng, cấu
trúccủa đối tượng, tìm hiểu quá trình thiết kế và các tiêu chuẩn trong quá trình
thiết kế của cơ sở dữ liệu, vấn đề ánh xạ đối tượng – quan hệ.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 1-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

- Tìm hiểu tính toàn vẹn, các ràng buộc toàn vẹn, mô phỏng phụ thuộc hàm trong cơ
sở dữ liệu hướng đối tượng.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 2-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP


�����
1. Định hướng đề tài tốt nghiệp
 Nghiên cứu các vấn đề về cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu về các tiêu chuẩn và thiết kế cơ sở dữ liệu hướng đối tượng.
 Vấn đề bảo mật trong cơ sở dữ liệu hướng đối tượng.
 Mô phỏng bài toán bảo mật cơ sở dữ liệu hướng đối tượng dựa trên hệ quản trị cơ
sở sở dữ liệu hướng đối tượng DB4O.
2. Các nhiệm vụ cụ thể của đồ án tốt nghiệp
 Tìm hiểu về tổng quan chung về cơ sở dữ liệu hướng đối tượng và các mô hình dữ
liệu, các hệ cơ cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu các tiêu chuẩn, ngôn ngữ và thiết kế cơ sở dữ liệu hướng đối tượng.
 Tìm hiểu mô hình toàn vẹn cho hệ cơ sở dữ liệu hướng đối tượng và vấn đề an toàn,
an ninh cho cơ sở dữ liệu thời gian thực.
 Tìm hiểu hệ quản trị cơ sở dữ liệu hướng đối tượn DB4O để xây dựng bảo mật cho
hệ thống. Xây dựng bài toán ‘Bán hàng online -Laptop ’để mô phỏng bài toán bảo
mật.
3. Lời cam đoan của sinh viên
Tôi - Đào Văn Tâm - cam kết ĐATN là công trình của bản thân tôi dưới sự hướng
dẫn của Th.S Đỗ Văn Uy.
Các kết quả trong đồ án là trung thực không phải là sao chép toàn văn của bất kì
công trình nào khác.

Hà nội, Ngày…. Tháng…. Năm 2008


Tác giả ĐATN

Đào Văn Tâm

4. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của đồ án tốt nghiệp và cho
phép bảo vệ.

Hà nội, Ngày…. Tháng…. Năm 2008


Giáo viên hướng dẫn

Th.S Đỗ Văn Uy

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP


Nội dung của đồ án này bao gồm những nội dung sau :
- Tìm hiểu về cơ sở dữ liệu hướng đối tượng, các khái niệm hướng đối tượng, cấu
trúccủa đối tượng, tìm hiểu quá trình thiết kế và các tiêu chuẩn trong quá trình
thiết kế của cơ sở dữ liệu, vấn đề ánh xạ đối tượng – quan hệ.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 3-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

- Tìm hiểu tính toàn vẹn, các ràng buộc toàn vẹn, mô phỏng phụ thuộc hàm trong cơ
sở dữ liệu hướng đối tượng.
- Vấn đề bảo mật trong cơ sở dữ liệu hướng đối tượng.
- Tìm hiểu các bước chuẩn hóa trong một cơ sở dữ liệu hướng đối tượng.
- Tìm hiểu tổng quan về cơ sở dữ liệu hướng đối tượng db4o
- Áp dụng cơ sở dữ liệu hướng đối tượng db4o để xây dựng chương trình ‘bán hàng
online –laptop’.

Với những nội dung của đồ án được trình bày như trên, báo cáo đồ án tốt nghiệp được
chia thành 3 chương. Nội dung của mỗi chương được trình bày như sau :
 Chương 1 : Tổng quan về cơ sở dữ liệu hướng đối tượng. Trình bày những khái
niệm cơ bản về cơ sở dữ liệu hướng đối tượng. Các tiêu chuẩn, ngôn ngữ thiết kế
trong cơ sở dữ liệu hướng đối tượng, và vấn đề ánh xạ đối tượng- quan hệ.
 Chương 2 : Tính toàn vẹn và bảo mật trong cơ sở dữ liệu hướng đối tượng. Trình
bày về tính toàn vẹn trong cơ sở dư liệu hướng đối tượng, các ràng buộc toàn vẹn,
ràng buộc miền, mô phỏng phụ thuộc hàm.Trong chương này cũng đưa ra vấn đề
về chuẩn hóa trong cơ sở dữ liệu hướng đối tượng
 Chương 3 : Xây dựng ứng dụng ‘bán hàng online – laptop’ sử dụng hệ quản trị cơ
sở dữ liệu hướng đối tượng DB4O. Tìm hiểu tổng quan về cơ sở dữ liệu hướng đối
tượng DB4O để xây dựng tính bảo mật cho một hệ thống. Phân tích và thiết kế một
ứng dụng.

Phần kết luận và đánh giá : Trong phần này, báo cáo các kết quả thực hiện trong quá trình
làm đồ án, từ những kết quả tìm hiểu về lý thuyết và kết quả cài đặt chương trình khi thực
hiện bài toán.

ABSTRACT OF SECURITY IN AN OBJECT- ORIENTED


DATABASE
The content of my plan include somethings :
- To search about Object Oriented Database, conceptions about Object, the structure
of Object, to search process design and standards in processing database, the
problem about Object – Relational Mapping.
- To search about Integrity, Integrity Constraints, Simulating Functional
Dependencies in ODB
- The matter about Security in an ODB.
- To search steeps Normalization in an ODB.
- To search general for ODB db4o.
- Apply ODB to build programme for "sell goods online – laptop".

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 4-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

With terns of plan is shown, plan's report for greduate is divided three Chapters.
 Chapter 1: Generally about ODB, to show conceptions basic ODB, Normalizations,
design language in ODB, the problem about Object – relational Mapping.
 Chapter 2 : Integrative and security in an ODB, to show about integrative in ODB,
Integrity Constraints, Domain Constraints, Simulating Functional Dependencies. In
this chapter also to show the problem normality in ODB.
 Chapter 3: To build application " sell goods online – laptop" using Object Database
Management Systems db4o. To search general about OOD db4o, to build security
for system. To analyse and design an application.
Conclution and appreciation: In this part, the report of results's plan doing from all results I
found, and from the results about theory and programmes set up.
MỤC LỤC

Lời nói đầu............................................................................................................5


Danh mục các bảng ..............................................................................................7
Danh mục hình ảnh .............................................................................................8
Danh mục thuật ngữ ............................................................................................9
Chương 1.Tổng quan về cơ sở dữ liệu hướng đối tượng ...................................10
1. Các khái niệm về cơ sở dữ liệu hướng đối tượng .......................................11
1.1. Tổng quan về các khái niệm hướng đối tượng ...................................................11
1.2. Khái niệm cơ sở dữ liệu hướng đối tượng..........................................................13
1.3. Xác định đối tượng, cấu trúc đối tượng và thiết lập kiểu đối tượng ..................13
1.3.1. Xác định đối tượng ......................................................................................13
1.3.2. Cấu trúc đối tượng .....................................................................................14
1.3.3. Thiết lập kiểu đối tượng .............................................................................16
1.4. Đóng gói các hoạt động,phương thức và tính bảo toàn......................................18
1.4.1. Mô tả xử lý của đối tượng thông qua các hoạt động của lớp......................18
1.4.2. Mô tả tính bảo toàn của đối tượng thông qua cách đặt tên và
cách tiếp cận...........................................................................................................20
1.5. Phân cấp kiểu và tính kế thừa............................................................................21
1.5.1. Phân cấp kiểu và kế thừa ............................................................................22
1.5.2. Ràng buộc trên Extent tương ứng với cây phân cấp kiểu ...........................23
1.6. Đối tượng phức hợp ...........................................................................................24
1.6.1. Đối tượng phức hợp không có cấu trúc và sự mở rộng kiểu .......................25
1.6.2. Đối tượng phức hợp có cấu trúc .................................................................26
1.7. Các khái niệm hướng đối tượng khác.................................................................27
1.7. 1. Tính đa hình................................................................................................27
1.7. 2. Đa kế thừa và kế thừa chọn lọc ..................................................................28
1.7. 3. Phiên bản và cấu hình ...............................................................................29
1.8. Tổng kết..............................................................................................................30

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 5-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

2. Các tiêu chuẩn, ngôn ngữ và thiết kế của cơ sở dữ liệu hướng đối
tượng ..................................................................................................................31
2.1. Tổng quan về mô hình hướng đối tượng của ODMG ........................................32
2.1.1. Đối tượng và Literal ....................................................................................32
2.1.2. Những giao diện tích hợp có sẵn đối với đối tượng tập hợp.......................35
2.1.3. Đối tượng phần tử .......................................................................................35
2.1.4. Giao diện,lớp và tính kế thừa ......................................................................36
2.1.5. Extents, khóa, đối tượng chế tạo .................................................................37
2.2. Ngôn ngữ định nghĩa đối tượng .........................................................................37
2.3. Tổng quan về kết hợp với ngôn ngữ java ..........................................................37
2.4. Thiết kế khái niệm cơ sở dữ liệu hướng đối tượng ...........................................38
2.4.1. Sự khác biệt giữa thiết kế khái niệm của ODB và RDB .............................38
2.4.2. Ánh xạ một lược đồ EER vào lược đồ ODB ...............................................39
2.5. Các hệ cơ sở dữ liệu đối tượng ODBMS ............................................................41
2.6. Tổng kết...............................................................................................................41
3. Ánh xạ quan hệ - đối tượng ..........................................................................42
3.1. Định nghĩa hình thức của sơ đồ ODB ................................................................42
3.2. Ánh xạ đối tượng – quan hệ ...............................................................................44
3.2.1. Ánh xạ các lớp thành các quan hệ...............................................................44
3.2.2. Ánh xạ sự phân cấp lớp ...............................................................................45
3.3. Ánh xạ quan hệ - đối tượng ................................................................................45
3.3.1. Xác định cấu trúc lớp ..................................................................................45
3.3.2. Ghép lớp ......................................................................................................46
3.3.3. Ánh xạ khóa ngoài thành thuộc tính tham chiếu .........................................46
Chương 2. Tính toàn vẹn, chuẩn hóa và bảo mật cơ sở dữ liệu
hướng đối tượng ....................................................................................................47
1. Mô hình toàn vẹn cho hệ sơ sở dữ liệu hướng đối tượng............................47
1.1. Hệ quản trị ODB..................................................................................................47
1.2. Vấn đề toàn vẹn cho ODB...................................................................................47
1.3. Ràng buộc toàn vẹn .............................................................................................49
1.4. Biểu thức ràng buộc toàn vẹn..............................................................................50
1.5. Ràng buộc miền...................................................................................................53
1.6. Mô phỏng phụ thuộc hàm....................................................................................53
2. Vấn đề an toàn an ninh cho CSDL thời gian thực .......................................53
3. An toàn điều khiển tương tranh trong thời gian thực ..................................54
4. Chuẩn hóa trong ODB (Normalization in ODB) ..........................................55
4.1. First Object Normal Form (1ONF) .....................................................................55
4.2. Second Object Normal Form (2ONF) .................................................................57
4.3. Third Object Normal Form (3ONF)....................................................................58

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 6-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

5. Thực thi tính bảo mật cơ sở dữ liệu hướng đối tượng.................................59


5.1. Single level ..........................................................................................................59
5.2. Multilevel access controls ...................................................................................60
Chương 3. Áp dụng cơ sở dữ liệu hướng đối tượng DB4O xây dựng
giải pháp bảo mật cho hệ thống ‘Bán hàng trực tuyến -Laptop’......................60
1. Giới thiệu hệ cơ sở dữ liệu hướng đối tượng DB4O....................................60
1.1.Các loại lớp trong hệ thống đối tượng..................................................................63
1.2.Object Indentity....................................................................................................63
1.3.Lược đồ cơ sở dữ liệu trong db4o (database schema) ..........................................65
1.4. Object Relationships............................................................................................66
1.5.Các kiểu quan hệ của đối tượng ...........................................................................69
2. Giới thiệu bài toán ‘bán hàng online-laptop’...............................................73
2.1. Mục đích.............................................................................................................73
2.2. Mục tiêu của hệ thống .........................................................................................73
3. Phân tích bài toán ‘bàn hàng online-laptop’ ...............................................74
3.1. Phân tích yêu cầu về chức năng ..........................................................................74
3.1.1. Đối tượng người dùng và các chức năng .....................................................74
3.1.2. Biểu đồ các Use Case .................................................................................74
3.2. Phân tích chi tiết chức năng của hệ thống ...........................................................83
3.2.1. Biểu đồ sequence cho chức năng đăng nhập hệ thống.................................83
3.2.2. Biểu đồ sequence cho chức năng đăng ký tài khoản mới.............................84
3.2.3. Biểu đồ sequence cho user logout hệ thống ................................................84
3.3. Lựa chọn giải pháp và công nghệ........................................................................85
4. Thiết kế và cài đặt chương trình ...................................................................85
4.1. Thiết kế dữ liệu...................................................................................................85
4.1.1. Mô hình quan hệ đối tượng ..........................................................................85
4.1.2. Thiết kế cơ sở dữ liệu ...................................................................................86
4.2. Thiết kế chương trình .........................................................................................92
4.2.1. Thiết lập môi trường lập trình......................................................................92
4.2.2. Mô hình thiết kế module ...............................................................................93
4.2.3. Thiết kế tầng Model .....................................................................................93
4.2.4. Thiết kế tầng View ........................................................................................93
4.2.5. Thiết kế tầng Controller ...............................................................................94
4.2.6. Các file cấu hình cho hệ thống.....................................................................94
5. Kết quả thu được ...........................................................................................95
5.1. Kết quả nghiên cứu lý thuyết .............................................................................95
5.2. Kết quả cài đặt....................................................................................................95
KẾT LUẬN ........................................................................................................96
Phụ lục ................................................................................................................96

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 7-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

PHỤ LỤC A – Cách sử dụng công cụ ObjectManager ....................................96


PHỤ LỤC B – Tài liệu tham khảo.....................................................................99
PHỤ LỤC C – Cấu trúc CD đính kèm ............................................................100

Lời nói đầu


Hiện nay trong quá trình phát triển các ứng dụng để phục vụ các bài toán lớn
và nhỏ, thì hầu hết các cơ sở dữ liệu đều không thể thiếu trong các ứng dụng phát
triển đó.Và hầu hết đều sử dụng các hệ cơ sở dữ liệu quan hệ dùng trong quá trình
phát triển ứng dụng.Tuy nhiên hệ cơ sở dữ liệu quan hệ không đáp được với một số
bài toán mang tính chất phức tạp như các ứng dụng dùng trong thiết kế và sản xuất
công nghiệp (CAD/CAM và CIM�2), các thí nghiệm khoa học, viễn thông, hệ bản
đồ địa lý và multimedia. Các ứng dụng mới mẻ này có những yêu cầu và đặc tính
khác với các ứng dụng kinh doanh truyền thống, như là cấu trúc phức tạp hơn đối
với các đối tượng, thời gian transaction lâu hơn, các kiểu dữ liệu mới để lưu hình
ảnh hoặc những văn bản lớn và nhu cầu định nghĩa các xử lý đặc trưng của ứng
dụng. Cơ sở dữ liệu hướng đối tượng được xem như là phù hợp với các đòi hỏi của
ứng dụng loại này.
Tuy nhiên các kỹ thuật trong cơ sở dữ liệu hướng đối tượng còn chưa được phổ biến
và việc triển khai còn gặp một số khó khăn. Việc đưa ra tính toàn vẹn cho cơ sở dữ
liệu hướng đối tượng và phương pháp bảo mật cho hệ cơ sở dữ liệu hướng đôi
tượng là một yêu cầu rất cần cho các bài toán mang tính chất phức tạp mà hệ quản
trị cơ sở dữ liệu quan hệ không giải quyết được.
Cơ sở dữ liệu hướng đối tượng và vấn đề bảo mật trong đó là một vấn đề mà bản
thân em rất quan tâm. Em thực hiện đề tài này với các mục đích có được sự hiểu
biết đầy đủ về cơ sở dữ liệu hướng đối tượng. Trong đó em tìm hiểu chung nhất về
cơ sở dữ liệu hướng đối tượng và tính toàn vẹn trong cơ sở dữ liệu hướng đối tượng
và tập trung và nghiên cứu tính bảo mật trong hệ cơ sở dữ liệu hướng đối tượng. Từ
đó đưa ra được các giải pháp bảo mật trong hệ cơ sở dữ liệu hướng đối tượng. Bố
cục của đồ án gồm có 3 chương :
 Chương 1 : Tổng quan về cơ sở dữ liệu hướng đối tượng. Trình bày những
khái niệm cơ bản về cơ sở dữ liệu hướng đối tượng.Các tiêu chuẩn, ngôn ngữ
thiết kế trong cơ sở dữ liệu hướng đối tượng, và vấn đề ánh xạ đối tượng-
quan hệ.
 Chương 2 : Tính toàn vẹn và bảo mật trong cơ sở dữ liệu hướng đối tượng.
Trình bày về tính toàn vẹn trong cơ sở dư liệu hướng đối tượng, các ràng
buộc toàn vẹn, ràng buộc miền, mô phỏng phụ thuộc hàm.Trong chương này
cũng đưa ra vấn đề về chuẩn hóa trong cơ sở dữ liệu hướng đối tượng
 Chương 3 : Xây dựng ứng dụng ‘bán hàng online – laptop’ sử dụng hệ quản
trị cơ sở dữ liệu hướng đối tượng DB4O. Tìm hiểu tổng quan về cơ sở dữ
liệu hướng đối tượng DB4O để xây dựng tính bảo mật cho một hệ thống.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 8-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Phân tích và thiết kế một ứng dụng.Nhận xét và đánh giá hệ thống đã xây
dựng.

Cuối cùng em xin trân trọng bày tỏ lời cám ơn sâu sắc đến Th.S Đỗ Văn Uy –
Phó trưởng khoa Công nghệ thông tin đã tận tình hướng dẫn và giúp đỡ em trong
suốt thời gian thực hiện đồ án.
Em cũng xin trân thành cám ơn gia đình và bạn bè, những người luôn gần gũi
động viên và giúp đỡ và tạo điều kiện để em có thể hoàn thành đồ án này.
Trong phạm vi của một đồ án tốt nghiệp, đề tài còn có nhiều hạn chế. Em rất
mong nhận được nhiều ý kiến đóng góp từ các thầy cô và bạn bè để đề tài được đầy
đủ và hoàn thiện hơn. Em xin trân trọng cám ơn !

Hà nội ngày 8 tháng 5 năm


2008

Người thực hiện

ĐàoVăn Tâm
Lớp CNPM Khóa 48
Khoa CNTT - Trường ĐHBKHN

Danh mục các bảng

.........................................................................................................................................87
Bảng 4.1. Lớp Manufacturer .........................................................................................87
.........................................................................................................................................87
Bảng 4.2. Lớp Catagory .................................................................................................87
.........................................................................................................................................88
Bảng 4.3. Lớp Product ...................................................................................................88
.........................................................................................................................................88
Bảng 4.4. Lớp ProductReview ......................................................................................88
.........................................................................................................................................88
Bảng 4.5. Lớp ProductSpecial .......................................................................................88
.........................................................................................................................................89
Bảng 4.6. Lớp Order .......................................................................................................89
.........................................................................................................................................90
Bảng 4.7. Lớp ProductSpecial .......................................................................................90
.........................................................................................................................................90
Bảng 4.8 . Lớp TaxClass...............................................................................................90
.........................................................................................................................................90

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 9-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Bảng 4.9 . Lớp TaxRate ................................................................................................90


.........................................................................................................................................91
Bảng 4.10 . Lớp User ....................................................................................................91
.........................................................................................................................................91
Bảng 4.11 . Lớp Group .................................................................................................91
.........................................................................................................................................91
Bảng 4.12 . Lớp Country ..............................................................................................91
.........................................................................................................................................91
Bảng 4.13 . Lớp Zone ....................................................................................................91
.........................................................................................................................................91
Bảng 4.13 . Lớp GeoZone ............................................................................................91
.........................................................................................................................................92
Bảng 4.14 . Lớp Currency ............................................................................................92
.........................................................................................................................................92
Bảng 4.15 . Lớp Customer .............................................................................................92

Danh mục hình ảnh

Hình 1.1 Đối tượng phức hợp Department dưới dạng đồ thị .........................................16
Hình 1.2. Thiết lập kiểu đối tượng ........................................................................................17
Hình 1.3. Thao tác và định nghĩa ...........................................................................................19
Hình 1.4. Tạo đối tượng bảo toàn ..........................................................................................21
Hình 1.5. Đối tượng phức hợp ...............................................................................................25
Hình 2.1 Giao diện phần tử trong ODMG ...........................................................................33
Hình 2.2 Giao diện cho các đối tượng tập hợp...................................................................34
Hình 2.3. Transaction là giải pháp từ ngoài constrained object set ..............................50
Hình 2.4.1: class Student chưa ở dạng chuẩn .....................................................................56
Hình 2.4.2: Class Student ở dạng chuẩn 1ONF ................................................................57
Hình 2.4.3: Class Student ở dạng chuẩn 2ONF .................................................................58
Hình 2.4.4: Class Student ở dạng chuẩn 3ONF .................................................................58
Hình 2.5. The object-oriented model ....................................................................................59
Hình 3.1.1. One-Line-of-Code Database loại trừ Complexity.......................................61
Hình 3.1.2 Db4o database với hai objects, được view bởi ObjectManager ...............64
Hình 3.1.3. Ví dụ databse db4o với tất cả các thuộc tính thay đổi ...............................64
Hình 3.1.4. Hai đối tượng person với các thuộc tính .......................................................65
Hình 3.1.5. Một số object graph của objects ......................................................................66
Hình 3.1.6. Các đối tượng trong database db4o.................................................................67
Hình 3.1.7. Các đối tượng liên quan trong quan hệ ngược .............................................68
Hình 3.1.8. Object graph của objects trong quan hệ ngược ..........................................68

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 10-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hình 3.1.9. Định nghĩa class Person và Address trong ODL .........................................69
Hình 3.1.10. Địng nghĩa clas Manager và Employee trong ODL .................................70
Hình 3.1.11. Quan hệ One-to-many .....................................................................................70
Hình 3.1.12. Object graph trong quan hệ one-to-many ...................................................70
Hình 3.1.13. Định nghĩa class Project và Employee trong ODL ..................................71
Hình 3.1.14. Minh họa object graph với quan hệ many-to-many .................................72
Hình 3.1.15. Quan hệ Many-to-many sử dụng mối quan hệ ngược ............................73
Hình 3.2.1. Người dùng trong hệ thống ...........................................................74
Hình 3.2.2. Use case hệ thống ...................................................................................75
Hình 3.2.3. Use case của admin ........................................................................76
Hình 3.2.4. Use case của customer ....................................................................77
Hình 3.2.5. Use case của admin – quản lý manufacturer ...............................................79
Hình 3.2.6. Use case của admin – quản lý catagory ........................................................79
Hình 3.2.7. Use case của admin – quản lý catagory ........................................................80
Hình 3.2.8. Use case của admin – quản lý customer .......................................................80
Hình 3.2.9. Use case của admin – quản lý order ..............................................................81
Hình 3.2.10. Use case của admin – quản lý taxrate .........................................................81
Hình 3.2.11. Use case của admin – quản lý user ..............................................................82
Hình 3.2.11. Use case của customer – quản lý thông tin cá nhân................................82
Hình 3.2.12. Use case của customer – quản lý giỏ hàng ................................................83
Hình 3.2.13. Biểu đồ sequence cho chức năng login hệ thống.....................................83
Hình 3.2.14. Biểu đồ sequence cho chức năng đăng ký .................................................84
Hình 3.2.15. Biểu đồ sequence cho chức năng logout hệ thống ..................................84
Hình 4.1. Mô hình quan hệ giữa các lớp trong hệ thống ................................................86
Hình 4.2.1. Kiến trúc MVC trong struts 2 ..........................................................................93
Hình 4.2.2. Thiết kế tầng controller .....................................................................................94

Danh mục thuật ngữ


STT Từ viết tắt Viết đấy đủ Ý nghĩa

Object Database Management Hệ quản trị cơ sở dữ liệu đối


1 ODBMS
Systems tượng
2 ODB Object Oriented Database Cơ sở dữ liệu hướng đối tượng
3 OID Object Identifier Định danh đối tượng
4 OCL Object Constraint Language Ngôn ngữ ràng buộc đối tượng
5 OO Object Oriented Hướng đối tượng
6 DBMS Database Management Systems Hệ quản trị cơ sở dữ liệu
Các đối tượng dữ liệu trong
7 JDO Java Data Objects
Java
8 DMO Data Manipulation Operators
9 DDL Data Definition Language Ngôn ngữ định nghĩa dữ liệu
Mô hình dữ liệu hướng đối
10 OODM Object-Oriented Data Model
Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM tượng - 11-
11 ODL Object Definition Language Ngôn ngữ định nghĩa đối tượng
12 OQL Object Query Language Ngôn ngữ truy vấn đối tượng
13 UML Unified Modeling Language Ngôn ngữ UML
14 OMG Object Management Group Nhóm quản lý đối tượng
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

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


Các mô hình dữ liệu và các hệ CSDL truyền thống, như là quan hệ, mạng và
phân cấp, vốn khá thành công trong việc phát triển kỹ thuật CSDL cấn thiết cho
nhiều ứng dụng CSDL kinh doanh. Tuy nhiên chúng có những khiếm khuyết nhất
định khi phải thiết kế và thực hiện các CSDL phức tạp hơn, ví dụ như các CSDL
dùng trong thiết kế và sản xuất công nghiệp (CAD/CAM và CIM�2), các thí
nghiệm khoa học, viễn thông, hệ bản đồ địa lý và multimedia.
Các ứng dụng mới mẻ này có những yêu cầu và đặc tính khác với các ứng
dụng kinh doanh truyền thống, như là cấu trúc phức tạp hơn đối với các đối tượng,
thời gian transaction lâu hơn, các kiểu dữ liệu mới để lưu hình ảnh hoặc những văn
bản lớn và nhu cầu định nghĩa các xử lý đặc trưng của ứng dụng.
CSDL hướng đối tượng được xem là phù hợp với những đòi hỏi của các ứng
dụng này. Việc tiếp cận hướng đối tượng tạo ra tính linh động để xử lý một số yêu
cầu mà không bị hạn chế bởi các kiểu dữ liệu và các ngôn ngữ truy vấn có sẵn trong
các hệ CSDL truyền thống. Tính năng then chốt của CSDL hướng đối tượng là năng
lực mà chúng trao cho nhà thiết kế để chỉ ra cấu trúc của các đối tượng phức tạp các
thao tác áp dụng lên các đối tượng này.
Một nguyên nhân khác của ra sự ra đời CSDL hướng đối tượng là việc vận
dụng ngày càng nhiều các ngôn ngữ lập trình hướng đối tượng để xây dựng các ứng
dụng phần mềm. Ngày nay CSDL đang trở thành những thành phần cơ bản trong hệ
thống phần mềm và rất khó sử dụng CSDL truyền thống để nhúng trong các ứng
dụng phần mềm hướng đối tượng được xây dựng bằng một ngôn ngữ lập trình
hướng đối tượng như là C++, SMALLTALK hay JAVA. OODB được thiết kế đê có
thể tích hợp trực tiếp với phần mềm được xây dựng bằng những ngôn ngữ lập trình
hướng đối tượng. Các nhà cung cấp hệ CSDL quan hệ còn nhận ra nhu cầu về tính
năng mô hình hóa dữ liệu bổ sung, các phiên bản tốt hơn của các hệ thống quan hệ
đang kết hợp nhiều tính năng đề ra cho OODB. Điều này dẫn đến những hệ thống
đặc thù như là hệ CSDL quan hệ đối tượng hay quan hệ mở rộng.Phiên bản kế tiếp
của tiêu chuẩn SQL đối với các hệ CSDL quan hệ SQL3 sẽ có một số tính năng này.
Trong những năm qua, nhiều mẫu thử nghiệm và những CSDL hướng đối
tượng loại thương mại đã được xây dựng. Các mẩu thử nghiệm gồm có.
 Hệ thống ORION do MCC xây dựng.
 OPENOODB của Texas Instruments.
 Hệ thống IRIS của phòng thí nghiệm Hewlett-Packard.
 Hệ thống ODE của phòng thí nghiệm Bell của AT&T.
 Dự án ObServer của Đại học Gemstone systems.
 ONTOS của ontos.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 12-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Objectivity của tập đoàn Objectivity


 Versant của Versant Object Technology.
 ObjectStore của Object Design.
 ARDENT của ARDENT Software.
 POET của POET Software.
Những sản phẩm này chỉ đại diện cho một phần danh sách các mẫu thử
nghiệm và những hệ CSDL hướng đối tượng thương mại sẵn có.
Do các hệ CSDL hướng đối tượng thương mại đã có mặt, nhu cầu về một ngôn
ngữ và mô hình chuẩn hóa cần được đặt ra.Bởi vì thủ tục đầy đủ để cấp phép cho
một tiêu chuẩn thông thường phải mất vài năm, một tổ chức gồm những nhà cung
cấp và người sử dụng các hệ CSDL hướng đối tượng, gọi tắt là ODMG đã đưa ra
một tiêu chuẩn gọi là ODMG-93, từ đó được cải tiến cho đến nay có phiên bản mới
nhất là ODMD 3.0.
CSDL hướng đối tượng được tuân thủ nhiều khái niệm được xây dựng ban đầu
là dành cho các ngôn ngữ lập trình hướng đối tượng.
1. Các khái niệm về cơ sở dữ liệu hướng đối tượng

Thuật ngữ hướng đối tượng - viết tắt là OO hay O-O – có nguồn gốc từ ngôn từ
lập trình OO, còn gọi là OOPL. Các khái niệm OO ngày nay được áp dụng trong
lĩnh vực CSDL, công nghệ phần mềm, công nghệ trí thức, trí tuệ nhân tạo và các hệ
máy tính nói chung. OOPL có nguồn gốc từ ngôn ngữ SIMULA, được giới thiệu
vào cuối những năm 1960.
Với SIMULA, khái niệm một lớp gộp cấu trúc dữ liệu bên trong của một đối
tượng vào phần khai báo một lớp. Sau đó, các nhà nghiên cứu đưa ra khái niệm về
kiểu dữ liệu khái quát, che chắn các cấu trúc dữ liệu bên trong và chỉ ra các hoạt
động với bên ngoài mà một đối tượng có thể có, dẫn đến khái niệm đóng gói
(Encapsulation). Ngôn ngữ lập trình SMALLTALK, do Xerox PARC xây dựng vào
những năm 1970, là một trong những ngôn ngữ đầu tiên gắn liền một cách rõ rệt với
các khái niệm OO bổ sung, như là truyền thông điệp và kế thừa. Nó được xem là
ngôn ngữ lập trình thuần OO, nghĩa là nó được thiết kết hoàn toàn dành cho hướng
đối tượng. Trái với ngôn ngữ lập trình lai OO thường gắn kết các khái niệm OO với
một ngôn ngữ đã có sẵn. Một ví dụ cho trường hợp sau là C++, vốn gắn kết các khái
niệm OO với ngôn ngữ đã rất phổ biến là ngôn ngữ lập trình C.

1.1. Tổng quan về các khái niệm hướng đối tượng


Một đối tượng (Object) đặc trưng thường có hai thành phần: trạng thái (giá trị)
(State) và hành vi (thao tác) (Behaviour). Do đó, nó hơi giống với một biến
chương trình trong một ngôn ngữ lập trình, ngoại trừ rằng về nguyên tắc nó sẽ có
một cấu trúc dữ liệu phức tạp cũng như các thao tác đặc thù do người lập trình viên
định nghĩa.
Các đối tượng trong một OOPL chỉ tồn tại trong một thời gian chương trình hoạt
động và do đó chúng được gọi là những đối tượng tức thời. Một OODB có thể kéo
Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 13-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

dài sự tồn tại của những đối tượng sao cho chúng được lưu trữ vĩnh viễn và do đó
các đối tượng vẫn bảo toàn sau khi chương trình chấm dứt và có thể được gọi lại sau
này cũng như được chia sẻ với các chương trình khác. Nói cách khác, OODB lưư
trữ các đối tượng bảo toàn ở nơi lưu trữ phụ và cho phép chia sẻ những đối tượng
này với nhiều chương trình và ứng dụng. Việc này đòi hỏi kết hợp các tính năng
phổ biến khác của hệ quản trị CSDL, như là cơ chế định chỉ mục, điều khiển song
hành và phục hồi. Một hệ OODB giao tiếp với một hoặc nhiều ngôn ngữ lập trình
OO để cung cấp khả năng đối tượng bảo toàn và chia sẻ.
Một tính năng khác của OODB là đối tượng có thể có một cấu trúc đối tượng của
sự phức hợp tuỳ ý để chứa đựng tất cả thông tin cần thiết mô tả đối tượng. Trái lại,
trong các hệ CSDL truyền thống, thông tin về đối tượng phức hợp thường được trải
ra trên nhiều quan hệ hay mẩu tin, dẫn đến việc mất đi tính tương đồng giữa đối
tượng thực tế và thể hiện của nó trên CSDLCấu trúc bên trong của CSDL hướng đối
tượng.
Cấu trúc bên trong của một đối tượng trong OOPL bao gồm đặc tả của biến bản
sao, lưu giữ những giá trị xác định trạng thái bên trong của đối tượng. Do đó, một
biến bản sao tương tự với khái niệm của một thuộc tính (Attributes), ngoại trừ rằng
biến bản có thể được đóng gói bên trong đối tượng và như vậy, không nhất thiết
phải thể hiện ra đối với người sử dụng bên ngoài. Các biến bảo sao còn có thể thuộc
kiểu dữ liệu phức hợp tuỳ ý. Những hệ thống hướng đối tượng cho phép định nghĩa
các thao tác hay hàm ( hành vi) áp dụng lên kiểu đối tượng cụ thể. Trong thực tế,
một số mô hình OO khẳng định rằng tất cả các hành vi mà người sử dụng áp dụng
lên một đối tượng đều phải định nghĩa trước. Điều này bắt buộc một sự đóng gói
hoàn chỉnh các đối tượng.
Việc tiếp cận cứng nhắc được nới lỏng trong phần lớn các mô hình OO vì một số
lý do.
 Thứ nhất, người sử dụng CSDL thường biết tên thuộc tính, vì vậy, họ có
thể đưa ra những điều kiện cụ thể lựa chọn trên các thuộc tính để lấy
những đối tượng cụ thể.
 Thứ hai, việc đóng gói hỏi thao tác được định nghĩa sẵn, làm cho việc chỉ
ra một câu truy vấn tức thời trực tuyến trở nên khó khăn.
Một khái niệm quan trọng khác trong các hệ OO là phân cấp lớp (Classification) ,
kiểu(Type) và tính kế thừa (Inheritence). Nó cho phép chỉ ra những kiểu hoặc lớp
mới kế thừa hầu hết về cấu trúc và các hoạt động của các kiểu hoặc lớp định nghĩa
trước. Do đó, đặc điểm của kiểu đối tượng có thể xử lý một cách hệ thống. Điều này
làm cho việc xây dựng các kiểu dữ liệu của một hệ thống dễ dàng hơn và sử dụng
lại các định nghĩa kiểu hiện có khi tạo ra những kiểu đối tượng mới.
Một số hệ thống OO cung cấp khả năng xử lý với nhiều phiên bản của cùng một
đối tượng - một tính năng chủ yếu trong các ứng dụng cho thiết kế và công nghệ. Ví
dụ, phiên bản cũ của một đối tượng thể hiện một thiết kế đã được kiểm nghiệm và
thẩm định nên được duy trì cho đến khi phiên bản mới lại được kiểm nghiệm và
thẩm định. Phiên bản mới của một đối tượng phức hợp có thể chỉ bao gồm một số
phiên bản mới của các đối tượng thành phần của nó, trong khi các thành phần khác
không thay đổi. Ngoài việc cho phép phiên bản hoá, OODB còn cho phép đối với

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 14-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

phát triển lược đồ, xảy ra khi định nghĩa kiểu bị thay đổi hoặc khi các kiểu hay mối
quan hệ mới được tạo ra. Hai tính năng này không dành riêng cho các OODB và về
nguyên tắc nên có trong tất cả các kiểu của DBMS.
Một khái niệm OO khác là tính đa dạng toán tử, đề cập đến khả năng một thao
tác áp dụng lên nhiều kiểu đối tượng khác nhau; trong trường hợp này, tên của thao
tác sẽ tham chiếu đến nhiều cài đặt riêng biệt, phụ thuộc vào kiểu đối tượng đang áp
dụng lên. Tính năng này còn gọi là chồng lớp toán tử. Ví dụ, hoạt động tính diện
tích của một đối tượng hình học có thể khác nhau về phương thức (cách thực hiện),
phụ thuộc vào đối tượng thuộc kiểu hình tam giác, hình tròn hay hình chữ nhật.
Như vậy bắt buộc phải sử dụng ràng buộc trễ của tên hoạt động với phương thức
tương ứng vào lúc thực thi, khi đã xác định được kiểu của đối tượng mà hoạt động
đang áp dụng.

1.2. Khái niệm cơ sở dữ liệu hướng đối tượng


Dưới đây là một số khái niệm về cơ sở dữ liệu hướng đối tượng.
Object system hoặc object-based system là một đối tượng mà nó hỗ trợ mô
hình của dữ liệu giống như những thực thể trừu tượng, với đối tượng đồng nhất
(object indentity).
Object-oriented system là một hệ thống đối tượng mà mọi dữ liệu được tạo
ra từ những thể hiện của những lớp (object instances) mà tham gia vào một cấp bậc
thừa kế.
Object-oriented database management system (ODBMS) là DBMS với mô
hình logic dữ liệu hướng đối tượng.
Object-oriented database (ODB) là một cơ sở dữ liệu được tạo ra từ những đối
tượng và quản lý bởi một ODBMS.

1.3. Xác định đối tượng, cấu trúc đối tượng và thiết lập kiểu đối tượng

1.3.1. Xác định đối tượng


Hệ OODB cung cấp xác định duy nhất cho từng đối tượng độc lập lưu trữ
trong CSDL. Về nguyên tắc, xác định duy nhất này được thực hiện thông qua phần
xác định đối tượng duy nhất, do hệ thống phát sinh, còn gọi là OID. Giá trị của một
OID không thể sinh ra cho người sử dụng bên ngoài, mà nó được sử dụng nội bộ
bên trong hệ thống để xác định từng đối tượng duy nhất, tạo ra và quản lý các tham
chiếu lẫn nhau giữa các đối tượng.
Đặc điểm chính bắt buộc của một OID là tính chất biến; nghĩa là giá trị OID
của một đối tượng nhất định không thay đổi. Điều này giúp bảo toàn ý nghĩa của
một đối tượng thực tế. Do đó, một hệ thống OODB phải có một cơ chế để phát sinh
các OID và bảo toàn tính bất biến. Tốt nhất là mỗi OID chỉ nên sử dụng một lần;
nghĩa là thậm chí khi đối tượng bị xoá khỏi CSDL, thì OID của nó cũng không thể
đem gán cho một đối tượng khác được. Nhờ đó OID không thể phụ thuộc vào giá trị
thuộc tính bất kỳ của đối tượng, bởi vì giá trị thuộc tính có thể bị thay đổi hoặc
chỉnh sửa. Nói chung, OID cũng không thể dựa trên địa chỉ vật lý của đối tượng

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 15-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

trong kho lưu trữ, bởi vì địa chỉ vật lý có thể thay đổi sau một đợt tổ chức lại của
CSDL về phương diện vật lý.
Tuy vậy, một số hệ thống vẫn sử dụng địa chỉ vật lý làm OID để tăng cường
hiệu quả trong truy vấn đối tượng. Nếu địa chỉ vật lý của một đối tượng thay đổi,
một con trỏ gián tiếp có thể được đặt tại địa chỉ trước đó, sẽ cho biết vị trí vật lý
mới của đối tượng. Phổ biến hơn, người ta sử dụng số Long Interger làm OID, sau
đó sử dụng sẽ sử dụng một số dạng bảng băm (hash table) để ánh xạ giá trị OID đến
địa chỉ vật lý của đối tượng.
Một số mô hình dữ liệu OO trước đây đòi hỏi mọi thứ - từ giá trị đơn giản đến
đối tượng phức tạp - đều phải được biểu diễn như một đối tượng, do đó mọi giá trị
cơ bản, như là interger, string, hay giá trị lôgic đều có một OID. Như vậy hai giá trị
cơ bản sẽ có hai OID khác nhau, điều này rất có ích trong một số trường hợp. Ví dụ,
giá trị interger 50 đôi khi mang ý nghĩa là trọng lượng tính bằng kilogram và ở thời
điểm khác nó mang ý nghĩa là tuổi tác của một người.
Kế đến, hai đối tượng cơ bản với OID phân biệt thể được tạo ra, nhưng cả hai
đối tượng cũng biểu diễn giá trị interger 50. Mặc dù hữu ích như một mô hình lý
thuyết, điều này, lại rất phi thực tế, bởi vì nó dẫn đến việc phát sinh quá nhiều OID.
Do đó, hầu hết các hệ CSDL OO cho phép biểu diễn vừa đối tượng và cả giá
trị. Mỗi đối tượng phải có một OID bất biến, trong khi giá trị thì không có OID và
chỉ đại diện cho chính nó. Vì vậy, một giá trị về nguyên tắc được chứa trong một
đối tượng và không được tham chiếu từ những đối tượng khác.
Trong một số hệ thống, nếu cần, các giá trị cấu trúc phức tạp còn có thể được
tạo ra mà không có OID tương ứng

1.3.2. Cấu trúc đối tượng


Trong OODB, trạng thái ( giá trị hiện hành) của một đối tượng phức tạp có thể
được xây dựng từ những đối tượng khác (hay những giá trị khác) bằng cách sử dụng
những thiết lập kiểu đối tượng nhất định. Cách biểu diễn chính thức các đối tượng
này là thể hiện từng đối tượng thành bộ ba (i, c, v), trong đó:
 i là xác định đối tượng duy nhất (OID).
 c là thiết lập kiểu đối tượng ( nghĩa là nó trình bày cách thức xây dựng
trạng thái của đối tượng) .
 v là trạng thái của đối tượng (hay giá trị hiện hành).
Về nguyên tắc, mô hình dữ liệu sẽ bao gồm một số thiết lập kiểu đối tượng. Ba
thiết lập kiểu đối tượng cơ bản nhất là element, mẫu tin và set. Những thiết lập kiểu
đối tượng thông dụng khác gồm có list, gói, array . Thiết lập kiểu đối tượng phần tử
được dùng để biểu diễn tất cả các giá trị phân tử, như là interger, số thực, chuỗi ký
tự, lôgic và các kiểu dữ liệu cơ bản bất kỳ khác mà hệ thống hỗ trợ trực tiếp.
Trạng thái v của một đối tượng (i, c, v) được thể hiện dựa trên thiết lập kỉểu
đối tượng c :
 Nếu c = element, thì trạng thái (giá trị) v là giá trị của phần tử thuộc miền
giá trị cơ bản do hệ thống hỗ trợ.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 16-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Nếu c = set, thì trạng thái v là tập hợp của các xác định đối tượng { i1 , i2 ,
…, in }, là những OID trong tập các đối tượng, về nguyên tắc, là cùng
kiểu.
 Nếu c = mẩu tin trạng thái v là một mẩu tin có dạng < a1 : i1 , a 2 : i2 ,
…, a n : in >, trong đó mỗi a j là tên thuộc tính và mỗi i j là một OID.
 Nếu c = list, giá trị v là một danh sách có thứ tự [ i1 , i2 , in ] của OID của
các đối tượng cùng kiểu. Một danh sách tương đương với một set, chỉ
khác là các OID trong danh sách được xếp thứ tự , vì vậy chúng ta có thể
tham chiếu đến đối tượng thứ nhất, thứ hai, hoặc thứ j trong danh sách.
 Nếu c = array, trạng thái của đối tượng là mảng một chiều gồm các OIDS
Điểm khác biệt chính giữa mảng và danh sách là danh sách có số phần tử tuỳ ý,
trong khi mảng về nguyên tắc phải có kích cỡ tối đa. Điểm khác biệt giữa set và bag
là tất cả phần tử trong một set phải phân biệt trong khi một bag có thể có nhiều phần
tử trùng nhau.
Thiết lập kiểu đối tượng set, List, ArrayList, và bag được gọi là kiểu tập hợp
(collection), để phân biệt chúng với các kiểu cơ bản và kiểu mẩu tin.Đặc điểm chính
của kiểu tập hợp là trạng thái của đối tượng là tập hợp các đối tượng không theo thứ
tự (như là set hoặc bag) hay xếp theo thứ tự (như là danh sách hay mảng.Thiết lập
kiểu đối tượng mẩu tin thường được gọi là kiểu cấu trúc, vì nó tương ứng với kiểu
strut trong ngôn ngữ lập trình C và C++.
Ví dụ : Một đối tượng phức tạp
Một đối tượng là một bộ ba (OID, thiết lập kiểu đối tượng, trạng thái) và thiết
lập kiểu đối tượng có sẵn là phần tử, set, mẩu tin, list. Kí hiệu i1,i2,i3,… để thay thế
OID do hệ thống phát sinh duy nhất. Xét các đối tượng sau:
o1=(i1,element,’Cần thơ’)
o2=(i2,element,’Huế’)
o3=(i3,element,’TP HCM’)
o4=(i4,element,5)
o5=(i5,element,’Nghiên cứu’)
o6=(i6,element,’1985-09-02’)
o7=(i7,set,{i1, i2, i3})
o8=(i8,mẩu tin,< departmentName:i5, departmentId:i4, Manager:i9, address:i7, employee:i10,
project:i11>)
o9=(i9,mẩu tin,<managerName:i12, startDate:i6>)
o10=(i10,set,{ i12, i13, i14})
o11=(i11,set,{ i13, i14, i15})
o12=(i12,mẩu tin,<name:i18, firstname :i19, departmentId:i8,.., salary:i26,departmentId:i8)
……………….
Sáu đối tượng đầu tiên (o�1-o6) ở đây biểu diễn những giá trị phần tử. Có
nhiều đối tượng tương đương, mỗi cái có một giá trị hằng phân biệt trong ODB.
Đối tượng o�7 là một đối tượng có giá trị là set được thể hiện dưới dạng tập các địa
điểm của Department số 5; bộ {i1, i2, i3} tham chiếu đến các đối tượng phần tử có giá
trị {‘Cần thơ’,’Huế’,’TP.HCM’}. Đối tượng o8 là đối tượng có giá trị mẩu tin thể hiện
chính Department số 5, có cá thuộc tính departmentName,departmentId,address,…

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 17-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hai thuộc tính departmentName,departmentId lấy đối tượng phần tử o5 và o4 làm


giá trị, thuộc tính MGR lấy đối tượng mẩu tin o9 làm giá trị, trong đó lần lượt có hai
thuộc tính. Giá trị của thuộc tính Employee của o�8 là một đối tượng set có OID=i10,
giá trị của nó là tập gồm các OID của những Employee đang làm việc trong
Department(đối tượng i12, thêm i13, và i14).Tương tự giá trị của thuộc tính project
của o8 là một đối tượng set có OID=i11, giá trị của nó là tập gồm các OID của những
project dưới quyền điều hành của Department số 5 (đối tượng i15,i16,i17).
Trong mô hình này, một đối tượng có thể được thể hiện như một cấu trúc đồ thị
được xây dựng bằng cách áp dụng các thiết lập kiểu đối tượng dưới dạng đệ quy.
Đồ thị trình bày một đối tượng oi được cấu tạo bằng cách:
 Tạo một nút cho chính đối tượng oi.
 Nút oi được đánh dấu bằng OID và thiết lập của đối tượng c.
Khi đó lại tạo một nút trong biểu đồ cho mỗi giá trị phần tử cơ bản. Nếu đối
tượng oi có một giá trị phần tử, thì sẽ vẽ một cung trực tiếp từ nút thể hiện oi
đến nút thể hiện giá trị cơ bản của nó. Nếu giá trị của đối tượng có cấu trúc thì
vẽ một cung trực tiếp từ nút đối tượng đến nút thể hiện giá trị được cấu trúc.
Hình 1.1.1 minh họa biểu đồ cho ví dụ đối tượng Department o8.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 18-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hình 1.1 Đối tượng phức hợp Department dưới dạng đồ thị

1.3.3. Thiết lập kiểu đối tượng


Ngôn ngữ định nghĩa đối tượng (ODL) thiết lập các đối tượng kiểu đối tượng
có sẵn dùng để định nghĩa các kiểu đối tượng cho một ứng dụng CSDL cụ thể.
Trong phần 2.2, chúng ta sẽ mô tả tiêu chuẩn ODL của ODMG, nhưng trước tiên
chúng ta sẽ giới thiệu từ các khái niệm trong phần này thông qua các chú giải để dễ
hiểu hơn. Thiết lập kiểu đối tượng dùng để định nghĩa cấu trúc dữ liệu cho một lược

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 19-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

đồ ODB. Trong mục 1.4 chúng ta sẽ thấy cách thức kết hợp định nghĩa của các hoạt
động (hay phương thức) vào lược đồ ODB.
Hình 1.2 minh họa cách thức khai báo kiểu Employee và Department ứng với
các bản sao đối tượng minh họa trong hình 1.1. ở hình 1.2, kiểu Data được định
nghĩa như là một mẫu tin thay vì là một giá trị phần tử như trong hình 1.1. Chúng ta
sử dụng mẩu tin, bộ và danh sách cho thiết lập kiểu đối tượng và các kiểu dữ liệu
chuẩn sẵn (interger, chuỗi, số thực, v.v...) cho các kiểu phần tử.

Define type Employee :


tuple(
firstname : string;
lastname : string;
name : string;
birthday : Date;
address : string;
sex : char;
salary : double;
manager : employee;
department : Department;
);
Define type Date :
tuple(
year : Integer;
month : Integer;
day : Integer;
);
Define type Department :
tuple(
departmentName : string;
manager :tuple(managerName:Employee;startDate:Date;);
locations : set(string);
employees : set(Employee);
projects : set(Project);
);

Hình 1.2. Thiết lập kiểu đối tượng


Các thuộc tính tham chiếu các đối tượng khác – như Department của
Employee hay project của Department – là những tham chiếu cơ bản đến những đối
tượng khác và do đó nó đóng vai trò thể hiện mối quan hệ giữa các kiểu đối tượng.
Ví dụ, thuộc tính Department của Employee thuộc kiểu Department (nơi các
Employee đang làm việc). Giá trị thuộc tính này là OID cho một đối tượng
Department cụ thể. Mối quan hệ hai ngôi được biểu diễn theo một hướng, hoặc có
thể có tham chiếu ngược. Tham chiếu ngược duyệt qua mối quan hệ dễ dàng theo
hai hướng.
Ví dụ, thuộc tính Employee của Department có giá trị là một set gồm các tham
chiếu (nghĩa là tập gồm các OID) đến các đối tượng thuộc kiểu Employee. Trong
phần 2 chúng ta sẽ thấy cách thức mà tiêu chuẩn ODMG 3.0 cho phép khai báo

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 20-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

tường minh một nghịch đảo như là những thuộc tính mối quan hệ để bảo đảm tham
chiếu nghịch đảo là nhất quán.

1.4. Đóng gói các hoạt động,phương thức và tính bảo toàn
Khái niệm đóng gói là một trong những đặc điểm chính của các ngôn ngữ và
hệ thống OO. Nó còn liên quan đến kiểu dữ liệu khái quát và ẩn giấu thông tin
trong ngôn ngữ lập trình. Các hệ thống và mô hình CSDL ra cho người sử dụng và
các chương trình bên ngoài, các mô hình truyền thống này, các hoạt động CSDL
chuẩn đều được áp dụng lên đối tượng của tất cả các kiểu. Ví dụ, trong mô hình
quan hệ các hoạt động chọn lọc, chèn mới xóa và chỉnh sửa mẩu tin đều tổng quát
và có thể áp dụng cho bất kỳ quan hệ nào trong CSDL.
Quan hệ và các thuộc tính của nó đều được thể hiện rõ cho người sử dụng và
các chương trình bên ngoài đang truy cập đến quan hệ bằng cách sử dụng những
thao tác này.

1.4.1. Mô tả xử lý của đối tượng thông qua các hoạt động của lớp
Khái niệm ẩn giấu thông tin và đóng gói có thể áp dụng lên ODB. Mục đích
chính là để định nghĩa hành vi của kiểu đối tượng dựa trên các thao tác áp dụng ra
bên ngoài đối với các đối tượng thuộc kiểu đó. Cấu trúc bên trong của đối tượng
được che đi và đối tượng chỉ được truy cập thông qua một số thao tác dùng để tạo
mới (chèn) hay hủy bỏ (xóa) đối tượng; các thao tác khác nữa dùng để chọn lọc
nhứng trạng thái đối tượng hoặc áp dụng một số phép tính toán. Còn có những thao
tác tiến hành việc tổ hợp chọn lọc, tính toán và cập nhật.
Nhìn chung, việc thực hiện một thao tác có thể được xác định trong ngôn ngữ
lập trình tổng quát để cung cấp tính mềm dẻo và thế mạnh khi định nghĩa các thao
tác .
Người sử dụng bên ngoài của đối tượng chỉ nhận biết giao diện của kiểu đối
tượng, giao diện này định nghĩa tên và những thông số (tham chiếu) của mỗi thao
tác. Việc thực hiện bị che đi không cho người sử dụng bên ngoài biết; bao gồm định
nghĩa của các cấu trúc dữ liệu bên trong của đối tượng và phần thực hiện của các
thao tác truy cập những cấu trúc này. Trong thuật ngữ oo, phần giao diện của mỗi
thao tác được gọi là chữ ký và phần thực hiện thao tác gọi là phương thức.
Về nguyên tắc một phương thức được kích hoạt bằng cách gửi một thông điệp
đến đối tượng để thi hành phương thức tương ứng. Lưu ý rằng, trong lúc thi hành
phương thức, một thông điệp nữa có thể được gửi đến một đối tượng khác và cơ chế
này được dùng để trả về giá trị từ các đối tượng đến môi trường bên ngoài hay các
đối tượng khác.
Đối với ứng dụng CSDL , việc đòi hỏi tất cả các đối tượng đều phải được đóng
gói là khá khắt khe. Có thể giảm nhẹ bớt bằng cách chia cấu trúc đối tượng thành
những thuộc tính được biểu hiện và những thuộc tính ẩn giấu (những biến bản sao).
Thuộc tính biểu hiện có thể được truy cập trực tiếp bằng cách đọc ra nhờ các toán tử
bên ngoài hoặc những ngôn ngữ truy vấn cao cấp. Các thuộc tính ẩn giấu của đối
tượng được đóng gói hoàn toàn và chỉ được truy cập thông qua các thao tác định
nghĩa sẵn.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 21-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hầu hết các OODBMS sử dụng những ngôn ngữ truy vấn cao cấp để truy cập
các thuộc tính biểu hiện. Trong phần 2 chúng ta sẽ mô tả ngôn ngữ truy vấn OQL
được xem là một ngôn ngữ truy vấn cao cấp chuẩn cho các ODB.
Trong hầu hết trường hợp, các thao tác cập nhật trạng thái của một đối tượng
đều được đóng gói. đó là cách định nghĩa ngữ nghĩa cập nhật của đối tượng, biết
rằng trong nhiều mô hình dữ liệu OO một vài rằng buộc toàn vẹn được định nghĩa
sẵn trong lược đồ. Mỗi kiểu đối tượng có những ràng buộc toàn vẹn được lập trình
sẵn trong những phương thức để tạo mới, xóa và cập nhật các những đối tượng bằng
cách lập trình rõ ràng để kiểm tra việc vi phạm ràng buộc và xử lý những lỗi gây ra.
Khi đó tất cả các thao tác cập nhật được thực hiện bằng các thao tác đã được
đóng gói . Gần đây hơn, ODL của tiêu chuẩn ODMG 3.0 cho phép việc mô tả một
số ràng buộc như là khóa và mối quan hệ nghịch đảo (toàn vẹn tham chiếu) sao cho
hệ thống có thể áp dụng những ràn buộc này một cách tự động .

Define class Employee :


type tuple(
firstname : string;
lastname : string;
name : string;
birthday : Date;
address : string;
sex : char;
salary : double;
manager : employee;
department : Department;);
operations
age :integer;
createEmployee :Employee;
deleteEmployee :boolean;
updateEmployee :boolean;
end Employee;
Define class Department :
type tuple(
departmentName : string;
manager :tuple(managerName:Employee;startDate:Date;);
locations : set(string);
employees : set(Employee);
projects : set(Project);
);
operations
getNoOfEmployee :integer;
insertDepartment :Department;
deleteEmployee :boolean;
assignEmployee :boolean;
end Department;

Hình 1.3. Thao tác và định nghĩa

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 22-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Thuật ngữ lớp class thường dùng để nhắc đến định nghĩa của đối tượng, cũng
như định nghĩa các thao tác của kiểu đó. Hình 1.3 trình bày cách mở rộng định
nghĩa kiểu của hình 1.2 bằng những thao tác để định nghĩa lớp. Số lượng các thao
tác được khai báo trong mỗi lớp và chữ ký (giao diện) của mỗi thao tác được bao
hàm trong mỗi lớp. Phương thức (việc thực hiện) của mỗi thao tác phải được định
nghĩa ở một nơi khác bằng cách sử dụng ngôn ngữ lập trình.
Những thao tác điển hình bao gồm thao tác thiết lập đối tượng, dùng để thiết
lập một đối tượng mới và thao tác hủy bỏ đối tượng, dùng để hủy bỏ đối tượng. Các
thao tác sửa đổi đối tượng cũng được khai báo để thay đổi các thuộc tính khác nhau
của đối tượng, những thao tác khác tìm kiếm thông tin về đối tượng.
Về nguyên tắc, thao tác được áp dụng với đối tượng thông qua sử dụng dấu
chấm. Ví dụ, nếu d là một tham chiếu đến đối tựong Department, chúng ta có thể
kích hoạt một thao tác như là getNoOfEmployee bằng cách viết d.
getNoOfEmployee. Tương tự như thế bằng cách viết d.deleteDepartment, đối tượng
mà d tham chiếu đến bị hủy bỏ (xóa). Chỉ trừ một ngoại lệ là thao tác thiết lập đối
tượng, trả về một tham chiếu đến đối tượng Department mới. Do đó, thông thường
nó sẽ có một tên mặc định cho thao tác tham chiếu đến các thuộc tính của đối
tượng.

1.4.2. Mô tả tính bảo toàn của đối tượng thông qua cách đặt tên và cách tiếp
cận
Một hệ OODBMS thường đi kèm với một số ngôn ngữ lập trình hướng đối
tượng (OOPL). OOPL được dùng để mô tả việc thực hiện phương thức cũng như
những mã nguồn ứng dụng khác. Về nguên tắc, một đối tượng được tạo ra bằng
cách thực thi chương trình ứng dụng, bằng cách kích hoạt thao tác thiết lập đối
tượng. Không nhất thiết là tất cả các đối tượng đều được lưu trữ vĩnh viễn trong
CSDL. Các đối tượng tức thời tồn tại trong lúc thực thi chương trình và biến mất
mỗi khi chương trình kết thúc. Các đối tượng bảo toàn được lưu trong CSDL và vẫn
tồn tại khi chương trình kết thúc. Cơ thế điển thình để biến các đối tượng thành bảo
toàn gọi là đặt tên và tiếp cận.
Cơ chế đặt tên cung cấp cho đối tượng một tên gọi bảo toàn duy nhất để thông
qua đó, có thể lấy được đối tượng từ chương trình này và những chương trình khác.
Tên này được cung cấp thông qua một câu lệnh hay một thao tác cụ thể trong
chương trình. Toàn bộ tên cấp cho đối tượng phải duy nhất trong một CSDL cụ thể.
Vì vậy, những đối tượng bảo toàn có đặt tên được sử dụng như những đầu vào
CSDL mà thông qua đó người sử dụng và ứng dụng có thể bắt đầu truy cập CSDL.
Dĩ nhiên, đặt tên cho tất cả các đối tượng trong một CSDL lớn gồm hàng nghìn
đối tượng là điều phi thực tế, nên điều hầu hết các đối tượng được chuyển thành bảo
toàn bằng cách dụng cơ chế thứ hai, gọi là sự tiếp cận. Cơ chế tiếp cận hoạt động
bằng cách biến đổi đối tượng trở thành dễ tiếp cận từ đối tượng bảo toàn khác. đối
tượng B được xem là có thể tiếp cận được đối tượng A nếu một trình tự các tham
chiếu trong biểu đồ đối tượng nối từ đối tượng A đến đối tượng B. Ví dụ, tất cả đối
tượng trong hình 1.1 đều có thể tiếp cận được từ đối tượng o8; do đó, nếu như o8

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 23-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

được chuyển thành bảo toàn, tất cả những đối tượng khác trong hình 1.1 đều trở
thành bảo toàn.
Thông thường trong các ứng dụng CSDL, mỗi kiểu hoặc kiểu con sẽ có một
extent liên quan, nắm giữ tập hợp các đối tượng bảo toàn của kiểu/ kiểu con đó.
Trong trường hợp này, ràng buộc là mọi đối tượng trong một extent ứng dụng với
một kiểu con cũng phải là thành viên của extent ứng với kiểu cha của nó.
Một số hệ CSDL hướng đối tượng có kiểu extent của nó chứa tất cả các đối
tượng trong hệ thống (Được gọi là các object trong mô hình ODMG) . Sau đó việc
phân loại tiến hành bằng cách gán các đối tượng cho các kiểu con mang nhiều ý
nghĩa đối với ứng dụng, tạo ra cây phân cấp kiểu hay cây phân câp lớp cho hệ
thống. Tất các extent cho các lớp do hệ thống định nghĩa hoặc người sử dụng định
nghĩa là những tập con của extent ứng với lớp OBJECT, trực tiếp hoặc gián tiếp.
Trong phần lớn các hệ thống hướng đối tượng, có sự khác biệt giữa các đối
tượng tức thời, đối tượng bảo toàn và các tập hợp. Một tập hợp bảo toàn là tập hợp
các đối tượng lưu trữ vĩnh viễn trong CSDL và do đó, được truy cập và chia sẻ bởi
rất nhiều chương trình. Một tập hợp tức thời chỉ tồn tại tạm thời trong thời gian thi
hành chương trình nhưng không được lưu trữ lại khi chương trình kết thúc. Ví dụ,
một tập hợp tức thời được tạo ra trong chương trình để giữ kết quả của câu truy vấn
nhằm chọn lọc một số đối tượng từ tập hợp bảo toàn và sao chép các đối tượng đó
vào tập hợp tức thời.
Tập hợp tức thời nắm giữ cùng kiểu đối tượng như tập hợp bảo toàn. Sau đó,
chương trình có thể thao tác với các đối tượng trong tập hợp tức thời và mỗi khi
chương trình chấm dứt, tập hợp tức thời cũng thôi tồn tại. Nói chung, vô số tập hợp-
tức thời hay bảo toàn - đều chứa những đối tượng cùng kiểu.
Thiết lập kiểu đối tượng cho phép trạng thái của đối tượng là tập hợp của các
đối tượng . Do đó, những đối tượng trong tập hợp có kiểu dựa trên thiết lập kiểu set
có thể định nghĩa một số tập hợp – ứng với từng đối tượng. Những đối tượng có giá
trị là set bản thân chúng cũng là những thành viên của một tập hợp khác. Điều này
nói đến lược đồ phân loại đa cấp, trong đó một đối tượng trong tập hợp có trạng thái
là tập hợp các đối tượng của một lớp khác.

1.6. Đối tượng phức hợp


Động cơ chủ yếu dẫn đến sự phát triển của các hệ thống hướng đối tượng là nhu
cầu thể hiện các đối tượng phức hợp.
Có hai kiểu đối tượng phức hợp chính:
 Có cấu trúc.
 Không có cấu trúc.
Một đối tượng phức hợp có cấu trúc được cấu tạo từ các thành phần và được định
nghĩa bằng cách áp dụng các thiết lập kiểu đối tượng có sẵn theo cách đệ quy ở
nhiều mức khác nhau.
Một đối tượng phức hợp không có cấu trúc về nguyên tắc là một kiểu dữ liệu đòi
hỏi dung lượng lưu trữ lớn, như kiểu dữ liệu thể hiện một đối tượng hình ảnh hay
khối văn bản.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 24-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Một mối quan hệ kế thừa khác, gọi là extents và được chỉ ra bằng từ khóa
extents , được dùng để kế thừa vừa trạng thái vừa hành vi một cách chặt chẽ giữa
các lớp. Trong một kế thữa extents cả kiểu cha và con đều là lớp. Người ta không
cho phép đa kế thừa hành vi, do đó một giao diện có thể kế thừa hành vi từ một số
giao diện khác. Một lớp còn có thể kế thừa hành vi từ một vài giao diện thông qua
“:”, ngoài việc kế thừa hành vi và trạng thái từ không quá một lớp thông quan
extents .

2.1.5. Extents, khóa, đối tượng chế tạo


Trong mô hình đối tượng ODMG 3.0, nhà thiết kế CSDL khai báo một extent
cho một kiểu đối tượng bất kỳ được định nghĩa thông qua một khai báo lớp.Extent
có tên cho trước và nó sẽ chứa tất cả các đối tượng bảo toàn của lớp đó. Do đó,
extent hoạt động như một đối tượng set nắm giữ đối tượng bảo toàn của lớp.
Một lớp với một extent có một hay nhiều khóa. Một khóa bao gồm một hoặc
nhiều đặc điểm (thuộc tính hay các mối quan hệ) trong đó,giá trị của chúng bị bắt
buộc là duy nhất đối với mỗi đối tượng trong extent.
Kế đến là khái niệm object factory – một đối tượng dùng để phát sinh hay tạo
ra những đối tượng riêng biệt thông qua các thao tác của nó. Một số giao diện của
các đối tượng object factory thuộc về mô hình đối tượng ODMG 3.0 . Giao diện
ObjectFactory có một thao tác riêng, new() trả về một đối tượng mới với objectId.
Bằng cách kế thừa giao diện này, người sử dụng có thể tạo giao diện cho các đối
tượng object factory của riêng họ cho từng kiểu đối tượng do người sử dụng định
nghĩa (hay đối tượng phần tử) và người lập trình viên có thể thực hiện các thao tác
new() khác nhau cho mỗi kiểu đối tượng.

2.2. Ngôn ngữ định nghĩa đối tượng


Sau tổng quan về mô hình hướng đối tượng ODMG ở phần trước, đến đây ta
sẽ vận dụng những khái niệm này để tạo ra lược đồ cơ sở dữ liệu đối tượng bằng
cách sử dụng ngôn ngữ định nghĩa đối tượng ODL. ODL được thiết kế để hỗ trợ các
thiết lập kiểu đối tượng theo ngữ nghĩa của mô hình đối tượng ODMG và độc lập
với bất kỳ ngôn ngữ lập trình nào. Nó được dùng chủ yếu để tạo ra các đặc tả của
đối tượng – đó là lớp và giao diện.
Vì vậy ODL không phải là một ngôn ngữ lập trình đầy đủ, người sử dụng chỉ
có thể chỉ ra một lược đồ CSDL trong ODL độc lập với bất kỳ ngôn ngữ lập trình
nào, sau đó sử dụng những kết hợp với ngôn ngữ cụ thể để chỉ ra các thiết lập kiểu
của ODL được ánh xạ như thế nào với các thiết lập kiểu trong ngôn ngữ lập trình cụ
thể như là C++, java, smalltalk.

2.3. Tổng quan về kết hợp với ngôn ngữ java


Kết hợp ngôn ngữ java chỉ ra cách thức anh xạ từ các thiết lập kiểu ODL vào
thiết lập kiểu java. Việc này được thực hiện nhờ một thư viện lớp của java chuyên
cung cấp các lớp và những hoạt động để thực hiện các thiết lập kiểu của ODL.
Trong ngôn ngữ thao tác đối tượng OML rất cần thiết để chỉ ra cách thức lấy về và
thao tác với các đối tượng CSDL bên trong mộ chương trình java và nó dựa trên cú

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 25-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

pháp và ngữ nghĩa của ngôn ngữ lập trình java. Ngoài những kết hợp ODL/OML,
tập các thiết lập kiểu gọi là các pragma vật lý được định nghĩa để cho các lập trình

3.2. Ánh xạ đối tượng – quan hệ


Trước tiên, như chúng ta biết, sự liên kết giữa các lớp trong sơ đồ ODB được
biểu diễn thông qua các thuộc tính tham chiếu và thuộc tính tham chiếu ngược.
Trong sơ đồ RDB, sự liên kết giữa các quan hệ được biểu diễn thông qua các khóa
ngoài. Do vậy, để tránh dư thừa, trước tiên, chúng ta xem xét các thuộc tính tham
chiếu và xóa các thuộc tính tham chiếu thừa không cần thiết trong ánh xạ.
Xét các trường hợp sau:
(i) Class C tuple(… , A: C ’),Class C’ tuple( … ,B: C, …)
(ii) Class C tuple(… , A: C ’),Class C’ tuple( … ,B: set(C), …)
(iii) Class C tuple(… , A: set(C ’), …Class C’ tuple( … ,B: set(C), …)
(iv) Class C tuple(… , A: set(tup (c’ : C’, X : T���������x), …’),
Class C tuple(… , B: set(tup (c’ : C’, X : T���������x), …’),
Nếu các trường hợp trên xuất hiện, có nghĩa là A và B là các thuộc tính thạm
chiếu và thuộc tính tham chiếu ngược đối với C và C’ thì ta xóa B trong C’.

3.2.1. Ánh xạ các lớp thành các quan hệ


Bây giờ chúng ta ánh xạ mỗi một lớp của sơ đồ CSDLHĐT thành một quan hệ
của sơ đồ CSDLQH tương ứng.
Xét lớp C, vì C có thể có nhiều khóa tối thiểu, để đơn giản, trong ánh xạ trình
bày sau đây, chúng ta sử dụng OID-C là khóa chính của C. Cấu trúc của quan hệ R
được xác định như sau :
Trước tiên OID-C là khóa chính của C được ánh xạ thành thuộc tính của OID-
C: Õ(C) trong quan hệ R. Tiếp theo chúng ta lần lượt ánh xạ các thuộc tính của C
sang quan hệ R.
Giả sử A: t là thuộc tính của C có kiểu t. A : t sẽ được ánh xạ thành các thuộc
tính của R như sau:
Theo định nghĩa hình thức của sơ đồ CSDLHĐT, chúng ta có các trường hợp
sau:
(i) t - kiểu nguyên tố: interger, string, bool, float.
A:tÞA:t
(ii) t- C’ : tên lớp.
A : t Þ OID_C’ : Õ(C’)
(iii) t - tuple(A1 : T1, … , Ak : Tk�): kiểu bộ.
A : t Þ A 1 : T 1, … , A k : T k
Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 26-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

(iv) t - set(t’) : kiểu tập.


A : t Þ A’ : t’

Hình 2.3. Transaction là giải pháp từ ngoài constrained object set


 Định nghĩa 2: C=S,I là tập các đối tượng bị ràng buộc. một giao tác T là
lời triệu gọi phương thức M của đối tượng nào đó trong S từ một tác nhân
hay đối tượng mà không thuộc S. Giao tác T thất bại nếu khi M kết thúc,
tồn tại một ràng buộc toàn vẹn cj thuộc I không được thỏa mãn.
Một chú ý là các phương thức không chỉ được gọi từ các giao tác tác động trực
tiếp mà có thể bao gồm cả việc được gọi bởi giao tác gọi bởi các giao tác khác.

1.4. Biểu thức ràng buộc toàn vẹn


Hiển nhiên là ràng buộc toàn vẹn áp đặt lên các thuộc tính của đối tượng trong
CSDL bởi vì các thuộc tính xác định miền không gian của ODB.
Chẳng hạn chúng ta cần giới hạn thuôc tính Age trong lớp employee là 1 số
nguyên trong khoảng từ 0 đến 120. Một dạng thể hiện của ràng buộc này có thể như
sau:
∀e∈employeee.Age>0 Ù e.Age<120 (1)

Cách thể hiện ràng buộc này dế đọc và dễ hiểu. Tuy nhiên, cách thể hiện này
có hai vấn đề lớn .
 Vấn đề lớn nhất là nó xâm phạm luật đóng gói của các thuộc tính trong đối
tượng. Một thuộc tính chỉ có thể truy cập tới bởi các phương thức của đối
tượng chứa các thuộc tính đó.
 Vấn đề thứ hai là các phép toán so sánh (< , >, =) chỉ được áp dụng với
những kiểu dữ liệu nguyên thủy. Không thể so sánh với các đối tượng phức
tạp như các bộ, các cấu trúc dữ liệu lồng
Xây dựng một hệ thống các ràng buộc với việc đơn giản biểu thức một với khả
năng sử dụng các phép toán xây dựng trên nó (chồng toán tử), không truy cập trực
tiếp các thuộc tính. Sử dụng kết quả trả về của hàm phương thức thay vì giá trị của
thuộc tính. Điều này là ít phụ thuộc vào cấu trúc bên trong của đối tượng. Thay vào
đó, ràng buộc được áp đặt vào vai trò bên ngoài của đối tượng (external behavior of
object).

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 27-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Ví dụ giới hạn tuổi của nhân viên (biểu thức 1) . Nhiều ứng dụng không lưu
tuổi như một thuộc tính thay vào đó là lưu lại giá trị năm sinh. Nếu áp đặt ràng buộc
lên các thuộc tính thì cùng một mục đính, ràng buộc được thể hiện khác nhau khi
cấu trúc đối tượng khác nhau. Cách tốt nhất là lấy giá trị tuổi từ phương thức
GetAge của đối tượng.
Những người cách tân muốn triển khai db4o database engine tại những giữa
những thiết bị điều khiển bằng dữ liệu phát sinh và những ứng dụng về cache user-
generated và client-side data, cho phép những đặc tính mới hấp dẫn và đạt được sự
thực hiện và tính linh hoạt chưa hề thấy.

Hình 3.1.1. One-Line-of-Code Database loại trừ Complexity


Bí mật của db4o là sự thành công, sự tích hợp dễ dàng với đối với java và
.NET. Việc lưu trữ những đối tượng dữ liệu chính xác với cách mà họ định nghĩa
bởi ứng dụng. Bởi vậy mà db4o dễ dàng hợp nhất vào trong ứng dụng và thực hiện
những nhiệm vụ đáng tin cậy .
Dưới đây là một số đặc tính của cơ sở dữ liệu hướng đối tượng db4o.
Platforms

- J2EE.
- J2SE.
- J2ME with reflection: CDC, PersonalProfile, Symbian,
JavaFX Mobile and Zaurus; on demand(2): J2ME w/o
Java reflection (CLDC and MIDP), including RIM/Blackberry
and Palm OS.
- Android (Open Handset Alliance).
- Harmony.
- Supported Frameworks: Spring, OSGi, Tomcat, JPOX.
- .NET Framework (1.0(1), 2.0, 3.0, 3.5).
- .NET Compact Framework 1.0(1), 2.0.
- Windows (XP, Vista).
.NET
- Windows Mobile / PocketPC.
- Mono(1).
- Supported Frameworks: Castle, Eiffel, Spring.net.
- Connect to .NET server with Java client.
Cross-platform
- Connect to Java server with .NET client.

Languages
Java JDK 1.1.x - JDK 6.0
. All managed .NET languages (C#, VB.NET,
.NET
ASP.NET, Boo, Managed C++ etc.)

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 28-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Commands

Sessions JDK 1.1.x - JDK 6.0


Database files Create, open, close, and delete
Transactions Commit, and Rollback

Scalability and Performance

Performance benchmark Up to 55x faster than Hibernate/MySQL


- Stores 200,000 objects/second
Examples of Scalability
- Stores 300,000 objects on a PDA
In Memory Mode Available

Client-side Single-process execution available

Server-side Server-side query execution available

DB-aware Collections Available


Object Caching Available
Pagination erver-side cursors (lazy queries)
- BTree field indexes
Indexing
- BTree query processor

1.1.Các loại lớp trong hệ thống đối tượng


Class Types :Một hệ thống hướng đối tượng được xây dựng từ những lớp có ảnh
hưởng và tương tác với nhau. Một số thực thể class trong hệ thống mà bao gồm các
thực thể trừu tượng hóa trong thế giới thực và những lớp khác thì đảm nhiệm vai trò
khác trong hệ thống. Các loại class được chia thành :
 Entity classes: Đây là mô hình thực thể hay dữ liệu trong hệ thống.
 Boundary classes : Đây thực chất cung cấp các giao diện để tương tác giữa hệ
thống với môi trường bên ngoài, thông thường là giao diện người dùng, giao
diện có thể là các GUI Component hay web page.
 Control classes : Lớp điều khiển những luồng trong hệ thống, điển hình là
đưa đầu vào từ giao diện người dùng và sử dụng những lớp thực thể để thực
hiện ‘business logic’ và lần lượt cung cấp giao diện với kết quả mà người
dùng sử dụng trả lại.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 29-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

1.2.Object Indentity
Trong cơ sở dữ liệu đối tượng và quan hệ đưa nhưng cách tiếp cận khác về ý
tưởng indentity. Indentity xác định những thực thể được phân biệt với một thực thể
khác. Trong cơ sở dữ liệu quan hệ, thì thực thể được indentity bởi khóa chính và
khóa ngoại của dữ liệu. Những mối quan hệ được sử dụng trong những câu truy vấn
như yêu cầu join giữa hai table với nhau. Indentity phụ thuộc vào giá trị của trường
khóa.
Trong sư tương phản thì một OODBMS lưu trữ một định danh đối tượng
OID bên trong mỗi đối tượng. OID xác định một đối tượng duy nhất trong
OODBMS và cũng được dùng để chỉ tham chiếu tới một đối tượng khác tham chiếu
tới đối tượng
Với doang nghiệp : Sử dụng hệ thống để cập nhật các sản phẩm, đưa ra các
sản phẩm khuyến mãi và giảm giá đối với từng dòng sản phẩm. Ngoài ra còn cố hệ
thống tìm kiếm để phục vụ quá trình cập nhật dữ liệu về các sản phẩm.
Với khách hàng : Tìm kiếm sản phẩm mà họ muốn mua, biết được các thông
tin chi tiết về sản phẩm, mua các mặt hàng, đăng ký là thành viên của hệ thống và
gửi các thông tin phản hồi về sản phẩm đến hệ thống. Ngoài ra nếu khách hàng đã là
thành viên của hệ thống thì khách hàng có các chức năng như thay đổi thông tin cá
nhân, thay đổi địa chỉ giao hàng, thay đổi mật khẩu, xem các hóa đơn mà mình đã
mua sản phẩm trong hệ thống.

Đây là một bài toán đòi hỏi nhiều nghiệp vụ khác nhau nhưng do hạn chế về
thời gian và kinh nghiệp thiết kế hệ thống còn thiếu mới chỉ dừng lại ở một số
module nhất định. Hệ thống chỉ bao gồm các chức năng của một site giới thiệu sản
phẩm, bán hàng và có một số nghiệp vụ khác nhau, nên hệ thống xây dựng chưa đáp
ứng được một số nghiệp vụ đó.
3. Phân tích bài toán ‘bàn hàng online-laptop’
Trước khi phân tích và thiết kế chương trình thì phải xác định được các chức
năng mà hệ thống cần xây dựng và ai là người dùng trong hệ thống, đầu tiên ta phân
tích yêu cầu chức năng của hệ thống.

3.1. Phân tích yêu cầu về chức năng

3.1.1. Đối tượng người dùng và các chức năng


Hệ thống có hai tác nhân chính là quản trị hệ thống và khách hàng.
 Quản trị hệ thống : có vai trò quản lý tài nguyên của hệ thống, kích hoạt
các chức năng của hệ thống hoạt động, quản lý thông tin của khách
hàng và sản phẩm.
 Khách hàng : Có chức năng quản lý thông tin cá nhân, tìm kiếm các sản
phẩm, xem thông tin hóa đơn đã mua hàng.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 30-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hình 3.2.1. Người dùng trong hệ thống

3.1.2. Biểu đồ các Use Case


Biểu đồ use case của toàn hệ thống :

Hình 3.2.7. Use case của admin – quản lý catagory


 Chức năng quản lý customer:

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 31-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Hình 3.2.8. Use case của admin – quản lý customer


 Chức năng quản lý order:
Lớp Manufacturer:
Attribute Type Visibility static final Ý nghĩa
Khóa của đối tượng
manufacturerId Long private false false
manufacturer
name String private false false Tên của nhà sản xuất
description String private false false Mô tả
dateAdded Date private false false Ngày được tạo
lastModified Date private false false Ngày cập nhật
Trang web của nhà sản
url String private false false
xuất
products Set<Product> private false false
MANUFACTURERID String private true true

Bảng 4.1. Lớp Manufacturer

Lớp Catagory:
Attribute Type Visibility static final Ý nghĩa
Khóa đối tượng của
catagoryId Long private false false
category.
name String private false false Tên category

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 32-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

description String private false false Mô tả category


orderNo short private false false Thứ tự của category
parentId long private false false Khóa parentid
isOnline Byte private false false Trạng thái
catagoryParent Set<Catagory> private false false
products Set<Product> private true true

Bảng 4.2. Lớp Catagory


Lớp Product:
Attribute Type Visibility static final Ý nghĩa
productId Long private false false Khóa product
title String private false false Tiêu đề product
intro String private false false Giới thieu
content String private false false Nội dung
image String private false false Đường dẫn ảnh
imageComment String private false false Ghi chú ảnh
price double private false false giá
quantity int private false false Số lượng

Lớp Order:
Attribute Type Visibility static final Ý nghĩa
orderId Long private false false Khóa đối tượng order

customer Customer private false false Khách hàng

deliveryName String private false false Tên người nhận


deliveryCompany String private false false Công ty người nhận
deliveryStreetAddres
String private false false Địa chỉ
s
deliveryPostcode String private false false
deliveryState String private false false
deliveryCountry String private false false
billingName String private false false Tên người giao hàng
billingCompany String private false false
billingStreetAddress String private false false
billingPostcode String private false false
billingCity String private false false

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 33-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

billingState String private false false


billingCountry String private false false
paymentModule String private false false Payment module
paymentMethod String private false false Payment method
lastModified Date private false false Ngày cập nhật
datePurchased Date private false false Ngày mua
Ngày thanh toán hóa
ordersDateFinished Date private false false
đơn
currency Currency private false false Loại tiền
orderStatus OrderStatus private false false Trạng thái hóa đơn
orderProducts Set<OrderProduct> private false false

Bảng 4.6. Lớp Order


Lớp OrderProduct:
Attribute Type Visibility static final Ý nghĩa
orderProductId Long private false false Khóa đối tượng
order Order private false false Hóa đơn
product Product private false false Sản phẩm
price double private false false giá
quantity int private false false Số lượng

finalPrice double private false false Tổng tiền


total double private false false Tổng tiền của hóa đơn

Bảng 4.7. Lớp ProductSpecial


Lớp TaxClass:
Attribute Type Visibility static final Ý nghĩa
taxClassId Long private false false Khóa loại thuế
taxClassTitle String private false false Title loại thuế
taxClassDescription String private false false Mô tả loại thuế
lastModified Date private false false Ngày cập nhật
dateAdded Date private false false Ngày lập
taxRates Set<TaxRate> private false false
products Set<Product> private false false

Bảng 4.8 . Lớp TaxClass


Lớp TaxRate:
Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 34-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Attribute Type Visibility static final Ý nghĩa


taxRateId Long private false false Khóa taxrate
taxPriority int private false false Mức độ
taxRate double private false false tax rate
taxDescription String private false false Mô tả
lastModified Date private false false Ngày cập nhật
dateAdded Date private false false Ngày tạo
taxClass TaxClass private false false Loại thuế
geoZone GeoZone private false false

Bảng 4.9 . Lớp TaxRate


Lớp User:
Attribute Type Visibility static final Ý nghĩa
iduser Long private false false
username String private false false Tên đăng nhập
password String private false false Mật khẩu
gender Byte private false false Giới tính
birthday Date private false false Ngày sinh
email String private false false Địa chỉ email
isActive Byte private false false Trạng thái

Bảng 4.10 . Lớp User


Lớp Group:
Attribute Type Visibility static final Ý nghĩa
groupid Long private false false
groupName String private false false Tên nhóm
groupDescription String private false false Mô tả
isActive Byte private false false Trạng thái

Bảng 4.11 . Lớp Group


Lớp Country:
Attribute Type Visibility static final Ý nghĩa
countryId Long private false false
name String private false false Tên đất nước

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 35-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

isoCode2 String private false false Mã 2 ký tự


isoCode3 String private false false Mã 3 ký tự

Bảng 4.12 . Lớp Country


Lớp Zone:
Attribute Type Visibility static final Ý nghĩa
zoneid Long private false false
zonecode String private false false Tên zone
zonename String private false false Mô tả
country Country private false false Đất nước

Bảng 4.13 . Lớp Zone


Lớp GeoZone:
Attribute Type Visibility static final Ý nghĩa
geoZoneId Long private false false
geoZoneName String private false false
geoZoneDescription String private false false
lastModified Date private false false
dateAdded Date private false false

Bảng 4.13 . Lớp GeoZone

Lớp Currency:
Attribute Type Visibility static final Ý nghĩa
currencyid Long private false false
title String private false false Tên tiền
code String private false false mã
symbolLeft String private false false Ký tự tiền
symbolRight String private false false
decimalPoint String private false false
thousandsPoint String private false false
decimalPlaces String private false false
Value double private false false Giá trị
lastUpdated Date private false false Ngày cập nhật

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 36-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Bảng 4.14 . Lớp Currency


Lớp Customer:
Attribute Type Visibility static final Ý nghĩa
customersId Long private false false Khóa customer
gender Byte private false false Giới tính
firstname String private false false First name
lastname String private false false Last name
birthday Date private false false Ngày sinh
email String private false false Địa chỉ email
password String private false false Mật khẩu
status Byte private false false Trạng thái
ipAddress String private false false Địa chỉ ip khi truy cập
dateLastLogon Date private false false Ngày logon lần cuối
dateAdded Date private false false Ngày tạo tài khoản
addressBooks List<AddressBook> private false false Địa chỉ
orders Set<Order> private false false

Bảng 4.15 . Lớp Customer

4.2. Thiết kế chương trình

4.2.1. Thiết lập môi trường lập trình


Môi trường lập trình được thiết lập cho hệ thống như sau:
- Windows XP, Windows Server 2003
- Web Server : Tomcat 6.0.14 hoặc các phiên bản mới hơn
- Java JDK 1.6
- J2EE 1.4
- IDE Eclipse 3.3 (hoặc MyEclipse 6.0)
- Framework : Struts 2.0.11, Hibernate 3.1, Spring 2.5
- UML Design : JUDE Comunity 5.2.1

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 37-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

4.2.2. Mô hình thiết kế module

Hình 4.2.1. Kiến trúc MVC trong struts 2


Trong đó:
 Tầng View : Đây là thành phần hiển thị phía người dùng, giúp người dùng có
thể tương tác với hệ thống, nó là thể hiện cho chức năng của các module
trong chương trình. Đây là các phần lập trình về JSP, CSS, Javascript, Ajax,
TagLib …
 Tầng Controller : Đây chính là phần nghiệp vụ xử lý của hệ thống. Có thể
nói, đây là “trái tim” của hệ thống. Controller tiếp nhận yêu cầu từ phía
người dùng, lựa chọn điều hướng các action, kết hợp với tầng Model xử lý
các yêu cầu và hiển thị kết quả ở tầng View tới người sử dụng.
 Tầng Model : Đó là các lớp mô hình hóa cơ sở dữ liệu. Đó chings là các lớp
được mô tả trong hệ thống.

4.2.3. Thiết kế tầng Model


Tầng Model bao gồm tất cả các model class được định nghĩa trong hệ thống.
Có nhiệm vụ là lưu trữ dữ liệu.

4.2.4. Thiết kế tầng View


Tầng view bao gồm các file CSS, JavaScript, các file template như JSP,
Velocity hoặc FreeMarker… làm nhiệm vụ giao tiếp giữa người dùng với hệ thống.
Đó là các thành phần giúp người dùng nhập liệu, gửi yêu cầu tới hệ thống và lấy dữ
liệu đã được xử lý ở tầng Controller để trả về phía người dùng. Các file JSP có sử
dụng các thư viện thẻ (TagLig) của Struts2 và JSTL để hỗ trợ xử lý cũng như
hiển thị dữ liệu.

4.2.5. Thiết kế tầng Controller


Tầng Controller được thiết kế bao gồm ba thành phần chính sau :

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 38-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Các lớp DAO (Data Access Object) : Đây là các lớp truy xuất dữ liệu từ cơ
sở dữ liệu thực dựa trên các đối tượng JavaBean đã được ánh xạ quan hệ (là
tầng dưới cùng gần Database nhất). Việc truy xuất dữ liệu bao gồm các thao
tác CRUD (Create,Retrive,Update,Delete) và một số thao tác nghiệp vụ
khác. Các lớp này thực thi với sự hỗ trợ của ngôn ngữ HQL và quản lý
transaction của Spring framework.
 Các lớp Service : Đây là tầng nằm trên tầng DAO. Các lớp trong tầng này
chủ yếu có nhiệm vụ thực hiện các chức năng nghiệp vụ của hệ thống và nó
trực tiếp gọi các lớp xử lý thao tác với cơ sở dữ liệu của tầng DAO.
 Các lớp Action : Đây là tầng trên cùng trong tầng nghiệp vụ, nó nằm trên
tầng Service và trực tiếp gọi các phương thức của các lớp trong tầng Service
để xử lý các yêu cầu từ phía người dùng

Action Layer

Service Layer

DAO Layer

Database Server
Hình 4.2.2. Thiết kế tầng controller

4.2.6. Các file cấu hình cho hệ thống


Các file cần thiết trong cấu hình hệ thống bao gồm :
 File web.xml : Đây là file cấu hình chung của hệ thống, bao gồm các thông
tin về việc sử dụng các gói thư viện, định nghĩa và khởi tạo các file cấu hình
khác, định dạng unicode, định nghĩa các bộ lọc bảo mật, dọn rác …
 File struts.xml : Đây là file cấu hình của Struts framework. Nó có thể khởi
tạo các Bean, hằng số và đặc biệt nó ánh xạ các action từ phía người sử dụng
đến các lớp và phương thức tương ứng cần xử lý và sau đó là điều hướng
hiển thị đến tầng view.
 File applicationContext-db4o.xml, applicationContext-dao.xml,
applicationContext-service.xml : Đây là file cấu hình của Spring framework.
Nó có thể định nghĩa loại kết nối và giao tiếp với cơ sở dữ liệu. Ngoài ra, nó
còn chứa thông tin về các Bean trong hệ thống bao gồm các bean về DAO, Service
phục vụ cho quá trình xử lý nghiệp vụ từ phía các action.
 File tiles.xml : Đây là file cấu hình hỗ trợ cho việc sử dụng layout của tầng
view. Việc sử dụng layout giúp chia trang Web thành các thành phần nhỏ

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 39-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

hơn và sử dụng lại các thành phần chung. Điều này giúp giảm thiểu lượng
code và giúp cho việc lập trình trở nên ngắn gọn, đơn giản và dễ bảo trì.
5. Kết quả thu được
Trong phần trên đã tiến hành phân tích các chức năng, các trường hợp sử
dụng quan trọng trong hệ thống. Cuối cùng xin tổng kết lại các phần đã làm được và
đánh giá kết quả đồ án của mình.

5.1. Kết quả nghiên cứu lý thuyết


Về mặt lý thuyết trong phạm vi của đồ án em đã tìm hiểu và nghiên cứu được
những vấn đề sau đây :
- Tìm hiểu được các vấn đề tổng quan về cơ sở dữ liệu hướng đối tượng, các
khái niệm cơ bản về cơ sở dữ liệu hướng đối tượng. Các tiêu chuẩn, ngôn ngữ thiết
kế trong cơ sở dữ liệu hướng đối tượng, và vấn đề ánh xạ đối tượng- quan hệ.
- Tìm hiểu về vấn đề toàn vẹn và bảo mật trong cơ sở dữ liệu hướng đối tượng,
các ràng buộc toàn vẹn, ràng buộc miền, mô phỏng phụ thuộc hàm và vấn đề về
chuẩn hóa trong cơ sở dữ liệu hướng đối tượng.
- Tìm hiểu và cách thực thi tính bảo mật trong cơ sở dữ liệu hướng đối tượng.
- Tìm hiểu về hệ quản trị cơ sở dữ liệu hướng đối tượng Db4o.

5.2. Kết quả cài đặt


Ứng dụng được xây dựng theo mô hình MVC, mô hình ba lớp. Việc cài đặt
ứng dụng được thực hiện trên môi trường java của sun. Cấu hình môi trường cần
những yêu cầu sau :
Về phía người dùng : Cần có một trong các trình duyệt sau đây
 Internet Explorer 6 or higher.
 Firefox 1.5.x .
 Mozilla 1.x or higher .
 Netscape 8.x or higher .
 JavaScript and cookies need to be enabled .
 Recommend ActiveX be enabled for Internet Explorer.
Yêu cầu mềm phần và phần cứng trên server như sau :
 Hardware :
 Processor: Min. Pentium 4 or similar
 Memory (RAM): Min. 1Gb
 Hard Drive: Min. 40Gb
 Java :
 Download Java J2SE JDK tại
http://java.sun.com/j2se/1.5.0/download.jsp
 Version : 1.5.x
 Db4o :
 Download tại http://www.db4o.com.
 Version : 7.x.x
 Tomcat :

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 40-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Download tại http://tomcat.apache.org.


 Version : 6.0.xx.

KẾT LUẬN
Vấn đề bảo mật cho cơ sở dữ liệu nói chung và bảo mật cơ sở dữ liệu hướng
đối tượng nói riêng vẫn còn tồn tại bên trong nó những khó khăn chưa giải quyết
được, trong phạm vi đồ án em đã tìm hiểu được một số vấn đề bảo mật trong cơ sở
dữ liệu thể thông quan về các ràng buộc toàn vẹn trong cơ sở dữ liệu hướng đối
tượng. Việc áp dụng một hệ quản trị cơ sở dữ liệu hướng đối tượng vào các ứng
dụng lớn và nhỏ đã được tìm hiểu và áp dụng từ lâu và vấn đề bảo mật trong các hệ
cơ sở dữ liệu hướng đối tượng đó, tuy nhiên có cải biên để phù hợp với tính chất
của các bài toán khác nhau.
Trong tương lai đề tài có thể phát triển theo hướng xây dựng một hệ thống bảo
mật không chỉ trên một hệ cơ sở dữ liệu hướng đối tượng riêng biệt nào, nó có thể
áp dụng cho các hệ quản trị cơ sở dữ liệu hướng đối tượng khác. Hệ thống có thể
nâng cao hơn mô hình bảo mật cho hệ thống, mở rộng các phương pháp bảo mật
khác nhau trong một hệ thống để tránh những xâm nhập trái phép ăn cắp dữ liệu.
Cuối cùng em rất mong nhận được sự góp ý, nhận xét của các thầy cô và các
bạn để hoàn thiện hơn nữa những hiểu biết của mình. Em xin một lần nữa gửi lời
cám ơn chân thành đến thầy giáo hướng dẫn cùng các thầy cô khác trong khoa công
nghệ thông tin trường ĐHBK HN và bạn bè đã giúp đỡ em trong quá trình thời gian
qua để hoàn thành đồ án tốt nghiệp này. Em xin chân thành cám ơn !

Hà nội, Ngày 12
Tháng 05 Năm 2008

Phụ lục
PHỤ LỤC A – Cách sử dụng công cụ ObjectManager

Công cụ Object Manager là một công cụ GUI để browse và query của bất kỳ file
db4o database nào. Object Manager hiện thời cung cấp những đặc tính sau đây :
 Rất mạnh cho việc queries.
 Rất hiệu quả với những tệp dữ liệu lớn.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 41-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Xem nhanh dữ liệu với scrolling khi dữ liệu lớn.


 Xem được cấu trúc cây phân cấp của đối tượng với object graph.
 Truy nhập tới thông tin cơ sở dữ liệu bên trong bao gồm lưu trữ class, kích
thước dữ liệu và indexes.
 Những chức năng quản lý Backup và Defragment.
Hướng dẫn cài đặt công cụ Object Manager :
 Object Manager phải được tải xuống từ nhà phân phối chính db4o.
 Nguồn download từ http://developer.db4o.com/files/14/default.aspx
 Bạn hãy chọn các phiên bản nào phù hợp với version db4o mà bạn đang sử
dụng. Object Manager có thể chạy trên Windows, Linux và Mac OS X.
 Giải nén file download về tại một thư mục nào đó, sau đó để chạy được
Object Manager thì có cách chạy trên từng hệ điều hành.
 Với Windows :
o Windows Explorer : nhấn chuột dúp vào objectmanager.jar .
o Command Line : ‘java -jar objectmanager.jar ‘.
 Với Linux :
o UI : nhấn chuột dúp vào objectmanager.jar .
o Command Line : ‘java -jar objectmanager.jar ‘.
Khi Object Manager được start, cửa sổ chương trình như sau :

Ở đây thì ta có thể thực hiện hai cách để mở được db4o database.
 Mở file database db4o.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 42-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Mở kết nối tới db4o database server.


Trong trường hợp mở file database db4o, thì click Browse và chọn db4o database
file để mở, sau đó click vào open.
Trong trường hợp mở kết nối tới db4o database server thì phải nhập các thông tin về
Host, Port, Username, Password, sau đó click vào Connect.

Store Class Tree


Khi click vào connection hay Open, thì ObjectManager mở ra một cửa sở window.
Tất cả các class được lưu trữ được hiển thị ở phía trái và dưới dạng cây thư mục.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 43-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

Thực hiện chức năng Query Object từ GUI

Database Managements :
Các chức năng của quản lý database hiện tại gồm có :
 Backup database.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 44-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

 Defragment.
 Refactoring (Schema Evolution)

PHỤ LỤC B – Tài liệu tham khảo


[1] - Database Systems – 4th Edition (chapters 25 to 27) by Connolly & Begg,
Addison Wesley, 2005.
[2] - Database Design for Smarties using UML for Data Modelling (chapter 13)
by Robert J. Muller, Morgan Kaufmann Publishers, 1999 (specialist text in library).
[3] - Fundamental of Database Systems – 4th Edition (chapter 21 & 21) by R.
Elmasri and S. B. Navati, Addison Wesley, 2003.
[4] - Object Database Standard: ODMG 3.0 by R.G.G. Cattell, Douglas K. Barry,
Morgan Kaufmann Publishers, 2000 (reference in library).
[5] - Object-Oriented Database Design clearly explained, by Jan L. Harrington.
Morgan Kaufmann Publishers, 2000 (reference in library).
[6] - Alagi, S. (1997). The ODMG object model: Does it make sense? ACM
SIGPLAN Notices, 32(10), 253–270.
[7] - Beaubouef, T., & Petry F. E. (2002). Uncertainty in OODB modeled by rough
sets. In Proceedings of the IPMU 2002 conference (Vol. III, pp. 1697–1703).
Annecy, France.
[8] - Advances.in.Fuzzy.Object-Oriented.Databases.
[9] - Paper : A Model of Integrity for Object-Oriented Database.
[10] - Paper : Security In An Object-Oriented Database.
[11] - Paper : Mandatory Security In Object-Oriented Database Systems
[12] - A.Cami, Advanced DBMS , ACCT 5524,1998
Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 45-
Đồ án tốt nghiệp – Bảo mật cơ sở dữ liệu hướng đối tượng

[13] - B.K.Ehlmann, G.A.Riccardi, A Comparison of ORN to other declarative


schemes for specifying relationship sematics, Information anf Software
Technology 38,1996,p.455-465.
[14] - S. Monk, J. A. Marian, B. Elgalal, H. Campbell, Migration from relational to
Object-Oriented Databases, Information anh Softwate Technology 38,1996,p.467
– 475.
[15] - J. Stoimenov, A. Mitrovic, S.D. Kajan, D. Mitrovic, Bridging objects anh
relations : a mediator for an OO front-end to RDBMSs, Information anh Software
Technology 41, 1999,p.57 – 66.
[16] - X. Zang, Y. Zang, J. Fong, X. Jtia, Tranforming RDB schema into well
–structured OODB schema, Information anh Software Technology 41,1999,p.275-
281.
[17] - Đ.T. Nhân, N.T.N Mai, N.T.K Trang, Lý thuyết cơ sở dữ liệu 2,2007
[18] - The Definitive Guide to db4o - Apress

PHỤ LỤC C – Cấu trúc CD đính kèm

Nội dung của đĩa CD được tổ chức thành các thư mục với các nội dung như sau:

 APPLICATION : Chứa chương trình đã biện dịch và file trợ giúp chỉ dẫn
cách thực hiện chương trình.

 DOC : File chứa toàn văn ĐATN và file tóm tắt đồ án tốt nghiệp.

 PRESENTATION : Chứa file PowerPoint trình bày luận.


 REFERENCES : Chứa toàn bộ các tài liệu tham khảo liên quan đến ĐATN.

 SOURCE : Chứa toàn bộ mã nguồn và các thư viện cần thiết để biên dịch
chương trình minh họa cho ĐATN. Kèm theo file DOC chỉ dẫn cách biên
dịch chương trình.

Sinh viên thực hiện : Đào văn Tâm – Khóa 48 Lớp CNPM - 46-

You might also like