(NB) Giáo trình Cơ sở dữ liệu hướng đối tượng gồm các nội dung chính được trình bày như sau: Lịch sử phát triển của Cơ sở dữ liệu hướng đối tượng; mô hình dữ liệu hướng đối tượng ODMGcác thành phần đặc trưng; ngôn ngữ truy vấn dữ liệu hướng đối tượng; hệ quản trị dữ liệu hướng đối tượng;...
TRƯỜNG CAO ĐẲNG NGHỀ CÔNG NGHIỆP HÀ NỘI Tác giả: Vũ Thị Kim Phượng Bùi Quang Ngọc GIÁO TRÌNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG (Lưu hành nội bộ) Hà Nội năm 2012 Tuyên bố quyền Giáo trình sử dụng làm tài liệu giảng dạy nội trường cao đẳng nghề Công nghiệp Hà Nội Trường Cao đẳng nghề Công nghiệp Hà Nội không sử dụng không cho phép cá nhân hay tổ chức sử dụng giáo trình với mục đích kinh doanh Mọi trích dẫn, sử dụng giáo trình với mục đích khác hay nơi khác phải đồng ý văn trường Cao đẳng nghề Công nghiệp Hà Nội Mục lục BÀI 1: GIỚI THIỆU LỊCH SỬ PHÁT TRIỂN .1 Lịch sử phát triển Cơ sở liệu hướng đối tượng .1 Nền tảng liệu hướng đối tượng BÀI 2: MƠ HÌNH DỮ LIỆU HƯỚNG ĐỐI TƯỢNG ODMG – CÁC THÀNH PHẦN ĐẶC TRƯNG Khái niệm mơ hình liệu Mơ hình liệu hướng đối tượng – ODMG 2.1 Mơ hình hóa đối tượng 2.2 Mơ hình hóa tính động 10 2.3 Các liên kết ngữ nghĩa lớp 11 2.4 Tổ chức nhóm đối tượng 12 2.5 Lược đồ 13 Phương pháp xây dựng mô hình liệu hướng đối tượng 14 3.1 Phương pháp chuyển đổi 14 3.2 Phương pháp phân tích xây dựng trực tiếp 14 Các thành phần đặc trưng kiểu liệu hướng đối tượng 18 4.1 Kiểu liệu hướng đối tượng 18 4.2 Tính chất đối tượng .20 4.3 Quản lý tính bền vững đối tượng 21 BÀI 3: NGÔN NGỮ TRUY VẤN DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 22 Giới thiệu số ngôn ngữ truy vấn liệu đối tượng 22 Ngôn ngữ truy vấn liệu đối tượng OQL tương thích với đa hệ quản trị 22 Cú pháp OQL 22 3.1 Quy ước 22 3.2 Ngữ pháp OQL 22 Bài tập ví dụ minh họa 23 BÀI 4: HỆ QUẢN TRỊ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 26 Giới thiệu số hệ quản trị liệu đối tượng .26 1.1 Một số hệ quản trị sở liệu hướng đối tượng 26 1.2 Các tính bắt buộc hệ quản trị sở liệu hướng đối tượng .26 1.3 Các thành phần hệ quản trị sở liệu hướng đối tượng 29 1.4 Chuẩn hệ quản trị sở liệu hướng đối tượng 29 Cài đặt, cấu hình tích hợp với mơi trường phát triển ứng dụng 29 Khai thác công cụ (Versant, DB4o) 29 3.1 Giới thiệu hệ sở liệu hướng đối tượng DB4O 29 3.2 Các loại lớp hệ thống đối tượng DB4o .33 3.3 Object Indentity .34 3.4 Lược đồ sở liệu db4o (database schema) 36 3.5 Object Relationships 37 3.6 Các kiểu quan hệ đối tượng 40 Truy vấn liệu đối tượng trực tiếp tool dos 45 BÀI 5: TÍCH HỢP DỮ LIỆU HƯỚNG ĐỐI TƯỢNG TRÊN MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG NET 46 Cài đặt tích hợp mơi trường 46 Cài đặt mơ hình liệu hướng đối tượng ngôn ngữ Net (Visual, C#) 48 Biên dịch lược đồ (diagram) 50 Xây dựng ứng dụng cho phép truy xuất liệu đối tượng 50 BÀI 1: GIỚI THIỆU LỊCH SỬ PHÁT TRIỂN Lịch sử phát triển Cơ sở liệu hướng đối tượng Các loại cấu trúc sở liệu mối liên hệ chúng đóng vai trò lớn việc xác định tính hiệu hệ quản trị sở liệu Vì vậy, thiết kế sở liệu trở thành hoạt động mơi trường sở liệu Việc thiết kế sở liệu thực đơn giản nhiều ta sử dụng mơ hình Các mơ hình trừu tượng đơn giản kiện giới thực Các trừu tượng cho phép ta khảo sát đặc điểm thực thể mối liên hệ tạo thực thể Việc thiết kế mơ hình tốt đưa sở liệu tốt sở có ứng dụng tốt Ngược lại, mơ hình không tốt đưa đến thiết kế sở liệu tồi dẫn đến ứng dụng không Một mơ hình sở liệu tập hợp khái niệm dùng để biểu diễn cấu trúc sở liệu Cấu trúc sở liệu kiểu liệu, mối liên kết ràng buộc phải tuân theo liệu Nhiều mơ hình có thêm tập hợp phép toán để đặc tả thao tác sở liệu Các loại mơ hình sở liệu: - Các mơ hình liệu bậc cao mơ hình liệu mức quan niệm cung cấp khái niệm gắn liền với cách cảm nhận liệu nhiều người sử dụng - Các mơ hình liệu bậc thấp mơ hình liệu vật lý cung cấp khái niệm mô tả chi tiết việc liệu lưu trữ máy tính - Các mơ hình liệu thể (mơ hình liệu mức logic), chúng cung cấp khái niệm mà người sử dụng hiểu khơng xa với cách tổ chức liệu bên máy tính Trong mơ hình liệu cần phải phân biệt rõ mô tả sở liệu thân sở liệu Sau đây, điểm qua lịch sử phát triển mơ hình sở liệu: - Vào năm sáu mươi, hệ sở liệu đời dạng mơ hình thực thể kết hợp (Entity Relationship Model), mơ hình mạng (Network Model) mơ hình phân cấp (Hierachical Model) - Vào năm bảy mươi, hệ thứ hai sở liệu đời Đó mơ hình liệu quan hệ (Relational Data Model) EF Codd phát minh Mô hình có cấu trúc logic chặt chẽ Đây mơ hình sử dụng rộng khắp cơng tác quản lý phạm vi tồn cầu Việc nghiên cứu mơ hình liệu quan hệ nhằm vào lý thuyết chuẩn hoá quan hệ cơng cụ quan trọng việc phân tích thiết kế hệ sở liệu Mục đích nghiên cứu nhằm bỏ phần tử khơng bình thường quan hệ thực phép cập nhật, loại bỏ phần tử dư thừa - Sang thập kỷ tám mươi, mơ hình sở liệu thứ ba đời, mơ hình sở liệu hướng đối tượng (Object Oriented Data Model), mơ hình sở liệu phân tán, mơ hình sở liệu suy diễn,… Thực tế chưa có mơ hình liệu tốt Tốt phụ thuộc vào yêu cầu truy xuất khai thác thơng tin đơn vị quản lý Nó sử dụng đâu vào lúc tốt Tuy nhiên, người ta thường dựa vào tiêu chí sau để nói mơ hình liệu tốt nhất: - Mục đích: Phần lớn mơ hình liệu sử dụng hệ thống ký hiệu để biểu diễn liệu làm tảng cho hệ ứng dụng ngôn ngữ thao tác liệu Các mơ hình thực thể quan hệ khơng có hệ thống ký hiệu để xây dựng phép toán thao tác liệu, mà sử dụng để thiết kế lược đồ khái niệm, cài đặt mơ hình liệu với hệ quản trị sở liệu - Hướng giá trị hay hướng đối tượng: Các mơ hình liệu quan hệ mơ hình logic mơ hình liệu hướng giá trị Trong mơ hình liệu hướng giá trị có tính khai báo (declarativeness) có tác động đến ngơn ngữ hỗ trợ Các mơ hình mạng, phân cấp, mơ hình liệu hướng đối tượng cung cấp đặc tính nhận dạng đối tượng, nên xem chúng mơ hình hướng đối tượng Mơ hình thực thể quan hệ có đặc tính nhận dạng hướng đối tượng - Tính dư thừa: Tất mơ hình liệu có khả hỗ trợ lưu trữ liệu vật lý hạn chế dư thừa liệu Tuy nhiên mơ hình liệu hướng đối tượng giải dư thừa tốt hơn, cách tạo sử dụng trỏ trỏ đến nhiều vị trí khác - Giải mối quan hệ nhiều – nhiều: Phần lớn mơ hình sở liệu có chứa mối quan hệ nhiều – nhiều, – nhiều hay quan hệ mơt – Một quan hệ có nhiều phần tử quan hệ khác ngược lại Tuy nhiên mơ hình liệu mạng khơng chấp nhận mối quan hệ nhiều – nhiều Nền tảng liệu hướng đối tượng Cơ sở liệu hướng đối tượng hệ quản trị hướng đối tượng (Object Oriented DataBase Management Systems – OO DBMS) mô tả kiểu liệu xây dụng phương pháp tạo ghi tạo tập hợp Các quan hệ xây dựng từ thao tác tạo tập hợp ghi có khn dạng thống Che dấu liệu (Encapsulation): Nghĩa có yêu cầu truy xuất đến đối tượng thuộc kiểu đặc biệt, phải qua thủ tục định nghĩa cho đối tượng Chẳng hạn định nghĩa stack kiểu định nghĩa thao tác PUSH, POP áp dụng cho stack Đặc tính nhận dạng đối tượng (Object Indentity) khả phân biệt đối tượng Nghĩa cấu trúc kiểu Các kiểu chuỗi ký tự, số Thực tế cho thấy sở liệu hướng đối tượng có ưu điểm: - Cho phép xét liên kết đối tượng dạng phép lưu trữ với đối tượng - Các đối tượng dùng chung nhiều người sử dụng - Khả phát triển kho tri thức cách thêm đối tượng phép xử lý kèm theo - Phát triển hệ quản trị sở liệu dựa việc xử lý đối tượng phức tạp, giao diện chương trình, đối tượng động trừu tượng BÀI 2: MƠ HÌNH DỮ LIỆU HƯỚNG ĐỐI TƯỢNG ODMG – CÁC THÀNH PHẦN ĐẶC TRƯNG Khái niệm mơ hình liệu Mơ hình liệu hệ thống hình thức tốn học, bao gồm: - Hệ thống ký hiệu biểu diễn liệu - Tập hợp phép toán thao tác sở liệu Ví dụ: Các mơ hình liệu: Hình 2.1: Mơ hình phân cấp (Hierachical Model) Hình 2.2: Mơ hình mạng (Network Model) Hình 2.3: Mơ hình thực thể kết hợp (Entity Relationship Model) Hình 4.5: Một số object graph objects Hình 4.6: Các đối tượng database db4o Inverse Relationships : Nếu ta nhìn vào đối tượng address ta biết person sống đó, điều khơng thể, đối tượng address khơng cất giữ OID tham chiếu đến đối tượng person Mặt khác ta 38 tìm địa person hồn tồn xác định đối tượng person lưu trữ OID đối tượn address Hình 4.7: Các đối tượng liên quan quan hệ ngược Hình 4.8: Object graph objects quan hệ ngược 39 Defining the Relationships : Ta dùng ODL để định nghĩa mối quan hệ bên mơ hình sở liệu ODMG ODL định nghĩa mối quan hệ ngược lại để giám sát việc thi hành tồn vẹn mối quan hệ Hình 3.x định nghĩa class person address class Person { attribute string name; attribute string dob; attribute string phoneNumber; relationship Address address inverse Address :: person; } class Address { attribute string street; attribute string city; attribute string country; relationship Person person inverse Person :: address; } Hình 4.9: Định nghĩa class Person Address ODL Có nghĩa đối tượng person có quan hệ tới đối tượng address quan hệ hai đối tượng có tên address, mối quan hệ ngược address tới person Integrity : thấy ODL yêu cầu mối quan hệ ngược để giúp đỡ đảm bảo toàn vẹn mối quan hệ, tương tự sở liệu quan hệ việc tạo khóa ngoại để tham chiếu tới entity khác, ràng buộc tồn vẹn person khơng thể khơng có address 3.6 Các kiểu quan hệ đối tượng Trong phần trình bày đến mối quan hệ đối tượng ODB quan hệ one-to-many many-to-many hay aggregation inheritance 40 Quan hệ one-to-many : lưu trữ đối tượng vấn đề thường liên quan tới tập hợp đối tượng đối tượng, chẳng hạn manager có nhiều employee Trong ODL định nghĩa mối quan hệ nhiều mơ tả hình Class Manager{ attribute string name; attribute string department; relationship set employees inverse Employee :: manager; } class Employee { attribute string name; attribute string dob; attribute string phoneNumber; relationship Manager manager inverse Manager :: employees; } Hình 4.10: Định nghĩa clas Manager Employee ODL Với db4o, định nghĩa lớp lược đồ ODB có hay khơng mối quan hệ ngược lại 41 Hình 4.11: Quan hệ One-to-many Hình 4.12: Object graph quan hệ one-to-many Quan hệ many-to-many :Một mối quan hệ many-to-many sinh employee có nhiều project ngược lại project có nhiều employee quan hệ many-to-many sinh Kiểu mối quan hệ 42 sở liệu quan hệ hai bảng join với nhau, thẳng thắn sở liệu hướng đối tượng Mỗi đối tượng đơn cất giữ OID để xác định cho đối tượng liên quan Trong OQL mối quan hệ many-to-many mơ tả hình sau : class Project { attribute string name; attribute string costCode; relationship set employees inverse Employee :: projects; } class Employee { attribute string name; attribute string dob; attribute string phoneNumber; relationship set projects inverse Project :: employees; } Hình 4.13: Định nghĩa class Project Employee ODL Với db4o định nghĩa lớp thành phần cấu tạo lên lược đồ ODB Trong trường hợp mối quan hệ ngược lại trở nên hữu ích, xác khơng cần thiết Với ví dụ ta cần tìm employee project khơng project có employee khơng cần đối tượng employee lưu trữ OID để tham chiếu tới đối tượng project Vì quan hệ many-to-many đối tượng project cần lưu trữ OID để tham chiếu tới đối tượng employee đối tượng employee 43 Hình 4.14: Minh họa object graph với quan hệ many-to-many 44 Hình 4.15: Quan hệ Many-to-many sử dụng mối quan hệ ngược Truy vấn liệu đối tượng trực tiếp tool dos Có thể truy vấn liệu đối tượng trực tiếp tool thông qua lệnh DOS 45 BÀI 5: TÍCH HỢP DỮ LIỆU HƯỚNG ĐỐI TƯỢNG TRÊN MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG NET Cài đặt tích hợp mơi trường Để giảm gánh nặng thao tác nhiều ngôn ngữ khác cải thiện suất lập trình, Microsoft phát triển giải pháp tích hợp liệu cho NET Framework có tên gọi LINQ (Language Integrated Query), thư viện mở rộng cho ngơn ngữ lập trình C# Visual Basic.NET (có thể mở rộng cho ngơn ngữ khác) cung cấp khả truy vấn trực tiếp liệu Object, sở liệu XML Điểm mạnh LINQ “viết truy vấn cho nhiều đối tượng liệu”, từ sở liệu, XML, Data Object … chí viết truy vấn cho biến mảng tạo trước Vì ta có khái niệm LinQ to SQL, LinQ to XML,… Các thành phần LINQ Hình 5.1: Kiến trúc LINQ NET Framework 3.5 46 LINQ to Objects “LINQ to Objects” có nghĩa nói đến cách sử dụng LINQ đối tượng Collection mà thực thi giao diện IEnumerable IEnumerable tức Collection “liệt kê” Đây trường hợp sử dụng đơn giản LINQ làm việc với liệu LINQ to SQL LINQ to SQL phiên thực hóa O/RM (object relational mapping) có bên NET Framework 3.5, cho phép bạn mơ hình hóa sở liệu dùng lớp NET Sau bạn truy vấn sở liệu dùng LINQ, cập nhật/thêm/xóa liệu từ LINQ to SQL hỗ trợ đầy đủ transaction, view stored procedure (SP) Nó cung cấp cách dễ dàng để thêm khả kiểm tra tính hợp lệ liệu quy tắc vào mô hình liệu bạn LINQ to XML Sử dụng LINQ với mục đích truy vấn file XML tiện lợi truy vấn nhiều so với việc dùng XmlDocument, Xpath Xquery trước LINQ to Datasets DataSet ADO.NET bước phát triển lớn việc phát triển ứng dụng sở liệu đa hệ Khi lấy chỉnh sửa liệu, trì liên tục kết nối tới Data Source chờ user (người dùng) yêu cầu rõ ràng tốn tài nguyên máy nhiều DataSet giúp ích lớn Vì DataSet cho phép lưu trữ liệu chỉnh sửa ‘local cache’, hay gọi offline mode Có thể xem xét xử lý thơng tin ngắt kết nối Sau chỉnh sửa xem xong tạo kết nối update liệu từ local vào Data Source Dữ liệu DataSet lưu trữ dạng Collection Tables bạn cần phải xử lý thông qua lớp DataTable (DataRow DataColumn) 47 Hình 5.2: Kiến trúc DataSet LINQ to DataSet cho phép người lập trình sử dụng DataSets nguồn liệu bình thường cú pháp truy vấn LINQ Cài đặt mô hình liệu hướng đối tượng ngơn ngữ Net (Visual, C#) Kết nối đến CSDL - View -> Server Explorer - Kích phải chuột lên DataConnection -> Add Connection Hình 5.3: Kết nối đến sở liệu 48 Tạo mơ hình liệu LINQ TO SQL Hình 5.4: Tạo mơ hình LinQ to SQL 49 Biên dịch lược đồ (diagram) Mơ hình ánh xạ Hình 5.5: Mơ hình ánh xạ LinQ to SQL Xây dựng ứng dụng cho phép truy xuất liệu đối tượng Hiệu chỉnh đường kết nối file web.config: 50 Các thành phần lớp DataContext: 51 Các truy vấn: 52 ... DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Giới thiệu số hệ quản trị liệu đối tượng 1.1 Một số hệ quản trị sở liệu hướng đối tượng Cơ sở liệu hướng đối tượng: liệu lưu trữ liệu bảng có bổ sung thêm tính hướng đối. .. TRỊ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 26 Giới thiệu số hệ quản trị liệu đối tượng .26 1.1 Một số hệ quản trị sở liệu hướng đối tượng 26 1.2 Các tính bắt buộc hệ quản trị sở liệu hướng đối. .. trị sở liệu hướng đối tượng a Đối tượng phức - Định nghĩa: o Một đối tượng phức đối tượng có hai nhiều thuộc tính tham chiếu đến đối tượng khác đến tập giá trị o Một đối tượng chứa nhiều đối tượng