Kết quả thu được khi áp dụng vào nghiệp vụquản lý dữ liệu giao dịch chứng khoán cho thấy hệ thống truy vấn Bi-TSQL có nhiề u ưu điểm so với các hiện thực mẫu của một số hệ quản trị dữ l
Trang 1MÔI GIỚI CHỨNG KHOÁN
Chuyên ngành: Khoa họ c Máy tính
Mã số ngành: 60 48 01
LUẬN VĂN THẠC SĨ
Trang 3-
-oOo -Tp HCM, ngày 05 tháng 11 năm 2007
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ và tên học viên : Võ Hoàng Tam Giới tính : Nam / Nữ Ngày, tháng, năm sinh : 11/12/1982 Nơi sinh : Tây Ninh Chuyên ngành : Khoa học Máy tính Khoá : 2005
1- TÊN ĐỀ TÀI : MÔ HÌNH CƠ SỞ DỮ LIỆU SONG THỜI GIAN
-ỨNG DỤNG VÀO QUẢN LÝ GIAO DỊCH Ở CÁC CÔNG TY MÔI GIỚI CHỨNG KHOÁN
2- NHIỆM VỤ LUẬN VĂN :
- Nghiên cứu các mô hình dữliệu song thời gian của các tác giả đi trước
- Đề xuất một ngôn ngữ truy vấn song thời gian
- Hiện thực một hệ thống hỗ trợ ngôn ngữ truy vấn song thời gian nhưlà một
tầng (layer) xây trên hệ quản trị CSDL Oracle
- Ứng dụng hệ thống truy vấn trên vào việc quản lý giao dịch ở các công ty môi giới chứng khoán
3- NGÀY GIAO NHIỆM VỤ : 01/2007
4- NGÀY HOÀN THÀNH NHIỆM VỤ : 11/2007
5- HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN : TS Dương Tuấn Anh
Trang 4ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : TS Dương Tuấn Anh
Cán bộ chấm nhận xét 1 : TS Nguyễn Quang Tấn
Cán bộ chấm nhận xét 2 :TS Phạm Trần Vũ
Luận văn thạc sĩ được bảo vệ tại
HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 03 tháng 12 năm 2007
Trang 5LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác nhưđã ghi
rõ trong luận văn, các công việc trình bày trong luận văn này là do chính tôi thực hiện
và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Ngày 05 tháng 11 năm 2007
Võ Hoàng Tam
Trang 6LỜI CẢM ƠN
Tôi xin gởi lời cảm ơn chân thành và sâu sắc nhất đến TS Dương Tuấn Anh, người Thầy đã tận tình hướng dẫn tôi trong suốt quá trình từ đại học tới cao học và tạo mọi điều kiện để tôi có thể hoàn thành luận văn này
Tôi cũng xin cảm ơn gia đình đã động viên và tạo mọi điều kiện tốt nhất để tôi có thểtiếp tục theo đuổi việc học tập nghiên cứu Tôi trân trọng dành tặng thành quả của luận
văn này cho Cha Mẹ Nhờ công lao dưỡng dục của Người mà chúng con mới có được thành quả nhưngày hôm nay Con xin hứa sẽ tiếp tục cố gắng phấn đấu để vươn cao
hơn nữa
Trang 7TÓM TẮT LUẬN VĂN
Thờ i gian hợp lệghi nhậ n thời gian mà các sự việc diễn ra trong thế giới thực Thời
gian giao tác ghi nhận thời gian mà các sự việc được lưu trữvào cơsở dữ liệu Dữ liệu
song thờ i gian được lưu vết theo cả hai chiều thời gian trên Cho đến thời điểm hiện nay, có rất ít mô hình cơsở dữ liệu song thời gian được hiện thực và áp dụng vào thực
tế Dựa vào một số mô hình dữ liệu song thời gian đã được nghiên cứu, luận văn đã đề xuấ t ngôn ngữ truy vấn song thời gian Bi-TSQL được mở rộng từ ngôn ngữ SQL-92.
Bi-TSQL hỗ trợ người sử dụng thao tác với dữ liệu thời gian hợp lệ, dữ liệu thời gian giao tác và dữ liệu song thời gian Ngữ nghĩ a hình thức của Bi-TSQL dùng phép tính
quan hệ bộ (tuple relational calculus) cũng được đưa ra nhằm đảm bảo tính đúng đắn
của ngôn ngữ Bi-TSQL Ngôn ngữ truy vấn này cũng đã được hiện thực hóa nhưlà
một tầng xây trên hệ quản trị cơsở dữ liệu Oracle Kết quả thu được khi áp dụng vào
nghiệp vụquản lý dữ liệu giao dịch chứng khoán cho thấy hệ thống truy vấn Bi-TSQL
có nhiề u ưu điể m so với các hiệ n thực mẫu của các hỗ trợ dữ liệu hướng thời gian.
Trang 8The valid time of a fact records when the fact is true in the real world, and the
transaction time of a fact records when the fact is stored as current in the database A
bi-temporal database stores data with respect to both valid time and transaction time.
For the time being, hardly any prototype of bi-temporal data model can find its way to
real application in practice Basing on some previous bitemporal data models, we
introduce a new bitemporal query language Bi-TSQL, which is an extension of
SQL-92 Bi-TSQL can work with valid time data, transaction time data and bitemporaldata The formal semantic of Bi-TSQL using tuple relation calculus has also been
proposed We implemented this query language as a layer on top of Oracle DBMS
using layered implementation technology The experiment in applying this query
language to stock transaction management has shown that Bi-TSQL has many
promising features
Trang 9MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
TÓM TẮT LUẬN VĂN iii
DANH MỤC HÌNH viii
DANH MỤC BẢNG ix
Chươ ng 1 GIỚI THIỆU ĐỀ TÀI 1
1.1 Bố i cảnh và mục tiêu của đề tài 1
1.2 Cấ u trúc luận văn 3
1.3 Tổ ng kết chương 5
Chươ ng 2 CƠSỞ LÝ THUYẾT VỀ CƠSỞ DỮ LIỆU HƯỚNG THỜI GIAN 6
2.1 Các khái niệ m cơbản trong mô hình dữ liệu hướng thời gian 6
2.1.1 Mô hình hóa thờ i gian (model of time) 6
2.1.2 Phân loạ i thời gian (notion of time) 7
2.1.3 Phân loạ i cơsở dữ liệu hướng thời gian (temporal database) 8
2.1.4 Dán nhãn thờ i gian (Timestamping Data) 10
2.1.5 Ngữ nghĩ a của dữ liệu hướng thời gian (Semantic of temporal data) 12
2.2 Mô hình cơsở dữ liệ u hướng thời gian và ngôn ngữ truy vấn liên quan 13
2.2.1 Mô hình dữ liệu quan hệ hướng thời gian (Temporal Relational Model) và ngôn ngữ TSQL 13
2.2.2 Mô hình dữ liệu quan hệ song thời gian (Bitemporal Relational Data Model) và ngôn ngữ TQUEL 15
2.2.3 Mô hình dữ liệu ý niệm song thời gian (Bitemporal Conceptual Data Model) và ngôn ngữ TSQL2 18
2.3 Tổ ng kết chương 21
Chươ ng 3 TỔNG THUẬT CÁC CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN 23 3.1 Các hướ ng nghiên cứu liên quan đế n cơsở dữ liệu hướng thời gian 23
3.2 Mô hình dữ liệ u và ngôn ngữ tuy vấn hướng thời gian 24
3.3 Thiế t kế cơsở dữ liệ u hướng thời gian 26
3.4 Hiệ n thực các hỗ trợ cơsở dữ liệ u hướng thời gian 27
3.5 Lậ p chỉ mục hướng thời gian 30
3.6 Vấ n đề đặt ra của luận văn 34
3.7 Tổ ng kết chương 36
Chươ ng 4 THIẾT KẾ CƠSỞ DỮ LIỆU SONG THỜI GIAN HỖ TRỢ HOẠT ĐỘNG MÔI GIỚI CỦA CÔNG TY CHỨNG KHOÁN 37
4.1 Thị trường chứng khoán và nghiệ p vụ môi giới của công ty chứng khoán 37
Trang 104.2 Thiế t kế cơsở dữ liệ u hỗ trợ hoạt động môi giới của công ty chứng khoán.50
4.2.1 Phân tích yêu cầ u về dữ liệu cho nghiệp vụ quản lý giao dị ch chứng khoán 50
4.2.2 Thiế t kế lược đồ cơsở dữ liệ u 52
4.3 Tổ ng kết chương 55
Chươ ng 5 NGÔN NGỮ TRUY VẤN SONG THỜI GIAN BI-TSQL 57
5.1 Đề xuất ngôn ngữ truy vấn song thời gian Bi-TSQL 57
5.1.1 Đị nh nghĩ a các bảng dữ liệu hỗ trợ dữ liệu hướng thời gian 58
5.1.2 Mệ nh đề As Of 59
5.1.3 Mệ nh đề When 59
5.1.4 Mệ nh đề Valid 61
5.1.5 Các hàm gộ p và thao tác gom nhóm 61
5.1.6 Các câu lệ nh cập nhật dữ liệu 62
5.1.7 Truy vấ n con 63
5.1.8 Đị nh nghĩ a các ràng buộ c 63
5.2 Đặc tả cú pháp của ngôn ngữ Bi-TSQL 64
5.3 Ngữ nghĩ a hình thức của ngôn ngữ Bi-TSQL 67
5.3.1 Biể u diễn ngữ nghĩ a của ngôn ngữ SQL dùng phép tính quan hệ bộ 67
5.3.2 Đị nh nghĩ a hình thức của toán tử thời gian và vị từ thời gian 68
5.3.3 Ngữ nghĩ a của câu lệnh truy vấ n (select) trong ngôn ngữ truy vấn song thời gian Bi-TSQL 70
5.3.4 Ngữ nghĩ a của các câu lệ nh chỉ nh sửa (insert/update/delete) trong ngôn ngữ truy vấn song thờ i gian Bi-TSQL 72
5.4 Tổ ng kết chương 77
Chươ ng 6 HỆ THỐNG TRUY VẤN CƠ SỞ DỮ LIỆU SONG THỜI GIAN Bi-TSQL 78
6.1 Kiế n trúc của hệ thống truy vấn Bi-TSQL 78
6.2 Giao diệ n người sửdụng cho hệ thống truy vấn 81
6.3 Thưviệ n lập trình giao tiế p với hệ thống truy vấn 82
6.4 Ứng dụng kỹ thuật lập chỉ mục song thời gian cho hệ thống truy vấn 83
6.5 Kế t quả thực nghiệ m 86
6.5.1 Khả năng biểu diễn của ngôn ngữ Bi-TSQL 86
6.5.2 So sánh hệ thống truy vấn Bi-TSQL với các hiện thực mẫu 86
6.5.3 Hiệ u suấ t của hệ thống truy vấn Bi-TSQL 87
6.5.4 So sánh thờ i gian thực thi câu truy vấn Bi-TSQL với câu truy vấn SQL-92 tương ứng 89
6.5.5 Tác dụ ng của kỹ thuật lập chỉ mục song thời gian 90
6.6 Tổ ng kết chương 93
Chươ ng 7 TỔNG KẾT – ĐÁNH GIÁ 94
7.1 Tổ ng kết 94
7.2 Những đóng góp củ a luận văn 94
Trang 11TÀI LIỆU THAM KHẢO 98 Phụ lục A Tập Các Câu lệnh Cập nhật Dữ liệ u Bi-TSQL để Thêm Dữ liệu mẫu
vào Các Bả ng Dữ liệu Hướng thời gian A-1 Phụ lục B Tập Các Câu Truy vấn Song thời gian Bi-TSQL và Câu Truy vấn
SQL-92 tươ ng ứng B-1 Phụ lục C Tập Các Câu Truy vấn Song thời gian dùng cho Bài thử nghiệm Hiệu
suấ t của Hệ thống Truy vấn Bi-TSQL C-1 Phụ lục D Kỹ thuật Lập chỉ mục Song thời gian 4RTree D-1 Phụ lục E Đặc tả Cú pháp của Ngôn ngữ Bi-TSQL E-1 Phụ lục F Bảng đối chiếu Thuật ngữ Anh - Việ t F-1
Trang 12DANH MỤC HÌNH
Hình 2.1: Cơsở dữ liệu tức thời trong ngữ cảnh thời gian hợp lệ và thời gian giao tác 8
Hình 2.2: Cơsở dữ liệu lị ch sửtrong ngữ cảnh thời gian hợp lệ và thời gian giao tác 9
Hình 2.3: Cơsở dữ liệu giao tác trong ngữ cảnh thời gian hợp lệ và thời gian giao tác 9
Hình 2.4: Cơsở dữ liệu song thời gian trong ngữ cảnh thời gian hợp lệ và thời gian giao tác 10
Hình 3.1: Cây Append-Only Tree lậ p chỉ mục trên dữ liệu thời gian giao tác 31
Hình 3.2: Kỹ thuật MAP21 lập chỉ mục trên dữ liệu thời gian hợp lệ 31
Hình 3.3: Kỹ thuật lập chỉ mục hai mức cho dữ liệu song thời gian 32
Hình 3.4: Kỹ thuật 2RTree lập chỉ mục cho dữ liệu song thời gian 33
Hình 4.1: Quá trình luân chuyể n vốn thông qua thị trường tài chính 37
Hình 4.2: Quá trình hình thành và phát triể n của thị trường chứng khoán 38
Hình 4.3: Giao dị ch chứng khoán tại trung tâm giao dị ch chứng khoán Tp HCM 44
Hình 4.4: Sơđ ồ thực thể-mối liên kết cho nghiệp vụ quản lý giao dị ch chứng khoán 50
Hình 5.1: Đị nh nghĩ a hình thức của các toán tử thời gian 69
Hình 5.2: Đị nh nghĩ a hình thức của các vị từ thời gian 70
Hình 5.3: Thờ i gian hợp lệ của bộ dữ liệu mới được chèn vào bảng dữ liệu hướng thời gian 74
Hình 6.1: Kiế n trúc của hệ thống truy vấn Bi-TSQL 79
Hình 6.2: Giao diệ n đồ họa TimeISQuery để làm việc với hệ thống truy vấ n Bi-TSQL 81
Hình 6.3: Dữ liệu song thời gian trong cây R-Tree 84
Hình 6.4: Kiế n trúc hiệ n thực chỉ mục song thời gian cho hệ thống truy vấn Bi-TSQL 85
Hình 6.5: Thờ i gian đáp ứng của hệ thống truy vấn Bi-TSQL theo kích thước của dữ liệu 88
Hình 6.6: Thờ i gian đáp ứng của hệ thống truy vấn Bi-TSQL để thực thi 4 câu truy vấ n song thời gian mẫ u khi dùng cấu trúc chỉ mục 4RTree 92
Hình 6.7: So sánh thờ i gian đáp ứng của hệ thống truy vấn Bi-TSQL khi dùng và không dùng cấu trúc chỉ mục 4RTree 92
Trang 13DANH MỤC BẢNG
Bả ng 2.1: Các toán tử áp dụng lên thời khoảng 7
Bả ng 2.2: Bả ng dữ liệ u mẫu theo mô hình dữ liệ u quan hệ thời gian hợp lệ 13
Bả ng 2.3: Các bả ng dữ liệ u mẫu theo mô hình dữ liệu quan hệ song thời gian 15
Bả ng 2.4: Các bả ng dữ liệ u mẫu theo mô hình dữ liệu ý niệm song thời gian 19
Bả ng 3.1: Các mô hình dữ liệ u hướng thời gian và ngôn ngữ truy vấn liên quan 24
Bả ng 4.1: Tập hợp các lệnh mua bán chứng khoán trong kỳ và xác đị nh mức giá khớp lệnh 42
Bả ng 4.2: Đặc tả về các thực thể, mối liên kết và thuộc tính trong sơđồ thực thể-mối liên kết cho nghiệ p vụ quản lý giao dị ch chứng khoán 51
Bả ng 4.3: Các bả ng dữ liệ u mẫu cho cơsở dữ liệu quản lý giao dị ch chứng khoán 54
Bả ng 6.1: So sánh hệ thống truy vấn Bi-TSQL với các hiện thực mẫu khác 87
Bả ng 6.2: So sánh thời gian thực thi câu truy vấn Bi-TSQL với câu truy vấn SQL-92 tương ứng 89
Trang 14Chương 1 GIỚI THIỆU ĐỀ TÀI
Chương này giới thiệu chung về bối cảnh, mục tiêu và kế t quả thu được của đề tài Cấu trúc nội dung của quyển thuyết minh luận văn được trình bày ở cuối chương
1.1 Bối cảnh và mục tiêu của đề tài
Chuyển từ hệ thống xử lý tập tin (file processing systems) sang cơsở dữ liệu
(databases) đánh dấu bước phát triển vượt bậc trong lãnh vực lưu trữ và quản lý dữ liệu Các hệ quản trị cơsở dữ liệu hiện nay (Oracle, SQL Server, Sybase, Informix )
có khả năng hỗ trợ người sử dụng lưu trữ và quản lý một khối lượng lớn dữ liệu, đảm
bảo việc truy xuất dữ liệu nhanh chóng, an toàn và hiệu quả
Tuy nhiên, mô hình cơsở dữ liệu truyền thống và các hệ quản trị cơsở dữ liệu thương
mại hiện nay chỉ hỗ trợ người sử dụng lưu giữ trạng thái hiện tạicủa thế giới thực
Các tác vụ chỉnh sửa dữ liệu (insert, update, delete) sẽ chuyển cơsở dữ liệu từ trạng thái này sang trạng thái khác Có nghĩa là dữ liệu luôn được đồng bộvà các tác vụ truy
vấ n dữ liệu được thực hiện dựa trên giả thiếtlà những sự kiện lưu trữ trong cơsở dữ
liệu là hợp lệngay tại thời điểm thực thi câu truy vấn đó
Trong nhiều ứng dụng thực tế,việc lưu giữnhững trạng thái quá khứvà tương lai
của dữ liệu là cần thiết Một số ví dụđiển hình nhưsau:
Quản lý nhân sự(personel management): lưu trữ lịch sử của lương và chức vụ
của nhân viên trong công ty
Thông tin trong y tế(medical information management): theo dõi bệnh sửcủa
bệnh nhân đang được điều trị
Thông tin trong kinh tế(financial information): lưu trữ lị ch sử giá của các cổ phiế u được niêm yết trên thị trường chứng khoán, tỉ giá vàng, tỉ giá ngoại tệ
Các hệ thống đặt trước (reservation systems): quản lý việc đặt chỗ trước ở khách sạn, nhà hàng, đặt trước vé máy bay
ng thái khác nhau của dữ liệ u được lưu trữ được gọi là dữ liệu thay đổi
Trang 15oriented data) Dữ liệu có thể được lưu vết theo nhiều chiề u thời gian dimension) khác nhau Thờ i gian hợp lệ(valid-time) ghi nhận thời gian mà các sự việ c (facts) có thực (diễn ra) trong thế giới thực Thời gian giao tác (transaction-time)
(time-ghi nhận thời gian mà các sự việ c (facts) được lưu trữ vào cơsở dữ liệu Mô hình dữ liệu song thời gian (bitemporal data model) hỗ trợ việc quản lý dữ liệu theo cả 2 chiều
thời gian trên, thời gian hợp lệ và thời gian giao tác
Trong thực tế, những khía cạnh liên quan đến ngữ nghĩ a thời gian của dữ liệu có thể
được hiện thực đơn giản bằng cách lưu trữthêm các thuộc tính thời gian kèm theo dữ
liệu Tuy nhiên, hướng tiếp cận này có hai nhược điểm sau:
Không diễn tả được đầy đủ ngữ nghĩa của thời gian gắn với dữ liệu
Các hệ quản trị cơsở dữ liệu còn rất hạn chế trong việc hỗ trợ lưu trữ và truy
vấn dữ liệu hướng thời gian
Cho đến nay, đã có nhiều hướng đề xuất khác nhau áp dụng cho mô hình dữ liệu quan
hệ hoặc mô hình dữ liệu hướng đối tượng nhằm mở rộng khả năng quản lý dữ liệu thay đổi theo thời gian Các hướng tiếp cận này tập trung chủ yếu vào việc mở rộng cấu
trúc dữ liệu lưu trữvà đề ra các ngôn ngữ truy vấn liên quan Tuy nhiên, hầu hết các
hướng đề xuất trên đều dừng ở mức mô hình lý thuyết Hiện nay có rất ít mô hình cơ
sở dữ liệu hướng thời gian, đặc biệt là mô hình cơsở dữ liệ u song thời gian, được
hiện thực và áp dụng vào thực tế
Xuất phát từ những yêu cầu trên, đề tài này đặt ra một số mục tiêu sau:
Tìm hiể u các mô hình cơsở dữ liệu song thời gian và các ngôn ngữ truy vấn liên quan
Đề xuất ngôn ngữ truy vấn song thời gian phù hợp, có khả năng đáp ứng các
yêu cầu liên quan đến ngữ nghĩa song thời gian của dữ liệu Ngữ nghĩ a hình thứ c của ngôn ngữ cũng cần được đưa ra nhằm đảm bảo tính đúng đắn của ngôn
ngữ
Phát triển hệ thống truy vấn hỗ trợ ngôn ngữ truy vấn song thời gian vừa được
đề xuất, khắc phục những nhược điểm của các hiện thực mẫu hỗ trợ quản lý dữ
Trang 16 Tìm hiểu các kỹ thuật lập chỉ mục trên dữ liệu song thời gian và áp dụng vào
hệ thống truy vấn.
Ứng dụng ngôn ngữ và hệ thống truy vấn trên vào việc quản lý giao dị ch ở các
công ty môi giới chứng khoán
Sau đây là một số kế t quả thu được của đề tài:
Đã phân tích những điể m chưa hoàn thiện của một số ngôn ngữ truy vấn
hướng thời gian (TQuel, TSQL2 ) và các hiện thực mẫu của hệ quản trị dữ liệu
hướng thời gian (TIP, TimeDB)
Đề xuất ngôn ngữ truy vấ n song thời gian (tạm được gọi là Bi-TSQL) được mở
rộng từ ngôn ngữ SQL-92, đáp ứng các yêu cầu liên quan đến ngữ nghĩa thời gian của dữ liệu Bi-TSQL hỗ trợ người sử dụng thao tác với dữ liệu thời gian
hợp lệ, dữ liệu thời gian giao tác và dữ liệu song thời gian
Ngữ nghĩ a hình thức của ngôn ngữ Bi-TSQL dùng phép tính quan hệ bộ (tuple
relational calculus) cũng được đưa ra nhằm đảm bảo tính đúng đắn của ngôn ngữ Bi-TSQL
Ngôn ngữ truy vấn Bi-TSQL cũng đã được hiện thực hóa nhưlà một tầng xây trên hệ quản trị cơsở dữ liệu Oracle Kết quả thu được khi áp dụng vào nghiệp
vụquản lý dữ liệu giao dịch chứng khoán cho thấy hệ thống truy vấn Bi-TSQL
có nhiề u ưu điểm so với các hiện thực mẫu của một số hệ quản trị dữ liệu
hướng thời gian
Thời gian đáp ứng của hệ thống truy vấn Bi-TSQL hầu nhưkhông bị ảnh
hư ởng bởi quá trình biên dị ch câu truy vấn Bi-TSQL thành câu SQL-92 tương
ứng Độ chênh lệ ch về thời gian thực thi câu truy vấn khi dùng hệ thống truy
vấn Bi-TSQL và khi dùng SQL-92 là không đáng kể, chỉ khoảng 7 mili giây
Nhưng những tiệ n lợi mà Bi-TSQL mang lại cho người sử dụng khi làm việc
với dữ liệu song thời gian là lớn hơn rấtnhiều so với SQL-92
1.2 Cấu trúc luận văn
Trang 17Chươ ng 2 trình bày cơsở lý thuyếtvề cơsở dữ liệu hướng thời gian Phần đầu của chương giới thiệu các khái niệm cơbản của mô hình dữ liệu hướng thời gian Tiếp theo đó là phần giới thiệu về ba mô hình cơsở dữ liệu hướng thời gian Temporal Relational Model, Bitemporal Relational Data Model và Bitemporal Conceptual DataModel kèm theo các ngôn ngữ truy vấn hướng thời gian tương ứng là TSQL, TQuel,
và TSQL2
Chươ ng 3 giớ i thiệu tổng quan về các hướng nghiên cứu liên quan đến cơsở dữ liệu
hướng thời gian Các hướng tiếp cận để xây dựng một ứng dụng cơsở dữ liệu hướng thời gian được trình bày chi tiết Một số hiện thực mẫu (prototype) của hệ quản trị cơ
sở dữ liệu hướng thời gian cũng được tìm hiểu, phân tích và đánh giá Vấn đề đặt ra
của luận văn được diễn giải ở cuối chương 3.
Phần đầu của chương 4 giới thiệu về nguyên tắc hoạt động của thị trường chứng khoán nói chung và thị trường chứng khoán Việt Nam nói riêng Sau đó là phần trìnhbày về nghiệp vụ môi giới chứng khoán của Công ty Chứng khoán Sài Gòn Phần cuối
của chương 4 là thiết kế cơsở dữ liệu cho nghiệp vụ quản lý giao dịch của công ty môi giới chứng khoán theo mô hình cơsở dữ liệu song thời gian
Trong chươ ng 5, ngôn ngữ truy vấn song thời gian Bi-TSQL được đề xuất Bi-TSQL
được mở rộng từ ngôn ngữ SQL-92, hỗ trợ người sử dụng thao tác với dữ liệu thời gian hợp lệ, dữ liệu thời gian giao tác và dữ liệu song thời gian Nhằm đảm bảo tính
đúng đắn của ngôn ngữ Bi-TSQL, ngữ nghĩ a hình thức (formal semantic) của ngôn
ngữ Bi-TSQL cũng được đưa ra ở cuối chương 5.
Chươ ng 6 trình bày chi tiế t hiện thực của hệ thống truy vấn cơsở dữ liệu song thời
gian Bi-TSQL Kế t quả thực nghiệm trình bày ở cuối chương cho thấy hệ thống truy
vấn Bi-TSQL có nhiều ưu điểm so với các hiện thực mẫu của hệ quản trị dữ liệu
hướng thời gian
Chươ ng 7 tổ ng kết lại những công việc đã làm được, sau đó nêu ra những đóng góp và
hư ớng phát triển của luận văn.
Trang 181.3 Tổng kết chương
Chương này đã giới thiệu bối cảnh của đề tài, từ đó nêu ra một số mục tiêu của luận
văn: tìm hiể u các mô hình cơsở dữ liệu song thời gian và các ngôn ngữ truy vấn liên
quan, đ ề xuất ngôn ngữ truy vấn có khả năng đáp ứng các yêu cầu liên quan đến ngữ nghĩa song thờ i gian của dữ liệu, phát triển hệ thống truy vấn hỗ trợ ngôn ngữ truy
vấ n song thời gian và ứng dụng vào việc quản lý giao dị ch ở các công ty môi giới
chứng khoán Chương tiếp theo sẽ trình bày cơsở lý thuyếtvề cơsở dữ liệu hướng
thời gian
Trang 19Chương 2 CƠ SỞ LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU
HƯỚNG THỜI GIAN
Các khái niệ m cơbản của mô hình dữ liệu hướng thời gian được trình bày ở phần đầu
của chương này Tiếp theo đó là phần giới thiệu về ba mô hình cơsở dữ liệu hướng
thờ i gian Temporal Relational Model, Bitemporal Relational Data Model và
Bitemporal Conceptual Data Model kèm theo các ngôn ngữ truy vấn hướng thời gian
tương ứng là TSQL, TQuel, và TSQL2
2.1 Các khái niệm cơ bản trong mô hình dữ liệu hướng
thời gian
2.1.1 Mô hình hóa thời gian (model of time)
Thời gian có thể được mô hình liên tục (continuous) hoặc rời rạc (discrete) Theo mô hình liên tục, mỗi số thực sẽ ứng với một điểm trên trục thời gian Mô hình rời rạc ánh
xạ thời gian thành các số nguyên
Độ mị n thời gian (granularity)
Đơn vị thời gian nhỏ nhất, không thể phân tách được nữa mà hệ thống có thể hỗ trợ được gọi là độ mịn thời gian
Thời điểm (time instant) và sự kiện (event)
Thời điểm là một điểm trên trục thời gian Sự kiện là một sự việc (fact) xảy ra tức thời
tại một thời điểm nào đó
Thời khoảng (time interval) và phần tử thời gian (temporal element)
Thờ i khoảng dùng để mô hình khoảng thời gian mà một sự việc có thực (diễn ra) trong thế giới thực Thời khoảng I được xác định bởi thời điểm đầu begin(I) và thời điểm cuối end(I).
Phầ n tử thời gian là một tập hợp hữu hạn các thời khoảng.
Trang 20Bả ng 2.1: Các toán tử áp dụng lên thời khoảng
Các toán tửáp dụ ng lên thời khoảng trên do Allen [1] đề xuất, và đã được áp dụng
rộng rãi khi định nghĩa ngôn ngữ truy vấn hướng thời gian Hầu hếtcác ngôn ngữ truy
vấ n hướng thời gian nhưTSQL [19], TQUEL [27], TSQL2 [15] đều sử dụng các
toán tử này để thiết lập điều kiệ n ràng buộc trên thời gian hợp lệcủa dữ liệu Ngôn
ngữ truy vấn song thời gian Bi-TSQL được đề xuất trong luận văn này cũng sử dụng các toán tử trên
2.1.2 Phân loại thời gian (notion of time)
Thời gian do người dùng đị nh nghĩ a (user-defined time)
Các nhãn thờ i gian (timestamp) đikèm với dữ liệu chỉ có ngữ nghĩa đối với người sử
dụng, ví dụ ngày sinh, được gọi là thời gian do người dùng định nghĩa Hệ quản trị cơ
sở dữ liệu chỉ xem nó là thuộc tính bình thường nhưcác thuộc tính khác, chỉ có điều khác biệt là kiểu dữliệu của thuộc tính này là kiểu Date
Thời gian hợp lệ (valid-time)
Thời gian hợp lệ ghi nhận thời gian mà các sự việ c (facts) có thực (diễn ra) trong thế
1 I1 BEFORE I2 end(I1) < begin(I2)
2 I1 AFTER I2 end(I2) <begin(I1)
3
4
I1 DURING I2
I1 CONTAINS I2
(begin(I1)> begin(I2)end(I1) end(I2) )
(begin(I1)begin(I2) end(I1) <end(I2))(begin(I2)> begin(I1)end(I2) end(I1) )
(begin(I2)begin(I1) end(I2) <end(I1))5
end(I2)<end(I1)7
8
I1 MEETS I2
I2 MET_BY I1
end(I1) = begin(I2)end(I2) = begin(I1)9
Trang 21Thời gian giao tác (transaction-time)
Thời gian giao tác ghi nhận thời gian mà các sự việc (facts) được lưu trữ vào cơsở dữ
liệu
2.1.3 Phân loại cơsở dữ liệu hướng thời gian (temporal database)
Tác giả Steiner [30] phân loại cơsở dữ liệu hướng thời gian thành 4 loại dựa theo
chiều thời gian (thời gian hợp lệ và thời gian giao tác) mà cơsở dữ liệu đó hỗ trợ
Cơsở dữ liệu tức thời (snapshot database)
Cơsở dữ liệu truyền thống đặt trong ngữ cảnh hướng thời gian có thể được gọi là cơ
sở dữ liệu tức thời bởi vì nó chỉ lưu giữ trạng thái hiện tạicủa thế giới bên ngoài Cáctác vụ chỉnh sửa dữ liệu (insert, update, delete) chuyển cơsở dữ liệu từ trạng thái nàysang trạng thái khác Có nghĩa là trạng thái cũ bị ghi đè, được thay thế bằng trạng thái
mới Loại cơsở dữ liệu này được gọi là cơsở dữ liệu tức thời Dữ liệu lưu trữ trong cơ
sở dữ liệu được mặc định là đúng (có thực) trong thế giới thực bên ngoài Các hệ quản trị cơsở dữ liệu thương mại hiện nay chỉ hỗ trợ cơsở dữ liệu loại này
Hình 2.1: Cơsở dữ liệu tức thời trong ngữ cảnh thời gian hợp lệ và
thờ i gian giao tác
Cơsở dữ liệu lị ch sử (historical database, valid-time database)
Cơsở dữ liệu lịch sử lưu giữ quá trình thay đổi(lị ch sử) của dữ liệ u ứng với thế giới
thực bên ngoài Thế giới thực thay đổi theo trục thời gian thực, do đó cơsở dữ liệu lịch
Trang 22Hình 2.2: Cơsở dữ liệu lị ch sử trong ngữ cảnh thời gian hợp lệ và
thờ i gian giao tác
Cơsở dữ liệu giao tác (rollback database, transaction-time database)
Cơsở dữ liệu giao tác lưu giữ sự thay đổicủa chính cơsở dữ liệu đó Dữ liệu được
lưu trữ theo trục thời gian giao tác Khi câu lệnh chỉnh sửa dữ liệu được thực thi, hệthống lưu trạng thái mới của cơsở dữ liệu ứng với thời điểm thực thi câu lệnh, trạng thái cũ của cơsở dữ liệu vẫn được giữ lại Không có dữ liệu nào bị xóa về mặt vật lý
Hình 2.3: Cơsở dữ liệu giao tác trong ngữ cảnh thời gian hợp lệ và
thờ i gian giao tác
Trang 23Cơsở dữ liệu song thời gian (bitemporal database)
Cơsở dữ liệu song thời gian là sự kế t hợp của cơsở dữ liệu lịch sử và cơsở dữ liệu giao tác Cơsở dữ liệu song thời gian lưu trữ trạng thái của cơsở dữ liệu theo cả hai trục thời gian hợp lệ và thời gian giao tác
Hình 2.4: Cơsở dữ liệu song thời gian trong ngữ cảnh thời gian hợp lệ và
thờ i gian giao tác 2.1.4 Dán nhãn thời gian (Timestamping Data)
Để thể hiện được sự thay đổi của dữ liệu theo thời gian, dữ liệu cần phải được gán các nhãn thời gian kèm theo
Dán nhãn thời gian theo thời điểm (timestamping with time instant)
Dữ liệu được dán nhãn theo thời điểm khi dữ liệu chỉ được xem là hợp lệ ở những thời điểm xác định Quan hệ chứa dữ liệu dán nhãn theo thời điểm được gọi là bảng sự kiện (event table, event relation) Ví dụ:
Trang 24Dán nhãn thời gian theo thời khoảng (timestamping with time interval)
Dữ liệu được dán nhãn theo thời khoảng khi dữ liệu chỉ được xem là hợp lệtrong một thờ i khoảng xác định Cận dưới và cận trên của thời khoảng được ánh xạ thành 2thuộc tính có kiểu dữ liệu là kiểu Date Ví dụ:
Bảng dữ liệu song thời gian (bitemporal table) được mở rộng thêm 4 thuộc tính, trong
đó 2 thuộc tính để diễn tả thời gian hợp lệ và 2 thuộc tính còn lại để diễn tả thời gian giao tác Ví dụ:
Dán nhãn thời gian theo phần tử thời gian (timestamping with time element)
Jane Assistant 9-71 12-76 9-71 until changed
Jane Associate 12-76 11-80 12-76 until changed
Jane Full 11-80 forever 10-80 until changed
Merrie Assistant 9-77 12-82 8-77 until changed
Merrie Associate 12-82 forever 12-82 until changed
Tom Assistant 9-75 12-80 10-75 until changed
Tom Associate 12-80 forever 11-80 until changed
Trang 252.1.5 Ngữ nghĩ a của dữ liệu hướng thời gian (Semantic of
temporal data)
Sự tươ ng quan giữa thời gian hợp lệ và thời gian giao tác hình thành nên ngữ nghĩ a
của dữ liệu hướng thời gian [14]
Xét R là một quan hệ sự kiện (event relation) chỉ lưu trữ các sự việc có thực (diễn ra)
tạ i một thời điểm trong thế giới thực bên ngoài và e là một phần tử thuộc R Ký hiệu
vtelà thời gian hợp lệ,tức thời điểm sự việc diễn ra trong thực tế và ttelà thời điểm sự việc được lưu vào cơsở dữ liệu Khi đó, ta có thể định nghĩa một số loại ngữ nghĩa thời gian nhưsau:
R được xem là có hiệu lực trở về trước (retroactive) nếu eR (vte tte).Trong trường hợp này giá trị của một phần tử là hợp lệ trước thời điểm chúng được lưu vào cơsở dữ liệu
R được xem là tiên đoán (predictive) nếu eR (vte tte) Trong trường hợpnày giá trị của một phần tử chưa hợp lệ khi chúng được lưu vào cơsở dữ liệu,
mà giá trị đó sẽ hợp lệ trong tương lai sau thời điểm chúng được lưu vào cơsở
dữ liệu
R được xem là suy biế n (degenerate) nếu eR (vte = tte) Trong trường hợp này sự thay đổi giá trị của một phần tử được cập nhật ngay lập tức vào cơsở dữ liệu, không có sự chậm trễ (delay) giữa thời gian giao tác và thời gian hợp lệ, và
Trang 262.2 Mô hình cơsở dữ liệu hướng thời gian và ngôn ngữ
truy vấn liên quan
2.2.1 Mô hình dữ liệu quan hệ hướng thời gian (Temporal
Relational Model) và ngôn ngữ TSQL
Navathe [19] đã đề xuất hướng mở rộng mô hình dữ liệu quan hệ thành mô hình dữ liệ u quan hệ hướng thời gian (Temporal Relational Model) Mô hình này chỉ hỗ trợ thờ i gian hợp lệ(valid-time).
Các quan hệ trong mô hình này được phân thành 2 loại:
Snapshot relation: tất cả thuộc tính của quan hệ này không thay đổi theo thời gian Đây chính là các bảng dữ liệu theo mô hình dữ liệu quan hệ truyền thống
Valid-time relation: mỗi bộ dữ liệu (tuple) trong quan hệ được lưu trữ kèm theokhoảng thời gian hợp lệ, thể hiện thành 2 thuộc tính mới Time-start và Time-end
Ví dụ : bảng dữ liệu 2.2 dùng để lưu trữ lị ch sử về lương của nhân viên trong công ty.
Bả ng 2.2: Bảng dữ liệu mẫu theo mô hình dữ liệ u quan hệ thời gian hợp lệ
Navathe cũng đưa ra ngôn ngữ truy vấn hướng thời gian TSQL, thêm vào ngôn ngữ
SQL chuẩn những đặc điểm mới sau:
Biểu thức điều kiện thời gian trong mệnh đề When
Trang 27 Xác định miền thời gian hợp lệ dùng mệnh đề TIME-SLICE
Các hàm bao gộp đã chỉnh sửa và mệnh đề GROUP BY
Sau đây là một số ví dụ truy vấn dữ liệu từ lược đồ cơsở dữ liệu sau:
Tìm lương của nhân viên 125 khi Smith là trưởng phòng của nhân viên đó:
Trong ví dụ trên, mệnh đề When được thêm vào để quy định điều kiện ràng buộc trên
thờ i gian hợp lệcủa dữ liệ u, toán tử Overlap để kiểm tra hai khoảng thời gian hợp lệ
có phủ lấp nhau không Ngoài ra, TSQL còn hỗ trợ nhiều toán tử so sánh giữa hai
khoả ng thời gian do Allen [1] đề xuất nhưđã giới thiệu ở bảng 2.1
Liệt kê tất cả những thay đổi về lương trong khoảng thời gian 1972-1978 của những nhân viên mà trưởng phòng của họ là Bradford:
Trong ví dụ trên, mệnh đề TIME-SLICE được thêm vào để quy định miền thời gian
hợp lệ Khi thực thi câu truy vấn, chỉ có những bộ dữ liệu nào có thời gian hợp lệ phù
hợp với thời gian quy định bởi mệnh đề TIME-SLICE mới được xem xét.
Liệt kê trưởng phòng và lịch sử lương của những nhân viên có lương ít hơn40K:
SELECT salr
FROM S, M
WHERE S.eno = M.eno and M.eno = 125 and M.mgr = ‘Smith’
WHEN S.INTERVAL OVERLAP M.INTERVAL
SELECT S.eno, salr, S.TIME-START FROM S, M
WHERE S.eno = M.eno AND mgr = ‘Bradford’
WHEN M.INTERVAL OVERLAP S.INTERVAL TIME-SLICE year [1972, 1978]
E(eno, name, address, date-of-birth) /*quan hệ Employee*/
S(eno, salr, TS, TE) /*quan hệ Salary*/
M(eno, mgr, TS, TE) /*quan hệ Manager*/
Trang 28Trong ví dụ trên, các thuộc tính TIME-START và TIME-END dùng để truy xuất các
nhãn thời gian hợp lệ được gắn kèm với dữ liệu
2.2.2 Mô hình dữ liệu quan hệ song thời gian (Bitemporal
Relational Data Model) và ngôn ngữ TQUEL
Năm 1987, Snodgrass [27] đã đề xuất mô hình dữ liệu quan hệsong thời gian
(Bitemporal Relational Data Model) mở rộng từ mô hình dữ liệu quan hệ truyền thống
bằng cách thêm vào mỗi quan hệ 4 thuộc tính ẩn (implicit):
Hai thuộc tính (start, stop) để ghi nhận thời gian giao tác của việc chèn hoặc xóa luận lý dữ liệu
Hai thuộc tính (from, to) để ghi nhận khoảng thời gian hợp lệcủa dữ liệu Trong trường hợp dữ liệu được dán nhãn thời gian sự kiện (event timestamping) thì chỉ cần dùng một thuộc tính (at).
Bảng 2.3 là ví dụ áp dụng mô hình cơsở dữ liệu song thời gian vào quản lý chức
danh và hoạ t động nghiên cứu khoa học (thông qua việc quản lý việc đăng các bài báokhoa học) của các giảng viên
Bả ng 2.3: Các bảng dữ liệu mẫu theo mô hình dữ liệ u quan hệ song thời gian
Submitted (Author, Journal):
Author Journal Valid time
(at)
Transaction time (start) (stop) Jane CACM 11-79 11-79 until changed Merrie CACM 9-78 9-78 until changed Merrie TODS 5-79 5-79 until changed Tom JACM 12-82 12-82 until changed
SELECT M.eno, mgr, sal, (M inter S).TIME-START,(M inter S).TIME-END
FROM S, M
WHERE S.eno = M.eno AND salr < 40K
WHEN S.INTERVAL OVERLAP M.INTERVAL
Trang 29Trong mô hình này, các thông tin về thời gian của dữ liệ u được lưu trong các thuộc
tính ẩ n, giúp người sử dụng hoàn toàn trong suốt đối với những thông tin này Nhiệm
vụ xử lý các yêu cầu dữ liệu liên quan đến ngữ nghĩ a thời gian được giao cho ngôn
ngữ truy vấn
Snodgrass cũng đề xuất ngôn ngữ truy vấn song thời gian TQuel được mở rộng từ ngôn ngữQuel Quel là ngôn ngữ truy vấn của hệ quản trị cơsở dữ liệu Ingress.
Thông tin chi tiết về Quel và Ingress có thể tham khảo theo tài liệu [13]
TQuel thêm vào một số đặc điểm mới so với Quel:
Mệnh đề When để đưa vào các biểu thức điều kiện về thời gian hợp lệ
Mệnh đề Valid để xác định thời gian hợp lệ của các bộ dữ liệu (tuple) trongquan hệ kết quả
Mệnh đề As-Of để đưa vào các biểu thức điều kiện về thời gian giao tác
Các câu lệnh chỉnh sửa dữ liệu hướng thời gian (append, replace, delete)
Các câu lệnh bao gộp (temporal aggregate function) được giới thiệu chi tiết trong [25]
Hỗ trợ giải quyết vấn đề bất định thời gian (indeterminacy)
Sau đây là mộ t số câu truy vấn dữ liệ u hướng thời gian dùng TQuel theo tài liệu [27]:
Faculty (Name, Rank):
Valid time Transaction time Name Rank
(from) (to) (start) (stop) Jane Assistant 9-71 12-76 9-71 until changed Jane Associate 12-76 11-80 12-76 until changed Jane Full 11-80 forever 10-80 until changed Merrie Assistant 9-77 12-82 8-77 until changed Merrie Associate 12-82 forever 12-82 until changed Tom Associate 9-75 forever 8-75 10-75 Tom Assistant 9-75 12-80 10-75 until changed Tom Associate 12-80 forever 11-80 until changed
Trang 30 Liệt kê danh sách các phó giáo sư:
Nếu câu truy vấn này được thực thi vào tháng 9 năm 1983 thì ta thu được kết quảsau:
Liệt kê danh sách các giảng viên hiện tạiđang là phó giáo sư:
Trong ví dụ trên, mệnh đề When được thêm vào để quy đị nh điều kiện ràng buộc trên
thờ i gian hợp lệcủa dữ liệu, toán tử Overlap để kiểm tra hai khoảng thời gian có phủ
lấp nhau không Từ khóa Now trong câu truy vấn là hằng số, dùng để chỉ thời điểm hiện tại
Liệt kê những bài báo được viết bởi các phó giáo sư:
Ví dụ trên minh họa việc kết (join) hai bảng dữ liệu hướng thời gian, quy định thời gian hợp lệ của hai bảng dữ liệu phải phủ lấp lẫn nhau, tức làwhen s overlap a.
Ai được nâng chức danh từ phó giáo sưlên giáo sưdựa theo những thông tin
mà cơsở dữ liệu lưu được vào cuối năm 1984:
Associates (Name):
Transaction time (start) (stop)
range of a is Associates retrieve into CurrentAssociates (Name = a.Name) when a overlap now
Trang 31Trong ví dụ trên, mệnh đề as of được thêm vào để quy định điều kiện ràng buộc trên
thờ i gian giao tác của dữ liệ u Cơsở dữ liệu được khôi phục về trạng thái tại thời
điểm năm 1984 và câu truy vấn được thực thi
Tom đã nộp bài báo cho TOPLAS, không phải nộp cho JACM nhưtrong dữ liệu cũ:
Trong ví dụ trên, mệnh đề valid at dùng để thiết lập lại (chỉnh sửa) thời gian hợp lệ
của dữ liệu thông qua câu lệnh cập nhật dữ liệu replace.
2.2.3 Mô hình dữ liệu ý niệm song thời gian (Bitemporal
Conceptual Data Model) và ngôn ng ữ TSQL2
Jensen và các đồng nghiệp [15] đã đề xuất mô hình dữ liệu ý niệ m song thời gian
(Bitemporal Conceptual Data Model) Mô hình ý niệm này được dùng làm cơsở để
định nghĩa ngôn ngữ truy vấn hướng thời gian TSQL2 TSQL2 hỗ trợthời gian do
người dùng định nghĩa (user-defined time), thời gian hợp lệ (valid-time), và thời gian giao tác (transaction-time)
Thời gian do người dùng định nghĩa là thuộc tính tường minh (explicit), còn thời gian
hợp lệ và thời gian giao tác là các thuộc tính ẩn (implicit) Trong mô hình này, dữ liệu
được dán nhãn thời gian bởi một tập các thời điểm (time instant) hoặc bởi phần tử thờ i gian (time-element).
range of fl is Faculty
range of f2 is Faculty
range of a is Associates
retrieve into Starsof1984 (Name = fl.Name)
where f1.Name = f2.Name and f1.Rank = "Assistant"
and f2.Rank = "Full"
when ( f l overlap a) and (f2 overlap a)
as of end of "1984"
range of s is Submitted replace s (Journal = "TOPLAS") where s.Author = "Tom" and s.Journal = "JACM"
valid at begin of "January 1983"
Trang 32Bả ng 2.4: Các bảng dữ liệu mẫu theo mô hình dữ liệu ý niệm song thời gian
Sau đây là mộ t số câu truy vấn dữ liệu hướng thời gian dùng TSQL2:
Liệt kê những nhân viên trong công ty và phòng ban mà họ đang làm việc vào
nă m 1996, dự a theo thông tin mới nhấtmà cơsở dữ liệu lưu được:
Trong câu truy vấn trên, các hàm VALID() và TRANSACTION() dùng để làm việc
với thời gian hợp lệvà thời gian giao tác của dữ liệu Toán tử OVERLAPS để kiểm
tra hai khoảng thời gian có phủ lấp nhau không Do yêu cầu truy vấn dữ liệu dựa theo
thông tin mớ i nhất mà cơsở dữ liệu lưu được nên điều kiện trên thời gian giao tác
phải phủ lấp với thời điểm hiện tại (NOW), tức là TRANSACTION(Emp)
OVERLAPS NOW.
SELECT Name, DeptName FROM Emp
WHERE VALID(Emp) OVERLAPS PERIOD ‘1996’
AND TRANSACTION(Emp) OVERLAPS NOW
Kết quả:{ ( ED, Toy, [2/1/1992 - 2/1/1998] ) }
Bảng dữ liệu Emp:
ED Toy { [2/1/1992 - Now] } { [2/1/1992 - 2/1/1998] }
ED Toy { [2/1/1992 - 2/1/1998] } { [2/1/1998 - Until changed] }
ED Load { [2/1/1998 - Now] } { [2/1/1998 - Until changed] }
DI Ship { [2/1/1996 - Now] } { [2/1/1996 - 2/1/1998] }
DI Ship { [2/1/1996 - 2/1/1998] } { [2/1/1998 - Until changed] }
DI Load { [2/1/1998 - Now] } { [2/1/1998 - Until changed] }
Bảng dữ liệu Dept:
Toy DI { [2/1/1990 - 2/1/1996] } {[2/1/1990 - Until changed]}Toy PE { [2/1/1996 - Now] } {[2/1/1996 - Until changed]}Ship DI { [2/1/1996 - 2/1/1998] } {[2/1/1996 - Until changed]}Load JA { [2/1/1998 - Now] } {[2/1/1998 - Until changed]}
Trang 33TSQL2 tự động tích hợp cả thời gian hợp lệtrong kết quả câu truy vấn Nếu người sử
dụng không muốn nhận thông tin về thời gian hợp lệtrong kết quả thì có thể thêm từ
khóa SNAPSHOT vào mệ nh đề SELECT:
Liệt kê những nhân viên trong công ty và phòng ban mà họ đang làm việc dựa
theo thông tin mà cơsở dữ liệu lưu được vào năm 1996:
Do yêu cầu truy vấn dữ liệu dựa theo thông tin mà cơsở dữ liệu lưu được vào năm
1996 nên điều kiện trên thời gian giao tác phải phủ lấp với khoảng thời gian trong năm
1996, tức là TRANSACTION(Emp) OVERLAPS PERIOD ‘1996’.
Ai là trưởng phòng của nhân viên ED khi nhân viên ED làm ở phòng ban Toy
theo thông tin mớ i nhất mà cơsở dữ liệu lưu được:
Ví dụ trên minh họa việc kết (join) hai bảng dữ liệu hướng thời gian, quy định thời gian hợp lệ của hai bảng dữ liệu phải phủ lấp lẫn nhau, tức là VALID(Emp)
Kết quả:{ ( ED, Toy, [2/1/1992 - NOW] )
( DI, Ship, [2/1/1996 - NOW] ) }
SELECT Dept.MgrName FROM Emp, Dept WHERE Emp.Name = ‘ED’ AND Emp.DeptName = ‘Toy’ AND
Emp.DeptName = Dept.DeptName
AND VALID(Emp) OVERLAPS VALID(Dept) AND TRANSACTION(Emp) OVERLAPS NOW AND TRANSACTION(Dept) OVERLAPS NOW
Kết quả:{ ( DI, [2/1/1992 - 2/1/1996] )
( PE, [2/1/1996 - 2/1/1998] ) }
SELECT SNAPSHOT Name, DeptName FROM Emp
WHERE VALID(Emp) OVERLAPS PERIOD ‘1996’
AND TRANSACTION(Emp) OVERLAPS NOW
Kết quả:{ ( ED, Toy) }
Trang 34Ở ví dụ trên, ngoài việc kế t (join) hai bảng dữ liệu hướng thời gian, điều kiện ràng
buộc trên thời gian hợp lệ là vào thời điể m hiện tại, tức là VALID(Emp) OVERLAPS
VALID(Dept) AND VALID(Emp) OVERLAPS NOW AND VALID(Dept)
OVERLAPS NOW.
2.3 Tổng kết chương
Chương này đã giới thiệu các khái niệm cơbản của mô hình dữ liệu hướng thời gian
Ba mô hình cơsở dữ liệ u hướng thời gian Temporal Relational Model, Bitemporal
Relational Data Model và Bitemporal Conceptual Data Model cũng được tìm hiểu,
kèm theo là các ngôn ngữ truy vấn hướng thời gian tương ứng TSQL, TQuel, và
TSQL2
Phầ n tìm hiể u trên cho thấy ngôn ngữTSQL thêm vào ngôn ngữ SQL chuẩn những
đặc điểm mới như: biểu thức điều kiện thời gian trong mệnh đề When, truy xuất các nhãn thời gian được gắn kèm với dữ liệu, xác định miền thời gian hợp lệ dùng mệnh
đề TIME-SLICE nhưng TSQL chỉ hỗ trợthời gian hợp lệ.
Ngôn ngữ TQUEL do Snodgrass đề xuất để truy vấn dữ liệu song thời gian được mở
rộng từ QUEL, ngôn ngữ truy vấn của hệ quản trị cơsở dữ liệu Ingres TQUEL được
định nghĩa tương đối hoàn thiện cả về cú pháp và ngữ nghĩa, đáp ứng được nhiều yêu
cầu chức năng của một ngôn ngữ truy vấn song thời gian Nhưng QUEL không được
sử dụng phổ biến nhưSQL nên tính ưa chuộng của người sử dụng đối vớiTQUEL có
thể bị hạn chế
TSQL2 được giới thiệu lần đầu tiên vào năm 1994 được xem nhưlà một trong những
SELECT SNAPSHOT Dept.MgrName
FROM Emp, Dept
WHERE Emp.Name = ‘ED’ AND Emp.DeptName = Dept.DeptName
AND VALID(Emp) OVERLAPS VALID(Dept)
AND VALID(Emp) OVERLAPS NOW
AND VALID(Dept) OVERLAPS NOW
AND TRANSACTION(Emp) OVERLAPS NOW
AND TRANSACTION(Dept) OVERLAPS NOW
Kết quả:{ ( JA ) }
Trang 35các hàng dữ liệu trong bảng được trùng nhau, không hỗ trợ truy vấn con và các thaotác gom nhóm Khi truy vấn dữ liệu với ngữ nghĩ a thời gian, người sử dụng cũng gặp
nhiều bất tiện khi phải xây dựng mệ nh đề WHERE rấ t phức tạp để đáp ứng các điều
kiện về thời gian hợp lệ và thời gian giao tác
Chươ ng tiế p theo sẽ trình bày tổng quan về các công trình nghiên cứu liên quan, nhận
xét ư u khuyế t điểm của các hướng tiếp cận và khẳng định lại vấn đề đặt ra của luận
văn
Trang 36Chương 3 TỔNG THUẬT CÁC CÔNG TRÌNH NGHIÊN
CỨU LIÊN QUAN
Chương này giới thiệu tổng quan về các hướng nghiên cứu liên quan đến cơsở dữ liệu
hướng thời gian Các hướng tiếp cận để xây dựng một ứng dụng cơsở dữ liệu hướng thời gian được trình bày chi tiết Một số hiện thực mẫu (prototype) của hệ quản trị cơ
sở dữ liệu hướng thời gian cũng được tìm hiểu, phân tích và đánh giá Vấn đề đặt ra
của luận văn được diễn giải ở cuối chương
3.1 Các hướng nghiên cứu liên quan đến cơsở dữ liệu
hướng thời gian
Các hệ cơsở dữ liệu truyền thống chỉ chứa được dữ liệu hiện tại mà không diễn tả được sự thay đổi theo thời gian của dữ liệu Dữ liệu trong quá khứ và tương lai khôngđược lưu trữ Người sử dụng bắt đầu nhận thấy sự bất tiện về kết quảkhông nhất quán
của các bản báo cáo được tổng hợp từ cơsở dữ liệu, ví dụ: những bảng tổng kết cuối
năm về hoạt động kinh doanh của một công ty thường chứa những số liệu khác nhau ở những lần xử lý khác nhau Lý do là bảng tổng kết này được xử lý và in ấn ở những thời điểm khác nhau và dữ liệu về hoạt động kinh doanh của công ty đã được chỉnh
sửa giữa những thời điểm này Để khắc phục nhược điểm này, nhiều công trình đãđược đầu tưnghiên cứu và phát triển trong hai thập niên gần đây nhằm giúp cho người
sử dụng cơsở dữ liệu có thể dễ dàng lưu trữ và suy luận trên những thông tin hướng thời gian
Các công trình nghiên cứu về cơsở dữ liệ u hướng thời gian tập trung vào một sốchủ
đề chính sau: mô hình dữ liệu và ngôn ngữ truy vấn hướng thời gian, thiết kế cơsở dữ liệu hướng thời gian, hiện thực các hệ quản trị cơsở dữ liệu hướng thời gian và lập chỉ
mục cho dữ liệu hướng thời gian Nội dung chi tiết hơn về các hướng nghiên cứu nàyđược trình bày bên dưới
Trang 373.2 Mô hình dữ liệu và ngôn ngữ tuy vấn hướng thời gian
Hầu hếtcác mô hình dữ liệu hướng thời gian được đề xuấ t đều là những mở rộng từ
các mô hình dữ liệu đã có: mô hình dữ liệu quan hệ (relational data model) hoặc mô hình dữ liệu đối tượng (object data model) Mỗi mô hình dữ liệu hướng thời gian có thể hỗ trợ thời gian hợp lệ(valid-time), hoặc thời gian giao tác (transaction-time),
hoặc cả hai (song thời gian – bitemporal) Thời gian hợp lệ ghi nhận thời gian mà các
sự việc có thực (diễn ra) trong thế giới thực Thời gian giao tác ghi nhận thời gian màcác sự việc được lưu trữ vào cơsở dữ liệu Mô hình dữ liệu song thời gian (bitemporal data model) hỗ trợ việc quản lý dữ liệu theo cả 2 chiều thời gian trên
Ngôn ngữ truy vấ n hướng thời gian thường được giới thiệu kèm theo các mô hình dữ
liệu mới được đề xuất này Đa số các ngôn ngữ truy vấn hướng thời gian cũng lànhững mở rộng của các ngôn ngữ truy vấn có sẵn Ví dụ: TQuel được mở rộng từ Quel (ngôn ngữ truy vấn của hệ quản trị cơsở dữ liệu Ingress), các ngôn ngữ (TSQL, TempSQL, TSQL2 ) được mở rộng từSQL chuẩn Bảng 3.1 trình bày tóm tắt một số
mô hình dữ liệu hướng thời gian và các ngôn ngữ truy vấn liên quan
Bả ng 3.1: Các mô hình dữ liệu hướng thời gian và ngôn ngữ truy vấn liên quan
Chiề u thời gian hỗ trợ (Time dimension)
Phân loạ i mô hình
dữ liệ u (Classification of data model)
Tài liệ u (Reference)
Relational Model TQuel Bitemporal Relational [25, 27]
Trang 38Các mô hình cơsở dữ liệ u hướng thời gian Temporal Relational Model, Bitemporal
Relational Data Model và Bitemporal Conceptual Data Model với các ngôn ngữ truy
vấ n hướng thời gian tương ứng TSQL, TQuel, và TSQL2 đã được trình bày chi tiếtở
phần 2.2
Temporal Relational Model
Navathe [19] đã đề xuất hướng mở rộng mô hình dữ liệu quan hệ thành mô hình dữ liệ u quan hệ hướng thời gian (Temporal Relational Model) Mô hình này chỉ hỗ trợ thờ i gian hợp lệ(valid-time) Các quan hệ trong mô hình này được phân thành 2 loại
Tất cả thuộc tính của quan hệ tức thời (snapshot relation) không thay đổi theo thờigian Trong khi đó, mỗi bộ dữ liệu (tuple) trong quan hệ thời gian hợp lệ (valid-timerelation) được lưu trữ kèm theo khoảng thời gian hợp lệ, thể hiện thành 2 thuộc tính
mới Time-start và Time-end
Navathe cũng đưa ra ngôn ngữ truy vấn hướng thời gian TSQL, thêm vào ngôn ngữ
SQL chuẩn những đặc điể m mới sau: biểu thức điều kiện thời gian trong mệnh đề WHEN, truy xuất các nhãn thời gian được gắn kèm với dữ liệu, truy xuất thông tin sắp thứ tự theo thời gian, xác định miền thời gian hợp lệ dùng mệnh đề TIME-SLICE, cáchàm bao gộp đã chỉnh sửa và mệnh đề GROUP BY Các câu truy vấn TSQL mẫu có
thể tham khảo ở mục 2.2.1 của luận văn
Bitemporal Relational Data Model
Năm 1987, Snodgrass [27] đã đề xuất mô hình dữ liệu quan hệ song thời gian mở
rộng từ mô hình dữ liệu quan hệ truyền thống bằng cách thêm vào mỗi quan hệ 4 thuộ c tính ẩn (implicit attributes):
Hai thuộc tính (start, stop) để ghi nhận thời gian giao tác của việc chèn hoặc xóa luận lý dữ liệu
Hai thuộc tính (from, to) để ghi nhận thời gian hợp lệ của dữ liệu Trong trường
hợp dữ liệu được dán nhãn thời gian sự kiện (event timestamping) thì chỉ cần dùng một thuộc tính (at)
Trang 39Snodgrass cũng đề xuất ngôn ngữ truy vấn hướng thời gian TQuel được mở rộng từ ngôn ngữQuel (ngôn ngữ truy vấn của hệ quản trị cơsở dữ liệu Ingress) Các câu truy vấ n TQUEL mẫu có thể tham khảo ở mục 2.2.2 của luận văn.
Bitemporal Conceptual Data Model
Jensen và các đồng nghiệp [15] đã đề xuất mô hình dữ liệu ý niệ m song thời gian
(Bitemporal Conceptual Data Model) Mô hình ý niệm này được dùng làm cơsở để
định nghĩa ngôn ngữ truy vấn hướng thời gian TSQL2 TSQL2 hỗ trợthời gian do
người dùng định nghĩa (user-defined time), thời gian hợp lệ (valid-time), và thời gian giao tác (transaction-time)
Thời gian do người dùng định nghĩa là thuộc tính tường minh (explicit), còn thời gian
hợp lệ và thời gian giao tác là các thuộc tính ẩn (implicit) Trong mô hình này, dữ liệu
được dán nhãn thời gian bởi một tập các thời điểm (time instant) hoặc bởi phần tử thờ i gian (time-element).
Các câu truy vấ n TSQL2 mẫu có thể tham khảo ở mục 2.2.3 của luận văn.
3.3 Thiết kế cơsở dữ liệu hướng thời gian
Mô hình thực thể - mối liên kết (Entity-Relationship Model) đã trở nên phổ biến và làcông cụ hiệu quả trong thiết kếcơsở dữ liệu ở mức ý niệm (conceptual database design) Nhiề u mô hình thực thể-mối liên kế t hướng thời gian cải tiến được đưa ra.Các mô hình này được khảo sát và đánh giá dựa trên 19 điểm yêu cầu của một mô hìnhthiết kế dữ liệu mức ý niệm hướng thời gian được nêu ra trong tài liệu [9]
Ở giai đoạn thiết kế cơsở dữ liệu ở mức luận lý (logical database design), các lược đồ
của quan hệ (relation schema) được chuẩn hóa theo các dạng chuẩn (normal form)
nhằm giảm thiểu sự dưthừa dữ liệu những vẫn đảm bảo tính nhất quán của dữ liệu Tàiliệu [16] đã đưa ra nhiều khái niệm liên quan đến việc chuẩn hóa cơsở dữ liệ u hướng thờ i gian (temporal normalization).
Trong tài liệu [26], Snodgrass đã đưa ra mộthướng tiếp cận đơn giản hơn nhưng lại
t có liệu quảtrong thiết kế cơsở dữ liệu hướng thời gian Giải pháp này xuyên suốt
Trang 40lý Trong giai đoạn thiết kế mức ý niệm, các đặc tính hướng thời gian của ứng dụng
được bỏ qua, người thiết kế chỉ tập trung vào việc xây dựng lược đồ thực thể-mối liên
kết (ER schema) cho thật hoàn chỉnh Sau đó, mỗi thành phần trong lược đồ thực
thể-mối liên kết (kiểu thực thể, kiểu mối liên kết, thuộc tính và khóa) sẽ lần lượt được gắn
với ngữ nghĩa hướng thời gian (temporal semantic) của nó thông qua các câu chú thích
(annotations) bằng ngôn ngữ tự nhiên
Giai đoạn thiết kế mức luận lý bao gồm 2 bước: trước tiên, các thành phần trong lược
đồ thực thể-mối liên kết (ER schema) được ánh xạ thành các lược đồ quan hệ không thay đổi theo thời gian (nontemporal relation schema) Ở bước thứ 2, các chú thích về ngữ nghĩ a hướng thời gian của các thành phần được nêu ra ở giai đoạn thiết kế ý niệm sẽ được xem xét để chỉ nh sửa các lược đồ quan hệ,nhằm đảm bảo rằng các lược
đồ này thể hiện được đầy đủ khía cạnh thời gian của dữ liệu Quan hệ (relation, table) ứng với kiểu thực thể có thời gian sống (entity with life-span, entity with valid-time)
sẽ được thêm thuộc tính để biểu diễn thời gian hợp lệ(valid-time), thêm một thuộc tính nếu biểu diễn thời điểm (instant, event), thêm hai thuộc tính nếu biểu diễn thời khoảng (interval, period) Áp dụng quy tắc tương tự cho kiểu mối liên kết thay đổi theo thời gian hợp lệ (relationship type with valid-time) Riêng trường hợp thuộc tính
với thời gian hợp lệ (attribute with valid-time) sẽ được tách thành quan hệ mới với thời gian hợp lệ nếu nhưkiểu thực thể hoặc kiểu mối liên kết liên quan đến thuộc tính nàykhông cần biểu diễn thời gian sống
3.4 Hiện thực các hỗ trợcơsở dữ liệu hướng thời gian
Năm 2000, Snodgrass [26] đã đề xuất cách phát triển các ứng dụng cơsở dữ liệu hướ ng thời gian (time-oriented database application) mà chỉ dùng ngôn ngữ truy vấn SQL với các hệ quản trị cơsở dữ liệu truyền thống hiện nay Nếu áp dụng phươngpháp này thì việc hiện thực một hệ quản trị cơsở dữ liệu hướng thời gian là hoàn toànkhông cần thiết
Tuy nhiên, phương pháp do Snodgrass đề xuất có nhược điể m là không có cơchế thừa , quá phụthuộc vào ứng dụng cụ thể(problem specific), người lập trình phải bắt