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

Cơ sở dữ liệu thời gian

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 (2.31 MB, 120 trang )

- 1-

MỤC LỤC
HT

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU


TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

DANH MỤC CÁC BẢNG VÀ HÌNH VẼ .............................................................. 3

TH


MỞ ĐẦU ................................................................................................................... 4
UT

CHƯƠNG 1: TỔNG QUAN VỀ CSDL VÀ CSDL THỜI GIAN ....................... 6
UT

1.1- GIỚI THIỆU ....................................................................................................... 6
UT

1.2 NHẮC LẠI MỘT SỐ KHÁI NIỆM TRONG CSDL QUAN HỆ: ..................... 7
UT

1.3- CƠ SỞ DỮ LIỆU CÓ YẾU TỐ THỜI GIAN ................................................... 9
UT

1.3.1- Dữ liệu thời gian và một số khái niệm cơ bản: ................................................ 9
UT

1.3.2- Khái niệm về Thời gian hợp thức và Thời gian giao dịch: ............................ 11
UT

1.3.3- Các vấn đề về thời gian hoá: .......................................................................... 14
UT

1.3.3.1 - Bán thời gian hoá: ...................................................................................... 15
UT

1.3.3.1.1 - Các ràng buộc: ........................................................................................ 17
UT


1.3.3.1.2 - Truy vấn .................................................................................................. 17
UT

1.3.3.2 -Thời gian hóa tồn phần: ............................................................................ 18
UT

1.3.3.2.1 – Ràng buộc .............................................................................................. 21
UT

1.3.3.2.2 – Truy vấn: ............................................................................................... 23
UT

1.4- BIỂU DIỄN YẾU TỐ THỜI GIAN TRONG CSDL THỜI GIAN. ................ 24
UT

1.4.1- Khoảng thời gian ............................................................................................ 24
UT

1.4.2- Các kiểu khoảng: ............................................................................................ 26
UT

1.4.2- Tốn tử vơ hƣớng trên khoảng: ...................................................................... 29
UT

1.4.3- Các toán tử gộp nhập trên khoảng ................................................................. 31
UT

1.4.5- Ràng buộc trên các khoảng ............................................................................ 41
UT


1.4.6- Toán tử Update trên khoảng: ......................................................................... 46
UT

CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU THỜI GIAN ................................. 48
UT

2.1- QUÁ TRÌNH THIẾT KẾ .................................................................................. 49
UT

2.1.1- Dƣ thừa dữ liệu và các dị thƣờng cập nhật .................................................... 51
UT

2.1.2- Chiều thời gian của thiết kế logic .................................................................. 52
UT

2.2. KIỂU VÀ MODUL THỜI GIAN: .................................................................... 54

Cơ sở dữ liệu thời gian

UT


- 2-

TU

TU

TU


TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU


TU

TU

TU

TU

TU

2.2.1- Kiểu thời gian: ................................................................................................ 54
UT

2.2.2 - Module thời gian: .......................................................................................... 57
UT

2.3. PHỤ THUỘC HÀM THỜI GIAN: ................................................................... 59
UT

2.3.1 - Các tiên đề suy diễn cho TFDs: .................................................................... 61
UT

2.3.2 - Bao đóng của một tập các thuộc tính: ........................................................... 68
UT

2.4. CHUẨN HOÁ THỜI GIAN: ............................................................................ 70
UT

2.5. DẠNG CHUẨN BOYCE-CODD CÓ YẾU TỐ THỜI GIAN. ........................ 79
UT


2.5.1 Tách các lƣợc đồ module thời gian về dạng TBCNF: ..................................... 80
UT

2.6. BẢO TỒN PHỤ THUỘC: ............................................................................. 86
UT

2.7. DẠNG CHUẨN BA CĨ YẾU TỐ THỜI GIAN .............................................. 88
UT

2.7.1 Tách lƣợc đồ module thời gian về dạng T3NF: .............................................. 89
UT

CHƯƠNG 3:

UT

TU

NGÔN NGỮ TRUY VẤN TSQL2 ........................................... 96
UT

3.1- GIỚI THIỆU ..................................................................................................... 96
UT

3.2- MỘT SỐ TÍNH NĂNG CẦN THIẾT CỦA NGÔN NGỮ TSQL2: ................ 97
UT

3.3- MỘT SỐ ĐẶC TẢ VỀ SỰ MỞ RỘNG CỦA TSQL2: .................................... 99
UT


3.4-VÍ DỤ MINH HOẠ. ........................................................................................ 102
UT

3.4.1 - Lƣợc đồ cho CSDL thử nghiệm. ................................................................. 102
UT

3.4.2 - Lƣợc đồ trong TSQL2 ................................................................................. 104
UT

3.4.3 - Cập nhật dữ liệu thử nghiệm. ...................................................................... 106
UT

3.4.4 - Một số truy vấn: .......................................................................................... 110
UT

MỘT SỐ HƯỚNG NGHIÊN CỨU TIẾP THEO ............................................. 113
UT

KẾT LUẬN ........................................................................................................... 117
UT

TÀI LIỆU THAM KHẢO ................................................................................... 118
UT

Cơ sở dữ liệu thời gian


- 3-


DANH MỤC CÁC BẢNG VÀ HÌNH VẼ

TU

TU

CHƢƠNG 1: TỔNG QUAN VỀ CSDL VÀ CSDL THỜI GIAN ............................ 6
UT

Bảng 1.1 CSDL Nhà cung cấp & Mặt hàng

(Phiên bản dạng ảnh hiện tại) ..................................................................................... 9
UT

TU

Bảng 1.2 CSDL Nhà cung cấp & Mặt hàng

(Phiên bản bán thời gian hoá với các giá trị đơn giản) ............................................. 15
UT

TU

Bảng 1.3 CSDL Nhà cung cấp & Mặt hàng

(Phiên bản thời gian hố tồn phần thứ nhất, Sử dụng các nhãn thời gian) ............. 19
UT

TU


Bảng 1.4 CSDL Nhà cung cấp & Mặt hàng

(Phiên bản thời gian hố tồn phần sau cùng , Sử dụng các khoảng) ...................... 25
UT

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

TU

CHƢƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU THỜI GIAN ...................................... 48

UT

Hình 2.1 Quá trình thiết kế một CSDL ................................................................... 50
UT

Hình 2.2: Ví dụ về quan hệ các khóa học. ................................................................ 52
UT

Hình 2.3. Phép tách tự nhiên. ................................................................................... 53
UT

Hình 2.4: Thuật tốn tìm X

+
U PU

UT

TPU

. ................................................................................. 69
UT

Hình 2.5: Thuật tốn tách về dạng chuẩn TBCNF. .................................................. 82
UT

Hình 2.6. Hàm Raise ................................................................................................ 87
UT

Hình 2.7 Thuật tốn tách về dạng chuẩn T3NF. ..................................................... 93

UT

CHƢƠNG 3:

UT

TU

NGÔN NGỮ TRUY VẤN TSQL2 ............................................. 96
UT

Bảng 3.1 - Nhanvien_Tbl ....................................................................................... 109
UT

Bảng 3.2 - Kynang_Tbl .......................................................................................... 109
UT

Bảng 3.3 - Phong_ban_Tbl ..................................................................................... 110
UT

Cơ sở dữ liệu thời gian


- 4-

MỞ ĐẦU
Hầu hết các ứng dụng kỹ thuật về cơ sở dữ liệu (CSDL) trong tự nhiên đều
mang yếu tố thời gian. Ví dụ: các ứng dụng về tài chính nhƣ: quản lý đầu tƣ, kế
tốn, ngân hàng; các ứng dụng lƣu trữ hồ sơ nhƣ: quản lý nhân sự, hồ sơ bệnh án,
quản lý kiểm kê, kiểm toán; các ứng dụng về lập lịch trong ngành đƣờng sắt, hàng

không, đặt chỗ khách sạn; các ứng dụng khoa học nhƣ: dự báo thời tiết, thảm hoạ tự
nhiên…v.v. Tất cả những ứng dụng đó đều dựa trên những CSDL ghi lại dữ liệu
tham chiếu tới thời gian và đƣợc gọi là “CSDL có yếu tố thời gian” hay “CSDL thời
gian” (Temporal Database).
Với những ứng dụng rộng rãi trong mọi lĩnh vực đời sống, quản trị CSDL
thời gian đƣợc xem là một lĩnh vực nghiên cứu đầy sức lôi cuốn, đã có hàng trăm
nhà nghiên cứu với trên 2000 bài viết về vấn đề này trong suốt 2 thập kỷ qua. Việc
xây dựng và ứng dụng một CSDL có yếu tố thời gian thành công mang một ý nghĩa
rất quan trọng trong thực tiễn. Một CSDL thời gian phải phản ánh hay biểu diễn
đƣợc một cách chân thực nhất, chính xác nhất về dữ liệu tại mọi thời điểm. Một hệ
quản trị CSDL có yếu tố thời gian sẽ quản lý những dữ liệu tham chiếu tới thời gian
(Time-referenced data), do đó các yếu tố thời gian gắn liền với các thực thể trong
CSDL.
Nói một cách khơng chặt chẽ, cơ sở dữ liệu (CSDL) thời gian là một CSDL
bao gồm dữ liệu mang tính lịch sử thay vì dữ liệu hiện tại. Một vài trong số những
nghiên cứu này đã thừa nhận một quan điểm cực đoan là dữ liệu trong một CSDL
đó chỉ đƣợc chèn (Insert), khơng bao giờ xố (Delete) hoặc đƣợc cập nhật (Update),
trong trƣờng hợp đó CSDL chỉ bao gồm dữ liệu mang tính lịch sử. Ở một thái cực
khác là một CSDL dạng ảnh, chỉ bao gồm dữ liệu hiện tại và dữ liệu đã đƣợc xóa
hoặc cập nhật khi các sự kiện biểu diễn bởi dữ liệu khơng cịn đúng (hay nói cách
khác, một CSDL dạng ảnh chỉ là một CSDL nhƣ cách hiểu thông thƣờng, chứ
không phải là CSDL biểu thị thời gian).

Cơ sở dữ liệu thời gian


- 5-

Trong quá trình lƣu trữ và thao tác trên CSDL thì giá trị của một số thuộc
tính ổn định theo thời gian, nhƣng với một số thuộc tính khác thì giá trị của chúng

lại thay đổi theo thời gian. Luận văn này nghiên cứu, hệ thống lại khái niệm về mơ
hình dữ liệu quan hệ có yếu tố thời gian kéo theo các phép toán đại số, mở rộng các
phụ thuộc hàm và các dạng chuẩn có yếu tố thời gian.
Trong thực tế, chúng ta sẽ gặp phải rất nhiều khó khăn khi quản trị CSDL
thời gian bằng những mơ hình dữ liệu và các ngơn ngữ truy vấn thông thƣờng
(không mang yếu tố thời gian). Từ những khái niệm cơ sở về CSDL thời gian, luận
văn tập trung vào nghiên cứu và trình bày cách giải quyết một số vấn đề liên quan
nhƣ:
 Biểu diễn yếu tố thời gian trong CSDL.
 Xây dựng những mơ hình CSDL thời gian, thêm yếu tố thời gian vào ngôn
ngữ truy vấn và chuẩn hoá các lệnh truy vấn.
 Thiết kế CSDL thời gian ở mức Logic và Khái niệm.
 Xử lý các câu lệnh truy vấn, các toán tử đại số, các chỉ mục (index) trên
CSDL thời gian.
Bản luận văn đƣợc chia thành bốn phần. Phần thứ nhất nhắc lại một số khái
niệm cơ bản về CSDL quan hệ, tiếp theo đó tập trung vào giới thiệu những nét tổng
quan về CSDL thời gian, những thuật ngữ cũng nhƣ những cơ sở để tiếp cận với
CSDL thời gian. Trong phần thứ hai, luận văn đi sâu vào việc nghiên cứu cách xây
dựng, thiết kế những CSDL có yếu tố thời gian, những vấn đề liên quan đến phụ
thuộc hàm thời gian, các dạng chuẩn thời gian và những thuật toán tách lƣợc đồ
module thời gian về các dạng chuẩn. Để có những minh hoạ rõ nét và cụ thể hơn về
CSDL thời gian, phần ba sẽ giới thiệu ngắn ngọn về ngơn ngữ truy vấn thời gian
(TSQL2) thơng qua một ví dụ cụ thể. Phần cuối của luận văn là phần nhận xét, kết
luận và một số hƣớng nghiên cứu tiếp theo.

Cơ sở dữ liệu thời gian


- 6-


U

CHƢƠNG 1 : TỔNG QUAN VỀ CSDL VÀ CSDL THỜI GIAN
U

1.1- GIỚI THIỆU
Một CSDL là một tập hợp các dữ liệu có liên quan với nhau chứa thơng tin
về một tổ chức nào đó (nhƣ một trƣờng đại học, một ngân hàng, một công ty, hay
một nhà máy…), đƣợc lƣu trữ trên các thiết bị nhớ thứ cấp (nhƣ đĩa từ, đĩa quang
học…) để đáp ứng nhu cầu khai thác thông tin của nhiều ngƣời sử dụng với nhiều
mục đích khác nhau. Do đó, trƣớc hết CSDL phản ánh đƣợc thông tin về hoạt động
của một tổ chức nhất định, nghĩa là biểu thị một “góc” của thế giới thực (tạm gọi là
một thế giới nhỏ). Nhƣ vậy CSDL cũng phải phản ánh đƣợc một cách trung thực sự
thay đổi của thế giới nhỏ đó, nó phải tập hợp thơng tin mang tính hệ thống chứ
khơng thể là một tập hợp dữ liệu tuỳ tiện chứa những thông tin rời rạc khơng có mối
quan hệ với nhau. Thơng tin lƣu trữ trong CSDL đƣợc chia sẻ cho nhiều ngƣời sử
dụng hay cho nhiều ứng dụng khác nhau. Từ đó cho thấy việc thiết kế, xây dựng
một CSDL phản ánh thế giới nhỏ đó một cách khách quan, chân thực và chính xác
đã trở thành một nhu cầu tất yếu. Từ những năm 80 của thế kỷ hai mƣơi, các hệ
CSDL dựa trên mơ hình quan hệ đƣợc sử dụng một cách rộng rãi bởi tính đơn giản
và các cơ sở tốn học của nó. Tuy nhiên cũng giống nhƣ những các hệ CSDL thông
thƣờng, CSDL quan hệ cũng chỉ biểu thị đƣợc những dữ liệu ở dạng tĩnh (dạng ảnh)
với mỗi sự kiện của thực thể tƣơng ứng.
Trong một CSDL dạng ảnh, yếu tố thời gian của bức ảnh thông thƣờng đƣợc
xem là thời điểm hiện tại (nghĩa là thời gian khi mà CSDL thực sự đƣợc xem xét.
Ngay cả khi yếu tố thời gian của CSDL dạng ảnh đơi khi diễn ra khác với “hiện tại”,
điều đó khơng tạo ra sự khác biệt nào đáng kể đến cách quản lý và sử dụng dữ liệu.
Tuy nhiên, nhƣ chúng ta sẽ thấy dữ liệu trong một CSDL thời gian đƣợc quản lý và
sử dụng rất khác trong hàng loạt phƣơng diện quan trọng so với cách nó đƣợc quản
lý và sử dụng trong một CSDL dạng ảnh; điều này đƣợc xem là phần quan trọng

nhất và sẽ đƣợc trình bày cụ thể sau phần nhắc lại một số những khái niệm cơ bản
về CSDL quan hệ.

Cơ sở dữ liệu thời gian


- 7-

1.2 NHẮC LẠI MỘT SỐ KHÁI NIỆM TRONG CSDL QUAN HỆ:
Mơ hình quan hệ biểu thị dữ liệu trong một CSDL nhƣ là một bảng giá trị
gồm các hàng và các cột. Mỗi hàng trong bảng là một tập các giá trị có liên quan
đến nhau, các giá trị này biểu thị một sự kiện tƣơng ứng với một thực thể hay một
mối quan hệ trong thế giới thực [1].
 Miền (Domain): Một miền D là một tập hợp các giá trị nguyên tố, hiểu theo
nghĩa mỗi giá trị trong miền không thể phân chia trong phạm vi mô hình
quan hệ.
 Quan hệ (Relation): Một quan hệ trên một tập các thuộc tính là một tập con
của tích Đềcác của một hay nhiều miền:
Cho một quan hệ r xác định trên tập thuộc tính Ω = {A 1 , A 2 ,…,A n }. Khi đó
B

B

B

B

B

B


r ⊆ Dom(A 1 ) × Dom(A 2 ) × …. × Dom(A n ), trong đó Dom(A i ) là miền của
B

B

B

B

B

B

B

B

thuộc tính A i , là tập các giá trị có thể của nó.
B

B

 Lược đồ quan hệ (Relation schema): Một lƣợc đồ quan hệ R là một cặp có
thứ tự R = <Ω, F>, trong đó Ω là tập hữu hạn các thuộc tính của quan hệ, F
là tập các điều kiện giữa các thuộc tính (F cịn gọi là tập các ràng buộc tồn
vẹn).
 Siêu khố của một lƣợc đồ quan hệ R là một tập hợp gồm một hay nhiều
thuộc tính của lƣợc đồ R có tính chất xác định duy nhất một bộ trong mỗi thể
hiện của R.

 Khoá của một lƣợc đồ quan hệ là một siêu khoá của lƣợc đồ này sao cho mọi
tập con thực sự của nó khơng là một siêu khố.
 Khố ngồi của một lƣợc đồ quan hệ là tập hợp gồm một hay nhiều thuộc
tính là khố của một lƣợc đồ quan hệ khác.
 Phụ thuộc hàm: Cho U là một tập thuộc tính và R(U) là một lƣợc đồ quan
hệ trên U. Giả sử X, Y ⊆U. Khi đó, Y đƣợc gọi là phụ thuộc hàm vào X trên
lƣợc đồ R(U), ký hiệu là X Y, nếu với mọi quan hệ r trên lƣợc đồ R(U), với
hai bộ bất kỳ t 1 , t 2 ∈ r, mà t 1 [X] = t 2 [X] thì t 1 [Y] = t 2 [Y].
B

B

B

B

Cơ sở dữ liệu thời gian

B

B

B

B

B

B


B

B


- 8-

 Bao đóng: Ta gọi bao đóng của tập hợp phụ thuộc hàm F là tập các phụ
thuộc hàm đƣợc suy diễn logic từ F và ký thiệu nó là F*. Hay nói một cách
hình thức: F*= { X  Y | F ⊨ (X  Y) }.
 Khoá: Giả sử U là một tập thuộc tính, R là một lƣợc đồ quan hệ trên U thỏa
một tập phụ thuộc hàm F, K là một tập con của U. Ta nói K là một khố của
R nếu:
o (K  U) ∈ F*, nghĩa là với mọi quan hệ r của lƣợc đồ R, hai bộ bất
kỳ của r bằng nhau trên K thì bằng nhau. (r ∈ R) (t 1 , t 2 ∈ r)
B

B

B

B

t 1 [K] = t 2 [K]  t 1 = t 2 .
B

B

B


B

B

B

B

B

o Nếu K‟ là tập con thực sự của K thì (K‟ U) ∉ F*
 Hệ tiên đề suy diễn Armstrong:
o Phản xạ:

Nếu Y ⊆ X thì X  Y

o Gia tăng:

Nếu X  Y thì với mọi Z ⊆ U : XZ  YZ

o Bắc cầu:

Nếu X  Y và Y  Z thì X  Z

 Phép tách với kết nối không mất thông tin: Phép tách R thành {R 1 ,
B

B

R 2 ,...,R 3 } đƣợc gọi là tách không mất thông tin đối với tập phụ thuộc hàm F,

B

B

B

B

nếu với mỗi quan hệ r trên R thoả mãn F, ta đều có r = r 1 * r 2 *....* r k , trong
B

B

B

B

B

B

đó r i = U i (r) (r i là kết quả của phép chiếu r trên U i ).
B

B

B

B


B

B

B

B

 Dạng chuẩn 3NF: Lƣợc đồ quan hệ R đƣợc gọi là thuộc dạng chuẩn ba
(3NF) nếu nó thuộc dạng chuẩn thứ nhất và với mọi X  A đúng trên R thì
hoặc X phải là siêu khố hoặc A phải là thuộc tính khố
 Dạng chuẩn BCNF: Lƣợc đồ quan hệ R chuẩn hóa với tập phụ thuộc hàm F
đƣợc gọi là thuộc dạng chuẩn BCNF nếu có X  A đúng trên lƣợc đồ R và A
∉ X thì X chứa một khố của R (nói cách khác, X là siêu khố).

Cơ sở dữ liệu thời gian


- 9-

1.3- CƠ SỞ DỮ LIỆU CÓ YẾU TỐ THỜI GIAN
1.3.1- Dữ liệu thời gian và một số khái niệm cơ bản:
Trƣớc khi bắt đầu xem xét tới các mô hình dữ liệu thời gian và những ngơn
ngữ truy vấn, chúng ta sẽ nghiên cứu những khái niệm độc lập với mơ hình dữ liệu,
sự gắn kết của yếu tố thời gian với các sự kiện, đó là vấn đề cốt lõi của quản lý dữ
liệu thời gian. Trong chƣơng này chúng ta sẽ sử dụng một CSDL đơn giản về “Nhà
cung cấp & Mặt hàng” để giải thích và minh hoạ những vấn đề liên quan đến CSDL
thời gian.
Bảng 1.1
CSDL Nhà cung cấp & Mặt hàng (Phiên bản dạng ảnh hiện tại)


(Các thuộc tính là khố chính trong các ví dụ đƣợc in đậm và gạch chân )
U

S:
TENCONGTY TRANGTHAI
VinhTrinh
20
CMC
10
HaiAn
30
VinaComm
20
Hanel
30

S#
S1
S2
S3
S4
S5
SP:
S#
S1
S1
S1
S1
S1

S1
S2
S2
S3
S4
S4
S4
U

U

P#
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
U

U

Cơ sở dữ liệu thời gian


DIACHI
HaNoi
SaiGon
SaiGon
HaNoi
DaNang

U


- 10 -

U

Chú ý: mỗi bộ trong bảng S thể nhiện: “Nhà cung cấp có số hiệu S#, có tên
U

là TENCONGTY, có tình trạng là TRANGTHAI và có trụ sở tại địa chỉ là
DIACHI”; mỗi bộ trong bảng SP minh hoạ nhà cung cấp S# hiện tại có khả năng
cung ứng mặt hàng P#.
Tất nhiên CSDL này là một CSDL dạng ảnh, và nó chỉ ra rằng trong số các
nhà cung cấp thì giá trị trạng thái hiện tại của S1 là 20. Một cách tƣơng phản, phiên
bản mang yếu tố thời gian của CSDL đó có thể chỉ ra không chỉ giá trị trạng thái
hiện tại là 20, mà nó cịn chỉ ra rằng giá trị này đƣợc thiết lập từ ngày 1 tháng 7 và
có thể giá trị đó là 15 từ ngày 5-04 đến 30-06 ...v.v.
Hiển nhiên, đặc điểm nổi bật của CSDL thời gian là chính yếu tố thời gian.
Do đó trong số các nghiên cứu về CSDL thời gian có nhiều khảo cứu về chính bản
chất của thời gian và một vài vấn đề sau đã đƣợc nghiên cứu thấu đáo:



Liệu thời gian có điểm đầu cũng như điểm kết thúc?



Thời gian là liên tục hay xuất hiện theo những lượng rời rạc?

 Việc mô tả khái niệm quan trọng: “hiện tại” (now) tốt đến mức nào?
Những vấn đề này tuy rất thú vị nhƣng khơng đơn thuần thuộc về khía cạnh
CSDL, và do vậy chúng ta sẽ không đi sâu vào xem xét trong chƣơng này. Thay vào
đó, ta đƣa ra các giả định hợp lý tại những chỗ thích hợp. Cách tiếp cận này cho
phép ta tiếp cận mục đích ban đầu một cách trực tiếp hơn. Tuy nhiên ta cũng chú ý
rằng, các nghiên cứu về thời gian dẫn tới một số kết luận thú vị, nêu lên ý tƣởng
phát triển dữ liệu thời gian cũng có thể có các ứng dụng trong nhiều lĩnh vực khác.
Xuyên suốt chƣơng này, ta vẫn sử dụng khóa thời gian, tốn tử thời gian, quan hệ
thời gian, mặc dù các khái niệm này không giới hạn chỉ trong dữ liệu thời gian. Sau
đây ta chỉ tập trung vào những vấn đề chúng ta quan tâm và quan trọng nhất của rất
nhiều ý tƣởng nghiên cứu (nói cách khác, trong chƣơng này chúng ta sẽ chắt lọc
những phần hay (chất lƣợng) của các nghiên cứu thông qua các vấn đề về các thuật
ngữ và những vấn đề nhỏ khác).
 Dữ liệu thời gian [2]: (Temporal data) Nếu dữ liệu là một cách biểu diễn mã
hóa của các sự kiện, thì dữ liệu thời gian là biểu diễn mã hoá của các sự kiện

Cơ sở dữ liệu thời gian


- 11 -

có nhãn thời gian (timestamps). Trong một CSDL thời gian, theo cách giải
thích cực đoan của thuật ngữ này, tất cả dữ liệu đều mang tính thời gian,
nghĩa là mọi bản ghi thực tế là các nhãn thời gian.

 Quan hệ thời gian: (Temporal relation) Một quan hệ thời gian là một quan
hệ mà trong mỗi bộ dữ liệu bao gồm ít nhất một nhãn thời gian (nghĩa là
phần mơ tả bao gồm tối thiểu một thuộc tính có kiểu nhãn thời gian).
 Biến quan hệ thời gian: (Temporal relvar 1 ) là một quan hệ mà phần mơ tả
P

P

của nó là mơ tả một quan hệ mang tính thời gian.
 CSDL thời gian: là một CSDL mà trong đó mọi biến quan hệ đều là thời
gian. CSDL thời gian quản lý những dữ liệu tham chiếu tới thời gian, do đó
các yếu tố thời gian gắn liền với những thực thể trong CSDL.

1.3.2- Khái niệm về Thời gian hợp thức và Thời gian giao dịch:
Những nghiên cứu trong thập kỷ trƣớc về CSDL thời gian chỉ ra một vấn đề
hóc búa. Dữ liệu thay đổi theo thời gian (Time-varying data) đƣợc xem là rất đơn
giản: nó có thể có nhiều hơn một giá trị, mỗi giá trị ứng với mỗi khoảng thời gian,
nhƣng việc thiết kế một mơ hình dữ liệu thời gian đúng là vơ cùng phức tạp. Đã có
rất nhiều mơ hình dữ liệu thời gian, tính tới nay đã có khoảng trên 40 mơ hình đƣợc
trình bày trong những tài liệu, và chắc chắn sẽ còn nhiều hơn thế. Do vậy chúng ta
sẽ làm thế nào để nắm đƣợc bản chất của dữ liệu thời gian.
Các học giả đã từ lâu công nhận sự lƣỡng phân (dichotomy) và tính đối ngẫu
(duality) giữa những sự kiện (events) và trạng thái (states). Một trạng thái là cái gì
đó mà nó đúng (true) về một đối tƣợng trong một khoảng thời gian, nhƣng không
đúng trong các khoảng thời gian trƣớc đó và sau đó. Một sự kiện đƣợc xem là một
điều gì đó “xảy ra” (happen). Các sự kiện phân định các trạng thái.
Với ví dụ Bảng 1.1 ở trên, ta sẽ xem xét một số cách diễn đạt tự nhiên liên
quan đến nhãn thời gian nhƣ sau:

1

TP

PT

Relvar là viết tắt của Relation Variable

Cơ sở dữ liệu thời gian


- 12 -

1. Nhà cung cấp S1 được chọn (nghĩa là được ký kết hợp đồng) vào ngày
01-07-1999.
2. Nhà cung cấp S1 trở thành nhà cung cấp được ký kết hợp đồng từ ngày
01-07-1999.

3. Nhà cung cấp S1 là một nhà cung cấp được ký kết hợp đồng trong
khoảng thời gian từ 01-07-1999 đến nay.
Mỗi phát biểu đó là một sự lý giải có thể của một bộ hai giá trị bao gồm nhà
cung cấp số hiệu S1 và nhãn thời gian 01-07-1999, và mỗi phát biểu trong số đó có
thể là thích hợp cho một bộ nếu nó xuất hiện trong CSDL dạng ảnh biểu diễn một
trạng thái hiện tại về hoạt động của một doanh nghiệp nào đó. Bây giờ mặc dù
chúng ta mới nói tới 3 cách lý giải có thể, nhƣng vẫn có những tranh cãi cho rằng
phát biểu 1, 2 và 3 là thực sự nói về cùng một điều bằng các cách nói với những
khác biệt nhỏ. Thực tế, ta có thể xem phát biểu 2 và 3 là tƣơng đƣơng, tuy nhiên
phát biểu 1 và 2 (hoặc 1 và 3) là không, cân nhắc một số vấn đề sau:
 Phát biểu 1 khẳng định rõ ràng rằng S1 không trở thành nhà cung cấp trƣớc ngày
01/07/1999, tức là ngày 30/06/1999 chẳng hạn, trong khi phát biểu 2 khơng nói
gì về sự kiện đó cũng nhƣ khơng suy ra sự kiện đó.
 Giả sử rằng hơm nay là 25/09/2000, phát biểu 2 nói rằng S1 là nhà cung cấp

trong mọi ngày từ 01/07/1999 tới 25/09/2000, trong khi phát biểu 1 khơng nói gì
về sự kiện đó cũng nhƣ khơng suy ra sự kiện đó.
Do đó, phát biểu 1 và 2 là khơng tƣơng đƣơng nhau, và không phát biểu nào
suy ra đƣợc phát biểu kia.
Điều đó nghĩa là, các bộ dữ liệu trong các CSDL dạng ảnh thƣờng bao gồm
những yếu tố nhƣ ngày tháng của một thời điểm, và các phát biển nhƣ phát biểu 2
hoặc 3 thƣờng là dành cho việc giải thích. Nếu là trƣờng hợp này thì phát biểu 1 ở
dạng hiện tại của nó là khơng lý giải chính xác, đầy đủ về bộ dữ liệu đang xét.
Chúng ta có thể làm chính xác hơn bằng cách phát biểu lại nó nhƣ sau: Nhà
cung cấp S1 đã hầu nhƣ đƣợc chọn ký hợp đồng vào 01-07-1999. Điều gì thêm vào
đó, nếu phiên bản này của phát biểu 1 thực sự là điều giả thiết của chúng ta về bộ

Cơ sở dữ liệu thời gian


- 13 -

hai giá trị đƣợc giả sử mang ý nghĩa. Do đó phát biểu 2 ở dạng hiện tại của nó cũng
khơng đƣợc hiểu một cách hồn tồn chính xác – nó cần phải đƣợc phát biểu lại nhƣ
sau: “Nhà cung cấp S1 không phải là nhà cung cấp chính thức vào

ngày

30-06-1999, mà chỉ bắt đầu từ ngày 01-07-1999.”

Nhận thấy rằng phát biểu 1 diễn tả một thời điểm mà một sự kiện nào đó xảy
ra trong khi phát biểu 2 và 3 diễn tả trong một khoảng thời gian trong đó một trạng
thái xác định tiếp tục tồn tại. Chúng ta đã cân nhắc thận trọng lựa chọn một ví dụ,
trong đó một trạng thái xác định có thể đƣợc suy diễn ra từ thông tin về một sự kiện
nhất định: Kể từ khi S1 đƣợc lựa chọn chính thức lần gần nhất vào 01-07-1999, nhà

cung cấp đó đã có trạng thái là đang ký hợp đồng kể từ ngày đó đến ngày hiện tại.
Thực tế cho thấy những kỹ thuật CSDL cũ quản lý các thời điểm xảy ra sự kiện khá
tốt, tuy nhiên chúng không quản lý tốt các khoảng thời gian.
Điều tiếp theo nhận thấy rằng, mặc dù phát biểu 2 và 3 là tƣơng đƣơng về
mặt lôgic, nhƣng dạng thức của chúng lại khác nhau đáng kể. Cụ thể là dạng của
phát biểu 2 không thể sử dụng để ghi lại sự kiện của quá khứ (bởi vì “từ” hàm ý đến
hiện tại), trong khi dạng của phát biểu 3 lại có thể- với điều kiện là chúng ta thay thế
cụm từ “ngày hiện tại” trong câu đó bởi một ngày chính xác nào đó nhƣ 25-092000. (Tất nhiên, câu đó sẽ tƣơng ứng với một bộ ba chứ không phải bộ hai). Ta kết
luận rằng: khái niệm “trong khoảng” là rất quan trọng với những bản ghi mang tính
lịch sử, ít nhất là với dữ liệu trạng thái nếu không phải là với dữ liệu sự kiện.
Có hai loại thời gian trong CSDL thời gian và việc hiểu chính xác đƣợc khái
niệm của hai loại thời gian này là vấn đề rất quan trọng.
Thuật ngữ [2]:
 Thời gian hợp thức (Valid time): Những thời điểm mà tại đó một sự
kiện nào đó xảy ra hoặc các khoảng thời gian trong đó tồn tại một trạng
thái xác định đƣợc gọi là thời gian hợp thức. Chính xác hơn là thời gian
hợp thức của một mệnh đề p là tập các thời điểm tại đó p đƣợc tin là
true.

Cơ sở dữ liệu thời gian


- 14 -

 Thời gian giao dịch (Transaction time): là một tập các thời điểm mà tại
đó p đã đƣợc thực sự biểu diễn là true trong CSDL.
- Thời gian hợp thức có thể đƣợc cập nhật để phản ánh những niềm tin thay
đổi, nhƣng thời gian giao dịch thì khơng thể; đó là do thời gian giao dịch đƣợc quản
lý hồn tồn bởi hệ thống, và khơng có ngƣời dùng nào đƣợc phép thay đổi chúng
bằng bất kỳ cách nào (điển hình là đƣơng nhiên chúng đƣợc ghi lại, ẩn hoặc tƣờng

minh, trong nhật ký giao dịch (transaction log)).
- Mặc dù mọi sự kiện đều có một thời gian hợp thức nhƣng thời gian hợp
thức của một sự kiện có thể khơng nhất thiết dƣợc ghi lại trong CSDL (có thể do
khơng nhận ra hoặc khơng liên quan đến ứng dụng).
- Thời gian giao dịch có thể đƣợc gắn với bất kỳ thực thể nào trong CSDL
chứ không phải chỉ gắn với các sự kiện. Cho dù mọi thực thể đều có thể đƣợc gán
cho một thời gian giao dịch nhƣng ngƣời thiết kế CSDL có thể thiết kế chỉ cho một
số các thực thể cần thiết. Khía cạnh thời gian giao dịch của một thực thể CSDL có
khoảng thời gian tồn tại từ phép chèn (insertion) cho đến phép xoá (detetion), và do
ngữ nghĩa của thời gian giao dịch phép xố là xố về lơgic chứ khơng phải là xố
vật lý, mà chỉ thơi khơng cịn là một phần trạng thái hiện tại của CSDL.

1.3.3- Các vấn đề về thời gian hoá:
Bây giờ ta tiếp tục thảo luận về một số ràng buộc đơn giản và truy vấn cho
CSDL về Nhà cung cấp & Mặt hàng trong Bảng 1.1, tiếp theo ta sẽ xem xét điều gì
sẽ xảy ra với những ràng buộc và truy vấn khi CSDL đƣợc mở rộng để bao gồm
những yếu tố đặc trƣng thời gian khác nhau.
 Ràng buộc (CSDL dạng ảnh hiện tại): Các ràng buộc mà chúng ta xem xét ở đây
là các ràng buộc về khóa (key constraints). Thuộc tính in đậm và gạch chân
trong Bảng 1.1 đƣợc sử dụng để biểu diễn rằng {S#} và {S#,P#} theo thứ tự
là khóa chính của S và SP. {S#} là một khóa ngồi trong SP tham chiếu tới
khóa chính của S. {P#} trong SP có thể là một khố ngồi tham chiếu tới khoá

Cơ sở dữ liệu thời gian


- 15 -

chính của một biến quan hệ “mặt hàng”, P, nhƣng chúng ta khơng muốn dùng
biến quan hệ đó trong ví dụ đơn giản này.

 Truy vấn (ảnh hiện tại): Ta chỉ xem xét 2 truy vấn mà cả 2 đều đƣợc thể hiện rất
đơn giản:
 Truy vấn 1.1: Lọc ra số hiệu của các nhà cung cấp đang cung ứng một loại
hàng nào đó.
SP{S#}
 Truy vấn 1.2: Lọc ra số hiệu của các nhà cung cấp hiện đang khơng có khả
năng cung ứng một loại hàng nào:
S{S#} MINUS SP{S#}
Xét thấy rằng truy vấn 1.1 gồm một phép chiếu đơn giản và truy vấn 1.2 là
hiệu của hai phép chiếu đơn giản đó. Phần tiếp theo ta sẽ xem xét tính tƣơng tự thời
gian (temporal analogs) của hai truy vấn này và sẽ thấy rằng chúng có liên hệ với
hai tốn tử đó.

1.3.3.1 – Bán thời gian hố:
Để tiến hành một cách thận trọng, bƣớc tiếp theo của chúng ta là thực hiện
bán thời gian hoá các biến quan hệ S và SP bằng cách thêm vào một thuộc tính
nhãn thời gian, SINCE, với mỗi biến quan hệ S và SP và đổi tên chúng một cách
phù hợp nhƣ trong Bảng 1.2 dƣới đây :
Bảng 1.2
CSDL Nhà cung cấp & Mặt hàng
(Phiên bản bán thời gian hoá với các giá trị đơn giản)

S:
S# TENCONGTY TRANGTHAI

DIACHI

SINCE

S1


VinhTrinh

20

HaNoi

d04

S2

CMC

10

SaiGon

d07

S3

HaiAn

30

SaiGon

d03

S4


VinaComm

20

HaNoi

d04

S5

Hanel

30

DaNang

d02

U

U

Cơ sở dữ liệu thời gian


- 16 -

SP:
U


S#

U

U

P#

U

SINCE

S1

P1

d04

S1

P2

d05

S1

P3

d09


S1

P4

d05

S1

P5

d04

S1

P6

d06

S2

P1

d08

S2

P2

d09


S3

P2

d08

S4

P2

d06

S4

P4

d04

S4

P5

d05

Để cho đơn giản, chúng ta sẽ không thể hiện các nhãn thời gian thực trong
Bảng 1.2; thay vào đó ta dùng ký hiệu dƣới dạng d01, d02…., trong đó d có thể
theo quy ƣớc đọc là “ngày”, một quy ƣớc đƣợc sử dụng trong suốt chƣơng này.
(Các ví dụ của chúng ta do đó tất cả đều sử dụng các điểm thời gian đặc biệt đó là
ngày). Ta giả sử rằng “ngay 01” là ngày ngay trƣớc “ngay 02”, “ngay 02” là

ngày ngay trƣớc “ngay 03” và tuần tự nhƣ vậy.
Tân từ đối với S_SINCE là kể từ ngày SINCE thì nhà cung cấp S# đƣợc đặt
tên là TENCONGTY, có một trạng thái là TRANGTHAI, và có trụ sở tại thành phố
DIACHI đã đƣợc ký kết hợp đồng chính thức. Tân từ đối với SP_SINCE là kể từ
ngày SINCE thì nhà cung cấp S# có khả năng cung cấp mặt hàng P#.

Cơ sở dữ liệu thời gian


- 17 -

1.3.3.1.1 Các ràng buộc:
Khố chính và khố ngồi của cơ sơ dữ liệu bán thời gian hoá này vẫn
nguyên nhƣ trƣớc. Tuy nhiên, chúng ta cần thêm một ràng buộc nữa – có thể đƣợc
xem nhƣ là sự bổ sung cho ràng buộc khố ngồi từ SP_SINCE tới S_SINCE để
biểu thị sự kiện là khơng có nhà cung cấp nào có thể cung cấp bất kỳ mặt hàng nào
trƣớc khi nhà cung cấp đó đƣợc ký kết chính thức. Hay nói cách khác, nếu bộ sp
trong SP_SINCE tham chiếu tới bộ giá trị s trong S_SINCE, thì giá trị SINCE
trong sp không đƣợc nhỏ hơn trong s:
CONSTRAINT AUG_SP_TO_S_FK
IS_EMPTY (((S_SINCE RENAME SINCE AS SS) JOIN
(SP_SINCE RENAME SINCE AS SPS)) WHERE SPS < SS);
Với ví dụ này chúng ta bắt đầu nhận thấy vấn đề. Cho trƣớc một CSDL bán
thời gian nhƣ Bảng 1.2, chúng ta sẽ có thể phải phát biểu nhiều ràng buộc “khố
ngồi đƣợc bổ sung” nhƣ vậy, và điều ta mong muốn là có đƣợc một phƣơng pháp
nhanh chóng thuận tiện cho mục tiêu của chúng ta.

1.3.3.1.2 Truy vấn
Bây giờ chúng ta sẽ xem xét phiên bản “bán thời gian” của truy vấn 1.1 và 1.2:
 Truy vấn 2.1: Lọc ra số hiệu của các nhà cung cấp mà đang cung ứng loại

hàng nào đó, chỉ ra trong mỗi trƣờng hợp ngày nào nhà cung cấp đó có thể
cung ứng.
Nếu nhà cung cấp Sx hiện tại có thể cung cấp vài mặt hàng, thì Sx có khả
năng cung cấp sớm nhất kể từ ngày SINCE chỉ thị cho Sx trong SP_SINCE
(ví dụ, nếu Sx là S1, ngày sớm nhất SINCE là d04). Do đó:
SUMMARIZE SP PER SP{S#} ADD MIN (SINCE) AS SINCE

sẽ cho kết quả là:

Cơ sở dữ liệu thời gian


- 18 -

S#

SINCE

S1

d04

S2

d08

S3

d08


S4

d04

U

U

 Truy vấn 2.2: Lọc ra số hiệu của các nhà cung cấp mà hiện không thể cung
ứng bất kỳ loại hàng nào, chỉ ra trong mỗi trƣờng hợp ngày nào nhà cung cấp
đó khơng thể cung ứng.
Trong dữ liệu đơn giản của chúng ta chỉ có một nhà cung cấp hiện không
cung cấp đƣợc mặt hàng nào đó là S5. Tuy nhiên ta khơng thể suy đƣợc ngày nào
S5 đƣợc ký hợp đồng nhƣng không cung cấp đƣợc mặt hàng nào, bởi vì thơng tin
trong CSDL là không đầy đủ và vẫn chỉ là đƣợc bán thời gian hố. Ví dụ giả sử
ngày hiện tại là d10: thì S5 đã có thể cung cấp ít nhất một mặt hàng kể từ ngày
d02, khi S5 đƣợc ký kết ít nhất cho tới ngày d09; hoặc cho tới một thái cực khác,
có thể là S5 chƣa từng bao giờ cung ứng mặt hàng nào.
Để trả lời cho truy vấn 2.2, ta phải hồn thiện việc “thời gian hố” CSDL của
chúng ta, hoặc chí ít là phần SP của nó. Để cho chính xác hơn, ta phải lƣu những
bản ghi có tính lịch sử trong CSDL để chỉ ra rằng nhà cung cấp nào là có thể cung
ứng mặt hàng nào, khi nào nhƣ trong phần tiếp theo đây.

1.3.3.2 -Thời gian hóa tồn phần:
Bảng 1.3 mơ tả một phiên bản thời gian hố hồn tồn về CSDL các Nhà
cung cấp & Mặt hàng mà chúng ta đang nghiên cứu. Nhận thấy rằng các thuộc tính
SINCE đã trở thành thuộc tính FROM, và mỗi biến quan hệ thời gian có thêm một
thuộc tính nhãn thời gian --gọi là TO. Thuộc tính FROM và TO cùng biểu diễn một
khái niệm của một khoảng thời gian mà trong đó một điều gì đó là đúng; do vậy ta


Cơ sở dữ liệu thời gian


- 19 -

thay tên biến quan hệ SINCE bằng FROM_TO. Vì hiện tại chúng ta đang lƣu trữ các
bản ghi mang tính lịch sử, do đó có nhiều bộ dữ liệu trong cở sở dữ liệu hơn là các
phiên bản trƣớc. Để xác định ta giả sử rằng ngày hiện tại là ngày d10, nên d10
xem nhƣ là giá trị TO cho mỗi bộ gắn liền với trạng thái hiện tại của mỗi sự vụ. Chú
ý là: Bạn có thể băn khoăn bằng kỹ thuật nào để thay thế toàn bộ những giá trị d10
đó thành d11 vào đúng lúc nửa đêm. Chúng ta sẽ tạm đặt vấn đề này sang một bên
và sẽ quay trở lại trong các phần sau.
Bảng 1.3
CSDL Nhà cung cấp & Mặt hàng
(Phiên bản thời gian hố tồn phần thứ nhất, Sử dụng các nhãn thời gian)

S_FROM_TO:

U

S# TENCONGTY TRANGTHAI DIACHI FROM TO
U

U

U

S1 VinhTrinh

20


HaNoi

d04

d10

S2 CMC

10

SaiGon

d07

d10

S2 CMC

10

SaiGon

d02

d04

S3 HaiAn

30


SaiGon

d03

d10

S4 VinaComm

20

HaNoi

d04

d10

S5 Hanel

30

DaNang

d02

d10

Cơ sở dữ liệu thời gian



- 20 -

SP_FROM_TO:

U

S#

U

U

P#

U

U

FROM TO
U

S1

P1

d04

d10

S1


P2

d05

d10

S1

P3

d09

d10

S1

P4

d05

d10

S1

P5

d04

d10


S1

P6

d06

d10

S2

P1

d02

d04

S2

P2

d03

d03

S2

P1

d08


d10

S2

P2

d09

d10

S3

P2

d08

d10

S4

P2

d06

d09

S4

P4


d04

d08

S4

P5

d05

d10

CSDL thời gian của Bảng 1.3 bao gồm tồn bộ mọi thơng tin từ CSDL bán
thời gian trong Bảng 1.2, cùng với những thơng tin mang tính lịch sử liên quan đến
thời kỳ trƣớc (từ ngày d02 đến d04) trong khoảng đó nhà cung cấp S2 đƣợc ký
kết chính thức. Tân từ đối với S_FROM_TO là “Nhà cung cấp S# đƣợc đặt tên là
TENCONGTY, có trạng thái là TRANGTHAI, đóng tại thành phố DIACHI,đã ký hợp
đồng chính thức, từ ngày FROM (không phải ngay ngày trƣớc ngày FROM) tới ngày
TO (không phải ngày ngay sau TO)”. Tân từ đối với SP_FROM_TO là tƣơng tự.

Cơ sở dữ liệu thời gian


- 21 -

1.3.3.2.1 – Ràng buộc
Trƣớc hết chúng ta tránh trƣờng hợp ngớ ngẩn là thời điểm TO đứng trƣớc
thời điểm FROM trong cặp FROM_TO:
CONSTRAINT S_FROM_TO_OK IS_EMPTY (S_FROM_TO WHERE TO < FROM);

CONSTRAINT SP_FROM_TO_OK IS_EMPTY (SP_FROM_TO WHERE TO < FROM);

Tiếp theo ta nhận thấy trong Bảng 1.3 có thêm thuộc tính FROM đƣợc gạch
chân mà chúng ta thêm vào trong khoá chính của cả S_FROM_TO và
SP_FROM_TO; ví dụ khố chính của S_FROM_TO hiển nhiên không chỉ là {S#},
bởi vậy chúng ta khơng thể có cùng một nhà cung cấp đƣợc ký kết lại có nhiều hơn
một giai đoạn liên tục. Áp dụng tƣơng tự cho SP_FROM_TO. Chú ý: Ta có thể sử
dụng các thuộc tính TO thay cho thuộc tính FROM; thực tế cả hai bảng
S_FROM_TO và SP_FROM_TO đều có hai khố dự tuyển là các ví dụ tốt về biến
quan hệ mà với chúng hiển nhiên là khơng có lý do gì để chọn một trong những
khóa đó làm khố chính. Chúng ta thực hiện việc chọn lựa chỉ thuần t để đƣợc sự
xác định rõ.
Tuy nhiên những khố chính đó khơng tự nó nắm bắt đƣợc mọi ràng buộc
nhƣ ta mong muốn. Ví dụ khi xem xet biến quan hệ S_FROM_TO. Rõ ràng là nếu
có một bộ cho nhà cung cấp Sx trong đó biến quan hệ với giá trị FROM là f và TO
có giá trị là t, khi đó ta muốn khơng có một bộ cho nhà cung cấp Sx nào trong biến
quan hệ đó chỉ ra rằng Sx đã đƣợc ký chính thức vào ngày ngay trƣớc ngày f hoặc
ngay sau ngày t. Ví dụ giả sử nhà cung cấp S1, với nhà cung cấp đó ta chỉ có một
bộ S_FROM_TO, với FROM = d04 và TO = d10. Thực tế chỉ {S#, FROM} là khố
chính cho biến quan hệ đó thì hiển nhiên khơng đủ để ngăn chặn sự xuất hiện của
một bộ giá trị S1 “trùng lặp thêm” (“additional -overlaping”) với FROM = d02 và
TO = d06 chỉ ra trong số những điều khác rằng S1 đƣợc ký kết chính thức vào ngày
ngay trƣớc ngày d04. Rõ ràng điều mà ta mong muốn là với hai bộ giá trị của S1
này có thể hợp nhất đƣợc lại thành một bộ giá trị với FROM = d02 và TO = d10.

Cơ sở dữ liệu thời gian


- 22 -


Do đó ràng buộc ở đây là chặn những điểm lặp và tiếp giáp đó:
CONSTRAINT AUG_S_FROM_TO_PK
IS_EMPTY (((S_FROM_TO RENAME FROM AS F1, TO AS T1)
JOIN S_FROM_TO RENAME FROM AS F2, TO AS T2))
WHERE (T1 ≥ F2 AND T2 ≥ F1)) OR
(F2 = T1+1 OR F1 = T2+1));

Biểu thức này là khá phức tạp, không đề cập đến cách viết tổng quát, ví dụ “T1+1”
là một ngày ngay sau ngày đƣợc biểu diễn bởi T1, vấn đề này ta sẽ quay trở lại sau
trong Phần 1.4.2 (Các kiểu khoảng).
Tiếp theo, chú ý rằng tổ hợp các thuộc tính {S#, FROM} trong biến quan hệ
SP_FROM_TO khơng phải là một khố ngồi từ SP_FROM_TO tới S_FROM_TO
(cho dù nó bao gồm những thuộc tính giống nhau, S# và FROM, tƣơng tự khố
chính của S_FROM_TO). Tuy nhiên, chúng ta cần chắc chắn rằng nếu một nhà cung
cấp nào đó xuất hiện trong SP_FROM_TO, thì cũng nhà cung cấp đó sẽ xuất hiện
trong S_FROM_TO:
CONSTRAINT AUG_SP_TO_S_FK_AGAIN1
SP_FROM_TO {S#}



S_FROM_TO {S#};

Nhƣng ràng buộc AUG_SP_TO_S_FK_AGAIN1 bản thân nó khơng đầy đủ, ta
cũng cần phải chắc chắn rằng (thậm chí nếu mọi mong muốn kết hợp các bộ dữ liệu
đã đƣợc thực hiện) nếu SP_FROM_TO chỉ ra một vài nhà cung cấp có khả năng
cung cấp một số mặt hàng trong một số khoảng thời gian, thì S_FROM_TO chỉ ra
rằng cũng nhà cung cấp đó phải đƣợc ký kết hợp đồng trong cùng khoảng thời gian.
Ta sẽ thử nhƣ sau:
CONSTRAINT AUG_SP_TO_S_FK_AGAIN2 /* chưa chính xác! */

IS_EMPTY ((S_FROM_TO RENAME FROM AS SF, TO AS ST)
JOIN (SP_FROM_TO RENAME FROM AS SPF, TO AS SPT))
WHERE SPF < SF OR SPT > ST);

Cơ sở dữ liệu thời gian


- 23 -

Tuy nhiên đặc tả này thực tế là khơng chính xác. Để hiểu rõ tại sao, cho
S_FROM_TO nhƣ mô tả trong Bảng 1.3, và cho S_PFROM_TO bao gồm một bộ
giá trị của nhà cung cấp S2 với FROM = d03 và TO = d04. Sự sắp xếp đó rõ ràng là
phù hợp, khi đó ràng buộc AUG_SP_TO_S_FK_AGAIN2 giống nhƣ một phép
chặn thực sự trạng thái.
Chúng ta sẽ không giải quyết vấn đề này ở đây mà sẽ xem xét trong phần sau
(Ràng buộc trên khoảng). Tuy nhiên ta nhận thấy giống nhƣ nội dung của một thuật
ngữ mà nếu (nhƣ chú ý ở phần trƣớc) sự kết hợp thuộc tính {S#,FROM,TO} trong
biến quan hệ S_FROM_TO đƣợc xem nhƣ một “khóa dự tuyển thời gian” , khi đó
tổ hợp các thuộc tính {S#,FROM,TO} trong biến quan hệ SP_FROM_TO đƣợc
xem là “khóa ngồi thời gian” (cho dù thực tế nó khơng phải là một khóa ngồi
nhƣ vậy).

1.3.3.2.2 – Truy vấn:
Các phiên bản “thời gian hóa tồn phần” của truy vấn 1.1 và 1.2 là:
 Truy vấn 3.1: Cho S#-FROM-TO là bộ ba giá trị của những nhà cung cấp có
U

U

khả năng cung cấp một số mặt hàng vào một số thời điểm nào đó, trong đó

FROM và TO cùng chỉ rõ một khoảng liên tục tối đa trong đó nhà cung cấp
S# thực tế đã có khả năng cung cấp một số mặt hàng. Chú ý: Chúng ta sử
dụng thuật ngữ “tối đại” (maximal) ở đây nhƣ một giải thích ngắn gọn thuận
tiện hàm ý (trong trƣờng hợp sắp tới) rằng nhà cung cấp S# đã không thể
cung cấp bất kỳ mặt hàng nào vào ngày ngay trƣớc ngày FROM và ngay sau
ngày TO.
 Truy vấn 3.2: Cho S#-FROM-TO là bộ ba giá trị của những nhà cung cấp
U

U

khơng có khả năng cung cấp bất kỳ mặt hàng tại mọi thời điểm, trong đó
FROM và TO cùng chỉ rõ một khoảng liên tục tối đại trong đó nhà cung cấp
S# thực tế đã khơng có khả năng cung cấp bất kỳ mặt hàng nào.

Cơ sở dữ liệu thời gian


- 24 -

Vấn đề của dữ liệu có yếu tố thời gian là nó nhanh chóng dẫn đến các ràng
buộc và truy vấn mà đều trong tình trạng quá phức tạp trừ khi hệ thống có thể cung
cấp những phƣơng pháp ngắn gọn đƣợc thiết kế tốt, tất nhiên nhƣ chúng ta biết với
hệ thống những sản phẩm thƣơng mại ngày nay thì lại khơng thể.

1.4- BIỂU DIỄN YẾU TỐ THỜI GIAN TRONG CSDL THỜI GIAN.

1.4.1- Khoảng thời gian
Chúng ta sẽ bắt đầu sự phát triển về một tập hợp thích hợp ngắn ngọn. Bƣớc
đầu tiên và cơ bản nhất là thừa nhận sự cần thiết phải đề cập tới các khoảng

(Intervals) một cách đúng đắn, thay vì chỉ xem chúng nhƣ là những cặp giá trị độc
lập nhƣ chúng ta đã thực hiện ở các phần trƣớc. Vậy chính xác một khoảng là gì?
Căn cứ vào Bảng 1.3, nhà cung cấp S1 đã có thể cung cấp mặt hàng P1 trong suốt
khoảng từ ngày 04 đến ngày 10. Nhƣng “từ ngày 04 đến ngày 10” có nghĩa là gì?
Chắc chắn là nó bao gồm ngày 5,6,7,8 và 9, vậy cịn điểm đầu và điểm cuối, ngày 4
và 10 thì sao? Điều đó chỉ ra rằng: cho trƣớc một khoảng xác định, đôi khi ta thấy
điểm đầu và điểm cuối là bao gồm trong khoảng nhƣng đơi khi thì khơng phải vậy.
Nếu khoảng từ ngày 4 đến ngày 10 có bao gồm ngày 4, ta gọi đó là khoảng đóng tại
điểm đầu, trƣờng hợp ngƣợc lại ta gọi khoảng là mở tại điểm đầu. Cũng tƣơng tự
vậy nếu khoảng bao gồm cả ngày 10 ta gọi là khoảng đóng tại điểm cuối, ngƣợc lại
ta gọi là khoảng mở tại điểm cuối.
Ta quy ƣớc cách chỉ rõ một khoảng bởi điểm đầu và điểm cuối của nó (theo
trật tự đó) nhƣ sau: ký hiệu dấu “ [ “ cho khoảng đóng và “(“ cho khoảng mở. Do
đó có 4 cách khác nhau để biểu diễn một khoảng xác định từ ngày 4 tới ngày 10 bao
gồm cả ngày 4 và ngày 10:
 [d04, d10]
 [d04, d11)
 (d03, d10]
 (d03, d11)

Cơ sở dữ liệu thời gian


- 25 -

Chú ý: Thực tế kiểu đóng [...] thƣờng đƣợc sử dụng nhiều hơn cả, và ta cũng dùng
kiểu này trong các biểu diễn tiếp theo.
Cho trƣớc khoảng [d04, d10] là những giá trị trong thứ tự đúng của nó;
Việc tổ hợp các thuộc tính FROM và TO của SP_FROM_TO (trong Bảng 1.3) thành
một thuộc tính đơn, DURING, những giá trị của chúng đƣợc rút ra từ một kiểu

khoảng nào đó là có ý nghĩa. Ƣu điểm ngay lập tức của ý tƣởng này là tránh đƣợc
một sự lựa chọn tuỳ hứng cần thiết nhƣ là lựa chọn khoá nào làm khố chính trong
các khố {S#,FROM} và {S#,TO}. Một ƣu điểm khác là nó cũng tránh đƣợc điều
cần thiết phải quyết định: liệu các khoảng FROM –TO trong Bảng 1.3 đƣợc lý giải là
đóng hay mở đối với mỗi giá trị FROM và TO; thực tế [d04, d10], [d4, d11),
(d03, d10] và (d03, d11) bây giờ trở thành 4 cách biểu diễn khác nhau có thể có
của cùng một khoảng và chúng ta không cần thiết phải biết đâu là cách biểu diễn
thực sự. Một ƣu điểm nữa là biến quan hệ ràng buộc “để tránh đƣợc điều vô lý là
một cặp FROM ≤ TO trong đó thời điểm TO lại xảy ra trƣớc thời điểm FROM” (nhƣ
ta đặt trong phần 5.3) là khơng cần thiết nữa, bởi vì ràng buộc “FROM TO” là ẩn
trong mọi khái niệm về một kiểu khoảng.
Bảng 1.4 là kết quả khi chấp nhận tiếp cận này đối với CSDL ví dụ của
chúng ta.
Bảng 1.4
CSDL Nhà cung cấp & Mặt hàng
(Phiên bản thời gian hố tồn phần sau cùng , Sử dụng các khoảng)

S_DURING:
S# TENCONGTY TRANGTHAI DIACHI

DURING

S1 VinhTrinh

20

HaNoi

[d04, d10]


S2 CMC

10

SaiGon

[d07, d10]

S2 CMC

10

SaiGon

[d02, d04]

S3 HaiAn

30

SaiGon

[d03, d10]

S4 VinaComm

20

HaNoi


[d04, d10]

S5 Hanel

30

DaNang

[d02, d10]

U

U

Cơ sở dữ liệu thời gian


×