1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tối ưu hóa truy vấn cơ sở dữ liệu hướng tới đối tượng 04

83 18 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Tuy nhiên với sự phát triển nhanh chóng của CNTT,CSDL quan hệ đã dần bộc lộ những yếu điểm và nhiều hạn chế, đặc biệt là trong việcxây dựng các ứng dụng cơ dữ liệu phức tạp, dữ liệu đa c

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHẠM THỊ CHANH

TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

Ngành: CÔNG NGHỆ THÔNG TIN

Chuyên ngành : HỆ THỐNG THÔNG TIN

Mã số: 60480104

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS TS ĐOÀN VĂN BAN

HÀ NỘI – 2014

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm hiểu, nghiên cứu Các tài liệu tham khảo đƣợc trích dẫn và chú thích đầy đủ.

Tác giả

Phạm Thị Chanh

Trang 4

LỜI CẢM ƠN

Lời đầu tiên của luận văn em xin gửi lời cảm ơn chân thành nhất đến PGS.TSĐoàn Văn Ban, người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợicho em từ lúc tìm hiểu, định hướng cũng như tìm kiếm tài liệu trong lĩnh vực cơ sở

dữ liệu hướng đối tượng cho đến lúc hoàn thành luận văn

Em xin gửi lời cám ơn sâu sắc đến tất cả các thầy cô giáo đã dạy dỗ và truyềnđạt những kinh nghiệm quý báu cho chúng em trong suốt hai năm cao học ở trườngĐại học Công nghệ - Đại học Quốc gia Hà nội

Cuối cùng, em xin biểu thị sự biết ơn tới những người thân trong gia đình vàbạn bè đã ưu ái, giúp đỡ, động viên, khích lệ để em hoàn thành luận văn này

Hà nội, ngày … , tháng … , năm 2014

Trang 5

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

(Object Database Management Group)

Trang 6

DANH MỤC CÁC THUẬT NGỮ

Biến thể hiện dựa trên giá

trị Biến thể hiện lớp Đối

Specific typesBag

General typesObject schemasInheritance relationshipAggregation relationshipClass hierarchy

Class composition hierarchy Overloading method

Derived-attribute method Metaclass/Superclass Subclass

Nested queryObject-Oriented ModelEntity

OverridingLate bindingSingle attribute Single-valued attribute

Multivalued attribute Composite attribute Polymorphism Encapsulation Multipleinheritance

Trang 7

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Sự phát triển của các mô hình dữ liệu

Hình 1.2 Mô hình dữ liệu hướng đối tượng nguyên mẫu

Hình 1.3 Kế thừa đơn

Hình 1.4 Kế thừa bội từ hai lớp khác nhau và có lớp cơ sở chung

Hình 1.5 Kế thừa bội không có lớp cơ sở chung

Hình 1.6 Sự phân cấp các kiểu trong OQL

Hình 1.7 Lược đồ CSDL Quản lý Nhân viên

Hình 2.1 Siêu đồ thị H

Hình 2.2 Siêu đồ thị kết nối đối tượng của ví dụ 2.1

Hình 2.3 Siêu đồ thị kết nối của ví dụ 2.2

Hình 2.4 Siêu đồ thị kết nối của ví dụ 2.3

Hình 2.5 Siêu đồ thị kết nối của ví dụ 2.4

Hình 3.1 Lược đồ CSDL Quản lý Nhân sự

Hình 3.2 Form luận văn

Hình 3.3 Kết quả truy vấn 1

Hình 3.4 Kết quả truy vấn 2

Hình 3.5 Kết quả truy vấn 3

Trang 8

DANH MỤC CÁC BẢNG, BIỂU ĐỒ

Bảng 2.1 Kết quả ƣớc lƣợng siêu cạnh của ví dụ 2.3

Bảng 2.2 Kết quả ƣớc lƣợng khi áp dụng thuật toán 2.5 Tinh chỉnh siêu đồ thị của ví dụ 2.3

Bảng 2.3 Kết quả ƣớc lƣợng siêu cạnh của ví dụ 2.4

Bảng 2.4 Kết quả ƣớc lƣợng khi áp dụng thuật toán 2.5 Tinh chỉnh siêu đồ thị của ví dụ 2.4

Biều đồ 3.1 So sánh thời gian thực hiện truy vấn 1

Biều đồ 3.2 So sánh thời gian thực hiện truy vấn 2

Biều đồ 3.3 So sánh thời gian thực hiện truy vấn 3

Trang 9

LỜI MỞ ĐẦU

Chúng ta đang sống trong một thời đại mới, thời đại của Công nghệ thông tin(CNTT) Công nghệ thông tin ngày một phát triển và trở thành một nhu cầu không thểthiếu trong mọi lĩnh vực của đời sống xã hội CNTT là ngành quản lý công nghệ và mở

ra nhiều lĩnh vực khác nhau như phần mềm máy tính, phần cứng máy tính, ngôn ngữ lậptrình, ….Và cơ sở dữ liệu cũng là một lĩnh vực quan trọng của Công

nghệ thông tin Từ khi ra đời cho đến nay, những nghiên cứu về Cơ sở dữ liệu(CSDL) đã không ngừng phát triển và ngày càng trở nên cần thiết trong các ứng dụng

về CNTT

CSDL đã trở thành một bộ phận chủ yếu không thể thiếu trong hầu hết các hệthống thông tin Hiện nay, các hệ thống thông tin hay các CSDL đều chủ yếu sử dụngmột kiểu CSDL truyền thống đó là CSDL quan hệ, một trong những CSDL đã đượcphát triển và ứng dụng rộng rãi Tuy nhiên với sự phát triển nhanh chóng của CNTT,CSDL quan hệ đã dần bộc lộ những yếu điểm và nhiều hạn chế, đặc biệt là trong việcxây dựng các ứng dụng cơ dữ liệu phức tạp, dữ liệu đa chiều, dữ liệu có nhiều mốiquan hệ, hay các dữ liệu đa phương tiện như: hình ảnh, âm thanh, video,…

Ngày nay, phương pháp hướng đối tượng được sử dụng rất phổ biến trong lĩnhvực phát triển phần mềm, vì cho phép lập trình viên tạo ra các đối tượng trong codetrừu tượng hóa các đối tượng thực tế trong cuộc sống Trong thế giới thực, đối tượng

là thực thể tồn tại như con người, xe, máy tính,…Trong ngôn ngữ lập trình, đốitượng có thể là màn hình, điều khiển,…Kỹ thuật hướng đối tượng là kỹ thuật nhằmvào sự tương tác giữa các đối tượng Mỗi đối tượng có những thuộc tính (thông tinlưu trữ), những phương thức xác định các chức năng của đối tượng và các đối tượngchỉ được tạo ra và tồn tại trên bộ nhớ chính, còn việc lưu trữ và tương tác dữ liệudưới dạng các đối tượng trên bộ nhớ thứ cấp vẫn chủ yếu kế thừa từ mô hình quan hệtruyền thống Hiện đã có rất nhiều kết quả nghiên cứu, cho phép chuyển đổi qua lạigiữa các bảng trong mô hình quan hệ sang tập các đối tượng tương ứng Mặc dù kếthừa được tính năng mạnh của hướng đối tượng, nhưng việc chuyển đổi qua lại nàycàng làm cho mã lệnh của chương trình phức tạp thêm, đồng thời hiệu suất chươngtrình cũng giảm đi rõ rệt

CSDL hướng đối tượng là giải pháp cho những hạn chế của CSDL quan hệ TrongCSDL hướng đối tượng, dữ liệu được lưu trữ dưới dạng các đối tượng của ngôn ngữlập trình nên cho phép lưu trữ được các dạng dữ liệu phức tạp, lượng thông tin lớn, đachiều, đa quan hệ, hay có thể mở rộng lưu trữ các dữ liệu đa phương tiện như hình ảnh,

âm thanh, video Trên thế giới, một số hệ quản trị cơ sở dữ liệu hướng đối tượng đượcphát triển bởi các nhà phân phối sản phẩm thương mại, tại các phòng

Trang 10

nghiên cứu công nghệ và các Viện Đại học như: Gemstone, ObjectStores, IRIS,Orion, Extra, Oracle, Db4o,… Một mô hình dữ liệu đối tượng chuẩn ODMG đãđược phát triển và dựa vào đó để thiết lập một số khái niệm cơ sở được gọi là môhình hạt nhân cho mô hình CSDL hướng đối tượng Mô hình hạt nhân đủ mạnh đểthỏa mãn nhiều đòi hỏi của các ứng dụng mới, hơn nữa còn được dùng làm cơ sở đểxác định những khác biệt chính giữa mô hình dữ liệu hướng đối tượng và các môhình dữ liệu truyền thống khác Hệ thống hướng đối tượng là tập các lớp đối tượng

có mối quan hệ với nhau, trao đổi thông tin với nhau để thực hiện những nhiệm vụđặt ra của bài toán ứng dụng trong thực tế

Một trong những hướng nghiên cứu quan trọng được đề cập trong các hệ thốngCSDL hướng đối tượng là tối ưu hoá truy vấn hướng đối tượng Với một câu truyvấn, sẽ tồn tại nhiều phương án mà hệ thống CSDL cho phép xử lý và đưa ra kết quảcuối cùng tương đương nhau, việc tối ưu hóa câu truy vấn sẽ cho chúng ta lựa chọnphương án nào có tổng thời gian thực hiện truy vấn hiệu quả hơn, tức là chọnphương án có chi phí ước lượng nhỏ nhất Hiện nay, các nhà nghiên cứu đã đề xuấtrất nhiều kỹ thuật tối ưu hoá truy vấn hướng đối tượng khả thi và đáp ứng được cácyêu cầu này như: Scott Lee Vanderberg (1993), J Fong (1997), C Ramanathan and J.Hodges (1997), Clement Yu, Yi Zhang, Weiyi Meng, Wom Kim, Gaoming Wang,

Tracy Pham and Son Daop (1997): Giới thiệu giải thuật chuyển đổi các truy vấn hướng đối tượng sang truy vấn quan hệ để tận dụng các kỹ thuật tối ưu hoá truy vấn

đã có trên mô hình quan hệ; Jia Liang Han (1998): “Optimizing Relational Queries in Connection Hypergraph: Nested Queries, Views, and Binding Propagations”; Ullman and Jeffrey D (1999), Lê Mạnh Thạnh và Hoàng Bảo Hùng (2009): Phương pháp tối

ưu hóa truy vấn đối tượng bằng các phép biến đổi biểu thức đại số đối tượng OQL;

Lê Mạnh Thạnh, Đoàn Văn Ban và Hoàng Bảo Hùng (2005): Phương pháp dùng ký pháp siêu đồ thị để biểu diễn và tối ưu hoá các truy vấn trong CSDL hướng đối tượng Tuy nhiên đối với các truy vấn lồng, khi phân tích ước lượng chi phí của biểu

thức đại số lồng thì việc định giá sẽ cho chi phí chưa đạt hiệu quả như mong muốn

Vì vậy, luận văn tập trung nghiên cứu việc làm phẳng các truy vấn con trong truy vấn

lồng nhờ phương pháp dùng ký pháp siêu đồ thị để biểu diễn và tối ưu hoá các truy vấn trong CSDL hướng đối tượng Từ đó, xây dựng thuật toán ước lượng chi phí xử

lý truy vấn đối tượng trên cơ sở ước lượng các siêu cạnh trong siêu đồ thị để đạtđược mức chi phí nhỏ hơn cho mỗi truy vấn Chính vì lý do trên mà tôi chọn đề tài

“TỐI ƯU HOÁ TRUY VẤN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG” làm luận văn tốt nghiệp.

Mục tiêu của luận văn là nghiên cứu các mô hình CSDL hướng đối tượng để

giải bài toán tối ưu hóa truy vấn đối tượng Đây là vấn đề luôn được các nhà khoa

Trang 11

học quan tâm nghiên cứu Trong khuôn khổ của luận văn, tôi tập trung nghiên cứuvào phương pháp tối ưu hóa truy vấn mà hay được sử dụng nhất đặc biệt là đối vớicác truy vấn lồng đó là sử dụng phương pháp siêu đồ thị Nghiên cứu các đặc trưngtrong mô hình dữ liệu hướng đối tượng; Tìm hiểu các kỹ thuật xử lý truy vấn, sự biểudiễn câu truy vấn bằng ngôn ngữ truy vấn đối tượng OQL; Giới thiệu ký pháp siêu đồthị [10] trong biểu diễn truy vấn Từ đó, sử dụng phương pháp này để tối ưu hóa truyvấn cho lớp các truy vấn lồng trong CSDL hướng đối tượng [3].

Với mục tiêu của luận văn như vậy, bố cục của luận văn gồm: phần mở đầu, bachương nội dung và phần kết luận

Chương 1: Giới thiệu các khái niệm, định nghĩa cơ bản như: lớp, đối tượng,

định danh đối tượng trong mô hình CSDL hướng đối tượng; kế đến, trình bày sự mởrộng ngữ nghĩa của mô hình như hệ thống phân cấp và quan hệ kế thừa Tìm hiểu kỹthuật xử lý truy vấn và các thay đổi so với kỹ thuật xử lý truy vấn quan hệ Để thựchiện được các câu truy vấn đối tượng một cách hiệu quả và tiếp tục nghiên cứu cácvấn đề về tối ưu hoá truy vấn trong các CSDL hướng đối tượng, ngôn ngữ truy vấnOQL là ngôn ngữ truy vấn được chọn giới thiệu trong chương này

Chương 2: Trình bày khái niệm siêu đồ thị kết nối đối tượng Sau đó sử dụng

ký pháp siêu đồ thị để biểu diễn truy vấn OQL Xây dựng giải thuật khởi tạo siêu đồ

thị trong các trường hợp truy vấn đối tượng đơn và lồng Đưa ra giải thuật ướclượng siêu cạnh cho các trường hợp tách biệt hay liên thông của các siêu đồ thị conhợp thành siêu đồ thị mà biểu diễn cho một truy vấn đối tượng lồng Cuối chương, là

mở rộng thuật toán tối ưu hóa truy vấn trên cơ sở xây dựng danh sách các bước thựcthi câu truy vấn theo quy tắc có thứ tự loại bỏ siêu cạnh

Chương 3: Giới thiệu về hệ quản trị CSDL đối tượng DB4O Phát biểu bài toán

quản lý nhân sự trong công ty, đó là bài toán được áp dụng trong các ví dụ cho thuậttoán tối ưu hóa truy vấn Đưa ra kết quả thực nghiệm cho bài toán tối ưu hóa truyvấn CSDL hướng đối tượng dựa trên siêu đồ thị Cuối cùng là kết luận và hướngphát triển của đề tài

Nội dung cơ bản của luận văn đã được trình bày, thảo luận tại xêmina khoa học

ở Bộ môn Hệ thống thông tin, khoa Công nghệ Thông tin, trường Đại học Công nghệ

- Đại học Quốc gia Hà nội

Trang 12

Chương 1

MÔ HÌNH CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG

1.1.1 Mô hình dữ liệu

Các hệ thống quản trị cơ sở dữ liệu (CSDL) đầu tiên xuất hiện trước những năm

1970 Những hệ thống này được phát triển từ hệ thống các tệp tin (File Systems) để

hỗ trợ cho việc lưu trữ và xử lý số lượng lớn các dữ liệu Tuy nhiên, các nhà nghiêncứu trong lĩnh vực CSDL nhận thấy giá trị của dữ liệu cần được lưu trữ để xử lý, vàcác mô hình dựa trên dữ liệu cần được nghiên cứu để cải thiện độ tin cậy, đảm bảo anninh, an toàn dữ liệu và nâng cao hiệu quả của việc truy cập vào hệ thống

Mô hình dữ liệu cung cấp cách thức tổ chức các dữ liệu được lưu trữ theo cấutrúc đặc biệt hoặc theo các mối quan hệ sao cho việc truy cập và quản lý nhanhchóng, hiệu quả Nhiều mô hình CSDL như mô hình phân cấp (Hierarchical model),

mô hình mạng (Network model), mô hình quan hệ (Relational model), mô hìnhhướng đối tượng (Object-Oriented model) như Hình 1.1 đã xuất hiện và đóng vai tròquan trọng trong việc nghiên cứu phát triển các hệ thống quản trị CSDL (DataBaseManagement System)

File Systems

Network

Relational

Object-OrientedSystem

Object-Oriented Databases

Hình 1.1 Sự phát triển của các mô hình dữ liệu

[1] 1.1.2 Những hạn chế của cơ sở dữ liệu quan hệ

Mô hình CSDL quan hệ truyền thống được sử dụng nhiều nhưng chưa đáp ứngđược hết các yêu cầu của thực tế Mô hình quan hệ chỉ phù hợp cho những bài toán có

bộ dữ liệu nhỏ và không đáp ứng được cho những bài toán ở lĩnh vực ứng dụng mới,nhiều kiểu dữ liệu phức tạp Ví dụ, khi cần lưu trữ và xử lý một số lượng lớn dữ liệu, dữ

Trang 14

liệu phải xử lý được các tính năng như: các kiểu dữ liệu phức tạp, đóng gói dữ liệu(Data Encapsulation) và cấu trúc dữ liệu trừu tượng, cùng với những phương phápmới để lập chỉ mục và truy vấn thông tin Phần lớn các hệ quản trị CSDL phổ biếnhiện nay trên thị trường là các hệ quản trị dữ liệu theo mô hình quan hệ Tuy nhiên,các hệ quản trị CSDL quan hệ có những hạn chế như sau [13,19]:

Hạn chế trong vấn đề biểu diễn thế giới thực (Real world): Các quan hệ

(relations) không đủ mạnh để thể hiện các thực thể (entities) trong thế giới thực Rấtkhó để mà biểu diễn được mối quan hệ kế thừa, mối quan hệ thành viên (IS-Arelationships) Ví dụ nhân viên là một người, trong ví dụ này, hệ quản trị CSDL quan

hệ phải định nghĩa 2 bảng là bảng Nguoi và bảng NhanVien, trong đó bảng NhanVien nhận được những thông tin từ lớp cha (superclass) Nguoi để kết nối lại.

Hạn chế về nạp chồng ngữ nghĩa (Semantic overloading): Thành phần chuẩn

trong mô hình quan hệ là quan hệ (relation) không đủ mạnh để biểu diễn cho dữ liệu

và các mối quan hệ phức tạp của dữ liệu Nó thường phải chia một đối tượng thànhmột số các quan hệ (bảng) và truy vấn tin thì phải thực hiện các phép: chiếu, chọn vàkết nối để tái cấu trúc các đối tượng đó

Chỉ biểu diễn những dữ liệu thuần nhất: Những hạn chế về kiểu dữ liệu trong

mô hình quan hệ làm nó không thể biểu diễn được các đối tượng trong thế giới thực

Một mục (item) bất kỳ trong một bộ dữ liệu (tuple) thực chất là phần giao nhau của

hàng với cột, nó phải là dữ liệu của một kiểu dữ liệu nguyên tố, bởi vì theo giả thuyết,

cả chiều ngang và chiều dọc đều phải có kiểu thuần nhất

Hệ thống khép kín: Những lĩnh vực ứng dụng còn tồn tại không thể bổ sung

được vào hệ thống sau khi phát triển hệ quản trị CSDL, như không thể bổ sung cáckiểu dữ liệu mới vào hệ thống Nhưng thực tế đòi hỏi các hệ quản trị CSDL phải hỗtrợ để xử lý những kiểu dữ liệu mới như kiểu hình ảnh (images), video, audio, …

Giới hạn các phép toán: Mô hình quan hệ có một tập cố định các phép toán

trong SQL Ngoài ra, không cho phép mở rộng hay bổ sung thêm những phép toánmới

Khó thực hiện truy vấn đệ qui: Các câu truy vấn đệ qui cực kỳ khó đặc tả và cài

đặt trong mô hình quan hệ Đây cũng chính là điểm yếu làm cho SQL không thựchiện được đầy đủ trong tính toán

Những trở ngại trong đối sánh: Mô hình quan hệ sử dụng những mô thức lập

trình hỗn hợp khác nhau, trong đó cho phép các dữ liệu với kiểu khác nhau và nhiều

vị trí khác nhau có thể được xử lý trong cùng một thời điểm

1.1.3 Mô hình dữ liệu hướng đối tượng

Trong số các mô hình dữ liệu hiện nay, mô hình dữ liệu đối tượng là mô hìnhđảm bảo tính mềm dẻo, tính linh hoạt, và tính “mở” của hệ thống Mô hình dữ liệu

Trang 15

hướng đối tượng đang được phát triển một cách phổ dụng trong lĩnh vực phát triểnCSDL Được xây dựng theo cách tiếp cận hướng đối tượng nhằm khắc phục nhữnghạn chế của những mô hình dữ liệu truyền thống Mô hình dữ liệu hướng đối tượng

có các đặc trưng cơ bản sau [6, 13]:

- 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 Lớp bao gồm các thông tin:

+ 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

- Mỗi đối tượng (thực thể) có một định danh ID để xác định duy nhất trong hệCSDL

- Các CSDL hướng đối tượng được thiết kế để làm việc tốt đối với những ngôn ngữ lập trình hướng đối tượng như: Java, C++, C#, Smalltalk,…

Mục đích của CSDL hướng đối tượng là để quản trị hiệu quả những kiểu dữ liệuphức hợp, dữ liệu đa phương tiện như âm thanh, hình ảnh, , nhằm khắc phụcnhững hạn chế của CSDL quan hệ Hình vẽ sau đây giới thiệu về mô hình dữ liệuhướng đối tượng nguyên mẫu

Các chức năng đặc biệt

- Phiên bản

- Sự tiến hoá lược đồ

Hình 1.2 Mô hình dữ liệu hướng đối tượng nguyên mẫu [13]

Trên cơ sở kế thừa và phát triển các điểm mạnh của CSDL quan hệ thì CSDLđối tượng đã bổ sung các tính chất mà CSDL quan hệ vẫn còn thiếu sót Cũng như hệthống CSDL truyền thống, hệ thống CSDL hướng đối tượng có tính bền vững, tínhchia sẻ dữ liệu, tính bảo mật, tính toàn vẹn và truy vấn dữ liệu Ngoài ra, CSDLhướng đối tượng còn có những ưu điểm khác như [13]:

Trang 16

Hỗ trợ những kiểu dữ liệu được định nghĩa bởi người sử dụng: CSDL hướng

đối tượng có khả năng lưu trữ các kiểu phức hợp, kiểu được định nghĩa bởi người sửdụng, cho phép thao tác trong kiểu dữ liệu một cách dễ dàng

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 cả những ràng buộc không cócấu trúc mà chương trình phải thoả mãn khi nó thực hiện trong hệ CSDL Một CSDLquan hệ được chuẩn hóa có thể xem như một trường hợp đặc biệt của CSDL hướngđối tượng

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ệ quảntrị CSDL thay cho những đoạn chương trình của người sử dụng

Tích hợp dữ liệu dễ dàng và tiện lợi: Việc tích hợp nhiều hệ thống độc lập có

thể làm 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ấtlàm thuận tiện hơn cho việc tìm hiểu và tích hợp thông tin

Không cần các khóa chính (Primary Keys): người sử dụng hệ quản trị CSDL

quan hệ thường phải lo lắng về tính duy nhất để phân biệt các bộ dữ liệu và đảm bảorằng không có hai bộ dữ liệu có cùng giá trị của khóa chính để tránh xảy ra xung đột.Nhưng trong một hệ quản trị CSDL hướng đối tượng, việc xác định duy nhất của cácđối tượng được thực hiện bởi định danh đối tượng (OID) và người sử dụng khôngcần phải quan tâm về chúng

Một mô hình dữ liệu thống nhất: Một mô hình dữ liệu thông thường phải mô

hình hóa các thực thể, các mối quan hệ, các ràng buộc và các hoạt động thay đổi trạngthái của dữ liệu trong hệ thống Với hệ quản trị CSDL quan hệ ta không thể mô hìnhđược các hoạt động và không đưa ra được những quy tắc để làm thay đổi trạng tháicủa dữ liệu trong hệ thống, bởi vì điều này vượt quá phạm vi của cơ sở dữ liệu Vìvậy, các ứng dụng sử dụng hệ thống CSDL quan hệ thường sử dụng một sơ đồ quan

hệ - thực thể để mô hình các bộ phận tĩnh của hệ thống và một mô hình riêng biệt chocác hoạt động và hành vi của các thực thể trong ứng dụng Với hệ quản trị CSDLhướng đối tượng, không có sự tách biệt giữa các mô hình dữ liệu và mô hình ứngdụng để mô tả đầy đủ các đặc trưng, tính chất tĩnh cũng như hành vi ứng xử độngcủa các đối tượng Toàn bộ ứng dụng như vậy có thể được mô hình đầy đủ trong cácbiểu đồ UML

1.2 Các khái niệm cơ sở

1.2.1 Đối tượng, Định danh đối tượng và Lớp đối

tượng Đối tượng (Object)

Trang 17

Đối tượng là một khái niệm cơ sở quan trọng nhất của cách tiếp cận hướng đốitượng Đối tượng là thực thể của hệ thống, của CSDL chỉ một người, một địa điểmhay một vật nào đó tồn tại trong thế giới thực Một thực thể bất kỳ trong thế giới thực

là một đối tượng Đối tượng trong thế giới thực được xác định duy nhất, chứa mộttập nhất định các thông tin về đối tượng và các hành vi dựa trên các thông tin đó Mộtđối tượng cũng có thể có các mối quan hệ hay có khả năng trao đổi thông tin với cácđối tượng khác

Ví dụ: Một đối tượng Nhân viên là một người đang làm việc cho một công tyhay doanh nghiệp nào đó, được xác định duy nhất trong thế giới thực, chứa một tậpnhất định các thông tin về Nhân viên đó như: mã nhân viên, họ tên, ngày sinh, nơisinh, lương, dự án mà nhân viên đang tham gia,…Một đối tượng Nhân viên có thể cócác quan hệ với các đối tượng khác, như quan hệ với đối tượng Phòng ban hay đốitượng Dự án mà nhân viên đó đang tham gia làm việc

Trong CSDL hướng đối tượng, các đối tượng trong thế giới thực được mô hìnhhóa, biểu diễn vào CSDL theo các đặc trưng của đối tượng và luôn duy trì sự tươngứng trực tiếp giữa các đối tượng trong CSDL với các đối tượng trong thế giới thực

Định danh đối tượng (OID: Object Identity)

Một đối tượng được xác định duy nhất trong thế giới thực, và do đó cũng phảiđược biểu diễn duy nhất trong CSDL Việc xác định duy nhất đối tượng trong CSDLđược thực hiện bằng cách sử dụng các Định danh đối tượng (Object Identity) hayOID Hệ thống CSDL hướng đối tượng cung cấp một định danh duy nhất cho mỗiđối tượng và được lưu trữ trong CSDL Định danh duy nhất này do hệ thống tự độngtạo ra và được gọi là định danh đối tượng Giá trị OID người dùng không nhìn thấyđược, nó được sử dụng bên trong hệ thống để xác định duy nhất một đối tượng vàdùng để tạo ra các tham chiếu bên trong đối tượng OID của mỗi đối tượng phải thỏamãn hai tính chất sau:

1. Giá trị OID của một đối tượng không được thay đổi trong CSDL hướng đốitượng Điều này đảm bảo tính duy nhất của mỗi đối tượng Do đó, một hệ thốngCSDL hướng đối tượng phải có cơ chế tạo ra các OID và đảm bảo tính bất biến

2. Mỗi giá trị OID chỉ được sử dụng duy nhất một lần; nghĩa là khi một đốitượng bị xóa đi từ CSDL thì OID của nó cũng không được gán cho đối tượng bất kỳnào khác

Định danh đối tượng OID khác với khóa chính của đối tượng Khóa chính củađối tượng là một thuộc tính của đối tượng, được người dùng gán giá trị và có thểnhìn thấy, thay đổi được và có thể được cấp lại, còn OID thì không

Ví dụ: Một Nhân viên được biểu diễn trong CSDL có một OID duy nhất, xácđịnh sự tương ứng Nhân viên đó trong thế giới thực Một Nhân viên khác trong thế

Trang 18

giới thực nếu được biểu diễn trong CSDL thì phải có một OID khác với OID củaNhân viên trên, thậm trí cả khi Nhân viên trên bị xóa khỏi hệ thống Điều này đảmbảo sự tương ứng của CSDL với thế giới thực, tránh sự nhầm lẫn về các đối tượngđược biểu diễn trong CSDL.

thường được mô tả bằng từ khóa Class Ví dụ trong lược đồ quản lý nhân viên ta có

các lớp: NhanVien, PhongBan, DuAn …Trong đó, lớp Nhân viên mô tả cấu trúc

chung của các đối tượng Nhân viên, được khai báo như sau:

đó Các kiểu dữ liệu này có thể là các kiểu dữ liệu cơ bản như: kiểu số nguyên, sốthực, kiểu xâu ký tự…, hoặc các kiểu phức tạp do người dùng định nghĩa, các kiểuđối tượng hoặc cũng có thể là các con trỏ hay vector đến các kiểu dữ liệu đó

Thuộc tính có thể là thuộc tính đơn trị hoặc thuộc tính đa trị, thuộc tính đa trị

được khai báo bởi từ khóa set Ngoài ra một thuộc tính có thể là thuộc tính phức hợp,

được xác định từ tập các thuộc tính khác (sử dụng từ khóa tuple để khai báo) Ví dụ 1.1 Khai báo về các thuộc tính có trong lớp QuanLy

Trang 19

luongcoban: double)

Class QuanLy inherits NhanSu

Type tuple ( chucvu: string;

phong: PhongBan;

duan: set( DuAn)) Trong ví dụ trên các thuộc tính hoten, giới tính, diachi… là các thuộc tính đơn trị, thuộc tính ngaysinh là thuộc tính phức hợp Còn thuộc tính duan là thuộc tính đa

trị, với ngữ nghĩa rằng mỗi đối tượng thuộc lớp QuanLy có thể tham gia vào nhiều dự

án khác nhau; nghĩa là mỗi đối tượng thuộc lớp QuanLy cho tương ứng một tập cácgiá trị OID của các đối tượng thuộc lớp DuAn

1.2.3 Các kiểu dữ liệu

Các khái niệm sau đây được sử dụng trong hầu hết các hệ CSDL hướng đốitượng, chẳng hạn như Gemstone, Orion, Ontos, O2, ObjectStore, ODMG Để thuậntiện trong trình bày, chúng ta sử dụng một số ký hiệu sau [4, 6, 21]:

T – tập hữu hạn các kiểu

L – tập các kiểu nguyên thuỷ như: byte, int, long, float, double, char, string và

boolean

Trang 20

Att – tập tất cả thuộc tính của các đối tượng trong hệ

thống O – tập tất cả đối tượng và các đại lượng trong một

CSDL Class – tập các tên lớp

Tập Dom các giá trị nguyên thuỷ là hợp của tất cả các miền giá trị cơ sở của ngôn ngữ lập trình Các phần tử của Dom được gọi là hằng, trong đó nil là một hằng

đặc biệt biểu diễn giá trị không xác định

Tập Obj = {o1, o 2 , …} là tập vô hạn các định danh đối tượng (OID) và tập O id

tập con các định danh đối tượng, O id Obj Họ giá trị trên O id , ký hiệu Val(O id),được xác định như sau:

(i) Hằng nil Val(O id)

(ii) Nếu v ∈ Dom thì v Val(O id)

(iii) Nếu o ∈ O id thì o ∈ Val(O id)

(iv) Tập {vi | vi∈ Val(O id), (i = 1, , n)} ∈ Val(O id)

(v) Cho tập các giá trị {vi | vi∈ Val(O id), (i = 1, , n)} và tập các tên thuộc tínhrời nhau {Ai | Ai, Aj∈ Att, (i ≠ j ⇒ Ai≠ Aj), (i, j = 1, , n)} thì bộ [Ai : v1, , An : vn]

Val(O id)

Một đối tượng trong hệ thống thường được mô tả là một cặp (o, v), trong đó o

là định danh đối tượng và v là trạng thái hay bộ giá trị hiện thời của đối tượng Các

đối tượng cùng tính chất và hành vi được nhóm lại để tạo thành một lớp Mỗi lớp C

có một kiểu xác định, ký hiệu là σ(C) - kiểu của các đối tượng trong lớp Thuật ngữ

Class được sử dụng để mô tả định nghĩa kiểu của lớp các đối tượng Ví dụ 1.2: Cho

SoNV: set (NhanVien ))

Ta tiến hành biểu diễn một số đối tượng từ lược đồ CSDL đối tượng trên, trong

đó mỗi đối tượng là một cặp (o, v) Xét các đối tượng

Ob 3 =(o3, [hoten: “Trần Hùng”, gioitinh: false, luong: 5000000, phong: o5])

Trang 21

Ob 4 =(o4, [hoten: “Minh Châu”, gioitinh: true, luong: 3500000, phong: o5])

Ob 5 =(o5, [tenphong: “Kinh Doanh”, truongphong: o1, SoNV: {o1, o2, o3, o4}]) Đối tượng Ob 1 theo định nghĩa trong lược đồ trên sẽ gồm định danh o1 và một bộ (tuple)

các giá trị: [hoten : “Nam Phong”, gioitinh : false, luong : 6000000, phong :

o5] Đối tượng Ob 5 có định danh là o5 và một giá trị bộ: [tenphong : “Kinh Doanh”,truongphong : o1, SoNV : {o1, o2, o3, o4}], trong đó, thuộc tính tenphong có giá trị nguyên thủy, thuộc tính truongphong tham chiếu đến đối tượng có định danh đối

tượng là o1, thuộc tính SoNV (số lượng nhân viên) có giá trị tập (set) tham chiếu đến

các đối tượng với các định danh đối tượng o1, o2, o3, o4

Trong mô hình dữ liệu quan hệ, so sánh bằng của các bộ trong quan hệ luôn dựatrên các giá trị của bộ, hai bộ bằng nhau nếu tất cả các thuộc tính khoá của hai bộ cócùng giá trị Tuy nhiên, trong mô hình CSDL hướng đối tượng cần phân biệt hai kháiniệm “đồng nhất” và “bằng nhau” của các đối tượng như trong thực tế Hai quan hệnày được định nghĩa như sau:

Định nghĩa 1.1: Cho hai đối tượng S1(o1, v1) và S2(o2, v2)

i. Đối tượng đồng nhất: Hai đối tượng S1 và S2 được gọi là đối tượng đồng nhất,

ký hiệu S1 = oidS2 nếu chúng có cùng định danh đối tượng, tức là S1.o1 = S2.o2

trị, ký hiệu S1 = vS2

- Nếu kiểu của đối tượng là nguyên thuỷ thì chúng phải có cùng giá trị

- Nếu kiểu của đối tượng là kiểu không nguyên thuỷ thì chúng phải có cùng sốcác tính chất và với mọi tính chất pi của S1 đều tồn tại tính chất pj của S2 bằngnhau về giá trị

Các kiểu dữ liệu

Các kiểu cơ sở bao gồm các kiểu chuẩn trong SQL như: integer, string, float,

char, double, ….và các kiểu do người dùng định nghĩa như lớp hoặc cấu trúc

Các kiểu tập hợp đây là các kiểu đặc trưng chỉ có ở truy vấn hướng đối tượng

như: set, bag, list, array chỉ đến một tập hợp các đối tượng

- Set: Với T là một kiểu bất kỳ, set(T) được định nghĩa là một kiểu tập hợp gồm

các phần tử phân biệt nhau có kiểu là T Ví dụ {1, 2, 5, 8, 9} là một thể hiện củaset(integer)

- Array: Với T là một kiểu bất kỳ và i có kiểu integer, array<T, i> là một dãy

gồm i phần tử có kiểu T Mỗi phần tử được gắn liền với một chỉ số

- Bag: Với T là một kiểu bất kỳ, bag(T) được định nghĩa như một kiểu tập hợp

gồm các phần tử thuộc kiểu T Khác với set, một phần tử trong bag có thể xuấthiện nhiều hơn một lần và không phân biệt thứ tự giữa chúng Ví dụ {1, 2, 2, 5}

là một thể hiện của bag(integer)

Trang 22

- List: Với T là một kiểu bất kỳ, list(T) được định nghĩa như một kiểu danh sách

có 0 hoặc nhiều hơn một phần tử thuộc kiểu T Kiểu string là một kiểu đặc biệtcủa list (danh sách các ký tự)

Mỗi phần tử trong set được gắn liền với một sự kiện duy nhất, ngược lại trongbag các phần tử có thể lặp Với list giống như bag nhưng các sự kiện phải được sắpxếp đúng thứ tự Chẳng hạn {3, 5, 3} và {5, 3, 3} là khác nhau với list nhưng giốngnhau với bag

Trong CSDL hướng đối tượng lớp được xem như một kiểu dữ liệu đã được càiđặt, các thể hiện của nó là các đối tượng cụ thể Chẳng hạn kiểu integer có thể xem nhưmột lớp integer và các thể hiện như 1, 3, 5, …là các thể hiện của lớp integer đó

1.2.4 Hệ thống phân cấp và quan hệ kế thừa

Trong hệ thống CSDL hướng đối tượng, cho phép một lớp được kế thừa cácthuộc tính và phương thức từ một lớp cơ sở, tức là 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 và 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 đạidiện cho mội đối tượng của lớp con Các lớp trong mô hình hướng đối tượng có thểđược tổ chức theo một cấu trúc phân cấp ISA giữa các lớp đối tượng Cấu trúc phâncấp lớp bao gồm ba thành phần: (1) tập các lớp; (2) các kiểu liên quan đến các lớp;(3) đặc điểm của các quan hệ ISA giữa các lớp [11]

Một cách hình thức, cấu trúc phân cấp lớp ISA là một bộ ba (C,σ, ), trong đó, C

là tập hữu hạn tên các lớp, σ là ánh xạ từ C vào Types(C), là một quan hệ thứ tự bộphận trên tập các lớp C Thông thường thì quan hệ thứ tự bộ phận có tính phản xạ Tanói, lớp C2 là lớp con của lớp C1 hay nói cách khác lớp C2 kế thừa lớp C1 nếu kiểucủa lớp C2 là tổng quát hơn kiểu của lớp C1, ký hiệu là C2 C1 Chúng ta sử dụng quan

hệ kiểu con (≤) để biểu diễn một kiểu là tổng quát hơn kiểu khác [1, 2]

Định nghĩa 1.2 Cho (C, σ, ) là một cấu trúc phân cấp lớp, quan hệ kiểu con trên Types(C) là thứ tự bộ phận nhỏ nhất trên Types(C), ký hiệu ≤, thỏa mãn các điềukiện sau:

(i) Nếu c c‟ thì c ≤ c‟

(ii) Nếu τi ≤τi' (1≤ i ≤ n, n ≤ m ) thì bộ

[ A1 :τ1 , A2 :τ2 , , A nn , , A mm ] ≤[ A1 :τ1' , A2 :τ2' , , A nn' ]

(iii) Nếu τ ≤ τ' thì tập {τ}≤{τ'}

Trang 23

Với mọi τ,τ≤any (any là lớp gốc của cây phân cấp)

Kế thừa bội từ những lớp phân biệt: Một lớp có thể kế thừa từ nhiều lớp cơ sở

khác nhau Ví dụ Lớp Person là cơ sở để tạo ra hai lớp con: Employee (Nhân viên)

và Manager (Nhà quản lý) Trong Công ty lại có những người vừa là nhân viên, vừa

là người phát triển Những người đó chính là các đối tượng của lớp PartTimeWorker

kế thừa từ hai lớp con Employee và Manager như Hình 1.4.

Person

+salary: int +readInfo()

Trang 24

Kế thừa bội không có lớp cơ sở chung: Kế thừa bội như Hình 1.4 là kế thừa có

lớp cơ sở chung là lớp Person Chúng ta có thể tạo ra lớp kế thừa bội từ nhiều lớp mà

chúng lại không có lớp cơ sở chung Loại kế thừa này thường xuất hiện khi ta muốn phatrộn một số chức năng của các lớp thư viện khác nhau Ví dụ trong Hình 1.5, mỗi đối

tượng của lớp SearchTree (cây tìm kiếm) có thể là đối tượng của lớp MoveSubtree (cây con các nước đi) hoặc của lớp PossibleMove (lớp các nước có thể chọn) Bản thân lớp

MoveSubtree lại có thể chứa các SearchTree nhỏ hơn Mỗi nước đi của lớp Move lại có

thể là nước đi có thể (PossibleMove) hoặc lớp các nước đi hiện thời (ActualMove) Lớp

PossibleMove kế thừa hành vi chung của lớp Move và lớp SearchTree.

Mục đích của xử lý truy vấn là tìm một phương án thực thi trong số tất cả cácphương án tương đương (cho cùng một kết quả) nhưng giảm thiểu thời gian xử lý,giảm vùng nhớ trung gian, sử dụng ít tài nguyên hay là với chi phí nhỏ nhất Trong hệthống CSDL, chi phí của tiến trình xử lý truy vấn được tính với công thức:

Total_cost = IO_cost + CPU_cost Trong đó, IO_cost là chi phí vào/ra do việc truyền dữ liệu giữa bộ nhớ chính và

bộ nhớ thứ cấp (thường là đĩa từ) và CPU_cost là chi phí tính toán trong tiến trình xử

lý truy vấn Người ta tập trung nghiên cứu trên chi phí IO_cost và bỏ qua chi phí CPU_cost Điều này sở dĩ như vậy là vì mỗi ứng dụng CSDL lớn với số lượng khổng

lồ các truy xuất dữ liệu thì sự tham gia của chi phí CPU_cost vào tổng chi phí Total_cost sẽ không có ý nghĩa.

Chi phí xử lý truy vấn trên các lớp

Trang 25

Việc phân tích tổng chi phí IO_Cost được thực hiện theo ba thành phần là chiphí nạp của lớp sưu tập (IO_Load), chi phí ước lượng tân từ (IO_Eval) và chi phíkết xuất kết quả(IO_Build) được xem xét trong hai trường hợp: giả thiết bộ nhớ xử

lý đủ lớn và bộ nhớ nhỏ

Việc phân tích tổng chi phí IO_Cost được thực hiện theo ba thành phần: chi phí

nạp của lớp sưu tập (IO_Load), chi phí ước lượng tân từ (IO_Eval) và chi phí kết xuất kết quả (IO_Build).

Tổng chi phí vào/ra của việc xử lý truy vấn chứa ba thành phần:

Total_IO = IO_Load + IO_Eval + IO_Build Với IO_Load là số các trang truy xuất để nạp các đối tượng thuộc lớp gốc, là lớp bắt đầu duyệt theo biểu thức đường dẫn, IO_Eval là số trang truy xuất để “đi qua” biểu thức đường dẫn theo phân cấp lớp hợp thành và IO_Build là số trang truy

xuất để tạo ra kết quả Để duyệt lớp bắt đầu theo biểu thức đường dẫn, trước hếtngười ta sẽ nạp các đối tượng trong lớp gốc Có hai phương án duyệt các đối tượng:(a) duyệt tuần tự; (b) duyệt theo chỉ mục Hai phương án này có sự khác biệt về công

thức chi phí đối với thành phần IO_Load Nhưng các phương án duyệt để nạp các

đối tượng thuộc lớp gốc không làm ảnh hưởng đến các chi phí duyệt đường dẫn

trong các lớp khác Vì vậy, chi phí IO_Eval và IO_Build cũng không ảnh hưởng gì

khi chọn một trong hai phương án trên

Một trong các yêu cầu quan trọng của các mô hình hay các hệ quản trị CSDL làviệc xây dựng một chuẩn chung cho tất cả các hệ thống Như việc thành công của hệquản trị CSDL quan hệ là đã xây dựng được một chuẩn SQL cho phép quản trịCSDL Bởi vậy, việc xây dựng một chuẩn cho CSDL hướng đối tượng là rất cầnthiết, quan trọng và mang lại nhiều lợi ích

Việc xây dựng chuẩn CSDL hướng đối tượng có tác dụng là định ra một cấutrúc chung cho tất cả các hệ thống, do đó người sử dụng sẽ dễ dàng hơn trong việcthao tác hệ thống cũng như bảo trì, chuyển đổi và nâng cấp hệ thống Mặt khác,chuẩn CSDL cho phép sự tương thích giữa nhiều hệ thống khác nhau, tức là cácchương trình ứng dụng có thể truy cập được các dữ liệu được lưu trữ trong các hệthống hay các CSDL trong các hệ thống khác nhau

ODMG (Object Database Management Group) là một trong những chuẩn CSDLhướng đối tượng, đang được phát triển và được ứng dụng trong nhiều hệ thống, hệquản trị CSDL hướng đối tượng hiện nay ODMG đề xuất một số chuẩn cho mô hìnhCSDL đối tượng và được chỉnh sửa thành phiên bản 1.1 vào năm 1994, phiên bản2.0 vào năm 1997, là một mô hình hướng đối tượng dựa trên mô hình đối tượng hạtnhân chuẩn

Trang 26

Chuẩn mới nhất là ODMG 3.0 (1999) định nghĩa một cách linh hoạt các đặc tảcho việc lưu trữ những đối tượng bền vững ODMG 3.0 được thiết kế để các ứngdụng dễ chuyển đổi, cho phép phát triển ứng dụng dựa vào CSDL, đối tượng vàchuẩn ngôn ngữ lập trình (OMG, SQL-92, …) hiện thời, đảm bảo việc lưu trữ đốitượng là đơn giản và chương trình dễ chuyển đổi [13].

Ý tưởng cơ sở của việc xây dựng các chuẩn ODMG là khá đơn giản Một mặt,việc thiết kế hệ thống dữ liệu không dựa vào mô hình hiện có như mô hình quan hệ,

mà nó phải được xây dựng theo luận thuyết hướng đối tượng Mặt khác, tự bản thânngôn ngữ truy vấn không được hỗ trợ và thiết kế hệ thống cũng phụ thuộc nhiều vàongôn ngữ lập trình như C++, Smalltalk, Java ODMG 3.0 gồm 4 thành phần đặc tảchính đó là [14]

Mô hình đối tượng (Object Model): Mô hình dữ liệu chung được hỗ trợ cho cài

đặt các chuẩn ODMG được xây dựng dựa vào mô hình đối tượng của OMG

Ngôn ngữ định nghĩa đối tượng - ODL (Object Definition Language): Là ngôn

ngữ đặc tả được sử dụng để định nghĩa các kiểu đối tượng phù hợp với mô hình đốitượng của ODMG

Ngôn ngữ truy vấn đối tượng - OQL (Object Query Language) Đây là ngôn ngữ

khai báo phi thủ tục được sử dụng để truy vấn và cập nhật đối tượng SQL-92 được

sử dụng như là cơ sở cho OQL

Ràng buộc ngôn ngữ (Language Binding) như: C++, Smalltalk, Java Những

ngôn ngữ này được gọi là ngôn ngữ thao tác đối tượng OML (Object ManipulationLanguage)

1.4.1 Mô hình đối tượng của ODMG

Trong CSDL hướng đối tượng, đối tượng (Object) và hằng ký tự (literal) là cácthành phần cơ bản nhất của mô hình đối tượng Trong đó, mỗi đối tượng có địnhdanh nhận biết đối tượng và giá trị, trong khi hằng ký tự chỉ có giá trị mà không cóđịnh danh Giá trị của đối tượng có thể có cấu trúc phức tạp và có thể thay đổi Tuynhiên giá trị của hằng ký tự là cố định và không thay đổi, có thể có kiểu cấu trúc [14]

Ví dụ, lớp NhanVien sẽ tạo ra đối tượng NhanVien có định danh được hệ thống tạo

ra, còn những dữ liệu nguyên thuỷ như giá trị 20 kiểu int (nguyên thuỷ) là literal sẽ

không có định danh

Các đối tượng và các hằng ký tự có thể được phân loại theo các kiểu khác nhau.

Nghĩa là mỗi đối tượng hay mỗi hằng ký tự sẽ thuộc về một kiểu Một đối tượng làmột thể hiện kiểu của nó, mọi thể hiện (instance) của cùng một kiểu sẽ có cùng tậpcác thuộc tính và các hành vi (beharvior)

Trạng thái của đối tượng được xác định bởi tập các giá trị đặc tính của nó Các đặc

tính có thể là các thuộc tính hoặc các mỗi quan hệ của bản thân đối tượng với một

Trang 27

hoặc nhiều đối tượng khác Trạng thái của đối tượng có thể thay đổi trong quá trìnhtồn tại của nó.

Hành vi của đối tượng được định nghĩa là các hoạt động, có thể được thực hiện

trên chính đối tượng hoặc bằng cách nhận, gửi thông điệp từ các đối tượng khác Tùytheo trạng thái của mình mà đáp ứng của đối tượng đối với một thông điệp có thểkhác nhau ở các thời điểm khác nhau Mỗi phương thức được xác định bằng địnhdanh của nó Mỗi định danh bao gồm danh sách các tham số vào, danh sách tham số

ra và kiểu trả về

Hệ thống quản trị CSDL đối tượng (ODMS) lưu trữ các đối tượng, cho phépchia sẻ cho nhiều người sử dụng và nhiều chương trình ứng dụng ODMS được xâydựng theo lược đồ đối tượng đã được định nghĩa trong ODL và thoả mãn các mốiràng buộc về kiểu của lược đồ

Mô hình đối tượng của ODMG xác định: đối tượng, hằng ký tự, kiểu, thao tác,thuộc tính, quan hệ, … Người phát triển ứng dụng sẽ sử dụng những cấu trúc nàytrong mô hình đối tượng của ODMG để xây dựng mô hình đối tượng cho hệ thốngứng dụng của mình Mô hình đối tượng của chương trình ứng dụng chính là lược đồ(logic) của hệ quản trị CSDL đối tượng (ODMS) Mô hình đối tượng của ODMGđịnh nghĩa cơ sở các chức năng của ODMS

1.4.2 Ngôn ngữ định nghĩa đối tượng ODL

Ngôn ngữ định nghĩa đối tượng ODL (Object Definition Language) là một ngônngữ đặc tả được dùng để định nghĩa các kiểu đối tượng theo ngữ nghĩa của mô hìnhđối tượng ODMG [13] và độc lập với các ngôn ngữ lập trình Nó được dùng để tạo

ra các đặc tả đối tượng, đó là lớp và giao diện Mục đích chính của ODL là:

- Hỗ trợ để thiết lập các cấu trúc ngữ nghĩa của mô hình đối tượng ODMG

- Không phải là một ngôn ngữ lập trình đầy đủ mà là ngôn ngữ định nghĩa đặc

tả đối tượng

- Độc lập với các ngôn ngữ lập trình (Language – Independent)

- Tương thích với ngôn ngữ định nghĩa giao diện IDL (Interface Definition Language) của OMG

- Có thể phát triển mở rộng, không chỉ đối với các chức năng trong tương lai

Trang 28

1.4.3 Ngôn ngữ truy vấn đối tượng OQL

Trong các hệ thống CSDL hướng đối tượng, các câu truy vấn hướng đối tượngOQL (Object Query Language) được biểu diễn giống như trong SQL [14], [19], [20].OQL là một ngôn ngữ truy vấn CSDL hướng đối tượng được đề xuất trong ODMG-

93. OQL cung cấp một môi trường phong phú để truy vấn CSDL đối tượng một cáchhiệu quả, kể cả những cơ sở mức cao đối với các tập đối tượng OQL là ngôn ngữtruy vấn không đưa ra môi trường lập trình đầy đủ cho các tính toán phức tạp Vìvậy, để tăng khả năng tính toán cho OQL cần phải liên kết với các ngôn ngữ lập trìnhkhác

OQL được dùng để mô tả truy vấn và các thao tác của đối tượng; Ngôn ngữđịnh nghĩa đối tượng (ODL): sử dụng mã OQL để định nghĩa giao diện với các kiểuđối tượng; Các ngôn ngữ lập trình khác như C++, Smalltalk và Java được dùng đểcài đặt các phương thức và các chương trình ứng dụng Đồng thời có thể nhúng cáccâu lệnh OQL trong các thao tác theo mô hình CSDL hướng đối tượng

OQL được thiết kế theo hướng phát triển kế thừa, đó là thiết kế một ngôn ngữ mớiđầy đủ dựa trên SQL - ngôn ngữ chuẩn của CSDL quan hệ Thiết kế của OQL ở dạnghàm, kết quả của truy vấn có kiểu, điều này cho phép kết quả của truy vấn này là đầu vàocủa một truy vấn khác, vì vậy các truy vấn phức tạp có thể được xây dựng bằng OQL.Bằng cách tích hợp các tính năng của SQL, OQL xây dựng trên nền tảng của CSDL quan

hệ Mục đích của mô hình ODMG là duy trì một mức độ tương thích giữa kỹ thuậtCSDL hướng đối tượng và kỹ thuật CSDL đối tượng quan hệ bằng cách tích hợp cáctính năng của phiên bản tiếp theo SQL trong phiên bản mới của OQL

1.4.3.1. OQL lõi

OQL là ngôn ngữ truy vấn đối tượng được ODMG xây dựng để hỗ trợ mô hình

dữ liệu đối tượng chuẩn [14], [19]

Văn phạm của OQL có các qui tắc dẫn

Trang 29

[group by (l: q, …, l: q)]

[having q]

[order by (q asc|desc, …, q asc|desc)]

Định nghĩa kiểu: Trong OQL ta có thể đặt tên các định nghĩa theo cú pháp

d ::= define x as q

| define x(x: σ, …, σ) as q

Trong đó b, f, i, c, s là các giá trị boolean, float, int, char và String tương ứng, x

là tập đếm được các định danh, l là tập đếm được các nhãn (set of labels), và C tập

đếm được tên gọi các lớp, unop và binop là tập các phép toán 1-ngôi, 2-ngôi

 Các phép toán một ngôi unop = {first, last, max, min, avg, sum, count,

distinct, listtoset, element, flatten, abs, not, -}

 Các phép toán hai ngôi binop = {and, or, intersect, union, except, =, !=, <, >,

<=, >=, + -, *, /, ||, mod}

1.4.3.2 Các kiểu dữ liệu trong OQL

Lược đồ suy dẫn kiểu trong ngôn ngữ truy vấn OQL

Hệ thống các kiểu dữ liệu nguyên thuỷ và các kiểu dữ liệu suy dẫn gắn với phâncấp kiểu được giới thiệu trong hình 1.6 Trên cây phân cấp, chúng ta nhận thấy rằng

các kiểu tổng quát là các nút nằm ở nút nhánh trên cây, các kiểu này sẽ không được

sử dụng trong các lược đồ CSDL (khai báo hình thức) Kiểu được gọi là kiểu đặc trưng, nếu nó được suy dẫn từ các kiểu hệ thống, tất cả các nút lá trong hình 1.6 là

các kiểu đặc trưng

Siêu kiểu Any

Kiểu phi thủ tục Kiểu hàm

Kiểu nguyên thuỷ Kiểu cấu trúc Kiểu sưu tập

boolean Kiểu có thứ tự class struct set/bag list/array

string int/float char set bag list aray

int float

Hình 1.6 Sự phân cấp các kiểu trong OQL

Trang 30

1.4.3.3 Truy vấn Select … From … Where

Cú pháp của khối lệnh trọng tâm Select trong OQL được qui định như sau

[19] Select [distinct] <Danh sách kết quả>

From <Danh sách lớp/sưu tập lớp>

Where <Biểu thức điều kiện>

[Group by <Các thuộc tính phân nhóm>]

[Having <Điều kiện lọc>]

[Order by (<Khoá sắp xếp> asc|desc, …)]

Trong đó, từ khoá distinct nếu sử dụng thì kết quả của truy vấn có kiểu tập đối tượng phân biệt Mệnh đề group by phân nhóm trên lớp sưu tập, các đối tượng

được nhóm theo giá trị của các thuộc tính phân nhóm Mỗi cấu trúc của nhóm chứa

một nhóm các thuộc tính và nhóm các đối tượng có cùng giá trị Mệnh đề order by

sắp thứ tự các đối tượng trong lớp sưu tập kết quả

Để truy nhập các đặc trưng của đối tượng ta sử dụng tên của đối tượng kết hợpvới tên các đặc trưng của đối tượng (thuộc tính, mối quan hệ và các phép toán) đểtruy nhập vào các thành phần của một đối tượng hoặc các đặc tính liên quan đến nó.Kiểu miền của một thuộc tính của một lớp có thể là một lớp khác Điều này quy địnhviệc đi từ các đối tượng của một lớp đến các đối tượng của một lớp khác thông quacác liên kết hợp thành

Sử dụng lược đồ CSDL quản lý nhân viên được biểu diễn trong Hình 1.7 minhhoạ cho các ví dụ về các dạng thức biểu diễn của truy vấn OQL

NhanSu

+maso : string +hoten : string +ngaysinh : string +diachi : string +SNCT : int +Luongcoban : double

NhanVien

+nql : QuanLy +phong : PhongBan +duan : DuAn

NV_BienChe

Trang 31

Hình 1.7 Lược đồ CSDL Quản lý Nhân viên

Trang 32

Ví dụ 1.3 Cho biết tên của các nhân viên biên chế thuộc phòng do trưởng phòng là

“Nam” quản lý

Select s.hoten

From NV_BienChe as s

Where s.PhongBan.truongphong.hoten = “Nam”

Cấu trúc như s.PhongBan.truongphong.hoten gọi là biểu thức đường dẫn Vìmỗi đối tượng có một OID, thuộc tính OID do hệ thống xác định đối với mỗi lớp Do

đó một biểu thức đường dẫn có thể xem xét như một ký hiệu viết tắt đối với việc

biểu diễn một dãy các phép nối Chẳng hạn, mệnh đề Where ở ví dụ trên có thể viết

tương đương như sau:

“s.PhongBan = PhongBan.OID and PhongBan.truongphong = PhongBan.OID andPhongBan.Hoten = „Nam”

một điều kiện cho trước.

(iii) unique – kiểm tra tính duy nhất của các đối tượng trong lớp sưu tập.

(some hay any) hay với mọi (all) cho các đối tượng thuộc (in) trong một lớp sưu tập

(vi) set inclusion – các phép toán so sánh bao hàm {<, <=, >, >=} áp dụng với

Các lớp sưu tập để kiểm tra sự bao hàm của một lớp sưu tập này và lớp kia

Cú pháp của truy vấn có lượng từ forall, exists và in là:

<Truy vấn> ::= forall <Truy vấn> in <Truy vấn> : <Truy vấn>

| exists <Tên> in <Truy vấn> : <Truy vấn>

| exists | unique (<Truy vấn>)

| <Truy vấn> <Phép toán so sánh> [some | any | all] <Truy vấn>

Các vị từ trong truy vấn CSDL hướng đối tượng có thể được thiết lập bằng cách sử

dụng các thuộc tính tập hợp và phép toán thành viên in Một số ví dụ về lượng từ.

Trang 33

Truy vấn trên có thể được viết lại bằng cách sử dụng lượng từ EXISTS như sau:

Ví dụ 1.5: Select k.hoten

From NhanVien as e

Where e EXISTS diachi = “Hà Nội”

Lượng từ với mọi forall có thể được áp dụng cho các thuộc tính tập đối với các

dạng vị từ Đường dẫn không chứa thuộc tính tập hợp gọi là đơn trị, ngược lại gọi làgiá trị - tập Các vị từ có thể sử dụng trong các biểu thức đường dẫn

Ví dụ 1.6 Biểu thức đường dẫn có thể có nhiều hơn một lượng từ với sự kết hợp

giữa exist và forall.

Select e.phongban

From PhongBan as e

Where e EXISTS phongban.forall DU_AN.tenduan = “ Bảo trì”

1.4.3.5 Biến tham chiếu

Biến vùng mô tả cho một biểu thức đường dẫn có thuộc tính cuối cùng là một

thuộc tính phức được gọi là biến tham chiếu Người ta sử dụng các biến vùng biểu

diễn cho các đối tượng của lớp trong một biểu thức đường dẫn

Ví dụ 1.7: Select s.tenphong

From PhongBan as s, s.duan as f

Where s.ngansach < f.chiphi

Trong đó, f là một biết tham chiếu đến các đối tượng thuộc lớp PhongBan.

Ví dụ trên có thể được viết tương đương như sau:

Select s.tenphong

From PhongBan as s

Where s.ngansach < s.duan.chiphi

1.4.3.6 Phương thức tham chiếu

Phương thức trong truy vấn OQL được thể hiện qua hai dạng Dạng thứ nhất là

phương thức thuộc tính – suy dẫn, sử dụng để tính giá trị cho mỗi đối tượng trong lớp

mà phương thức tác động Phương thức thuộc tính – suy dẫn có thể được sử dụng giống

như một thuộc tính trong truy vấn Dạng thứ hai là phương thức tân từ, trả về một giá trị

kiểu boolean đối với mỗi đối tượng trong lớp Ví dụ, ta có phương thức “VienDaiHoc() :

Boolean” trên lớp DaiHoc, phương thức này trả về giá trị true nếu Đại học có trên 5 trường thành viên hoặc trên 30.000 sinh viên và false nếu ngược lại.

1.4.3.7 Kết xuất một cấu trúc

Mô hình dữ liệu hướng đối tượng cho phép sử dụng các đối tượng có cấu trúc tập,danh sách và bộ để thiết lập các đối tượng phức từ các đối tượng đơn Ngôn ngữ truyvấn OQL cho phép thiết lập các giá trị phức trong kết quả trả về của một truy vấn

Trang 34

bằng việc dùng các phép toán thiết lập kiểu đối tượng phức ở mệnh đề Select với cúpháp:

<Truy vấn>::= struct ([<Định danh>:<Truy vấn> [, <Định danh>:<Truy vấn> ] *] )

|set | bag | list | array ([<Truy vấn> [,<Truy vấn>]*] )

Ví dụ 1.8.

Baotri: select c

from s.DuAn as c where c.tenduan = “Bảo trì”)

1.5.1 Phép toán đối tượng

Mỗi đối tượng được biểu diễn như một bộ ba (OID, Tên lớp, Giá trị), OID là định danh của đối tượng, Tên lớp là kiểu của đối tượng và Giá trị của đối tượng do

người sử dụng định nghĩa thường là kiểu bộ Có ba phép toán đối tượng:

- Chiếu lấy định danh (πO): phép toán πO nhận vào một đối tượng và trả về địnhdanh của đối tượng

- Chiều lấy giá trị (πV): phép toán πV nhận vào một đối tượng và trả về giá trị của đối tượng

- Chiếu lấy đối tượng (πD): phép toán πD nhận vào một định danh đối tượng và trả về đối tượng có định danh tương ứng

Trang 35

- Phép toán hợp: set_union.

- Phép toán hiệu: set_diff.

- Phép toán chọn trên tập hợp σsλs.f(): phép toán nhận vào một tập (thường là mộttập đối tượng) và trả về một tập (đối tượng) sao cho mỗi phần tử ở tập kết quả

đều thoả mãn điều kiện mô tả trong công thức f.

Ví dụ: cho A = {2, 6, 4, 9}, σsλs.s > 5 (A) = {6, 9} Ký hiệu “λ” trong “λs” được

dùng như một biến đếm các phần tử trong tập đã cho Với tập đã cho là một lớp, s là

một biến thể hiện lớp

- Phép toán làm phẳng tập set_flat(): phép toán set_flat nhận vào một tập các tập

và trả về một tập chứa phần hợp của các tập lồng nhau Ví dụ, set_flat({1, 2, 3},

λ π (h o ten ,tu o i) ( πV ( S )) (NhanVien)

1.5.4 Phép toán bag “túi”

Các phép toán trên kiểu dữ liệu bag gồm có: thiết lập bag, hợp, hiệu, chọn, làm phẳng, áp dụng hàm trên bag: bag(), bag_union(), bag_diff(), σbλs.f (), bag_flat(),

loại bỏ các trùng lặp trong “túi”

1.5.5 Phép toán trên danh sách

Thiết lập danh sách, lấy phần tử đầu tiên, lấy phần tử cuối cùng, ghép danh

sách, chọn, làm phẳng, áp dụng hàm: list(), first(), last(), list_cat(), σlλs.f (), list_flat(), list_applyλs.e ().

1.5.6 Phép toán trên mảng

- Thiết lập mảng, ghép mảng, áp dụng: array(), array_cat(), array_ applyλs.e().

- Trích xuất phần tử πi() : phép toán này trả về phần tử thứ i trong mảng đã cho.

- Chiếu mảng πi,j(), j > i: phép toán trả về một mảng con chứa các phần tử có chỉ

số từ i đến j của mảng đã cho.

UML là ngôn ngữ mô hình hóa, ngôn ngữ đặc tả và ngôn ngữ xây dựng mô hìnhtrong quá trình phát triển phần mềm, đặc biệt là trong phân tích và thiết kế hệ thốnghướng đối tượng Chương 1 trình bày các khái niệm cơ bản như đối tượng, định danh

Trang 36

đối tượng, lớp, kiểu và quan trong nhất là quan hệ kế thừa Giới thiệu về ngôn ngữtruy vấn CSDL hướng đối tượng OQL và đại số đối tượng để viết lại các truy vấn đốitượng dưới dạng các biểu thức đại số Ngôn ngữ truy vấn hướng đối tượng OQLcung cấp khá nhiều kiểu dữ liệu thích hợp trong mô hình CSDL hướng đối tượng,đảm bảo cho sự đặc tả các đối tượng phức một cách phong phú và linh hoạt Đó lànhững kiến thức cần thiết để phục vụ cho các chương sau Ta thấy rằng CSDL hướngđối tượng tập chung xử lý về dữ liệu, nhằm làm cho chương trình trở nên linh hoạt,tin cậy và dễ phát triển Hơn thế tính đột phá của cơ sở dữ liệu hướng đối tượng làchúng cho phép người thiết kế đặc tả cấu trúc của các đối tượng cùng với cácphương thức thực hiện trên đối tượng đó.

Trang 37

Chương 2 TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI

TƯỢNG2.1 Giới thiệu

Khi thực thi một truy vấn, có thể có nhiều phương án mà hệ thống CSDL chophép xử lý Các phương án đều có kết quả cuối cùng là tương đương về kết quả tínhtoán nhưng khác nhau về chi phí thực hiện, tức là tổng thời gian cần để thực hiện mộttruy vấn Lựa chọn phương án nào để có tổng thời gian thực hiện truy vấn là nhỏnhất Như vậy, vấn đề cần quan tâm là làm sao cực tiểu tần suất sử dụng của CPU, bộnhớ, chi phí vào/ra và các nguồn tài nguyên về lĩnh vực truyền thông Với kỹ thuậtphần cứng hiện nay việc tối ưu thực thi một truy vấn chỉ còn là vấn đề làm cực tiểuthời gian trả lời của truy vấn, trong khi đó các hệ thống lại chịu sự chi phối chính ởthời gian trao đổi vào/ ra Do đó, chúng ta cần lựa chọn phương án nào để có tổngthời gian thực hiện là nhỏ nhất? Để giải quyết vấn đề đó, chúng ta cần dùng cácphương pháp để tối ưu hoá truy vấn trong các hệ thống quản trị CSDL

Trong những năm gần đây vấn đề tối ưu hoá truy vấn hướng đối tượng đượcnhiều nhà nghiên cứu quan tâm, các kỹ thuật tối ưu hoá truy vấn được phát triển cótính kế thừa từ mô hình CSDL quan hệ như dựa vào sự chuyển đổi lược đồ CSDLhướng đối tượng sang lược đồ quan hệ nhúng, thực hiện phương pháp biên dịch truyvấn đối tượng OQL về truy vấn quan hệ SQL Việc sử dụng CSDL quan hệ nhúnglàm nền trong lưu trữ vật lý và các thao tác dữ liệu được thực hiện qua giao diệnhướng đối tượng là giải pháp ứng dụng phù hợp cho một số hệ thống CSDL đốitượng – quan hệ Bên cạnh đó, để giải quyết cho một lớp các truy vấn đối tượngkhông lồng, có thể sử dụng phương pháp tối ưu truy vấn dựa trên tập luật biến đổiđại số đối tượng được áp dụng cho các mô hình dữ liệu hướng đối tượng có hỗ trợtập luật Phương pháp này xử lý cho lớp các truy vấn trên các kiểu đối tượng phứcnhư kiểu túi, đa tập, danh sách, bộ, …v.v, nhưng khi thực hiện trên các lớp sưu tập,các biểu thức đại số đối tượng lồng thì nó chi phí ước lượng và các phương án thựcthi truy vấn chưa hiệu quả Vì vậy, cần phải nghiên cứu các phương pháp, đề xuấtcác kỹ thuật tối ưu hóa truy vấn phù hợp cho các truy vấn đối tượng lồng

Đối với tối ưu hóa các truy vấn lồng trong CSDL hướng đối tượng đã đượcCluet, S [27] đề xuất theo cách tiếp cận hai bước Bước đầu tiên, được gọi là tối ưuhóa trên cơ sở phụ thuộc: biến đổi các truy vấn ở mức ngôn ngữ nhằm thực hiện cácbiểu thức con chung và các truy vấn con độc lập một cách hiệu quả hơn Các truy vấn

đã biến đổi được biên dịch thành các biểu thức đại số lồng nhau Sự định giá các

Trang 38

vòng lặp lồng nhau có thể không hiệu quả Vì vậy, ở bước hai xử lý cho các truy vấncon lồng trong giai đoạn “làm phẳng” các biểu thức đại số lồng nhau giúp cho phépđịnh giá hiệu quả hơn Trong luận văn, tập chung nghiên cứu cách tiếp cận phươngpháp biểu diễn các truy vấn lồng bằng siêu đồ thị kết nối Xuất phát từ ý tưởng biểudiễn và tối ưu hóa các truy vấn bằng siêu đồ thị của J.D Ullman [12] và Han [16] trênngôn ngữ QUEL/SQL, Chúng tôi nghiên cứu mở rộng thuật toán tối ưu hóa câu truyvấn Wong-Youssefi trong ngôn ngữ truy vấn OQL trên CSDL hướng đối tượng vàđưa ra phương pháp ước lượng chi phí phụ thuộc tỷ số giữa số các đối tượng củalớp bắt đầu trong biểu thức đường dẫn và tổng số các đối tượng của lớp, dựa trênmối quan hệ nhiều - nhiều giữa các lớp Tỷ số này là một trong những tham số lựachọn trong quá trình thiết kế CSDL.

2.1.1 Siêu đồ thị kết nối

Siêu đồ thị là sự tổng quát hóa của một đồ thị, trong đó một cạnh có thể nối với

bất kỳ đỉnh nào Về mặt hình thức, một siêu đồ thị H là một cặp H = (V, E) chứa một

tập các đỉnh V và tập các siêu cạnh E Trong đó, tập đỉnh V tương ứng với tập cácmục dữ liệu (hay gọi là thuộc tính), và mỗi siêu cạnh e ∈ E tương ứng với một tậpcác mục dữ liệu có liên quan với nhau (lớp, điều kiện) Khái niệm siêu đồ thị là sự

mở rộng của một đồ thị mà mỗi siêu cạnh của nó được kết nối từ tập các đỉnh Ta cósiêu đồ thị được thể hiện như trong hình 2.1 sau [9]:

2.1.2 Siêu đồ thị kết nối đối tượng

Trước hết, một cách hình thức ta xét định nghĩa của khái niệm siêu đồ thị kếtnối đối tượng như sau [6, 12, 16]

Trang 39

Định nghĩa 2.1: Siêu đồ thị kết nối đối tượng là một bộ sáu:

H = (C H , V H , E H , L H , S H , lb H ), trong đó:

(iii) L H : là tập hữu hạn các nhãn.

các siêu cạnh biểu diễn các lớp đối tượng và các thành phần của truy vấn

Từ định nghĩa 2.1 (trong các phần sau, siêu đồ thị kết nối đối tượng được gọitắt là siêu đồ thị), truy vấn OQL được biểu diễn bằng ký pháp siêu đồ thị như sau:

tập các thuộc tính thuộc các lớp tham gia truy vấn Mỗi thuộc tính của lớp C i được biểu thị bằng một nút Nếu hai lớp C i và C j đều có cùng một số các thuộctính kế thừa từ một siêu lớp nào đó, hoặc chúng cùng kế thừa tất cả các thuộctính từ một siêu lớp, ta tạo riêng cho các thuộc tính này các nút khác nhau

- Các siêu cạnh của siêu đồ thị được tạo thành từ các biểu thức điều kiện và các

lớp C i Xét biểu thức điều kiện trong mệnh đề Where, các biểu thức điều kiện

+ A Φ B, Φ ∈ {is, in, union, diff, forall, exists,…}

+ Đối với mỗi lớp C i, có một siêu cạnh chứa tất cả các nút là các thuộc tính của

C i , ta gọi là siêu cạnh đối tượng và được vẽ bằng một đường liền nét khép kín bao

quanh tất cả các nút của siêu cạnh Gán nhãn là tên của lớp

+ Điều kiện có dạng (2.1) trong siêu đồ thị, được gán nhãn nút là “A = a”

+ Biểu thức điều kiện có dạng “A = B” (dạng 2.2), với A, B là các thuộc tínhtrong hai lớp (có thể cùng là những thuộc tính được kế thừa từ một siêu lớp nào đó),thì chúng ta “trộn” các nút A và B lại với nhau đặt nhãn chung là tên của một trong

Trang 40

hai thuộc tính.

+ Với biểu thức điều kiện dạng (2.3) hay (2.4), chúng ta sẽ tạo ra một siêu cạnh

chứa các thuộc tính có mặt trong biểu thức Những siêu cạnh này được gọi là siêu cạnh điều kiện và chúng được biểu thị bằng đường nét chấm khép kín.

- Nếu có hai điều kiện trên cùng một tập thuộc tính, ta phải đặt nhãn riêng cho mỗi siêu cạnh để có thể phân biệt được chúng

- Các thuộc tính trong mệnh đề Select được bao trong một đường liền nét khép

kín và gán nhãn là “head ”, gọi là siêu cạnh đỉnh Siêu cạnh đỉnh tương ứng với

một lớp kết quả của truy vấn

phép toán { IS, IN, UNION, FORALL, EXIST, ….} của các truy vấn con lồng

nhau, được vẽ bằng đường nét rời khép kín bao quanh các thuộc tính có liênquan Các siêu cạnh kết nhập được gán nhãn tương ứng với tên các phép toán

Truy vấn đơn trong OQL chỉ có một khối Select … From … Where (SFW);

nhưng truy vấn lồng có nhiều hơn một khối SFW Truy vấn lồng biểu diễn bằng mộtsiêu đồ thị được xây dựng từ các siêu đồ thị của các khối SFW đơn và liên kết vớinhau qua các siêu cạnh kết nhập

Ví dụ 2.1: Xét siêu đồ thị kết nối đối tượng biểu diễn truy vấn

Ngày đăng: 11/11/2020, 22:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w