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

Chương 2: CSDL Hướng đối tượng 1

NỘI DUNG MÔN HỌC

1

Chương 1. Tổng quan CSDL phân tán (4)

Chƣơng 2. Tổng quan CSDL hƣớng đối tƣợng

2

3

Chương 3. Cơ bản về Oracle (4)

4

Chương 4: Lập trình PL/SQL (4)

5

Chương 5: Procedure, Function (4)

6

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 2

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

Chương 2: CSDL Hướng đối tượng 3

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 tượng phức kết động (Dynamic binding); Đối (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

4

Đị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 5

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 6

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 7

Giới thiệu (tt)

 Đa hình (Polymorphism)

Có 3 dạng đa hình: Về

tử

(operation

polymorphism)=

tác 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 8

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 9

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 10

Giới thiệu (tt)

Các đặc tính thuộc hướng đối tượng

1. Đối tượng phức 5. Tính thừa kế

6. Gắn kết động (dynamic bind)

2. Định danh dữ liệu 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

Giới thiệu (tt)

Các đặc tính thuộc hướng đối tượng

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 13. Phải cung cấp cách đơn giản để truy vấn dữ liệu

10. Phải kiểm soát được CSDL rất lớn 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

Ví dụ mô hình đối tƣợng

SVien

hoc

Ten Lop Nganh HPhan Ten SLuong 1..* 1..* 0..* 0..*

mo

LapTKB() InBangDiem() 1 1

Diem DiemTH DiemLT DiemPrj 0..* 0..* SuaDiem() MHoc

+MHoc truoc

Ten Khoa SoTinChi 0..* 0..*

CapNhatSTC()

0..* 0..* +MHoc sau

Dieu kien

Chương 2: CSDL Hướng đối tượng 13

Ví dụ mô hình đối tƣợng

//du lieu thanh vien

char * makh; char * tenkh; //ham thanh vien

khoa (); void nhap(); void xuat(); char * get_makh(); char * get_tenkh(); void set_makh(char * bmakh); void set_tenkh(char * btenkh);

class khoa { private: public: };

Chương 2: CSDL Hướng đối tượng 14

II. Mô hình dữ liệu

File Systems

Hierarchical

Network

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

Tại sao phải xây dựng mô hình đối tượng  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

III. Cơ sở dữ liệu đố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).

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.

ĐT 2

ĐT 3

ĐT 1

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.

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)

Kế thừa bội (Multiple Inheritance)

Person

Person

Employee

Student

Employee

Student

SalePerson

Developer

PartTimeStudent

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

CSDL đối tƣợng (3. tt)

Đa trị (Polymorphism)

– Nạp chồng (Overloading) – Viết đè (Overriding)

Shape

paint()

Rectangle

paint()

paint(Point x)

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

Các hãng phát triển ODBMS

• Informix: Illustra (Informix-Universal Server) • Oracle: Oracle 8 • Hewlett-Packard • Unisys: OSMOS • IBM: DB2 ver 3 • Sybase: Adaptive Server (introduced Sept. ‘97)

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:

tí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 (CASE: Computer-Aided Software của máy 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

Các quy tắc

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

Mô hình quan hệ NGUOI(id, hoten, tuoi) NHANVIEN(id, luong)

Mô hình hướng đối tượng

Class NHANVIEN inherits: NGUOI; properties Luong: Integer; End NHANVIEN.

Class NGUOI properties Id: String; Hoten: String; Tuoi: Integer; End NGUOI.

Chương 2: CSDL Hướng đối tượng 40

Các quy tắc

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();

Chương 2: CSDL Hướng đối tượng 41

Ví dụ: (Mối quan hệ 1-1)

Mô hình hướng đối tượng

Mô hình ER

id_tk

TRUONGKHOA

hoten

(1,1)

tuoi

quanly

id_k

(1,1)

Class TRUONGKHOA properties Id_tk: String; Hoten: String; Tuoi: Integer; Quanly: KHOA; End TRUONGKHOA.

KHOA

tenkhoa

sodienthoai

Mô hình quan hệ

TRUONGKHOA(id_tk, hoten, tuoi)

Class KHOA properties Id_k: String; Tenkhoa: String; Sodienthoai: String; Quanly: TRUONGKHOA; End KHOA.

KHOA(id_k, tenkhoa, sodienthoai, id_tk)

Chương 2: CSDL Hướng đối tượng 42

Ví dụ: (Mối quan hệ 1-nhiều) Mô hình ER

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

Mô hình ER

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 quan hệ GIAOVIEN(id_gv, hoten, tuoi) MON(id_m, tenmon, sotiet) GIANG(id_gv, id_m)

44 Chương 2: CSDL Hướng đối tượng

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)

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:

:

:

Chương 2: CSDL Hướng đối tượng 45

Ví dụ:

Mô hình ER

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.

Chương 2: CSDL Hướng đối tượng 46

Việc chuyển đổi được thực hiện tương tự như mối quan hệ

Quy tắc 4. (Quy tắc chuyển đổi mối quan hệ tự thân) 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)

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:

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

Chuẩn hoá sơ đồ ODL

Thiết kế sơ đồ khái niệm UML

Cài đặt ứng dụng OODBMS

Chương 2: CSDL Hướng đối tượng 50

6. Phân tích, thiết kế CSDL HĐT 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.

Lớp

Kế thừa

Quan hệ Hàm Bao gói Cá thể

Đối tượng

Thông điệp

Đa xạ

Chương 2: CSDL Hướng đối tượng

Những khái niệm cơ bản của phƣơng pháp hƣớng đối tƣợng 51

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

MoTaMatHang

1 1..*

1..*

1

Được-sử-dụng-trong

Chứa-trong

1

Mô-tả 1

1

CuaHang

MatHang

Có 1 *

Quản-lý

* * 1

1

1 Có 1..*

Được-quản-lý-bởi

PhienBanHang

Thực-hiện

1 1

HBH

NguoiQL

1..*

1

Được-thực-hiện-bởi

Ghi-nhận-bán-hàn

Được-khởi-động-bởi

Được-trả

1 1 1 1 1

1

1

KhachHang

NguoiBan

ThanhToan

1

1

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

Chương 2: CSDL Hướng đối tượng 53