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

GIẢI QUYẾT VẤN ĐỀ THÒI GIAN BẤT ĐỊNH TRONG CƠ SỞ DỮ DIỆU HƯỚNG THỜI GIAN ỨNG DỤNG VÀO TRONG CƠ SỞ DỮ LIỆU BỆNH VIỆN

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 (1.13 MB, 125 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
------------

Chuyên ngành :
Mã số ngành :

Công nghệ thông tin
01.0.2.10

TP. HỒ CHÍ MINH, Tháng 6 năm 2005
i


Trước tiên tôi xin chân thành gửi lời cảm ơn đến thầy cô trong khoa trong khoa
CNTT trường Đại học Bách Khoa TP.HCM cũng như phòng Đạo tạo sau đại học
trong thời gian qua đã giúp đỡ tôi hoàn thành khóa học thạc sĩ này. Đặc biệt tôi xin
chân thành gửi lời cảm ơn sâu sắc đến thầy Dương Tuấn Anh, người vừa truyền đạt
những kiến thức trên lớp đồng thời vừa là người hướng dẫn trực tiếp tôi hoàn thành
luận văn này. Nếu không có những tài liệu quý giá cũng như sự tận tình hướng dẫn
của thầy thì có lẽ luận văn sẽ không đạt được kết quả như ngày hôm nay.
Vì luận văn này được hoàn thành trong một thời gian hạn hẹp nên sẽ không
tránh khỏi thiếu sót, tôi rất mong sự góp ý của thầy cô và các bạn.
Học viên
Lê Văn Quốc Anh

ii


A temporal database provides the ability to keep track of the values of attributes
as they evolve over time as well as to store the history of updates made to the
database. With the term “valid-time indeterminacy” we mean that an event stored in


a database did in fact occur, but we don’t know exactly when the event occurred.
The temporal databases that support storing and retrieving this kind of events are
called temporal databases with indeterminacy. In order to deal with valid-time
indeterminacy, this thesis has to solve three tasks. Firstly, it extends the data model
to support indeterminacy. Secondly, it develops the temporal query language that
supports user’s indeterminate query. This temporal query language is called
SubTSQL. Finally, the layer is built to process temporal queries in SubTSQL and
execute them on Oracle DBMS. This layer has to convert SubTSQL statements into
equivalent SQL-92 commands.

iii


Cơ sở dữ liệu hướng thời gian hỗ trợ khả năng lưu vết sự thay đổi giá trị của các
thuộc tính tương ứng với sự biến động của những giá trị này theo thời gian, cũng
như lưu vết những lần cập nhật dữ liệu trong cơ sở dữ liệu. Sự bất định về thời gian
được hiểu là một sự kiện được lưu trữ trong cơ sở dữ liệu được biết là đã xảy ra,
nhưng cụ thể xảy ra lúc nào thì ta không biết chắc chắn. Cơ sở dữ liệu hướng thời
gian hỗ trợ việc xử lý trên dữ liệu dạng này được gọi là cơ sở dữ liệu hướng thời
gian hỗ trợ thời gian bất định. Để có thể giải quyết sự bất định về thời gian trong cơ
sở dữ liệu hướng thời gian, luận văn chia làm ba công việc chính. Thứ nhất, ta mở
rộng mô hình cơ sở dữ liệu để hỗ trợ yếu tố bất định về thời gian. Thứ hai, ta xây
dựng cú pháp ngôn ngữ truy vấn hỗ trợ việc truy vấn trên dữ liệu có yếu tố thời gian
bất định. Ngôn ngữ này có tên là SubTSQL. Cuối cùng, ta thiết kế layer hỗ trợ việc
xử lý câu lệnh ở ngôn ngữ truy vấn SubTSQL và thực thi trên Oracle DBMS. Layer
này phải thực hiện việc chuyển đổi các câu lệnh SubTSQL thành các câu SQL-92
tương đương.

iv



DANH MỤC HÌNH.................................................................................. viii
DANH MỤC BẢNG ...................................................................................ix
CHƯƠNG 1: MỞ ĐẦU................................................................................1
 



 







 





 

 






























































































































































































































































































































































































































































































































 


























































































 















 

































































































































































































































































































































































































































CHƯƠNG 2: MỘT SỐ KHÁI NIỆM CƠ BẢN............................................5












 
































































































































































































































































































































































































2.3.1.
2.3.2.
2.3.3.
2.3.4.























































































































































Khái niệm thời điểm và khoảng ..................................................................... 6
Các phép so sánh trên các khoảng:................................................................. 7
Các phép toán ghép và tách khoảng ............................................................... 9
Đại số quan hệ thời gian............................................................................... 10











2.4.1.
2.4.2.
2.4.3.
2.4.4.















































































































 

 



Các khái niệm............................................................................................... 11
Mô hình đường thời gian.............................................................................. 12
Thời điểm bất định ....................................................................................... 12
Đoạn thời gian bất định và khoảng thời gian bất định (Indeterminate period
and indeterminate interval)........................................................................... 13
Mở rộng cú pháp cho ngôn ngữ truy vấn SQL............................................. 13

2.4.5.

CHƯƠNG 3: CÁC NGHIÊN CỨU CÓ LIÊN QUAN................................15




 































































































































































3.1.1.
3.1.2.

3.1.4.











































































































































































































































































































 





































3.2.1.
3.2.2.



Các khái niệm liên quan đến vấn đề thời gian bất định ............................... 15
Xây dựng mô hình cơ sở dữ liệu hướng thời gian hỗ trợ thời gian bất định
bằng cách mở rộng mô hình cơ sở dữ liệu truyền thống.............................. 15
Mở rộng cú pháp câu lệnh SQL cho phép thao tác trên dữ liệu có yếu tố
thời gian trong cơ sở dữ liệu hướng thời gian.............................................. 16
Ý tưởng hiện thực......................................................................................... 20

3.1.3.









€



























































































































































































































































€





















































 



Mô hình dữ liệu ............................................................................................ 21
Câu truy vấn thông tin không có yếu tố thời gian ........................................ 22

v


3.2.3.

3.2.4.
3.2.5.
3.2.6.
3.2.7.






Câu truy vấn thông tin có yếu tố thời gian ................................................... 23
Rút trích Valid-time ..................................................................................... 23
Chiếu lên Valid-time .................................................................................... 24
Các hàm tổng kết.......................................................................................... 24
Hỗ trợ sự bất định của Valid-time................................................................ 25


















































































 









































































































































3.3.1.
3.3.2.
3.3.3.















































































































Mô hình dữ liệu cho ứng dụng cơ sở dữ liệu bệnh viện............................... 26
Định nghĩa tiểu ngôn ngữ SubTSQL............................................................ 27
Xây dựng một Layer .................................................................................... 27

CHƯƠNG 4: GIẢI QUYẾT VẤN ĐỀ THỜI GIAN BẤT ĐỊNH ...............30




 























































































































































































































































 






















































































































































































































































































































































 







Hệ số tin cậy (Confidence factor): δ ............................................................ 31
Mức độ hỗ trợ về thứ tự (Ordering Plausibility): γ ...................................... 31


4.2.1.
4.2.2.






















































































































































CHƯƠNG 5: NGÔN NGỮ SUBTSQL MỞ RỘNG VÀ HIỆN THỰC ......34





 











5.1.1.
5.1.2.
5.1.3.
5.1.4.
5.1.5.
5.1.6.
5.1.7.





































































































































































































Câu lệnh tạo bảng: CREATE ....................................................................... 34
Câu lệnh thêm một hàng vào bảng: INSERT............................................... 35
Câu lệnh truy vấn thông tin: SELECT ......................................................... 37
Câu lệnh xóa thông tin: DELETE ................................................................ 39
Câu lệnh cập nhật thông tin: UPDATE........................................................ 41
Câu lệnh cập nhật giá trị mặc định của hệ số tin cậy δ ................................ 43
Câu lệnh cập nhật giá trị mặc định của mức độ hỗ trợ γ .............................. 43













5.2.1.
5.2.2.
5.2.3.
5.2.4.




























































































































































































































Hiện thực hóa mức độ hỗ trợ γ - phép toán Before...................................... 43

Hiện thực hóa tham số độ tin cậy δ – phép toán Shrink............................... 46
Hiện thực hóa hàm ghép FOLD trên khoảng thời gian................................ 49
Xây dựng layer ............................................................................................. 50

CHƯƠNG 6: CÀI ĐẶT ỨNG DỤNG - CSDL BỆNH VIỆN .....................60








 






















































































6.2.1.
6.2.2.
6.2.3.



















































































































































































































































Câu lệnh CREATE TABLE, INSERT, DELETE, UPDATE ...................... 62
Câu lệnh SELECT........................................................................................ 64
Sử dụng phép toán FOLD ............................................................................ 72

CHƯƠNG 7: KẾT LUẬN ..........................................................................76


 























































































































































































































vi






















































































































































































































 





THƯ MỤC THAM KHẢO.........................................................................78
PHỤ LỤC A:

Các hàm so sánh thời gian nhúng vào DBMS ................A-1

PHỤ LỤC B:

Phân tích từ vựng – SubTSQL.lex..................................B-1

PHỤ LỤC C:

Phân tích cú pháp – SubTSQL.Y ...................................C-1

BẢNG CÁC THUẬT NGỮ VIỆT-ANH ..................................................D-1


vii


DANH MỤC HÌNH
Hình 1:

Mối quan hệ giữa các thời điểm..............................................................18

Hình 2:

Kiến trúc Layer........................................................................................28

Hình 3:

Ví dụ hàm khối xác suất với sự phân bố “xác suất sớm”........................31

Hình 4:

Lưu đồ thể hiện quá trình xử lý câu lệnh SubTSQL ...............................33

Hình 5:

shrink_l(δ,(|1~20|,Uniform)) ...................................................................47

Hình 6:

Hàm khối xác suất Uniform ....................................................................47

viii



DANH MỤC BẢNG
Bảng 1:

Các phép so sánh trên các khoảng của Allen ............................................8

Bảng 2:

Ý nghĩa các tân từ so sánh trên các khoảng của Allen..............................8

Bảng 3:

Bảng các giá trị Pr[ei ≤ ej] ......................................................................18

Bảng 4:

Thay thế thời điểm dựa trên hệ số tin cậy ...............................................20

Bảng 5:

Bảng quan hệ Stocks hỗ trợ valid-time ...................................................22

Bảng 6:

Bảng own hỗ trợ vừa valid-time vừa transaction-time............................22

Bảng 7:

Bảng Patient lưu trữ thông tin bệnh nhân và bệnh lý..............................26


Bảng 8:
Mô tả các phép so sánh trên các khoảng theo phép so sánh before,
before_e, after, after_e, equal giữa các thời điểm ........................................................46
Bảng 9:

Các hàm so sánh giữa các thời điểm xác định ........................................51

Bảng 10:

Các hàm so sánh giữa các thời điểm bất định .........................................51

Bảng 11:

Các hàm so sánh giữa các khoảng xác định ...........................................52

Bảng 12:

Các hàm so sánh giữa các khoảng bất định............................................53

Bảng 13:

Các hàm co các thời điểm bất định .........................................................53

ix


CHƯƠNG 1: MỞ ĐẦU
Chương này sẽ dẫn nhập lĩnh vực cơ sở dữ liệu hướng thời gian cũng như đưa ra sự cần
thiết phải đưa vào yếu tố thời gian bất định. Trong phần này những công trình liên quan
cũng sẽ được điểm qua sơ lược kèm theo những mặt hạn chế của nó. Từ đó đặt ra những

vấn đề sẽ được giải quyết trong luận văn này.

1.1. Giới thiệu
Cơ sở dữ liệu hướng thời gian đã được nghiên cứu từ khá lâu và cũng có nhiều kết quả
thành công. Nhiều mô hình dữ liệu thời gian và ngôn ngữ truy vấn thời gian được đưa ra và
mỗi mô hình được áp dụng vào một ứng dụng cụ thể.
Trong thực tế, nhiều lĩnh vực khác nhau như y học, kinh doanh, khoa học… yêu cầu
lưu trữ dữ liệu theo thời gian. Một đối tượng thay đổi theo thời gian, thì người ta không chỉ
quan tâm đến trạng thái hiện tại của nó mà còn quan tâm đến các trạng thái ở các thời điểm
quá khứ nữa. Dữ liệu chứa những thông tin này được gọi là dữ liệu có tính chất lịch sử.
Chẳng hạn trong kinh doanh, giá của một sản phẩm nào đó có thể thay đổi, những giá cả
này sẽ được lưu trữ cùng với thời điểm thay đổi giá hay khoảng thời gian một giá nào đó
có hiệu lực.
Với cơ sở dữ liệu hướng thời gian, người ta có thể thực hiện các truy vấn với các điều
kiện chọn liên quan đến thời gian như: chỉ xét các sự kiện trong một khoảng thời gian nào
đó, hay trước một thời điểm, hay sau một thời điểm…Các phép toán so sánh liên quan đến
tính tương quan giữa các thuộc tính thời gian cũng được hỗ trợ.
Một số trường hợp, thực tế điều này rất hay xảy ra, thời điểm xảy ra của các sự kiện
không được xác định rõ ràng mà chỉ được nêu một cách chung chung. Ví dụ: một bệnh
nhân khai báo tuổi của anh ta là 30, thì cụ thể anh ta sinh vào ngày tháng năm nào là không
xác định; hay lần điều trị gần nhất của một bệnh nhân là “khoảng giữa tháng 7 năm 2003”,
thì có thể đoán khả năng bệnh nhân đó được điều trị một trong các ngày 12,13,14,15,16,17
của tháng 7, còn cụ thể ngày nào thì không xác định. Đó là một số ví dụ về vấn đề thời
gian bất định. Các hệ thống hỗ trợ ra quyết định cũng rất cần làm việc trên cơ sở dữ liệu
hướng thời gian với thời gian bất định.
Việc truy vấn trên cơ sở dữ liệu hướng thời gian với thời gian bất định phải được dựa
trên độ tin cậy được cung cấp, với các độ tin cậy khác nhau thì dữ liệu trả về của câu truy
vấn cũng sẽ có thể khác nhau.

1.2. Sự cần thiết của việc đưa vào yếu tố bất định

Như đã trình bày ở phần trên, rất nhiều những ứng dụng cơ sở dữ liệu ngày nay cần xử
lý dữ liệu có liên quan đến thời gian bất định. Yếu tố thời gian của thông tin được nhập vào
cơ sở dữ liệu không phải luôn luôn tường minh, cụ thể, chính xác. Nguyên nhân của sự
không chính xác này sẽ được trình bày trong chương 2 của luận văn. Tuy nhiên những
thông tin này không phải không hữu dụng trong việc truy vấn. Câu truy vấn có đưa vào
yếu tố mức độ đáng tin hay độ tin cậy từ người sử dụng cũng phải đưa ra các kết quả hợp

1


lý. Tùy theo mục đích của người sử dụng mà các hệ số này được đưa vào câu truy vấn để
tác động lên kết quả trả về như thế nào.
Ví dụ trong ứng dụng cơ sở dữ liệu bệnh viện, bác sĩ muốn chắn chắn trong khoảng
thời gian t1 đến t2, một bệnh nhân điều trị không có bất kỳ dấu hiệu nào của bệnh viêm
phổi, thì mới thực hiện điều trị với loại thuốc X nào đó. Khi đó, câu truy vấn với hệ số tin
cậy phải trả về tất cả các khả năng dù là nhỏ nhất của bệnh nhân đó đối với bệnh viêm
phổi.
Như vậy cần có cơ chế cho phép lưu trữ những thông tin có thời gian xảy ra là bất định
và cơ chế cho phép truy vấn, xử lý trên dữ liệu bất định theo thời gian này.

1.3. Những hạn chế của các công trình liên quan
Trong công trình “Hiện thực tiểu ngôn ngữ truy vấn cho cơ sở dữ liệu hướng thời gian
– Ứng dụng vào cơ sở dữ liệu bệnh viện” – NCS Phạm Văn Chung – Khoa Công Nghệ
Thông Tin, Đại học Bách Khoa TP.HCM[4], tác giả đã xây dựng mô hình cơ sở dữ liệu
hướng thời gian cho ứng dụng cơ sở dữ liệu bệnh viện bằng cách mở rộng cơ sở dữ liệu
quan hệ truyền thống đưa thêm yếu tố thời gian. Tuy nhiên mô hình này chỉ xử lý trên dữ
liệu với thời gian xác định. Yếu tố bất định chưa được đề cập đến.
Công trình này cũng xây dựng một tiểu ngôn ngữ truy vấn SubTSQL dựa trên ngôn
ngữ SQL-92 chuẩn, được mở rông thêm cú pháp cho phép thực hiện các câu truy vấn có
yếu tố thời gian một cách dễ dàng và hiệu quả. Cũng như mô hình cơ sở dữ liệu tiểu ngôn

ngữ này cũng chỉ xử lý trên dữ liệu có yếu tố thời gian xác định.
Về phần hiện thực, tác giả Phạm Văn Chung xây dựng một bộ phân tích cú pháp và để
phân tích cú pháp câu truy vấn SubTSQL và một bộ sinh mã để chuyển câu truy vấn
SubTSQL đã được phân tích đúng cú pháp thành câu SQL-92 chuẩn. Hai thành phần này
được chứa trong một Layer, đây là lớp trung gian giữa DBMS Oracle và ứng dụng. Câu
lệnh SubTSQL trước khi đến được DBMS phải thông qua Layer để thực hiện quá trình tiền
xử lý, khi qua Layer thì nó trở thành câu lệnh SQL-92 theo chuẩn để DBMS có thể hiểu và
thực hiện. Việc chuyển từ câu truy vấn có yếu tố thời gian sang câu truy vấn chuẩn này sẽ
gặp hạn chế nếu mở rộng thêm vào yếu tố bất định vì các thông tin hỗ trợ câu truy vấn có
yếu tố bất định về thời gian sẽ phải xử lý trực tiếp trên dữ liệu trước khi truy vấn và kết
quả trước khi trả về.
Về công trình của hai tác giả Dyreson và Snodgrass[7], các tác giả đã tập trung giải
quyết các vấn đề liên quan đến mở rộng cơ sở dữ liệu hướng thời gian thêm vào yếu tố bất
định. Công trình đã xây dựng một nền móng lý thuyết về vấn đề thời gian bất định trong cơ
sở dữ liệu hướng thời gian rất tốt. Các cú pháp và các dạng ngữ nghĩa mở rộng của câu
lệnh SQL được các tác giả định nghĩa để có thể hỗ trợ dữ liệu có valid-time bất định một
cách hiệu quả. Tuy nhiên công trình cũng chỉ đề cập đến hai câu lệnh SELECT và
CREATE TABLE, những câu lệnh khác như INSERT, DELETE, UPDATE chưa đề cập.
Như vậy công trình này cung cấp cho ta một nền tảng lý thuyết tốt để áp dụng trong ứng
dụng cụ thể là cơ sở dữ liệu bệnh viện.

2


1.4. Vấn đề mà luận văn sẽ giải quyết
Mục đích của luận văn này là nghiên cứu về vấn đề thời gian bất định trong cơ sở dữ
liệu hướng thời gian, mở rộng mô hình cơ sở dữ liệu quan hệ truyền thống để có thể xử lý
được dữ liệu với thời gian bất định, đồng thời mở rộng cú pháp của SQL-92 cho phép làm
việc dễ dàng trên dữ liệu có thuộc tính là thời gian bất định.
Đề tài cũng kế thừa thành quả của đề tài khác đã nghiên cứu về cơ sở dữ liệu hướng

thời gian với thời gian xác định của nghiên cứu sinh Phạm Văn Chung [4], mở rộng cú
pháp của SubTSQL, hiện chỉ cho phép thực hiện truy vấn với thời gian xác định, để có thể
hỗ trợ thực hiện các câu truy vấn với dữ liệu thời gian bất định.
Cụ thể, luận văn sẽ tập trung giải quyết những công việc như sau:
-

Xây dựng mô hình cơ sở dữ liệu hướng thời gian có hỗ trợ yếu tố bất định về
thời gian, ứng dụng trong ứng dụng cụ thể là cơ sở dữ liệu theo dõi điều trị
bệnh nhân của bệnh viện.

-

Xây dựng cú pháp mở rộng cho các câu lệnh SQL hỗ trợ yếu tố thời gian bất
định dựa trên ngôn ngữ SubTSQL.

-

Hiện thực một Layer trung gian xử lý câu lệnh SQL mở rộng tương tác với
DBMS, cụ thể là ORACLE.

1.5. Cấu trúc của luận văn
Nội dung của luận văn phân bố cho các chương từ chương thứ 2 trở đi như sau:
 





















































Phần này sẽ trình bày các khái niệm cơ bản của lĩnh vực cơ sở dữ liệu hướng
thời gian, các phép toán so sánh trên khoảng thời gian, đại số quan hệ thời gian,
các vấn đề về thời gian bất định, …
 
















 












































Trong phần này ta sẽ điểm qua ba công trình liên quan mật thiết đến đề tài, bao
gồm:
Công trình “Hỗ trợ sự bất định dữ liệu thời gian Valid-time” của
Curtis E.Dyreson và Richard T.Snodgrass
Bài “Giới thiệu ngôn ngữ Tquel” của tác giả Richard
T.Snodgrass
Công trình “Hiện thực tiểu ngôn ngữ truy vấn cho cơ sở dữ liệu
hướng thời gian - Ứng dụng vào CSDL bệnh viện” của tác giả
Phạm Văn Chung.
Chương này cũng nêu những thành quả sẽ được kế thừa trong luận văn và
những điểm còn hạn chế cần được khắc phục của những công trình này.
 












































































3


Phần này sẽ đề cập đến các bước tiếp cận xử lý thời gian bất định trong cơ sở
dữ liệu hướng thời gian của luận văn. Cụ thể bao gồm ba công việc:
Xây dựng mô hình cơ sở dữ liệu hướng thời gian hỗ trợ thời gian bất
định
Mở rộng tiểu ngôn ngữ truy vấn cho phép thực hiện truy vấn trên dữ
liệu với thời gian bất định
Thiết kế layer xử lý tiểu ngôn ngữ vừa xây dựng
 












 

































































Phần này trình bày việc xây dựng một tiểu ngôn ngữ truy vấn trên cơ sở dữ liệu
hướng thời gian có sự tham gia của yếu tố bất định về thời gian. Ngôn ngữ này
được đặt tên là SubTSQL.
Phần này cũng trình bày chi tiết việc hiện thực và cài đặt ngữ nghĩa các câu
lệnh SubTSQL, chuyển các câu lệnh SubTSQL về cú pháp câu lệnh SQL-92.
Nội dung cuối cùng là phần thiết kế Layer để có thể thực thi các câu lệnh
SubTSQL trên DBMS Oracle.
 
















 



























 










































































Trong chương này ta cài đặt ứng dụng để kiểm nghiệm mô hình cơ sở dữ liệu
hướng thời gian có hỗ trợ yếu tố thời gian bất định. Ứng dụng được chọn là ứng
dụng cơ sở dữ liệu theo dõi điều trị bệnh nhân ở bệnh viện.
 






























Chương này tổng kết lại những gì đã thực hiện được của luận văn và đề xuất
các phương hướng phát triển của đề tài này.

4


CHƯƠNG 2: MỘT SỐ KHÁI NIỆM CƠ BẢN
Phần này sẽ trình bày một số khái niệm cơ bản về cơ sở dữ liệu hướng thời gian và vấn
đề bất định trong cơ sở dữ liệu hướng thời gian.

2.1. Mô hình cơ sở dữ liệu hướng thời gian
Cơ sở dữ liệu hướng thời gian (temporal database) được hiểu một cách nôm na là cơ
sở dữ liệu có khả năng chứa dữ liệu có tính chất lịch sử thay vì dữ liệu hiện tại. Lĩnh vực
này đã được nhiều nhà nghiên cứu từ những năm 1980, nhiều mô hình đã được đưa ra và
mỗi mô hình tương ứng với một ứng dụng cụ thể.
Trong thực tế ta thường gặp những bài toán yêu cầu lưu trữ thông tin nhưng không chỉ

là thông tin hiện tại mà còn là thông tin của những thời điểm quá khứ. Ví dụ công việc theo
dõi sửa chữa, thay thế các thiết bị máy móc trên tàu thủy, người ta không chỉ quan tâm lần
sửa chữa, thay thế gần nhất mà còn quan tâm đến những lần sửa chữa trước đó nữa. Những
câu hỏi như: trong năm 2004, một chi tiết thiết bị được sửa bao nhiêu lần với chi phí mỗi
lần sửa là bao nhiêu? Giả sử có một chi tiết thiết bị cần được sửa chữa được trình lên
phòng kỹ thuật vật tư duyệt, phòng KTVT cũng rất cần thông tin như chi tiết này đã sửa
lần nào chưa, nếu đã sửa thì có bị lại lỗi đã sửa không…
Trong ứng dụng cơ sở dữ liệu bệnh viện, để theo dõi việc điều trị của các bệnh nhân,
người ta lưu trữ tất cả các lần điều trị của các bệnh nhân đó cũng như các lần chuyển nơi
điều trị từ khoa này sang khoa khác, thời gian chuyển… Một số câu truy vấn hay gặp như:
những bệnh nào được mổ trong khoảng thời gian từ 01/03/2003 đến 29/03/2003; những
loại thuốc nào đã điều trị cho bệnh nhân mã số 165; những bệnh nhân nào đã được mổ
trước khi xạ trị…
Ví dụ khác về ứng dụng cơ sở dữ liệu quả lý giá sản phẩm: một sản phẩm X thì có giá
thay đổi theo thời gian. Cần có một cơ chế để cho phép cập nhật giá mới mà không ghi đè
lên giá cũ. Với mô hình cơ sở dữ liệu truyền thống, người ta có thể giải quyết vấn đề này
bằng cách thêm một bảng mới, tạm gọi là His_Price, để chứa thông tin các giá sản phẩm
theo thời gian. Khi cần truy vấn: giá sản phẩm X ở thời điểm t là bao nhiêu hay trong
khoảng thời gian từ t1 đến t2 thì giá của sản phẩm X biến động như thế nào thì chỉ cần truy
xuất quan hệ His_Price.
Thực tế không chỉ có thuộc tính giá của sản phẩm là thay đổi theo thời gian mà các
thuộc tính khác cũng có thể thay đổi theo thời gian, ví dụ như: trọng lượng, kích thước,
mẫu mã … Lúc đó với cơ sở dữ liệu truyền thống để quản lý được những sự thay đổi này
thì sẽ rất phức tạp, và những bảng tương tự như His_Price sẽ được sinh ra một cách tùy
tiện, rời rạc. Việc truy xuất thông tin theo thời gian sẽ là vấn đề khó khăn.
Như vậy cần thiết kế một mô hình cơ sở dữ liệu có hiệu quả hơn trong việc quản lý
những dữ liệu có giá trị thay đổi theo thời gian.
Cơ sở dữ liệu hướng thời gian mở rộng cơ sở dữ liệu truyền thống bằng cách thêm yếu
tố thời gian.
5



2.2. Một số khái niệm, thuật ngữ trong cơ sở dữ liệu hướng thời gian
Mô hình cơ sở dữ liệu hướng thời gian đã có một số công trình đề cập đến trong nhiều
năm qua. Những mô hình này cũng được xây dựng bằng cách mở rộng mô hình cơ sở dữ
liệu truyền thống, đưa thêm yếu tố thời gian. Ta có thể nói rằng sự kết hợp giữa thời gian
và sự kiện là nhân của mô hình cơ sở dữ liệu hướng thời gian. Yếu tố thời gian được thêm
vào đó là Valid-time và Transaction-time([2], [10], [11],[12]).
Valid-time: là thời gian biểu thị một sự kiện được coi là đúng trong thế giới
thực. Ví dụ: bệnh nhân có mã số P003 mắc bệnh trong khoảng thời gian từ t1
đến t2 là đúng.
Transaction-time: Ngoài việc dữ liệu phản ánh đúng với lịch sử của thế giới
thực, nó kèm theo một dữ liệu lịch sử khác. Loại dữ liệu này thường không ghi
ở cùng một thời gian thực với Valid-time, do một lý do nào đó chẳng hạn chờ
thông tin xử lý xong, do vậy có một khoảng thời gian chênh lệch giữa thời gian
mà sự kiện là đúng trong thế giới thực và thời gian mà sự kiện được ghi vào cơ
sở dữ liệu. Loại thời gian này được gọi là transaction-time. Ví dụ: một bệnh
nhân chuyển nơi điều trị từ thời điểm t1, nhưng do thủ tục, dữ liệu thực sự lưu
vào thời điểm t2.
Như vậy có thể hiểu Valid-time và Transaction-time như sau:
Valid-time là thời gian (quá khứ, hiện tại hay tương lai) mà chúng ta tin một sự
kiện nào đó xảy ra là đúng vào thời điểm này. Transaction-time là thời gian
(quá khứ hay hiện tại) mà cơ sở dữ liệu được nói là có một sự kiện nào đó được
ta tin tưởng là đúng.
Valid-time có thể cập nhật được, nhưng transaction-time thì không. Điều này
nói lên sự tin tưởng của chúng ta về lịch sự có thể thay đổi, nhưng lịch sử thì
không.
Valid-time có thể là thời gian quá khứ, hiện tại hay tương lai, nhưng
transaction-time chỉ có thể là thời gian quá khứ hay hiện tại.


2.3. Các phép toán trên khoảng thời gian
Tiếp theo là các khái niệm về khoảng thời gian và các phép toán trên
khoảng([1],[5],[6]).

2.3.1. Khái niệm thời điểm và khoảng
Thời điểm(instant) là một điểm thời gian xác định trên trục thời gian. Khoảng thời gian
được xác định bởi hai thời điểm, ký hiệu [t1,t2], trong đó t1 là thời điểm bắt đầu, t2 là thời
điểm kết thúc.
t1,t2 thuộc một tập gồm các giá trị liên tiếp nhau, có khoảng cách mỗi bước nhảy bằng
nhau:
t1,t2 ∈ {i0,i1,i2,…} (ii là các thời điểm)
ii+1 – ii = const

6


Giá trị của t1 luôn là giá trị cụ thể (thời điểm bắt đầu xảy ra của một sự kiện nào đó
luôn xác định), trong khi đó t2 ngoài các giá trị trong tập các thời điểm đã nêu thì còn có
thể nhận một giá trị đặc biệt, giá trị now, cho biết sự kiện đó vẫn còn đang tiếp diễn, chưa
kết thúc. Với mô hình này, thời gian được xử lý như là các đoạn đóng (khi t1 và t2 xác
định) và đoạn mở (khi t1 xác định và t2 là now)
Ví dụ: “Bệnh nhân có mã số P007 đang sử dụng thuốc có tên XY từ ngày 15/07/2003”
có nghĩa là bệnh nhân này đã đượng sử dụng thuốc XY từ ngày 15/07/2003 cho đến ngày
hiện tại. Trong trường hợp này, t1=15/07/2003, và t2=now. Khi bệnh nhân ngưng không
dùng thuốc XY nữa, thời điểm ngưng thuốc sẽ ghi vào t2 thay cho now.
Trong cơ sở dữ liệu truyền thống cũng có những giá trị thuộc tính mang giá trị khoảng
thời gian. Những mẩu tin có giá trị là khoảng thời gian thì luôn đúng khi nó tồn tại, một
thao tác cập nhật sẽ làm mất thông tin hiện có. Ngược lại, cơ sở dữ liệu hướng thời gian
không thực hiện việc cập nhật mà thay vào đó thực hiện việc chèn thông tin mới, mẫu tin
cũ được giữ lại để đảm bảo ngữ nghĩa lịch sử. Do đó cần phân biệt khái niệm khoảng thời

gian trong cơ sở dữ liệu truyền thống và trong cơ sở dữ liệu hướng thời gian.
Với mô hình như đã nêu thì khoảng thời gian được hỗ trợ là:
-

Khoảng đóng trái, mở phải [t1, now), trong đó t1 là thời điểm cụ thể.

-

Khoảng đóng trái đóng phải [t1,t2], trong đó t1, t2 là các thời điểm cụ thể.

2.3.2. Các phép so sánh trên các khoảng:
Allen [1] đưa ra mười ba tân từ để so sánh giữa hai khoảng thời gian như bảng sau đây.
Trong đó I1,I2 là các khoảng thời gian, begin(I1), end(I1) là các cận trái, cận phải của
khoảng I1, tương tự cho khoảng I2.
Các tân từ này như sau:
-

BEFORE, AFTER

-

DURING, CONTAINS

-

OVERLAPS, OVERLAPPED_BY

-

MEETS, MET_BY


-

START, STARTED_BY

-

FINISHES, FINISHED_BY

-

EQUIVALENT

Ý nghĩa của các phép so sánh này thể hiện ở Bảng 1:

7


 









1
2

3

I1
I1
I1

4

I1

5
6
7
8
9
10
11
12
13

I1
I1
I1
I1
I1
I1
I1
I1
I1


















































































I2
















I2
















































I2














I2













I2





I2








I2









I2









I2










I2







I2




















I2
I2
































end(I1) < begin(I2)
end(I2) < begin(I1)
(begin(I1) > begin(I2) ^ end(I1) ≤ end(I2)) v
(begin(I1) ≥ begin(I2) ^ end(I1) < end(I2))
(begin(I2) > begin(I1) ^ end(I2) ≤ end(I1)) v
(begin(I2) ≥ begin(I1) ^ end(I2) < end(I1))
begin(I1) < begin(I2) ^ end(I1) > begin(I2) ^ end(I1) < end(I2))
begin(I2) < begin(I1) ^ end(I2) > begin(I1) ^ end(I2) < end(I1))
end(I1) = begin(I2)
end(I2) = begin(I1)
begin(I1) = begin(I2) ^ end(I1) < end(I2)
begin(I1) = begin(I2) ^ end(I2) < end(I1)
begin(I1) > begin(I2) ^ end(I1) = end(I2)
begin(I2) > begin(I1) ^ end(I1) = end(I2)
begin(I1) = begin(I2) ^ end(I1) = end(I2)

Bảng 1: Các phép so sánh trên các khoảng của Allen
Để dễ hình dung các phép toán so sánh này, ta có thể xem ý nghĩa các phép toán so
sánh theo bảng 2.

Bảng 2: Ý nghĩa các tân từ so sánh trên các khoảng của Allen

8



2.3.3. Các phép toán ghép và tách khoảng
thực hiện trên hai hay nhiều khoảng, cho phép ghép chúng thành
các khoảng liên tục sao cho số khoảng tạo ra là ít nhất.



































 



















 










tách một khoảng thành nhiều khoảng theo bước nhảy của thời

gian.
Định nghĩa phép toán Fold[2]: Khi một quan hệ bậc n được thực hiện phép ghép trên
thuộc tính khoảng Ai , 1 ≤ i ≤ n , thì tất cả các bộ mà các tất cả các thành phần Aj (với mọi
j ≠ i) giống nhau và thành phần Ai có thể ghép được sẽ được thay thế bằng bộ duy nhất với
cùng thành phần Aj và thành phần thứ i được ghép bằng các thành phần thứ i của tất cả các
bộ ban đầu.
Ví dụ: cho quan hệ sau:
Name
John
John
Paul
John
Paul

Duration
[4,6]
[1,2]
[1,9]
[6,now)
[7,12]


Dosage
Wadaine
Wadaine
Wadaine
Wadaine
Wadaine

Sau khi thực hiện phép Fold trên cột Duration:
Name
John
John
Paul

Duration
[1,2]
[4,now]
[1,12]

Dosage
Wadaine
Wadaine
Wadaine

Sau khi thực hiện phép Unfold trên hàng (John,[4,6],Wadaine):
Name
John
John
John

Duration

[4,4]
[5,5]
[6,6]

Dosage
Wadaine
Wadaine
Wadaine

Mã giả của phép toán Fold như sau:










S:=R;











there exist distinct tuples t1 and t2 such that

9


(t1[Ai] MERGES t2[Ai]) and (t1[Aj]=t2[Aj] for all Aj≠Ai)





S:= (S-{t1,t2}) ∪
(t1[A1],…,t1[Ai-1], t1[Ai] ⊕ t2[Ai],t1[Ai+1],…,t1[An])}






;

trong đó, phép toán ⊕ định nghĩa như sau:
giả sử I1 ⊕ I2 = I3
thì:

begin(I3) = min{begin(I1), begin(I2)) và
end(I3) = max{end(I1), end(I2)}

2.3.4. Đại số quan hệ thời gian

Câu truy vấn thời gian được dựa trên cơ sở của đại số quan hệ thời gian, đại số quan hệ
thời gian là đại số quan hệ được mở rộng thêm vào yếu tố thời gian.
Giáo sư Richard T. Snodgrass và những người tham gia đã đưa ra một chuẩn (ISO) để
biểu thị đại số quan hệ thời gian[12]. Trong đó dùng ký hiệu <t||VT> biểu thị cho một hàng
trong bảng có ValidTime; VT- là cận bên trái, VT+ là cận bên phải của một khoảng thời
gian; AVT nói rằng trên A có yếu tố thời gian, A có thể là phép toán, thuộc tính hay quan
hệ.
• Phép Chọn:
σVTc(r)

=

{<t||VT> | <t||VT> ∈ r ∧ c(<t||VT>)}

=

{<t1||VT> | <t2||VT> ∈ r ∧ t1 = <f(t2)||VT>}

=

{<t||VT> | <t||VT> ∈ r1 ∨ <t||VT> ∈ r2}

• Phép Chiếu:
πfVT(r)
• Phép Hội:
r1 ∪VT r2
• Phép Kết:
r1

VT


r2 =
{<<t1,VT1>°<t2||VT2>||VT> | <t1||VT1>∈ r1
∧ <t2||VT2> ∈ r2 ∧ c(<t1||VT1>°<t2||VT2>)
c

• Phép Trừ:
r1 \VT r2

=
{<t||VT>|<t||VT1> ∈ r1 ∧
(∃ VT2 (<t||VT2> ∈ r2 ∧ VT-1≤VT+2 ∧ VT-=VT+2) ∨
VT-=VT+1) ∧
(∃ VT3 (<t||VT3> ∈ r2 ∧ VT+1≥VT-3 ∧ VT+=VT-3) ∨
VT+=VT+1) ∧ VT-¬∃VT4(<t||VT4>∈r2 ∧ VT+4>VT- ∧ VT-4
10


2.4. Mở rộng mô hình cơ sở dữ liệu hướng thời gian với thời gian bất
định
Cơ sở dữ liệu hướng thời gian lưu trữ thông tin về một sự kiện nào đó theo thời gian,
để thực hiện được điều này thì mỗi sự kiện được kết hợp với một timestamp[8] xác định
thời gian mà nó xảy ra. Thông thường thì thời gian xảy ra của sự kiện không được biết
chính xác mà chỉ ước lượng xấp xỉ, ví dụ xảy ra “trong khoảng từ 14g đến 16g”, “vào tuần
trước”, hay “giữa tháng 8”,… Ví dụ trong cơ sở dữ liệu bệnh viện, những sự kiện về bệnh
lý thường không được biết một cách chắc chắn. Ví dụ một bác sĩ chỉ có thể biết việc dùng
thuốc của bệnh nhân vào đó xảy ra “trong khoảng từ 6 AM đến 8 AM”, hay sự nhiễm bệnh
của bệnh nhân có thể xảy ra “trong khoảng đầu tháng 7”… Đó là những ví dụ về sự bất

định về thời gian.

2.4.1. Các khái niệm
Vấn đề thời gian bất định trong cơ sở dữ liệu hướng thời gian (Indeterminate in
temporal databases)[8] xuất hiện trong trường hợp một sự kiện nào đó đã được biết là xảy
ra, nhưng không biết chính xác thời gian mà nó xảy ra.
Sự bất định này nảy sinh do một số nguyên nhân như sau:
o Các kỹ thuật lấy mẫu thời gian không chính xác
o Thời gian xảy ra của sự kiện không được chỉ định tường minh
o Không xác định được thời gian xảy ra của sự kiện
Với sự bất định về thời gian đó, thông tin được coi là không chắc chắn (uncertain)
Độ chính xác về thời gian của thông tin được xác định theo đại lượng gọi là độ phân
giải (resolution), đó là đơn vị thời gian nhỏ nhất để lưu trữ thông tin (phút, giây…). Giá trị
này càng bé (càng mịn) thì thông tin về thời gian càng chính xác. Ta có khái niệm độ mịn
(granularity). Ví dụ nếu thông tin về thời gian của một sự kiện được lưu trữ theo đơn vị
thời gian là giờ thì việc xác định sự kiện đó trong một thời gian chính xác theo phút hay
giây có thể không thực hiện được.
Vậy vấn đề thời gian bất định (valid-time indeterminacy) được hiểu là sự kiện được lưu
trữ trong cơ sở dữ liệu được biết là đã xảy ra, tuy nhiên không được biết chính xác nó xảy
ra ở thời điểm chính xác nào.
Việc không tường minh này xuất phát từ những nguyên nhân sau:
Đơn vị đo thời gian không trùng khớp: ví dụ một sự kiện được biết xảy ra trong
vòng một giờ được lưu trong hệ thống với đơn vị đo thời gian tính theo giây thì
sẽ không biết là sẽ lưu trữ với giây thứ bao nhiêu.
Các kỹ thuật đánh giá tuổi: ví dụ kỹ thuật Carbon-14, là không tường minh.
Không chắc chắn trong kế hoạch: ví dụ thời gian hoàn thành của dự án nào đó
không thể được dự đoán chính xác, mà chỉ có thể dự đoán trong khoảng bao
nhiêu lâu.
Thời gian xảy ra sự kiện không được biết hay không xác định tường minh rõ
ràng. Ví dụ có thể biết tuổi của một bệnh nhân nào đó nhưng cụ thể bệnh nhân


11


đó sinh vào ngày tháng năm cụ thể nào thì có thể không có thông tin.

2.4.2. Mô hình đường thời gian
Đường thời gian có thể hình dung trực quan như là một đoạn thẳng (giả sử vũ trụ là
giới hạn); một điểm nằm trên đoạn đó được gọi là thời điểm (instant); thời gian giữa hai
thời điểm được gọi là đoạn (time period); chiều dài của đoạn đó được gọi là khoảng
(interval). Đoạn thời gian này được chia thành rất nhiều đoạn nhỏ hơn, với số lượng đoạn
con này là một con số xác định. Mỗi đoạn con được gọi là hạt thời gian (chronon[8]), đó là
đơn vị nhỏ nhất về thời gian có thể được thể hiện trong quá trình hiện thực. Hạt thời gian
được đánh số liên tiếp bởi các số nguyên 0,1,2,…,N, trong đó N là số lượng khoảng được
chia. Miền trị của các giá trị thời gian là tập các chronon và hai giá trị đặc biệt là -∞ và +∞,
đó là sự biểu diễn cho thời điểm bắt đầu và thời điểm kết thúc.

2.4.3. Thời điểm bất định
Với mô hình về thời gian như trên, một thời điểm được coi như là một điểm nằm trên
đường thời gian, thì một thời điểm được coi là xác định (determinate) nếu ta biết được nó
nằm trên chronon cụ thể nào.
Thông thường với một thời điểm, ta không biết được cụ thể nó nằm trong chronon nào
mà chỉ biết được thời điểm nằm trong một dải các chronon nào đó mà thôi. Thời điểm loại
này được gọi là thời điểm không xác định.
Một thời điểm không xác định được diễn tả bởi ba yếu tố([9],[13]): cận trên, cận dưới,
và hàm khối xác suất (probabitity mass function – p.m.f[13]). Cận trên và cận dưới là các
chronon giới hạn của thời điểm, thời điểm không thể trước cận dưới và không thể sau cận
trên. Giữa các cận là khoảng không xác định, đó là tập các chronon mà có khả năng chứa
thời điểm. Thời điểm nằm ở một trong các chronon này, nhưng cụ thể chronon nào thì
không biết được.

Ký hiệu:

α*
α*

:

cận dưới

:

cận trên

Hàm khối xác suất( p.m.f):
Mặc dù thời điểm có thể nằm ở bất kỳ một chronon nào đó trong tập các chronon có
thể, nhưng khả năng để thời điểm rơi vào chronon nào đó không bằng nhau. Hàm khối xác
suất cho ta xác suất của mỗi chronon.
Hàm khối xác suất Pα cho thời điểm không xác định α là:
Pα(i) = Pr[α = i] ,

với i ∈ {0,1,…,N}

Trong đó Pr[α = i] là xác suất để thời điểm rơi vào trong chronon i. Do thời điểm
không thể nằm ngoài khoảng bất định đang xét, nên:
Pr[i < α * ] = 0
12


Pr[i > α * ] = 0
Tất cả những thời điểm được xem là độc lập xác suất với nhau, nghĩa là:

Pr[α = i ^ β = j]

=

Pr[α = i] * Pr[β = j]

Vậy một thời điểm bất định α biểu thị bởi bộ: ( α * ~ α * , Pα)

2.4.4. Đoạn thời gian bất định và khoảng thời gian bất định (Indeterminate
period and indeterminate interval)
Một đoạn xác định bởi hai thời điểm, một là thời điểm bắt đầu và một là thời điểm kết
thúc. Khi các thời điểm này là thời điểm bất định, ta có đoạn thời gian bất định. Một đoạn
thời gian bất định có thể bắt đầu ở bất cứ chronon nào của tập các chronon có thể của thời
điểm bất định bắt đầu. Tương tự, nó cũng có thể chấm dứt ở một chronon nào đó của tập
các chronon có thể của tập các chronon của thời điểm bất định kết thúc.
Một khoảng thời gian được xác định rõ ràng là độ dài thời gian, ví dụ: 6 ngày, 2 giờ…,
giá trị này chính là số lượng các chronon. Khoảng thời gian bất định là sự mô tả không
tường minh độ dài thời gian, được mô tả như là một tập các độ dài thời gian có thể.
Khoảng thời gian bất định được biểu thị bởi số lượng các chronon không tường minh. Ví
dụ: “trong khoảng từ hai đến ba chronon”. Sự biểu diễn này cần có sự kết hợp cùng hàm
khối xác suất, cho biết khả năng xảy ra của các độ dài thời gian trong tập đang xét.

2.4.5. Mở rộng cú pháp cho ngôn ngữ truy vấn SQL
Ta thực hiện công việc mở rộng ngôn ngữ truy vấn SQL với mục đích hỗ trợ việc truy
xuất và lưu trữ thông tin của valid time bất định từ cơ sở dữ liệu. Sự mở rộng này về mặt
cú pháp thể hiện ở ba điểm:
 






 








































































































: từ khóa INDETERMINATE được thêm vào sau lệnh tạo bảng cho phép
có thể xem xét dữ liệu của bảng một cách bất định. Từ khóa này xuất hiện trong
câu lệnh create table









Ví dụ:
CREATE TABLE Received( warehouse
lot_num
part

VALID INDETERMINATE;

CHARACTER(30),
INTEGER,
CHARACTER(40))

: điều này được thể hiện trong mệnh đề FROM của
câu truy vấn SELECT, đặc tả các mối liên kết giữa các bảng mà câu truy vấn
được định trị. Sự chỉ định này được thể hiện với mệnh đề WITH
CREDIBILITY, gồm bốn giá trị sau:

 



 




































o INDETERMINATE – giữ lại tất cả sự bất định bằng cách để mặc giá trị
thời gian không thay đổi
o EXPECTED – thay thế giá trị thời gian bất định bằng giá trị được mong
đợi.

13


o MAX – thay thế mỗi giá trị thời gian bất định bằng cận dưới (ngoại trừ

thời điểm bắt đầu đoạn, trong trường hợp này ta sử dụng cận trên). Với
đoạn, sự bất định sẽ được loại trừ. Với thời điểm, thời điểm sớm nhất
trong tập các thời điểm có thể sẽ được sử dụng. Với khoảng, độ dài
khoảng ngắn nhất sẽ được chọn.
o MIN – thay thế mỗi giá trị thời gian bất định với cận trên (ngoại trừ thời
điểm bắt đầu đoạn, trong trường hợp này cận dưới sẽ được sử dụng).
Với đoạn, tất cả thông tin bất định được chuyển thành thông tin xác
định. Với thời điểm, thời điểm trễ nhất trong tập các thời điểm có thể sẽ
được sử dụng.
: thông tin này là mức độ tin chắc của các thuộc
tính thời gian được cung cấp trong mệnh đề WHERE của câu lệnh SELECT.
Giá trị này là một số nguyên lấy trong khoảng từ 1 đến 100, giá trị mặc định là
100. Khi mức độ hỗ trợ là 1, có nghĩa là bất cứ kết quả có thể được nào cũng
đều được mong muốn trả về cho câu truy vấn, hay nói cách khác mệnh đề
WHERE có thể được thỏa mãn với bất cứ sự mở rộng có thể nào. Khi mức độ
hỗ trợ là 100, điều này nói lên rằng yêu cầu truy vấn trả về kết quả xác định, có
nghĩa là mệnh đề phải được thỏa mãn với tất cả những sự mở rộng có thể.

 



 






















 













Ví dụ:
SET PLAUSIBILITY 60

SELECT r.warehouse, r.lot_num, p.serial_num
FROM Received AS r WITH CREDIBILITY INDETERMINATE,
In_Production AS p WITH CREDIBILITY INDETERMINATE
WHERE p.model=”Cenurion” AND r.part=”wing strut”
AND r OVERLAPS p
Chương này trình bày các khái niệm cơ bản về cơ sở dữ liệu hướng thời gian cũng như
vấn đề mở rộng để có thể xử lý được với dữ liệu có yếu tố thời gian bất định. Các khái
niệm cơ bản về cơ sở dữ liệu hướng thời gian bao gồm các thuật ngữ, định nghĩa các phép
toán liên quan đến thời gian và các hướng mở rộng mô hình cơ sở dữ liệu quan hệ thành
cơ sở dữ liệu hướng thời gian. Vấn đề mở rộng mô hình để có thể xử lý được với dữ liệu
với thời gian bất định được cụ thể hóa bằng cách mô hình hóa thời điểm bất định. Ngôn
ngữ truy vấn cũng cần mở rộng tương ứng với mô hình mới.

14


CHƯƠNG 3: CÁC NGHIÊN CỨU CÓ LIÊN QUAN
Trong phần này ta sẽ điểm qua một số công trình nghiên cứu có liên quan mật thiết với
đề tài và đưa ra nhận xét về những vấn đề đã được giải quyết cũng như những vấn đề còn
để ngỏ.

3.1. Công trình “Hỗ trợ sự bất định dữ liệu thời gian valid-time” của
Curtis E. Dyreson và Richard T. Snodgrass – Đại học James Cook,
North Queensland
Công trình này tập trung giải quyết những vấn đề sau:
-

Đưa ra các khái niệm liên quan đến vấn đề thời gian bất định

-


Xây dựng mô hình cơ sở dữ liệu hướng thời gian hỗ trợ thời gian bất định bằng
cách mở rộng mô hình cơ sở dữ liệu truyền thống

-

Mở rộng cú pháp câu lệnh SQL cho phép thao tác trên dữ liệu hướng thời gian

-

Trình bày một số ý tưởng hiện thực trên một ứng dụng cụ thể

3.1.1. Các khái niệm liên quan đến vấn đề thời gian bất định
Khái niệm bất định về thời gian xảy ra của một sự kiện: một sự kiện được lưu trữ trong
cơ sở dữ liệu, ta biết sự kiện đó đã thực sự xảy ra, nhưng không biết chính xác nó xảy ra
vào cụ thể thời điểm nào. Trong trường hợp này, ta nói thời điểm xảy ra của sự kiện là bất
định. Dữ liệu lưu trữ trong cơ sở dữ liệu về sự kiện đó được coi là không chắc chắn, và để
xem xét những dữ kiện này, người ta đưa vào hai khái niệm:


Hệ số tin cậy (credibility): mức độ chính xác của dữ liệu trong một cấu trúc của
dữ liệu



Mức độ hỗ trợ (plausibility): độ tin cậy trong mối quan hệ giữa các dữ liệu.

Như đã trình bày, trong cơ sở dữ liệu hướng thời gian có hai khái niệm là Valid-time và
Transaction-time, trong công trình này, các tác giả chỉ quan tâm đến Valid-time, cách mô
hình hóa sự bất định của Valid-time và hiện thực của nó.


3.1.2. Xây dựng mô hình cơ sở dữ liệu hướng thời gian hỗ trợ thời gian bất
định bằng cách mở rộng mô hình cơ sở dữ liệu truyền thống
Tác giả mô hình hóa đường thời gian, đưa ra các khái niệm về thời điểm (instant), đoạn
thời gian (time period), khoảng thời gian (interval) như sau:
Chia đường thời gian thành các đoạn nhỏ gọi là hạt thời gian (chronon), được đánh số
thứ tự từ 0 đến N, với N là số giá trị mà timestamp có thể được biểu diễn.
Một điểm trên đường thời gian được gọi là thời điểm, thời điểm có thể rơi vào một
trong các hạt thời gian. Khi thời điểm là bất định thì các hạt thời gian mà nó rơi vào là một

15


chuỗi liên tiếp các hạt thời gian trong đường thời gian. Hạt thời gian đầu tiên trong chuỗi
mà thời điểm có khả năng rơi vào được gọi là cận dưới(lower support), và hạt thời gian
cuối cùng đuợc gọi là cận trên(upper support). Khả năng một thời điểm rơi vào một hạt
thời gian nào đó được xác định bởi hàm khối xác suất (probability mass function). Vậy một
thời điểm bất định được thể hiện bởi ba yếu tố: cận dưới, cận trên, và hàm khối xác suất.
Đoạn thời gian xác định bởi một cặp các thời điểm, đó là thời điểm bắt đầu và thời
điểm kết thúc đoạn. Một đoạn thời gian là bất định khi một trong các biên của nó là thời
điểm bất định.
Khoảng thời gian, được xác định bởi số lượng các hạt thời gian liên tiếp, có ý nghĩa
như là độ dài thời gian. Một khoảng thời gian là bất định khi không chỉ định cụ thể độ dài
thời gian là bao nhiêu, thay vào đó chỉ phát biểu “trong khoảng từ … đến …”.

3.1.3. Mở rộng cú pháp câu lệnh SQL cho phép thao tác trên dữ liệu có yếu
tố thời gian trong cơ sở dữ liệu hướng thời gian
Tác giả đề nghị thêm ba cấu trúc mới bổ sung cho SQL truyền thống như sau:
Từ khóa INDETERMINATE, đặt trước thuộc tính thời gian để nói rằng đó là
dữ liệu bất định.

Hệ số tin cậy, gồm các giá trị: INDETERMINATE, EXPECTED, MAX, MIN,
tính chất này tác động lên lược đồ quan hệ, được đặt trong mệnh đề FROM
Mức độ hỗ trợ, nhận các giá trị trong khoảng từ 1 đến 100, tác động lên thuộc
tính dữ liệu thời gian, đặt trong mệnh đề WHERE


Tác giả đưa ra các cú pháp các mệnh đề của các câu truy vấn được mở rộng hỗ trợ dữ
liệu thời gian bất định. Những mệnh đề mới bổ sung này nhằm mục đích điều khiển thông
tin bất định về thời gian: hệ số tin cậy tương quan (correlation credibility) và mức độ hỗ
trợ thứ tự (ordering plausibility).
[[SET DEFAULT CREDIBILITY δ’;S]]ind(δ,γ,d)

=

[[S]]ind(δ’,γ,d)

[[SET DEFAULT PLAUSIBILITY γ’;S]]ind(δ,γ,d) =

[[S]]ind(δ,γ’,d)

Hai mệnh đề ở trên thiết lập giá trị mặc định cho hai thông số của dữ liệu thời gian bất
định. Các giá trị này có thể được thiết lập lại trong các mệnh đề của câu lệnh SQL:
[[SELECT <Target list> FROM <from list> WHERE WITH
PLAUSIBILITY γ’]]ind(δ,γ,d) = [[SELECT <Target list> FROM <from list> WHERE
]]ind(δ,γ’,d)
Trong đó, ngữ nghĩa của câu truy vấn SELECT có yếu tố thời gian bất định như sau:
[[SELECT <Target list> FROM <from list> WHERE ]]ind(δ,γ,d) =
[[ <target list>]]ind(γ,[[WHERE ]]ind(γ,[[<from list>]]ind(δ,d)))
Cho thời điểm bất định α có cận dưới, cận trên và hàm khối xác suất lần lượt là α * , α * ,
Pα , khi đó thời điểm bất định α được ký kiệu ( α * ~ α * , Pα).

16


×