Tải bản đầy đủ (.pdf) (126 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (932.91 KB, 126 trang )

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

i


LỜI CẢM ƠN
Trước tiên, tơi xin kính gửi lịng biết ơn sâu sắc nhất ñến Thầy PGS.TS Dương Tuấn
Anh ñã tận tình hướng dẫn tơi trong suốt thời gian thực hiện luận án.
Tôi xin chân thành cảm ơn các Thầy Cơ Khoa Khoa học và Kỹ thuật máy tính đã
truyền ñạt cho tôi những kiến thức khoa học quý báu trong suốt khóa học.
Cảm ơn các bạn và các anh chị học viên cao học Khoa học máy tính khóa 2006, các
anh chị đồng nghiệp Khoa Cơng Nghệ Thơng Tin trường ðại học Tơn ðức Thắng đã
động viên, giúp đỡ tôi trong thời gian thực hiện luận văn.
Con xin cảm ơn Ba Mẹ và gia đình đã ni nấng và dạy dỗ cho con có được ngày hơm
nay.

ii


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.

iii


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.
.

iv


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 tồ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
v


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

vi


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

vii


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 q 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 đó. Ngồ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ư
1



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 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
2



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 tồn vẹn thời gian vốn có của mơ hình trong q
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ự
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.
3


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.

4


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 qt 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…
5


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ừ q 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ừ q
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)
6



• 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 tố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 tốn học với các phân số, giữa hai ñiểm thời gian bất kỳ ln 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 tố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:
Name

Position

VStartDate

VStopDate

Scott


A

19-05-2000

11-03-2001

Scott

C

12-03-2001

now

7


Thơng tin đúng là Scott được thăng chức từ vị trí A lên vị trí B từ ngày 12-032001. Khi sai sót được phát hiện thì cơ sở dữ liệu sẽ ñược cập nhật như sau:
Name

Position

VStartDate

VStopDate

Scott

A


19-05-2000

11-03-2001

Scott

B

12-03-2001

now

Như vậy, cơ sở dữ liệu khơng cịn lưu lại thơng tin về việc trong một khoảng
thời gian nhất ñịnh, ứng dụng ñã nhầm tưởng vị trí của nhân viên Scott là C.
• Cơ sở dữ liệu thời gian giao tác (transaction time database): Cơ sở dữ liệu thời
gian giao tác ñược dùng ñể lưu trữ lịch sử thay ñổi của các dữ kiện trong cơ sở
dữ liệu. Không thể lưu trữ các trạng thái trong tương lai của cơ sở dữ liệu vì
phải ghi nhận thời gian xảy ra giao dịch (transaction) mà các giao dịch tương lai
thì chưa xảy ra. Yếu tố thời gian hồn tồn trong suốt với người dùng vì nhãn
thời gian ñược quản lý bởi hệ thống. Khi một lệnh cập nhật dữ liệu được thực
thi thì hệ thống sẽ ghi nhận một trạng thái cơ sở dữ liệu mới theo thời gian xảy
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:
Name

Position

TStartDate


TStopDate

Scott

A

19-05-2000

12-03-2001

Scott

C

12-03-2001

now

8


Thơng tin đúng là Scott được thăng chức từ vị trí A lên vị trí B từ ngày 12-032001. 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

TStartDate


TStopDate

Scott

A

19-05-2000

12-03-2001

Scott

C

12-03-2001

24-09-2001

Scott

B

24-09-2001

now

Với cơ sở dữ liệu này, tất cả các thay ñổi kể cả các sai sót về dữ liệu đều được
lưu trữ lại theo thời gian giao tác.
• Cơ sở dữ liệu song thời gian (bitemporal database): ðối với cơ sở dữ liệu thời
gian hợp lệ, sau khi cập nhật thì trạng thái trước đó của cơ sở dữ liệu khơng tồn

tại nữa. Trạng thái của cơ sở dữ liệu chỉ có thể ñược giữ lại khi dữ kiện ñược lưu
trữ kèm theo thời gian giao tác của nó. Tuy nhiên, nếu chỉ lưu trữ thời gian giao
tác thì hệ thống chỉ cung cấp được thơng tin về lịch sử thay đổi của dữ kiện
trong cơ sở dữ liệu mà khơng có thơng tin về lịch sử thay ñổi của dữ kiện trong
thế giới thực. Cơ sở dữ liệu song thời gian ñược ñề xuất ñể giải quyết vấn ñề
trên. ðó là sự kết hợp giữa cơ sở dữ liệu thời gian hợp lệ và cơ sở dữ liệu thời
gian giao tác. Cơ sở dữ liệu song thời gian ñược dùng ñể lưu trữ lịch sử thay ñổi
của các dữ kiện kèm theo thời gian hợp lệ và thời gian giao tác. Cơ sở dữ liệu
song thời gian không thể lưu trữ các trạng thái trong tương lai của cơ sở dữ liệu
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 hồn tồ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
9


ñượ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

Scott

C


VStartDate VStopDate

TStartDate

TStopDate

12-03-2001

24-03-2001

now

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-032001. 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

Scott
Scott

TStopDate

C


12-03-2001

now

24-03-2001 24-09-2001

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

10


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]
Các thuật ngữ
Phiên bản: là sự mơ tả đối tượng tại một thời ñiểm hay theo một quan ñiểm nhất
ñịnh thích hợp cho ứng dụng.
ðối tượng ña phiên bản (versioned object): là một ñối tượng có nhiều phiên bản.
ðối tượng ña phiên bản chứa thông tin về các phiên bản kết hợp với nó cũng như
các thuộc tính riêng của nó.
ðồ 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ứ ln được bảo tồ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).

11


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
12


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
13


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. Ngồ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.

14


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.

15


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])
16


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
17


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

18


×