
57d69a3e7afea0f094d803ddc5bc0a3f.ppt
- Количество слайдов: 51
Đoàn Văn Ban OODB CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG (Object-Oriented Data Base) Nội dung 1. 2. 3. Các mô hình dữ liệu: CSDL hướng đối tượng (CSDLHĐT) Các hệ quản trị CSDLHĐT Một số kết quả nghiên cứu về CSDLHĐT CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 1/51
Đoàn Văn Ban 1. OODB Mô hình dữ liệu 1. 1 Các mô hình dữ liệu Cơ sở dữ liệu (Data Base) - CSDL Một sưu tập (Collection) các bản ghi dữ liệu được tổ chức để tiện lợi cho việc lưu trữ và tìm kiếm dữ liệu bởi các hệ thống thông tin. Các mô hình dữ liệu phổ biến: 1. Mô hình mạng (Network DB) 2. Mô hình phân cấp (Hierarchical DB) 3. Mô hình quan hệ (Relational DB) 4. Mô hình đối tượng (Object DB or Object-Oriented DB) 5. Mô hình quan hệ - đối tượng (Object-Relational DB) CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 2/51
Đoàn Văn Ban 1. OODB Mô hình dữ liệu File Systems Hierarchical Network Relational Object-Oriented System Semantic Data Model (ERD) Complex Object Model Object-Oriented Databases CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 3/51
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản n Hệ quản trị CSDL (Database management system) Phần mềm thực thi (quản trị) một CSDL. n Phần lớn các hệ quản trị CSDL truyền thống là quan hệ q q q n Các hệ thống thông tin (Information system) sử dụng hệ quản trị CSDL để q q n Dữ liệu được tổ chức lưu trữ thành các bảng (tables) Mỗi bộ dữ liệu (record, tuple) mô tả cho một thực thể được xác định bởi thuộc tính khoá (primary key) 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) Ghi dữ liệu lên thiết bị nhớ (chủ yếu là đĩa) Tìm kiếm dữ liệu từ đĩa (CSDL) Ví dụ: q q Trên máy lớn: DB 2, Oracle, Informix, Sybase PC: Microsoft Access CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 4
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Mô hình CSDLĐT n 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. q q n n n 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). 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ệ. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 5
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Các nguyên lý chính áp dụng cho CSDLĐT Bao gói che giấu thông (Encapsulation and hiding) q q 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. 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. Me ss ĐT 2 Me ss ĐT 1 ag e 1 Message 3 Messa n ag e 2 CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG ĐT 3 6
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Các nguyên lý chính áp dụng cho CSDLĐT n Kế thừa (Inheritance) và sử dụng lại (Reuse). q q q 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ội đố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. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 7
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Có 2 loại kế thừa cơ bản: n Kế thừa đơn (Single Inheritance) n Kế thừa bội (Multiple Inheritance). 1. Person Kế thừa đơn (Java chỉ hỗ trợ kế thừa đơn) Employee Sale. Person CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Student Developer 8
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Có 2 loại kế thừa cơ bản: n Kế thừa đơn (Single Inheritance) n Kế thừa bội (Multiple Inheritance) 1. Person Kế thừa bội (C++ hỗ trợ kế thừa bội) Employee Student Part. Time. Student CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 9
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Các nguyên lý chính áp dụng cho CSDLĐT n Đa xạ (Polymorphism) q q Đa xạ 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 của mình. 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, hay còn được gọi là liên kết muộn (Dynamic Binding). CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 10
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Các nguyên lý chính áp dụng cho CSDLĐT Shape n Đa xạ (Polymorphism) q q Nạp chồng (Overloading) Viết đè (Overriding) paint() Rectangle paint() paint(Point x) CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 11
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Các nguyên lý chính áp dụng cho CSDLĐT n Quan hệ kết tập (Aggregation) q q q Ngoài quan hệ kết hợp (Association) phổ biến giữa các thực thể trong các mô hình dữ liệu, hướng đối tượng hỗ trợ để thể hiện được cả quan hệ kết tập mô tả về mối quan hệ bộ phận – tổng thể. Các đối tượng hợp thành có thể được xây dựng như là bộ chứa (Container) bao gồm một số các đối tượng khác. Có hai loại quan hệ kết tập: 1. Kết tập thông thường (Normal Aggregation) 2. Kết tập chia sẻ (Shared Aggregation) CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 12
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu 1. 2 Một số khái niệm cơ bản Ham. Doi 3. . 5 Tau. Chien Kết tập thông thường De. Tai 0. . 2 3. . 10 Can. Bo Kết tập chia sẻ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 13
Đoàn Văn Ban OODB 1. Mô hình cơ sở dữ liệu Abstract Data Type (ADT)= Representation + Operarions Object Orientation = Abstract Data. Typing + Inheritance + Object Identity Object-Oriented Programming (OOP) = Classes + Inheritance Object-Oriented Databases (OODB) = Object Orientation + Database Capabilities CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 14
Đoàn Văn Ban OODB 2. Các hệ quản trị CSDLĐT n n Các hệ quản trị CSDLĐT tạo ra CSDL các đối tượng giống như trong các ngôn ngữ lập trình. Hệ quản trị CSDLĐT mở rộng ngôn ngữ lập trình hướng đối tượng: q q n Đả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 cập 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 chủ yếu vào ba yếu tố chính q q q Nhu cầu nghiệp vụ Đòi hỏi hiệu năng cao Dữ liệu phức tạp CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 15
Đoàn Văn Ban OODB 2. Các hệ quản trị CSDLĐT Truy vấn thông thường (SQL) Không truy vấn theo cấu trúc Relational DBMS Object-Relational DBMS File System Object-Oriented DBMS (OQL) Dữ liệu đơn giản CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Dữ liệu phức tạp 16
Đoàn Văn Ban OODB 2. Các hệ quản trị CSDLĐT n n Uni. SQL/X (1992) hợp nhất hệ CSDL quan hệ và hệ CSDL đối tượng. Open. ODB (Hewlett Packard released (sau đó là Odapter), mở rộng tất cả các RDBMS. Montage Systems (1993), (sau đó là Illustra của Informix): là phiên bản thương mại đầu tiên của object-relational Postgres. SQL 3 (bản thảo July 1998) tương tự như OQL. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 17
Đoàn Văn Ban OODB Các hãng phần mềm chính phát triển ODBMS n n n n Informix: Illustra (Informix-Universal Server) Oracle: Oracle 8 Hewlett-Packard Unisys: OSMOS IBM: DB 2 version 3 Sybase: Adaptive Server (introduced Sept. ‘ 97) Just released--a Java-based ORDBMS: Cloudscape’s JBMS CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 18
Đoàn Văn Ban OODB Các hãng phần mềm chính phát triển ODBMS n n n Gem. Stone Systems IBEX Computing SA O 2 Technology Object Design n Andersen Consulting CERN Electronic Data Systems (EDS) Fujitsu Software Corporation Hitachi Lockheed Martin Microsoft n n n n n Objectivity POET Software Uni. SQL Versant Object Technology MITRE Corporation NEC Corporation ONTOS Persistence Software Sybase Unidata VMARK Software CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 19
Đoàn Văn Ban OODB Các hãng phần mềm chính phát triển ODBMS n n Hệ QTCSDL HĐT quản lý dữ liệu, mã chương trình và các cấu trúc kết hợp nhằm thiết lập một CSDLHĐT. Nhiều hệ QTCSDL HĐT được xây dựng có cú pháp, và những khả năng rất khác nhau. Một số hệ QTCSDL HĐT phổ biến trên thị trường như: q q q q Object. Store (www. odi. com), Gem. Store (www. gemstore. com), Objectivity (www. objectivity. com), O 2 (www. ardensoftawre. com), Jasmine (www. cai. com), Versant (www. versant. com) và POET (www. poet. com). CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 20
Đoàn Văn Ban OODB Những ưu điểm của các CSDL ĐT: n n n 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. Ta 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á. 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. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 21
Đoàn Văn Ban OODB Yếu điểm của các hệ QTCSDL HĐT n n 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. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 22
Đoàn Văn Ban OODB Các hệ QTCSDL HĐT là thích hợp với những ứng dụng mới, như: n n n 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. 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. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 23
Đoàn Văn Ban OODB Các chuẩn phát triển OODBMS n n ODMG (Object Database Management Group): xây dựng các chuẩn cho OODBMS từ 1991 Chuẩn mới (ODMG standard) được xây dựng dựa trên SQL-92, và ANSI để định nghĩa mô hình khung ứng dụng cho các OODBMS. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 24
Đoàn Văn Ban OODB Standard: ODMG-93: trả lời theo SQL ODMG-93: mở rộng của CORBA Persistent Object Service ODMG-93 có ba thành phần chính: n n n Object Definition Language (ODL) Object Query Language (OQL) C++ and Smalltalk language bindings CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 25
Đoàn Văn Ban OODB Standard: ODMG 2. 0 (July 1997) The Object Database Management Group (ODMG) công bố chuẩn ODMG 2. 0, áp dụng cho các hãng công nghiệp CSDLĐT The ODMG 2. 0 standard: n ODMG liên kết mới cho Java, được chuẩn hóa và đơn giản hóa trong việc lưu trữ các đối tượng Java trong các CSDL n Xây dựng mô hình siêu ngữ nghĩa (metamodel) cung cấp những mô tả sơ đồ CSDL độc lập với các ngôn ngữ để tạo ra các công cụ và các ứng n Nâng cấp các mối liên kết giữa C++ và Smalltalk CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 26
Đoàn Văn Ban OODB Object-Relational DBMS & Object-Oriented DBMS: Thị trường Relational DBMS tăng từ $6. 8 billion 1997 lên $8. 1 billion năm 2000 (so với $2. 9 billion năm 1995) n Thị trường ORDBMS đạt $1 billion năm 2000 (so với $14 million in 1995) n Thị trường OODBMS tăng từ $430 million năm 1997 lên $600 million năm 2000 (so với $100 million in 1995) Có thể kết luận: Thị trường OODBMS sẽ tăng rất mạnh trong thời gian tới. Trong tương lai: n q q q Relational DBs sẽ dần được thay bởi object-relational DBs. Object-relational DBs nhanh chóng thích ứng để xử lý các đối tượng dữ liệu phức tạp. Object-oriented DBs sẽ được bổ sung thêm những đặc tính truy vấn đối tượng tương tự như đối với relational DBs. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 27
Đoàn Văn Ban OODB 3. Một số kết quả nghiên cứu về CSDLĐT 1. 2. 3. 4. Phân tích, thiết kế CSDL với UML; Nghiên cứu các tính chất của CSDLĐT; Chuyển đổi giữa mô hình đối tượng và mô hình quan hệ Tối ưu hóa truy vấn đối tượng CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 28
Đoàn Văn Ban OODB 3. 1 Phân tích, thiết kế CSDL 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ế sơ đồ khái niệm UML Chuẩn hoá sơ đồ ODL Cài đặt ứng dụng OODBMS CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 29
Đoàn Văn Ban OODB 3. 1 Phân tích, thiết kế CSDL với UML (i) Thiết kế mô hình khái niệm – biểu đồ lớp (Class Diagram) n 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. n 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 30
Đoàn Văn Ban OODB 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 Dong. Ban. Hang 1 Chứa Danh. Muc. Mat. Hang 1. . * Mo. Ta. Mat. Hang 1 1 Chứa-trong Mô-tả * Có 1 Cua. Hang * 1 Mat. Hang 1 Quản-lý 1 1 Có 1. . * Phien. Ban. Hang 1 1 Được-sử-dụng-trong * 1 1. . * 1 Được-trả 1. . * Được-quản-lý-bởi Thực-hiện 1 1 HBH 1 Được-thực-hiện-bởi 1 1 1 Ghi-nhận-bán-hàn Được-khởi-động-bởi 1 Thanh. Toan Nguoi. QL 1 1 Khach. Hang Nguoi. Ban 1 31
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn n n Một đặc tính quan trọng của CSDL HĐT là các đối tượng được lưu lại sau khi chương trình kết thúc. Những đối tượng được tự động lưu vào CSDL được gọi là đối tượng bền vững, những đối tượng không được lưu lại gọi là đối tượng tạm thời. Đối tượng A CSDL HĐT Đối tượng B Đối tượng C Đối tượng A, C là bền vững còn B là tạm thời. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 32
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDLĐT chuẩn Chuyển đổi các kiểu đối tượng n Mỗi lớp bền vững trong UML phải được chuyển đổi sang lớp trong ODL (Object Definition Language) thể hiện được cả hành vi trừu tượng lẫn các trạng thái trừu tượng. Việc đọc dữ liệu trong CSDL HĐT được thực hiện như sau: n Các đối tượng trong CSDL HĐT được lưu trữ và có mối quan hệ với nhau thông qua định danh ID. n Một đối tượng có thể tham chiếu tới nhiều ID đối tượng, nghĩa là mối quan hệ giữa các đối tượng có dạng tổng quát là n: m. n Mối quan hệ tham chiếu giữa các đối tượng được hệ QT CSDL HĐT thiết lập. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 33
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn n Chuyển đổi các lớp đối tượng bền vững sang lớp của ODL Cua. Hang dia. Chi: Address ten. Goi: String add. Sale() class Cua. Hang { attribute String(30) ten. Goi; attribute struct Adress { char(3) so. Pho, char(20) ten. Pho, char(15) tinh. Thanh }; void Cua. Hang(); // Constructor void ~ Cua. Hang(); // Destructor void add. Sale(){ // Bổ sung }; } CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 34
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn n Chuyển đổi các quan hệ kết hợp: Quan hệ kết hợp nhị nguyên được chuyển sang mối quan hệ liên kết relationship trong ODL. Phien. Ban. Hang HBH hang. Truong: String enter. Items() end. Sale() make. Payment() 1 * ngay. Ban: Date gio. Ban: Time ghi. Nhan ban. Hang become. Complete() make. Line. Item() make. Payment() total() CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 35
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn class HBH { attribute String(25) hang. Truong; attribute String(15) ten. Truong; relationship Phien. Ban. Hang ghi. Nhan inverse ban. Hang: : Phien. Ban. Hang; void HBH(); void ~HBH(); void enter. Items(){…} void end. Sale(){…} }; CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 36
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn class Phien. Ban. Hang { attribute Date ngay. Ban; attribute Time gio. Ban; relationship Set<Phien. Ban. Hang> ban. Hang inverse ghi. Nhan: : HBH; void Phien. Ban. Hang(); void ~Phien. Ban. Hang(); Boolean become. Complete(){…} void make. Line. Item() make. Payment(){…} Number total(){…} }; CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 37
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn n Chuyển đổi các quan hệ kế thừa: Quan hệ kết hợp nhị nguyên được chuyển sang mối quan hệ liên kết relationship trong ODL. Thanh. Toan. TM Thanh. Toan. The class Thanh. Toan. TM extends Thanh. Toan (extent Thanh. Toan. TM Key number) { … }; class Thanh. Toan. The extends Thanh. Toan { … }; CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 38
Đoàn Văn Ban OODB 3. 2 Thiết kế sơ đồ CSDL chuẩn n Chuyển đổi các quan hệ kết tập: Quan hệ kết tập giữa bộ phận và tổng thể (part-whole aggregation). Quan hệ này thể hiện như là lớp cấu trúc gồm hầu như là hai lớp khác nhau. Phien. Ban. Hang ngay. Ban: Date gio. Ban: Time become. Complete() make. Line. Item() make. Payment() total() gom. Co 1. . * Dong. Ban. Hang so. Luong: Int subtotal() class Phien. Ban. Hang { attribute Date ngay. Ban; attribute Time gio. Ban; attribute List<Dong. Ban. Hang> gom. Co; Boolean become. Complete(){…} void make. Line. Item() void make. Payment(){…} Number total(){…} Phien. Ban. Hang(); ~Phien. Ban. Hang(); }; class Dong. Ban. Hang { attribute Integer so. Luong; Number subtotal(){…} }; CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 39
Đoàn Văn Ban OODB 3. 3 Một số tính chất của CSDLHĐT n n n Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng Chuẩn hóa đối tượng: Phụ thuộc đối tượng theo đường dẫn và các dạng chuẩn đối tượng Các mẫu thiết kế (Design Pattern) dựa trên mã nguồn mở (Open Sourrce) CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 40
Đoàn Văn Ban OODB (i) Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng n Mô hình dữ liệu hướng đối tượng hỗ trợ kế thừa bội, cho phép một lớp được kế thừa từ một hay nhiều lớp (kiểu). Chính cơ chế này sẽ dẫn đến nhiều những vấn đề nhập nhằng về kiển dữ liệu và các phương thức sử dụng. Person + salary: int + read. Info() Employee Developer + job: String + project: String + read. Info() Part. Time. Worker CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 41
Đoàn Văn Ban OODB (i) Tính nhất quán kiểu dữ liệu của hệ thống hướng đối tượng n n Vấn đề đặt ra là một hệ thống hướng đối tượng phải có những tính chất gì để đảm bảo tính nhất quán dữ liệu và phi mâu thuẫn? Trả lời cho câu hỏi này, trong bài báo “Tính đúng của lược đồ CSDL hướng đối tượng” (TC TH & ĐKH, T. 16, S. 3, 2000), chúng tôi đã nghiên cứu các tính chất của quá trình kế thừa kiểu (lớp) trong lược đồ dữ liệu đối tượng và đã chỉ ra rằng q q q Quan hệ kế thừa sẽ tạo ra một thứ tự bộ phận Phép hội kiểu của τ1 ↓ τ2 nếu nó xác định thì kết quả là kiểu con chung lớn nhất của τ1 và τ2 Một lược đồ đối tượng có thể xảy ra sự xung đột về kiểu khi có ít nhất một cặp kiểu cha của một kiểu con (được kế thừa bội) và không tương thích với nhau, nghĩa là phép hội của các kiểu cha không xác định. Lược đồ đối tượng có thể biểu diễn dưới dạng s-đồ thị (đồ thị đặc trưng cho quan hệ kế thừa kiểu của lược đồ) đối tượng. Trên cơ sở nghiên cứu các tính chất đường đi trong s-đồ thị chúng khẳng định phụ thuộc dữ liệu trong CSDL ĐT là loại phụ đối tượng theo đường dẫn. S-đồ thị có xung đột kiểu (có mâu thuẫn dữ liệu) khi và chỉ khi có ít nhất 2 đường đi tựa tương đẳng cùng bắt đầu từ một đỉnh và dẫn đến 2 đỉnh đích là 2 kiểu không tương thích với nhau (phép hội kiểu không xác định). CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 42
Đoàn Văn Ban OODB (ii) Chuyển đổi tương đương giữa các mô hình dữ liệu n n Thực tế luôn tồn tại nhiều hệ thống dữ liệu với nhiều mô hình khác nhau. Vấn đề đặt ra là làm thế nào để khai thác được dữ liệu của chúng, tích hợp vào một ứng dụng của chúng ta? Một trong các phương pháp thực hiện đáp ứng được những yêu cầu trên là liệu có thể biến đổi từ mô hình quan hệ (mô hình thực thể liên kết) sang mô hình đối tượng và ngược lại được không? q Trong các bài báo: “Chuyển đổi mô hình thực thể liên kết thành mô hình hướng đối tượng “ (TC TH & ĐKH, T. 17, s. 4, 2001) và “Mô hình hóa hệ thống phần mềm hướng đối tượng” ( TC TH & ĐKH, T. 18, s. 4, 2002), chúng tôi đã giới thiệu những thuật toán chuyển đổi giữa các mô hình dữ liệu: n n CSDL QH và CSDL ĐT; Biểu đồ lớp UML và biểu đồ thực thể-liên kết (ERD); CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 43
Đoàn Văn Ban OODB (ii) Chuyển đổi tương đương giữa các mô hình dữ liệu q Trong các bài báo: “Chuyển đổi các biểu thức đại số quan hệ thành các câu truy vấn trong mô hình dữ liệu hướng đối tượng “ (TC KH & CN, T. 40, s. ĐB, 2002) và “Sự tương đương trong biểu diễn giữa ngôn ngữ truy vấn OQL và đại số đối tượng” (TC TH & ĐKH, T. 20, s. 3, 2004); “Phương pháp ước lượng các truy vấn lồng trong CSDL hướng đối tượng bằng siêu đồ thị kết nối “ (TC Bưu chính VT & CNTT, s. 14, 4 -2005), chúng tôi trình bày những qui tắc chuyển đổi các phép toán quan hệ thành các biểu thức đại số đối tượng tương đương và phương pháp biểu diễn các câu truy vấn đối tượng OQL (mở rộng trên siêu đồ thị kết nối) và một số thuật toán tối ưu hóa truy vấn đối tượng. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 44
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n n Bên cạnh là một hoạt động mang tính nghiên cứu, sáng tạo, sản xuất phần mềm còn là một ngành công nghiệp và vì vậy người ta tìm mọi cách để rút ngắn quá trình sản xuất và nâng cao năng suất lao động. Một trong những cách được áp dụng rộng rãi nhất là sử dụng các khuôn mẫu có sẵn (Framework), thư viện lập trình và các thành phần (Component) như là các mẫu thiết kế (Design Pattern). Các Framework thường chỉ bao gồm các cấu trúc cơ bản như kiến trúc hệ thống, các mẫu thiết tối ưu hay các giải pháp mang tính lý thuyết còn thư viện thường bao gồm 1 tập hợp các giải pháp cụ thể (giải thuật, cấu trúc dữ liệu, mã nguồn) cho một vấn đề cụ thể (ví dụ tìm giá trị cực tiểu của một hàm bất kỳ). CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 45
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n n Các mẫu thiết được xem là những giải pháp cụ thể nhưng cho phép người thiết kế tùy biến chức năng qua việc xác định các tham số hoạt động (properties) và ghép nối chúng lại với nhau (lập trình) thành một giải pháp hoàn chỉnh. Do khả năng tùy biến cao nên một mẫu thiết có thể “chỉ” là một giải pháp hiển thị kết quả dưới dạng đồ thị nhưng cũng có thể bao gồm toàn bộ chức năng phức tạp của một chương trình soạn thảo văn bản như Word©. Như vậy với thành phần, một mẫu thiết kế và công cụ thích hợp người ta có thể nhanh chóng bổ sung tính năng cho một phần mềm mà nếu tự phát triển sẽ phải mất hàng tháng trời nếu không phải là hàng năm! CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 46
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n n Mặt khác, phần mềm nguồn mở (Open Source) và phần mềm tự do (Free Software) là hai khái niệm khác nhau về quyền và mức độ tự do đối với người sử dụng. Đó là hai cách tiếp cận và triết lý hướng tới phần mềm tự do. Phần mềm nguồn mở và phần mềm tự do, cả hai là phần mềm hướng tới giải phóng những phiền hà do giới hạn về bản quyền. Nó có thể được sử dụng, sao chép, nghiên cứu, thay đối và phân phối lại mà không gặp phải hạn chế nào. Phần mềm tự do (Free software) không phải hoàn toàn giống như freeware, phần mềm cung cấp với giá bằng 0 (software available at zero price). Có những trường hợp, những phần mềm là tự do nhưng không phải là phần mềm nguồn mở và ngược lại. “Phần mềm tự do” được định nghĩa là phần mềm được cho tự do. Nó phản ánh xu hướng chuyển dịch tự do của phần mềm (free software movement). CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 47
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n Phần mềm nguồn mở (open-source software) hiểu theo nghĩa rộng là một khái niệm chung được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được công bố rộng rãi công khai và cho phép mọi người tiếp tục phát triển phần mềm đó, đặc biệt phù hợp để thiết kế các mẫu ứng dụng. Mã nguồn mở được công bố dưới rất nhiều điều kiện khác nhau (license), một số trong đó cho phép phát triển, sử dụng và bán tùy ý miễn là giữ nguyên các dòng về nguồn gốc sản phẩm (BSDL), một số bắt buộc tất các sản phẩm làm ra từ đó cũng phải là open-source (GPL), một số khác đòi hỏi phải công bố trọn vẹn mã nguồn (Mozilla), một số khác không cho phép sử dụng vào mục đích thương mại (Sun Solaris Source Code License), một số khác lại không có ràng buộc gì đáng kể (public domain, MIT X 11 license) v. v. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 48
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n n Mẫu phần mềm trở nên thông dụng kể từ khi xuất hiện cuốn sách thường được tham chiếu là Go. F (của Bè lũ 4 tên): Design Patterns: Elements of Reusable Object. Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (frequently referred to as the Gang of Four or just Go. F). Mẫu được sử dụng trong nhiều lĩnh vực khác nhau từ các tổ chức và các quá trình cho đến kiến trúc hệ thống, nhất là trong lĩnh vực đào tạo, nghiên cứu phát triển ứng dụng phần mềm. Hiện nay cộng đồng phát triển phần mềm sử dụng rất phổ biến các mẫu thiết kế cho kiến trúc phần mềm và các mẫu cho quá trình phát triển phần mềm và cho tổ chức thực hiện các dự án phần mềm. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 49
Đoàn Văn Ban OODB (iii) Mẫu thiết kế dựa trên mã nguồn mở n n n Hướng đối tượng hỗ trợ để tạo ra các mẫu thiết kế cho các thiết kế phần mềm, nhất là các mẫu thiết kế theo mã nguồn mở. Mẫu thiết kế hướng đối tượng mô tả tường minh các mối quan hệ và sự tương tác giữa các lớp đối tượng mà không cần phải xác định những ứng dụng cụ thể. Mẫu thiết kế giúp ta giải quyết bài toán nhanh gọn, có khả năng tái sử dụng và tránh khả năng phải thiết kế lại. Mẫu thiết kế dựa trên nguyên lý thiết kế hướng đối tượng và nó được xem như là công cụ để phát hiện và mô tả bài toán ở mức trừu tượng cao mà vẫn bao hàm đầy đủ ngữ nghĩa của bài toán ứng dụng. Trên cơ sở nghiên cứu các mẫu thiết kế của Erich Gamma, báo cáo “Ứng dụng mô hình mẫu thiết kế khung cho tầng truy cập dữ liệu” (Báo cáo tại HT CNTT nhân dịp 30 năm thành lập Viện CNTT) đề xuất phương pháp thiết kế khung (Framework) ứng dụng theo mô hình ba tầng, áp dụng công nghệ đối tượng ADO. Net và cài đặt khung cho tầng truy cập dữ liệu. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 50
Đoàn Văn Ban OODB Tài liệu tham khảo [1] David W. Embley, Object Database Development: Concepts and Principles, Addison Wesley Longman, http: // osm 7. cs. byu. edu, 1998. [2] David Maier, Object-Oriented Database Theory: An Introduction & indexing in OODBS, Database Hall of Fame, http: //www. cse. ogi. edu, 2001. [3] Đoàn Văn Ban, Tính đúng của lược đồ CSDL hướng đối tượng, TC TH & ĐKH, T. 16, S. 3, 2000. [4] Đoàn Văn Ban, Phân tích, thiết kế hướng đối tượng bằng UML, giáo trình Khoa CNTT, 2003. [5] Đoàn Văn Ban, Lập trình hướng đối tượng với Java, NXB Khoa học Kỹ thuật, 2003. [6] Đoàn Văn Ban, Lập trình hướng đối tượng với C++, Giáo trình Khoa CNTT, 2003. [7] Erichgam, Richard Helm, Ralph Johnson, John Vlissdes, Design Pattern, elements of Reusable Oject. Oriented Software, 1, Addison-Wesley Pub Co, 1995. [8] James W. Cooper, C# Design Patterns, Addison Wesley, 2002, 416. [9] Mario Piattini, Oscar Díaz, Advanced Data Technology and Design, Artech House, 2000, http: // www. artechhouse. com am B. , [10] Michael New Jersey 1998. [11] Object Design, Object. Store C++ Release 4. 0. 2 Documentation, Burlington, Massachusetts, 1996. [12] OMG, “The OMG Unified Modeling Language Specification”, http: // www. omg. org/uml 1999. [13] Quatrani T. , Visual Modeling With Rational Rose and UML, Addison-Wesley, http: // www. rational. com, 2000. [14] Ying Liang, From use cases to classes: a way of building object model with UML, Information and Software Technology, 45 (2003) 83 -93, http: // www. elservier. com/locate/infsof. [15] Zhiming Liu, Object-Oriented Software Development Using UML, UNU /IIST, Macau 2001. CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 51
57d69a3e7afea0f094d803ddc5bc0a3f.ppt