Một số mô hình cơ sở dữ liệu mở rộng : Luận văn ThS. Công nghệ thông tin : 60 48 05 - Pdf 68

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ NGỌC TÚ

MỘT SỐ MÔ HÌNH
CƠ SỞ DỮ LIỆU MỞ RỘNG

LUẬN VĂN THẠC SỸ
NGÀNH CÔNG NGHỆ THÔNG TIN

Hà Nội - 2013


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

NGUYỄN THỊ NGỌC TÚ

MỘT SỐ MÔ HÌNH
CƠ SỞ DỮ LIỆU MỞ RỘNG

Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60 48 05
LUẬN VĂN THẠC SĨ
HỆ THỐNG THÔNG TIN

NGƢỜI HƢỚNG DẪN KHOA HỌC: TS Nguyễn Tuệ

Hà Nội – 2013


Tôi xin cam đoan bản luận văn “ Một số mô hình cơ sở dữ liệu mở rộng” là
công trình nghiên cứu của tôi dƣới sự hƣớng dẫn khoa học của TS. Nguyễn Tuệ,
tham khảo các nguồn tài liệu đã đƣợc ghi rõ trong trích dẫn và danh mục tài liệu
tham khảo. Các nội dung công bố và kết quả trình bày trong luận văn này là
hoàn toàn trung thực.

Hà Nội, ngày tháng 10 năm 2103
Học viên
(kí và ghi rõ họ tên)

Nguyễn Thị Ngọc Tú


5

MỤC LỤC
DANH MỤC HÌNH VẼ ........................................................................................ 7
KÝ HIỆU VIẾT TẮT ............................................................................................ 7
MỞ ĐẦU ............................................................................................................... 9
CHƢƠNG 1: TỔNG QUAN VỀ MÔ HÌNH CƠ SỞ DỮ LIỆU MỞ RỘNG .... 10
1.1. Một số mô hình CSDL mở rộng ............................................................... 10
1.2. Mô hình cơ sở dữ liệu tích cực( Active database). ................................... 10
1.2.1. Quy tắc ECA (Event- Condition -Action). ....................................... 10
1.2.1.1. Sự kiện (Event) ............................................................................ 11
1.2.1.2 Điều kiện(Condition) .................................................................... 12
1.2.1.3. Hành động(active)........................................................................ 13
1.2.2. Mô hình tổng quát của CSDL tích cực ............................................... 14
1.2.3. Thiết kế và cài đặt CSDL tích cực...................................................... 19
1.3. Mô hình cơ sở dữ liệu thời gian(Temporal database) ............................... 20

6

3.2.1. Tạo bảng cơ sở dữ liệu ....................................................................... 62
3.2.2 Tạo các Trigger, các hàm trong bài toán .......................................... 64
3.3. Thử nghiệm và đánh giá các thuật toán .................................................... 69
KẾT LUẬN ......................................................................................................... 70
TÀI LIỆU THAM KHẢO ................................................................................... 71


7

DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình cơ sở dữ liệu tích cực( Active Database). ....................................... 10
Hình 1.2 : Ngữ cảnh mà trong đó một quy tắc đƣợc xử lý[7] ....................................... 12
Hình 1.3: Mô hình ECA (Event- Condition -Action)................................................... 15
Hình 1.4: Cơ sở dữ liệu thời gian( Temporal database) ................................................ 21
Hình 1.5: Mô hình CSDL thời gian. .............................................................................. 22
Hình 1. 6: Các loại CSDL quan hệ theo thời gian khác nhau........................................ 23
Hình 1.7.Quan hệ thời gian hợp lệ NHANVIEN_VT và DONVI_VT. ........................ 24
Hình 1.8. Các bộ trong quan hệ theo hai loại thời gian. ................................................ 25
Hình 1.9: Điểm (Point) .................................................................................................. 30
Hình 1.10: Đƣờng – Cung (Line- Arc). ......................................................................... 31
Hình 1.11: Vùng(polygon)............................................................................................. 31
Hình1.12: Mô hình vector ............................................................................................. 34
Hình 1.13: Mô hình raster ............................................................................................. 34
Hình 2.1: Một số lệnh trong hệ quản trị CSDL PostgreSQl .......................................... 39
Hình 2.2: Nhóm lệnh chung trong psql ......................................................................... 40
Hình 2.3: Nhóm lệnh truy vấn bộ đệm của psql ............................................................ 40
Hình 2.4: Nhóm lệnh vào/ra của psql ............................................................................ 40
Hình 2.5. Nhóm lệnh định dạng .................................................................................... 40

1

CSDL

2
4

CNTT
DBMS
DB

5

ECA

6

SQL

7
8

UC
GIS
TST
TET
VST
VET

3

Thời gian bắt đầu có hiệu lực
Valid End Time
Thời gian kết thúc hiệu lực


9

MỞ ĐẦU
Ngày nay, ngành Công nghệ thông tin đã phát triển và có nhiều ứng dụng
vào mọi lĩnh vực cuộc sống. Trong các ứng dụng đó có các mô hình cơ sở dữ
liệu đóng vai trò quan trọng. Để đáp ứng đƣợc việc các ứng dụng liên quan đến
các xử lý thông tin phức tạp, việc mở rộng các mô hình cơ sở dữ liệu là cần
thiết.
Mục đích của luận văn là nghiên cứu và giới thiệu một số mô hình cơ sở dữ
liệu mở rộng (cơ sở dữ liệu tích cực, cơ sở dữ liệu thời gian và cơ sở dữ liệu
không gian) đi sâu nghiên cứu nghiên cứu hệ quản trị cơ sở dữ liệu không gian
(PostgreSQL, PostGis) và xây dựng một ứng dụng về quản lý xe buýt.
Luận văn bao gồm ba chƣơng:
Chƣơng 1: Tổng quan về cơ sở dữ liệu mở rộng
Chƣơng này trình bày một số mô hình CSDL mở rộng nhƣ cơ sở dữ liệu tích
cực, cơ sở dữ liệu thời gian và cơ sở dữ liệu không gian cùng với các ứng dụng
của chúng.
Chƣơng 2: Hệ quản trị CSDL postgreSQL và Postgis.
Chƣơng này trình bày nghiên cứu hệ quản trị CSDL PostgreSQL và PostGis,
cách lƣu trữ dữ liệu và các câu lệnh truy vấn dữ liệu của chúng
Chƣơng 3: Xây dựng chƣơng trình quản lý bản đồ xe buýt Hà Nội.
Chƣơng này trình bày bài toán quản lý xe buýt, xây dựng cơ sở dữ liệu và
lập trình demo hoạt động quản lý.
Cuối cùng, trong phần kết luận, chúng tôi tổng kết lại những công việc đã
làm trong luận văn, những khuyết điểm và hạn chế cũng nhƣ hƣớng phát triển

1.2.1.1. Sự kiện (Event)

Sự kiện (Event) làm kích hoạt trigger: Các sự kiện này thƣờng là các thao tác
cập nhật cơ sở dữ liệu đƣợc áp dụng một cách tƣờng minh đối với cơ sở dữ liệu.
Tuy nhiên, trong mô hình tổng quát, chúng cũng có thể là các sự kiện thời gian
hoặc là các dạng sự kiện ngoài khác.
Các lựa chọn có thể là:
- Các hành động cấu trúc, trong trƣờng hợp sự kiện đƣợc sinh ra bằng
một hành động ở một phần của cấu trúc (ví dụ: thêm bản ghi, sửa một
thuộc tính, truy cập vào 1 bản ghi).
- Trƣờng hợp sự kiện đƣợc sinh ra bởi việc thực hiện một vài hành động
của ngƣờì sử dụng. Đối với các ngôn ngữ sự kiện thƣờng cho phép các
sự kiện xuất hiện trƣớc hoặc sau một hành động nào đó thực thi.
- Sự thực thi (giải quyết), trong trƣờng hợp khi sự kiện đƣợc sinh ra
bằng các lệnh thực thi (ví dụ: từ chối (abort), ủy thác (commit), bắt đầu
thực thi (begin – transaction))
- Trừu tƣợng hoặc ngƣời dùng định rõ, trong trƣờng hợp một cơ chế lập
trình đƣợc sử dụng cho phép một chƣơng trình ứng dụng báo hiệu sự xuất
hiện một sự kiện rõ ràng (ví dụ trong phản hồi một vài thông tin mà
ngƣời dùng nhập vào).
- Ngoại lệ (loại trừ ra), trong trƣờng hợp sự kiện đƣợc sinh ra nhƣ là kết
quả của một vài ngoại lệ phát sinh (ví dụ nhƣ, sự cố gắng truy cập một
vài dữ liệu mà không có sự cho phép thích hợp).
- Đồng hồ, trong trƣờng hợp sự kiện đƣợc sinh ra ở một điểm thời gian,
sự kiện thời gian tƣơng đối và chu kỳ đƣợc báo cáo trong tài liệu
Ngoài ra, trong trƣờng hợp sự kiện đƣợc sinh ra bởi sự việc xảy ra bên
ngoài cơ sở dữ liệu.
Các kiểu sự kiện có thể là:
- Gốc (nguyên thủy), trong trƣờng hợp này sự kiện đƣợc sinh ra bởi sự
việc đơn lẻ ở tầng thấp thuộc một trong những loại đƣợc mô tả ở


Hình 1.2 : Ngữ cảnh mà trong đó một quy tắc đƣợc xử lý[7]
1.2.1.2 Điều kiện(Condition)
Điều kiện (Condition) xác định hành động của quy tắc có thể đƣợc thực hiện
hay không: Mỗi khi sự kiện kích hoạt có mặt, một điều kiện chọn có thể đƣợc
tính giá trị. Nếu không có điều kiện nào đƣợc chỉ rõ, hành động sẽ đƣợc thực
hiện một lần sự kiện xảy ra. Nếu điều kiện đƣợc chỉ rõ, đầu tiên nó đƣợc tính


13

giá trị là đúng (true) thì hành động của quy tắc sẽ đƣợc thực hiện.
Ngữ cảnh biểu thị sự thiết lập mà trong đó điều kiện đƣợc đánh giá. Các
thành phần khác nhau của một quy tắc không đƣợc đánh giá trong sự độc lập
trong cơ sở dữ liệu hoặc từ mỗi thành phần khác, và hơn nữa cũng có thể không
đƣợc đánh giá lần lƣợt. Kết quả là việc xử lý một quy tắc đơn lẻ có thể đƣợc
liên kết với ít nhất 4 trạng thái cơ sở dữ liệu khác nhau trong hình 1.2.
DBT -:Cơ sở dữ liệu ở thời điểm bắt đầu của sự thực thi hiện thời.
DBE - Cơ sở dữ liệu khi sự kiện đã diễn ra.
DBC - Cơ sở dữ liệu khi điều kiện đƣợc đánh giá
DBA - Cơ sở dữ liệu khi hành động đƣợc thực hiện.
Hệ thống quy tắc tích cực có thể hỗ trợ các công cụ bên trong điều kiện của
quy tắc mà cho phép nó có thể không truy cập tới hoặc nhiều hơn các trạng
thái DBT , DBE và DBC có thể cũng cho phép truy cập tới các ràng buộc liên kết
với sự kiện BindE . Các thông tin có sẵn đƣợc dùng với các thành phần khác
nhau của một quy tắc đƣợc minh họa ở Hình 1.2. Nhìn chung, vị trí của các
thành phần còn phức tạp hơn trong miêu tả ở Hình 1.2, bởi vì trạng thái trƣớc
và sau một sự kiện diễn ra có thể khác nhau, và nhiều sự kiện có thể đƣợc bắt
đầu và có thể thực hiện tới khi hoàn thành trong khi thực hiện một hành động
đơn lẻ.

If true
Do update Holder
Set value = value*(new.price/old.price)
Where reg# in (select reg# from Owns where stock#
=
update.stock#)
Trong quy tắc này, file old và new của price đều đƣợc truy cập tới
DBE để làm trạng thái của cơ sở dữ liệu tại thời gian của cập nhật DBA.
1.2.2. Mô hình tổng quát của CSDL tích cực
Trên thực tế, các quy tắc ECA cũng đã đƣợc đề nghị từ sớm trong ngôn ngữ
SQL và đƣợc thể hiện trong các hệ quản trị cơ sở dữ liệu nhƣ SQL-Server,
Oracle dƣới cái tên Trigger.
Cú pháp để chỉ ra các Trigger trong hệ thống Oracle đƣợc viết nhƣ sau:
Cấu trúc của một Trigger
<Trigger>:: = CREAT TRIGGER < Tên Trigger >
(APTER/BEFOR)< sự kiện kích hoạt> ON <tên bảng>
[FOR EACH ROW/ FOR EACH STATEMENT]
[WHEN<điều kiện>]
< hành động của trigger>;
<sự kiện kích hoạt>::=<sự kiện của trigger>
<sự kiện của trigger>:: .


15

Hình 1.3: Mô hình ECA (Event- Condition -Action).
Trong đó:
CREATE TRIGGER chỉ rõ tên của một trigger(hoặc các quy tắc tích cực ).
Mệnh đề AFTER|BEFORE chỉ ra rằng quy tắc sẽ đƣợc kích hoạt sau hoặc trƣớc

đơn vị cụ thể. Việc duy trì giá trị đúng của một thuộc tính suy diễn đƣợc nhƣ
vậy có thể đƣợc thực hiện thông qua một luật tích cực. Trƣớc tiên chúng ta
phải xác định các sự kiện có thể gây ra một thay đổi giá trị của Tongluong,
đó là các sự kiện sau:
1. Chèn vào một hoặc nhiều bộ giá trị nhân viên mới.
2. Thay đổi lƣơng của một hoặc nhiều nhân viên có sẵn.
3. Thay đổi việc đăng ký của các nhân viên có sẵn từ đơn vị này sang đơn
vị khác.
4. Loại bỏ một hoặc nhiều bộ giá trị nhân viên.
Trong trƣờng hợp sự kiện 1, chúng ta chỉ cần tính lại Tongluong nếu nhân
viên mới đƣợc ghi tức khắc vào một đơn vị - nghĩa là giá trị của thuộc tính
MaDV đối với bộ nhân viên mới là khác null (giả thiết null là cho phép đối
với MaDV). Nhƣ vậy điều đó sẽ là điều kiện để kiểm tra. Một điều kiện tƣơng
tự có thể sẽ đƣợc kiểm tra cho sự kiện 2 và 4 để xác định xem có phải là nhân
viên mà lƣơng của anh ta bị thay đổi (hoặc bị xóa) hiện tại đã đƣợc đăng ký
vào một đơn vị hay không. Với sự kiện 3, chúng ta luôn luôn thực hiện một
hành động để duy trì giá trị của Tongluong một cách đúng đắn, nhƣ vậy là
không cần điều kiện nào (hành động luôn luôn đƣợc thực hiện).
Hành động đối với các sự kiện 1, 2 và 4 là cập nhật một cách tự động giá
trị của Tongluong đối với đơn vị của nhân viên để phản ánh việc lƣơng của
nhân viên vừa mới đƣợc thêm, xóa hoặc cập nhật. Trong trƣờng hợp của sự
kiện 3, cần một hành động đúp: một để cập nhật Tongluong của đơn vị cũ của
nhân viên và hành động khác để cập nhật Tongluong của đơn vị mới của nhân
viên.
Bốn active rules R1, R2, R3 và R4 tƣơng ứng với tình trạng ở trên có thể
đƣợc chỉ ra trong ký hiệu của hệ quản trị cơ sở dữ liệu Oracle.
R1:
CREATE TRIGGER Tongluong1
AFTER INSERT ON NHANVIEN


AFTER DELETE ON NHANVIEN
FOR EACH ROW
WHEN (OLD.MaDV IS NOT NULL)
UPDATE DONVI
SET Tongluong = Tongluong - OLD.Luong
WHERE MaDV = OLD.MaDV;
Bốn trigger (các quy tắc tích cực) R1, R2, R3 và R4 minh họa một số tính
chất của các quy tắc tích cực. Trƣớc tiên, các sự kiện cơ bản có thể chỉ ra để
kích hoạt các quy tắc là các lệnh cập nhật của SQL chuẩn: INSERT, DELETE,


18

UPDATE. Chúng đƣợc chỉ ra bằng các từ khóa INSERT, DELETE, UPDATE
trong ký hiệu của Oracle. Trong trƣờng hợp của UPDATE ngƣời ta có thể chỉ
ra các thuộc tính đƣợc cập nhật. Ví dụ, bằng cách viết UPDATE OF Luong,
MaDV. Thứ hai, ngƣời thiết kế quy tắc cần có cách tham chiếu đến các bộ giá
trị đã đƣợc chèn, xóa, sửa đổi: hai file NEW và OLD của Trigger đƣợc sử
dụng trong Oracle: NEW đƣợc sử dụng để tham chiếu đến bộ vừa đƣợc chèn
vào hoặc vừa đƣợc sửa đổi, trong khi đó OLD đƣợc sử dụng để tham chiếu
đến bộ bị xóa hoặc bộ trƣớc khi đƣợc cập nhật.
Nhƣ vậy, quy tắc R1 đƣợc kích hoạt sau một phép toán INSERT đƣợc áp
dụng cho quan hệ NHÂNVIÊN. Trong R1, điều kiện (NEW.MaDV IS NOT
NULL) đƣợc kiểm tra, và nếu nó đƣợc tính giá trị là đúng, nghĩa là bộ nhân
viên vừa mới đƣợc chèn vào là có quan hệ với một đơn vị, thì hành động sẽ
đƣợc thực hiện. Hành động cập nhật các bộ ĐƠNVỊ có liên quan tới nhân
viên vừa mới đƣợc chèn vào bằng cách cộng lƣơng của ngƣời đó
(NEW.Luong) vào thuộc tính Tongluong của đơn vị liên quan của chúng.
Quy tắc R2 tƣơng tự với R1 nhƣng nó đƣợc kích hoạt bằng một phép
toán UPDATE, sửa đổi lƣơng của một nhân viên thay vì chèn. Quy tắc R3

mệnh đề tùy chọn FOR EACH ROW tạo ra một trigger mức hàng (row-level
trigger) và việc bỏ nó tạo ra một trigger mức lệnh (statement-level trigger).
1.2.3. Thiết kế và cài đặt CSDL tích cực.
Việc thiết kế và cài đặt các quy tắc cần giải quyết một số vấn đề sau:
Thứ nhất:
Liên quan đến việc kích hoạt, thôi kích hoạt và nhóm các quy tắc. Thêm
vào việc tạo ra các quy tắc, một hệ thống cơ sở dữ liệu tích cực phải cho phép
những ngƣời sử dụng kích hoạt, thôi kích hoạt và bỏ các quy tắc bằng cách
tham chiếu đến các tên quy tắc của chúng. Một quy tắc không đƣợc kích hoạt
(deatived rule) sẽ không bị kích hoạt bởi sự kiện kích hoạt. Tính chất này cho
phép các ngƣời sử dụng lựa chọn các quy tắc thôi kích hoạt đối với một chu
kỳ thời gian nào đó khi chúng là không cần thiết. Các lệnh kích hoạt sẽ làm
cho các quy tắc tích cực trở lại. Lệnh drop loại bỏ các luật ra khỏi hệ thống.
Một tùy chọn khác là nhóm các quy tắc vào một cái gọi là thiết lập quy tắc,
nhƣ vậy toàn bộ tập hợp các quy tắc có thể đƣợc kích hoạt, ngừng kích hoạt
hoặc loại bỏ. Việc có một lệnh có thể kích hoạt một quy tắc hoặc một tập quy
tắc thông qua một lệnh PROCESS RULES do ngƣời sử dụng đƣa ra cũng là
một điều có lợi.
Thứ hai:
Liên quan đến liệu hành động đƣợc kích hoạt có thể đƣợc thực hiện trƣớc,
sau, hoặc đồng thời với sự kiện kích hoạt đƣợc hay không. Vấn đề liên quan
là liệu hành động đƣợc kích hoạt có thể đƣợc xem nhƣ một giao tác tách rời
hay không hay nó phải là một phần của cung giao tác kích hoạt quy tắc. Trƣớc
tiên chúng ta phải cố gắng phân loại các tùy chọn khác nhau. Điều quan trọng
là không phải tất cả các tùy chọn có thể sẵn sàng sử dụng đối với một hệ cơ
sở dữ liệu tích cực. Thật vậy, hầu hết các hệ thống thƣơng mại đƣợc giới hạn
đến một hoặc hai tùy chọn. Giả thiết rằng sự kiện kích hoạt xảy ra nhƣ là một


20

tách biệt đối với từng hàng bị ảnh hƣởng bởi lệnh.
1.3. Mô hình cơ sở dữ liệu thời gian(Temporal database)
CSDL có yếu tố thời gian là 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. Các ứng dụng CSDL có
yếu tố thời gian đã đƣợc phát triển từ rất lâu. Tuy nhiên, việc tạo ra các ứng
dụng CSDL này chủ yếu đƣợc dành cho những ngƣời thiết kế và phát triển ứng


21

dụng nhằm khai thác, thiết kế, lập trình và cài đặt các khái niệm thời gian. Có
nhiều ứng dụng mà thời gian cần đƣợc quan tâm trong CSDL. Chẳng hạn, việc
theo dõi sức khỏe bệnh nhân, các hệ thống đặt chỗ trƣớc (nhƣ ở khách sạn, sân
bay, nơi cho thuê xe, ga tàu,…) hằng ngày luôn nhận đƣợc các yêu cầu đặt chỗ
trƣớc, thí nghiệm theo từng thời điểm khác nhau. Trong thực tế, phần lớn các
ứng dụng CSDL đều có các thông tin có yếu tố thời gian. Tuy nhiên, ngƣời sử
dụng thƣờng cố gắng để đơn giản hóa hay loại bỏ 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 ngƣời dùng [8].

Hình 1.4: Mô hình Cơ sở dữ liệu thời gian( Temporal database)
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 trong CSDL. Thời gian kết hợp này có thể đƣợc giải
thích theo nhiều cách khác nhau. Cách giải thích hợp lý nhất là thời gian kết
hợp(associated time) có thể xem nhƣ thời gian là 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ì thời gian kết hợp đƣợc
gọi là thời gian hợp lệ (valid time). Và CSDL có yếu tố thời gian sử dụng cách
giải thích này đƣợc gọi là CSDL thời gian hợp lệ.
Tuy nhiên, có một cách giải thích khác cũng đƣợc chấp nhận đó là thời
gian kết hợp 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ệ.

Hình 1.5: Mô hình CSDL thời gian.
Valid Time: Thời gian sự việc xảy ra trong thực tế
VST( Valid Start Time): Thời gian bắt đầu có hiệu lực
VET( Valid End Time): Thời gian kết thúc hiệu lực.
Transaction Time: Thời gian khi sự thay đổi đƣợc lƣu trong cơ sở dữ liệu
TST( Transactiion Start Time): Thời gian giao dịch đƣợc tạo ra
TET(Transaction End Time): Thời gian giao dịch kết thúc
1.3.1.Quan hệ 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, ví dụ xét hai quan hệ
NHANVIEN và DONVI (Hình 1.6(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.6 (b) với các
quan hệ đƣợc đổi tên thành NHANVIEN_VT và DONVI_VT tƣơng ứng [8].


23
(a) NHANVIEN_VT
TênNV

MasoNV

Luong

MasoDV

MasoNGS

VST

TênDV

MasoDV

TongLuong MasoNQL

TST

TET

(c) NHANVIEN_BT
TênNV

MasoNV

Luong

MasoDV

MasoNGS

VST

VET

VET

TST

TST

thời gian ngầm đại diện cho thời gian hiện thời. Quan hệ phi thời gian
NHANVIEN chỉ gồm những bộ từ quan hệ NHANVIEN_VT có VET là now mà
thôi.
NHANVIEN_VT
TênNV

Bắc
Bắc
Trung
Trung

MasoNV

101
101
102
102

Luong

25000
30000
25000
30000

MasoDV

5
5
4

MasoNQL

106
102

VST

1996-09-20
1997-04-01

VET

1997-03-31
now

Hình 1.7.Quan hệ thời gian hợp lệ NHANVIEN_VT và DONVI_VT.
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ế. 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, 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 thì ứng dụng
này sẽ sử dụng quan hệ thời gian giao tác.
1.3.2.Quan hệ thời gian giao tác.
Trong quan hệ thời gian giao 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ệ NHANVIEN và DONVI
đƣợ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

MasoDV

VST

VET

V1

Bắc

101

25000

5

1997-06-15

now

V2

Bắc

101

25000

5


now

V5

Trung

102

25000

4

1994-08-20

1996-01-31

V6

Trung

102

30000

5

1996-02-01

now


Nam

103

28000

4

1996-05-01

now

V10

Nam

103

28000

4

1996-05-01

1997-08-10

V11

Tuấn


1996-04-27,
16:22:05
1997-08-12,
10:11:07
1998-07-28,
09:25:37

1998-06-04,
08:56:12
uc
uc
1996-01-07,
14:33:02
uc
1997-03-28,
09:23:57
uc
uc
1997-08-12,
10:11:07
uc
uc

DONVI_BT.
TenDV

MasoDV

MasoNQL


1996-09-15, 1996-03-28,
1996-09-20
now
14:52:12
09:23:57
1996-03-28,
1996-09-20 1997-03-31
uc
09:23:57
1996-03-28,
1997-04-01
now
uc
09:23:57

Hình 1.8. Các bộ trong quan hệ theo hai loại thời gian NHANVIEN_BT và
DONVI_BT.



Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status