Bài giảng Cơ sở dữ liệu nâng cao: Chương 6 Thiết kế đối tượng cung cấp cho người học những kiến thức như: Thiết kế đối tượng; Định nghĩa dữ liệu thành viên; Định nghĩa hàm thành viên; Bài tập thực hành. Mời các bạn cùng tham khảo!
Trang 1Bà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
Trang 2NỘ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 6: Thiết kế đối tượng
Trang 3Ch6: Thiết kế CSDL đối tượng
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
Trang 4Cho 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/ Cycle
4 Chương 6: Thiết kế đối tượng
Trang 5I Tạo đối tượng
B1: Tạo đối tượng theo cú pháp sau:
CREATE [OR REPLACE] TYPE <TÊNĐT>
AS OBJECT ( Định nghĩa dữ liệu thành viên Định nghĩa các hàm thành viên );
B2: Tạo bảng như đối tượng theo cú pháp:
CREATE TABLE <TÊNBẢNG> OF <TÊNĐT> (
Thêm các ràng buộc nếu có
);
B3: Nhập dữ liệu cho đối tượng:
INSERT INTO <TÊNBẢNG> VALUES (DS_GIÁTRỊ);
Trang 6Tạo đối tượng (tt)
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’) ;
Trang 7II Định nghĩa dữ liệu thành viên ĐT
CREATE OR REPLACE TYPE KHOA_TYPE
AS OBJECT (
THUỘCTÍNH <KIỂUDỮLIỆU>,
… MEMBER FUNCTION GET_THUỘCTÍNH
RETURN VARCHAR2,
… STATIC PROCEDURE SET_THUỘCTÍNH
(THAMSO <KIỂUDỮLIỆU>,…), STATIC FUNCTION TÊNHÀM
RETURN INTEGER,
… STATIC PROCEDURE TÊNTHỦTỤC,
… );
Trang 8Dữ 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
);
Trang 9III Định nghĩa hàm thành viên
CREATE OR REPLACE TYPE BODY tên_kiểu AS/IS
MEMBER FUNCTION Tên_hàm(ds_tham_số)
RETURN Kiểu_dữ_liệu IS
BEGIN
Thân_hàm;
END;
MEMBER PROCEDURE Tên_thủ_tục (ds_tham_số)
IS
BEGIN
Thân_thủ_tục;
END;
END;
Trang 10Hàm thành viên (tt)
nhập mã đơn vị
CREATE OR REPLACE TYPE BODY CANBO_TYPE
AS
MEMBER FUNCTION GET_DONVI RETURN
DONVI_TYPE IS
RES DONVI_TYPE;
BEGIN
SELECT DEREF(SELF.THUOCDV) INTO RES
FROM DUAL;
RETURN RES;
END;
END;
Trang 11Kiể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
- 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
Trang 12Kiể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
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
Trang 13IV 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
Trang 14Bà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ã
số nhập vào bằng chức vụ mới
Trang 15Tổng kết chương
- 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