Tải bản đầy đủ (.doc) (22 trang)

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO NGỮ NGHĨA CỦA CƠ SỞ DỮ LIỆU CÓ YẾU TỐ 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 (222.66 KB, 22 trang )

1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TIỂU LUẬN
CƠ SỞ DỮ LIỆU NÂNG CAO
ĐỀ TÀI
NGỮ NGHĨA CƠ SỞ DỮ LIỆU CÓ YẾU TỐ THỜI GIAN
GVHD: PGS.TS. Nguyễn Hà Nam HVTH: Nguyễn Thị Duyên
Nguyễn Thị Việt
Tháng 3/2012
MỤC LỤC
A. Lý do chọn đề tài 3
B. Nội dung 4
I. Về mặt lưu trữ 4
1. Thiết kế ở mức khái niệm 4
1.1. Thời gian hợp lệ, thời gian giao tác 4
1.2. Lược đồ CSDL ở mức khái niệm 6
2. Thiết kế ở mức lôgíc 8
2.1. Bảng thời gian hợp lệ 10
2.2. Bảng thời gian giao tác 13
2.3. Bảng theo hai loại thời gian 14
2.4. Những lưu ý khi thiết kế cơ sở dữ liệu có yếu tố thời gian 18
3. Thiết kế ở mức vật lý 19
II. Về mặt truy vấn 19
C. Kết luận 21
I. Kết quả đã đạt được 21
II. Hạn chế còn tồn tại 21
III. Hướng phát triển của đề tài 21
D. Tài liệu tham khảo 22
2
A. Lý do chọn đề tài


Cơ sở dữ liệu là một lĩnh vực thu hút khá nhiều sự quan tâm tìm hiểu của các
nhà nghiên cứu cả về lý thuyết cũng như xây dựng các phần mềm ứng dụng.Trong đó
quản lý CSDL có yếu thời gian đang là khía cạnh nghiên cứu sôi nổi với hàng trăm nhà
nghiên cứu tích cực nghiên cứu hơn hai thập kỷ qua nhằm đưa ra được các CSDL hữu
ích.
Phần lớn các ứng dụng CSDL đều quản lý các dữ liệu thay đổi theo thời gian.
Ví dụ, các ứng dụng về tài chính như quản lý hồ sơ, điều hành ngân hàng hay quản lý
nhân sự; các ứng dụng liên quan đến việc lập thời gian biểu như quản lý việc đặt chỗ
trước trong ngành hàng không, ga tàu và khách sạn; các ứng dụng khoa học như dự báo
thời tiết Các ứng dụng như thế đều dựa trên CSDL có yếu tố thời gian. Nhưng trong
thực tế, người sử dụng thường cố gắng để đơn giản hóa hay phớt lờ các lĩnh vực có yếu
tố thời gian do sự phức tạp của chúng mang lại trong các ứng dụng của họ.
Có thể nói rằng thiết kế CSDL là một công việc rất quan trọng, nó ảnh hưởng rất
nhiều đến chất lượng của ứng dụng. Đặc biệt quan trọng khi thiết kế đối với CSDL có yếu
tố thời gian. Thiết kế CSDL có yếu tố thời gian là một việc rất khó vì sự phức tạp của yếu
tố thời gian đem lại.
Công nghệ CSDL hiện có chỉ hỗ trợ một phần nhỏ cho việc quản lý các dữ liệu
như thế. Vì vậy, các nghiên cứu về CSDL có yếu tố thời gian hiện nay chú trọng vào
việc thay đổi tình trạng đó bằng cách miêu tả rõ đặc điểm ngữ nghĩa của dữ liệu có yếu
tố thời gian và đưa ra các cách thức hiệu quả để xây dựng các mô hình, lưu trữ và truy
vấn dữ liệu có yếu tố thời gian.
Với mong muốn được tìm hiểu CSDL thời gian, theo hướng miêu tả ngữ nghĩa
của CSDL thời gian, đưa ra cách thức xây dựng các mô hình lưu trữ, xây dựng phép
toán hỗ trợ truy vấn trên CSDL thời gian; cùng sự hướng dẫn của thầy giáo chúng tôi
chọn đề tài: Ngữ nghĩa cơ sở dữ liệu có yếu tố thời gian.
3
B. Nội dung
I. Về mặt lưu trữ
1. Thiết kế ở mức khái niệm
1.1. Thời gian hợp lệ, thời gian giao tác

Trước khi chúng ta đi đến tìm hiểu mô hình dữ liệu có yếu tố thời gian, thì
chúng ta cần nhìn lại đặc điểm mô hình dữ liệu thông thường. Ta biết rằng trong một
CSDL thông thường khi dữ liệu đượ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 đối với 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 điểm
hiện thời không. Như vậy, bằng cách kết hợp dữ liệu với thời gian thì ta có thể lưu lại
các trạng thái khác nhau đó trong CSDL.
Một mô hình dữ liệu và các bản ghi thông tin về một phần của thực tế được gọi
là mô hình thực tế. Mô hình thực tế được biểu diễn trong CSDL bằng nhiều cấu trúc
khác nhau mà chúng ta gọi đơn giản là các thực thể CSDL. Ví dụ: Tập thực thể nhân
viên, tập thực thể lớp học, tập thực thể môn học, …Chúng ta thường chủ yếu quan tâm
đến các sự kiện được ghi lại bởi các thực thể CSDL.
Có 2 loại thời gian khác nhau có thể được kết hợp với các sự kiện được ghi lại
bởi các thực thể CSDL:
Thứ nhất đó là thời gian hợp lệ: Thời gian hợp lệ của một sự kiện là một tập
thời gian – có thể là quá khứ, hiện tại và tương lai – khi sự kiện là thực ở trong mô
hình thực tế. Như vậy, thời gian hợp lệ sẽ lưu lại các trạng thái thay đổi theo thời gian
trong mô hình thực tế. Theo định nghĩa như vậy thì tất cả các sự kiện đều có một thời
gian hợp lệ.
Ví dụ: Cho tập thực thể NHÂN VIÊN với các thuộc tính: Tên, mã nhân viên,
lương, mã phòng ban mà nhân viên làm việc. Trong mô hình thực tế luôn có những sự
kiện xảy ra và tạo ra các trạng thái mới của tập thực thể nhân viên. Chúng ta xem xét
bảng dữ liệu sau:
4
TEN MANV LUONG MAPB VST VET

An 101 25000 5 1997-06-15 1998-05-31
An 101 30000 5 1998-06-01 now
Nam 102 25000 4 1994-08-20 1996-01-31
Nam 102 30000 5 1996-02-01 1997-03-31
Nam 102 40000 5 1997-04-01 now
Long 103 28000 4 1996-05-01 1997-08-10
Hùng 104 38000 5 1996-06-01 now
Bàn về cấu trúc lưu trữ, chúng ta sẽ xem xét ở phần sau. Ta xét dòng thứ 3 trong
bảng dữ liệu trên nó mô tả các giá trị thuộc tính của 1 thực thể có tên là Nam trong tập
thực thể nhân viên. Vào thời điểm từ 1994-08-20 đến 1996-01-31, Nam làm việc tại
phòng có mã là 4, lương Nam nhận được là 25000, đây được coi là một trạng thái của
thực thể này. Khoảng thời gian [1994-08-20, 1996-01-31] là thời gian mà trạng thái đó
là đúng trong mô hình thực tế và được gọi là thời gian hợp lệ của trạng thái đó. Khi
một sự kiện xảy ra (sự kiện ở đây đó là nhân viên này được chuyển sang phòng có mã
là 5) sẽ tạo ra 1 trạng thái mới của thực thể này. Và tương tự, trạng thái này cũng có
thời gian hợp lệ của nó trong mô hình thực tế và được lưu trữ trữ.
Thứ hai đó là thời gian giao tác: Thời gian giao tác của một sự kiện đó là thời
gian khi sự kiện là hiện thời ở trong CSDL. 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 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.
Khi một thực thể được kết hợp với thời gian giao tác thì sẽ làm cho việc xóa một thực
thể chỉ được thực hiện về mặt logic. Việc xóa một thực thể không phải là loại bỏ về
mặt vật lý một thực thể ra khỏi CSDL, mà đúng hơn là nó vẫn còn tồn tại trong CSDL
nhưng tạm ngừng trạng thái hiện tại trong CSDL. Đối với các ứng dụng đòi hỏi trách
nhiệm phải giải thích hoặc có thể theo dõi dựa vào CSDL thì đều sử dụng thời gian
giao tác.
Ví dụ: Trở lại với tập thực thể nhân viên.

5
TÊN MANV

LUONG MAPB TST

TET
v1 An 101 25000 5 1997-06-08,
13:05:58
1998-06-04,
08:56:12
v2 An 101 25000 5 1998-06-04,
08:56:12
Uc
v3 An 101 30000 5 1998-06-04,
08:56:12
Uc
v4 Nam 102 25000 4 1994-08-20,
11:18:23
1996-01-07,
14:33:02
v5 Nam 102 25000 4 1996-01-07,
14:33:02
Uc
v6 Nam 102 30000 5 1996-01-07,
14:33:02
1997-03-28,
09:23:57
v7 Nam 102 30000 5 1997-03-28,
09:23:57
Uc

Ở đây ta cũng chưa cần xét đến việc lưu trữ, xét dòng thứ nhất của bảng dữ liệu.
Dòng này lưu trữ 1 trạng thái của thực thể nhân viên có tên là An, mức lương 25000 và
làm việc tại phòng có mã là 5 với khoảng thời gian được kết hợp vào là [1997-06-
08,13:05:58 ; 1998-06-04,08:56:12]. Ở đây, thời điểm 1997-06-08,13:05:58 là thời điểm
mà trạng thái này được tạo ra trong thực tế , thời điểm 1998-06-04,08:56:12 là thời
điểm trạng thái này được xóa đi.
1.2. Lược đồ CSDL ở mức khái niệm
Lược đồ CSDL ở mức khái niệm của một hệ thống thông tin là một mô hình
thông tin cơ bản trong suốt quá trình thiết kế. Lược đồ đó là những đòi hỏi, những yêu
cầu của người sử dụng đối với phạm vi của ứng dụng, và nó được chuyển thành các
cấu trúc thông tin tóm tắt. Khi phát triển các yêu cầu này trong thiết kế ở mức khái
niệm, yếu tố thời gian đã được đưa vào. Điều này làm tăng thêm tính phức tạp của mô
hình khái niệm, làm cho nó khó hiểu và khó sử dụng. Để làm giảm bớt các trở ngại
này, chúng ta chọn phải ra một hình thức đơn giản nào đó nhưng phải cải thiện được độ
tin cậy của quá trình phân tích.
6
Những yêu cầu của mô hình ở mức khái niệm mà người thiết kế cần phải
quan tâm:
• Thứ nhất, những người phát triển ứng dụng cho rằng nó phải dễ sử dụng hơn khi
các loại thời gian được đưa vào trong các bản ghi thông tin của mô hình ứng
dụng.
• Thứ hai, phải đảm bảo cho khoảng cách giữa mô hình ở mức khái niệm và mô
hình quan hệ của nó hẹp hơn, một chất lượng mà được các nhà lập trình đánh
giá cao.
• Thứ ba, lược đồ biểu diễn trong mô hình có thể được chuyển đổi thành các cấu
trúc đơn giản hơn mà không làm mất thông tin khi chuyển đổi.
Mô hình ở mức khái niệm như chúng ta biết đó là mô hình thực thể – mối quan
hệ gồm có ba cấu trúc chính, đó là các tập thực thể, các thuộc tính nguyên tử có giá trị
đơn và các mối quan hệ. Mỗi cấu trúc có thể là phi thời gian hay có yếu tố thời gian.
Trong trường hợp các cấu trúc là phi thời gian, thì chỉ những trạng thái hiện thời là

đáng quan tâm. Còn trường hợp các cấu trúc là có yếu tố thời gian, thì chúng ta lại
quan tâm đến việc lưu giữ các trạng thái quá khứ, hiện tại và tương lai.
Vậy trên mô hình thực thể- mối quan hệ, để biểu diễn một cấu trúc có yếu tố
thời gian thì như thế nào?
Nếu các loại yếu tố thời gian có thể là thời gian hợp lệ (/v), thời gian giao tác
(/t) hay cả hai loại (/b). Một cấu trúc là phi thời gian nếu nó không được đánh dấu kèm
theo với một thẻ thời gian: /v, /t hay /b. Một thực thể có thể có một định danh chính
(hay khóa chính) và một vài khóa phụ khác. Một mối quan hệ có hai hoặc nhiều nhánh,
mỗi nhánh được tạo ra bởi một tập thực thể. Một nhánh có một ràng buộc chính được
xác định bởi hai con số, các giá trị chung thường sử dụng đó là 0-1, 1-1, 0-N

Hình 1.5: Lược đồ ở mức khái niệm.
Theo đó thì trong lược đồ ở mức vật lý này các thông tin về thời gian có phải là
bộ phận thuộc tính của tập thực thể hay không? Nếu một tập thực thể là có yếu tố thời
7
DuAn/b
TENDA

PhongBan/b
id: TENDA
LamViec/
v
1-1
0-N
NhanVien/v
MANV

Ten
Luong/v
ĐiaChi/v

id: MANV
gian, thì với mỗi thực thể đã hay đang tồn tại, lúc nó ra đời hay lúc kết thúc đều có thể
nhận biết được (đây chính là thời gian hợp lệ), hay lúc ghi lại chúng (trong CSDL) và
lúc xóa bỏ chúng cũng có thể biết được (đây chính là thời gian giao tác). Trong lược đồ
ở mức vật lý này các thông tin này đều là ngầm ẩn và không phải là bộ phận thuộc tính
của tập thực thể. Nếu một thuộc tính là có yếu tố thời gian, thì tất cả các giá trị của
thuộc tính đó trong một thực thể cũng có thể nhận biết được. Nếu một mối quan hệ là
có yếu tố thời gian, thì lúc bắt đầu hay lúc chấm dứt mối quan hệ đó đều có thể nhận
biết được.
Để đảm bảo độ ổn định của CSDL có yếu tố thời gian, và cũng để giới hạn độ
phức tạp của nó và để làm cho việc xây dựng mô hình ở logic và mức vật lý của nó
được dễ dàng hơn và hiệu quả hơn, thì mô hình này phải xử lý tốt một số ràng buộc của
các lược đồ:
1) Các thuộc tính có yếu tố thời gian của một tập thực thể phải có cùng thẻ thời
gian;
2) Thẻ thời gian của một tập thực thể phải giống với thẻ của các thuộc tính có
yếu tố thời gian của nó; không có ràng buộc nào nếu nó không có thuộc tính
có yếu tố thời gian nào;
3) Mỗi tập thực thể có yếu tố thời gian có một định danh chính (hay khóa
chính) bắt buộc, ổn định và các thuộc tính không lặp; không có ràng buộc
nào trên các định danh khác;
4) Tập thực thể xuất hiện trong nhánh [i-1] của mối quan hệ theo thời gian một-
nhiều R thì có cùng thẻ thời gian như R; mối quan hệ một-một được ràng
buộc như một-nhiều;
5) Tập thực thể xuất hiện trong nhánh [0-N] của mối quan hệ theo thời gian
một-nhiều R thì có một thẻ thời gian thích hợp (khi được chuyển thành khóa
ngoài hợp lệ) với các thẻ của R; mối quan hệ một-một được ràng buộc như
một-nhiều;
Một lược đồ ở mức khái niệm mà gặp tất cả các điều kiện này có thể được
chuyển đổi thành một lược đồ quan hệ thích hợp.

2. Thiết kế ở mức lôgíc
Mô hình này thường là mô hình quan hệ, được chuyển từ mô hình thực thể –
mối quan hệ.
8
Mô hình này gồm có các bảng, các cột, các khóa chính, khóa phụ và các khóa
ngoài. Những cấu trúc này có thể là có yếu tố thời gian (ngoại trừ khóa chính) hoặc phi
thời gian tương ứng với thẻ thời gian của cấu trúc đó trong mô hình ở mức khái niệm.
Một bảng dùng để mô tả cho một tập thực thể được gọi là bảng thực thể, còn bảng
chuyển từ một mối quan hệ nhiều–nhiều sang được gọi là bảng mối quan hệ.
Cấu trúc của các bảng có yếu tố thời gian cũng như thường lệ:
1) Các bảng thời gian hợp lệ có thêm hai cột là VST và VET sao cho mỗi hàng mô
tả một sự kiện (trạng thái của một thực thể hay của mối quan hệ) hợp lệ suốt
khoảng thời gian [VST, VET]; những cột mới này có thể được cập nhật một cách
rõ ràng bởi những người sử dụng;
2) Bất kỳ bảng thời gian giao tác nào cũng có hai cột TST và TET, được xác định
là khoảng thời gian mà sự kiện được ghi lại trong CSDL; những cột này không
thể được cập nhật bởi những người sử dụng;
3) Trong một bảng theo hai loại thời gian luôn có bốn cột này.
Một bảng thực thể gồm có ba loại cột đó là: thứ nhất là cột định danh của thực
thể có dạng là khóa chính của tập trạng thái hiện thời của các thực thể, thứ hai là các
cột thời gian VST, VET, TST, TET và thứ ba là các cột còn, đó là các cột thuộc tính có
thể có hay không có yếu tố thời gian. Một bảng mối quan hệ cũng có cấu trúc tương tự:
định danh của mối quan hệ được tạo thành từ các khóa chính của các tập thực thể tham
gia vào, các cột thời gian và các cột thuộc tính.
Các bảng thực thể và bảng mối quan hệ hợp với nhau tạo thành tập các bảng
CSDL. Tuy nhiên, các bảng khác cũng có thể được xây dựng và được sử dụng bằng cách
suy dẫn từ các bảng CSDL. Những bảng này đòi hỏi phải được quan tâm đặc biệt khi được
sử dụng cùng với các bảng CSDL.
Tính chất của các bảng cơ sở trong CSDL: (Để đơn giản, các cột thời gian được
gọi chung là Start và End, vì cả hai loại đó có cùng tính chất giống nhau)

• Tính chất 1: với bất kỳ trạng thái s nào, s.Start < s.End.
• Tính chất 2: 2 trạng thái s1, s2 trong một thực thể gọi là liên tiếp nhau, nếu
s1.End = s2.Start.
• Tính chất 3: bất kỳ hai trạng thái (s1, s2), mà s1.End = s2.Start (nghĩa là hai trạng
thái liên tiếp nhau) thì hai trạng thái đó phải khác nhau.
9
Trong một bảng quan hệ có yếu tố thời gian, một dòng cho biết rằng các thực thể
tham gia vào được nối với nhau trong suốt khoảng thời gian [Start, End]. Với hai dòng r1
và r2 nào được xác định trên cùng tập thực thể, thì r1.End < r2.Start hay r2.End < r1.Start.
Dưới đây chúng ta sẽ đi xem xét cụ thể về cách lưu trữ cũng như việc cập nhật,
xóa, chèn trên các mô hình bảng dữ liệu được kết hợp thời gian.
2.1. Bảng thời gian hợp lệ
Trong mục này chúng ta đi giải quyết một số vấn đề sau:
• Đưa yếu tố thời gian hợp lệ vào mô hình dữ liệu như thế nào?
• Kiểu dữ liệu của yếu tố thời gian là kiểu dữ liệu gì?
• Xem xét một giá trị đặc biệt là now tại thuộc tính VET.
• Ý nghĩa của mỗi bộ giá trị trong bảng dữ liệu.
• Cách thức thực hiện việc cập nhật, xóa, chèn dữ liệu trong mô hình thời
gian hợp lệ.
• Khóa của bảng dữ liệu trong mô hình bảng thời gian hợp lệ.
Trong quan hệ thời gian hợp lệ, để thấy được các loại thời gian khác nhau được
biểu diễn như thế nào trong mô hình CSDL, ta xét hai quan hệ NHÂN VIÊN và
PHÒNG BAN (hình 1.1(a)), rồi 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 (Valid Start Time) và thuộc
tính thời gian kết thúc hợp lệ VET (Valid End Time) có kiểu dữ liệu là kiểu Date. Điều
này được trình bày trong hình 1.1(b) với các quan hệ được đổi tên thành NV_VT và
PB_VT tương ứng.
NHÂN VIÊN
TEN MANV LUONG MAPB
(a) PHÒNG BAN

TEN_PB MAPB MA_NQLY
NV_VT
TEN MANV LUONG MAPB VST VET
(b)
TEN_PB MAPB MA_NQLY VST VET
10
PB_VT
TEN MANV LUONG MAPB TST TET
(c)
TEN MANV LUONG MAPB VST VET TST TET
(d)
Hình 1.1: Các loại CSDL quan hệ theo thời gian khác nhau
(a) CSDL phi thời gian (b) CSDL thời gian hợp lệ
(c) CSDL thời gian giao tác (d) CSDL theo hai loại thời gian
Bây giờ chúng ta xét xem quan hệ NV_VT khác như thế nào với quan hệ NHÂN
VIÊN (phi thời gian). Trong quan hệ NV_VT, mỗi bộ V biểu diễn một phiên bản thông tin
của nhân viên trong suốt khoảng thời gian hợp lệ [V.VST, V.VET]. Ngược lại, trong quan
hệ NHÂN VIÊN, mỗi bộ biểu diễn trạng thái hiện thời của mỗi nhân viên. Trong NV_VT,
một phiên bản hiện thời của một nhân viên có một giá trị đặc biệt là now tại thuộc tính
VET được coi là thời gian kết thúc hợp lệ của phiên bản đó. Giá trị now này là một biến
thời gian ngầm đại diện cho thời gian hiện thời. Quan hệ phi thời gian NHÂN VIÊN chỉ
gồm những bộ từ quan hệ NV_VT có VET là now mà thôi.
NV_VT
TEN MANV LUONG MAPB VST VET
An 101 25000 5 1997-06-15 1998-05-31
An 101 30000 5 1998-06-01 Now
Nam 102 25000 4 1994-08-20 1996-01-31
Nam 102 30000 5 1996-02-01 1997-03-31
Nam 102 40000 5 1997-04-01 Now
Long 103 28000 4 1996-05-01 1997-08-10

Hùng 104 38000 5 1996-06-01 Now
TEN_PB MAPB MA_NQLY TST TET
TEN_PB MAPB MA_NQLY VST VET TST TET
11
NV_TT
NV_BT
PB_TT
PB_BT

PB_VT
TEN_PB MAPB MA_NQLY VST VET
Kế hoạch 5 106 1996-09-20 1997-03-31
Kế hoạch 5 102 1997-04-01 now
Hình 1.2: Một vài bộ trong quan hệ thời gian hợp lệ NV_VT và PB_VT.
Hình 1.2 đưa ra một vài bộ trong quan hệ thời gian hợp lệ NV_VT và PB_VT.
Có hai bộ phiên bản của An, ba bộ của Nam, một bộ của Long và một của Hùng.
Chúng ta sẽ biết được một quan hệ thời gian hợp lệ sẽ như thế nào khi thông tin bị thay
đổi. Trong quan hệ phi thời gian, bất cứ khi nào một hoặc nhiều thuộc tính của một
nhân viên được cập nhật thì nó sẽ được viết đè lên giá trị cũ. Còn ở trong quan hệ theo
thời gian, hệ thống sẽ tạo ra một phiên bản mới và đóng bản hiện thời bằng cách thay
đổi giá trị VET thành thời gian kết thúc cụ thể nào đó. Do đó, khi người sử dụng nhận
lệnh cập nhật lương của An bắt đầu từ 1/6/1998 là $30000 thì bản thứ hai của An được
tạo ra (hình 1.2). Vào lúc cập nhật, bản đầu tiên của An là bản hiện thời với giá trị VET
là now, nhưng sau khi cập nhật thì now được thay đổi thành 31/5/1998 (trước một
ngày) để cho biết rằng bản đã bị đóng và bản mới (bản thứ 2) của An là bản hiện thời.
Trong quan hệ thời gian hợp lệ, có thể có các loại cập nhật khác nhau, và người
sử dụng phải cung cấp một thời gian hợp lệ cho một cập nhật. Ví dụ, lương cập nhật
của An có thể được đưa vào trong CSDL lúc 8:52:12 ngày 15/5/1998 cho dù lương
được thay đổi trong thực tế từ ngày 1/6/1998. Điều này được gọi là cập nhật trước vì
nó được áp dụng trong CSDL trước khi nó có hiệu lực trong thực tế. Nếu việc cập nhật

được áp dụng trong CSDL sau khi nó có hiệu lực trong thực tế thì được gọi là cập nhật
sau. Một cập nhật được áp dụng trong CSDL cùng lúc với khi nó có hiệu lực trong
thực tế được gọi là cập nhật đồng thời.
Tương tự, việc xóa một nhân viên trong CSDL thời gian hợp lệ cũng sẽ thực hiện
được bằng cách đóng bản hiện thời của nhân viên bị xóa. Ví dụ nếu An rời công ty từ
19/1/1999 thì việc xóa sẽ được thực hiện bằng cách thay đổi giá trị VET ở bản hiện thời
của An từ giá trị now thành 19/1/1999. Trong hình 1.2 không có bản hiện thời của Long
vì có lẽ anh ta đã rời khỏi công ty từ 10/8/1997 nên nó được xóa một cách hợp lý. Tuy
nhiên, vì CSDL là có yếu tố thời gian nên các thông tin cũ của Long vẫn còn.
Thao tác chèn một nhân viên mới cũng được thực hiện bằng cách tạo ra bộ
12
phiên bản đầu tiên cho nhân viên đó và cho nó là bản hiện thời với giá trị VST là thời
gian khi nhân viên đó bắt đầu làm việc và giá trị VET là now. Trong hình 1.2 bộ dữ
liệu của Hùng minh họa điều này.
Chú ý rằng trong quan hệ thời gian hợp lệ, khóa phi thời gian (nontemporal key)
như MANV trong quan hệ NHÂN VIÊN, là không còn duy nhất trong mỗi bộ. Khóa
mới cho NV_VT là sự kết hợp giữa khóa phi thời gian và thuộc tính VST (Valid Start
Time), vì vậy chúng ta sử dụng (MANV, VST) như một khóa chính. Điều đó là do tại
mỗi thời điểm bất kỳ sẽ có một bản hợp lệ cho mỗi thực thể. Do đó, nếu có hai bộ bất kỳ
cùng biểu diễn một thực thể thì sẽ có những khoảng thời gian không giao nhau tồn tại.
Tóm lại, quan hệ thời gian hợp lệ về cơ bản chúng lưu lại các dấu vết của những
thay đổi khi chúng có hiệu lực trong thực tế. Vì thế nếu những thay đổi thực tế đó được
áp dụng thì CSDL sẽ lưu giữ các trạng thái thực tế đó. Tuy nhiên vì việc cập nhật, xóa
hay chèn có thể được áp dụng theo cách cập nhật trước hay cập nhật sau nên sẽ không
có trạng thái CSDL thực tế nào được lưu giữ tại bất kỳ thời điểm nào. Nếu các trạng
thái CSDL thực tế quan trọng đối với một ứng dụng nào đó thì ứng dụng này sẽ sử
dụng quan hệ thời gian giao tác.
2.2. Bảng thời gian giao tác
Tương tự mô hình bảng thời gian giao tác, ở mục này chúng ta sẽ giải quyết các
vấn đề sau:

• Đưa yếu tố thời gian giao tác vào mô hình dữ liệu như thế nào?
• Kiểu dữ liệu của yếu tố thời gian là kiểu dữ liệu gì?
• Xem xét một giá trị đặc biệt là uc tại thuộc tính TET.
• Ý nghĩa của mỗi bộ giá trị trong bảng dữ liệu.
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. Một CSDL hữu ích nhất khi những thay đổi đó được áp dụng đồng thời
trong phần lớn các trường hợp. Nếu ta chuyển CSDL phi thời gian sang CSDL thời
gian giao tác, thì hai quan hệ NHÂN VIÊN và PHÒNG BAN được chuyển thành 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
(Transaction Start Time) và thời gian kết thúc giao tác TET (Transaction End Time) có
kiểu dữ liệu là Timestamp. Điều này được trình bày ở hình 1.1(c), ở đó quan hệ được
đổi tên thành NV_TT và PB_TT tương ứng.
13
Trong quan hệ NV_TT, mỗi bộ V biểu diễn một phiên bản của một nhân viên
được tạo ra tại một thời điểm trong thực tế là V.TST và được xóa đi tại thời điểm
V.TET (vì nó không còn đúng). Trong NV_TT, bản hiện thời của mỗi nhân viên có
một giá trị đặc biệt là uc (Until Changed) ở thời gian kết thúc giao tác (TET), nó cho
biết rằng bộ biễu diễn các thông tin của nhân viên đó đúng cho đến khi nó bị thay đổi
bởi các giao tác khác. Trong một CSDL thời gian giao tác, người sử dụng có thể xem
lại các trạng thái CSDL thực tế tại một thời điểm t đã qua nào đó bằng cách truy xuất
tất cả các bộ phiên bản V có thời gian giao tác [V.TST, V.TET] có chứa thời điểm t.
2.3. Bảng theo hai loại thời gian
Trong mục này, kế thừa một số vấn đề đã giải quyết ở trên như: Kiểu dữ liệu
của yếu tố thời gian, các giá trị đặc biệt uc, now của các thuộc tính TET, VET, chúng
ta đi giải quyết một số vấn đề sau:
• Đưa yếu tố thời gian hợp lệ và thời gian giao tác vào mô hình dữ liệu như
thế nào?
• Minh họa cách thức thực hiện việc cập nhật, xóa, chèn dữ liệu trong mô
hình thời gian 2 loại thời gian.

• Khóa của bảng dữ liệu trong mô hình bảng thời gian hợp lệ.
Một vài ứng dụng có cả thời gian hợp lệ và thời gian giao tác, thì quan hệ trong
ứng dụng này được gọi là quan hệ theo hai loại thời gian. Hình 1.1(d) cho ta thấy được
làm thế nào để các quan hệ phi thời gian NHÂN VIÊN và PHÒNG BAN trở thành các
quan hệ theo hai loại thời gian NV_BT và PB_BT.
NV_BT
TÊN MA
NV

LUON
G
MA
PB
VST VET TST

TET
v1 An 101 25000 5 1997-06-15 now 1997-06-
08,
13:05:58
1998-06-
04,
08:56:12
v2 An 101 25000 5 1997-06-15 1998-05-31 1998-06-
04,
08:56:12
uc
v3 An 101 30000 5 1998-06-01 now 1998-06- uc
14
04,
08:56:12

v4 Nam 102 25000 4 1994-08-20 now 1994-08-
20,
11:18:23
1996-01-
07,
14:33:02
v5 Nam 102 25000 4 1994-08-20 1996-01-31 1996-01-
07,
14:33:02
uc
v6 Nam 102 30000 5 1996-02-01 now 1996-01-
07,
14:33:02
1997-03-
28,
09:23:57
v7 Nam 102 30000 5 1996-02-01 1997-03-31 1997-03-
28,
09:23:57
uc
v8 Nam 102 40000 5 1997-04-01 now 1997-03-
28,
09:23:57
uc
v9 Long 103 28000 4 1996-05-01 now 1996-04-
27,
16:22:05
1997-08-
12,
10:11:07

v10 Long 103 28000 4 1996-05-01 1997-08-10 1997-08-
12,
10:11:07
uc
v11 Hùng 104 38000 5 1998-08-01 now 1998-07-
28,
09:25:37
uc
………………………
PB_BT
TÊN_PB MAP
B

MA_NQ
LY
VST VET TST

TET
15
v12 Kế hoạch 5 106 1996-09-
20
now 1996-09-
15,
14:52:12
1996-03-
28,
09:23:57
v13 Kế hoạch 5 106 1996-09-
20
1997-03-31 1996-03-

28,
09:23:57
uc
v14 Kế hoạch 5 102 1997-04-
01
now 1996-03-
28,
09:23:57
uc
Hình 1.3: Các bộ trong quan hệ theo hai loại thời gian NV_BT và PB_BT.
Hình 1.3 trình bày một vài bộ trong các quan hệ này. Trong các bảng này các bộ
có giá trị TET là uc biểu diễn cho các thông tin hợp lệ hiện thời. Ngược lại các bộ có
giá trị TET là một mốc thời gian là các bộ hợp lệ cho đến (trước) mốc thời gian đó.
Như vậy, các bộ có giá trị uc ở TET trong hình 1.3 tương ứng với các bộ trong quan hệ
thời gian hợp lệ ở hình 1.2. Thuộc tính TST trong mỗi bộ là mốc thời gian do giao tác
tạo ra cho bộ đó.
Bây giờ ta xét xem hoạt động cập nhật sẽ được thực hiện như thế nào trong quan
hệ theo hai loại thời gian. Để minh họa các bộ được tạo ra như thế nào ta xét quan hệ
NV_BT. Một phiên bản hiện thời của một nhân viên sẽ có giá trị là uc ở thuộc tính
TET và now ở thuộc tính VET. Nếu một vài thuộc tính như LUONG được cập nhật thì
giao tác T tiến hành việc cập nhật sẽ có hai tham số: một là giá trị mới của LUONG,
một là thời gian hợp lệ VT khi lương mới có hiệu quả trong thực tế. Giả sử rằng VT- là
thời điểm trước VT và giao tác T đó có một mốc thời gian TS(T). Những thay đổi tiếp
theo sau đây sẽ được áp dụng với bảng NV_BT:
1. Tạo bản sao V2

của bản hiện thời V; đặt V2.VET thành VT-, V2.TST thành
TS(T), V2.TET thành uc và chèn V2 vào NV_BT; V2 là bản sao hiện thời
trước đó của V sau khi nó bị đóng tại thời gian hợp lệ VT
2. Tạo bản sao V3 của bản hiện thời V; đặt V3.VST là VT, V3.VET là now,

V3.LUONG là giá trị lương mới, V3.TST là TS(T), V3.TET là uc và chèn
V3 vào NV_BT. Lúc này V3 biễu diễn cho bản hiện thời mới.
3. Đặt V.TET là TS(T) khi bản hiện thời V không còn đúng.
16
Để minh họa, ta xét ba bộ đầu tiên v1, v2, v3 trong NV_BT ở hình 1.3. Trước
khi cập nhật lương mới cho An từ 25000 lên 30000 thì chỉ v1 là ở trong NV_BT và nó
là bản hiện thời với giá trị ở TET là uc. Sau đó một giao tác T có mốc thời gian TS(T)
là “1998-06-04; 08:56:12” cập nhật lương thành 30000 với thời gian có hiệu lực là
“1998-06-01”. Khi cập nhật, bộ v2 được tạo ra là bản sao của v1 ngoại trừ giá trị ở
VET được đặt lại là “1998-05-31” (trước một ngày so với thời gian hợp lệ mới) và giá
trị TST của nó là mốc thời gian của giao tác cập nhật. Tiếp đó, bộ v3 (bản sao của v1)
được tạo ra với giá trị lương mới ở LUONG, giá trị ở VST là “1998-06-01”, giá trị ở
VET vẫn là now, giá trị ở TST là mốc thời gian của giao tác cập nhật và giá trị ở TET
cũng vẫn là uc. Cuối cùng giá trị TET của v1 được đặt lại là mốc thời gian của giao tác
cập nhật “1998-06-04, 08:56:12”. Bây giờ, v3 chính là bản hiện thời. Chú ý rằng đây là
một cập nhật sau, vì giao tác cập nhật đã được thực hiện vào ngày 4/6/1998 nhưng việc
thay đổi lương lại bắt đầu có hiệu lực từ 1/6/1998.
Tương tự, khi lương và phòng ban của Nam được cập nhật (cùng lúc) thành
30000 và 5 thì mốc thời gian của giao tác cập nhật là “1996-01-07, 14:33:02” và thời
gian lương có hiệu lực là “1996-02-01”. Vì thế đây là cập nhật trước, vì việc cập nhật
được thực hiện vào 7/1/1999 nhưng ngày có hiệu lực lại là 1/2/1996. Trong trường hợp
này bộ v4 được thay thế hợp lý bởi v5 và v6.
Tiếp theo, để biết được thao tác xóa sẽ được tiến hành như thế nào trong quan
hệ theo hai loại thời gian ta xem xét bộ v9 và v10 trong quan hệ NV_BT ở hình 1.3. Ở
đây nhân viên Long đã rời công ty từ 10/8/1997 và việc xóa được tiến hành bởi một
giao tác T với TS(T) là “1997-08-12, 10:11:07”. Trước khi xảy ra điều này thì v9 là
bản hiện thời của Long với giá trị TET là uc. Việc xóa tiến hành thay đổi v9.TET thành
“1997-08-10, 10:11:07” và tạo ra bản cuối cùng v10 cho cho Long với giá trị tại VET
là “1997-08-10” (hình 1.3). Cuối cùng thao tác chèn được tiến hành bằng cách tạo ra
bản đầu tiên như được minh họa ở bộ v11 trong bản NV_BT.

Khi nắm rõ được cách thức kết hợp yếu tố thời gian như thế trong CSDL thì
chúng ta sẽ tính toán được phải kết hợp yếu tố thời gian như thế nào trong quá trình
thiết kế CSDL, đặc biệt là thiết kế CSDL ở mức logic để có thể đưa ra được một mô
hình CSDL với các tính chất mong muốn. Tiếp theo ta sẽ bàn luận thêm một số điều
cần chú ý đến khi tiến hành thiết kế CSDL có yếu tố thời gian.
17
2.4. Những lưu ý khi thiết kế cơ sở dữ liệu có yếu tố thời gian
Khi tiến hành thiết kế CSDL có yếu tố thời gian, có nhiều tùy chọn khác nhau
cho việc lưu trữ các bộ trong một quan hệ thời gian.
• Một là lưu trữ tất cả các bộ trong cùng một bảng (Ví dụ: hình 1.2 và hình 1.3. )
• Hai là tạo ra hai bảng: một bảng cho các thông tin hợp lệ hiện thời, một bảng
cho các bộ còn lại. Ví dụ, trong quan hệ theo hai loại thời gian NV-BT, các bộ
có giá trị ở TET là uc và giá trị ở VET là now sẽ cùng một quan hệ, tức là cùng
một bảng hiện thời bởi vì chúng là các thông tin hợp lệ hiện thời, còn tất cả các
bộ khác sẽ ở trong một quan hệ khác.  cho phép người quản trị CSDL có
nhiều cách khác nhau để truy cập vào CSDL như lập các chỉ mục cho các quan
hệ một cách hợp lí.
• Thứ ba là ta sẽ tạo ra một bảng cho các thông tin hợp lệ hiện thời, một bảng thứ
hai cho các bộ đã được sửa chữa có giá trị ở TET không phải là uc, một bảng
cho các bộ còn lại.
Thêm một tùy chọn khác nữa là ta có thể phân chia các thuộc tính của quan hệ
theo thời gian thành các quan hệ tách rời. Lý do là nếu như một quan hệ có quá nhiều
thuộc tính, thì một bộ phiên bản mới sẽ được tạo ra mỗi khi một trong các thuộc tính
đó được cập nhật. Và nếu các thuộc tính được cập nhật một cách không đồng bộ thì
mỗi phiên bản mới có thể sẽ khác chỉ một trong các thuộc tính, và như vậy việc lặp lại
các giá trị của các thuộc tính khác là không cần thiết. Nếu một quan hệ tách rời được
tạo ra chỉ để chứa đựng các thuộc tính luôn luôn thay đổi một cách đồng bộ, với khóa
chính được lặp lại cho mỗi quan hệ, thì CSDL được gọi là thuộc dạng chuẩn theo thời
gian.
Cần chú ý thêm rằng các CSDL theo hai loại thời gian cho phép lưu trữ hoàn

toàn những thay đổi thậm chí có thể là cả những chỉnh sửa. Chẳng hạn, có thể cùng tồn
tại hai bộ phiên bản của cùng một nhân viên có cùng giá trị thời gian hợp lệ nhưng lại
có các giá trị thuộc tính khác nhau miễn là thời gian giao tác của chúng được tách rời
ra. Trong trường hợp này, bộ với thời gian giao tác sau cùng là đúng nhất trong các bộ
phiên bản khác. Thậm chí ngay cả khi thời gian hợp lệ đưa vào là không đúng cũng có
thể được chỉnh sửa lại theo cách này. Khi đó trạng thái CSDL không đúng sẽ được xem
như trạng thái CSDL trước đó. Một CSDL được dùng để lưu giữ toàn những thay đổi
và chỉnh sửa được gọi là một CSDL bổ sung.
18
3. Thiết kế ở mức vật lý
Lược đồ ở mức vật lý mô tả các cấu trúc dữ liệu thực tế được cài đặt. Lược đồ này
được suy ra chủ yếu từ lược đồ ở mức logic. Khi được so sánh với lược đồ ở mức logic,
lược đồ ở mức vật lý có các tính chất hỗ trợ cho cài đặt như sau.
Mô hình ở mức logic biểu diễn mỗi tập thực thể hay tập mối quan hệ như một
bảng đơn với mỗi dòng biểu diễn một trạng thái của một thực thể hay một mối quan hệ. Ở
mức vật lý, các trạng thái và các dòng có thể được sắp xếp, chia ra và sao lại để thu được
một không gian tốt hơn, cải thiện được việc cài đặt.
Một bảng theo hai loại thời gian ở mức vật lý bao gồm các trạng thái hợp lệ hiện
thời (TET = ∞ ∧ VET = ∞), các trạng thái quá khứ hợp lệ (TET = ∞ ∧ VET < ∞) và các
trạng thái không hợp lệ (TET < ∞). Với loại thời gian này, người thiết kế có thể đưa ra
nhiều mẫu sắp xếp khác nhau, mỗi mẫu có những thế lợi và những trở ngại riêng: thứ nhất
xếp tất cả các trạng thái trong cùng một bảng, thứ hai là xếp tất cả các trạng thái trong
cùng một bảng + một bản sao các trạng thái hợp lệ hiện thời trong một bảng khác, thứ ba
là xếp các trạng thái hợp lệ hiện thời trong một bảng + tất cả các trạng thái khác trong
bảng khác, thứ tư là xếp các trạng thái hợp lệ trong một bảng + các trạng thái không hợp lệ
trong bảng khác. Các bảng với chỉ một loại thời gian có thể được tổ chức theo cách tương
tự.
Trong khi đó, một bảng ở mức logic bao gồm tất cả các cột thuộc tính của thực thể
và mối quan hệ một - nhiều (như các khóa ngoài), các thuộc tính này là có yếu tố thời gian
hay phi thời gian. Việc lưu trữ các dòng trong một bảng đơn hay sắp xếp các cột thành các

bảng đồng nhất theo thời gian có lẻ giảm được nhiều dư thừa. Ba mẫu sắp xếp đặc biệt: tất
cả các cột được xếp trong một bảng đơn, các cột phi thời gian tạo thành một bảng và bảng
thứ hai dành cho các cột có yếu tố thời gian, các cột phi thời gian tạo thành một bảng và
mỗi cột có yếu tố thời gian tạo thành một bảng riêng.
Khi thiết kế CSDL ở mức vật lý, việc lập chỉ mục sẽ cải thiện thời gian truy cập
cho các phép toán một cách nhanh hơn. Một vài phép toán theo thời gian có thể được thực
hiện nhanh hơn bằng cách sử dụng các cấu trúc bổ trợ dựa vào chỉ mục. Cho nên khi thiết
kế người thiết kế cần phải nắm rõ các bước thiết kế và các ưu điểm của mỗi mô hình ở
từng mức để có thể thiết kế một CSDL hữu ích và dễ sử dụng.
II. Về mặt truy vấn
Xây dựng mô hình bảng dữ liệu với các đặc điểm sau:
19
Hỗ trợ đầy đủ các câu lệnh SELECT, INSERT, UPDATE, DELETE
• Khi SELECT mà KHÔNG chỉ ra thời gian thì lấy giá trị của lần cập nhật gần
đây nhất (giá trị hiện thời).
• Khi SELECT mà CÓ chỉ ra thời gian, thì lấy các giá trị được cập nhật mới nhất
tính đến thời điểm đó.
• Khi SELECT tại một thời điểm, các bản ghi tạo ra sau thời điểm đó, hoặc bị
xoá trước thời điểm đó sẽ không được đưa ra.
• Khi INSERT một bản ghi mới, bản ghi sẽ tồn tại tính từ thời điểm thực hiện
lệnh.
• Khi UPDATE giá trị mới của trường có tác dụng từ thời điểm thực hiện lệnh.
• Khi DELETE, bản ghi bị xoá tính từ thời điểm thực hiện lệnh.
20
C. Kết luận
I. Kết quả đã đạt được
Tiểu luận đã hoàn thành được một số nội dung nhất định:
• Tìm hiểu về ngữ nghĩa của CSDL thời gian trên hai phương diện lưu trữ và truy
vấn. Chúng ta biết được cách thức, mô hình kết hợp yếu tố thời gian trên CSDL
quan hệ là như thế nào.

• Minh họa việc truy vấn trên CSDL đơn giản.
II. Hạn chế còn tồn tại
Do thời gian có hạn nên tiểu luận này vẫn còn nhiều thiếu sót: Chưa có thể xây
dựng được một chương trình hoàn chỉnh để mô tả các chức năng đầy đủ trên cơ sở dữ
liệu thời gian.
III. Hướng phát triển của đề tài
• Kết hợp yếu tố thời gian trên cơ sở dữ liệu hướng đối tượng.
• Chuẩn hóa CSDL thời gian.
21
D. Tài liệu tham khảo
[1] Phạm Hữu Khang - Lập trình ứng dụng chuyên nghiệp SQL server 2000, tập 1 và
tập 2 - NXB Giáo dục
[2] Hồ Thuần, Hồ Cẩm Hà – Các hệ CSDL lý thuyết và thực hành – tập 2, NXB
Giáo dục
[3] Bài giảng chuyên đề của trường ĐH Quốc Gia TP Hồ Chí Minh.
[4]
[5] Ilan Eini, Vera Goebel and BjØrn Skjellaug, A temporal Data Model for
Multimedia Database Systems, Research Report, 1997.
22

×