1.Các mô hình dữ liệu: CSDL hướng đối tượng (CSDLHĐT) 2.Các hệ quản trị CSDLHĐT 3.Một số kết quả nghiên cứu về CSDLHĐT1.Các mô hình dữ liệu: CSDL hướng đối tượng (CSDLHĐT) 2.Các hệ quản trị CSDLHĐT 3.Một số kết quả nghiên cứu về CSDLHĐT
Trang 1CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
(Object-Oriented Data Base)
Trang 21 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)
1.1 Các mô hình dữ liệu
Trang 3Complex Object
Model
Object-Oriented Databases
Trang 41.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ệ
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 )
Các hệ thống thông tin (Information system) sử dụng hệ quản trị CSDL để
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)
Trang 51.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
1 Mô hình cơ sở dữ liệu
Trang 61.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ấu trúc lớp cho phép quản lý truy cập
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.
1 Mô hình cơ sở dữ liệu
ĐT 1
ĐT 2
ĐT 3
Trang 71.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.
1 Mô hình cơ sở dữ liệu
Trang 81.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 Mô hình cơ sở dữ liệu
Trang 91.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 Mô hình cơ sở dữ liệu
Trang 101.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 ).
1 Mô hình cơ sở dữ liệu
Trang 111.2 Một số khái niệm cơ bản
Đa xạ (Polymorphism)
Nạp chồng (Overloading)
Viết đè (Overriding)
Trang 121.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)
1 Mô hình cơ sở dữ liệu
Trang 131.2 Một số khái niệm cơ bản
1 Mô hình cơ sở dữ liệu
Trang 14Abstract 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
1 Mô hình cơ sở dữ liệu
Trang 15 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
2 Các hệ quản trị CSDLĐT
Trang 17Informix): là phiên bản thương mại đầu tiên của
object-relational Postgres.
Trang 18 Informix : Illustra (Informix-Universal Server)
Oracle : Oracle8
Hewlett-Packard
Unisys : OSMOS
Sybase : Adaptive Server (introduced Sept ‘97)
Just released a Java-based ORDBMS :
Các hãng phần mềm chính phát triển ODBMS
Trang 19 Electronic Data Systems (EDS)
Fujitsu Software Corporation
Trang 20 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ư:
Trang 21Nhữ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.
Trang 22Yế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.
Trang 23Cá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.
Trang 24Các chuẩn phát triển OODBMS
dựng các chuẩn cho OODBMS từ 1991
trên SQL-92, và ANSI để định nghĩa mô hình khung
Trang 25Standard: 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
Trang 26Standard: 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óatrong 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
Trang 27Có 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.
Trang 283 Một số kết quả nghiên cứu về CSDLĐT
1. Phân tích, thiết kế CSDL với UML ;
2. Nghiên cứu các tính chất của
Trang 293.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
Cài đặt ứng dụng
OODBMS
Trang 303.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 Quan hệ
Đối tượng
Cá thể Bao gói
Hàm
Thông điệp
Đa xạ
Trang 31Ví dụ: Biểu đồ lớp của hệ thống bán hàng
1 *
1 1
MatHang
Mô-tả 1
1
ThanhToan KhachHang NguoiBan
PhienBanHang
NguoiQL Được-trả
Được-quản-lý-bởi
1 1
1 Có 1 *
Ghi-nhận-bán-hàn
Trang 323.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.
Trang 333.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.
Trang 343.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
class CuaHang { attribute String(30) tenGoi;
attribute struct Adress {
char(3) soPho, char(20) tenPho, char(15) tinhThanh
};
Trang 353.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.
ghiNhan
banHang
HBH hangTruong : String
makePayment ()
total ()
Trang 363.2 Thiết kế sơ đồ CSDL chuẩn
class HBH
{
attribute String(25) hangTruong;
attribute String(15) tenTruong;
relationship PhienBanHang ghiNhan
Trang 373.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(){…}
};
Trang 383.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.
class ThanhToanTM extends ThanhToan (extent ThanhToanTM Key number) {
… };
class ThanhToanThe extends ThanhToan {
… };
ThanhToanTM ThanhToanThe
ThanhToan
Trang 393.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.
class PhienBanHang { attribute Date ngayBan;
attribute Time gioBan;
attribute List<DongBanHang> gomCo;
DongBanHang soLuong : Int
subtotal ()
Trang 403.3 Một số tính chất của CSDLHĐT
hướng đối tượng
theo đường dẫn và các dạng chuẩn đối tượng
mã nguồn mở (Open Sourrce)
Trang 41(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 + job: String + readInfo()
Developer + project: String + readInfo()
PartTimeWorker
Trang 42(i) Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng
để đảm bảo tính nhất quán dữ liệu và phi mâu thuẫn?
đố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)