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 cung cấp cho người học những kiến thức như: Giới thiệu; Mô hình dữ liệu; Cơ sở dữ liệu hướng đối tượng; Các hệ quản trị Cơ sở dữ liệu hướng đối tượng; Ưu điểm của Cơ sở dữ liệu hướng đối tượng; Chuyển đổi từ mô hình đối tượng sang mô hình quan hệ; Phân tích, thiết kế Cơ sở dữ liệu hướng đối tượng với UML.
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 NỘI DUNG MÔN HỌC Chƣơng Tổng quan CSDL hƣớng đối tƣợng Chương Tổng quan CSDL phân tán (4) Chương Cơ Oracle (4) Chương 4: Lập trình PL/SQL (4) Chương 5: Procedure, Function (4) Chương 6: Thiết kế đối tượng (6) Chương 7: Truy vấn CSDL HĐT (4) Chương 2: CSDL Hướng đối tượng Ch2: Tổng quan CSDL HĐT Giới thiệu Mơ hình liệu CSDL hƣớng đối tƣợng (CSDLHĐT) Các hệ quản trị CSDLHĐT Ƣu điểm CSDL HĐT 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 I II III IV V VI Chương 2: CSDL Hướng đối tượng I Giới thiệu Các khái niệm 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 Trong OODBMS: khố khơng dùng làm OID, vì: khố quan hệ, khơng phải tồn hệ thống; khố chọn từ thuộc tính phụ thuộc vào trạng thái đối tượng Chương 2: CSDL Hướng đối tượng Định danh đối tượng (tt) Cần phân biệt trường hợp: đối tượng (identical): OID đối tượng (equal): khác OID, trị thuộc tính nhau: Bằng cạn (shallow equality): loại bỏ hết tham chiếu (khố ngồi) đến đối tượng khác Bằng sâu (deep equality): tất đối tượng tham chiếu đến Chương 2: CSDL Hướng đối tượng Giới thiệu (tt) Nạp chồng (Overriding): Định nghĩa lại đặc tính (thuộc tính/ phương thức) lớp (subclass) Định nghĩa thực dùng lớp xét, khơng phải định nghĩa có lớp cha Chương 2: CSDL Hướng đối tượng Giới thiệu (tt) Viết đè (Overloading) Là khái niệm tổng quát overriding Cho phép tên phương thức dùng lại nhiều định nghĩa cho lớp Có thể thay đổi định nghĩa phương thức: Các tham số: số lượng tham số, kiểu tham số, kiểu trả Làm đơn giản hố trình ứng dụng: cho phép ngữ cảnh xác định ý nghĩa thích đáng thời điểm Chương 2: CSDL Hướng đối tượng Giới thiệu (tt) Đa hình (Polymorphism) Có dạng đa hình: Về tác tử (operation polymorphism)= overloading Về bao hàm (inclusion polymorphism): phương thức lớp cha thừa kê lớp Về tham số, hay cịn gọi khn dạng chung (parametric polymorphism/ genericity): dùng kiểu tham số, để định template Chương 2: CSDL Hướng đối tượng Giới thiệu (tt) Liên kết động (Dynamic binding) Gắn kết (binding)= q trình chọn phương thức thích hợp, dựa kiểu đố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 trì hỗn đến lúc khai thác chương trình, khơng phải biên dịch Chương 2: CSDL Hướng đối tượng Giới thiệu (tt) Đối tượng phức (complex object) Là đối tượng gồm đối tượng con, thành tố khác Đối tượng chứa kiểm soát theo cách: Được bao gói bên đối tượng phức, thành phần đối tượng phức, truy cập thông qua phương thức đối tượng phức Họăc, tồn độ clập ngồi đối tượng phức, có OID đặt đối tượng phức 10 Chương 2: CSDL Hướng đối tượng Chuyển đổi … (tt) Mỗi tập thực thể mơ hình ER chuyển đổi thành lớp đối tượng có tên tập thuộc tính Các thuộc tính đa trị phức hợp mơ hình ER chuyển thành thuộc tính đa trị (sử dụng từ khố set) phức hợp (sử dụng từ khố tuple) mơ hình hướng đối tượng Việc xác định phương thức cho lớp đối tượng thực sau 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 (Quy tắc chuyển đổi mối quan hệ is-a) Nếu tập thực thể A có mối quan hệ is-a với tập thực thể B thỡ lớp A kế thừa tất thuộc tính lớp B (tức: lớp A lớp lớp B) Ví dụ: Mơ hình ER id NGUOI hoten tuoi is-a NHANVI EN Mơ hình quan hệ NGUOI(id, hoten, tuoi) NHANVIEN(id, luong) luong Chương 2: CSDL Hướng đối tượng Mơ hình hướng đối tượng Class NGUOI Class NHANVIEN properties inherits: NGUOI; Id: String; properties Hoten: String; Luong: Integer; Tuoi: Integer; End NHANVIEN End NGUOI 40 Các quy tắc Quy tắc (Quy tắc chuyển đổi mối quan hệ nhị ngun khơng có thuộc tính) Nếu tập thực thể A B có mối quan hệ R lớp tương ứng A B bổ sung thêm thuộc tính mối quan hệ R (khai báo thuộc tính đa trị/đơn trị tuỳ thuộc vào số liên quan) Cụ thể: Xét hai trường hợp sau: * Trường hợp 1: Nếu số cực đại cung nối A R 1, thuộc tính R lớp A khai báo: : ; * Trường hợp 2: Nếu số cực đại cung nối A R n, thì, thuộc tính R lớp A 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 (1,1) hoten tuoi quanly (1,1) KHOA id_k tenkhoa sodienthoai Mơ hình quan hệ TRUONGKHOA(id_tk, hoten, tuoi) KHOA(id_k, tenkhoa, sodienthoai, id_tk) Chương 2: CSDL 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 42 Ví dụ: (Mối quan h 1-nhiu) Mụ hỡnh ER quan hệ M ô hình thùc thÓ- mèi id_gv GI AOVI EN hoten (1,1) tuoi thuoc id_k (1,n) KHOA tenkhoa sodienthoai Mơ hình quan hệ GIAOVIEN(id_gv, hoten, tuoi, id_k) 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 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 id_gv GI AOVI EN hoten (1,n) tuoi giang (1,n) M ON id_m tenmon sotiet Mơ hình quan hệ GIAOVIEN(id_gv, hoten, tuoi) MON(id_m, tenmon, sotiet) GIANG(id_gv, id_m) Chương 2: CSDL 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 44 Quy tắc (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 hai tập thực thể A1 A2 có kèm thuộc tính, đó, ngồi lớp A1 A2 tương ứng, ta cần bổ sung thêm lớp C đóng vai trị trung gian Cụ thể: Lớp C bao gồm thuộc tính sau: Các thuộc tính 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 hƣớng đối tƣợng Mơ hình ER id_gv GI AOVI EN hoten (1,n) tuoi tongsotiet giang (1,n) KHOA id_k tenkhoa sodienthoai Mơ hình quan hệ GIAOVIEN(id_gv, hoten, tuoi) KHOA(id_k, tenkhoa, sodienthoai) GVIEN_KHOA(id_gv, id_k, tongsotiet) Chương 2: CSDL 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 46 Quy tắc (Quy tắc chuyển đổi mối quan hệ tự thân) Việc chuyển đổi thực tương tự mối quan hệ nhị nguyên (bước bước 3) Ví dụ: (Mối quan hệ tự thân) id NGUOI hoten (0,n) cha, me (1,1) tuoi Sinh 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 (Quy tắc chuyển đổi mối quan hệ đa nguyên) Việc chuyển đổi thực tương tự mối quan hệ nhị ngun n-n có thuộc tính (bước 3) Id_gv VD: GI AOVI EN Hoten (0, n) DAY (1, n) (1, n) Thoigian LOP Id_lop Chương 2: CSDL Hướng đối tượng M ONHOC Id_monhoc Sotiet 48 Kết chuyển đổi thành mơ hình hƣớng đối tƣợng Class GIAOVIEN properties Id_gv: String; Hoten: String; End GIAOVIEN Class MONHOC properties Id_monhoc: String; Sotiet: Integer; End MONHOC Class LOP properties Id_lop: String; End LOP 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 Q trình thiết kế CSDL thực theo ba bước: Thiết kế mơ hình (sơ đồ) khái niệm, Thiết kế sơ đồ CSDL chuẩn, Cài đặt CSDL ứng dụng: chọn ngôn ngữ 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 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 lớp đối tượng mối quan hệ chúng hệ thống hướng đối tượng Phân tích yêu cầu toán ứng dụng để xác định lớp đối tượng, mối quan hệ chúng để xây dựng biểu đồ lớp Kế thừa Lớp Hàm Bao gói Quan hệ Cá thể Đối tượng Thơng điệp Đa xạ Những khái niệm phƣơng pháp hƣớng đối tƣợng Chương 2: CSDL Hướng đối tượng 51 Ví dụ: Biểu đồ lớp hệ thống bán hàng Ghi-nhận-hàng-bán Được-mô-tả-bởi DongBanHang Chứa DanhMucMatHang * MoTaMatHang 1 Chứa-trong Mơ-tả * Có CuaHang * MatHang Quản-lý 1 Có * * PhienBanHang 1 Được-sử-dụng-trong * 1 * Được-trả Được-quản-lý-bởi Thực-hiện 1 HBH Được-thực-hiện-bởi 1 Ghi-nhận-bán-hàn Được-khởi-động-bởi ThanhToan NguoiQL 1 KhachHang NguoiBan 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 liệu - Giới thiệu 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 phân tích, thiết kế CSDL HĐT với UML Chương 2: CSDL Hướng đối tượng 53 ... hệ (relational): 1980 - Hướng đối tượng (object-oriented): 1990 - Đối tượng - quan hệ (object-relational): 1990 Kho liệu (data warehouse): 1980 - Web-enabled: 1990 - Chương 2: CSDL Hướng đối tượng...NỘI DUNG MÔN HỌC Chƣơng Tổng quan CSDL hƣớng đối tƣợng Chương Tổng quan CSDL phân tán (4) Chương Cơ Oracle (4) Chương 4: Lập trình PL/SQL (4) Chương 5: Procedure, Function (4) Chương 6:... cấp dòng sở liệu, thiết kế tối ưu hóa để lưu trữ thao tác đối tượng III Cơ sở liệu đối tượng Khái niệm Thông tin biểu diễn thành đối tượng giống đối tượng lập trình hướng đối tượng Dữ liệu thuộc