Transcript CSDL_OO

Đoàn Văn Ban
OODB
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
(Object-Oriented Data Base)
Nội dung
1.
2.
3.
Các mô hình dữ liệu: CSDL hướng đối tượng
(CSDLHĐT)
Các hệ quản trị CSDLHĐT
Một số kết quả nghiên cứu về CSDLHĐT
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
1/51
Đoàn Văn Ban
1.
OODB
Mô hình dữ liệu
1.1 Các mô hình dữ liệu
Cơ sở dữ liệu (Data Base) - CSDL
Một sưu tập (Collection) các bản ghi dữ liệu được tổ chức
để tiện lợi cho việc lưu trữ và tìm kiếm dữ liệu bởi các hệ
thống thông tin.
Các mô hình dữ liệu phổ biến:
1. Mô hình mạng (Network DB)
2. Mô hình phân cấp (Hierarchical DB)
3. Mô hình quan hệ (Relational DB)
4. Mô hình đối tượng (Object DB or Object-Oriented DB)
5. Mô hình quan hệ - đối tượng (Object-Relational DB)
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
2/51
Đoàn Văn Ban
1.
OODB
Mô hình dữ liệu
File Systems
Hierarchical
Network
Relational
Object-Oriented
System
Semantic Data
Model (ERD)
Complex Object
Model
Object-Oriented
Databases
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
3/51
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản

Hệ quản trị CSDL (Database management system)
Phần mềm thực thi (quản trị) một CSDL.

Phần lớn các hệ quản trị CSDL truyền thống là quan hệ




Các hệ thống thông tin (Information system) sử dụng hệ quản trị CSDL để



Dữ liệu được tổ chức lưu trữ thành các bảng (tables)
Mỗi bộ dữ liệu (record, tuple) mô tả cho một thực thể được xác định bởi thuộc tính
khoá (primary key)
Thuộc tính khoá có thể được sử dụng để xác định các bộ dữ liệu ở những bảng khác
được gọi là khoá ngoại (foreign key)
Ghi dữ liệu lên thiết bị nhớ (chủ yếu là đĩa)
Tìm kiếm dữ liệu từ đĩa (CSDL)
Ví dụ:


Trên máy lớn: DB2, Oracle, Informix, Sybase
PC: Microsoft Access
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
4
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Mô hình CSDLĐT
 Thông tin được biểu diễn thành các đối tượng giống như các đối tượng trong
lập trình hướng đối tượng.







Dữ liệu thuộc tính mô tả các đặc trưng của các thực thể (đối tượng)
Các phương thức mô tả hành vi ứng xử của đối tượng
Mối quan hệ giữa các lớp với nhau.
Thuộc tính khoá có thể được sử dụng để xác định các bộ dữ liệu ở những bảng khác
được gọi là khoá ngoại (foreign key).
Mỗi đối tượng (thực thể) có một định danh ID để xác định duy nhất trong
CSDL.
Các CSDLĐT được thiết kế để làm việc tốt đối với những ngôn ngữ lập trình
như Java, C++, C#, Smalltalk, v.v.
Mục đích của CSDLHĐT là để quản trị hiệu quả những kiểu dữ liệu phức hợp
như âm thanh, hình ảnh, dữ liệu đa phương tiện, v.v., nhằm khắc phục những
hạn chế của CSDL quan hệ.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
5
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Các nguyên lý chính áp dụng cho CSDLĐT

Bao gói che giấu thông (Encapsulation and hiding)


Các thuộc tính và các phương thức (method, operation) được gộp vào trong một
cấu trúc lớp cho phép quản lý truy cập.
Một chương trình (đối tượng) có thể trao đổi với các đối tượng khác (phần mềm
khác) bằng cách gửi và nhận thông điệp (message). Các phương thức được
cung cấp bởi các đối tượng sẽ xác định một tập thông điệp cần trao đổi với nhau.
ĐT 2
ĐT 3
ĐT 1
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
6
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Các nguyên lý chính áp dụng cho CSDLĐT

Kế thừa (Inheritance) và sử dụng lại (Reuse).



Những lớp mới có thể mở rộng, kế thừa những lớp khác có sẵn (super-class).
Ngoài những thuộc tính, phương thức được kế thừa, ta có thể bổ sung thêm
những thuộc tính, phương thức mới để mô tả đúng những lớp các đối tượng
của bài toán ứng dụng.
Quan hệ kế thừa là quan hệ kiểu “thành viên” (”is-a“), nghĩa là mội đối
tượng của lớp con cũng là đối tượng của lớp cha và ngược lại đối tượng của
lớp cha đại diện cho mội đối tượng của lớp con.
Quan hệ kế thừa tuân theo qui luật 100%, nghĩa là các đối tượng của lớp
con đều có tất cả các mối quan hệ giống như đối tượng của lớp cha đối với
các lớp khác.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
7
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Có 2 loại kế thừa cơ bản:
 Kế thừa đơn (Single Inheritance)
 Kế thừa bội (Multiple Inheritance).
1.
Person
Kế thừa đơn
(Java chỉ hỗ trợ kế thừa đơn)
Employee
SalePerson
Student
Developer
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
8
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Có 2 loại kế thừa cơ bản:
 Kế thừa đơn (Single Inheritance)
 Kế thừa bội (Multiple Inheritance)
1.
Person
Kế thừa bội
(C++ hỗ trợ kế thừa bội)
Employee
Student
PartTimeStudent
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
9
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Các nguyên lý chính áp dụng cho CSDLĐT

Đa xạ (Polymorphism)




Đa xạ hay tương ứng bội là khái niệm rất mạnh của toán học: một thông điệp (lời gọi
hàm) có nhiều nội dung thực hiện khác nhau, mỗi đối tượng nhận được sẽ thực hiện
theo ngữ cảnh riêng của mình.
Khái niệm này liên quan chặt chẽ với khái niệm kế thừa đã nêu. Các phương thức của
các lớp dẫn xuất (lớp kế thừa) có thể định nghĩa lại (viết đè – Overriding) những
phương thức của lớp cha.
Trong một lớp, có thể có những phương thức cùng tên (name) nhưng cho phép định
nghĩa nhiều nội dung thực hiện khác nhau theo cơ chế nạp chồng (Overloading).
Để thực hiện được những khái niệm trên thì ngôn ngữ lập trình phải hỗ trợ liên kết
động, hay còn được gọi là liên kết muộn (Dynamic Binding).
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
10
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Các nguyên lý chính áp dụng cho CSDLĐT
Shape

Đa xạ (Polymorphism)


Nạp chồng (Overloading)
Viết đè (Overriding)
paint()
Rectangle
paint()
paint(Point x)
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
11
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
Các nguyên lý chính áp dụng cho CSDLĐT

Quan hệ kết tập (Aggregation)



Ngoài quan hệ kết hợp (Association) phổ biến giữa các thực thể trong các
mô hình dữ liệu, hướng đối tượng hỗ trợ để thể hiện được cả quan hệ kết tập
mô tả về mối quan hệ bộ phận – tổng thể.
Các đối tượng hợp thành có thể được xây dựng như là bộ chứa (Container)
bao gồm một số các đối tượng khác.
Có hai loại quan hệ kết tập:
1. Kết tập thông thường (Normal Aggregation)
2. Kết tập chia sẻ (Shared Aggregation)
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
12
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
1.2 Một số khái niệm cơ bản
HamDoi
3..5
TauChien
Kết tập thông thường
DeTai
0..2
3..10
CanBo
Kết tập chia sẻ
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
13
Đoàn Văn Ban
OODB
1. Mô hình cơ sở dữ liệu
Abstract Data Type (ADT)= Representation + Operarions
Object Orientation = Abstract DataTyping + Inheritance + Object Identity
Object-Oriented Programming (OOP) = Classes + Inheritance
Object-Oriented Databases (OODB) = Object Orientation + Database
Capabilities
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
14
Đoàn Văn Ban
OODB
2. Các hệ quản trị CSDLĐT


Các hệ quản trị CSDLĐT tạo ra CSDL các đối tượng giống như
các đối tượng giống như trong các ngôn ngữ lập trình.
Hệ quản trị CSDLĐT mở rộng ngôn ngữ lập trình hướng đối
tượng:





Đảm bảo tính nhất quán dữ liệu (Persistent data)
Điều khiển sự truy cập tương tranh (Concurrency Control)
Cho phép truy cập kết hợp (Associative Queries)
Khôi phục dữ liệu (Data Recovery), v.v.
Việc lựa chọn hệ quản trị dữ liệu CSDLĐT phụ thuộc chủ yếu vào
ba yếu tố chính



Nhu cầu nghiệp vụ
Đòi hỏi hiệu năng cao
Dữ liệu phức tạp
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
15
Đoàn Văn Ban
OODB
2. Các hệ quản trị CSDLĐT
Truy vấn
thông thường
(SQL)
Không truy vấn
theo cấu trúc
Relational DBMS
Object-Relational
DBMS
File System
Object-Oriented
DBMS
(OQL)
Dữ liệu đơn giản
Dữ liệu phức tạp
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
16
Đoàn Văn Ban
OODB
2. Các hệ quản trị CSDLĐT




UniSQL/X (1992) hợp nhất hệ CSDL quan hệ và hệ
CSDL đối tượng.
OpenODB (Hewlett Packard released (sau đó là
Odapter), mở rộng tất cả các RDBMS.
Montage Systems (1993), (sau đó là Illustra của
Informix): là phiên bản thương mại đầu tiên của
object-relational Postgres.
SQL3 (bản thảo July 1998) tương tự như OQL.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
17
Đoàn Văn Ban
OODB
Các hãng phần mềm chính phát triển ODBMS







Informix: Illustra (Informix-Universal Server)
Oracle: Oracle8
Hewlett-Packard
Unisys: OSMOS
IBM: DB2 version 3
Sybase: Adaptive Server (introduced Sept. ‘97)
Just released--a Java-based ORDBMS:
Cloudscape’s JBMS
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
18
Đoàn Văn Ban
OODB
Các hãng phần mềm chính phát triển ODBMS











GemStone Systems
IBEX Computing SA
O2 Technology
Object Design

Andersen Consulting
CERN
Electronic Data Systems (EDS)
Fujitsu Software Corporation
Hitachi
Lockheed Martin
Microsoft










Objectivity
POET Software
UniSQL
Versant Object Technology
MITRE Corporation
NEC Corporation
ONTOS
Persistence Software
Sybase
Unidata
VMARK Software
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
19
Đoàn Văn Ban
OODB
Các hãng phần mềm chính phát triển ODBMS


Hệ QTCSDL HĐT quản lý dữ liệu, mã chương trình và các cấu
trúc kết hợp nhằm thiết lập một CSDLHĐT.
Nhiều hệ QTCSDL HĐT được xây dựng có cú pháp, và những
khả năng rất khác nhau. Một số hệ QTCSDL HĐT phổ biến trên
thị trường như:







ObjectStore (www.odi.com),
GemStore (www.gemstore.com),
Objectivity (www.Objectivity.com),
O2 (www.ardensoftawre.com),
Jasmine (www.cai.com),
Versant (www.versant.com) và
POET (www.poet.com).
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
20
Đoàn Văn Ban
OODB
Những ưu điểm của các CSDL ĐT:





Hỗ trợ những kiểu dữ liệu được định nghĩa bởi NSD. CSDL ĐT có khả năng lưu
trữ các kiểu phức hợp, kiểu được định nghĩa bởi NSD, các lớp và thao tác trên
chúng một cách dễ dàng.
Cung cấp một mẫu hình phát triển CSDL cho cả phân tích, thiết kế và cài đặt
ứng dụng. Bạn không phải chuyển từ mẫu hình này sang mẫu hình khác như
trong quá trình phát triển phần mềm.
Cải tiến đáng kể về chất lượng dữ liệu. Ta có thể đưa ra nhiều ràng buộc vào
cấu trúc dữ liệu. Mô hình còn cho phép thể hiện cả những ràng buộc không
cấu trúc để chương trình phải thoả mãn khi nó thực hiện trong CSDL. Một
CSDLHĐT có thể dẫn về một CSDLQH được chuẩn hoá.
Tốc độ phát triển phần mềm nhanh hơn. Cấu trúc CSDL nhất quán và rõ ràng
giúp cho lập trình ứng dụng trở nên đơn giản và nhanh hơn. Những người
phát triển ứng dụng có kinh nghiệm thường sử dụng những câu lệnh rất mạnh
của các hệ QT CSDL thay cho những đoạn chương trình của NSD.
Tích hợp dễ dàng. Việc tích hợp nhiều hệ thống độc lập có thể giảm bớt sự
sao chép dữ liệu của con người và mở rộng những câu truy vấn có thể trả lời
được. Mô hình hướng đối tượng cung cấp cách biểu diễn thống nhất làm
thuận tiện hơn cho việc tìm hiểu và tích hợp thông tin.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
21
Đoàn Văn Ban
OODB
Yếu điểm của các hệ QTCSDL HĐT




Thiếu cơ sở lý thuyết và chuẩn hoá. Các hệ CSDL QH được thiết kế và xây
dựng dựa trên mô hình đại số quan hệ rất chuẩn mực, trong khi các hệ QT
CSDL HĐT được cài đặt nhưng thiếu cơ sở lý thuyết hình thức. Hậu quả là các
sản phẩm QTCSDL HĐT rất khác nhau và gây ra nhiều trở ngại cho quá trình
phát triển ứng dụng khi không muốn phụ thuộc vào các hãng sản xuất phần
mềm hệ thống.
Có thể sửa đổi làm sai lệch CSDL. Một số hệ QTCSDL HĐT thực hiện trong
không gian của tiến trình ứng dụng, kết quả là CSDL có thể là chủ điểm dẫn
đến vi phạm tính an ninh hoặc dữ liệu bị sửa đổi bởi những con trỏ, tham
chiếu lạ.
Khó mở rộng logic. Các sản phẩm hiện nay đều không có sự độc lập dữ liệu
cần thiết và chưa có các quan sát (view) CSDL tương tự như các hệ QTCSDL
QH.
Chưa hỗ trợ các siêu (meta) ứng dụng. Một số hệ QTCSDL HĐT dựa vào C++
không thực hiện được liên kết động, liên kết lúc thực hiện, mà chỉ cung cấp
liên kết tĩnh, liên kết lúc dịch chương trình ứng dụng. Hạn chế này là do hạn
chế của ngôn ngữ. C++ sử dụng những khai báo về kiểu để sinh mã chương
trình tối ưu trong quá trình biên dịch và sau đó huỷ bỏ các khai báo đó. Ngược
lại, hầu hết các CSDL QH và những hệ QTCSDL HĐT dựa vào Smallalk hỗ trợ
cho cả liên kết tĩnh và liên kết động.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
22
Đoàn Văn Ban
OODB
Các hệ QTCSDL HĐT là thích hợp với những ứng dụng mới, như:





Những ứng dụng thiết kế công nghệ. Các hệ QTCSDL HĐT rất phù hợp cho
những chương trình thiết kế ứng dụng, như thiết kế với sự trợ giúp máy tính
(CAD: Computer-Aided Design), chế tạo với sự trợ giúp của máy tính (CAM:
Computer-Aided Manufacturing), chế tạo tích hợp với máy tính (CIM:
Computer-Integrated Manufacturing), và kỹ nghệ phần mềm với sự trợ giúp
của máy tính (CASE: Computer-Aided Software Engineering ).
Các ứng dụng đa phương tiện (Multimedia) như hệ Jasmine. Các hệ QTCSDL
HĐT rất thích hợp cho những ứng dụng đa phương tiện với những đồ hoạ,
audio, video phức hợp.
Các cơ sở tri thức. Các luật của các hệ chuyên gia rất khó lưu trữ trong các hệ
CSDL QH. Mỗi khi có một luật mới cần bổ sung thì phải kiểm tra toàn bộ cơ sở
luật xem tính phi mâu thuẫn và dư thừa của hệ thống có bị vi phạm hay không.
Hệ QTCSDL HĐT có thể hỗ trợ để thực hiện công việc trên ở mức thấp.
Những ứng dụng đòi hỏi xử lý phân tán và tương tranh. Hệ QTCSDL cho phép
thực hiện những truy nhập cần thiết vào các dịch vụ mức thấp.
Các phần mềm nhúng. Hệ QTCSDL HĐT thích hợp để tạo ra những phần mềm
nhúng vào các thiết bị điện, các thiết bị điều khiển, v.v.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
23
Đoàn Văn Ban
OODB
Các chuẩn phát triển OODBMS


ODMG (Object Database Management Group): xây
dựng các chuẩn cho OODBMS từ 1991
Chuẩn mới (ODMG standard) được xây dựng dựa
trên SQL-92, và ANSI để định nghĩa mô hình khung
ứng dụng cho các OODBMS.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
24
Đoàn Văn Ban
OODB
Standard: ODMG-93
ODMG-93:
trả lời theo SQL
ODMG-93: mở rộng của CORBA Persistent Object
Service
ODMG-93 có ba thành phần chính:



Object Definition Language (ODL)
Object Query Language (OQL)
C++ and Smalltalk language bindings
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
25
Đoàn Văn Ban
OODB
Standard: ODMG 2.0 (July 1997)
The Object Database Management Group (ODMG) công bố
chuẩn ODMG 2.0, áp dụng cho các hãng công nghiệp CSDLĐT
The ODMG 2.0 standard:
 ODMG liên kết mới cho Java, được chuẩn hóa và đơn giản hóa
trong việc lưu trữ các đối tượng Java trong các CSDL
 Xây dựng mô hình siêu ngữ nghĩa (metamodel) cung cấp những
mô tả sơ đồ CSDL độc lập với các ngôn ngữ để tạo ra các công cụ
và các ứng
 Nâng cấp các mối liên kết giữa C++ và Smalltalk
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
26
Đoàn Văn Ban
OODB
Object-Relational DBMS &
Object-Oriented DBMS:
Thị trường Relational DBMS tăng từ $6.8 billion 1997 lên $8.1 billion
năm 2000 (so với $2.9 billion năm 1995)
 Thị trường ORDBMS đạt $1 billion năm 2000 (so với $14 million in
1995)
 Thị trường OODBMS tăng từ $430 million năm 1997 lên $600 million
năm 2000 (so với $100 million in 1995)
Có thể kết luận: Thị trường OODBMS sẽ tăng rất mạnh trong thời gian
tới.
Trong tương lai:




Relational DBs sẽ dần được thay bởi object-relational DBs.
Object-relational DBs nhanh chóng thích ứng để xử lý các đối tượng dữ
liệu phức tạp.
Object-oriented DBs sẽ được bổ sung thêm những đặc tính truy vấn đối
tượng tương tự như đối với relational DBs.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
27
Đoàn Văn Ban
OODB
3. Một số kết quả nghiên cứu về CSDLĐT
1.
2.
3.
4.
Phân tích, thiết kế CSDL với UML;
Nghiên cứu các tính chất của
CSDLĐT;
Chuyển đổi giữa mô hình đối
tượng và mô hình quan hệ
Tối ưu hóa truy vấn đối tượng
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
28
Đoàn Văn Ban
OODB
3.1 Phân tích, thiết kế CSDL với UML
Quá trình thiết kế CSDL có thể thực hiện theo ba bước:
1.
Thiết kế mô hình (sơ đồ) khái niệm,
2.
Thiết kế sơ đồ CSDL chuẩn,
3.
Cài đặt CSDL ứng dụng: chọn ngôn ngữ và hệ quản trị CSDL
hướng đối tượng thích hợp
Thiết kế
sơ đồ khái niệm
UML
Chuẩn hoá
sơ đồ
ODL
Cài đặt
ứng dụng
OODBMS
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
29
Đoàn Văn Ban
OODB
3.1 Phân tích, thiết kế CSDL với UML
(i) Thiết kế mô hình khái niệm – biểu đồ lớp (Class Diagram)

Biểu đồ lớp mô tả cấu trúc tĩnh, mô tả mô hình khái niệm bao gồm các
lớp đối tượng và các mối quan hệ của chúng trong hệ thống hướng đối
tượng.

Phân tích các yêu cầu của bài toán ứng dụng để xác định các lớp đối
tượng, mối quan hệ của chúng để xây dựng biểu đồ lớp.
Kế thừa
Lớp
Hàm
Bao gói
Quan hệ
Cá thể
Đối tượng
Thông điệp
Đa xạ
Những khái niệm cơ bản của phương pháp hướng đối tượng
30
Đoàn Văn Ban
OODB
Ví dụ: Biểu đồ lớp của hệ thống bán hàng
Ghi-nhận-hàng-bán
0..1
Được-mô-tả-bởi 
DongBanHang
1
Chứa
DanhMucMatHang
1..*
MoTaMatHang
1
1
Chứa-trong
Mô-tả
*
Có
1
CuaHang
*
1
MatHang
1
Quản-lý
1
1
Có
1..*
1..*
PhienBanHang
1
1
Được-sử-dụng-trong
*
1
1..*
1
Được-trả
Được-quản-lý-bởi
Thực-hiện
1
1
HBH
1
Được-thực-hiện-bởi
1
1
1
Ghi-nhận-bán-hàn
Được-khởi-động-bởi
1
ThanhToan
NguoiQL
1
1
KhachHang
NguoiBan
1
31
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn


Một đặc tính quan trọng của CSDL HĐT là các đối tượng được lưu lại
sau khi chương trình kết thúc.
Những đối tượng được tự động lưu vào CSDL được gọi là đối tượng
bền vững, những đối tượng không được lưu lại gọi là đối tượng tạm
thời.
Đối tượng A
CSDL HĐT
Đối tượng B
Đối tượng C
Đối tượng A, C là bền vững còn B là tạm thời.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
32
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDLĐT chuẩn
Chuyển đổi các kiểu đối tượng

Mỗi lớp bền vững trong UML phải được chuyển đổi sang lớp
trong ODL (Object Definition Language) thể hiện được cả hành
vi trừu tượng lẫn các trạng thái trừu tượng.
Việc đọc dữ liệu trong CSDL HĐT được thực hiện như sau:

Các đối tượng trong CSDL HĐT được lưu trữ và có mối quan hệ với
nhau thông qua định danh ID.

Một đối tượng có thể tham chiếu tới nhiều ID đối tượng, nghĩa là mối
quan hệ giữa các đối tượng có dạng tổng quát là n:m.

Mối quan hệ tham chiếu giữa các đối tượng được hệ QT CSDL HĐT
thiết lập.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
33
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn

Chuyển đổi các lớp đối tượng bền vững sang lớp của ODL
CuaHang
diaChi: Address
tenGoi: String
addSale()
class CuaHang {
attribute String(30) tenGoi;
attribute struct Adress {
char(3) soPho, char(20) tenPho,
char(15) tinhThanh
};
void CuaHang();
// Constructor
void ~ CuaHang();
// Destructor
void addSale(){
// Bổ sung
};
}
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
34
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn

Chuyển đổi các quan hệ kết hợp: Quan hệ kết hợp nhị nguyên được chuyển
sang mối quan hệ liên kết relationship trong ODL.
PhienBanHang
HBH
hangTruong: String
enterItems()
endSale()
makePayment()
1
*
ngayBan: Date
gioBan: Time
ghiNhan
banHang
becomeComplete()
makeLineItem()
makePayment()
total()
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
35
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn
class HBH
{
attribute String(25) hangTruong;
attribute String(15) tenTruong;
relationship PhienBanHang ghiNhan
inverse banHang::PhienBanHang;
void HBH();
void ~HBH();
void enterItems(){…}
void endSale(){…}
};
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
36
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn
class PhienBanHang {
attribute Date ngayBan;
attribute Time gioBan;
relationship Set<PhienBanHang> banHang
inverse ghiNhan::HBH;
void PhienBanHang();
void ~PhienBanHang();
Boolean becomeComplete(){…}
void makeLineItem()
makePayment(){…}
Number total(){…}
};
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
37
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn

Chuyển đổi các quan hệ kế thừa: Quan hệ kết hợp nhị nguyên được chuyển
sang mối quan hệ liên kết relationship trong ODL.
ThanhToan
ThanhToanTM
ThanhToanThe
class ThanhToanTM extends ThanhToan
(extent ThanhToanTM Key number)
{
…
};
class ThanhToanThe extends ThanhToan
{
…
};
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
38
Đoàn Văn Ban
OODB
3.2 Thiết kế sơ đồ CSDL chuẩn

Chuyển đổi các quan hệ kết tập: Quan hệ kết tập giữa bộ phận và tổng
thể (part-whole aggregation). Quan hệ này thể hiện như là lớp cấu trúc
gồm hầu như là hai lớp khác nhau.
PhienBanHang
ngayBan: Date
gioBan: Time
becomeComplete()
makeLineItem()
makePayment()
total()
gomCo
1..*
DongBanHang
soLuong: Int
subtotal()
class PhienBanHang {
attribute Date ngayBan;
attribute Time gioBan;
attribute List<DongBanHang> gomCo;
Boolean becomeComplete(){…}
void makeLineItem()
void makePayment(){…}
Number total(){…}
PhienBanHang();
~PhienBanHang();
};
class DongBanHang {
attribute Integer soLuong;
Number subtotal(){…}
};
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
39
Đoàn Văn Ban
OODB
3.3 Một số tính chất của CSDLHĐT



Tính nhất quán kiểu dữ liệu của hệ thống
hướng đối tượng
Chuẩn hóa đối tượng: Phụ thuộc đối tượng
theo đường dẫn và các dạng chuẩn đối
tượng
Các mẫu thiết kế (Design Pattern) dựa trên
mã nguồn mở (Open Sourrce)
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
40
Đoàn Văn Ban
OODB
(i) Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng

Mô hình dữ liệu hướng đối tượng hỗ trợ kế thừa bội, cho phép một lớp được kế thừa
từ một hay nhiều lớp (kiểu). Chính cơ chế này sẽ dẫn đến nhiều những vấn đề nhập
nhằng về kiển dữ liệu và các phương thức sử dụng.
Person
+ salary: int
+ readInfo()
Employee
Developer
+ job: String
+ project: String
+ readInfo()
+ readInfo()
PartTimeWorker
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
41
Đoàn Văn Ban
OODB
(i) Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng


Vấn đề đặt ra là một hệ thống hướng đối tượng phải có những tính chất gì
để đảm bảo tính nhất quán dữ liệu và phi mâu thuẫn?
Trả lời cho câu hỏi này, trong bài báo “Tính đúng của lược đồ CSDL hướng
đối tượng” (TC TH & ĐKH, T. 16, S.3, 2000), chúng tôi đã nghiên cứu các
tính chất của quá trình kế thừa kiểu (lớp) trong lược đồ dữ liệu đối tượng và
đã chỉ ra rằng





Quan hệ kế thừa sẽ tạo ra một thứ tự bộ phận
Phép hội kiểu của τ1 ↓ τ2 nếu nó xác định thì kết quả là kiểu con chung lớn
nhất của τ1 và τ2
Một lược đồ đối tượng có thể xảy ra sự xung đột về kiểu khi có ít nhất một
cặp kiểu cha của một kiểu con (được kế thừa bội) và không tương thích với
nhau, nghĩa là phép hội của các kiểu cha không xác định.
Lược đồ đối tượng có thể biểu diễn dưới dạng s-đồ thị (đồ thị đặc trưng cho
quan hệ kế thừa kiểu của lược đồ) đối tượng. Trên cơ sở nghiên cứu các
tính chất đường đi trong s-đồ thị chúng khẳng định phụ thuộc dữ liệu trong
CSDL ĐT là loại phụ đối tượng theo đường dẫn.
S-đồ thị có xung đột kiểu (có mâu thuẫn dữ liệu) khi và chỉ khi có ít nhất 2
đường đi tựa tương đẳng cùng bắt đầu từ một đỉnh và dẫn đến 2 đỉnh đích
là 2 kiểu không tương thích với nhau (phép hội kiểu không xác định) .
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
42
Đoàn Văn Ban
OODB
(ii) Chuyển đổi tương đương giữa các mô hình dữ liệu


Thực tế luôn tồn tại nhiều hệ thống dữ liệu với nhiều mô
hình khác nhau. Vấn đề đặt ra là làm thế nào để khai
thác được dữ liệu của chúng, tích hợp vào một ứng
dụng của chúng ta?
Một trong các phương pháp thực hiện đáp ứng được
những yêu cầu trên là liệu có thể biến đổi từ mô hình
quan hệ (mô hình thực thể liên kết) sang mô hình đối
tượng và ngược lại được không?

Trong các bài báo: “Chuyển đổi mô hình thực thể liên kết thành
mô hình hướng đối tượng “ (TC TH & ĐKH, T. 17, s. 4, 2001) và
“Mô hình hóa hệ thống phần mềm hướng đối tượng” ( TC TH &
ĐKH, T. 18, s. 4, 2002), chúng tôi đã giới thiệu những thuật toán
chuyển đổi giữa các mô hình dữ liệu:


CSDL QH và CSDL ĐT;
Biểu đồ lớp UML và biểu đồ thực thể-liên kết (ERD);
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
43
Đoàn Văn Ban
OODB
(ii) Chuyển đổi tương đương giữa các mô hình dữ liệu

Trong các bài báo: “Chuyển đổi các biểu thức đại số quan
hệ thành các câu truy vấn trong mô hình dữ liệu hướng đối
tượng “ (TC KH & CN, T. 40, s.ĐB, 2002) và “Sự tương
đương trong biểu diễn giữa ngôn ngữ truy vấn OQL và đại
số đối tượng” (TC TH & ĐKH, T. 20, s. 3, 2004); “Phương
pháp ước lượng các truy vấn lồng trong CSDL hướng đối
tượng bằng siêu đồ thị kết nối “ (TC Bưu chính VT &
CNTT, s. 14, 4-2005), chúng tôi trình bày những qui tắc
chuyển đổi các phép toán quan hệ thành các biểu thức đại
số đối tượng tương đương và phương pháp biểu diễn các
câu truy vấn đối tượng OQL (mở rộng trên siêu đồ thị kết
nối) và một số thuật toán tối ưu hóa truy vấn đối tượng.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
44
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở



Bên cạnh là một hoạt động mang tính nghiên cứu, sáng
tạo, sản xuất phần mềm còn là một ngành công nghiệp và
vì vậy người ta tìm mọi cách để rút ngắn quá trình sản
xuất và nâng cao năng suất lao động.
Một trong những cách được áp dụng rộng rãi nhất là sử
dụng các khuôn mẫu có sẵn (Framework), thư viện lập
trình và các thành phần (Component) như là các mẫu thiết
kế (Design Pattern).
Các Framework thường chỉ bao gồm các cấu trúc cơ bản
như kiến trúc hệ thống, các mẫu thiết tối ưu hay các giải
pháp mang tính lý thuyết còn thư viện thường bao gồm 1
tập hợp các giải pháp cụ thể (giải thuật, cấu trúc dữ liệu,
mã nguồn) cho một vấn đề cụ thể (ví dụ tìm giá trị cực
tiểu của một hàm bất kỳ).
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
45
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở



Các mẫu thiết được xem là những giải pháp cụ thể nhưng
cho phép người thiết kế tùy biến chức năng qua việc xác
định các tham số hoạt động (properties) và ghép nối
chúng lại với nhau (lập trình) thành một giải pháp hoàn
chỉnh.
Do khả năng tùy biến cao nên một mẫu thiết có thể “chỉ”
là một giải pháp hiển thị kết quả dưới dạng đồ thị nhưng
cũng có thể bao gồm toàn bộ chức năng phức tạp của một
chương trình soạn thảo văn bản như Word©.
Như vậy với thành phần, một mẫu thiết kế và công cụ
thích hợp người ta có thể nhanh chóng bổ sung tính năng
cho một phần mềm mà nếu tự phát triển sẽ phải mất hàng
tháng trời nếu không phải là hàng năm!
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
46
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở



Mặt khác, phần mềm nguồn mở (Open Source) và phần mềm tự do
(Free Software) là hai khái niệm khác nhau về quyền và mức độ tự do
đối với người sử dụng. Đó là hai cách tiếp cận và triết lý hướng tới
phần mềm tự do. Phần mềm nguồn mở và phần mềm tự do, cả hai là
phần mềm hướng tới giải phóng những phiền hà do giới hạn về bản
quyền.
Nó có thể được sử dụng, sao chép, nghiên cứu, thay đối và phân phối
lại mà không gặp phải hạn chế nào. Phần mềm tự do (Free software)
không phải hoàn toàn giống như freeware, phần mềm cung cấp với giá
bằng 0 (software available at zero price).
Có những trường hợp, những phần mềm là tự do nhưng không phải là
phần mềm nguồn mở và ngược lại. “Phần mềm tự do” được định nghĩa
là phần mềm được cho tự do. Nó phản ánh xu hướng chuyển dịch tự do
của phần mềm (free software movement).
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
47
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở


Phần mềm nguồn mở (open-source software) hiểu theo nghĩa rộng là
một khái niệm chung được sử dụng cho tất cả các phần mềm mà mã
nguồn của nó được công bố rộng rãi công khai và cho phép mọi người
tiếp tục phát triển phần mềm đó, đặc biệt phù hợp để thiết kế các mẫu
ứng dụng.
Mã nguồn mở được công bố dưới rất nhiều điều kiện khác nhau
(license), một số trong đó cho phép phát triển, sử dụng và bán tùy ý
miễn là giữ nguyên các dòng về nguồn gốc sản phẩm (BSDL), một số
bắt buộc tất các sản phẩm làm ra từ đó cũng phải là open-source (GPL),
một số khác đòi hỏi phải công bố trọn vẹn mã nguồn (Mozilla), một số
khác không cho phép sử dụng vào mục đích thương mại (Sun Solaris
Source Code License), một số khác lại không có ràng buộc gì đáng kể
(public domain, MIT X11 license) v.v.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
48
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở



Mẫu phần mềm trở nên thông dụng kể từ khi xuất hiện cuốn
sách thường được tham chiếu là GoF (của Bè lũ 4 tên):
Design Patterns: Elements of Reusable ObjectOriented Software by Erich Gamma, Richard Helm,
Ralph Johnson, and John Vlissides (frequently referred
to as the Gang of Four or just GoF).
Mẫu được sử dụng trong nhiều lĩnh vực khác nhau từ
các tổ chức và các quá trình cho đến kiến trúc hệ thống,
nhất là trong lĩnh vực đào tạo, nghiên cứu phát triển ứng
dụng phần mềm.
Hiện nay cộng đồng phát triển phần mềm sử dụng rất
phổ biến các mẫu thiết kế cho kiến trúc phần mềm và
các mẫu cho quá trình phát triển phần mềm và cho tổ
chức thực hiện các dự án phần mềm.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
49
Đoàn Văn Ban
OODB
(iii) Mẫu thiết kế dựa trên mã nguồn mở



Hướng đối tượng hỗ trợ để tạo ra các mẫu thiết kế cho các thiết kế phần
mềm, nhất là các mẫu thiết kế theo mã nguồn mở. Mẫu thiết kế hướng đối
tượng mô tả tường minh các mối quan hệ và sự tương tác giữa các lớp đối
tượng mà không cần phải xác định những ứng dụng cụ thể.
Mẫu thiết kế giúp ta giải quyết bài toán nhanh gọn, có khả năng tái sử dụng
và tránh khả năng phải thiết kế lại. Mẫu thiết kế dựa trên nguyên lý thiết kế
hướng đối tượng và nó được xem như là công cụ để phát hiện và mô tả bài
toán ở mức trừu tượng cao mà vẫn bao hàm đầy đủ ngữ nghĩa của bài toán
ứng dụng.
Trên cơ sở nghiên cứu các mẫu thiết kế của Erich Gamma, báo cáo “Ứng
dụng mô hình mẫu thiết kế khung cho tầng truy cập dữ liệu” (Báo cáo tại
HT CNTT nhân dịp 30 năm thành lập Viện CNTT) đề xuất phương pháp
thiết kế khung (Framework) ứng dụng theo mô hình ba tầng, áp dụng công
nghệ đối tượng ADO.Net và cài đặt khung cho tầng truy cập dữ liệu.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
50
Đoàn Văn Ban
OODB
Tài liệu tham khảo
[1] David W. Embley, Object Database Development: Concepts and Principles, Addison Wesley Longman,
http:// osm7.cs.byu.edu, 1998.
[2] David Maier, Object-Oriented Database Theory: An Introduction & indexing in OODBS, Database Hall of
Fame, http://www.cse.ogi.edu, 2001.
[3] Đoàn Văn Ban, Tính đúng của lược đồ CSDL hướng đối tượng, TC TH & ĐKH, T. 16, S.3, 2000.
[4] Đoàn Văn Ban, Phân tích, thiết kế hướng đối tượng bằng UML, giáo trình Khoa CNTT, 2003.
[5] Đoàn Văn Ban, Lập trình hướng đối tượng với Java, NXB Khoa học Kỹ thuật, 2003.
[6] Đoàn Văn Ban, Lập trình hướng đối tượng với C++, Giáo trình Khoa CNTT, 2003.
[7] Erichgam, Richard Helm, Ralph Johnson, John Vlissdes, Design Pattern, elements of Reusable OjectOriented Software, 1, Addison-Wesley Pub Co, 1995.
[8] James W. Cooper, C# Design Patterns, Addison Wesley, 2002, 416.
[9] Mario Piattini, Oscar Díaz, Advanced Data Technology and Design, Artech House, 2000, http://
www.artechhouse.com
[10] Michael B., William P., Object – Oriented Modeling and Design for Database Applications, Prentice Hall,
New Jersey 1998.
[11] Object Design, ObjectStore C++ Release 4.0.2 Documentation, Burlington, Massachusetts, 1996.
[12] OMG, “The OMG Unified Modeling Language Specification”, http:// www.omg.org/uml 1999.
[13] Quatrani T., Visual Modeling With Rational Rose and UML, Addison-Wesley, http:// www.rational.com,
2000.
[14] Ying Liang, From use cases to classes: a way of building object model with UML, Information and
Software Technology, 45 (2003) 83-93, http://www.elservier.com/locate/infsof.
[15] Zhiming Liu, Object-Oriented Software Development Using UML, UNU /IIST, Macau 2001.
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
51