Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
277,5 KB
Nội dung
MỤC LỤC Mở đầu 2 Tổng quan hướng đối tượng 2.1 Lịch sử phát triển 2.2 Tiếp cận hướng đối tượng 3 Các khái niệm mơ hình hướng đối tượng .6 3.1 Tên, cấu trúc khởi tạo đối tượng .6 3.1.1 Định danh đối tượng .6 3.1.2 Cấu trúc đối tượng 3.1.3 Khởi tạo kiểu (Type constructors) 3.2 Mô tả hành vi đối tượng 3.3 Tính đóng gói giao tiếp đối tượng 10 3.3.1 Tính đóng gói (Encapsulation) 10 3.3.2 Giao tiếp đối tượng .11 3.4 Phân cấp kế thừa đối tượng .11 3.4.1 Phân cấp 12 3.4.2 Kế thừa 12 3.4.3 Các ràng buộc phạm vi liên kết phân cấp 13 Các đối tượng phức hợp 14 4.1 Các đối tượng phức hợp khơng có cấu trúc mở rộng kiểu 14 4.2 Các đối tượng phức hợp có cấu trúc 15 Một số nội dung khác hướng đối tượng 17 5.1 Đa cấu (chồng toán tử) - Polymorphism (Operator Overloading) 18 5.2 Thừa kế bội thừa kế có chọn lọc 19 5.3 Các phiên cấu hình 20 5.3.1 Phiên .20 5.3.2 Cấu hình 21 Mơ hình hóa việc phân tích hướng đối tượng 22 Kết luận 22 Tài liệu tham khảo .23 1 Mở đầu Dưới nghiên cứu mơ hình liệu hướng đối tượng hệ thống CSDL Các mơ hình hệ thống liệu truyền thống mơ hình quan hệ, mơ hình mạng hay mơ hình phân cấp phần đạt thành công định việc phát triển cơng nghệ CSDL nhằm mục đích xây dựng quản lý ứng dụng tin học thực tế Tuy nhiên, CSDL ẩn chứa thiếu sót áp dụng ứng dụng yêu cầu thực với CSDL phức tạp hệ thống ERP, hệ nghiên cứu, hệ thống thông tin địa lý hay CSDL đa phương tiện v…v… Những ứng dụng loại thường có yêu cầu đặc tính khác xa so với ứng dụng truyền thống Điều thể mức độ phức tạp việc xây dựng cấu trúc đối tượng lưu trữ, việc xử lý phiên làm việc hay yêu cầu lưu trữ kiểu liệu âm thanh, hình ảnh v…v… hoạt động phức tạp khác đối tượng liệu CSDL hướng đối tượng đưa nhằm đáp ứng yêu cầu Tiếp cận hướng đối tượng trở nên linh động việc nắm bắt yêu cầu mà không cần giới hạn kiểu liệu hay ngôn ngữ truy vấn sẵn có CSDL truyền thống Một đặc tính quan trọng CSDL hướng đối tượng việc cung cấp mơ hình chuẩn giúp nhà thiết kế định hình đối tượng phức tạp dựa cấu trúc hoạt động Một nguyên nhân khác dẫn đến đời CSDL hướng đối tượng thúc đẩy phát triển ngơn ngữ lập trình hướng đối tượng phát triển phần mềm CSDL ngày trở thành thành phần thiếu hệ thống phần mềm CSDL truyền thống khó để sử dụng với ngơn ngữ lập trình hướng đối tượng CSDL hướng đối tượng thiết kế giúp nhà phát triển tích hợp nhiều phần mềm sử dụng ngơn ngữ lập trình hướng đối tượng CSDL hướng đối tượng thừa hưởng nhiều ý tưởng áp dụng việc phát triển ngôn ngữ lập trình hướng đối tượng Phần trình bày mơ hình hướng đối tượng sâu để thảo luận cách tiếp cận hướng đối tượng áp dụng vào việc xây dựng CSDL Mơ hình hướng đối tượng bao gồm phần sau: - Các khái niệm tạo lập CSDL hướng đối tượng - Khái niệm: định danh đối tượng (object identity), cấu trúc đối tượng (object structure), kiểu khởi tạo đối tượng - Khái niệm đóng gói thao tác định nghĩa phương thức khai báo lớp Cách thức lưu trữ thiết lập thời gian sống đối tượng - Mô tả phương thức thực việc phân cấp thừa kế lớp - Những ý việc biểu diễn lưu trữ đối tượng phức tạp - Tính đa hình, nạp chồng, liên kết động, thừa kế đa lớp, thiết lập Version cấu hình đối tượng Tiểu luận làm rõ khái niệm OODB Tổng quan hướng đối tượng 2.1 Lịch sử phát triển Thuật ngữ hướng đối tượng – object-oriented bắt nguồn từ “hướng đối tượng” ngơn ngữ lập trình hướng đối tượng Ngày nay, ý tưởng hướng đối tượng (OO) áp dụng rộng rãi lĩnh vực CSDL, kỹ nghệ phần mềm, sở tri thức, trí t nhân tạo … Các ngơn ngữ lập trình hướng đối tượng (OO programming language – OOPL) thường bắt nguồn từ ngôn ngữ SIMULA, ngôn ngữ đời vào cuối năm 1960 Trong SIMULA, ý tưởng “lớp” đề cập đến cấu trúc bên liệu Sau đó, nhà phát triển đưa khái niệm kiểu liệu trừu tượng Kiểu liệu cho phép giấu cấu trúc bên liệu cho phép truy cập phương thức liên quan đến đối tượng theo ý tưởng “đóng gói” SMALLTALK, ngơn ngữ lập trình phát triển Xerox Parc năm 70 ngôn nghữ đưa khái niêm OO vào rõ ràng mà điển hình việc truyền thơng báo thừa kế lớp Smalltalk xem OOLP “thuần khiết”, mang ý tưởng rõ ràng OO Điều đối lập với OOLP “lai” (hybrid OOLP), ý tưởng OO tích hợp vào ngơn ngữ lập trình truyền thống Ví dụ điển hình hybrid OOLP C++, tích hợp OO ngôn ngữ C 2.2 Tiếp cận hướng đối tượng Một đối tượng điển hình có thành phần: trạng thái hành vi Như khía cạnh giống với biến lập trình ngoại trừ việc biểu diễn trạng thái hành vi mức phức tạp Các đối tượng OOLP tồn thời gian thực chương trình gọi “transient object” – “đối tượng tạm thời” Một CSDL hướng đối tượng (OODB) cho phép đối tượng tồn sau chương trình kết thúc Do cho phép chia sẻ thơng tin chương trình với Mục đích OODB trì mối tương quan trực tiếp giới thực đối tượng CSDL nhằm đảm bảo đối tượng không bị ràng buộc thành phần định danh giúp dễ dàng truy cập thực Do vậy, OODB cung cấp định danh đối tượng đảm bảo đối tượng hệ thống cung cấp định danh Tính chất giống thuộc tính khóa mơ hình CSDL quan hệ Trong mơ hình CSDL quan hệ, khóa thay đổi, record có định danh đối tượng mà biểu diễn khơng thay đổi Rõ ràng, đối tượng giới thực có nhiều tên khác tương ứng với thuộc tính khóa quan hệ khác Do đó, khó để đảm bảo đối tượng có giá trị khóa Tiếp cận hướng đối tượng CSDL có số đặc điểm sau: Đối tượng Trong OODB đối tượng có cấu trúc với độ phức tạp khác tùy thuộc lượng thơng tin lưu trữ Ngược lại, hệ DB truyền thống, thông tin đối tượng phức tạp thường chia nhỏ thành nhiều quan hệ hay ghi khác dẫn đến việc dễ làm tương ứng trực tiếp đối tượng giới thực đối tượng biểu diễn DB Cấu trúc bên đối tượng OOLP thường gọi biến thể Những biến lưu trữ giá trị tạo nên trạng thái bên đối tượng Vì vậy, thể giống ý tưởng thuộc tính ngoại trừ việc thể đóng gói bên đối tượng chúng khơng cần thiết đưa người dùng ngồi Các biến thể kiểu liệu phức tạp Phương thức CSDL hướng đối tượng cho phép định nghĩa phương thức hay chức (hoặc hành vi) áp dụng cho đối tượng có kiểu cụ thể Trong thực tế, số mơ hình hướng đối tượng cố gắng đưa vào tất phương thức mà người sử dụng áp dụng cho đối tượng Điều dẫn đến tính “đóng gói” đối tượng Hướng tiếp cận khắt khe số nguyên nhân trở nên linh động hầu hết mơ hình hướng đối tượng sau Nguyên nhân phải kể đến người dùng DB thường muốn biết tên thuộc tính để họ thiết lập điều kiện truy vấn phù hợp với yêu cầu đặt Thứ hai, tính “đóng gói” làm chức tưởng đơn giản phải xác định từ trước Để làm tăng tính “đóng gói”, phương thức chia thành phần: - Phần đầu: Interface đối tượng bao gồm tên phương thức tham số kèm - Phần hai: Phần thân biểu diễn lệnh cài đặt phương thức Thực phương thức đối tượng Các phương thức thực cách truyền thông báo tới đối tượng Thông báo bao gồm tên tham số truyền Tính “đóng gói” cho phép thay đổi cấu trúc bên đối tượng cài đặt phương thức mà khơng cần phải can thiệp vào chương trình bên ngồi Vì thế, tính đóng gói cung cấp liệu với hình thức hành vi độc lập Tính phân cấp kế thừa Một tính chất quan trọng khác hệ thống hướng đối tượng tính phân cấp kế thừa lớp Điều cho phép mô tả kiểu liệu hay lớp kế thừa phần lớn cấu trúc hành vi kiểu hay lớp định nghĩa trước Các đối tượng nhờ xây dựng mang tính hệ thống việc phát triển kiểu liệu sử dụng lại kiểu sẵn có trở nên dễ dàng Quan hệ đối tượng Một vấn đề nảy sinh sớm hệ thống CSDL hướng đối tượng việc biểu diễn mối quan hệ đối tượng Việc cố gắng làm tăng tính đóng gói mơ hình liệu hướng đối tượng dẫn đến ý kiến cho quan hệ không biểu diễn rõ ràng thay vào việc sử dụng cách định nghĩa phương thức phù hợp nhằm thể đối tượng liên quan Tuy nhiên, hướng tiếp cận không hiệu DB phức tạp, với nhiều mối quan hệ che giấu quan hệ người sử dụng Chuẩn ODMG 2.0 nhận điều xây dựng cách thức biểu diễn quan hệ nhị phân cặp tham chiếu ngược, đưa vào OID đối tượng liên quan trì ràng buộc tham chiếu Một số hệ thống hướng đối tượng cung cấp khả làm việc đa phiên đối tượng Đặc tính cần thiết cho việc thiết kế xây dựng ứng dụng Chẳng hạn, phiên cũ đối tượng biểu diễn theo kiểu thiết kế kiểm tra nên giữ lại phiên kiểm tra đưa Mỗi phiên đối tượng phức tạp bao gồm số phiên thành phần tạo nên nó, ngược lại thành phần khác khơng có thay đổi Bên cạnh OODB cho phép sử dụng mơ hình tiến hóa việc thay đổi, thêm kiểu quan hệ Đặc tính khơng có hệ OODB mà cịn có hệ quản trị CSDL khác Tính đa hình OO Một tính chất khác tiếp cận OO tính đa hình Tính chất thể khả phương thức thực kiểu đối tượng khác Do tình này, tên phương thức đến nhiều cách cài đặt khác phụ thuộc vào chủ thể đối tượng mà áp dụng Tính chất gọi tính xếp chồng Chẳng hạn, phương thức tính diện tích khác với hình khác nhau: hình trịn, hình chữ nhật … Điều dẫn đến u cầu sử dụng ý tưởng liên kết muộn tên phương thức với cài đặt cụ thể phương thức Sử dụng cài đặt định lúc runtime, mà đối tượng thực phương thức xác định Các khái niệm mơ hình hướng đối tượng 3.1 Tên, cấu trúc khởi tạo đối tượng 3.1.1 Định danh đối tượng OODB cung cấp định danh cho đối tượng độc lập DB Định danh quản lý thông qua sinh định danh tự động (Object identifier – OID) Người dùng bên ngồi khơng thấy giá trị OID Tuy nhiên, OID có ý nghĩa hệ thống, sử dụng để quản lý thông tin liên quan đến đối tượng OID thuộc tính khơng thay đổi Điều trì tên đối tượng giới thực biểu diễn Vì thế, OODB phải có thành phần cho phép sinh tự động OID đảm bảo tính cố định cho Mỗi OID sử dụng lần đối tượng bị loại bỏ khỏi DB khơng nên sử dụng lại OID Giá trị OID không nên phụ thuộc vào giá trị thuộc tính khác giá trị thuộc tính thay đổi khơng thể đảm bảo tính đắn giá trị OID không nên phụ thuộc vào địa vật lý địa vật lý thay đổi có thay đổi cấu trúc vật lý DB Tuy vậy, số hệ thống sử dụng địa vật lý OID nhằm làm tăng tính hiệu truy nhập đối tượng Nếu địa vật lý đối tượng thay đổi, trỏ gián tiếp đến địa cũ bị thay đổi tới địa vật lý đối tượng Người ta thường sử dụng số nguyên làm OID nhằm xây dựng mảng băm giá trị OID tương ứng với địa vật lý đối tượng Một số mơ hình OODB trước u cầu giá trị biểu diễn thuộc kiểu kiểu số nguyên, kiểu chuỗi, kiểu Boolean Như vậy, hai OID khác có giá trị Điều khiến mơ hình lý thuyết trở nên rõ ràng thực tế lại đến việc phải sinh nhiều OID Do đó, nhiều OODB sau cho phép biểu diễn đối tượng giá trị Tất đối tượng có OID cố định, ngược lại giá trị khơng có OID có ý nghĩa biểu diễn thân Như thế, giá trị lưu bên đối tượng tham chiếu từ đối tượng khác Trong số hệ thống, giá trị có cấu trúc phức tạp không cần kèm theo OID tương ứng 3.1.2 Cấu trúc đối tượng Trong OODB, trạng thái đối tượng phức tạp xây dựng từ đối tượng khác việc sử dụng phương thức khởi tạo Một cách điển hình việc biểu diễn đối tượng xem đối tượng tập (I, c, v) đó: I: Là định danh đối tượng (OID) C: Là kiểu khởi tạo (type constructor) V: Là trạng thái đối tượng hay gọi giá trị thời (current value) Mơ hình liệu điển hình bao gồm số kiểu khởi tạo Có kiểu khởi tạo là: Phần tử (atom), ghi (tuple), tập hợp (set) Một số kiểu khởi tạo khác hay sử dụng như: list, bag, array Kiểu khởi tạo phần tử (atom) sử dụng để biểu diễn tất giá trị đơn số nguyên, số thực, chuỗi ký tự, logic … Trạng thái v đối tượng hiểu dựa kiểu khởi tạo c - Nếu c = atom, v giá trị đơn - Nếu c = Set v tập định danh đối tượng (OID) Các đối tượng có kiểu - Nếu c = Tuple biểu diễn dạng tên thuộc tính, ji OID - Nếu c = list v danh sách (có thứ tự )được xếp [i 1, in] OID có kiểu - Nếu c = array trạng thái đối tượng mảng chiều OID Sự khác array list list có số phần tử mảng lại có số phần tử cố định, khơng vượt q giá trị Sự khác set Bag Set, phần tử khác Bag chứa phần tử giống Set, list, array bag gọi kiểu tập hợp (collection type bulk type) Đặc điểm chúng trạng thái đối tượng biểu diễn hợp trạng thái đối tượng tập hợp Kiểu Tuple sau gọi kiểu có cấu trúc (struct C C++) 3.1.3 Khởi tạo kiểu (Type constructors) Ngôn ngữ định nghĩa đối tượng (Object definition language – ODL) thường liên quan chặt chẽ đến việc khởi tạo kiểu đối tượng DB ứng dụng cụ thể Có thể hiểu Type constructors (tác tử xây) lớp cấu trúc, cho phép áp đặt cấu trúc lên tập đối tượng định nghĩa tính chất cấu trúc đa trị Các tác tử xây: (tuple): cho phép gộp thuộc tính (tích Đề các) tập (set): cho phép định nghĩa phần tử không thứ tự, không chứa phần tử giống túi (bag): tập không thứ tự, có phần tủ giống danh sách (list): cho phép định nghĩa phần tử có thứ tự, phép có phần tử giống bảng (table): Nhóm có thứ tự có số 3.2 Mơ tả hành vi đối tượng Ý tưởng “che dấu thông tin” Encapsulation đưa vào OODB Phần việc định nghĩa Behaviour kiểu đối tượng dựa thao tác thực thi Cấu trúc bên đối tượng “ẩn” đối tượng truy nhập thông qua số phương thức định nghĩa sẵn Các phương thức sử dụng để tạo lập (Insert), hủy (destroy), thay đổi (update) hay truy vấn trạng thái đưa vào tính toán liên quan đến đối tượng Người sử dụng tương tác với đối tượng thơng quan Interface đối tượng Người dùng khơng biết cách cài đặt bên phương thức cách định nghĩa mặt cấu trúc liệu Trong tiếp cận hướng đối tượng, Interface phương thức gọi signature Thông thường, phương thức cần thực gửi message đến đối tượng nhờ đó, đối tượng thực phương thức tương ứng Sau thực hiện, đối tượng gửi message để trả lại giá trị mơi trường ngồi đến đối tượng khác Yêu cầu tất đối tượng phải thực Encapsulate khắt khe Có cách để nới lỏng yêu cầu chia cấu trúc đối tượng thành phần: phần thuộc tính hidden phần thuộc tính visible Các thuộc tính Visible truy nhập trực tiếp cách thực truy vấn gọi ngôn ngữ truy vấn bậc cao (high-level query languages) Các thuộc tính hidden “đóng gói” hồn tồn truy nhập thông qua hàm định nghĩa trước Hầu hết OODBMS đưa vào ngôn ngữ truy vấn bậc cao nhằm cho phép truy cập đến thuộc tính Visible OQL (Object Query Language) ngơn ngữ Trong hầu hết trường hợp, hàm thay đổi trạng thái đối tượng Encapsulate Đây cách đưa ngữ nghĩa cập nhật đối tượng biểu diễn nhiều mơ hình liệu hướng đối tượng với ràng buộc tồn vẹn Mỗi kiểu đối tượng có ràng buộc tồn vẹn riêng lập trình phương thức Create, Delete, update đối tượng Trong trường hợp đó, tất hàm thay đổi triển khai phương thức “đóng gói” Hiện nay, ODL sử dụng chuẩn ODMG 2.0 cho phép mô tả số ràng buộc khóa, quan hệ ngược (tồn vẹn tham chiếu) để hệ thống tự đảm bảo toàn vẹn yêu cầu Thuật ngữ lớp (Class) sử dụng để định nghĩa đối tượng Mỗi Class có nhiều phương thức phần signature (interface) tương ứng với Mỗi thao tác thực lớp thông thường gồm có phần khởi tạo, thực thay đổi truy xuất thơng tin hủy đối tượng 3.3 Tính đóng gói giao tiếp đối tượng 3.3.1 Tính đóng gói (Encapsulation) Encapsulation tính chất quan trọng OOLP OO system Nó liên quan đến khái niệm “kiểu liệu trừu tượng” “che dấu thơng tin” ngơn ngữ lập trình Trong mơ hình DB truyền thống, khái niệm khơng đưa vào thơng thường cấu trúc DB “ẩn” người dùng cuối Trong mơ hình này, số thao tác DB chuẩn sử dụng cho tất đối tượng với kiểu Chẳng hạn, mơ hình RDB, thao tác 10 Select, Insert, Delete, Update có dạng cố định sử dụng cho quan hệ DB Quan hệ thuộc tính “ẩn” với người dùng Sử dụng thao tác để tác động đến người dùng khơng biết cấu trúc bên 3.3.2 Giao tiếp đối tượng Việc xác định đối tượng theo ngữ cảnh mơ hình phân tích đủ cho việc thiết kế Nhưng vài chi tiết khác bổ sung để hệ thống hồn tất Đó việc thiết lập truyền thơng đối tượng Cơ chế gọi thông báo Ví dụ: Có đối tượng: B, D Chẳng hạn B cần trình gắn với op10 đối tượng D, truyền tới D thơng báo có dạng: Thơng báo: (nơi đến, phép tốn, tham số) Trong đó: Nơi đến: Xác định đối tượng nhận (D) Phép toán: Chỉ phép toán tham chiếu (OP10) Tham số: Cung cấp thông tin theo yêu cầu phép tốn Như thơng báo trở thành: Thơng báo: (D, OP10, ) 3.4 Phân cấp kế thừa đối tượng Phân cấp kế thừa tính chất quan trọng OODB Trong hầu hết ứng dụng sở liệu, có nhiều đối tượng kiểu lớp Do đó, sở liệu OO phải cung cấp khả phân lớp đối tượng dựa kiểu chúng giống hệ sở liệu khác thực Nhưng sở liệu OO, có thêm yêu cầu cho phép định nghĩa kiểu dựa kiểu định nghĩa từ trước, tạo kiểu (hay lớp) kế thừa 11 3.4.1 Phân cấp Liên kết phân cấp hai lớp xác định đối tượng lớp tổng quát đối tượng lớp dưới, đối tượng lớp có tính chất đầy đủ tinh tế so với lớp Ví dụ phân cấp lớp: * Con người - Tên - Nơi làm việc * Nhân viên * Cán * Nhân viên thường * Người thất nghiệp - Nơi làm việc = null 3.4.2 Kế thừa Tính kế thừa: Là truyền tính chất lớp tới lớp Mọi phần tử lớp kế thừa tính chất lớp Một số tính chất lớp làm tinh tế định nghĩa lại Ví dụ: thuộc tính “Nơi làm việc” lớp “Con người” định nghĩa lại với giá trị null mức lớp “Người thất nghiệp” Tính kế thừa bội: cho phép lớp có nhiều lớp trực tiếp (được kế thừa từ nhiều lớp) Lớp kế thừa tính chất phương pháp lớp Có thể xảy cần giải xung đột tên tính chất hay phương pháp Ví dụ tính kế thừa bội: 12 3.4.3 Các ràng buộc phạm vi liên kết phân cấp * Tam giác Trong hầu hết OODB, tập hợp đối tượng phạm vi thường có kiểu lớp Tuy nhiên, khơng phải điều kiện bắt buộc Ví dụ, SMALLTALK, cịn gọi ngôn ngữ OO không kiểu, cho phép tập đối tượng chứa đối tượng khác kiểu Đây trường hợp ngơn ngữ *Tam giác cân - diện tích *Tam giác vng - diện tích khơng kiểu khơng hướng đối tượng khác, LISP, mở rộng với khái niệm OO Tuy nhiên phần lớn sở liệu OO hỗ trợ kiểu nên phần lại ta giả sử phạm vi tập đối tượng có kiểu Thơng thường ứnggiác dụng sởcân dữ- liệu kiểu tính có * Tam vng diệnmà tíchmỗi {tính kế hay thừakiểu hai hàm tích cần đượccóphân phạm vi gắn với diện nó, phạm vi hiệubiệt} lực với tập tất đối tượng cố định (persistent) kiểu kiểu Trong trường hợp này, bắt buộc đối tượng phạm vi tương ứng với kiểu phải thành viên phạm vi ứng với kiểu cha Một số hệ sở liệu OO có kiểu hệ thống định nghĩa trước (gọi lớp ROOT hay lớp OBJECT), phạm vi chứa tất đối tượng hệ thống Phân lớp cách gán đối tượng cho kiểu thêm vào mà có ý nghĩa ứng dụng, tạo kiểu phân cấp lớp kế thừa cho hệ thống Tất phạm vi ứng với lớp định nghĩa cho người dùng hệ thống tập phạm vi tương ứng với lớp OBJECT trực tiếp gián tiếp Trong mơ hình ODMG (chương12), người dùng khơng thể rõ phạm vi cho lớp (kiểu), phụ thuộc vào ứng dụng Trong hầu hết hệ thống OO, khác tạo tập đối tượng tạm thời tập đối tượng cố định Tập cố định chứa tập đối tượng mà lưu cố định (persistent) sở liệu truy nhập chia sẻ nhiều chương trình Tập tạm thời tồn tạm thời trình 13 thực chương trình khơng lưu lại chương trình kết thúc Ví dụ, tập tạm thời tạo chương trình để chứa kết truy vấn lựa chọn số đối tượng từ tập cố định chép đối tượng sang tập tạm thời Tập tạm thời chứa đối tượng kiểu tập cố định Chương trình sau thao tác đối tượng tập tạm thời chương trình kết thúc, tập tạm thời khơng tồn Nói chung, nhiều tập hợp, tạm thời hay cố định chứa đối tượng kiểu Các đối tượng phức hợp Động chủ yếu dẫn tới phát triển hệ thống OO mong muốn thể đối tượng phức hợp Có hai loại đối tượng phức hợp chính: có cấu trúc khơng có cấu trúc Một đối tượng phức hợp có cấu trúc tạo nên từ thành phần định nghĩa việc áp dụng kiểu có sẵn cách đệ qui nhiều mức Một đối tượng phức hợp khơng có cấu trúc kiểu liệu u cầu lượng lớn không gian lưu trữ, kiểu liệu thể đối tượng hình ảnh hay đối tượng văn lớn 4.1 Các đối tượng phức hợp khơng có cấu trúc mở rộng kiểu Một đối tượng phức hợp khơng có cấu trúc cung cấp DBMS cho phép lưu trữ tìm kiếm đối tượng lớn ứng dụng sở liệu Các ví dụ điển hình ảnh bitmap chuỗi văn dài (như tài liệu); chúng biết đến đối tượng lớn dạng nhị phân, hay gọi tắt điểm màu (BLOBs for short) Những đối tượng khơng có cấu trúc theo nghĩa DBMS khơng biết cấu trúc chúng – có ứng dụng mà sử dụng chúng hiểu rõ ý nghĩa chúng Ví dụ ứng dụng có chức hiển thị hình ảnh tìm kiếm từ khóa chuỗi văn dài Các đối tượng coi phức tạp chúng yêu cầu vùng lưu trữ lớn kiểu liệu chuẩn cung cấp DBMSs truyền thống Bởi kích cỡ đối tượng lớn, DBMS tìm kiếm phần đối tượng cung cấp cho chương trình ứng dụng trước đối tượng tìm thấy DBMS sử dụng kỹ thuật nhớ đệm nhớ 14 cache để đem phần đối tượng trước chương trình ứng dụng cần truy cập chúng Các phần mềm DBMS khơng có khả xử lý điều kiện lựa chọn cách trực tiếp thực thao tác khác dựa giá trị đối tượng này, ngoại trừ ứng dụng cung cấp mã để thực thao tác so sánh cần cho việc chọn lựa Trong OODBMS, điều thực việc xác định kiểu liệu trừu tượng cho đối tượng phức hợp cung cấp phương thức để chọn, so sánh hiển thị đối tượng Ví dụ xem xét đối tượng ảnh bitmap hai chiều Giả sử ứng dụng cần lựa chọn từ tập đối tượng theo mẫu Trong trường hợp này, người dùng phải cung cấp chương trình nhận dạng mẫu phương thức đối tượng kiểu bitmap OODBMS sau tìm đối tượng từ sở liệu chạy phương thức nhận dạng mẫu để xác định rõ đối tượng có chứa mẫu yêu cầu hay khơng Bởi OODBMS cho phép người dùng tạo kiểu chứa cấu trúc phép tốn nên xem OODBMS hệ thống kiểu mở rộng Người ta tạo thư viện kiểu cách xác định cấu trúc phép toán chúng Các ứng dụng sau sử dụng sửa chữa hay tạo kiểu từ kiểu cung cấp thư viện Tuy nhiên chất DBMS phải cung cấp trước hết khả lưu trữ lớn tìm kiếm đối tượng dựa phép tốn Nhiều hệ thống OODBMS cung cấp cho việc lưu trữ tìm kiếm đối tượng khơng có cấu trúc lớn chuỗi kí tự hay chuỗi bit, chúng thể rõ cách đưa vào chương trình ứng dụng Gần đây, hệ DBMS quan hệ DBMS quan hệ mở rộng cung cấp khả vây 4.2 Các đối tượng phức hợp có cấu trúc Một đối tượng phức hợp có cấu trúc khác với đối tượng phức hợp khơng có cấu trúc chỗ cấu trúc đối tượng định nghĩa việc lặp lại áp dụng kiểu cung cấp OODBMS Từ đó, đối tượng có cấu trúc xác định quen thuộc với OODBMS Chẳng hạn, xem xét đối tượng DEPARTMENT thể hình 11.01 15 Biểu diễn đối tượng phức hợp Department đồ thị Ở mức đầu tiên, đối tượng có cấu trúc (tuple structure) với thuộc tính: DNAME, DNUMBER, MGR, LOCATIONS, EMPLOYEES, and PROJECTS Tuy nhiên có hai thuộc tính DNAME DNUMBER có giá trị bản, thuộc tính có giá trị phức tạp từ xây dựng nên mức thứ hai cấu trúc đối tượng phức hợp Một số thuộc tính (MGR) có cấu trúc (tuple), thuộc tính khác (LOCATIONS, EMPLOYEES, PROJECTS) có cấu trúc tập hợp (set) Ở mức thứ ba, giá trị MGR, có thuộc tính (MANAGERSTARTDATE) thuộc tính (MANAGER) mà đến đối tượng nhân viên employee, mà có cấu trúc Đối với tập LOCATIONS, có tập giá trị bản, EMPLOYEES tập PROJECTS, có tập đối tượng có cấu trúc (sets of tuple-structured objects) Có loại ngữ nghĩa tham chiếu tồn đối tượng phức thành phần mức bao gồm: - “Ngữ nghĩa sở hữu”: Đối tượng đóng gói đối tượng phức hiểu thành phần đối tượng phức - “Ngữ nghĩa tham chiếu”: Các thành phần tham chiếu từ đối tượng phức chúng đối tượng độc lập Ví dụ: Trong đối tượng phức Department thuộc tính DNAME, DNUMBER, MGR, LOCATIONS thành phần “sở hữu”, EMPLOYEES 16 PROJECTS tham chiếu (references) chúng đến đối tượng độc lập Loại đến phần hay thành phần quan hệ (is-part-of or is-component-of relationship), loại thứ hai gọi mối quan hệ kết hợp với (is-associated-with relationship), từ mơ tả kết hợp ngang (equal association ) hai đối tượng độc lập Các thành phần đối tượng phức hợp thuộc loại “tham chiếu sở hữu” đóng gói coi trạng thái đối tượng Chúng khơng cần có định danh đối tượng truy cập phương thức đối tượng Chúng bị xóa thân đối tượng bị xóa Mặt khác, thành phần thuộc loại “tham chiếu” chúng chứa đối tượng độc lập (các đối tượng mà có định danh phương thức nó) Khi đối tượng phức hợp cần truy cập tới thành phần tham chiếu nó, phải thực cách gọi tới phương thức phù hợp thành phần, thành phần khơng đóng gói đối tượng phức hợp Vì vậy, ngữ nghĩa tham chiếu thể mối quan hệ đối tượng độc lập Thêm vào đó, đối tượng thành phần tham chiếu tham chiếu nhiều đối tượng phức hợp khơng tự động xóa đối tượng phức hợp bị xóa Một OODBMS nên cung cấp tùy chọn lưu trữ cho việc gộp nhóm đối tượng thành phần đối tượng phức hợp với không gian lưu trữ thứ cấp (secondary storage ) nhằm tăng tính hiệu phép toán truy cập đối tượng phức hợp Trong nhiều trường hợp, cấu trúc đối tượng lưu trang đĩa (disk pages) theo cách thức không rõ ràng Khi trang đĩa chứa đối tượng tìm thấy đưa vào nhớ, OODBMS xây dựng nên đối tượng phức hợp có cấu trúc từ thông tin trang đĩa (kể trang tìm kiếm) Điều biết đến kết hợp đối tượng phức hợp (complex object assembly.) Một số nội dung khác hướng đối tượng Trong phần xem xét vài nội dung hướng đối tượng khác, bao gồm đa cấu (chồng tốn tử), thừa kế bội, thừa kế có chọn lọc, phiên cấu hình 17 5.1 Đa cấu (chồng toán tử) - Polymorphism (Operator Overloading) Một đặc trưng khác hệ thống OO chúng cung cấp tính đa cấu cho phép tốn, đơi người ta gọi chồng toán tử Khái niệm cho phép tên hay ký hiệu toán tử giống biểu diễn cho hay nhiều thực thi khác phụ thuộc vào kiểu đối tượng mà thao tác áp dụng Một ví dụ đơn giản từ ngơn ngữ lập trình minh họa nội dung Trong vài ngôn ngữ, ký hiệu tốn tử “+” có ý nghĩa khác áp dụng với tốn hạng có kiểu DL khác Nếu tốn hạng phép “+” có kiểu integer, phép toán cộng số nguyên Nếu toán hạng có kiểu điểm số thực (floating point), phép toán cộng điểm số thực Nếu thao tác có kiểu tập hợp, phép tốn tập hợp Trình biên dịch xác định phép tốn thực dựa kiểu liệu toán hạng Trong CSDL OO, tình tương tự xảy Chúng ta xét ví dụ GEOMETRY_OBJECT để minh họa cho tính đa cấu Giả sử khai báo GEOMETRY_OBJECT kiểu sau: GEOMETRY_OBJECT: Shape, Area, ReferencePoint RECTANGLE Width, Height subtype-of GEOMETRY_OBJECT (Shape=‘rectangle’): TRIANGLE subtype-of GEOMETRY_OBJECT (Shape=‘triangle’): Side1, Side2, Angle CIRCLE subtype-of GEOMETRY_OBJECT (Shape=‘circle’): Radius Ở hàm Area khai báo cho tất đối tượng kiểu GEOMETRY_OBJECT Tuy nhiên, thực thi phương pháp cho Area khác cho loại GEOMETRY_OBJECT Một khả có thực thi chung cho việc tính tốn diện tích GEOMETRY_OBJECT tổng qt (chẳng hạn viết giải thuật chunng để tính diện tích hình đa giác) Và sau viết lại giải thuật hiệu qủa để tính diện tích loại cụ thể đối tượng hình học, hình trịn, hình chữ nhật, tam giác,…Trong trường hợp này, hàm Area bị “chồng” thực thi khác OODBMS phải chọn phương pháp thích hợp cho hàm Area dựa kiểu đối tượng hình học mà áp dụng Trong hệ thống mạnh, điều thực thời điểm biên dịch, loại đối tượng biết đến Điều gọi ràng buộc trước (tĩnh - early (or static) binding) Tuy nhiên hệ thống với kiểu yếu khơng có kiểu (như SMALLTALK LISP), 18 kiểu đối tượng mà hàm áp dụng biết đến chạy chương trình Trong trường hợp hàm phải kiểm tra kiểu đối tượng chạy, sau gọi phương pháp thích hợp Điều thường gọi “liên kết động” 5.2 Thừa kế bội thừa kế có chọn lọc Thừa kế bội kiểu phân cấp xảy kiểu phụ T kiểu phụ hai hay nhiều kiểu thừa kế hàm (các thuộc tính phương thức) kiểu (supertypes) Ví dụ tạo kiểu phụ ENGINEERING_MANAGER kiểu (phụ) MANAGER ENGINEER Điều dẫn tới việc tạo kiểu lưới (type lattice) tốt kiểu phân cấp Một vấn đề xảy thừa kế bội: kiểu (supertypes) mà có kiểu phụ thừa kế lại có hàm khác với tên giống tạo nhập nhằng Ví dụ, MANAGER ENGINEER có hàm Salary Nếu hàm thực phương pháp khác kiểu MANAGER ENGINEER, nhập nhằng tồn kiểu phụ ENGINEERING_MANAGER thừa kế hai hàm Điều có thể, nhiên, ENGINEER MANAGER thừa kế Salary từ kiểu (như EMPLOYEE) cấp cao lưới Qui tắc tổng quát hàm thừa kế từ kiểu chung, thừa kế lần Trong trường hợp khơng có nhập nhằng, vấn đề nảy sinh hàm khác hai kiểu (two supertypes) Có vài kỹ thuật để giải nhập nhằng thừa kế bội Một hướng giải có hệ thống kiểm tra nhập nhằng kiểu phụ tạo ra, cho phép người dùng lựa chọn rõ ràng hàm thừa kế thời điểm Hướng giải khác sử dụng vài hệ thống mặc định Hướng thứ ba không cho phép thừa kế bội đầy đủ (hoàn toàn) xảy nhập nhằng tên, thay bắt buộc người dùng thay đổi tên số hàm kiểu (supertypes) Thực tế vài hệ thống OO không cho phép thừa kế bội đầy đủ Thừa kế có chọn lọc xảy kiểu phụ thừa kế vài hàm kiểu Các hàm khác khơng thừa kế Trong trường hợp này, mệnh đề EXCEPT dùng để liệt kê hàm kiểu mà khơng thừa kế kiểu phụ Cơ chế thừa kế có chọn lọc khơng cung cấp hệ thống CSDL OO dùng thường xuyên ứng dụng thông minh nhân tạo (artificial intelligence applications) 19 5.3 Các phiên cấu hình 5.3.1 Phiên Thực tế nhiều ứng dụng dựa OODB yêu cầu cho phép đối tượng có nhiều phiên thời điểm Ví dụ, xem xét ứng dụng CSDL cho môi trường hệ thống liên quan đến kỹ nghệ phần mềm thực lưu trữ tư liệu phần mềm (như module thiết kế, module mã nguồn thơng tin cấu hình) để mô tả module liên kết với tạo thành chương trình phức tạp với trường hợp kiểm thử để kiểm thử hệ thống Nói chung, hoạt động bảo trì áp dụng cho hệ thống phần mềm yêu cầu phát triển Bảo trì thường bao gồm thay đổi vài module thiết kế thực Nếu hệ thống sẵn sàng hoạt động, hay nhiều module phải thay đổi, người thiết kế nên tạo phiên cho module để thực việc thay đổi Tương tự, phiên trường hợp kiểm thử phát sinh để kiểm thử phiên module Tuy nhiên, phiên tồn không nên bị loại bỏ phiên kiểm thử chấp nhận hoàn toàn, nên phiên thay phiên cũ Chú ý có nhiều phiên đối tượng Ví dụ, xem xét hai người lập trình làm việc để cập nhật đồng thời module phần mềm Trong trường hợp hai phiên bản, cộng với module gốc bắt buộc Những người lập trình cập nhật phiên họ module phần mềm cách đồng thời Điều đến kỹ thuật “đồng thời” (concurrent engineering) Tuy nhiên cần có khả để kết hợp hai phiên với để tạo thành phiên (phiên ghép) chứa thay đổi tạo người lập trình Trong kết hợp cần đảm bảo chắn thay đổi họ tương thích với Sự bắt buộc tạo phiên khác đối tượng: kết qủa kết hợp hai phiên cập nhật cách độc lập Như thảo luận trên, OODBMS nên lưu trữ quản lý nhiều phiên đối tượng Vài hệ thống thực cung cấp khả này, cách cho phép ứng dụng trì nhiều phiên đối tượng cho phép tham chiếu đến phiên cụ thể cần thiết Tuy nhiên nhà phát triển phần mềm thường không quan tâm đến vấn đề kết hợp đồng thay đổi phiên khác Một vài DBMSs cho phép so sánh phiên 20 đối tượng gốc xác định có hay không thay đổi tạo mà khơng tương thích với gây khó khăn cho trình kết hợp Các hệ thống khác trì đồ thị phiên để mối quan hệ phiên Bất phiên v1 tạo cách chép phiên khác v, cung có hướng vẽ từ v đến v1 Tương tự, hai phiên v2 v3 kết hợp để tạo thành phiên v4, cung có hướng vẽ từ v v3 đến v4 Đồ thị phiên giúp người dùng hiểu mối quan hệ nhiều phiên hệ thống sử dụng để quản lý việc tạo xóa phiên V1 V V3 V2 V4 Ví dụ đồ thị phiên Tuy nhiên lại nảy sinh số vấn đề xác định phiên đối tượng phức tạp Một đối tượng phức tạp, hệ thống phần mềm, bao gồm nhiều module Khi xác định phiên hệ thống, module có số phiên khác tương ứng với đồ thị phiên 5.3.2 Cấu hình Một cấu hình đối tượng phức tạp tập hợp bao gồm phiên module xếp theo cách là: phiên module cấu hình phải tương thích với tạo nên phiên hợp lý đối tượng phức tạp Một phiên hay cấu hình đối tựơng phức tạp bao gồm phiên cho module Do phiên module khơng thay đổi thuộc nhiều hay cấu hình đối tượng phức tạp Chú ý cấu hình tập phiên đối tượng khác mà tạo nên đối tượng phức tạp, đồ thị 21 phiên mô tả phiên đối tượng Một cấu hình nên theo kiểu cấu trúc đối tượng phức tạp, nhiều cấu hình đối tượng phức tạp tương tự nhiều phiên đối tượng thành phần Mơ hình hóa việc phân tích hướng đối tượng Có nhiều lược đồ khác dùng cho việc phân tích hướng đối tượng Tất sử dụng khái niệm nêu phần Theo tài liệu Coad Yourdon năm 1990, tiếp cận hướng đối tượng bao gồm bước: Định tên đối tượng Định tên cấu trúc Xác định chủ đề Xác định thuộc tính nối kết Xác định phép tốn liên kết thơng báo Kết luận Trong tiểu luận đề cập đến ý tưởng chủ yếu tiếp cận hướng đối tượng nói chung thành phần mơ hình CSDL hướng đối tượng nói riêng Sự đời mơ hình CSDL hướng đối tượng đáp ứng cần thiết cho việc xây dựng ứng dụng CSDL phức tạp cung cấp chức CSDL chuyên dùng cho ngôn ngữ lập trình hướng đối tượng Bài tiểu luận trình bày OODB Tuy chúng tơi cố gắng để hồn thiện khái niệm mức cao nhất, đưa nhìn tổng quát OODB 22 Tài liệu tham khảo Fundamentals of Database Systems – Ramez Elmasri and Shamkant B.Navathe – 2008 Cơ sở liệu – Đỗ Trung Tuấn - 1998 Bài trình bày: “Object Oriented Database” Semantic Modeling of Object Oriented Databases – Mokrane Bouzeghoub, Elisabeth Me’tais - 1991 23