Bài giảng CƠ SỞ DỮ LIỆU NÂNG CAO

Chương 6: Thiết kế đối tượng

1

Số tc: 2; LT: 20; Btập: 10 GV: Nguyễn Thị Mỹ Dung Khối lớp: Đại học L2

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 6: Thiết kế đối tượng

2

Ch6: Thiết kế CSDL đối tượng

Chương 6: Thiết kế đối tượng

3

I. Thiết kế đối tượng II. Định nghĩa dữ liệu thành viên III. Định nghĩa hàm thành viên IV. Bài tập thực hành

Cho CSDL mẫu như sau

Xét CSDL quan hệ:

1. DONVI(MADV, TENDV)  Parent 2. CANBO(MACB, HOTENCB, …, MADV)  Child 3. CHUCVU(MACV, TENCV, HESO)  Parent 4. GIUCHUCVU(MACB, MACV, NGAYBD,

NGAYKT)  Dependent

… Và giả sử có Table CANBO khác: CANBO(MACB, HOTENCB, …, CBQL)  Self/

Chương 6: Thiết kế đối tượng

4

Cycle

I. Tạo đối tượng

-- Định nghĩa dữ liệu thành viên -- Định nghĩa các hàm thành viên

B1: Tạo đối tượng theo cú pháp sau: CREATE [OR REPLACE] TYPE AS OBJECT ( ); B2: Tạo bảng như đối tượng theo cú pháp: CREATE TABLE OF ( -- Thêm các ràng buộc nếu có ); B3: Nhập dữ liệu cho đối tượng: INSERT INTO VALUES (DS_GIÁTRỊ);

Chương 6: Thiết kế đối tượng

5

Tạo đối tượng (tt)

Chương 6: Thiết kế đối tượng

6

CREATE TYPE DONVI_TYPE AS OBJECT( MADV NVARCHAR2(6), TENDV NVARCHAR2(30) ); CREATE TABLE DONVI OF DONVI_TYPE( PRIMARY KEY(MADV) ); Insert Into DONVI Values(‘DV0001’, ‘Phong giam doc’) ; Insert Into DONVI Values(‘DV0002’, ‘Phong to chuc’) ;

II. Định nghĩa dữ liệu thành viên ĐT

RETURN VARCHAR2,

(THAMSO ,…),

RETURN INTEGER,

CREATE OR REPLACE TYPE KHOA_TYPE AS OBJECT ( THUỘCTÍNH , … MEMBER FUNCTION GET_THUỘCTÍNH … STATIC PROCEDURE SET_THUỘCTÍNH STATIC FUNCTION TÊNHÀM … STATIC PROCEDURE TÊNTHỦTỤC, … );

Chương 6: Thiết kế đối tượng

7

Dữ liệu thành viên (tt)

Ví dụ: Tạo đối tượng cán bộ và hàm dữ liệu

thành viên lấy tên đơn vị khi nhập mã đơn vị.

CREATE OR REPLACE TYPE CANBO_TYPE

AS OBJECT(

MACB NVARCHAR2(6), HOTENCB NVARCHAR2(30), THUOCDV REF DONVI_TYPE, MEMBER FUNCTION GET_DONVI RETURN

DONVI_TYPE

);

Chương 6: Thiết kế đối tượng

8

III. Định nghĩa hàm thành viên

RETURN Kiểu_dữ_liệu IS

IS

Thân_thủ_tục;

CREATE OR REPLACE TYPE BODY tên_kiểu AS/IS MEMBER FUNCTION Tên_hàm(ds_tham_số) BEGIN Thân_hàm; END; MEMBER PROCEDURE Tên_thủ_tục (ds_tham_số) BEGIN END; END;

Chương 6: Thiết kế đối tượng

9

Hàm thành viên (tt)

Ví dụ: Định nghĩa hàm thành viên lấy tên đơn vị khi

nhập mã đơn vị

CREATE OR REPLACE TYPE BODY CANBO_TYPE

AS

FUNCTION GET_DONVI RETURN

MEMBER DONVI_TYPE IS

RES DONVI_TYPE; BEGIN SELECT DEREF(SELF.THUOCDV) INTO RES

FROM DUAL;

Chương 6: Thiết kế đối tượng

10

RETURN RES; END; END;

Kiểu tham chiếu

 Kiểu tham chiếu Ref (Reference)

Oracle mô hình hoá kiểu tham chiếu REF như là quan hệ kết hợp, quan hệ kế thừa. Cơ chế tham chiếu và dùng chung (Sharing) các đối tượng dưới hình thức con trỏ (By Ref) sẽ nhanh hơn nhiều so với cơ chế tham chiếu theo trị (By Value) như trong mô hình quan hệ.

- Với quan hệ kết hợp, trong kiểu đối tượng bên nhiều sẽ tạo thuộc tính kiểu tham chiếu đến kiểu đối tượng bên 1.

- Với quan hệ kế thừa, trong kiểu đối tượng con, sẽ tạo thuộc tính kiểu tham chiếu đến kiểu đối tượng cha.

Chương 6: Thiết kế đối tượng

11

Kiểu tham chiếu (tt)

Truy xuất đối tượng được tham chiếu bằng một REF được gọi là giải tham chiếu. Oracle cung cấp toán tử DEREF để thực hiện điều này.

Chương 6: Thiết kế đối tượng

12

SELF mang ý nghĩa là con trỏ đến chính thể hiện của bản thân kiểu đối tượng. Chúng ta có thể dùng SELF để tham chiếu đến mọi thuộc tính cũng như phương thức khai báo bên trong kiểu đối tượng.

IV. Bài tập

1. Thiết đối tượng các bảng DONVI, CHUCVU 2. Thiết kế đối tượng CANBO, GIUCHUCVU và định nghĩa các hàm thành viên cần thiết trong đối tượng.

3. Định nghĩa các hàm:

 Tính tổng số cán bộ;  Tổng số cán bộ trong một đơn vị;  Trả về thông tin đơn vị của một cán bộ có mã

số nhập vào;

 Trả về tên cán bộ khi nhập mã cán bộ;  Trả về thông tin cán bộ đang giữ chức vụ có

mã số nhập vào.

Chương 6: Thiết kế đối tượng

13

Bài tập

 Trả về thông tin chức vụ của cán bộ có mã số

nhập vào.

4. Định nghĩa các thủ tục:

 Thêm cán bộ mới vào đơn vị có mã số nhập

vào;

 Cho phép đổi họ tên cán bộ có mã số nhập

vào bằng tên mới (được nhập vào);

 Thêm thông tin cán bộ, chức vụ, ngày bắt đầu, ngày kết thúc là chưa xác định vào đối tượng GIUCHUCVU

 Cho phép đổi chức vụ của một cán bộ có mã

Chương 6: Thiết kế đối tượng

14

số nhập vào bằng chức vụ mới.

Tổng kết chương

Chương 6: Thiết kế đối tượng

15

- Thiết kế CSDL HĐT - Khai báo các dữ liệu thành viên có trong đối tượng và định nghĩa các hàm thành viên đã khai báo.