Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Cơ sở dữ liệu hướng đối tượng - Nguyễn Thị Mỹ Dung
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.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Cơ sở dữ liệu hướng đối tượng - Nguyễn Thị Mỹ Dung", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu nâng cao - Chương 2: Cơ sở dữ liệu hướng đối tượng - Nguyễn Thị Mỹ Dung
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: 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 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) id NHANVIEN(id, luong) NGUOI hoten Mô hình hướng đối tượng tuoi Class NGUOI is-a Class NHANVIEN properties inherits: NGUOI; Id: String; properties Hoten: String; NHANVIEN Luong: Integer; luong Tuoi: Integer; End NHANVIEN. 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 Class TRUONGKHOA properties TRUONGKHOA hoten Id_tk: String; (1,1) Hoten: String; tuoi quanly Tuoi: Integer; id_k Quanly: KHOA; (1,1) End TRUONGKHOA. KHOA tenkhoa Class KHOA sodienthoai properties Id_k: String; Tenkhoa: String; Mô hình quan hệ Sodienthoai: String; TRUONGKHOA(id_tk, hoten, tuoi) Quanly: TRUONGKHOA; KHOA(id_k, tenkhoa, sodienthoai, End KHOA. id_tk) Chương 2: CSDL Hướng đối tượng 42 Ví dụ: (Mối quan hệ 1-nhiều) M« h×nh thùcMô hthÓình - mERèi quan hÖ id_gv Mô hình HĐT Class GIAOVIEN GIAOVIEN hoten properties (1,1) Id_gv: String; tuoi Hoten: String; thuoc Tuoi: Integer; Thuoc: KHOA; id_k (1,n) End GIAOVIEN. Class KHOA KHOA tenkhoa properties Id_k: String; sodienthoai Tenkhoa: String; Sodienthoai: String; Mô hình quan hệ Thuoc: set(GIAOVIEN); End KHOA. 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 ER Mô hình hướng đối tượng Class GIAOVIEN id_gv properties GIAOVIEN hoten Id_gv: String; (1,n) Hoten: String; tuoi Tuoi: Integer; giang Giang: set(MON); (1,n) id_m End GIAOVIEN. MON tenmon Class MON properties sotiet Id_m: String; Tenmon: String; Sotiet: Integer; Mô h nh quan hệ ì Giang: set(GIAOVIEN); GIAOVIEN(id_gv, hoten, tuoi) End MON. MON(id_m, tenmon, sotiet) GIANG(id_gv, id_m) Chương 2: CSDL Hướng đối tượng 44 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 hƣớng đối tƣợng Mô hình ER Class GIAOVIEN id_gv properties Id_gv: allID; GIAOVIEN hoten Hoten: String; (1,n) Tuoi: Integer; tuoi Giang1: set(GVIEN_KHOA); tongsotiet giang End GIAOVIEN. id_k Class KHOA (1,n) properties KHOA tenkhoa Id_k: allID; Tenkhoa: String; sodienthoai Sodienthoai: String; Giang2: set(GVIEN_KHOA); End KHOA. Class GVIEN_KHOA properties Mô hình quan hệ Id_gvien_khoa: allID; GIAOVIEN(id_gv, hoten, tuoi) Tongsotiet: Integer; KHOA(id_k, tenkhoa, sodienthoai) Giang1: GIAOVIEN; GVIEN_KHOA(id_gv, id_k, tongsotiet) Giang2: KHOA; End GVIEN_KHOA. 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 id properties NGUOI Id: allID; hoten Hoten: String; Tuoi: Integer; tuoi cha, me con Con: set(NGUOI); (1,1) (0,n) Cha, Me: NGUOI; End GIAOVIEN. Sinh 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). Id_gv VD: GIAOVIEN Hoten (0, n) DAY (1, n) (1, n) Thoigian LOP MONHOC 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 Class MONHOC properties properties Id_gv: String; Id_monhoc: String; Hoten: String; Sotiet: Integer; End GIAOVIEN. End MONHOC. Class LOP Class LICHDAY properties properties Id_lop: String; Thoigian: String; End LOP. 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ế Chuẩn hoá sơ đồ khái niệm sơ đồ UML ODL 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. 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 cơ bản của 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 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 1..* DanhMucMatHang MoTaMatHang 1 1..* Chứa-trong 1 Được - sử-dụng-trong 1 Mô-tả * * 1 Có 1 1 CuaHang 1 * MatHang Quản-lý 1 1 1..* Có 1..* PhienBanHang Được-quản-lý-bởi Thực-hiện 1 1 HBH NguoiQL 1 1 1 1 1 Được-thực-hiện-bởi Được-trả 1 Được-khởi-động-bởi Ghi-nhận-bán-hàn 1 1 1 ThanhToan KhachHang NguoiBan 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
File đính kèm:
- bai_giang_co_so_du_lieu_nang_cao_chuong_2_co_so_du_lieu_huon.pdf