1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hiện thực mô hình đa phiên bản hướng thời gian trên hệ quản trị cơ sở dữ liệu oracle

126 12 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

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ðể giải quyết vấn ñề này, chúng tôi ñề nghị xây dựng lớp phần mềm hỗ trợ một mô hình quản lý vấn ñề ña phiên bản hướng thời gian thích hợp, các ngôn ngữ ñịnh nghĩa lớp, truy vấn và thao

Trang 1

LỜI CAM ðOAN

Tôi cam ñoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như ñã ghi

rõ trong luận văn, các công việc trình bày trong luận văn này là do chính chúng tôi thực hiện và chưa có phần nội dung nào của luận văn này ñược nộp ñể lấy một bằng cấp ở trường này hoặc trường khác

Tp.HCM, ngày 26 tháng 2 năm 2009

ðỗ Thục ðoan

Trang 2

Con xin cảm ơn Ba Mẹ và gia ñình ñã nuôi nấng và dạy dỗ cho con có ñược ngày hôm nay

Trang 3

TÓM TẮT

Có nhiều ứng dụng cần quản lý các phiên bản khác nhau của ñối tượng và sự thay ñổi các thuộc tính và mối quan hệ của các phiên bản ñó theo thời gian, chẳng hạn như các ứng dụng thiết kế, sản xuất, xây dựng phần mềm có sự trợ giúp của máy tính Việc xây dựng các ứng dụng này sẽ rất phức tạp nếu không có sự hỗ trợ từ hệ quản trị cơ sở

dữ liệu Hiện nay, không có một hệ quản trị cơ sở dữ liệu nào có khả năng quản lý vấn

ñề ñó và việc xây dựng từ ñầu một hệ quản trị như vậy rất phức tạp và tốn kém ðể giải quyết vấn ñề này, chúng tôi ñề nghị xây dựng lớp phần mềm hỗ trợ một mô hình quản

lý vấn ñề ña phiên bản hướng thời gian thích hợp, các ngôn ngữ ñịnh nghĩa lớp, truy vấn và thao tác dữ liệu trên một hệ quản trị cơ sở dữ liệu Qua khảo sát các mô hình ñã

có, ñề tài này chọn xây dựng trên Oracle một lớp phần mềm hỗ trợ mô hình ña phiên bản hướng thời gian Temporal Versions Model ñồng thời khắc phục hạn chế của các ngôn ngữ ñịnh nghĩa lớp, truy vấn và thao tác dữ liệu sẵn có Với lớp phần mềm này, người dùng có thể ñịnh nghĩa lớp, truy vấn, thao tác với dữ liệu, ñáp ứng yêu cầu của các ứng dụng cần quản lý các phiên bản của ñối tượng và sự thay ñổi các thuộc tính và mối quan hệ của các phiên bản ñó theo thời gian

Trang 4

ABSTRACT

There are many applications that need to manage different versions of an object and any changes about attributes and relationships of those versions in chronological order, such as Computer Aided Design, Computer Aided Manufacturing, Computer Aided Software Engineering The development of these applications will be very complicated

if it is not supported by an appropriate Database Management System At present, there

is not any Database Management System that is able to manage that problem and the building of such a system from the beginning is very complicated and expensive To solve this problem, we suggest building a layer which supports an appropriate model can manage temporal and multiversion issues, class definition language, query language, data manipulation language on top of a commercial Database Management System After making a survey on the existing models, this thesis has decided to build

a layer on Oracle in order to support the Temporal Versions Model and overcome the limitations of inherent class definition language, query language, data manipulation language at the same time With this layer, users can define, query and manipulate on data, satisfying requirement of applications that need to manage different versions of

an object and any changes about attributes and relationships of those versions in chronological order

Trang 5

MỤC LỤC

LỜI CAM ðOAN i

LỜI CẢM ƠN ii

TÓM TẮT iii

ABSTRACT iv

MỤC LỤC v

DANH MỤC HÌNH vii

CHƯƠNG 1 GIỚI THIỆU 1

1.1 Tổng quan 1

1.2 Kết quả ñạt ñược 3

1.3 Cấu trúc của luận văn 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT VÀ TỔNG QUAN VỀ CÁC CÔNG TRÌNH LIÊN QUAN 5

2.1 Cơ sở lý thuyết 5

2.2 Tổng quan về các công trình liên quan 12

CHƯƠNG 3 CÁC CẢI TIẾN ðỀ NGHỊ 36

3.1 Xử lý mối quan hệ giữa các thành phần trong cơ sở dữ liệu 36

3.2 Xác ñịnh các ràng buộc toàn vẹn thời gian vốn có của mô hình 43

3.3 Cải tiến các ngôn ngữ 47

3.4 ðặc tả ngữ nghĩa tác vụ của các ngôn ngữ 54

3.5 Các hàm bổ sung 76

CHƯƠNG 4 KIẾN TRÚC LỚP PHẦN MỀM 85

4.1 Kiến trúc ñề nghị 85

4.2 Module xử lý ñịnh nghĩa lớp 88

4.3 Module xử lý câu truy vấn 89

4.4 Module xử lý các lệnh thao tác dữ liệu 91

CHƯƠNG 5 ỨNG DỤNG QUẢN LÝ CÔNG TY THIẾT KẾ NỘI THẤT 92

5.1 Mô tả ứng dụng 92

5.2 Sơ ñồ lớp 93

5.3 ðịnh nghĩa lớp 94

5.4 Thao tác trên dữ liệu 96

5.5 Truy vấn 101

CHƯƠNG 6 KẾT LUẬN 104

6.1 Kết quả ñề tài 104

Trang 6

6.2 Hướng phát triển 107

TÀI LIỆU THAM KHẢO 108

PHỤ LỤC A ÁNH XẠ MÔ HÌNH TVM VÀO CƠ SỞ DỮ LIỆU QUAN HỆ 112

PHỤ LỤC B ÁNH XẠ NGÔN NGỮ TVQL VÀO NGÔN NGỮ SQL 114

PHỤ LỤC C BẢNG THUẬT NGỮ VIỆT-ANH 118

Trang 7

DANH MỤC HÌNH

Hình 2-1 Hệ thống kiểu cơ bản của TIGUKAT 16

Hình 2-2 Hệ thống kiểu cơ bản bổ sung các kiểu thời gian trừu tượng 16

Hình 2-3 Hệ thống phân cấp các lớp cơ sở của mô hình TVM 26

Hình 2-4 Lược ñồ trạng thái của một phiên bản 27

Hình 4-1 Kiến trúc lớp phần mềm ñược ñề xuất 86

Hình 4-2 Cách thức chuyển ñổi các lệnh ñịnh nghĩa lớp 89

Hình 4-3 Cách thức chuyển ñổi câu truy vấn TVQL 90

Hình 4-4 Cách thức chuyển ñổi các lệnh thao tác dữ liệu 91

Hình 5-1 Sơ ñồ lớp của ứng dụng 93

Trang 8

CHƯƠNG 1 GIỚI THIỆU

1.1 Tổng quan

Trong các ứng dụng như thiết kế có sự trợ giúp của máy tính (Computer Aided Design

- CAD), sản xuất có sự trợ giúp của máy tính (Computer Aided Manufacturing -

CAM), công nghệ xây dựng phần mềm có sự trợ giúp của máy tính (Computer Aided

Software Engineering - CASE)…, người dùng cần xem xét các phiên bản (version)

khác nhau của ñối tượng Các phiên bản của một ñối tượng thể hiện các trạng thái kế

tiếp nhau trong quá trình phát triển của thực thể mà ñối tượng ñó mô hình hoặc thể hiện

các biến thể khác nhau của ñối tượng Chẳng hạn, trong ứng dụng CASE, một chương

trình nguồn có thể có nhiều phiên bản tương ứng với các sản phẩm thương mại liên tiếp

của chương trình ñó Ngoài ra, chương trình nguồn còn có thể có nhiều phiên bản ứng

với các biến thể chương trình hoạt ñộng trong các hệ ñiều hành khác nhau Việc quản

lý vấn ñề ña phiên bản (multiversion) có thể ñược thực hiện ở mức ứng dụng hoặc ở

mức hệ quản trị cơ sở dữ liệu (DataBase Management System - DBMS) Nếu vấn ñề ña

phiên bản ñược giải quyết ở mức DBMS thì nhà phát triển chỉ cần tập trung vào việc

xây dựng ứng dụng Ngược lại, nếu vấn ñề ña phiên bản không ñược giải quyết ở mức

DBMS thì gánh nặng ñặt lên vai nhà phát triển sẽ rất lớn vì vừa xây dựng ứng dụng

vừa phải tự quản lý vấn ñề ña phiên bản Thực tế ñó ñặt ra yêu cầu DBMS hỗ trợ các

loại ứng dụng ñặc biệt kể trên phải quản lý ñược vấn ñề ña phiên bản

Thời gian là một yếu tố quan trọng ñối với các hiện tượng xảy ra trong thế giới thực,

chẳng hạn các sự kiện xảy ra tại một thời ñiểm cụ thể, ñối tượng và mối quan hệ giữa

các ñối tượng tồn tại trong một khoảng thời gian nhất ñịnh Trong nhiều ứng dụng như

Trang 9

chăm sóc sức khỏe, bảo hiểm, tài chắnh, quản lý thông tin cá nhân, ngân hàngẦ, cần phải lưu trữ và quản lý sự thay ựổi của dữ liệu theo thời gian Nếu không có sự hỗ trợ

từ DBMS thì nhà phát triển chương trình ứng dụng phải tự quản lý dữ liệu thay ựổi theo thời gian

đối với các ứng dụng cần quản lý các phiên bản khác nhau của ựối tượng ựồng thời phải quản lý sự thay ựổi các thuộc tắnh và mối quan hệ của các phiên bản ựó theo thời gian thì ựộ phức tạp của ứng dụng sẽ càng tăng khi không có sự hỗ trợ từ DBMS Hiện nay, vấn ựề ựa phiên bản chỉ ựược SQL Server [6] và Oracle [21] hỗ trợ ở mức bộ / ựối tượng cho phép quản lý ựồng thời nhiều phiên bản khác nhau của các hàng trong bảng Vấn ựề quản lý thời gian cũng chỉ ựược Oracle hỗ trợ ở mức gán nhãn thời gian cho các bộ / ựối tượng, chưa quản lý ựược sự thay ựổi của các thuộc tắnh và mối quan hệ theo thời gian [22] Như vậy, chưa có một DBMS nào có khả năng hỗ trợ quản lý các phiên bản khác nhau của ựối tượng cũng như sự thay ựổi các thuộc tắnh và mối quan hệ của các phiên bản ựó theo thời gian Việc xây dựng từ ựầu một DBMS như vậy rất

phức tạp và tốn kém Vì vậy, hướng giải quyết ựược ựặt ra là xây dựng lớp phần mềm

hỗ trợ một mô hình quản lý vấn ựề ựa phiên bản hướng thời gian thắch hợp cùng với các ngôn ngữ ựịnh nghĩa lớp, truy vấn và thao tác dữ liệu trên DBMS

đã có nhiều nghiên cứu riêng cho từng loại mô hình: các mô hình cơ sở dữ liệu ựa phiên bản (multiversion database) quản lý ựồng thời nhiều phiên bản của các thành phần trong cơ sở dữ liệu và các mô hình cơ sở dữ liệu hướng thời gian (temporal

database) quản lý sự thay ựổi theo thời gian của các thành phần Tuy nhiên chỉ có rất ắt nghiên cứu kết hợp cả hai mô hình [8, 19, 28] Trong các mô hình, mô hình ựa phiên bản hướng thời gian (Temporal Versions Model Ờ TVM) [19] thắch hợp với yêu cầu hơn so với các mô hình khác Mô hình cho phép quản lý các phiên bản của ựối tượng

và sự thay ựổi các thuộc tắnh của các phiên bản ựó theo thời gian, các ngôn ngữ ựịnh nghĩa lớp, truy vấn và thao tác dữ liệu cũng thân thiện với người dùng Nhóm nghiên

Trang 10

cứu của trường Federal University of Rio Grande do Sul (Brazil) ñang hiện thực trên

DB2 mô hình TVM và các ngôn ngữ liên quan ñể giải quyết vấn ñề ña phiên bản

hướng thời gian, trong ñó có xem xét sự tiến hóa của lược ñồ cơ sở dữ liệu Tuy nhiên,

các ngôn ngữ này còn các hạn chế sau:

• Các ngôn ngữ truy vấn và cập nhật dữ liệu chỉ mới xem xét các thuộc tính, chưa

xem xét mối quan hệ giữa các thành phần trong cơ sở dữ liệu

Cách xử lý mối quan hệ thừa kế (inheritance relationship) có thể gây ra các bất

thường (anomaly) trong cơ sở dữ liệu

Chưa xử lý mối quan hệ bao gộp (aggregation relationship) và mối quan hệ cấu

thành (composition relationship)

• Không thể xây dựng ñược các cấu hình có cấu trúc phức tạp

• Chưa xem xét các ràng buộc toàn vẹn thời gian vốn có của mô hình trong quá

trình thao tác dữ liệu

Mục tiêu của ñề tài này là giải quyết các hạn chế trên, ñề xuất kiến trúc cho một lớp

phần mềm hỗ trợ mô hình TVM, các ngôn ngữ ñịnh nghĩa lớp, truy vấn, thao tác dữ

liệu trên Oracle ñể quản lý vấn ñề ña phiên bản và thời gian trong các ứng dụng

1.2 Kết quả ñạt ñược

ðề tài ñã xây dựng ñược trên Oracle một lớp phần mềm hỗ trợ mô hình TVM, khắc

phục hạn chế của các ngôn ngữ ñịnh nghĩa lớp, truy vấn và thao tác dữ liệu Với lớp

phần mềm ñã xây dựng, người dùng có thể ñịnh nghĩa lớp, truy vấn, thao tác với dữ

liệu, ñáp ứng yêu cầu của các ứng dụng cần quản lý các phiên bản của ñối tượng và sự

Trang 11

1.3 Cấu trúc của luận văn

Phần còn lại của luận văn ñược tổ chức như sau: Chương 2 sẽ trình bày các khái niệm

cơ bản về cơ sở dữ liệu hướng thời gian và cơ sở dữ liệu ña phiên bản, phân tích, ñánh giá các công trình nghiên cứu liên quan và chỉ ra các vấn ñề mà ñề tài sẽ tập trung giải quyết Chương 3 trình bày các ñề xuất ñể khắc phục hạn chế của các ngôn ngữ ñịnh nghĩa lớp, truy vấn và thao tác dữ liệu sẵn có Chương 4 mô tả kiến trúc của lớp phần mềm hỗ trợ mô hình TVM và các ngôn ngữ liên quan ñược xây dựng trên Oracle và cách hiện thực các module thành phần Chương 5 trình bày khả năng hỗ trợ người dùng quản lý vấn ñề ña phiên bản hướng thời gian của lớp phần mềm ñã ñược xây dựng thông qua việc quản lý một công ty thiết kế nội thất Cuối cùng, chương 6 nêu kết luận

và hướng phát triển cho ñề tài

Trang 12

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT VÀ TỔNG QUAN VỀ CÁC CÔNG

TRÌNH LIÊN QUAN

Chương này sẽ trình bày khái quát cơ sở lý thuyết của ñề tài: các khái niệm về cơ sở dữ

liệu hướng thời gian và cơ sở dữ liệu ña phiên bản Sau ñó chúng tôi sẽ phân tích, ñánh

giá các mô hình quản lý vấn ñề thời gian và ña phiên bản ñã có, tổng kết các vấn ñề

còn tồn tại của mỗi mô hình và chỉ ra vấn ñề mà ñề tài sẽ tập trung giải quyết Các mô

hình ñược trình bày bao gồm: mô hình OODAPLEX của Wuu và Dayal, 1993 [28],

mô hình TIGUKAT của Goralwalla và Ozsu, 1993 [14], mô hình EXTRA-V của

Sciore, 1994 [24], mô hình cơ sở dữ liệu ña phiên bản và phương pháp kiểm tra ràng

buộc toàn vẹn thời gian của Doucet, 1996 [3, 7, 8, 9], mô hình ña phiên bản hướng

thời gian của Moro, 2002 [4, 5, 13, 17, 18, 19, 20]

2.1 Cơ sở lý thuyết

2.1.1 Cơ sở dữ liệu hướng thời gian

ðịnh nghĩa

Thời gian là một yếu tố quan trọng ñối với các hiện tượng xảy ra trong thế giới thực,

chẳng hạn các sự kiện xảy ra tại một thời ñiểm nhất ñịnh, ñối tượng và mối quan hệ

giữa các ñối tượng tồn tại trong một khoảng thời gian nào ñó Vì vậy, khả năng mô

hình hóa yếu tố thời gian là cần thiết cho nhiều ứng dụng, ñặc biệt là ứng dụng trong

các lĩnh vực như: chăm sóc sức khỏe, bảo hiểm, tài chính, quản lý thông tin cá nhân,

ngân hàng…

Trang 13

Cơ sở dữ liệu hướng thời gian là cơ sở dữ liệu hỗ trợ khía cạnh thời gian, không kể ñến thời gian do người dùng ñịnh nghĩa (user-defined time) [12]

Các thuật ngữ

Thứ tự thời gian (Time order) [15]

• Thứ tự tuyến tính (linear order): Thời gian ñi từ quá khứ ñến tương lai theo một cách thức có thứ tự (ordered manner)

• Thứ tự phân nhánh (branching order): Thời gian có thứ tự tuyến tính từ quá khứ ñến một ñiểm xác ñịnh, tại ñó thời gian chia thành nhiều nhánh khác nhau hướng về tương lai

Chiều thời gian (Time dimension) [12, 17]

• Thời gian hợp lệ (valid time): thời gian hợp lệ của một dữ kiện là thời gian

mà dữ kiện ñó là ñúng trong thực tế ñược mô hình hóa (modeled reality) Thời gian hợp lệ của dữ kiện luôn do người dùng cung cấp

• Thời gian giao tác (transaction time): thời gian giao tác của một dữ kiện trong cơ sở dữ liệu là thời gian mà dữ kiện ñó có mặt (current) trong cơ sở

dữ liệu và có thể ñược truy xuất Thời gian giao tác của dữ kiện do hệ thống quản lý và người dùng không thể can thiệp

Nhãn thời gian (Timestamp)

• Thời ñiểm (instant): một ñiểm nằm trên trục thời gian

• Khoảng thời gian (time interval): thời gian nằm giữa hai thời ñiểm

• Phần tử thời gian (time element): hội của hữu hạn các khoảng thời gian

Mật ñộ thời gian (Time density)

Trang 14

• Rời rạc (discrete): các mô hình rời rạc về mặt thời gian ñược xem là ñẳng cấu về mặt toán học với các số tự nhiên, mỗi ñiểm thời gian chỉ có duy nhất một ñiểm thời gian kế tiếp

• Dày ñặc (dense): các mô hình dày ñặc về mặt thời gian ñược xem là ñẳng cấu về mặt toán học với các phân số, giữa hai ñiểm thời gian bất kỳ luôn tồn tại một ñiểm khác

• Liên tục (continuous): các mô hình liên tục về mặt thời gian ñược xem là ñẳng cấu về mặt toán học với các số thực, không có khoảng trống giữa các ñiểm thời gian

Các mô hình

• Cơ sở dữ liệu thời gian hợp lệ (valid time database): Cơ sở dữ liệu thời gian hợp

lệ ñược dùng ñể lưu trữ lịch sử thay ñổi của các dữ kiện theo thế giới thực Các trạng thái của cơ sở dữ liệu trong quá khứ, hiện tại và tương lai ñều ñược ghi nhận lại Người dùng cần cung cấp thời gian hợp lệ khi ñưa dữ kiện vào cơ sở

dữ liệu Khi thời gian hợp lệ ñược cập nhật thì trạng thái trước ñó của dữ kiện không ñược giữ lại nữa ðối với loại cơ sở dữ liệu này thì dữ liệu sẽ bị xóa bỏ

về mặt vật lý khi cần sửa ñổi

Ví dụ 2.1: Thông tin nhân viên Scott ñược thăng chức từ vị trí A lên vị trí C từ ngày 12-03-2001 ñược lưu trữ trong cơ sở dữ liệu thời gian hợp lệ là sai:

Trang 15

Thông tin ñúng là Scott ñược thăng chức từ vị trí A lên vị trí B từ ngày

12-03-2001 Khi sai sót ñược phát hiện thì cơ sở dữ liệu sẽ ñược cập nhật như sau:

ra việc cập nhật ñồng thời vẫn lưu lại các trạng thái cũ

Ví dụ 2.2: Thông tin nhân viên Scott ñược thăng chức từ vị trí A lên vị trí C từ ngày 12-03-2001 ñược lưu trữ trong cơ sở dữ liệu thời gian giao tác là sai:

Trang 16

Thông tin ñúng là Scott ñược thăng chức từ vị trí A lên vị trí B từ ngày

12-03-2001 Khi sai sót ñược phát hiện vào ngày 24-09-2001 thì cơ sở dữ liệu sẽ ñược cập nhật như sau:

vì không thể biết trước thời gian xảy ra các giao dịch tương lai Loại cơ sở dữ liệu này có yếu tố thời gian không hoàn toàn trong suốt ñối với người dùng vì thời gian hợp lệ của dữ kiện do người dùng cung cấp, còn thời gian giao tác do

hệ thống tự quản lý ðối với cơ sở dữ liệu song thời gian, khi một lệnh cập nhật

Trang 17

ñược thực thi thì hệ thống sẽ ghi nhận thời gian hợp lệ của dữ kiện do người dùng cung cấp, ñồng thời sẽ ñiều chỉnh thời gian giao tác cũ và mới ñể giữ lại các thay ñổi này Vì vậy, trạng thái cũ của cơ sở dữ liệu vẫn tồn tại khi cần sửa ñổi hoặc xóa bỏ

Ví dụ 2.3: Thông tin nhân viên Scott ñược thăng chức từ vị trí A lên vị trí C từ ngày 12-03-2001 ñược lưu trữ trong cơ sở dữ liệu song thời gian là sai:

Name Position VStartDate VStopDate TStartDate TStopDate

Scott C 12-03-2001 now 24-03-2001 now

Thông tin ñúng là Scott ñược thăng chức từ vị trí A lên vị trí B từ ngày

12-03-2001 Khi sai sót ñược phát hiện vào ngày 24-09-2001 thì cơ sở dữ liệu sẽ ñược cập nhật như sau:

Name Position VStartDate VStopDate TStartDate TStopDate

Scott C 12-03-2001 now 24-03-2001 24-09-2001

Scott B 12-03-2001 now 24-09-2001 now

Với cơ sở dữ liệu này, các thay ñổi và sai sót ñược lưu trữ lại theo thời gian giao tác ñồng thời còn cung cấp thêm thông tin về thời gian hợp lệ của các dữ kiện

2.1.2 Cơ sở dữ liệu ña phiên bản

ðịnh nghĩa

Các ứng dụng thiết kế như CAD, CAM và CASE ñặt ra vấn ñề phải quản lý ñồng thời nhiều phiên bản của ñối tượng Các phiên bản của một ñối tượng thể hiện các trạng thái

Trang 18

kế tiếp nhau trong quá trình phát triển của thực thể mà ñối tượng ñó mô hình hoặc thể hiện các biến thể khác nhau của ñối tượng

Cơ sở dữ liệu ña phiên bản là cơ sở dữ liệu có nhiều phiên bản của dữ liệu hay ñối tượng [8]

ðồ thị phiên bản (version graph): Các phiên bản của một ñối tượng ña phiên bản liên hệ với nhau thông qua mối quan hệ dẫn xuất, tạo thành một ñồ thị phiên bản Trong ñó, các phiên bản con là kết quả của sự dẫn xuất từ phiên bản cha, các phiên bản anh em ñược dẫn xuất từ một phiên bản cha thể hiện các biến thể khác nhau của một ñối tượng

Trạng thái của phiên bản (version state): Mỗi phiên bản có một trạng thái, thể hiện

sự bền vững của dữ liệu ñược lưu trữ trong phiên bản và các tác vụ có thể thực hiện trên phiên bản ñó Một phiên bản ở trạng thái tạm thời thì có thể thay ñổi nhưng khi

ñã ở vào trạng thái bền vững thì không ñược thay ñổi Quy ñịnh trên ñảm bảo mọi thông tin trong quá khứ luôn ñược bảo toàn Sự chuyển ñổi giữa các trạng thái cũng như các sự kiện gây ra sự chuyển trạng thái ñược biểu diễn bằng sơ ñồ trạng thái (state diagram)

Trang 19

Các mô hình

Trong cơ sở dữ liệu hướng ñối tượng, căn cứ vào cấp ñộ áp dụng có 2 loại mô hình ña phiên bản [26]

• Mô hình lập phiên bản lớp (class versioning): quản lý sự tiến hóa của các lớp:

có thể thêm lớp mới, cập nhật lớp (bao gồm việc thêm, cập nhật hay xóa các thuộc tính và mối quan hệ) hay xóa lớp

• Mô hình lập phiên bản ñối tượng (object versioning): quản lý sự thay ñổi các thuộc tính và mối quan hệ trong các thể hiện của lớp Các phiên bản của một ñối tuợng chỉ khác nhau về giá trị của một số thuộc tính hay mối quan hệ

2.2 Tổng quan về các công trình liên quan

2.2.1 Mô hình OODAPLEX của Wuu và Dayal

OODAPLEX [28] là một mô hình hướng ñối tượng cho phép quản lý vấn ñề thời gian

và ña phiên bản trong cơ sở dữ liệu Phương pháp ñược sử dụng là mô hình hóa dữ liệu thay ñổi theo thời gian bằng các hàm Thời gian là kiểu dữ liệu trừu tượng Các phần tử

thời gian và phiên bản ñều là kiểu con của kiểu thời gian cơ bản point

Các ñặc trưng của mô hình

OODAPLEX là mô hình hướng ñối tượng

OODAPLEX là một mô hình hướng ñối tượng dựa trên mô hình hàm DAPLEX, dùng ñối tượng ñể mô hình hóa các thực thể Các thuộc tính của ñối tượng, mối quan hệ giữa các ñối tượng và các tác vụ trên ñối tượng ñều ñược mô hình hóa một cách thống nhất bằng các hàm áp dụng lên ñối tượng Các ñối tượng có thuộc tính và hành vi giống

Trang 20

nhau ñược nhóm vào cùng một kiểu Các kiểu có thể có kiểu con hình thành một hệ thống phân cấp thừa kế

Mô hình hóa thời gian và dữ liệu thay ñổi theo thời gian

Các khái niệm thời gian ñược biểu diễn dưới dạng các kiểu trừu tượng khác nhau Kiểu

thời gian cơ bản nhất là kiểu trừu tượng point có hai toán tử: ‘=’ thể hiện phép so sánh bằng và ‘>’ thể hiện mối quan hệ về thứ tự Tập hợp các point tạo thành một kiểu ñặc biệt {point} có các tác vụ trên tập hợp: ∈,⊂,∩,∪,= Các kiểu trừu tượng khác ñược thừa

kế từ hai kiểu cơ bản này

Thời gian sống của các thành phần trong cơ sở dữ liệu là một hàm ña hình ðối số của hàm có thể là ñối tượng, kiểu hoặc chính cơ sở dữ liệu Các ràng buộc về thời gian sống ñược ñặt ra ñể ñảm bảo sự toàn vẹn thời gian của cơ sở dữ liệu tại mọi thời ñiểm Các thuộc tính, mối quan hệ và tác vụ không ñổi theo thời gian ñược mô hình hóa bằng một hàm ánh xạ từ ñối tượng ñến giá trị của ñặc tính tương ứng Các thuộc tính, mối quan hệ và tác vụ thay ñổi theo thời gian ñược mô hình hóa bằng một hàm ánh xạ từ ñối tượng vào một hàm khác, hàm này lại ánh xạ các phần tử thời gian vào các giá trị của ñặc tính tương ứng

Mô hình hóa các ñối tượng ña phiên bản

Lịch sử thay ñổi các phiên bản của ñối tượng ñược lưu trữ dưới dạng thời gian phân nhánh Các phiên bản của ñối tượng hình thành một hệ thống phân cấp, trong ñó các phiên bản con là sự dẫn xuất từ phiên bản cha và các phiên bản anh em thể hiện các biến thể khác nhau của ñối tượng

Ngôn ngữ truy vấn OODAPLEX

OODAPLEX dùng các biểu thức từ ñơn giản ñến phức tạp ñể thể hiện ñối tượng Biểu thức ñơn giản nhất là biến, hằng Biểu thức phức tạp hơn là các biểu thức hàm và biểu

Trang 21

thức nhóm (tập hợp, bản ghi, danh sách) Các truy vấn trong OODAPLEX sử dụng các

cấu trúc mang tắnh thủ tục tương tự như cấu trúc vòng lặp for trong ngôn ngữ lập trình

ựể khảo sát các ựối tượng và truy xuất các thông tin cần thiết

đánh giá

Về mô hình: Hướng tiếp cận ựược ựề xuất là mô hình hóa sự thay ựổi của dữ liệu theo thời gian bằng các hàm, mô hình hóa thống nhất thời gian và phiên bản từ kiểu cơ bản

point Nhờ vậy, mô hình có khả năng xử lý thống nhất ựối tượng phức tạp và ựơn giản,

ựối tượng thay ựổi theo thời gian và không ựổi theo thời gian, ựối tượng ựa phiên bản

và ựối tượng thời gian Tuy nhiên, vì tất cả các kiểu trừu tượng về thời gian ựều bắt

nguồn từ kiểu point nên việc xây dựng các kiểu có ựộ phức tạp cao sẽ trở nên khó

khăn Ngoài ra, cách ựịnh nghĩa các kiểu trừu tượng dưới dạng tập hợp các hàm ựược

áp dụng cho các thể hiện của kiểu cũng không thân thiện với người dùng

Về ngôn ngữ truy vấn: Ngôn ngữ có khả năng diễn ựạt linh hoạt các truy vấn liên quan cũng như không liên quan ựến thời gian Tuy nhiên, người dùng cần phải nắm vững cấu trúc các hàm áp dụng cho các thể hiện của kiểu trừu tượng thì mới có thể khảo sát các ựối tượng ựể lấy ra các thông tin cần thiết

Về vấn ựề hiện thực: Mô hình OODAPLEX chưa ựược hiện thực

2.2.2 Mô hình TIGUKAT của Goralwalla và Ozsu

TIGUKAT [14] là một mô hình hướng ựối tượng cho phép quản lý vấn ựề thời gian trong cơ sở dữ liệu Mô hình cung cấp hệ thống kiểu thời gian cơ bản và các tác vụ phong phú ựể mô hình hóa các khái niệm thời gian, ựưa ra một khái niệm tổng quát về thời gian sống của ựối tượng trong bất kỳ tập hợp nào

Trang 22

Các ñặc trưng của mô hình

Hệ thống kiểu dữ liệu và tác vụ phong phú

Việc truy xuất và thao tác trên ñối tượng ñều quy về việc áp dụng tác vụ lên ñối tượng Kiểu (type) thể hiện các ñặc trưng của ñối tượng Lớp (class) chứa các ñối tượng thuộc một kiểu duy nhất Tập hợp (collection) có thể chứa các ñối tượng thuộc các kiểu khác nhau Hành vi (behavior) thể hiện phần giao diện của tác vụ Hàm (function) hiện thực tác vụ

TIGUKAT hỗ trợ một hệ thống phân cấp các kiểu cơ bản từ những khái niệm trên Các kiểu cơ bản này có thể ñược thừa kế ñể tạo ra các kiểu theo yêu cầu của người dùng Hình 2-1 trình bày hệ thống kiểu cơ bản của TIGUKAT

Các kiểu thời gian trừu tượng ñược bổ sung:

Kiểu T_timemodel: có hai kiểu con biểu diễn thời gian tuyến tính (T_linear) và

thời gian phân nhánh (T_branching)

Kiểu T_linear: có ba kiểu con cho biết nhãn thời gian ñược biểu diễn dưới dạng

thời ñiểm (T_instant), khoảng thời gian tuyệt ñối (T_interval) hoặc khoảng thời gian tương ñối (T_span)

Kiểu T_timescale: có ba kiểu con ánh xạ thời gian vào tập số thực

(T_continuous), tập phân số (T_dense) và tập số nguyên (T_discrete)

Kiểu T_temporalBhv: quản lý thông tin thời gian về các thuộc tính của ñối

tượng

Trang 23

Hình 2-1 Hệ thống kiểu cơ bản của TIGUKAT (nguồn [14])

Hình 2-2 Hệ thống kiểu cơ bản bổ sung các kiểu thời gian trừu tượng (nguồn [14])

Trang 24

Hình 2-2 trình bày hệ thống kiểu cơ bản của TIGUKAT có bổ sung thêm các kiểu thời gian trừu tượng

Ớ Các kiểu thời gian trên có các tác vụ ựã ựược ựịnh nghĩa sẵn Kiểu

T_temporalBhv hỗ trợ tác vụ B_history cho phép biểu diễn sự thay ựổi của ựối tượng theo thời gian Kiểu T_object ựược bổ sung tác vụ B_lifespan trả về thời

gian sống của ựối tượng trong một tập hợp Trên cơ sở ựó, các ràng buộc về thời gian ựược ựịnh nghĩa ựể ựảm bảo sự toàn vẹn thời gian của cơ sở dữ liệu tại mọi thời ựiểm

Ngôn ngữ truy vấn

Ngôn ngữ truy vấn của mô hình này là Tigukat Query Language (TQL) Phát biểu cơ

bản của ngôn ngữ truy vấn TQL là phát biểu select, nó thực thi tác vụ trên một tập hợp

và trả về một tập hợp mới

Cú pháp

select <object variable list>

[into <collection name>]

from <range variable list>

[where <boolean formula>]

Trong ựó, mệnh ựề select xác ựịnh các ựối tượng ựược trả về trong tập hợp mới, mệnh

ựề into mô tả một tham khảo ựến tập hợp mới, mệnh ựề from ựặc tả phạm vi các biến ựối tượng trong mệnh ựề select và where, mệnh ựề where xác ựịnh ựiều kiện của biến

ựược chọn

đánh giá

Về mô hình: Hướng tiếp cận ựược ựề xuất là mọi truy xuất và thao tác trên ựối tượng ựều quy về việc áp dụng tác vụ lên ựối tượng, có bổ sung thêm hệ thống kiểu thời gian

Trang 25

và các tác vụ ñược xây dựng sẵn Nhờ ñó, mô hình có khả năng xử lý thống nhất ñối tượng phức tạp và ñơn giản, ñối tượng thay ñổi theo thời gian và không ñổi theo thời gian Mô hình này có sự tương ñồng với mô hình OODAPLEX ở bản chất hàm Ưu ñiểm của nó là với khả năng kế thừa từ hệ thống kiểu thời gian và tác vụ có sẵn, việc xây dựng các kiểu thời gian phức tạp ñáp ứng yêu cầu của các ứng dụng khác nhau ñơn giản hơn so với OODAPLEX vì không phải xây dựng từ ñầu Tuy nhiên, mô hình này chưa giải quyết ñược vấn ñề ña phiên bản.

Về ngôn ngữ truy vấn: Ngôn ngữ tựa SQL có khả năng diễn ñạt linh hoạt các truy vấn liên quan cũng như không liên quan ñến thời gian, thân thiện hơn so với OODAPLEX Ngôn ngữ chỉ mới xem xét cấu trúc SELECT-FROM-WHERE cơ bản

Về vấn ñề hiện thực: Chỉ mới hiện thực mô hình ñối tượng, chưa hiện thực ngôn ngữ truy vấn [11]

2.2.3 Mô hình EXTRA-V của Sciore

Mô hình EXTRA-V [24] hỗ trợ việc quản lý vấn ñề ña phiên bản và cấu hình trong cơ

sở dữ liệu Phương pháp ñược sử dụng là mở rộng mô hình EXTRA và ngôn ngữ truy vấn EXCESS, bổ sung thêm các cấu trúc mới ở mức ý niệm, cho phép người dùng truy xuất dữ liệu ña phiên bản giống như dữ liệu thông thường, cho phép ñặc tả ngữ nghĩa của các phiên bản và truy xuất phiên bản theo ngữ nghĩa cụ thể, cho phép xây dựng

ñộng các cấu hình khi truy vấn và dùng view ñể lưu trữ lại các cấu hình quan trọng cần

tham khảo sau ñó

Các ñặc trưng của mô hình EXTRA

Quản lý vấn ñề ña phiên bản

Trang 26

ðối tượng là thể hiện của kiểu Kiểu ñịnh nghĩa các thuộc tính và tác vụ cho các thể hiện của nó Thuộc tính có thể chứa một giá trị hoặc có thể tham khảo ñến ñối tượng

khác thông qua từ khóa ref Tập hợp các kiểu ñược tổ chức thành một hệ thống phân

Lệnh retrieve dùng ñể truy vấn, có cấu trúc tương tự select

retrieve <object variable list>

from <range variable list>

[where <boolean formula>]

Lệnh copy dùng ñể thêm ñối tượng mới vào tập hợp Muốn tạo một ñối tượng mới có một phiên bản thì phải thực hiện hai lệnh copy ñể tạo ñối tượng thuộc kiểu tổng quát và

ñối tượng thuộc kiểu phiên bản

Lệnh replace dùng ñể cập nhật ñối tượng

Lệnh delete dùng ñể xóa các phiên bản của ñối tượng

Các ñặc trưng của mô hình EXTRA-V

Quản lý vấn ñề ña phiên bản

Mô hình EXTRA quản lý các phiên bản ở mức vật lý Ngược lại, mô hình mở rộng từ EXTRA là EXTRA-V quản lý vấn ñề ña phiên bản ở mức ý niệm

Trang 27

• Thuộc tính chung của tất cả phiên bản: sự thay ñổi các thuộc tính này sẽ ñược tất cả phiên bản của ñối tượng cập nhật ngay

• Thuộc tính riêng của mỗi phiên bản: sự thay ñổi các thuộc tính này sẽ tạo ra phiên bản mới

Các kiểu trong EXTRA-V ñược ánh xạ thành hai kiểu tương ứng trong EXTRA

EXTRA-V dùng hai từ khóa khác nhau ñể diễn ñạt sự tham khảo tới ñối tượng khác: từ

khóa ref tham khảo ñến ñối tượng cùng tất cả phiên bản của nó, từ khóa specific ref

tham khảo ñến một phiên bản cụ thể

Ngôn ngữ truy vấn

Ngôn ngữ EXCESS-V mở rộng ngôn ngữ EXCESS, hỗ trợ ña phiên bản ở mức ý niệm làm cho các tác vụ cập nhật trở nên ñơn giản hơn

Muốn tạo một ñối tượng mới có một phiên bản chỉ cần thực hiện một lệnh copy

Cập nhật thuộc tính chung làm cho tất cả phiên bản ñều thay ñổi giá trị và không tạo ra phiên bản mới Cập nhật thuộc tính riêng của phiên bản có thể tạo ra hoặc không tạo ra phiên bản mới

Có thể xóa ñối tượng cùng tất cả các phiên bản của nó hoặc có thể chỉ xóa các phiên bản mà không làm ảnh hưởng ñến ñối tượng

Quản lý cấu hình

EXCESS-V ñược xem là một ngôn ngữ quản lý cấu hình vì câu truy vấn của nó có thể xác ñịnh sự kết hợp giữa ñối tượng với phiên bản cụ thể tạo thành một chỉnh thể thống nhất Với cách tiếp cận này, sự kết hợp giữa ñối tượng và phiên bản có thể thay ñổi ñược, khả năng diễn ñạt các ñiều kiện chọn phiên bản rất linh hoạt, có thể trả về nhiều cấu hình thỏa mãn ñiều kiện

Mô hình sử dụng view ñể lưu trữ các cấu hình quan trọng cần tham khảo sau ñó

Trang 28

Ngữ nghĩa của phiên bản

Các kiểu dữ liệu có thể ựịnh nghĩa hai thuộc tắnh: occurredAt lưu trữ thông tin về thời gian hợp lệ và recordedAt lưu trữ thông tin về thời gian giao tác Các chiều thời gian

này tạo thành một không gian cho các phiên bản Mỗi phiên bản cụ thể ựược xác ựịnh bằng hai tọa ựộ: thời gian hợp lệ và thời gian giao tác diễn ra sự thay ựổi

Mô hình còn cho phép người dùng tự ựịnh nghĩa các chiều trong không gian lưu trữ

phiên bản bằng kiểu dimension, nhờ ựó bổ sung thêm ngữ nghĩa cho các phiên bản,

giúp người dùng truy xuất thông tin liên quan ựến các phiên bản dễ dàng hơn Hệ thống chịu trách nhiệm chuyển ựổi thành câu truy vấn thông thường và thực thi nó

đánh giá

Về mô hình: Phiên bản ựược tạo ra bởi ứng dụng và người dùng có thể truy xuất các phiên bản cụ thể Ngữ nghĩa của phiên bản giúp cho việc quản lý các phiên bản cũng như cấu hình trong cơ sở dữ liệu dễ dàng hơn Tuy nhiên, mô hình chưa giải quyết ựược vấn ựề thời gian

Về ngôn ngữ truy vấn: có cấu trúc tựa SQL, có khả năng ựáp ứng các yêu cầu thao tác trên phiên bản cũng như ựối tượng ựa phiên bản

Về vấn ựề hiện thực: Mô hình EXTRA-V chưa ựược hiện thực

2.2.4 Mô hình cơ sở dữ liệu ựa phiên bản và phương pháp kiểm tra ràng buộc toàn vẹn thời gian của Doucet

Mô hình cơ sở dữ liệu ựa phiên bản [3, 7, 8, 9] ựược dùng ựể hỗ trợ mô hình cơ sở dữ liệu song thời gian Trên cơ sở ựó, các ràng buộc toàn vẹn thời gian ựược ánh xạ vào các ràng buộc trong cơ sở dữ liệu ựa phiên bản, sử dụng phương pháp kiểm tra ràng buộc trong cơ sở dữ liệu ựa phiên bản ựể kiểm tra các ràng buộc toàn vẹn thời gian

Trang 29

Mô hình cơ sở dữ liệu ña phiên bản

Ở cấp ñộ vật lý, cơ chế phiên bản (version mechanism) [3] của mô hình cho phép quản

lý hiệu quả các phiên bản cơ sở dữ liệu

Phân loại các ràng buộc toàn vẹn

Dựa vào ba tiêu chuẩn

• Tính chất tĩnh, ñộng của ràng buộc: ràng buộc ñộng (dynamic) yêu cầu phải kiểm tra cả trạng thái khởi ñầu và trạng thái kết thúc của cơ sở dữ liệu ña phiên bản khi thực hiện một giao dịch, ràng buộc tĩnh (static) chỉ yêu cầu kiểm tra trạng thái kết thúc của cơ sở dữ liệu ña phiên bản khi thực hiện giao dịch

• Phạm vi của ràng buộc: xác ñịnh ràng buộc liên quan ñến một ñối tượng object) hoặc nhiều ñối tượng (multi-object), thuộc về một lớp (mono-class) hoặc nhiều lớp (multi-class), trong một phiên bản cơ sở dữ liệu (mono-DBV) hoặc nhiều phiên bản cơ sở dữ liệu (multi-DBV)

(mono-• Sự liên hệ giữa các thành phần trong cơ sở dữ liệu: Có ba miền (domain): miền ñối tượng (object), miền lớp (class) và miền cơ sở dữ liệu (DBV) Khi kiểm tra ràng buộc, tại một thời ñiểm chỉ cần xem xét một phần tử của miền (intra-domain) hoặc cần xem xét ñồng thời nhiều phần tử của miền (inter-domain)

Trang 30

Sự kết hợp giữa các tiêu chuẩn trên hình thành 54 loại ràng buộc toàn vẹn khác nhau

Kiểm tra tính nhất quán của cơ sở dữ liệu ña phiên bản

Cần kiểm tra các ràng buộc vào cuối mỗi giao dịch trong cơ sở dữ liệu Nếu tất cả các ràng buộc ñều thỏa mãn thì giao dịch sẽ hoàn tất Ngược lại thì giao dịch bị hủy bỏ Một quy trình ñược ñề xuất ñể cải tiến việc kiểm tra trên ở ba ñiểm: chỉ xem xét các ràng buộc nào có thể bị vi phạm bởi giao dịch, chỉ kiểm tra các phần tử nào trong cơ sở

dữ liệu có thể bị vi phạm bởi ràng buộc ñó bằng cách phân tích cú pháp của giao dịch

và ràng buộc, tùy theo từng loại ràng buộc mà phương pháp kiểm tra ràng buộc tương ứng xây dựng sẵn trong thư viện sẽ ñược sử dụng

Phương pháp kiểm tra các ràng buộc toàn vẹn thời gian

Trong mô hình cơ sở dữ liệu ña phiên bản, mỗi phiên bản thể hiện một trạng thái của thế giới thực ñược mô hình và có thể ñược kết hợp với một hoặc nhiều chiều thời gian

ðể biểu diễn ngữ nghĩa của ứng dụng, phiên bản ñược ñặc trưng bởi các nhãn, trong ñó

sử dụng các thuộc tính của phiên bản Chẳng hạn thuộc tính ñó có thể là ngày ra ñời của phiên bản hoặc tên người thiết kế ra phiên bản ðể biểu diễn cơ sở dữ liệu song thời gian bằng mô hình cơ sở dữ liệu ña phiên bản thì nhãn của phiên bản phải lưu trữ thông tin về các chiều thời gian, cụ thể là thời gian hợp lệ và thời gian giao tác

Các ràng buộc toàn vẹn thời gian có thể ñược xem như các truy vấn ñặt ra cho cơ sở dữ

liệu hướng thời gian Nó bị xem là vi phạm nếu kết quả trả về của câu truy vấn là false

Một cách phổ biến ñể ñịnh nghĩa các truy vấn về thời gian là sử dụng logic thời gian (temporal logic) Logic thời gian là logic bậc nhất (first-order logic) có bổ sung thêm

các liên từ thời gian như since, until, previous, next và ngữ nghĩa của nó ñược xác ñịnh

dựa vào sự thay ñổi trạng thái của cơ sở dữ liệu theo thời gian

Trang 31

Trong thực tế, hầu hết cơ sở dữ liệu hướng thời gian ựều ựược hiện thực bằng cách lưu trữ thuộc tắnh hoặc bộ kết hợp với khoảng thời gian hợp lệ Như vậy, các truy vấn logic thời gian dựa vào trạng thái phải ựược ánh xạ thành các truy vấn dựa vào khoảng thời gian thì mới có thể ựược xử lý bằng các DBMS hướng thời gian

Khi mô hình cơ sở dữ liệu ựa phiên bản ựược dùng ựể hỗ trợ cơ sở dữ liệu song thời gian thì các ràng buộc toàn vẹn thời gian ựược hiện thực bằng cách ánh xạ vào các ràng buộc trong cơ sở dữ liệu ựa phiên bản Với hướng tiếp cận này, các ràng buộc viết bằng logic thời gian có thể dễ dàng ựược chuyển ựổi thành ràng buộc trong cơ sở dữ liệu ựa phiên bản vì mỗi phiên bản của cơ sở dữ liệu biểu diễn một trạng thái trong thế giới thực và ựược kết hợp với khoảng thời gian hợp lệ

đánh giá

Về mô hình cơ sở dữ liệu ựa phiên bản: mô hình cho phép quản lý hiệu quả các cơ sở

dữ liệu ựa phiên bản, ựặc biệt quan tâm ựến việc ựảm bảo tắnh nhất quán trong cơ sở dữ liệu Tuy nhiên, vì phải xác ựịnh phiên bản cụ thể của cơ sở dữ liệu khi thực hiện thao tác trên các phiên bản của ựối tượng nên người dùng sẽ gặp khó khăn khi phải thêm, cập nhật hay xóa dữ liệu

Về phương pháp kiểm tra ràng buộc toàn vẹn thời gian: Ý tưởng là dùng mô hình cơ sở

dữ liệu ựa phiên bản ựể hiện thực các ràng buộc toàn vẹn trong cơ sở dữ liệu song thời gian Ưu ựiểm là tận dụng ựược các công nghệ ựã xây dựng cho mô hình cơ sở dữ liệu

ựa phiên bản Tuy nhiên, vì các ràng buộc toàn vẹn thời gian ựược xem như trường hợp ựặc biệt của các ràng buộc toàn vẹn trong cơ sở dữ liệu ựa phiên bản nên việc phân loại các ràng buộc toàn vẹn thời gian chưa xem xét ựến ựặc trưng về mặt thời gian, dẫn ựến việc thực thi các ràng buộc này không ựạt hiệu quả cao

Trang 32

Về vấn ñề hiện thực: Mô hình cơ sở dữ liệu ña phiên bản và các ràng buộc toàn vẹn trong mô hình, cơ sở dữ liệu song thời gian và việc xử lý các ràng buộc toàn vẹn thời gian ñược hiện thực trên DBMS O2

2.2.5 Mô hình ña phiên bản hướng thời gian TVM của Moro

Mô hình ña phiên bản hướng thời gian [17, 18, 19] là một mô hình hướng ñối tượng cho phép quản lý vấn ñề thời gian và ña phiên bản Phần tiếp theo sẽ phân tích, ñánh giá mô hình trên cùng với các ngôn ngữ hỗ trợ mô hình: ngôn ngữ ñịnh nghĩa lớp, ngôn ngữ truy vấn [20], ngôn ngữ thao tác dữ liệu [13] và ngôn ngữ ñặc tả ràng buộc [4, 5]

Mô hình ña phiên bản hướng thời gian

Mô hình ña phiên bản hướng thời gian [17, 18, 19] là một mô hình hướng ñối tượng kết hợp mô hình ña phiên bản với yếu tố thời gian, cho phép quản lý việc lưu trữ tất cả phiên bản của ñối tượng cùng toàn bộ lịch sử thay ñổi các thuộc tính của mỗi phiên bản theo thời gian

Hệ thống phân cấp các lớp cơ sở

Hình 2-3 biểu diễn hệ thống phân cấp các lớp cơ sở của mô hình TVM Trong ñó, lớp

Object quản lý chung các ñối tượng, lớp Temporal Object quản lý vấn ñề thời gian, lớp Temporal Version quản lý các phiên bản và lớp Versioned Object quản lý ñối tượng ña

phiên bản

Mô hình ñịnh nghĩa hai loại lớp ứng dụng: non temporal non versionable (lớp con của lớp Object) là lớp ứng dụng thông thường, temporal and versionable (lớp con của lớp Temporal Version) là lớp ứng dụng cần quản lý vấn ñề ña phiên bản hướng thời gian

Trang 33

Quản lý vấn ñề thời gian

Thời gian ñược kết hợp với các ñối tượng, phiên bản, thuộc tính và mối quan hệ cho phép mô hình hóa thực tế linh hoạt hơn Mô hình lưu trữ cả thời gian hợp lệ và thời gian giao tác (mô hình cơ sở dữ liệu song thời gian) dưới dạng khoảng thời gian

Hình 2-3 Hệ thống phân cấp các lớp cơ sở của mô hình TVM (nguồn [18])

ðối tượng có ñường thời gian dành riêng cho mỗi phiên bản của nó Các phiên bản của ñối tượng có thể cùng tồn tại vào một thời ñiểm Vì vậy, mô hình có hai bậc thời gian khác nhau: thời gian phân nhánh cho ñối tượng ña phiên bản và thời gian tuyến tính cho mỗi phiên bản của ñối tượng

Thời gian sống của ñối tượng và phiên bản ñược biểu diễn bằng hai thuộc tính start và end

Các thuộc tính và mối quan hệ của ñối tượng có thể thay ñổi hoặc không ñổi theo thời gian Các thuộc tính và mối quan hệ thay ñổi theo thời gian ñược kết hợp với bốn giá

trị biểu diễn thời gian: vTimei, vTimef, tTimei, tTimef tương ứng với thời ñiểm bắt ñầu

hợp lệ, thời ñiểm kết thúc hợp lệ, thời ñiểm bắt ñầu giao tác và thời ñiểm kết thúc giao tác

Ràng buộc toàn vẹn thời gian: nhãn thời gian kết hợp với các phiên bản phải chứa trong ñường thời gian của ñối tượng ña phiên bản, nhãn thời gian kết hợp với các thuộc

Trang 34

tính và mối quan hệ của một phiên bản phải chứa trong ñường thời gian của phiên bản

ñó

Quản lý vấn ñề ña phiên bản

Trong thời gian sống, phiên bản có thể thay ñổi trạng thái Hình 2-4 mô tả các trạng thái của phiên bản và các sự kiện gây ra sự chuyển trạng thái của phiên bản Có bốn trạng thái:

Working: phiên bản có thể ñược dẫn xuất, thăng cấp lên trạng thái stable, sửa

ñổi, truy vấn và xóa bỏ

Stable: phiên bản có thể ñược dẫn xuất, thăng cấp lên trạng thái consolidated,

truy vấn và xóa bỏ, không ñược sửa ñổi

Consolidated: phiên bản có thể ñược dẫn xuất, truy vấn, không ñược sửa ñổi và

Trang 35

Ngôn ngữ ñịnh nghĩa lớp

Class className [HasVersions] [inherit className]

[[temporal] aggregate_of [n] className (by value | by reference)

{,[temporal] aggregate_of [n] className (by value | by reference)}]

([Properties:

{[temporal] attributeName : attributeDomain;}]

[Relationships:

{[temporal] relationshipName (0:1 | 0:n | 1:1 | 1:n | n:n) [inverse inverseRelationshipName] relatedClassName;}]

Với ngôn ngữ trên, người dùng có thể ñịnh nghĩa lớp ứng dụng ña phiên bản hướng

thời gian và lớp ứng dụng thông thường; ñịnh nghĩa các thuộc tính thay ñổi và không

ñổi theo thời gian Ngôn ngữ ñịnh nghĩa lớp này gần giống ngôn ngữ ODL do nhóm

ODMG ñề xuất

Ngôn ngữ truy vấn ña phiên bản hướng thời gian

Ngôn ngữ truy vấn ña phiên bản hướng thời gian (Temporal Versioned Query

Language - TVQL) [20] là ngôn ngữ truy vấn dùng cho mô hình TVM

Cú pháp

query ::= SELECT [EVER] [DISTINCT] targetC {,targetC}

FROM identificC {,identificC} [WHERE [EVER] searchC]

[GROUP BY groupC {,groupC} [HAVING logicalExpr]]

[ORDER BY orderC {,orderC} [setOp query];

targetC ::= (* | propertyName | aggregationFunctions | preDefInterval |

preDefInstant) [AS identifier]

identificC ::= className [.VERSIONS] [aliasName]

search C ::= logicalExpr | tempExpr

groupC ::= propertyName | preDefInterval | preDefInstant

tempExpr ::= logicalExpr | PRESENT (logicalExpr)

orderC ::= groupC [ASC | DESC]

setOp ::= UNION | INTERSECTION | DIFFERENCE

preDefInterval ::= [propetyName.] (tInterval | vInterval)

preDefInstant ::= [propertyName.] (tiInstant | tfInstant | viInstant | vfInstant)

| [className.] (iLifeTime | fLifeTime)

Trang 36

Việc sử dụng các từ khóa ever và present cho phép người dùng truy vấn kết hợp dữ

liệu hiện tại và toàn bộ lịch sử dữ liệu Từ khóa ever theo sau select cho biết câu truy

vấn sẽ trả về toàn bộ lịch sử dữ liệu Nếu không có từ khóa ever thì câu truy vấn chỉ trả

về dữ liệu hiện tại Từ khóa ever theo sau where cho biết ñiều kiện ñược xét trên toàn

bộ lịch sử dữ liệu Nếu dùng từ khóa present theo sau where hoặc không có từ khóa nào theo sau where thì ñiều kiện ñược xét trên dữ liệu hiện tại

Từ khóa versions theo sau className cho biết câu truy vấn lấy thông tin từ tất cả các phiên bản của lớp Nếu không có từ khóa versions thì chỉ lấy thông tin từ các phiên

bản hiện hành bao gồm các ñối tượng thông thường và phiên bản hiện hành của ñối tượng ña phiên bản

Các ñặc tính cho phép truy xuất nhãn thời gian của các thuộc tính và mối quan hệ thay

ñổi theo thời gian: khoảng thời gian giao tác tInterval, khoảng thời gian hợp lệ vInterval, thời ñiểm bắt ñầu giao tác tiInstant, thời ñiểm kết thúc giao tác tfInstant, thời ñiểm bắt ñầu hợp lệ viInstant, thời ñiểm kết thúc hợp lệ vfInstant

Các ñặc tính cho phép truy xuất nhãn thời gian của ñối tượng: thời ñiểm ra ñời

iLifetime, thời ñiểm kết thúc fLifetime

Các toán tử so sánh thời ñiểm và thời khoảng: before, into, after

Các toán tử so sánh các thời khoảng: intersect, overlap, equal

Các hàm truy xuất thông tin ñặc biệt của các phiên bản: hàm xác ñịnh trạng thái của các phiên bản (isWorking, isWorkingAt), hàm xác ñịnh vị trí của phiên bản trong chuỗi dẫn xuất (isCurrent, isUserCurrent, isFirst, isLast, isPredecessorOf, isSuccessorOf)

Các hàm truy xuất thông tin ñặc biệt của ñối tượng ña phiên bản: firstVersion, lastVersion, versionCount, currentVersion, nextVersionNumber

Hiện thực

Trang 37

Quá trình hiện thực ngôn ngữ TVQL gồm hai bước:

• Bước 1: Ánh xạ mô hình TVM vào một cơ sở dữ liệu quan hệ, gồm hai phần nhỏ: biểu diễn hệ thống phân cấp các lớp cơ sở và hiện thực các lớp ứng dụng

• Bước 2: Ánh xạ ngôn ngữ TVQL vào ngôn ngữ SQL

Ngôn ngữ thao tác dữ liệu

Ngôn ngữ thao tác dữ liệu dùng cho mô hình TVM [13] có xét ñến sự thay ñổi cấu trúc của lược ñồ cơ sở dữ liệu Ngôn ngữ này tựa SQL và có sử dụng ngôn ngữ truy vấn TVQL

Cú pháp

query ::= (insert | update | delete) identificSV

insert ::= INSERT INTO className

[(propertyName = expression [VALIDITY INTERVAL definedInterval]

{,propertyName = expression [VALIDITY INTERVAL definedInterval]})]

VALUES (constant {,constant}) [VALIDITY INTERVAL definedInterval]

delete ::= DELETE FROM className

[WHERE condition] [fValidity = instant]

update ::= UPDATE className

SET propertyName = expression [VALIDITY INTERVAL definedInterval] {,propertyName = expression [VALIDITY INTERVAL definedInterval]}

WHERE condition

identificSV ::= current | schemaVersionName = schemaVersionName

| VALIDITY INTERVAL definedInterval

definedInterval ::= [iInstant [fInstant]] | [ fInstant]

schemaVersionName ::= identifier

instant ::= tempValue | now | null

tempValue ::= ‘dateValue [,hourValue]’

Mệnh ñề WHERE condition sử dụng ngôn ngữ truy vấn TVQL, cho phép người dùng

ñịnh nghĩa các ñối tượng ñược xem xét trong quá trình thao tác

Trang 38

Lệnh INSERT tạo ra phiên bản ñầu tiên của ñối tượng Nếu ñối tượng có các thuộc tính

thay ñổi theo thời gian thì người dùng phải cung cấp thời gian hợp lệ cho từng thuộc tính ñó

Phát biểu UPDATE xét hai trường hợp:

• Trường hợp 1: Nếu cập nhật thuộc tính không ñổi theo thời gian thì một phiên bản mới sẽ ñược tạo ra

• Trường hợp 2: Nếu cập nhật thuộc tính thay ñổi theo thời gian thì giá trị trước ñây và giá trị hiện tại ñều ñược lưu trữ lại, không tạo ra phiên bản mới

Phát biểu DELETE xét ba trường hợp:

• Trường hợp 1: Nếu xóa bỏ thuộc tính thay ñổi theo thời gian thì thời gian hợp lệ

của nó sẽ kết thúc tại thời ñiểm ñược cung cấp từ mệnh ñề fValidity

• Trường hợp 2: Nếu xóa bỏ phiên bản thì thời gian sống của nó sẽ kết thúc Nếu phiên bản ñó có các thuộc tính và mối quan hệ thay ñổi theo thời gian thì thời gian hợp lệ của chúng cũng sẽ kết thúc cùng lúc với phiên bản

• Trường hợp 3: Nếu xóa bỏ ñối tượng ña phiên bản thì thời gian sống của nó sẽ kết thúc và tất cả các phiên bản của nó cũng sẽ bị xóa bỏ

Một lược ñồ cũng có thể có nhiều phiên bản Mệnh ñề identificSV dùng ñể xác ñịnh

phiên bản lược ñồ cụ thể ñể thực hiện việc cập nhật dữ liệu

Ngôn ngữ ñặc tả ràng buộc

Ngôn ngữ ñặc tả ràng buộc ña phiên bản hướng thời gian (Temporal Versioned Constraint Language – TVCL) [4, 5] dùng cho mô hình TVM có sử dụng ngôn ngữ truy vấn TVQL và ngôn ngữ thao tác dữ liệu

Trang 39

constraint ::= (create constraint constraintName constraintMiddle |

create TV constraint constraintName constraintMiddle

[validity] [versioningScope])

constraintMiddle ::= when {verifyingPoints}

if exists (TVQLQuery)

then (rollback | alert | (DUStatement {,DUStatement}))

[follows {constraintName {,constraintName}}]

[precedes {constraintName {,constraintName}}]

validity ::= validity timeInterval

versioningScope ::= versioning scope allVersions | {versionState {,versionState}})

Các ràng buộc ñược xác ñịnh dựa trên câu truy vấn TVQL Câu truy vấn này nằm trong

mệnh ñề if exists có nhiệm vụ tìm kiếm các dữ liệu vi phạm ràng buộc Sau ñó thông qua mệnh ñề then, một trong các tác vụ sau có thể ñược thực thi: quay lại trước giao

dịch gây ra vi phạm (rollback), thực thi một danh sách thao tác dữ liệu ñể thiết lập lại tính toàn vẹn cho cơ sở dữ liệu (DUStatement) hay chỉ cảnh báo cho nhà quản trị cơ sở

dữ liệu biết là có một vi phạm ñã xảy ra (alert)

Từ khóa create constraint dùng ñể ñặc tả các ràng buộc thông thường Từ khóa create

TV constraint dùng ñể ñặc tả các ràng buộc ña phiên bản hướng thời gian Dạng ràng

buộc này có nhiều phiên bản và lịch sử cập nhật nó cũng ñược lưu trữ lại

Thời ñiểm kiểm tra ràng buộc ñược xác ñịnh trong mệnh ñề when, dựa trên các tác vụ

thao tác dữ liệu hoặc các sự kiện và ñược biểu diễn bằng biểu thức logic thời gian Thứ tự kiểm tra các ràng buộc trước và sau một ràng buộc ñược xác ñịnh tương ứng

trong hai mệnh ñề tùy chọn follows và precedes

Thời gian hợp lệ của ràng buộc ñược xác ñịnh trong mệnh ñề validity

Các phiên bản của ràng buộc cần xem xét ñược xác ñịnh trong mệnh ñề

versioningScope thông qua sự hạn chế các phiên bản của ñối tượng

Trang 40

Nhận xét mô hình TVM

Về mô hình: bổ sung yếu tố thời gian vào mô hình ña phiên bản, cho phép quản lý các phiên bản khác nhau của ñối tượng cũng như sự thay ñổi các thuộc tính của mỗi phiên bản theo thời gian Ưu ñiểm của mô hình là có khả năng quản lý vấn ñề thời gian và ña phiên bản, quản lý ñược các ñối tượng ña phiên bản cũng như ñối tượng thông thường

Về ngôn ngữ truy vấn và thao tác trên dữ liệu: có nhiều ñiểm tương ñồng với SQL và che giấu ñược chi tiết hiện thực bên dưới, thân thiện với người dùng

Về vấn ñề hiện thực: Mô hình và các ngôn ngữ ñược hiện thực trên DBMS DB2

Nhận xét chung

Mô hình TIGUKAT theo tổng kết từ [2] là mô hình hướng ñối tượng giải quyết vấn ñề thời gian có nhiều ưu ñiểm hơn so với các mô hình khác nhờ bản chất hàm và hệ thống kiểu thời gian cũng như tác vụ phong phú có sẵn Tuy nhiên, mô hình này chưa giải quyết ñược vấn ñề ña phiên bản

Mô hình EXTRA-V là mô hình hướng ñối tượng ñáp ứng ñược việc quản lý vấn ñề ña phiên bản, cho phép người dùng ñịnh nghĩa các chiều trong không gian lưu trữ phiên bản, nhờ ñó bổ sung thêm ngữ nghĩa cho các phiên bản và giúp người dùng truy xuất thông tin liên quan ñến các phiên bản dễ dàng hơn Tuy nhiên, mô hình này chưa giải quyết ñược vấn ñề thời gian

Mô hình cơ sở dữ liệu ña phiên bản của Doucet cho phép quản lý hiệu quả các cơ sở dữ liệu ña phiên bản, ñặc biệt quan tâm ñến việc ñảm bảo tính nhất quán trong cơ sở dữ liệu Tuy nhiên, vì phải xác ñịnh phiên bản cụ thể của cơ sở dữ liệu khi thực hiện thao tác trên các phiên bản của ñối tượng nên người dùng sẽ gặp khó khăn khi phải thêm, cập nhật hay xóa dữ liệu Ngoài ra, mô hình cũng ñề xuất phương pháp kiểm tra ràng

Ngày đăng: 08/03/2021, 23:43

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w