Mô hình hướng đối tượngMô hình hóa các đối tượng Đối tượng Object: Được đặc trưng bởi định danh và các tính chất trong đó: Mọi đối tượng đều được đặc trưng bằng một tên duy nhất, gọi
Trang 1Mô hình CSDL hướng đối tượng
Hướng dẫn: TS.Nguyễn Tuệ
Thực hiện: Nhóm 1
Lớp: K14HTTT
Trang 2Nội dung
Đối tượng
Biểu diễn đối tượng
Thuộc tính, hành vi của đối tượng
Tính đóng gói và phương pháp giao tiếp giữa các đối tượng
Trang 3Sự ra đời của CSDL hướng đối tượng
(Object-Oriented Database – OODB)
Hạn chế của CSDL truyền thống
Đối với các ứng dụng phức tạp trong xây dựng, lưu trữ cấu trúc dữ liệu …
Sự ra đời của ngôn ngữ lập trình HĐT
Lịch sử phát triển
Bắt nguồn từ HĐT trong ngôn ngữ lập trình (đầu tiên là
SIMULA, ra đời cuối những năm 60)
Smalltalk của Xerox Parc (1970s)
Trang 4Mô hình hướng đối tượng
Bắt nguồn từ các mạng ngữ nghĩa và các ngôn ngữ lập trình hướng đối tượng
Tập hợp lại các khái niệm cốt yếu để mô hình hoá một cách tiến triển các đối tượng phức tạp và các thủ tục liên kết
dựng những thực thể phức tạp hơn.
Trang 5Mô hình hướng đối tượng
Mô hình hóa các đối tượng
Đối tượng (Object): Được đặc trưng bởi định danh và các tính chất trong đó:
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 (O 1 ==O 2 ) nếu chúng có cùng OID
Hai đối tượng là bằng nhau (O 1 =O 2 ) 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
Trang 6Mô hình hướng đối tượng
Mô hình hóa các đối tượng
Xem mỗi đối tượng như là một tập (I, c, v) trong đó:
I: Là định danh đối tượng (OID)
C: Là kiểu khởi tạo (type constructor)
V: Là trạng thái đối tượng hay còn gọi là giá trị hiện thời (current value)
Ngôn ngữ định nghĩa đối tượng (Object definition language – ODL) thường liên quan chặt chẽ đến việc khởi tạo kiểu đối tượng trong DB trong ứng dụng cụ thể
Có 3 kiểu khởi tạo cơ bản nhất là: Phần tử (atom), bản ghi
(tuple), tập hợp (set).
Trang 7Mô hình hướng đối tượng
Mô hình hóa các đối tượng
chỉ định bằng một tên có thể ứng với một thuộc tính, một hàm hay một đối tượng con thành phần
Ví dụ:
Thuộc tính đơn: tên của một người,
Hàm: Hàm tuổi (của một người),
Thuộc tính kép: các con của một người,
Trang 8Mô hình hướng đối tượng
Mô hình hóa các đối tượng
Dựa trên các thao tác có thể được thực thi trên đối tượng
Ý tưởng về “che dấu thông tin”, người sử dụng
tương tác với đối tượng thông qua Interface
(Signature)
Giảm tính “đóng gói” chia cấu trúc đối tượng
thành 2 phần:
Thuộc tính Hidden Thuộc tính Visible
Trang 9Đóng gói đối tượng (Encapsulation)
OOPL và OO system
quan hệ truyền thống
Trang 10Đóng gói đối tượng (Encapsulation)
- Chẳng hạn: Select, Insert, Delete, Update có một dạng cố định và có thể sử dụng cho bất kỳ quan hệ nào trong DB
cấu trúc bên trong của DB.
Trang 11Giao tiếp giữa các đối tượng
Thông báo: TenPhuongThuc(các tham số)
Ví dụ: Có thể gửi thông báo tới một đối tượng p của lớp cửa:
p: mở(30)
p: đóng
p: chiều rộng.read
p: chiều rộng.write
Trang 12Liên kết ngữ nghĩa giữa các lớp
Liên kết phân cấp giữa hai lớp xác định rằng các đối tượng của lớp trên tổng quát hơn các đối tượng của lớp dưới, các đối tượng của lớp dưới có các tính chất đầy đủ và tinh tế hơn
Cho phép định nghĩa các lớp (kiểu) mới, dựa trên các lớp đã có
* Con người
- Tên
- Nơi làm việc
* Nhân viên
Trang 13Giao tiếp giữa các đối tượng
Thông báo: các đối tượng trao đổi (giao lưu thông tin)
với nhau bằng thông báo.
Thông báo gồm tên của một phương thức và các tham số của nó
Khối tham số cho phép bằng việc gửi đi dẫn gọi một
phương thức Public của một đối tượng
Đối tượng phản ứng lại một thông báo bằng cách thực hiện phương thức liên kết và đưa trả về các tham số kết quả của phương thức.
Một CSDL đối tượng xuất hiện như một tập các đối
Trang 14Liên kết ngữ nghĩa giữa các lớp
Kế thừa: Là sự truyền tính chất của một lớp tới lớp con của nó
Mọi phần tử của lớp con kế thừa các tính chất của lớp trên
Một số tính chất của lớp con có thể được làm tinh tế hơn định nghĩa lại
Ví dụ: thuộc tính “Nơi làm việc” của lớp “Con người”
có thể được định nghĩa lại với giá trị null ở mức của lớp “Người thất nghiệp”
Trang 15Liên kết ngữ nghĩa giữa các lớp
Tính kế thừa bội: cho phép một lớp có nhiều lớp trên trực
tiếp (được kế thừa từ nhiều lớp)
Lớp con kế thừa các tính chất và phương pháp của các lớp trên
Có thể xảy ra và cần được giải quyết những xung đột về tên các tính chất hay phương pháp
Trang 16Ràng buộc về phạm vi liên kết
một phạm vi nào đó thường có cùng kiểu lớp
có một phạm vi gắn với nó.
Trang 17Ràng buộc về phạm vi liên kết
giữa các tập đối tượng tạm thời và tập các đối tượng cố định
(persistent) trong cơ sở dữ liệu và do đó có thể được truy nhập và được chia sẻ bởi nhiều chương trình
Tập tạm thời tồn tại tạm thời trong quá trình thực hiện của chương trình nhưng không được lưu lại khi chương trình kết thúc
Trang 18Ràng buộc về phạm vi liên kết
trình để chứa kết quả của một truy vấn lựa chọn một số đối tượng từ tập cố định và sao chép những đối tượng đó sang tập tạm thời
định
Chương trình sau đó có thể thao tác các đối tượng trong tập tạm thời và khi chương trình kết thúc, tập tạm thời
không tồn tại nữa
Nhiều tập hợp, tạm thời hay cố định có thể chứa các đối tượng cùng kiểu.
Trang 19Tổ chức các tập đối tượng
T ác tử xây (constructor): lớp cấu trúc, cho phép áp đặt một cấu trúc lên một tập đối tượng và định nghĩa các tính chất cấu trúc đa trị
Các tác tử xây:
bộ (tuple): cho phép whom gộp các thuộc tính (tích Đề các)
tập (set): cho phép định nghĩa các nhóm không sắp thứ tự, không chứa các phần tử giống nhau
túi (bag): các tập không sắp thứ tự, có các phần tủ giống nhau
danh sách (list): cho phép định nghĩa các nhóm có thứ tự,
Trang 20Tổ chức các tập đối tượng
Một nhóm đối tượng kế thừa các tính chất của tác
tử xây nếu có tác tử xây đứng trước
Ví dụ có thể quản lý dễ dàng các danh sách các bảng sau:
class câu
nội dung: list array char;
class văn-bản
đoạn : list câu