I. Giới thiệu
II. Mô hình dữ liệu
III. CSDL hƣớng đối tƣợng (CSDLHĐT)
IV. Các hệ quản trị CSDLHĐT
V. Ƣu điểm của CSDL HĐT
VI. Chuyển đổi từ mô hình đối tƣợng sang mô
hình quan hệ
VII.Phân tích, thiết kế CSDL HĐT với UML
53 trang |
Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 329 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Tổng quan cơ sở dữ liệu hướng đối tượng - Nguyễn Thị Mỹ Dung, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài giảng
CƠ SỞ DỮ LIỆU
NÂNG CAO
Số tc: 2; LT: 20; Btập: 10
GV: Nguyễn Thị Mỹ Dung
Khối lớp: Đại học L2
1 Chương 2: CSDL Hướng đối tượng
NỘI DUNG MÔN HỌC
2
1
2
3
4
Chương 1. Tổng quan CSDL phân tán (4)
Chƣơng 2. Tổng quan CSDL hƣớng đối tƣợng
Chương 3. Cơ bản về Oracle (4)
Chương 4: Lập trình PL/SQL (4)
5
6
Chương 5: Procedure, Function (4)
Chương 6: Thiết kế đối tượng (6)
7 Chương 7: Truy vấn trong CSDL HĐT (4)
Chương 2: CSDL Hướng đối tượng
Ch2: Tổng quan CSDL HĐT
I. Giới thiệu
II. Mô hình dữ liệu
III. CSDL hƣớng đối tƣợng (CSDLHĐT)
IV. Các hệ quản trị CSDLHĐT
V. Ƣu điểm của CSDL HĐT
VI. Chuyển đổi từ mô hình đối tƣợng sang mô
hình quan hệ
VII.Phân tích, thiết kế CSDL HĐT với UML
3 Chương 2: CSDL Hướng đối tượng
4
I. Giới thiệu
Các khái niệm của hướng đối tượng bao gồm:
Định danh đối tượng (OID); Nạp chồng (Overriding);
Viết đè (Overloading); Đa hình (Polymorphism); Liên
kết động (Dynamic binding); Đối tượng phức
(complex object).
Định danh đối tượng (OID: Object Identifier):
Trong RDBMS: OID= khóa chính
Trong OODBMS: khoá chính không dùng làm
OID, vì: khoá chính chỉ duy nhất trong 1 quan hệ,
không phải trên toàn hệ thống; khoá chính được
chọn từ các thuộc tính phụ thuộc vào trạng thái
của đối tượng.
Chương 2: CSDL Hướng đối tượng
5
Định danh đối tượng (tt)
Cần phân biệt 2 trường hợp:
2 đối tượng là một (identical): cùng OID
2 đối tượng bằng nhau (equal): khác OID, nhưng trị
các thuộc tính bằng nhau:
Bằng cạn (shallow equality): khi loại bỏ hết các
tham chiếu (khoá ngoài) đến các đối tượng khác
Bằng sâu (deep equality): khi tất cả các đối
tượng được tham chiếu đến cũng bằng nhau
Chương 2: CSDL Hướng đối tượng
6
Giới thiệu (tt)
Nạp chồng (Overriding):
Định nghĩa lại một đặc tính (thuộc tính/
phương thức) trong lớp con (subclass).
Định nghĩa mới này mới thực sự được dùng
trong lớp con đang xét, chứ không phải định
nghĩa đã có trong lớp cha.
Chương 2: CSDL Hướng đối tượng
7
Giới thiệu (tt)
Viết đè (Overloading)
Là khái niệm tổng quát hơn overriding
Cho phép tên một phương thức được dùng lại
trong một hoặc nhiều định nghĩa cho lớp.
Có thể thay đổi trong định nghĩa phương thức:
Các tham số: về số lượng tham số, kiểu tham số,
kiểu trả về
Làm đơn giản hoá trình ứng dụng: cho phép ngữ
cảnh được xác định ý nghĩa nào thích đáng nhất tại
một thời điểm.
Chương 2: CSDL Hướng đối tượng
8
Giới thiệu (tt)
Đa hình (Polymorphism)
Có 3 dạng đa hình:
Về tác tử (operation polymorphism)=
overloading
Về sự bao hàm (inclusion polymorphism): một
phương thức trong lớp cha được thừa kê trong lớp
con.
Về tham số, hay còn gọi về khuôn dạng chung
(parametric polymorphism/ genericity): dùng các
kiểu như các tham số, để định ra các template.
Chương 2: CSDL Hướng đối tượng
9
Giới thiệu (tt)
Liên kết động (Dynamic binding)
Gắn kết (binding)= quá trình chọn phương
thức thích hợp, dựa trên kiểu của đối tượng
Quá trình gắn kết động/ gắn kết trễ (dynamic
binding /late binding): việc xác định kiểu đối
tượng được trì hoãn đến lúc khai thác chương
trình, chứ không phải ngay khi biên dịch.
Chương 2: CSDL Hướng đối tượng
10
Giới thiệu (tt)
Đối tượng phức (complex object)
Là đối tượng gồm các đối tượng con, hoặc các
thành tố khác.
Đối tượng được chứa sẽ được kiểm soát theo 2
cách:
Được bao gói bên trong đối tượng phức, là một
thành phần của đối tượng phức, chỉ được truy
cập thông qua phương thức của đối tượng
phức.
Họăc, tồn tại độ clập ngoài đối tượng phức, và
chỉ có OID của nó được đặt trong đối tượng
phức.
Chương 2: CSDL Hướng đối tượng
Giới thiệu (tt)
1. Đối tượng phức 5. Tính thừa kế
2. Định danh dữ
liệu
6. Gắn kết động (dynamic bind)
3. Tính bao gói 7. DML phải đầy đủ về tính toán
4. Kiểu và lớp 8. Tập các kiểu dữ liệu phải mở rộng
được
Chương 2: CSDL Hướng đối tượng 11
Các đặc tính thuộc hướng đối tượng
Giới thiệu (tt)
9. Có tính bền vững dữ liệu 12. Phải phục hồi được từ
các sự cố phần cứng và
phần mềm
10. Phải kiểm soát được
CSDL rất lớn
13. Phải cung cấp cách đơn
giản để truy vấn dữ liệu
11. Phải hỗ trợ các người
dùng cạnh tranh nhau
Chương 2: CSDL Hướng đối tượng 12
Các đặc tính thuộc hướng đối tượng
13
Ví dụ mô hình đối tƣợng
SVien
Ten
Lop
Nganh
LapTKB()
InBangDiem()
Diem
DiemTH
DiemLT
DiemPrj
SuaDiem()
HPhan
Ten
SLuong
0..* 1..*
hoc
MHoc
Ten
Khoa
SoTinChi
CapNhatSTC()
0..*
1
mo
0..*
0..*
Dieu kien
+MHoc truoc
+MHoc sau
Chương 2: CSDL Hướng đối tượng
14
Ví dụ mô hình đối tƣợng
class khoa {
//du lieu thanh vien
private:
char * makh;
char * tenkh;
//ham thanh vien
public:
khoa ();
void nhap();
void xuat();
char * get_makh();
char * get_tenkh();
void set_makh(char * bmakh);
void set_tenkh(char * btenkh);
};
Chương 2: CSDL Hướng đối tượng
II. Mô hình dữ liệu
File Systems
Network Hierarchical
Relational
Object-Oriented
System
Semantic Data
Model (ERD)
Complex Object
Model
Object-Oriented
Databases
Chương 2: CSDL Hướng đối tượng 15
Mô hình dữ liệu (tt)
Các mô hình dữ liệu:
Hệ thống tập tin (file system): 1960 - 1980
Phân cấp (hierarchical): 1970 - 1990
Mạng (network): 1970 - 1990
Quan hệ (relational): 1980 - nay
Hướng đối tượng (object-oriented): 1990 - nay
Đối tượng - quan hệ (object-relational): 1990 -
nay
Kho dữ liệu (data warehouse): 1980 - nay
Web-enabled: 1990 - nay
Chương 2: CSDL Hướng đối tượng 16
Nhu nhu cầu giảm chi phí, bài toán ngày một phức tạp
và các chức năng hướng tới một mục tiêu là vượt lên
trong môi trường cạnh tranh gay gắt ngày nay.
Từ quan điểm của công nghệ, xuất hiện áp lực thúc đẩy
việc áp dụng các công nghệ hướng đối tượng, nguyên
tắc và phương pháp tiếp cận trong suốt chu trình phát
triển phần mềm.
Mục tiêu là cung cấp một dòng mới của cơ sở dữ liệu,
được thiết kế và tối ưu hóa để lưu trữ và thao tác trên
các đối tượng
Tại sao phải xây dựng mô hình đối tượng
1. Khái niệm
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).
III. Cơ sở dữ liệu đối tượng
CSDL đối tƣợng (1. tt)
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ệ.
Chương 2: CSDL Hướng đối tượng 19
CSDL đối tƣợng (tt)
2. Kiến trúc của CSDL đối tượng
CSDL đối tượng được tối ưu hóa cho truy cập điều
hướng và điều phối các đối tượng giữa các máy chủ cơ sở
dữ liệu Server và Client
Client-server architecture of an ODBMS
Chương 2: CSDL Hướng đối tượng 20
CSDL đối tƣợng (tt)
3. Các nguyên lý chính áp dụng cho CSDLĐT
a. Đóng gói và 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 1
ĐT 2
ĐT 3
Chương 2: CSDL Hướng đối tượng 21
CSDL đối tƣợng (3. tt)
b. 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ột đố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.
Chương 2: CSDL Hướng đối tượng 22
CSDL đối tƣợng (3. tt)
Có 2 loại kế thừa cơ bản:
Kế thừa đơn (Single Inheritance)
Person
Employee Student
SalePerson Developer
Person
Employee Student
PartTimeStudent
Kế thừa bội (Multiple
Inheritance)
Chương 2: CSDL Hướng đối tượng 23
CSDL đối tƣợng (3. tt)
c. Đa trị (Polymorphism)
Đa trị 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.
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.
Chương 2: CSDL Hướng đối tượng 24
Shape
paint()
Rectangle
paint()
paint(Point x)
Đa trị (Polymorphism)
– Nạp chồng (Overloading)
– Viết đè (Overriding)
CSDL đối tƣợng (3. tt)
Chương 2: CSDL Hướng đối tượng 25
CSDL đối tƣợng (3. tt)
Abstract Data Type (ADT) =
Representation + Operations
Object Orientation =
Abstract DataTyping + Inheritance + Object Identity
Object-Oriented Programming (OOP) =
Classes + Inheritance
Object-Oriented Databases (OODB) =
Object Orientation + Database Capabilities
Chương 2: CSDL Hướng đối tượng 26
IV. Các hệ quản trị CSDLĐT
Hệ quản trị CSDLĐT là mở rộng sử dụ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 vấn 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 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
Chương 2: CSDL Hướng đối tượng 27
• Informix: Illustra (Informix-Universal Server)
• Oracle: Oracle 8
• Hewlett-Packard
• Unisys: OSMOS
• IBM: DB2 ver 3
• Sybase: Adaptive Server (introduced Sept. ‘97)
Các hãng phát triển ODBMS
Chương 2: CSDL Hướng đối tượng 28
V. Ƣ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. 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á.
Ƣu điểm (tt)
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.
Nhược đ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.
Nhƣợc điểm (tt)
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.
Hệ QTCSDL HĐT thích hợp với những ứng dụng mới:
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.
Ứng dụng mới (tt)
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.
VI. Chuyển đổi từ mô hình đối tƣợng sang mô
hình quan hệ
Có một số cách thức thực hiện:
Một trong các cách sử dụng phổ biến là là định
nghĩa một bảng cho mỗi lớp, trong đó mỗi cột trong
bảng đại diện cho một thuộc tính của lớp (đơn trị,
hoặc đa trị)
Employee_Table
Chương 2: CSDL Hướng đối tượng 35
Chuyển đổi (tt)
Tất cả các thuộc tính của Employee được lưu trong
bảng Employee
Những thuộc tính trên cùng với các thuộc tính bổ
sung của HourlyEmployee sẽ được copy để lưu
bảng HourlyEmployee
Tương tự đối với bảng SalariedEmployee
Chương 2: CSDL Hướng đối tượng 36
Chuyển đổi (tt)
Nhận xét:
Việc chuyển mô hình đối tượng về quan hệ khi có
kế thừa sẽ phải copy các thuộc tính của lớp cha
sang lưu vào lớp con nên không bảo đảm được các
dạng chuẩn dữ liệu
Một khi các sơ đồ cần thiết đã được định nghĩa mã
chuyển đổi từ đối tượng sang quan hệ được ghi.
Mã này là cần thiết để có một đối tượng, khi nó
được tạo ra và xử lý trong các ngôn ngữ lập trình
và loại bỏ cấu trúc (deconstruct) để biểu diễn
chúng theo yêu cầu của cơ sở dữ liệu.
Chương 2: CSDL Hướng đối tượng 37
Chuyển đổi (tt)
Ngoài ra, khi cần tìm các đối tượng
HourlyEmployee trong CSDL thì phải kết nối các
bảng HourlyEmployee và Employee. Như vậy sẽ
tốn kém thời gian.
Vấn đề quan trọng nữa là khi cập nhật thông tin,
vì có nhiều mối quan hệ giữa các bảng thực thể
nên độ phức tạp sẽ càng tăng.
Chương 2: CSDL Hướng đối tượng 38
Chuyển đổi (tt)
Mỗi tập thực thể của mô hình ER chuyển đổi
thành một lớp đối tượng có cùng tên và cùng tập
thuộc tính. Các thuộc tính đa trị và phức hợp của mô
hình ER được chuyển thành các thuộc tính đa trị (sử
dụng từ khoá set) và phức hợp (sử dụng từ khoá
tuple) của mô hình hướng đối tượng.
Việc xác định các phương thức cho mỗi lớp đối
tượng được thực hiện sau đó bởi người thiết kế hệ
thống CSDL.
Chương 2: CSDL Hướng đối tượng 39
Quy tắc 1. (Quy tắc chuyển đổi mối quan hệ is-a)
Nếu tập thực thể A là có mối quan hệ is-a với tập thực thể B
thỡ lớp A sẽ kế thừa tất cả các thuộc tính trong lớp B (tức: lớp A là
lớp con của lớp B).
Ví dụ:
Mô hình ER
Class NGUOI
properties
Id: String;
Hoten: String;
Tuoi: Integer;
End NGUOI.
Class NHANVIEN
inherits: NGUOI;
properties
Luong: Integer;
End NHANVIEN.
Mô hình hướng đối tượng
Mô hình quan hệ
NGUOI(id, hoten, tuoi)
NHANVIEN(id, luong)
NGUOI
NHANVIEN
is-a
id
hoten
luong
tuoi
Các quy tắc
Chương 2: CSDL Hướng đối tượng 40
Quy tắc 2. (Quy tắc chuyển đổi mối quan hệ nhị nguyên không có
thuộc tính)
Nếu 2 tập thực thể A và B có mối quan hệ R thì mỗi lớp tương
ứng A và B sẽ được bổ sung thêm thuộc tính mối quan hệ R (khai báo
thuộc tính đa trị/đơn trị là tuỳ thuộc vào bản số liên quan). Cụ thể:
Xét hai trường hợp sau:
* Trường hợp 1: Nếu chỉ số cực đại của cung nối A và R là 1, thì
thuộc tính R trong lớp A sẽ được khai báo:
: ;
* Trường hợp 2: Nếu chỉ số cực đại của cung nối A và R là n, thì,
thuộc tính R trong lớp A sẽ được khai báo:
: set();
Các quy tắc
Chương 2: CSDL Hướng đối tượng 41
Ví dụ: (Mối quan hệ 1-1)
Mô hình ER Mô hình hướng đối tượng
Class TRUONGKHOA
properties
Id_tk: String;
Hoten: String;
Tuoi: Integer;
Quanly: KHOA;
End TRUONGKHOA.
Class KHOA
properties
Id_k: String;
Tenkhoa: String;
Sodienthoai: String;
Quanly: TRUONGKHOA;
End KHOA.
Mô hình quan hệ
TRUONGKHOA(id_tk, hoten, tuoi)
KHOA(id_k, tenkhoa, sodienthoai,
id_tk)
TRUONGKHOA
KHOA
quanly
id_tk
hoten
tenkhoa
tuoi
id_k
sodienthoai
(1,1)
(1,1)
Chương 2: CSDL Hướng đối tượng 42
Ví dụ: (Mối quan hệ 1-nhiều)
Mô hình ER
GIAOVIEN
KHOA
thuoc
id_gv
hoten
tenkhoa
tuoi
id_k
sodienthoai
M« h×nh thùc thÓ - mèi quan hÖ
(1,1)
(1,n)
Mô hình HĐT
Class GIAOVIEN
properties
Id_gv: String;
Hoten: String;
Tuoi: Integer;
Thuoc: KHOA;
End GIAOVIEN.
Class KHOA
properties
Id_k: String;
Tenkhoa: String;
Sodienthoai: String;
Thuoc: set(GIAOVIEN);
End KHOA.
Mô hình quan hệ
GIAOVIEN(id_gv, hoten, tuoi, id_k)
KHOA(id_k, tenkhoa, sodienthoai)
Chương 2: CSDL Hướng đối tượng 43
Ví dụ: (Mối quan hệ nhiều-nhiều)
Mô hình hướng đối tượng
Class GIAOVIEN
properties
Id_gv: String;
Hoten: String;
Tuoi: Integer;
Giang: set(MON);
End GIAOVIEN.
Class MON
properties
Id_m: String;
Tenmon: String;
Sotiet: Integer;
Giang: set(GIAOVIEN);
End MON.
Mô hình ER
Mô hình quan hệ
GIAOVIEN(id_gv, hoten, tuoi)
MON(id_m, tenmon, sotiet)
GIANG(id_gv, id_m)
GIAOVIEN
MON
giang
hoten
tenmon
tuoi
id_m
sotiet
id_gv
(1,n)
(1,n)
Chương 2: CSDL Hướng đối tượng 44
Nếu mối quan hệ R của hai tập thực thể A1 và A2 có kèm các
thuộc tính, khi đó, ngoài 2 lớp A1 và A2 tương ứng, ta cần bổ sung
thêm một lớp mới C đóng vai trò trung gian. Cụ thể:
Lớp C bao gồm các thuộc tính sau:
Các thuộc tính của mối quan hệ R.
Hai thuộc tính có khai báo:
:
:
Quy tắc 3. (Quy tắc chuyển đổi mối quan hệ nhị
nguyên n-n có kèm thuộc tính)
Chương 2: CSDL Hướng đối tượng 45
Mô hình quan hệ
GIAOVIEN(id_gv, hoten, tuoi)
KHOA(id_k, tenkhoa, sodienthoai)
GVIEN_KHOA(id_gv, id_k, tongsotiet)
Mô hình hƣớng đối tƣợng
Class GIAOVIEN
properties
Id_gv: allID;
Hoten: String;
Tuoi: Integer;
Giang1: set(GVIEN_KHOA);
End GIAOVIEN.
Class KHOA
properties
Id_k: allID;
Tenkhoa: String;
Sodienthoai: String;
Giang2: set(GVIEN_KHOA);
End KHOA.
Class GVIEN_KHOA
properties
Id_gvien_khoa: allID;
Tongsotiet: Integer;
Giang1: GIAOVIEN;
Giang2: KHOA;
End GVIEN_KHOA.
Ví dụ:
Mô hình ER
GIAOVIEN
KHOA
giang
hoten
tenkhoa
tuoi
id_k
sodienthoai
id_gv
tongsotiet
(1,n)
(1,n)
Chương 2: CSDL Hướng đối tượng 46
Quy tắc 4. (Quy tắc chuyển đổi mối quan hệ tự thân)
Việc chuyển đổi được thực hiện tương tự như mối quan hệ
nhị nguyên (bước 2 và bước 3).
Ví dụ: (Mối quan hệ tự thân) Mô hình hƣớng đối tƣợng
Class NGUOI
properties
Id: allID;
Hoten: String;
Tuoi: Integer;
Con: set(NGUOI);
Cha, Me: NGUOI;
End GIAOVIEN.
Mô hình quan hệ
NGUOI(id, hoten, tuoi, id_cha, id_me)
NGUOI
Sinh
id
hoten
tuoi con
(0,n)
cha, me
(1,1)
Chương 2: CSDL Hướng đối tượng 47
Quy tắc 5. (Quy tắc chuyển đổi mối quan hệ đa nguyên)
Việc chuyển đổi được thực hiện tương tự như mối quan hệ nhị
nguyên n-n có thuộc tính (bước 3).
VD:
GIAOVIEN
LOP MONHOC
DAY
Thoigian
(0, n)
(1, n) (1, n)
Id_gv
Hoten
Id_lop Id_monhoc Sotiet
Chương 2: CSDL Hướng đối tượng 48
Kết quả chuyển đổi thành mô hình hƣớng đối
tƣợng
Class GIAOVIEN
properties
Id_gv: String;
Hoten: String;
End GIAOVIEN.
Class LOP
properties
Id_lop: String;
End LOP.
Class MONHOC
properties
Id_monhoc: String;
Sotiet: Integer;
End MONHOC.
Class LICHDAY
properties
Thoigian: String;
Giang: GIAOVIEN;
Gomco: MONHOC;
Botri: LOP;
End LICHDAY.
Chương 2: CSDL Hướng đối tượng 49
VII. Phân tích, thiết kế CSDL HĐT 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
Chương 2: CSDL Hướng đối tượng 50
(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ạ
Những khái niệm cơ bản của phƣơng pháp hƣớng đối tƣợng
6. Phân tích, thiết kế CSDL HĐT với UML
Chương 2: CSDL Hướng đối tượng 51
Ví dụ: Biểu đồ lớp của hệ thống bán hàng
1 1
1
1..*
1
1
MatHang
Mô-tả
1
1
ThanhToan NguoiBan KhachHang
PhienBanHang
NguoiQL
Được-trả
Được-quản-lý-bởi
1 1
1
Có
1..*
Quản-lý
HBH
1
DongBanHang
DanhMucMatHang MoTaMatHang
CuaHang
Được-mô-tả-bởi
Ghi-nhận-hàng-bán
Có
1 *
Chứa
1 1..*
0..1
Được-sử-dụng-trong
*
Chứa-trong
1..*
1
1
*
1
1
Thực-hiện
1
1 1
1
1
Được-khởi-động-bởi
Được-thực-hiện-bởi
Ghi-nhận-bán-hàn
Chương 2: CSDL Hướng đối tượng 52
Tổng kết chƣơng
- Giới thiệu CSDL HĐT
- Một số mô hình dữ liệu
- Giới thiệu các hệ quản trị CSDLHĐT
- Phương pháp chuyển đổi từ mô hình đối tượng
sang mô hình quan hệ
- Tổng quan về phân tích, thiết kế CSDL HĐT với
UML
53 Chương 2: CSDL Hướng đối tượng
Các file đính kèm theo tài liệu này:
- bai_giang_co_so_du_lieu_nang_cao_chuong_2_tong_quan_co_so_du.pdf