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

Nghiên cứu một số phương pháp gán nhãn thời gian trên cơ sở dữ liệu

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 (974.56 KB, 68 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC

HUỲNH THANH HI

Nghiªn cøu mét sè ph-¬ng ph¸p
g¸n nh·n thêi gian trªn c¬ së d÷ liÖu

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Huế, 2015


MỤC LỤC
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các từ viết tắt
Danh mục bảng
Danh mục hình vẽ
MỞ ĐẦU .......................................................................................................... 1
Chương 1. KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU THỜI GIAN .................... 3
1.1. Giới thiệu .................................................................................................... 3
1.2. Các loại thời gian ....................................................................................... 4
1.2.1 Thời gian hợp lệ (VT) .............................................................................. 5
1.2.2 Thời gian giao tác (TT): ........................................................................... 5
1.3. Các kỹ thuật gán nhãn thời gian ................................................................. 7


1.3.1Kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi bộ dữ liệu: ....... 7
1.3.2 Kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi thuộc tính
trong từng bộ dữ liệu ................................................................................. 9
1.4 Phần mềm gán nhãn thời gian trên cơ sở dữ liệu .................................... 11
1.5 Tiểu kết chương 1 ................................................................................... 14
Chương 2. GÁN NHÃN THỜI GIAN GIAO TÁC
TRÊN CƠ SỞ DỮ LIỆU ...................................................................... 16
2.1. Giới thiệu .................................................................................................. 16
2.2. Tìm kiếm một giá trị nhãn thời gian giao tác ........................................... 16
2.3. Liên kết định danh các giao tác với các bộ dữ liệu .................................. 20
2.3.1. Lưu trữ định danh các giao tác trực tiếp trong các bộ dữ liệu .............. 20
2.3.2. Lưu trữ định danh các giao tác một cách riêng lẻ trong bộ dữ liệu ..... 21
2.4. Biểu diễn Until Changed ( uc) ................................................................. 22
2.5. Các phương pháp gán nhãn thời gian giao tác ......................................... 24


2.5.1. Gán nhãn thời gian giao tác cho giao tác chèn...................................... 24
2.5.2. Gán nhãn thời gian giao tác cho giao tác cập nhật................................ 26
2.5.3. Gán nhãn thời gian giao tác cho giao tác xóa ....................................... 27
2.6. Tiểu kết chương 2..................................................................................... 28
Chương 3. GÁN NHÃN THỜI GIAN HỢP LỆ
TRÊN CƠ SỞ DỮ LIỆU ...................................................................... 29
3.1. Giới thiệu .................................................................................................. 29
3.2. Xử lý các giá trị Now ............................................................................... 29
3.3. Xử lý các giá trị Current_Date ................................................................. 35
3.3.1. Current_Date trong sự sửa đổi .............................................................. 36
3.3.2. Current_Date trong truy vấn ................................................................. 39
3.3.3. Nhận xét ................................................................................................ 41
3.4. Xử lý các giá trị Nobind Now .................................................................. 42
3.5. Gán nhãn thời gian cho các bảng dữ liệu theo hai loại thời gian ............. 42

3.5.1. Thao tác cập nhật................................................................................... 43
3.5.2. Thao tác xóa .......................................................................................... 46
3.5.3. Thao tác chèn ........................................................................................ 47
3.6. Ứng dụng cụ thể cho bài toán có gán nhãn thời gian trên cơ sở dữ liệu.. 47
3.6.1. Mô hình CSDL có yếu tố thời gian ở mức khái niệm. .......................... 49
3.6.2. Mô hình quan hệ có yếu tố thời gian ở mức logic. ............................... 51
3.6.3. Mô hình quan hệ có yếu tố thời gian ở mức vật lý ............................... 53
3.6.4. Xây dựng CSDL quản lý hội thảo khoa học có yếu tố thời gian .......... 55
3.7. Tiểu kết chương 3..................................................................................... 68
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 59
1. Kết luận ....................................................................................................... 59
2. Hướng phát triển đề tài ................................................................................ 59
TÀI LIỆU THAM KHẢO ............................................................................ 60


DANH MỤC CÁC TỪ VIẾT TẮT

Từ viết tắt

Diễn giải

BTC

Ban tổ chức

CSDL

Cơ sở dữ liệu

DBMS


Data Base Management System

DL

Dữ liệu

ET

End Time

ST

Start Time

UC

Until Changed

TET

Transaction End Time

TST

Transaction Start Time

TT

Transaction Time


VET

Valid End Time

VST

Valid Start Time


DANH MỤC CÁC BẢNG
Tên bảng

Số hiệu

Trang

bảng
1.1

CSDL phi thời gian của hai quan hệ

8

1.2

CSDL thời gian hợp lệ

8


1.3

CSDL thời gian giao tác

9

1.4

CSDL theo hai loại thời gian

9

2.1

CSDL thời gian giao tác

17

2.2

Bộ dữ liệu trong quan hệ theo thời gian giao tác NV_TT

17

2.3

Bộ dữ liệu trong quan hệ theo thời gian giao tác NV_TT

22


2.4

Bộ dữ liệu trong quan hệ NV_TT sau khi thực hiện cập

23

nhật
2.5

Bộ dữ liệu trong quan hệ NV_TT

25

2.6

Bộ dữ liệu trong quan hệ NV_TT sau khi thực hiện chèn

25

2.7

Bảng kết quả cập nhật lương cho nhân viên An

27

3.1

CSDL thời gian hợp lệ

30


3.2

Bộ dữ liệu của quan hệ NV_TT

30

3.3

Bộ dữ liệu của nhân viên An trong quan hệ thời gian

31

hợp lệ NV_TT
3.4

Bộ dữ liệu của nhân viên Hùng sau khi thực hiện giao

33

tác T1 và T2
3.5

Nhãn thời gian NV_TT trước thời điểm 1998/02/19

38

3.6

CSDL phi thời gian của quan hệ nhân viên


42

3.7

CSDL theo 2 loại thời gian của quan hệ nhân viên

43

3.8

Các bộ trong quan hệ theo hai loại thời gian NV_BT

43

3.9

Bộ dữ liệu của nhân viên An trong quan hệ NV_BT

44


3.10

Bộ dữ liệu của nhân viên An trong quan hệ NV_BT sau

45

khi cập nhật lương
3.11


Bộ dữ liệu của nhân viên Long trong quan hệ NV_B

46

3.12

Bộ dữ liệu của nhân viên Long trong quan hệ VT_BT

46

sau khi thực hiện giao tác xóa
3.13

Bộ dữ liệu của nhân viên Hùng trong quan hệ VT_BT

47

sau khi thực hiện giao tác chèn
3.1

Bảng đặc tả thuộc tính

56


DANH MỤC CÁC HÌNH VẼ
Tên hình vẽ

Số hiệu


Trang

hình vẽ
3.1

Giao tác T1 và T2

32

3.2

Sử dụng thời gian Commit cho Now

35

3.3

Sơ đồ thực hiện giao tác T1, T2 và T3

37

3.4

Current_Date trong truy vấn

40

3.5


Phương thức thiết kế CSDL có yếu tố thời gian

48

3.6

Lược đồ ở mức khái niệm

50

3.7

Mô hình E- R

55

3.8

Mô hình quan hệ

57

3.9

Mô hình Time E – R

57

3.10


Mô hình CSDLquan hệ có yếu tố thời gian

58


1

MỞ ĐẦU
Cơ sở dữ liệu là tài nguyên thông tin dùng chung cho nhiều người cùng sử
dụng. Bất kỳ người sử dụng nào trên mạng máy tính, tại các thiết bị đầu cuối về
nguyên tắc có quyền truy nhập, khai thác toàn bộ hay một phần dữ liệu theo chế
độ trực tuyến hay tương tác mà không phụ thuộc vào vị trí địa lý của người sử
dụng với các tài nguyên đó. Do đó, CSDL là một thành phần không thể thiếu
trong quá trình phát triển các hệ thống thông tin.
Tuy nhiên, Trong thời đại ngày nay nhiều lĩnh vực trong thế giới thực cần
thông tin về quá khứ, hiện tại và tương lai, như: quản lý học sinh, tài chính
(chứng từ, tiền gửi ngân hàng), y tế (theo dõi sức khỏe bệnh nhân), quản lý nhân
sự, lập thời gian biểu (quản lý việc đặt chỗ trước trong ngành hàng không, ga tàu
và khách sạn), khoa học (dự báo thời tiết, kết quả đo đạt),…
Ngoài ra, người sử dụng còn yêu cầu việc truy cập thông tin có yếu tố thời
gian không những phải cho kết quả nhanh chóng mà còn phải chính xác, đầy đủ.
Như vậy nếu CSDL không gán nhãn thời gian thì việc truy xuất vào cơ sở dữ
liệu đó gặp không ít khó khăn. Vì thế, để thuận tiện cho việc tìm kiếm, thống
kê, truy xuất thông tin . . . thì việc gán nhãn thời gian cho CSDL là một phần
không thể thiếu. Vì thế tôi đã lựa chọn đề tài: “Nghiên cứu một số phương
pháp gán nhãn thời gian trên cơ sở dữ liệu”. Nội dung chính của luận văn là
giới thiệu về cơ sở dữ liệu gán nhãn thời gian và một số phương pháp gán nhãn
thời gian hợp và thời gian giao tác.
Trong thời gian tìm hiểu và nghiên cứu đề tài, em đã đạt được những kết
quả bước đầu về cơ sở dữ liệu gán nhãn thời gian, làm cơ sở để hoàn thành cuốn

luận văn này
Tổ chức luận văn gồm có phần mở đầu, ba chương nội dung, phần kết luận
và tài liệu tham khảo.


2

Chương 1: Khái quát cơ sở dữ liệu thời gian
- Khái quát về CSDL có yếu tố thời gian.
- Các loại thời gian trong CSDL.
- Kỹ thuật gắn kết thời gian vào CSDL.
- Phần mềm gán nhãn thời gian trên CSDL.
Chương 2: Gán nhãn thời gian giao tác trên cơ sở dữ liệu
- Tìm kiếm một giá trị nhãn thời gian giao tác.
- Liên kết định danh các giao tác với các bộ dữ liệu.
- Biểu diễn giá trị until changed (UC).
- Các phương pháp gán nhãn thời gian giao tác.
Chương 3: Gán nhãn thời gian hợp lệ trên cơ sở dữ liệu
- Xử lý các giá trị Now.
- Xử lý các giá trị Current_Date.
- Xử lý các giá trị Nobind Now.
- Gán nhãn thời gian cho các bảng dữ liệu theo hai loại thời gian.
- Ứng dụng cụ thể cho bài toán có gán nhãn thời gian trên cơ sở dữ
liệu.
Nội dung của luận văn mới chỉ là những vấn đề cơ sở của cơ sở dữ liệu có
gán nhãn thời gian, những vấn đề sâu hơn mong rằng sẽ được trình bày trong
thời gian gần nhất.


3


Chương 1
KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU THỜI GIAN
1.1. Giới thiệu
Cơ sở dữ liệu (CSDL) là một tập hợp dữ liệu tác nghiệp, bao gồm các loại
dữ liệu âm thanh, tiếng nói, chữ viết, văn bản, đồ hoạ, hình ảnh tĩnh hay hình
ảnh động....được tổ chức và lưu trữ theo 1 cấu trúc chặt chẽ nhằm phục vụ cho
nhiều đối tượng với nhiều mục đích khác nhau.
Vì vậy, CSDL là tài nguyên thông tin dùng chung cho nhiều người cùng
sử dụng. Bất kỳ người sử dụng nào trên mạng máy tính, tại các thiết bị đầu cuối,
về nguyên tắc có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo
chế độ trực tuyến hay tương tác mà không phụ thuộc vào vị trí địa lý của người
sử dụng với các tài nguyên đó. Do đó, CSDL là một thành phần không thể thiếu
trong quá trình phát triển các hệ thống thông tin.
Tuy nhiên, Trong thời đại ngày nay nhiều lĩnh vực trong thế giới thực cần
thông tin về quá khứ, hiện tại và tương lai, như: quản lý học sinh, tài chính
(chứng từ, tiền gửi ngân hàng), y tế (theo dõi sức khỏe bệnh nhân), quản lý nhân
sự, lập thời gian biểu (quản lý việc đặt chỗ trước trong ngành hàng không, ga tàu
và khách sạn), khoa học (dự báo thời tiết, kết quả đo đạt),…
Ngoài ra, người sử dụng còn yêu cầu việc truy cập thông tin có yếu tố
thời gian không những phải cho kết quả nhanh chóng mà còn phải chính xác,
đầy đủ. Như vậy nếu CSDL không gán nhãn thời gian thì việc truy xuất vào cơ
sở dữ liệu đó gặp không ít khó khăn. Vì thế, để thuận tiện cho việc tìm kiếm,
thống kê, truy xuất thông tin . . . thì việc gán nhãn thời gian cho CSDL là một
phần không thể thiếu.


4

Để có 1 cách nhìn tổng quan về CSDL thời gian, trong chương 1 của luận

văn này sẽ trình bày một số nội dung cơ bản về CSDL thời gian như sau:


Khái quát về CSDL có yếu tố thời gian.



Các loại thời gian trong CSDL.



Kỹ thuật gắn kết thời gian vào CSDL.



Phần mềm gán nhãn thời gian trên CSDL.

1.2. Các loại thời gian
CSDL có yếu tố thời gian theo nghĩa rộng bao gồm tất cả các ứng dụng
CSDL có liên quan đến yếu tố thời gian trong việc tổ chức thông tin. Một CSDL
thời gian sẽ lưu giữ các thông tin liên quan đến khi nào các sự việc chắc chắn
xảy ra hay khi nào sự việc được coi là đúng.
Một khoảng thời gian hay một giai đoạn thời gian được hình dung với
thời điểm bắt đầu và thời điểm kết thúc [ST, ET]. Ví dụ nhân viên trong 1 công
ty bắt đầu làm việc tại công ty đó từ này 15/08/1993 đến ngày 20/11/1998, thì ta
có thể nói rằng giai đoạn làm việc của nhân viên đó lá [15/08/1993, 20/11/1998].
Một khoảng thời gian như thế được giải thích là tập các thời điểm từ thời gian
bắt đầu đến thời gian kết thúc. Như vậy, khoảng thời gian [15/08/1993,
20/11/1998] biểu diễn cho tập tất cả các ngày từ 15/08/1993 đến 20/11/1998.
Trong CSDL, một sự việc hay sự kiện có thể được kết hợp với một thời

điểm hay một khoảng thời gian đặc biệt. Một CSDL có yếu tố thời gian được tạo
nên do nó lưu trữ các dữ liệu liên quan đến thời gian.
Sự khác nhau giữa dữ liệu có yếu tố thời gian và dữ liệu phi thời gian đó
là có một khoảng thời gian được thêm vào dữ liệu để biểu diễn cho khi nào thì
dữ liệu hợp lệ hay khi nào thì dữ liệu được lưu trữ trong CSDL. Dữ liệu sẽ được
lưu trữ trong CSDL thông thường nếu nó được kiểm tra xem có hợp lệ tại thời


5

điểm hiện thời không. Khi dữ liệu trong một CSDL thông thường được cập nhật,
chèn hay xóa thì nó được viết đè lên trạng thái CSDL cũ và tạo nên một trạng
thái mới trong CSDL. Và khi đó trạng thái trước khi có thay đổi xảy ra sẽ không
còn nữa.
Căn cứ vào những đặc tính đó nên các nhà nghiên cứu CSDL thời gian đã
phân chia thời gian thành 2 loại cơ bản là thời gian hợp lệ (VT) và thời gian giao
tác (TT). Từng loại thời gian này có đặc điểm cụ thể như thế nào thì chúng ta sẽ
cùng tìm hiểu ở các mục 1.2.1 và 1.2.2 dưới đây.
1.2.1. Thời gian hợp lệ (VT)
Thời gian hợp lệ của 1 sự việc là tất cả các khoảng thời gian mà sự việc
xảy ra hay suốt quãng thời gian mà sự việc được coi là đúng trong thực tế. Thời
gian hợp lệ của 1 sự việc có thể được ghi lại bằng cách sử dụng hai thuộc tính
thời gian bắt đầu hợp lệ (VST) và thời gian kết thúc hợp lệ (VET).
CSDL có yếu tố thời gian hợp lệ được gọi là CSDL thời gian hợp lệ.
Khi nói đến thời gian hợp lệ, chúng ta sẽ nói đến những đặc tính sau:
+ Thời gian hợp lệ ghi nhận quá trình thay đổi trạng thái của các sự việc
trong thực tế.
+ Thời gian hợp lệ của một sự việc không phải bao giờ cũng được ghi
nhận trong CSDL vì một số lí do như: thời gian hợp lệ của một sự việc là không
thể biết hoặc khoảng thời gian hợp lệ không xác định được một cách chính xác.

1.2.2. Thời gian giao tác (TT)
Thời gian giao tác là thời gian khi sự kiện là hiện thời ở trong CSDL.
Thời gian đó là giá trị của đồng hồ hệ thống khi thông tin được lưu giữ là hợp lệ.
Không giống như thời gian hợp lệ, thời gian giao tác có thể được kết hợp không
chỉ với các sự kiện mà còn với bất kỳ một thực thể CSDL. Ví dụ, thời gian giao


6

tác có thể được kết hợp với các đối tượng và giá trị không phải là sự kiện. Như
vậy, tất cả các thực thể CSDL đều có một thời gian giao tác. Thời gian giao tác
lưu giữ các trạng thái thay đổi theo thời gian của CSDL. Nó có thể được lưu giữ
hay không trong CSDL tùy thuộc vào chủ ý của người thiết kế CSDL. Thời gian
giao tác của 1 sự kiện có thể được ghi lại bằng cách sử dụng hai thuộc tính thời
gian bắt đầu giao tác (TST) và thời gian kết thúc giao tác (TET).
CSDL có yếu tố thời gian giao tác được gọi là CSDL thời gian giao tác.
Thời gian giao tác có 1 số đặc tính như sau:
+ Thời gian giao tác ghi nhận sự thay đổi trạng thái của chính bản thân
CSDL.
+ Các ứng dụng có các yêu cầu hổ trợ khả năng truy cập đến các trạng
thái trước đó của CSDL thì chúng cần sự hổ trợ thời gian giao tác.
+ Thời gian giao tác bị chặn hai đầu bởi các thời điểm khi CSDL được
khởi tạo và trạng thái hiện thời của chính nó.
+ Thời gian giao tác còn có tính chất là tăng tuần tự và dễ dàng cho việc
ghi nhận một cách tự động bởi hệ quản trị CSDL đó.
Lưu ý:
Trong CSDL thời gian, tuy có 2 loại thời gian cơ bản nhưng trong một vài
ứng dụng có thể chỉ một loại thời gian được cần đến. Nếu CSDL có yếu tố thời
gian giao tác thì ta gọi CSDL đó là CSDL thời gian giao tác, nếu CSDL có yếu
tố thời gian hợp lệ thì ta gọi CSDL đó là CSDL thời gian hợp lệ như đã trình bày

ở trên. Nhưng trong một vài ứng dụng khác thì cần đến cả thời gian giao tác và
thời gian hợp lệ, vì thế trong trường hợp này CSDL thời gian được gọi là CSDL
theo hai loại thời gian.


7

1.3. Các kỹ thuật gán nhãn thời gian
Nếu CSDL không có yếu tố thời gian thì việc truy xuất vào CSDL đó gặp
không ít khó khăn. Vì thế việc gán nhãn thời gian vào CSDL là 1 phần không
thể thiếu trong thời đại ngày nay.
Các CSDL truyền thống trước đây không đưa các nhãn thời gian vào cho
dù trên thực tế vẫn có thời gian thực, nhưng người ta cố phớt lờ không để ý để
đưa yếu tố thời gian vào CSDL. Ngày nay, để gán nhãn thời gian vào CSDL
người ta sẽ mở rộng các CSDL thông thường không có nhãn thời gian bằng
những kỹ thuật gán nhãn thời gian.
Có 2 kỹ thuật gán nhãn thời gian cơ bản, kỹ thuật thứ nhất đó là kỹ thuật
ghi nhận thông tin thời gian liên quan đến mỗi bộ dữ liệu, kỹ thuật gán nhãn thời
gian thứ 2 đó là kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi thuộc
tính trong từng bộ dữ liệu. Việc gán nhãn thời gian vào CSDL theo từng kỹ
thuật cụ thể như thế nào sẽ được luận văn trình bày ở các mục dưới đây.
1.3.1. Kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi bộ dữ liệu
Như luận văn đã nêu ở mục 1.2, thời gian trong CSDL có yếu tố thời gian
gồm có 2 loại là thời gian giao tác (TT) và thời gian hợp lệ (VT). Để ghi nhận
thông tin thời gian liên quan đến mỗi bộ dữ liệu, ta sẽ thêm 4 trường thời gian
vào mỗi bộ dữ liệu đó để lưu các giá trị thời gian. Cụ thể mỗi bộ dữ liệu sẽ được
thêm 4 trường như sau: {TST, TET, VST, VET }. Trong đó:
+ TST : Thời gian bắt đầu giao tác
+ TET : Thời gian kết thúc giao tác
+ VST : Thời gian bắt đầu hợp lệ

+ VET : Thời gian kết thúc hợp lệ.
Ví dụ 1.1. Chúng ta xem xét quan hệ NHÂN VIÊN và PHÒNG BAN trong
CSDL phi thời gian như trong bảng 1.1.


8

Bảng 1.1 CSDL phi thời gian của 2 quan hệ NHÂN VIÊN và PHÒNG BAN
NHÂN VIÊN
TEN

MANV LUONG MAPB
PHÒNG BAN

TEN_PB MAPB

MA_NQLY

Từ 2 quan hệ này, chúng ta chuyển chúng thành các quan hệ thời gian hợp
lệ bằng cách thêm vào các thuộc tính thời gian bắt đầu hợp lệ VST và thời gian
kết thúc hơp lệ VET có kiểu dữ liệu là kiểu Date để ghi nhận quá trình thay đổi
trạng thái của các sự việc trong 2 thực tế này.
Điều này được trình bày trong bảng 1.2 với các quan hệ được đổi tên
thành NV_VT và PB_VT tương ứng.
Bảng 1.2. CSDL thời gian hợp lệ
NV_VT
TEN

MANV


TEN_PB

MAPB

LUONG MAPB VST

MA_NQLY VST

VET

VET

Từ 2 quan hệ NHÂN VIÊN và PHÒNG BAN, chúng ta chuyển chúng
thành các quan hệ thời gian giao tác bằng cách thêm vào các thuộc tính thời gian
bắt đầu giao tác TST và thời gian kết thúc giao tác TET có kiểu dữ liệu là
Timestamp. Điều này được trình bày trong bảng 1.3 với các quan hệ được đổi
tên thành NV_TT và PB_TT tương ứng.


9

Bảng 1.3. CSDL thời gian giao tác
TEN MANV LUONG MAPB TST

TET

TEN_PB

TET


MAPB

MA_NQLY

TST

Từ 2 quan hệ NHÂN VIÊN và PHÒNG BAN, chúng ta chuyển chúng
thành các quan hệ theo 2 loại thời gian bằng cách thêm vào các thuộc tính thời
gian bắt đầu giao tác TST, thời gian kết thúc giao tác TET, thời gian bắt đầu hợp
lệ VST và thời gian kết thúc hợp lệ VET. Điều này được trình bày trong bảng
1.4 với các quan hệ được đổi tên thành NV_BT và PB_BT tương ứng.
Bảng 1.4. CSDL theo hai loại thời gian
TEN MANV LUONG MAPB VST VET TST
TEN_PB MAPB MA_NQLY VST VET

TST

TET
TET

Sau khi thêm 4 trường thời gian này vào mỗi bộ dữ liệu thì cách biểu diễn
của các bộ dữ liệu vẫn ở dạng chuẩn 1 (1NF) và chúng vẫn được hỗ trợ trong
hầu hết các hệ quản trị CSDL thông dụng hiện nay. Nhưng nếu các thuộc tính
trong cùng một bộ dữ liệu thay đổi không đồng thời với nhau thì cách biểu diễn
này sẽ vi phạm nguyên tắc dư thừa dữ liệu.
1.3.2. Kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi thuộc tính
trong từng bộ dữ liệu
Trong kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi bộ dữ liệu,
mỗi bộ dữ liệu sẽ được thêm 4 trường thời gian là VST, VET, TST và TET.
Nhưng trong kỹ thuật ghi nhận thông tin thời gian liên quan đến mỗi thuộc tính

trong từng bộ dữ liệu thì mỗi thuộc tính của mỗi bộ dữ liệu sẽ có các giá trị thời
gian riêng tương ứng với nó.
Ở cách tiếp cận này, mỗi khi một giá trị của một thuộc tính thay đổi thì
một bộ phiên bản mới sẽ được tạo ra mặc dù tất cả các giá trị của các thuộc tính
khác sẽ giống hệt như bộ trước đó. Vì thế trong cách biểu diễn này thông tin sẽ


10

trở nên rất phức tạp. Do đó, các hệ quản trị CSDL phải hỗ trợ thêm các phương
pháp lưu trữ, xử lý, và truy vấn hiệu quả hơn.
Với kỹ thuật này, một đối tượng phức hợp đa trị được sử dụng để lưu trữ
tất cả các thay đổi về thời gian của đối tượng đó.
- Một thuộc tính thay đổi theo thời gian được gọi là thuộc tính timevarying và nó có giá trị bằng cách thêm các khoảng thời gian (period) vào thuộc
tính. Các khoảng thời gian này có thể biểu diễn cho thời gian hợp lệ, thời gian
giao tác hoặc thời gian theo hai loại thời gian phụ thuộc vào các yêu cầu của
ứng dụng.
- Mỗi thuộc tính time-varying được mô tả như một danh sách các bộ
<valid_start_time, valid_end_time, value> được sắp xếp bởi thời gian bắt đầu
hợp lệ.
- Các thuộc tính không thay đổi theo thời gian được gọi là thuộc tính
nontime-varying và chúng không được kết hợp với các khoảng thời gian nào cả.
Trong mô hình này, mỗi khi thuộc tính thay đổi thì phiên bản thuộc tính
hiện thời được đóng lại và phiên bản thuộc tính mới cho thuộc tính này được
thêm vào danh sách. Điều này cho phép các thuộc tính thay đổi một cách không
đồng bộ. Giá trị hiện thời của mỗi thuộc tính là now ở valid_end_time.
Khi sử dụng kỹ thuật này, tốt hơn ta nên kể đến một thuộc tính thời gian
sống (lifespan temporal attribute) được kết hợp với toàn bộ các đối tượng.
Thuộc tính đó có giá trị là một hay nhiều giai đoạn thời gian hợp lệ chính là thời
gian tồn tại hợp lệ của các đối tượng đó. Bất kì giai đoạn thời gian nào của một

thuộc tính trong một đối tượng phải là một tập con của thời gian sống của đối
tượng đó.
Đối với CSDL theo hai loại thời gian, mỗi phiên bản thuộc tính sẽ có một
bộ với 5 thành phần:
<valid_start_time, valid_end_time, trans_start_time, trans_end_time, value>


11

Khi đó, thời gian sống của đối tượng sẽ bao gồm cả thời gian hợp lệ và
thời gian giao tác. Như vậy, có thể phiên bản thuộc tính đã có sẵn các khả năng
như của CSDL theo hai loại thời gian. Những cách thức tương tự trước đó cho
việc cập nhật đối với các bộ phiên bản cũng có thể được áp dụng cho các phiên
bản thuộc tính.
1.4. Phần mềm gán nhãn thời gian trên cơ sở dữ liệu
Ở các phần trước, chúng ta đã bàn luận về việc làm thế nào để mở rộng
CSDL theo hướng có yếu tố thời gian. Trong mục này, chúng ta sẽ tiếp tục tìm
hiểu một số phần mềm cho phép gán nhãn thời gian trên CSDL và truy vấn dữ
liệu trên CSDL có yếu tố thời gian.
Để xây dựng CSDL không có yếu tố thời gian như truyền thống chúng ta
thường hay sử dụng hệ quản trị CSDL Access, SQL …
Như chúng ta đã tìm hiểu, CSDL thời gian đã được nghiên cứu trong hơn
một thập kỷ nay. Trong khoảng thời gian đó, nhiều ngôn ngữ truy vấn đã đã
được đề xuất cho dạng CSDL này. Tuy nhiên, một trong những phần thiết yếu
của ngôn ngữ truy vấn thời gian là việc chọn thời gian hợp lệ, nó cho phép
người dùng lấy các bộ dữ liệu có thời gian hợp lệ theo mối liên hệ của họ. Vì
thế, dựa trên những ngôn ngữ truy vấn vốn cho các CSDL phi thời gian như
SQL, các nhà khoa học đã phát triển và mở rộng ngôn ngữ này để phù hợp hơn
cho CSDL có yếu tố thời gian.
Có nhiều ngôn ngữ truy vấn thời gian khác nhau như ngôn ngữ TSQL2,

SQL-92, TOQL, TOOSQL, OQL/T... Đây là những ngôn ngữ cho phép chúng ta
gán nhãn thời gian trên CSDL và truy vấn dữ liệu trên CSDL thời gian.
Trong mục này chúng ta sẽ tìm hiểu khái quát ngôn ngữ TSQL2 để có cái
nhìn tổng quan về ngôn ngữ cho phép chúng ta gán nhãn thời gian và truy vấn
dữ liệu theo thời gian.


12

Như chúng ta đã nói ở trên, ngôn ngữ TSQL2 là một ngôn ngữ mở rộng
của SQL được xây dựng với cách tiếp cận có sử dụng CSDL thời gian. Ý tưởng
chính của TSQL2 là cho phép người dùng định hình một quan hệ là có yếu tố
thời gian hay không.
Trong CSDL quan hệ phi thời gian, những điều kiện lựa chọn phổ biến
trong truy vấn chỉ liên quan đến các điều kiện về thuộc tính, và các bộ thõa mãn
các điều kiện này sẽ được chọn ra từ tập các bộ hiện thời. Theo đó, các thuộc
tính thuộc diện truy vấn được chỉ định bởi một phép chiếu.
Trở lại ví dụ 1.1 trong truy vấn để truy xuất tên của tất cả các nhân viên
đang làm việc trong dự án chuyên ngành 5 có lương lớn hơn 30000 thì điều kiện
của phép chọn là: ((LUONG > 30000) AND (MAPB = 5)), thuộc tính dự kiến
trả về sẽ là TÊN. Trong CSDL có yếu tố thời gian, các điều kiện trong truy vấn
có thể bao gồm cả yếu tố thời gian thêm vào các thuộc tính. Một điều kiện thời
gian được gọi là đơn thuần nếu nó chỉ liên quan đến thời gian. Ví dụ như phép
chọn tất cả các bộ phiên bản của nhân viên hợp lệ trong thời điểm t nào đó hoặc
hợp lệ trong khoảng thời gian [t1, t2] nào đó. Trong trường hợp này, khoảng
thời gian được yêu cầu đó được so sánh với khoảng thời gian hợp lệ [t.VST,
t.VET] của mỗi bộ, và chỉ các bộ thõa mãn điều kiện đó mới được chọn. Trong
các phép toán so sánh đó, mỗi một giai đoạn hay khoảng thời gian được xem
tương ứng với tập các thời điểm từ t1 đến t2, do vậy tập các phép toán so sánh
chuẩn có thể được sử dụng. Dưới đây là một vài phép toán so sánh liên quan đến

thời gian thường được sử dụng trong các truy vấn:
+ [t.VST, t.VET] INCLUDES [t1, t2]
tương ứng với t1≥t.VST và t2≤t.VET
+ [t.VST, t.VET] INCLUDE_IN [t1, t2]
tương ứng với t1≤t.VST và t2≥t.VET
+ [t.VST, t.VET] OVERLAPS [t1, t2]
tương ứng với t1≤t.VET và t2≥t.VST


13

+ [t.VST, t.VET] BEFORE [t1, t2]
tương ứng với t1≥t.VET
+ [t.VST, t.VET] AFTER [t1, t2]
tương ứng với t2≤t.VST
+ [t.VST, t.VET] MEETS_BEFORE [t1, t2]
tương ứng với t1 = t.VET + 1
+ [t.VST, t.VET] MEETS_AFTER [t1, t2]
tương ứng với t2 + 1 = t.VST
Ngoài ra, các phép toán này cũng được dùng để tính toán trên các khoảng
thời gian, như tính giao hay hợp của hai khoảng thời gian. Kết quả của các phép
toán này có thể không phải là các khoảng thông thường mà là các yếu tố thời
gian (temporal element)–là một tập hợp của một hay nhiều khoảng thời gian
tách rời nhau sao cho không có hai khoảng thời gian nào trong một yếu tố thời
gian là liền kề nhau. Như vậy, cho hai khoảng thời gian [t1, t2] và [t3, t4] trong
một yếu tố thời gian thì ba điều kiện sau phải được thõa mãn:
+ [t1, t2] giao [t3, t4] = rỗng.
+ t3 không phải là điểm thời gian tiếp theo sau t2.
+ t1 không phải là điểm thời gian tiếp theo sau t4.
Điều kiện sau cùng là cần thiết để đảm bảo cho việc biểu diễn các yếu tố

thời gian. Nếu hai khoảng thời gian [t1, t2] và [t3, t4] là gần kề nhau thì chúng
được kết hợp lại thành một khoảng thời gian đơn [t1, t4]. Đây được gọi là tính
kết hợp của các khoảng thời gian. Tính kết hợp này cũng được sử dụng để kết
nối các khoảng thời gian giao nhau.
Trở lại với truy vấn có yếu tố thời gian, để minh họa các điều kiện truy
vấn đơn thuần chỉ có thời gian được sử dụng như thế nào, ta giả sử rằng người
sử dụng muốn chọn tất cả các bộ hợp lệ của nhân viên tại một thời điểm bất kỳ
trong suốt năm 1997. Điều kiện lựa chọn phù hợp cho quan hệ ở trong hình 1.2
sẽ là:
[t.VST, t.VET] OVERLAPS [1997-01-01, 1997-12-31]


14

Hầu hết các phép chọn có yếu tố thời gian được áp dụng với thời gian hợp
lệ. Trong CSDL theo hai loại thời gian, các điều kiện trong phép chọn thường
được dùng để truy vấn đối với những bộ đúng hiện thời có giá trị là uc ở thời
gian kết thúc giao tác. Tuy nhiên, nếu cần truy vấn đối với trạng thái CSDL
trước đó thì một mệnh đề khác nữa được bổ sung thêm vào truy vấn, khi đó truy
vấn sẽ được áp dụng với những bộ thời gian hợp lệ đúng trong CSDL tại thời
gian t nào đó.
Ngoài các điều kiện truy vấn chỉ có thời gian đơn thuần, còn có các phép
chọn khác mà điều kiện chọn gồm cả những thuộc tính và các điều kiện thời
gian. Chẳng hạn, nếu chúng ta muốn truy xuất tất cả các bộ phiên bản của tất cả
các nhân viên làm việc trong chuyên ngành 5 trong quan hệ NV_VT tại bất kì
thời điểm nào trong năm 1997, thì điều kiện sẽ là:
([t.VST, t.VET] OVERLAPS [1997-01-01, 1997-12-31]) AND (t.MAPB=5)
Cuối cùng, chúng ta sẽ đưa ra một cái nhìn chung về ngôn ngữ truy vấn
TSQL2. Ngôn ngữ TSQL2 là một mở rộng của SQL được xây dựng với cách
tiếp cận có sử dụng CSDL thời gian. Ý tưởng chính của TSQL2 là cho phép

người dùng định hình một quan hệ là có yếu tố thời gian hay không. Trong
TSQL2 ngoài việc để cho người sử dụng hiểu được các bảng có yếu tố thời gian
được thực hiện như thế nào, ngôn ngữ TSQL2 còn đưa ra thêm các cấu trúc
ngôn ngữ truy vấn để chỉ rõ các loại phép chọn thời gian, phép chiếu thời gian,
phép tập hợp thời gian khác nhau và còn nhiều khái niệm khác nữa.
1.5. Tiểu kết chương 1
CSDL có yếu tố thời gian là một phần không thể thiếu trong thời đại
ngày nay, một thời đại của nhiều lĩnh vực trong thế giới thực cần thông tin về
quá khứ, hiện tại và tương lai. Vì thế trong chương 1 này, luận văn đã trình bày
khái niệm cơ bản về CSDL thời gian, chúng ta đã tìm hiểu tổng quan về các loại


15

thời gian và một số kỹ thuật gán nhãn thời gian trên CSDL. Bên cạnh đó, trong
chương này luận văn cũng đã giới thiệu được sơ bộ một số phần mềm cho phép
gán nhãn thời gian, truy vấn dữ liệu trên CSDL và luận văn đã trình bày sơ lược
phần mềm TSQL2, một phần mềm gán nhãn thời gian thông dụng được mở rộng
từ ngôn ngữ truy vấn dữ liệu SQL.
Tuy nhiên có 1 vấn đề đặt ra đó là với các loại thời gian khác nhau thì
việc gán nhãn thời gian trên CSDL sẽ giải quyết như thế nào? Để giải quyết vấn
đề này, trong chương 2 của luận văn sẽ trình bày chi tiết về cách thức gán nhãn
thời gian giao tác trên CSDL và trong chương 3 của luận văn sẽ trình bày chi tiết
về cách thức gán nhãn thời gian hợp lệ trên CSDL.


16

Chương 2
GÁN NHÃN THỜI GIAN GIAO TÁC

TRÊN CƠ SỞ DỮ LIỆU
2.1. Giới thiệu
Như chúng ta đã tìm hiểu ở chương 1, thời gian giao tác là thời gian khi
thông tin thực sự được lưu giữ trong CSDL. Thời gian đó là giá trị của đồng hồ
hệ thống khi thông tin được lưu giữ là hợp lệ. Trong quan hệ thời gian giao tác,
bất cứ khi nào có một thay đổi trong CSDL thì mốc thời gian thực tế của giao
tác thực hiện sự thay đổi đó (như chèn, xóa, cập nhật) sẽ được ghi lại. Thời gian
giao tác bị chặn hai đầu bởi các thời điểm khi CSDL được khởi tạo và trạng thái
hiện thời của chính nó.
Nếu ta chuyển CSDL phi thời gian sang CSDL thời gian giao tác, thì ta
sẽ tiến hành gán nhãn thời gian giao tác cho CSDL bằng cách thêm vào các
thuộc tính thời gian bắt đầu giao tác TST và thời gian kết thúc giao tác TET có
kiểu dữ liệu là Timestamp như chúng ta đã tìm hiểu ở mục 1.3.1.
Trong chương 2 của luận văn sẽ trình bày một cách cụ thể quá trình gán
nhãn thời gian giao tác trên CSDL sẽ diễn ra như thế nào. Trong chương này,
luận văn sẽ trình bày những nội dung như sau:
 Tìm kiếm một giá trị nhãn thời gian giao tác
 Liên kết định danh các giao tác với các bộ dữ liệu
 Biểu diễn giá trị until changed (UC)
 Các phương pháp gán nhãn thời gian giao tác


17

2.2. Tìm kiếm một giá trị nhãn thời gian giao tác
Nếu các bộ dữ liệu được gán nhãn thời gian với thời gian ủy thác, thì sự
thay đổi bộ phận phải được hoãn lại cho đến khi giao tác ủy thác [19], việc nêu
ra điều này làm cho giao tác không thể thấy được sự thay đổi của chính nó.
Các bộ gán nhãn thời gian với thời gian tạm thời trước thời gian ủy thác làm
cho giao tác có thể thấy được sự thay đổi của chính nó.

Nhãn thời gian giao tác vĩnh viễn được áp dụng đầu tiên trước khi người
dùng ủy thác. Do đó, một vấn đề tiềm ẩn xuất hiện khi giao tác làm thay đổi
CSDL rồi lại truy vấn lại CSDL đó bằng cách tham chiếu đến các nhãn thời gian
giao tác như trong ví dụ 2.1 bên dưới đây.
Ví dụ 2.1. Xét quan hệ NV-TT mà chúng ta đã tìm hiểu ở mục 1.3.1.
Bảng 2.1. CSDL thời gian giao tác
TEN MANV LUONG MAPB TST

TET

Với dữ liệu ban đầu như bảng 2.2 dưới đây.
Bảng 2.2. Bộ dữ liệu trong quan hệ theo thời gian giao tác NV_TT
NV_TT
TÊN

MANV

LUONG

MAPB

TST

TET

An

101

25000


5

1997/06/08,

Uc

13:05:58
Trong đó có một giá trị đặc biệt là uc ở thời gian kết thúc giao tác TET. Giá trị
uc này cụ thể như thế nào sẽ được luận văn trình bày trong mục 2.4. bên dưới.


18

Bây giờ, ta tiến hành cập nhật lương mới cho nhân viên có tên “An” từ
25000 lên 30000 vào thời điểm là “1998/06/04; 08:56:12” và truy xuất lên nhãn
thời gian giao tác của NV_TT bằng câu lệnh truy vấn như sau:
--on 1998/06/04, 08:56:12:
UPDATE NV_TT SET LUONG =30000
WHERE TEN=’An’;
SELECT TEN, LUONG, TST, TET
FROM NV_TT;
COMMIT;
Với câu lệnh truy vấn này sẽ làm nảy sinh thêm 1 vấn đề đó là trong giao
tác có 1 thao tác cập nhật lương cho nhân viên An từ 25000 lên 30000 nên đã
làm thay đổi CSDL nhưng ngay sau đó lại có truy vấn đến các nhãn thời gian
giao tác trong CSDL đó. Đối với vấn đề này, chúng ta có thể xem xét giải quyết
như sau:
 Cách thứ nhất: Chúng ta có thể không cho phép truy vấn đó truy cập vào
nhãn thời gian.

 Cách thứ 2: Chúng ta có thể xem đây như là một lỗi cú pháp khi một
giao tác làm thay đổi một bộ dữ liệu và sau đó lại truy vấn đến thời gian
giao tác của bộ dữ liệu đó.
 Cách thứ 3: Chúng ta có thể cảnh báo cho người sử dụng trong quá trình
phân tích truy vấn khi gặp phải 1 câu lệnh tham chiếu một thuộc tính thời
gian giao tác, sau đó câu lệnh truy vấn sẽ được sửa đổi.
 Cách thứ 4: Chúng ta chỉ có thể trả về giá trị được lưu trữ tạm thời.
Việc không cho phép tham chiếu đến các nhãn thời gian, làm hạn chế
ngôn ngữ truy vấn. Việc đơn giản lấy lại giá trị tạm thời có thể gây ra sự bất ngờ


×