Professional Documents
Culture Documents
2
Một số khái niệm cơ bản
ODMG(Object Database Management Group)
- Nhóm phát triển DBMS OO
- Thành lập năm 1991 để định nghĩa các chuẩn CSDL đối
tượng.
- Xuất bản “The ODMG-93 standard” một chuẩn về csdl
đối tượng.
- Được công nhận thành chuẩn bởi ANSI,OMG,…
- Cải tiến và nâng cấp phiên bản ODMG năm
1995,1997(2.0 hỗ trợ Java) và 1999(3.0)
- Các ngôn ngữ CSDL HDT: ODL, OQL
Một số khái niệm cơ bản
Ngôn ngữ mô tả và truy vấn CSDL Hướng đối
tượng theo chuẩn ODMG
- Mô hình đối tượng
- Ngôn ngữ khai báo lược đồ: ODL(Object Define
Language)
- Ngôn ngữ truy vấn đối tượng: OQL (Object Query
Language)
OODM, OODB, OODBMS
OODM (Object-Oriented Data Model): Một mô
hình dữ liệu mà ngữ nghĩa của các đối tượng được
hỗ trợ cho lập trình hướng đối tượng.
OODB (Object-Oriented DataBase): Một tập hợp
bền vững và có khả năng chia sẻ của các đối
tượng được định nghĩa bởi OODM.
OODBMS (Object-Oriented DataBase Management
System): quản lý một OODB
OODM- Mô hình hoá các đối tượng
Đối tượng (Object): Bộ sưu tập các yếu tố DL có
cấu trúc, được đồng nhất bởi một dẫn trỏ (tham
chiếu) duy nhất
Mọi đối tượng đều được đặc trưng bằng một tên duy
nhất, gọi là OID (Object Indentifier)
Hai đối tượng là đồng nhất (O1==O2) nếu chúng có
cùng OID
Hai đối tượng là bằng nhau (O1=O2) nếu chúng có cùng
giá trị
Các đối tượng đặc trưng bởi các tính chất
OODM- Mô hình hoá các đối tượng
Việc đặc tả tiến triển của các lớp đối tượng làm
thành một CSDL hướng đối tượng, cho phép mô
hình hoá hành vi chung của các đối tượng một
cách đơn thể và mở rộng được.
OODM- Mô hình hoá các đối tượng
Ví dụ:
class cửa
public: {các thuộc tính thấy được từ bên ngoài lớp}
trạng thái: mở, đóng
chiều cao: real {kiểu thực}
chiều rộng: real
chiều dầy: real
private:
trục: vectơ
góc: real
public operation: {các phương pháp}
mở(lực: real) ... end;
đóng ... end;
OODM- Mô hình hoá các đối tượng
Ví dụ về kế thừa bội
* Tam giác
• Đa hình (Polymorphism)
– Đa hình 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).
OODM- Các nguyên lý chính áp dụng cho CSDLHĐT
Shape
n Đa hình (Polymorphism)
q Nạp chồng (Overloading) paint()
q Viết đè (Overriding)
Rectangle
paint()
paint(Point x)
OODM- Các nguyên lý chính áp dụng cho CSDLHĐT
24
Ngôn ngữ khai báo lược đồ- ODL
Từ khóa khai báo lớp/giao diện:
- Lớp: Class
- Giao diện: Interface
Giao diện:
Lưu ý: Có thể khai báo đặc trưng trong giao diện nhưng đặc
trưng không được lưu trữ trong giao diện mà chỉ được lưu trữ
thật sự trong lớp
Ngôn ngữ khai báo lược đồ- ODL(tt)
Lớp:
Ngôn ngữ khai báo lược đồ- ODL(tt)
Nhận xét:
- Nếu không khai báo tên tập đối tượng thuộc lớp TG(khai
báo với từ khóa extent) thì các đối tượng này sẽ được
lưu trữ chung với đối tượng NV.
- Nếu khai báo tên tập đối tượng thuộc lớp TG thì các đối
tượng này sẽ được lưu trữ riêng
Ngôn ngữ khai báo lược đồ- ODL(tt)
Nguyên tắc:
- Mô hình đối tượng của ODMG
- Mở rộng SQL2(SQL92): khái niệm về đối tượng phức,
OID(Object ID), biểu thức đường dẫn, tính đa xạ, kích
hoạt thao tác, kết buộc động.
- Thủ tục cơ sở: set, bag, list, array
- Ngôn ngữ hàm: ngôn ngữ thủ tục.
Một số đặc điểm cần chú ý:
- Đầu vào một câu truy vấn:
Tên một đối tượng
Tên một lớp đối tượng
Tên thuộc tính
Ngôn ngữ truy vấn đối tượng-OQL(tt)
Ví dụ:
Ngôn ngữ truy vấn đối tượng-OQL(tt)
44
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
Phân tích, thiết kế CSDL với UML
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
Đố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
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 4
DongBanHang
1
Chứa
1..* DanhMucMatHang MoTaMatHang
1 1..*
Chứa-trong 1 Được-sử-dụng-trong 1
Mô-tả
* * 1
Có 1
1 CuaHang 1 * MatHang
Quản-lý
1 1
1..* Có
1..*
PhienBanHang Được-quản-lý-bởi
Thực-hiện
1 1
HBH NguoiQL
1 1 1
1 1 Được-thực-hiện-bởi
Được-trả 1
Được-khởi-động-bởi Ghi-nhận-bán-hàn
1 1
1
ThanhToan KhachHang NguoiBan
1
47
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
48
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.
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;
CuaHang
attribute struct Adress {
char(3) soPho, char(20) tenPho,
diaChi: Address char(15) tinhThanh
tenGoi: String
};
void CuaHang(); // Constructor
addSale()
void ~ CuaHang(); // Destructor
void addSale(){ // Bổ sung
};
}
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
ngayBan: Date
hangTruong: String 1 *
gioBan: Time
enterItems() ghiNhan
endSale() banHang becomeComplete()
makePayment() makeLineItem()
makePayment()
total()
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(){…}
};
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(){…}
};
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
• 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 {
PhienBanHang attribute Date ngayBan;
attribute Time gioBan;
ngayBan: Date attribute List<DongBanHang> gomCo;
gioBan: Time Boolean becomeComplete(){…}
void makeLineItem()
becomeComplete() void makePayment(){…}
makeLineItem() Number total(){…}
makePayment() PhienBanHang();
total() ~PhienBanHang();
};
gomCo class DongBanHang {
1..* attribute Integer soLuong;
Number subtotal(){…}
DongBanHang };
soLuong: Int
subtotal()
Một số tính chất của CSDLHĐT
57
OODBMS
- Tích hợp các tính năng của DB với các tính năng
của ngôn ngữ lập trình đối tượng Hệ QT CSDL
HĐT (ODBMS)
- Một ODBMS làm cho các đối tượng DB xuất hiện
- Hỗ trợ các đối tượng với các trạng thái phức tạp