phát triển hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc thời gian kép
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
F 0 G
LƯU THỊ KIM HOA
PHÁT TRIỂN HỆ CƠ SỞ DỮ LIỆU QUAN HỆ ĐỐI
TƯỢNG PHỤ THUỘC THỜI GIAN KÉP
Chuyên ngành: Khoa Học Máy Tính
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 03 năm 2010
Trang 2Trước tiên tôi xin chân thành cảm ơn Cô Võ Thị Ngọc Châu đã tận tình chỉ bảo, hướng dẫn, góp ý, giúp đỡ và động viên tôi trong suốt quá trình thực hiện đề cương và luận án tốt nghiệp này
Tôi cũng xin chân thành cảm ơn đến tất cả các Thầy Cô khoa Khoa học và Kỹ thuật máy tính đã nhiệt tình giảng dạy và truyền đạt kiến thức quý giá trong quá trình học tập trong suốt hai năm cao học vừa qua
Nhân đây tôi xin gửi lời cảm ơn đến những người đồng nghiệp, những người bạn đã động viên và khuyến khích tôi trong thời gian qua
Những lời cảm ơn sau cùng con xin cảm ơn cha mẹ, những người thân gia đình đã hết lòng quan tâm và tạo điều kiện tốt nhất để con hoàn thành được luận văn tốt nghiệp này
Xin chân thành cảm ơn!
Lưu Thị Kim Hoa
i
Trang 3ii
Conventional database systems are capable of recording only single states
of real world phenomena which describe the current perceptions of reality and the current relationships among objects in this world In consequence, this results in a number of limitations for the applications which are concerned with temporal features The need for a (bi)temporal support in database systems, in order to model temporal facts and events in the real world, has been addressed over the last two decades, reflecting the importance of that for almost every computer system application Doing research on (bi)temporal databases is an interesting subject It has been shown with many research works and products
In this thesis, we propose a bitemporal data model for handling bitemporal data With this bitemporal data model, a bitemporal database system is developed Our model and system development is based on object relational database technology An illustration on dealing with bitemporal data is established for the applicability of the proposed system As a result, bitemporal database users can manage their bitemporal databases via the graphical user interface of this system In addition, bitemporal database applications are now supported to be built on top of our resulting system
Trang 4iii
TÓM TẮT
Ngày nay, các hệ cơ sở dữ liệu truyền thống chỉ hỗ trợ việc quản lý các trạng thái nhất thời của các hiện tượng/sự kiện cũng như các mối liên hệ giữa các đối tượng trong thế giới thực Do đó, các ứng dụng có nhu cầu nắm bắt các đặc điểm liên quan đến thời gian thường phải tự xử lý một cách không dễ dàng Điều này dẫn đến nhu cầu cần hỗ trợ các vấn đề về thời gian trong các hệ cơ sở dữ liệu và đó cũng là lý
do cho các hoạt động/công trình nghiên cứu trong lĩnh vực cơ sở dữ liệu phụ thuộc thời gian (kép) trong suốt thời gian qua
Trong luận văn này, chúng tôi đã đề xuất một mô hình dữ liệu phụ thuộc thời gian kép nhằm quản lý dữ liệu phụ thuộc thời gian kép Với mô hình này, chúng tôi đã xây dựng một hệ cơ sở dữ liệu phụ thuộc thời gian kép Cả mô hình và hệ thống đều được phát triển dựa trên công nghệ cơ sở dữ liệu quan hệ đối tượng Phần minh họa việc xử lý dữ liệu phụ thuộc thời gian kép được tiến hành để chứng tỏ tính khả dụng của hệ thống này Như là phần kết quả mong đợi, người sử dụng cơ sở dữ liệu phụ thuộc thời gian kép đã có thể quản lý cơ sở dữ liệu phụ thuộc thời gian kép của họ trực tiếp thông qua giao diện người dùng đồ họa của hệ thống Ngoài ra, các ứng dụng
cơ sở dữ liệu phụ thuộc thời gian kép giờ có thể được phát triển trên hệ thống này
Trang 5iv
NHIỆM VỤ LUẬN VĂN
LỜI CẢM ƠN i
ABTRACT ii
TÓM TẮT iii
MỤC LỤC iv
Phần I Phát biểu vấn đề 1
I.1 Giới thiệu 1
I.2 Tại sao CSDL thời gian? 2
I.3 Lí do phát triển hệ CSDL quan hệ đối tượng thời gian kép 3
I.4 Mục tiêu của luận văn 5
I.5 Cấu trúc luận văn 5
Phần II Cơ sở lý thuyết 7
II.1 Các khái niệm 7
II.1.1 Khái niệm về thời gian 9
II.1.1.1 Tem thời gian hiệu lực VT – valid time 9
II.1.1.2 Tem thời gian giao tác TT – transaction time 10
II.1.1.3 Thời gian kép 11
II.1.1.4 Thời gian người dùng định nghĩa 11
II.1.1.5 Đơn vị thời gian và “Chronon” 11
II.1.2 Phương thức gán tem thời gian 12
II.1.2.1 Sự khác nhau mô hình dữ liệu thời gian mốc thời gian và khoảng thời gian 13
II.1.2.2 Khoảng thời gian trong CSDL thời gian 15
II.1.2.3 Đoạn thời gian 16
II.1.3 Tem cho dữ liệu 16
II.1.3.1 Tem thời gian theo hàng, đối tượng 17
II.1.3.1.1 Mô hình tiếp cận cơ bản 17
II.1.3.2 Tem thời gian thuộc tính 20
II.1.3.2.1 Mô hình tiếp cận cơ bản 20
II.1.4 Phân loại CSDL thời gian 21
II.1.4.1 CSDL snapshot 22
II.1.4.2 CSDL lưu quá khứ 22
II.1.4.3 CSDL giao tác 22
II.1.4.4 CSDL thời gian kép 23
II.2 Quản lý dữ liệu thời gian trong CSDL thời gian 23
Trang 6v
II.3.1 Hiện thực kiểm tra toàn vẹn tham chiếu thời gian kép 25
II.3.1.1 Thao tác thêm trong quan hệ tham chiếu 26
II.3.1.2 Thao tác cập nhật và xóa trong quan hệ được tham chiếu 26
Phần III Tổng thuật những công trình liên quan 27
III.1 Các giải pháp để phát triển hệ CSDL thời gian 27
III.1.1 Tích hợp các chức năng thời gian vào trong HQTCSDL truyền thống 29
III.1.2 Cách tiếp cận Máy chủ thời gian TS – Temporal Server 30
III.1.3 Xây dựng hỗ trợ thời gian vào trong ứng dụng khách 31
III.2 Các công trình liên quan 33
III.2.1 Hiện thực phương diện thời gian trong các công trình học thuật 34
III.2.1.1 TDMS 36
III.2.1.2 TeXOR 37
III.2.1.3 TIP 37
III.2.1.4 TimeDB 38
III.2.1.5 TEMPOS 39
III.2.2 Hiện thực phương diện thời gian trong các HQTCSDL thương mại 39
III.2.2.1 Oracle 39
III.2.2.2 Immortal Db 40
Phần IV Mô hình dữ liệu quan hệ đối tượng phụ thuộc thời gian kép 42
IV.1 Mô hình dữ liệu 42
IV.2 Lịch sử phát triển của hệ quản trị CSDL 42
IV.3 Ứng dụng minh họa 48
IV.3.1 Lược đồ ER 48
IV.3.2 Qui tắc nghiệp vụ 50
IV.4 Mô hình quan hệ đối tượng thời gian kép 50
IV.4.1 Thời gian sống đối tượng 52
IV.4.2 Thuộc tính thời gian của đối tượng 53
IV.4.3 Các kiểu thời gian UDT 55
IV.4.4 Biểu diễn dữ liệu thời gian kép 55
IV.5 Độ mịn thời gian 57
IV.6 Ràng buộc thời gian 59
IV.7 Thao tác dữ liệu 60
IV.7.1 Thao tác chèn 60
IV.7.2 Thao tác xóa 62
IV.7.3 Thao tác update 65
IV.8 Phân loại câu truy vấn 72
Phần V Hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc 75
Trang 7vi
V.2 Kiến trúc hệ thống 77
V.3 Hệ thống kiểu dữ liệu của hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc thời gian kép 81
V.3.1 Kiểu dữ liệu thuộc tính 81
V.3.1.1 Kiểu hệ thống tạo ra 82
V.3.2 Kiểu dữ liệu thời gian sống 83
V.3.3 Các ràng buộc của các kiểu dữ liệu thời gian 83
V.3.4 Phương thức, hàm trên dữ liệu thời gian 84
V.3.4.1 Hàm và toán tử liên quan 84
V.3.4.2 Phép nối Coalesce 85
V.3.4.3 Hàm gom nhóm 87
V.4 Quản lý dữ liệu 89
V.4.1 Tạo đối tượng CSDL 89
V.4.2 Thao tác dữ liệu 90
V.4.2.1 Thời gian sống của đối tượng 90
V.4.2.2 Thuộc tính thời gian của đối tượng 93
V.4.3 Truy vấn dữ liệu 105
V.5 Giao tiếp người dùng 140
V.6 Tóm tắt đặc điểm của hệ thống 142
V.6.1 Đánh giá hệ thống 143
V.6.2 So sánh với các hệ thống khác 144
Phần VI Tổng kết 145
VI.1 Đóng góp của luận án 145
VI.2 Hướng phát triển 147
Phụ lục A 149
Tài liệu tham khảo 162
QUÁ TRÌNH ĐÀO TẠO Error! Bookmark not defined QUÁ TRÌNH CÔNG TÁC Error! Bookmark not defined
Trang 8vii
Hình 2.1 Mô hình không gian của dữ liệu thời gian kép .8
Hình 2.2 Dữ liệu tem thời gian hiệu lực 9
Hình 2.3 Dữ liệu tem thời gian giao tác 10
Hình 2.4 Hình biểu diễn CSDL snapshot 22
Hình 2.5 Hình biểu diễn CSDL quá khứ 22
Hình 2.6 Hình biểu diễn CSDL giao tác 23
Hình 2.7 Hình biểu diễn CSDL thời gian kép 23
Hình 3.1 Cách tiếp cận khác nhau cho các ứng dụng thời gian 28
Hình 3.2 Chức năng thời gian được xây dựng trong phần lõi của HQTCSDL 29
Hình 3.3 Cách tiếp cận máy chủ thời gian TS 31
Hình 3.4 Chức năng thời gian được xây dựng vào trong ứng dụng khách 32
Hình 3.5 Mô hình của TDMS 37
Hình 3.6 Thành phần của TIP 38
Hình 3.7 Mô hình kiến trúc mẫu của TEMPOS 39
Hình 4.1 Lịch sử phát triển HQTCSDL 43
Hình 4.2 Mô hình quan hệ đối tượng 46
Hình 4.3 Lược đồ thực thể mối liên kết của ứng dụng mẫu 49
Hình 4.4 Thời gian sống của một đối tượng với ví dụ của đất nước Balan 52
Hình 4.5 Ví dụ về phương pháp gán tem thời gian 54
Hình 4.6 Mô tả thao tác chèn CSDL thời gian kép 62
Hình 4.7 Trường hợp 1 của thao tác xóa 63
Hình 4.8 Trường hợp 2 của thao tác xóa 64
Hình 4.9 Trường hợp 3 của thao tác xóa 64
Hình 4.10 Trường hợp 4 của thao tác xóa 65
Hình 4.11 Trường hợp 1 của thao tác cập nhật 67
Hình 4.12 Trường hợp 2 của thao tác cập nhật 67
Hình 4.13 Trường hợp 3 của thao tác cập nhật 68
Hình 4.14 Trường hợp 4 của thao tác cập nhật 68
Hình 4.15 Trường hợp 5 của thao tác cập nhật 69
Hình 4.16 Trường hợp 6 của thao tác cập nhật 69
Hình 4.17 Trường hợp 7 của thao tác cập nhật 69
Hình 4.18 Trường hợp 8 của thao tác cập nhật 70
Hình 4.19 Trường hợp 9 của thao tác cập nhật 70
Hình 4.20 Trường hợp 10 của thao tác cập nhật 71
Hình 4.21 Trường hợp 11 của thao tác cập nhật 71
Hình 4.22 Câu truy vấn dạng tuần tự 72
Hình 4.23 Dạng câu truy vấn phi tuần tự 73
Hình 5.1 Kiến trúc hệ CSDL phụ thuộc thời gian kép 77
Hình 5.2 Thành phần giao tiếp người dùng cuối của hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc thời gian kép 79
Trang 9viii
Hình 5.5 Kết quả của thao tác cập nhật 96
Hình 5.6 Kết quả của thao tác cập nhật 97
Hình 5.7 Kết quả của thao tác cập nhật 97
Hình 5.8 Kết quả của thao tác cập nhật 98
Hình 5.9 Kết quả của thao tác cập nhật 99
Hình 5.10 Kết quả của thao tác xoá 101
Hình 5.11 Kết quả của thao tác xoá 102
Hình 5.12 Kết quả của thao tác xoá 103
Hình 5.15 Kết quả câu truy vấn 1 với hỗ trợ từ hệ thống 107
Hình 5.16 Kết quả câu truy vấn 1 không hỗ trợ từ hệ thống 107
Hình 5.17 Kết quả câu truy vấn 3 với hỗ trợ từ hệ thống 108
Hình 5.18 Kết quả câu truy vấn 3 không hỗ trợ từ hệ thống 109
Hình 5.19 Kết quả câu truy vấn 5 với hỗ trợ từ hệ thống 110
Hình 5.20 Kết quả câu truy vấn 5 không hỗ trợ từ hệ thống 111
Hình 5.21 Dữ liệu lương của nhân viên có mã số 1 113
Hình 5.22 Kết quả câu truy vấn 7 với hỗ trợ từ hệ thống 114
Hình 5.23 Kết quả câu truy vấn 7 không hỗ trợ từ hệ thống 115
Hình 5.24 Dữ liệu mẫu lợi nhuận của phòng ban Kinh Doanh 117
Hình 5.25 Kết quả câu truy vấn 9 với hỗ trợ từ hệ thống 118
Hình 5.26 Kết quả câu truy vấn 9 không hỗ trợ từ hệ thống 120
Hình 5.27 Kết quả câu truy vấn 10 với hỗ trợ từ hệ thống 121
Hình 5.28 Kết quả câu truy vấn 10 không hỗ trợ từ hệ thống 123
Hình 5.29 Kết quả câu truy vấn 12 với hỗ trợ từ hệ thống 126
Hình 5.30 Kết quả câu truy vấn 12 với hỗ trợ từ hệ thống 128
Hình 5.31 Kết quả câu truy vấn 13 với hỗ trợ từ hệ thống 129
Hình 5.32 Kết quả câu truy vấn 13 không hỗ trợ từ hệ thống 131
Hình 5.33 Kết quả câu truy vấn 17 với hỗ trợ từ hệ thống 137
Hình 5.34 Kết quả câu truy vấn 17 không hỗ trợ từ hệ thống 140
Hình 5.35 Giao diện thông tin kết nối vào CSDL 141
Hình 5.36 Giao diện thao tác dữ liệu 141
Hình 5.37 Giao diện thao tác dữ liệu thời gian như lương của Nhân viên 142
Trang 10ix
Bảng 3.1 Mô tả ví dụ về một dữ liệu thời gian kép (Wikipedia, 2005) 7
Bảng 3.2 Thông tin về nhân viên biểu diễn dưới CSDL thời gian kép 11
Bảng 3.3: Quan hệ với mô hình dữ liệu mốc thời gian 14
Bảng 3.4: Quan hệ với mô hình dữ liệu khoảng thời gian 14
Bảng 3.5 Vị từ so sánh khoảng thời gian của Allen 16
Bảng 4.1 Bảng so sánh các hệ quản trị CSDL 47
Bảng 4.2 Biểu diễn dữ liệu thời gian với thông tin nhân viên 57
Bảng 5.1 So sánh giữa các hệ thống quản lý dữ liệu thời gian dựa trên mô hình quan hệ đối tượng 142
Trang 11Phần I Phát biểu vấn đề
Mô hình dữ liệu phi thời gian hiện tại chỉ lưu giữ và nắm bắt trạng thái đơn nhất của thế giới thực, thường là trạng thái hiện thời hay còn gọi là trạng thái snapshot Các hệ quản trị CSDL thương mại thông dùng chỉ hỗ trợ việc thao tác để làm thuận tiên cho việc chuyển đổi CSDL từ trạng thái nhất quán này sang trạng thái nhất quán khác, thay thế các giá trị cũ bằng các giá trị mới Khi truy vấn CSDL thông thường chỉ các sự việc và hiện tượng đang có trong CSDL mới được xem xét, khảo sát và đánh giá
Song ngày nay ngày càng nhiều tổ chức mong muốn lưu trữ những dữ liệu giúp họ đưa ra những chiến lược và quyết định kinh doanh có ý nghĩa quan trọng Cũng như nhiều ứng dụng khác chẳng hạn hệ thống thông tin địa lý, quản lý tài liệu hay hệ thống sản xuất…, tất cả ứng dụng trên phần nhiều rất cần lưu trữ thông tin dọc theo chuỗi thời gian liên tiếp hay trạng thái thông tin khác nhau từ quá khứ, hiện tại và thậm chí là cả hoạch định tương lai Việc tìm cách thêm các tem thời gian vào dữ liệu
để lưu giữ tất cả các trạng thái không phải là vấn đề phức tạp mà khó khăn chính duy
là do các tác vụ truy vấn dữ liệu biến đổi theo thời gian và đặc tả các ràng buộc để nhất quán giữa nhiều trạng thái CSDL khi sử dụng mô hình dữ liệu và ngôn ngữ truy vấn phi thời gian
Với các hệ quản trị CSDL thương mại phi thời gian hiện có trên thị trường, việc phát triển ứng dụng cũng như thực hiện truy vấn dữ liệu biến đổi theo thời gian dùng ngôn ngữ SQL chuẩn là rất phức tạp, khó chịu, tốn thời gian, cũng như là hiệu suất chương trình đem lại thấp Việc viết mã cho ứng dụng này sẽ chiếm nhiều công sức, khó bảo trì, ràng buộc sẽ rắc rối, khó hiểu
Trên thế giới, hiện tại có rất nhiều nghiên cứu và công trình hiện thực về phương diện thời gian cũng như dữ liệu thời gian kép trong suốt hơn 20 năm qua Có rất nhiều mô hình dữ liệu thời gian được đề xuất, để hiện thực đặc tính tem thời gian
Trang 12của dữ liệu [5,11,17,24], được mở rộng từ các mô hình dữ liệu phổ biến (quan hệ, quan
hệ lồng nhau, hướng đối tượng…) Cũng có các hiện thực CSDL thời gian có thể hiện thực bằng cách ánh xạ mô hình dữ liệu thời gian thành một mô hình dữ liệu thông thường, như trong các nghiên cứu có liên quan [20, 21, 22, 23, 28] Mỗi hệ thống có những đặc tính riêng có cả ưu và nhược và hầu như các hệ thống vẫn còn thiếu sót hay không quan tâm đầy đủ đến các qui luật biến đổi theo thời gian của dữ liệu qua các lần cập nhật, thay đổi cũng như các ràng buộc khác Đặc biệt việc cung cấp cách quản lý
dữ liệu thời gian một cách độc lập, trong suốt dưới tầm nhìn của người dùng cũng là một vấn đề khá quan trọng Thao tác quản lý CSDL thời gian cũng tương tự như trong quản lý CSDL thông thường, song có thêm một số thao tác hỗ trợ để đảm bảo duy trì
dữ liệu mang tính thời gian một cách đúng đắn, nhất quán, và thường thì việc này được thực hiện thông qua các luật biến đổi mang tính chất thời gian
Như đã đề cập ở trên, mô hình dữ liệu phi thời gian và đa số hệ quản trị CSDL thương mại chỉ đơn thuần hỗ trợ chức năng truy cập tình trạng đơn nhất của thế giới thực: gần nhất, hiện tại và luôn ghi đè lên trạng thái cũ nếu có cập nhật chỉnh sửa xảy ra và xoá vật lý dữ liệu cũ mà không cần quan tâm những dữ liệu cũ cần thiết cho sau này
Trong khi thực tế lại tồn tại rất nhiều miền ứng dụng không chỉ cần truy cập duy nhất mỗi trạng thái hiện thời mà còn là trạng thái quá khứ, thậm chí tương lai Đặc tính nhất quán của dữ liệu lúc này phải được mở rộng bao phủ trên tất cả các trạng thái của CSDL [30] đề cập tính chất quan trọng của CSDL thời gian bằng “khó tìm ra một ứng dụng mà không liên quan đến việc quản lý dữ liệu biến đổi theo thời gian” và đã liệt kê các ứng dụng sau đây là ứng dụng cần CSDL thời gian:
• Ứng dụng tài chính: quản lý hồ sơ, vốn đầu tư, tài chính và ngân hàng, phân tích thị trường chứng khoáng, cổ phiếu…
• Hệ thống hỗ trợ quyết định: kế hoạch cho các sự kiện có thể xảy ra trong tương lai
Trang 13• Ứng dụng khoa học: giám sát quy trình hóa học, thời tiết…
• Các hệ thống quản lý tin: sự kiện thể thao, xuất bản, báo chí, tạp sạn, văn bản…
CSDL thời gian cho phép ghi nhận tất cả các trạng thái của các đối tượng trong suốt thời gian sống, dựa vào đặc tính tiến triển, biến đổi theo thời gian của chính
nó Do vậy với CSDL thời gian ta có thể biết tất cả mọi hiện tượng, sự kiện xảy ra trước đây, cũng như có thể đưa ra tiên đoán, dự báo cho tương lai, nhằm có những bước điều chỉnh thích hợp cho tổ chức, cá nhân đó Ngày nay nếu như dữ liệu thời gian được quản lý thì sẽ rất nhiều ứng dụng sẽ được phát triển một cách mạnh mẽ, đáp ứng thông minh các nhu cầu cần thiết cho các chính phủ, tổ chức, công ty…Với CSDL thời gian, các vấn đề trên có thể được giải quyết dễ dàng, thuận tiện hơn
Vấn đề thời gian thực sự là vấn đề quan tâm các nhà nghiên cứu trong suốt hơn 20 năm qua, chính bởi tính chất quan trọng của thời gian trong đời sống thực và còn phản ánh lại trong CSDL Mặc dù khái niệm CSDL thời gian đã tồn tại trong một thời gian dài, tuy nhiên việc hiện thực CSDL thời gian cho các ứng dụng thông thường vẫn còn rất ít
Các ứng dụng hiện tại đang né tránh tính phức tạp về thời gian, nếu như điều đó là không quá cần thiết thì trạng thái của hệ thống chỉ là trạng thái hiện tại và duy nhất Việc phát triển một hệ CSDL thời gian sẽ góp phần đưa ứng dụng phục vụ đúng như mục đích tồn tại của nó, giải quyết cả những khó khăn, trắc trở do quản lý thời gian mà ứng dụng đang gặp phải
Một lí do khiến cho các tổ chức đầu tư cho ứng dụng có tính thời gian vì chi phí cho bộ nhớ lưu trữ dữ liệu hiện tại không còn là vấn đề đáng lo lắng Họ mong
Trang 14muốn lưu giữ mọi dữ liệu cả những dữ liệu quá khứ trước đây và cả tương lai, thay vì chỉ mỗi dữ liệu hiện tại Vì họ ý thức được tính quan trọng nổi bật của dữ liệu dù nó là
dự liệu cũ hay là dữ liệu để hoạch định cho tương lai
Để diễn tả đầy đủ quá trình tồn tại, biến đổi và phát triển của một CSDL mà
mô tả thế giới thực cùng với sự tồn tại của chính nó trong hệ CSDL, tem thời gian được gán thêm vào CSDL đó Hai loại tem thời gian cần có là thời gian giao tác và thời gian hiệu lực, chi tiết về tem thời gian này sẽ được trình bày chi tiết trong phần sau CSDL có cả hai loại tem thời gian trên được gọi là CSDL thời gian kép (Bitemporal Database) Một hệ CSDL cho phép lưu trữ, thao tác, quản lý, truy vấn trên CSDL thời gian kép được gọi là hệ CSDL thời gian kép
Việc hỗ trợ quản lý dữ liệu thời gian từ các hệ quản trị cơ sở dữ liệu hiện nay vẫn rất ít, đặc biệt là hầu như không có hỗ trợ nào cho dữ liệu phụ thuộc thời gian kép Do đó, việc quản lý cơ sở dữ liệu phụ thuộc thời gian kép trong các ứng dụng đều phải được thực hiện ở mức ứng dụng Điều này trở thành gánh nặng cho nhà phát triển ứng dụng vì rõ ràng việc quản lý cơ sở dữ liệu phụ thuộc thời gian tương đối phức tạp
và sẽ phức tạp hơn trong trường hợp của cơ sở dữ liệu phụ thuộc thời gian kép Sự phức tạp này được minh chứng cụ thể trong tài liệu [1]
Hơn nữa, mô hình dữ liệu quan hệ hay hướng đối tượng tồn tại những yếu điểm riêng khi áp dụng chúng để quản lý dữ liệu các ứng dụng phức tạp Do vậy trong thời gian gần đây, việc mở rộng, thừa hưởng và kết hợp những ưu điểm nổi bật từ hai
mô hình trên thành mô hình quan hệ quan hệ đối tượng đã được quan tâm và thực hiện Bên cạnh những đặc tính ưu việt của công nghệ mới này, một lí do khác làm cho mô hình quan hệ đối tượng đã và đang được chọn và sử dụng Đó là khả năng đáp ứng về quản lý dữ liệu ngày càng phức tạp và phổ biến của mô hình này Đồng thời, việc chọn
mô hình này dựa trên khả năng hỗ trợ từ các hệ quản trị CSDL quan hệ đối tượng ngày nay mang lại
Với những lý do đã đề cập ở trên, một hệ CSDL quan hệ đối tượng phụ thuộc thời gian kép cần được phát triển
Trang 15Như trình bày ở trên, mục tiêu của luận văn này là nhằm phát triển một hệ CSDL phụ thuộc thời gian kép (Bitemporal Database System) dựa trên công nghệ cơ
sở dữ liệu quan hệ đối tượng
Luận văn được thực hiện nhằm đưa ra mô hình dữ liệu thời gian kép, quản
lý dữ liệu, ngôn ngữ định nghĩa và thao tác dữ liệu thời gian một cách hiệu quả Cũng như mong muốn hoàn thành một hệ thống cung cấp cách thức, phương tiện lưu trữ, thao tác, xử lý dữ liệu thời gian kép, nhằm giảm bớt tính phức tạp cho việc phát triển ứng dụng có tính thời gian và tăng tính trong suốt về thời gian đối với người dùng hệ thống
Việc nghiên cứu phát triển một hệ CSDL thời gian kép cũng nhằm hỗ trợ cho CSDL thời gian trong các Hệ quản trị CSDL hiện tại cũng như mong muốn giúp ích CSDL thời gian trong các công trình nghiên cứu học thuật: các vấn đề liên quan như cách thức hiệu quả cho việc mô tả ngữ nghĩa của dữ liệu thời gian, mô hình, biểu diễn và truy vấn dữ liệu thời gian
Có rất nhiều mô hình dữ liệu đã được chọn để nghiên cứu và phát triển hệ CSDL thời gian Mỗi mô hình có những ưu lợi thế nhất định khi áp dụng biểu diễn CSDL thời gian Phần II trình bày về việc phát triển đặc tính thời gian trên các mô hình dữ liệu được dùng trong các công trình và nghiên cứu liên quan Luận văn này đề xuất phát triển hệ thống dựa trên mô hình quan hệ đối tượng, một mô hình dữ liệu tận dụng được ưu thế của cả mô hình dữ liệu quan hệ và tính chất hướng đối tượng của mô hình dữ liệu đối tượng, để xây dựng một hệ CSDL hỗ trợ cả hai khía cạnh thời gian hiệu lực và giao tác, cho phép phát triển các ứng dụng CSDL phụ thuộc thời gian kép được hỗ trợ theo cách mà phát triển các ứng dụng CSDL không phụ thuộc thời gian được hỗ trợ trên hệ CSDL không phụ thuộc thời gian
Luận văn bao gồm năm phần chính và một phần phụ lục Liệt kê sau đây
mô tả cấu trúc luận văn và tổng quan về mỗi phần trong luận văn:
Trang 16Phần I: Phát biểu vấn đề Phần này trình bày tính quan trọng và cần thiết
của ứng dụng dữ liệu thời gian và nhu cầu phát triển hệ thống CSDL thời gian kép trong thực tế
Phần II: Cơ sở lý thuyết Trình bày các khái niệm, thuật ngữ liên quan và
mô hình dữ liệu của CSDL thời gian
Phần III: Tổng thuật về các công trình liên quan Phần này các giải pháp
phát triển hệ thống CSDL thời gian được trình bày, cũng như việc hiện thực hướng thời gian trong các công trình học thuật và thương mại
Phần IV: Mô hình dữ liệu quan hệ đối tượng phụ thuộc thời gian kép
Trong phần này, chúng tôi đề xuất một mô hình dữ liệu mới cho việc quản lý dữ liệu phụ thuộc thời gian kép Mô hình dữ liệu này được định nghĩa dựa trên mô hình dữ liệu quan hệ đối tượng
Phần V: Hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc thời gian kép
Một hệ cơ sở dữ liệu quan hệ đối tượng phụ thuộc thời gian kép được phát triển dựa trên mô hình dữ liệu quan hệ đối tượng phụ thuộc thời gian kép đã được đề xuất ở phần IV
Phần VI: Tổng kết Phần này tổng kết lại các nội dung đã được thực hiện
cho đề tài luận văn Các đóng góp chính của luận văn được trình bày và các hướng phát triển cũng được giới thiệu
Phần Phụ lục Trong phần này, tài liệu hướng dẫn cài đặt và sử dụng hệ thống mới được đưa ra, kèm các hình ảnh ghi nhận các kịch bản thao tác và truy xuất
dữ liệu thời gian sau khi hệ thống được cài đặt
Sau cùng, các tài liệu tham khảo đã được sử dụng trong luận văn được tóm tắt ở những trang cuối của quyển luận văn này
Trang 17Phần II Cơ sở lý thuyết
Ví dụ về CSDL thời gian kép
Ngày Thế giới thực Hành vi
CSDL CSDL lưu trữ
VT bd VT kt TT bd TT kts
01/01/80 John được sinh
ra Không John chưa tồn tại trong CSDL
01/01/00 John chuyển
đến Basel Không John chưa tồn tại trong CSDL
25/02/00 John được ghi
vào CSDL John được ghi vào
John ở Basel John sống ở Basel John sống ở Zurich
01/01/
01/01/
01/08/
∞ 31/07/
Geneva
John sống ở Basel John sống ở Basel John sống ở Zurich John sống ở Zurich John sống ở Geneva
∞ 31/03/
05/06/ Bây
Bây
Bảng 3.1 Mô tả ví dụ về một dữ liệu thời gian kép (Wikipedia, 2005)
Trang 18Ví dụ trọng bảng 3.1 mô tả về hai chiều thời gian của các sự việc xảy ra trong thế giới thực, về cuộc sống của một người có tên là John Hình 31.1 cho thấy hai chiều thời gian: thời gian hiệu lực và thời gian giao tác
Ba sự kiện được lưu trong CSDL, mỗi phiên bản (thông tin, trạng thái) của một sự kiện trong CSDL thời gian kép có thể xem là mặt phẳng bị bao trong không gian 2 chiều Cụ thể hơn, nó là mặt phẳng ít nhất bị bao bởi TTs trong chiều thời gian thao tác Nếu sự kiện đó thời gian hiệu lực bắt đầu và kết thúc thì nó sẽ được bao bởi chiều thời gian hiệu lực Đồng thời nó sẽ bị bao bởi TTe, nếu hàng dữ liệu đó trở thành
là dữ liệu cũ Chỉ có một sự việc là hiệu lực tại một thời điểm, ví dụ hoặc là sự kiện
“John sống ở Basel” hay “John sống ở Zurich” Với hình trên, điểm tròn để biểu diễn thời điểm cập nhật vào CSDL, điểm này sẽ nằm trên đường chéo nếu thông tin đó (tương ứng với một hàng) trong CSDL được cập nhật sau khi nó trở nên hiệu lực trong thế giới thực Ngược lại, nó nằm phía dưới đường chéo Khi thời điểm hiệu lực của một sự việc cũng chính là thời điểm thông tin ấy được cập nhật vào CSDL, điểm tròn
sẽ thuộc đường chéo
Hình 2.1 Mô hình không gian của dữ liệu thời gian kép
Trang 19II.1.1 Khái niệm về thời gian
Có rất nhiều khái niệm của thời gian được dùng trong các CSDL thời gian Trong phần này sẽ đưa ra những thuật từ liên quan, cũng được xem như là thống nhất trong lĩnh vực nghiên cứu về vấn đề này Có 3 mô hình cơ bản cho thời gian: liên tục, rời rạc hay dày đặc Thời gian thường được ánh xạ thành tập các số theo thứ tự tương ứng với vị từ so sánh <
II.1.1.1 Tem thời gian hiệu lực VT – valid time
Mô tả thời gian mà một thông tin là hiệu lực trong thế giới thực Các thuật
từ khác cũng từng được sử dụng như thời gian sự kiện hay thời gian hợp lệ [15] Hay một định nghĩa khác VT là thời gian thu thập được, có thể kéo dài từ quá khứ, hiện tại
và tương lai khi một sự việc là có thật trên thế giới thực [13] Dữ liệu hiện tại là dữ liệu hiệu lực tại thời điểm “bây giờ” (thời điểm hiện tại), ngược lại với dữ liệu tiên đoán là dữ liệu được tin là sẽ hiệu lực trong tương lai Hình 2.2 mô tả đặc tính của dữ liệu hiệu lực
Hình 2.2 Dữ liệu tem thời gian hiệu lực Hình 2.2 cho thấy thông tin lương của một nhân viên, từ thời gian t1 đến thời gian t2 thì lương là 15000, từ thời điểm t2 đến t3 là 17000 Ta thấy thời điểm
“bây giờ” nằm trong khoảng thời gian t4 và t5 Sự kiện lương được tiên đoán trước là
19000 đến 25000 tại thời điểm t5 và sẽ còn hiệu lực đến thời điểm không biết trước nào đó trong tương lai, nên người ta đã đặt nhiều tên cho giá trị đặc biệt này: cho đến khi cập nhật “until changed” (UC) hay vô cùng ∞” Khoảng thời gian hiệu lực có thể là quá khứ, hiện tại hay cả tương lai
Trang 20II.1.1.2 Tem thời gian giao tác TT – transaction time
Trong một số trường hợp, chúng ta không thể lưu dữ liệu đúng chính xác
mà sự kiện đó trở nên hiệu lực trong thế giới thực Trong trường hợp như thế ta dùng tem thời gian giao tác
Thuật ngữ tem thời gian giao tác để chỉ cho thời gian đăng kí một sự việc, đối tượng trở nên hiệu lực trong một CSDL Khác với tem thời gian hiệu lực, tem thời gian này không được có giá trị quá thời điểm giao tác hiện tại (now) Một số thuật ngữ khác tương đương như tem thời gian vật, thời gian đăng kí [15]
Hình 2.3 trình bày một thể hiện của một thông tin luơng với tem thời gian giao tác Tại thời điểm k1 giá trị lương 15000 được ghi vào CSDL Và thông tin này hiện hành cho đến khi thời gian giao tác k2, tại TT là k3 thì không có thông tin nào được lưu trữ cho đến TT k4 với giá trị lương mới là 19000 Cùng thời điểm đó TT k5 ghi giá trị lương 25000 vào CSDL Khi chưa có thông tin gì thay đổi sự kiện còn đang hiệu lực trong CSDL thì tem thời gian giao tác kết thúc có giá trị không xác định Giá trị của nó có thể xem như là một biến Giá trị đặc biệt này được đặt tên là UC hay bây giờ (NOW) bởi rất nhiều tác giả [14]
Hình 2.3 Dữ liệu tem thời gian giao tác Như vậy, tem thời gian hiệu lực dùng để mô tả khoảng thời gian hiệu lực của một thông tin chắc chắn trong thế giới thực, tem thời gian giao tác là khái niệm thời gian nhân tạo chỉ tồn tại trong hệ thống CSDL [13] Tem thời gian giao tác sẽ không bị thay đổi kể từ lần đầu tiên nó được ghi nhận vào trong CSDL Hay nói cách khác, ta không thể những gì đã diễn ra ở những thời gian giao tác trong quá khứ Thời
Trang 21gian giao tác là tương ứng một-một với một giao tác hay một hành vi thật sự xảy ra đối với CSDL
II.1.1.3 Thời gian kép
Nếu một CSDL hiện thực được cả hai loại tem thời gian TT và VT như bảng 3.2 thể hiện quan hệ thời gian mô tả thông tin lương và phòng ban theo thời gian của Paul và Mary CSDL như vậy được gọi là CSDL thời gian [13]
Về cơ bản, không có giới hạn về số chiều thời gian mà một CSDL hỗ trợ, một CSDL như vậy có tồn tại trong thực tế Jensen và Snodgrass đưa ra các kịch bản ứng dụng của CSDL đa chiều [19] Chiều thời gian phụ thuộc vào sự phân loại sự liên
Paul Thiết kế Kỹ sư 08/91 UC 12/91 UC
Mary Thiết kế Quản lý 01/90 02/91 01/90 UC
Mary HQ AD 12/90 12/93 02/91 UC
Bảng 3.2 Thông tin về nhân viên biểu diễn dưới CSDL thời gian kép
II.1.1.4 Thời gian người dùng định nghĩa
Khái niệm thời gian này được dùng cho các thông tin thời gian cần lưu trong CSDL mà không liên quan đến thời gian VT hay TT [15] Ta xét một ví dụ về CSDL nhân viên của một công ty Ngày đầu vào công ty và ngày kết thúc việc làm có thể xem là thời gian hiệu lực của người nhân viên ấy trong thế giới thực Khi thông tin này chính thức được lưu trữ hay bị xóa đi trong CSDL thì được gọi là tem thời gian giao tác Có những thuộc tính khác cũng liên quan đến thời gian cũng cần lưu trữ chẳng hạn như ngày sinh, ngày tốt nghiệp đại học, các ngày đậu cuộc thi,…Các thời gian như vậy được xem là kiểu thời gian do người dùng định nghĩa
II.1.1.5 Đơn vị thời gian và “Chronon”
Đơn vị thời gian là một đặc tính thời gian căn bản của một CSDL thời gian Đặc tính đơn vị xác định độ chính xác của một thông tin thời gian duy trì trong CSDL
Trang 22đó, phụ thuộc vào mục đích của CSDL mà độ mịn thời gian được sử dụng sẽ khác nhau Chẳng hạn trong các ứng dụng khoa học vật lý thì độ chính xác tính trên đơn vị giây, trong khi các ứng dụng liên quan quản lý thông tin cá nhân nhân khẩu, thì độ chính xác tính bằng đơn vị ngày
Khoảng thời gian ngắn nhất cho phép của một CSDL thời gian được gọi là
“chronon” (thuật ngữ do Ariav và Clifford đề ra 1986), nó là đơn vị thời gian không thể chia nhỏ nữa Gadia sử dụng thuật ngữ “instant” 1986, Allen thì đề xuất
“moment”, Navathe và Ahmed thì sử dụng thuật từ “time unit” 1987 Jensen [13] đã sử dụng thuật ngữ “chronon”, “chronon” không là một giá trị rời rạc hay một điểm mà là một đoạn trên trục thời gian Kích thước của mỗi chronon cố định tùy thuộc vào độ mịn thời gian mà ứng dụng cần (giây, phút, giờ, tháng…) Chiều dài của một
“chronon” được định nghĩa bởi khái niệm đơn vị của một kiểu dữ liệu mà hệ thống CSDL dùng nó để lưu trữ thông tin Ví dụ kiểu dữ liệu timestamp trong PostgreSQL
và DB2 là 1µs, trong khi là 1nanos trong Oracle Kiểu dữ liệu date là 1 ngày trong postgreSQL và DB2, nhưng là 1s trong Oracle
Hai khái niệm instant và event: Instant là một điểm thời gian trên trục thời gian trong khi một event là một sự kiện không phải là một điểm thời gian mà nó được ánh xạ vào một chronon cụ thể nào đó Nếu ta nói một sự kiện xảy ra tại chronon “x”, thì tức là nó đã xảy ra tại bất kì instant nào trong chronon “x”
Tính chất độ mịn là điều đáng quan tâm trong các ứng dụng CSDL thời gian, bởi vì nếu 2 sự kiện xảy ra trong cùng một chronon, chúng sẽ được lưu trong CSDL với cùng một giá trị tem thời gian, thậm chí khi chúng xảy ra tại những điểm thời gian khác nhau, hay sẽ không được cùng lưu vào CSDL do những ràng buộc mô
tả trong ứng dụng
II.1.2 Phương thức gán tem thời gian
Việc chọn lựa gán tem cái gì và gán như tem như thế nào được quyết định bởi mô hình dữ liệu bên dưới Điển hình, dữ liệu có thể được gán tem với một instant, một khoảng thời gian hay đoạn thời gian
Trang 23Mô hình dữ liệu quan hệ 1NF sẽ giới hạn việc gán tem thời gian, trong khi các mô hình dữ liệu hỗ trợ đối tượng có giá trị thuộc tính dẫn xuất hay quan hệ N1NF,
sẽ cho phép việc gán tem thời gian phức tạp
II.1.2.1 Sự khác nhau mô hình dữ liệu thời gian mốc thời gian và khoảng thời
gian
Các mô hình dữ liệu có phân biệt nhau ở đặc tính: sử dụng tem thời gian là kiểu mốc thời gian hay khoảng thời gian Một mô hình dữ liệu kiểu mốc thời gian lưu tất cả các bản tin, thông tin tại tất cả các mốc thời gian, trong khi mô hình khoảng thời gian mô tả thông tin sự kiện luôn đi kèm với khoảng thời gian mà nó đúng, hiệu lực trong thế giới thực
Đối với những hệ thống mà có mật độ thời gian cao, tức chronon tính theo đơn vị giây chẳng hạn, khi đó việc lưu thông tin tại tất cả các mốc thời gian trở nên không thực tế Hơn nữa, mô hình dữ liệu kiểu mốc thời gian sẽ không mô tả thông tin thế giới thực một cách đúng nghĩa, sinh động so với mô hình dữ liệu khoảng thời gian [14]
Ví dụ như muốn biểu diễn sự việc đang có hiệu lực từ thời điểm trong quá khứ và vẫn còn hiệu lực cho đến khi bị thay đổi (UC) sẽ không biểu diễn được trong
mô hình mốc thời gian Tuy nhiên, với các ứng dụng có “chronon” có lượng thời gian lớn hơn thì mô hình mốc thời gian là một tùy chọn, sẽ làm ứng dụng đơn giản hơn, các câu truy vấn cũng không rắc rối như trong mô hình khoảng thời gian
Bảng 3.3 và 3.4 mô tả cùng một dữ liệu với mô hình mốc thời gian và khoảng thời gian
Tên Tạm trú Thời gian John Basel 01/01/00
Trang 24John Zurich 01/08/01 05/06/02
Bảng 3.4: Quan hệ với mô hình dữ liệu khoảng thời gian Tuy nhiên tuỳ theo mô hình gán tem thời gian là mốc thời gian hay khoảng thời gian mà sẽ cho những kết quả khác nhau trên các phép toán trên các quan hệ này
Ta xem xét ví dụ sau để thấy sự khác nhau giữa hai mô hình gán tem này trong thao tác “khác nhau” [29]
Trang 25Thuộc tính Thời gian
chứa giá trị A có hiệu lực thời gian trong mà không có trong Đây
là cách tiếp cận theo mô hình điểm thời gian có thực hiện phép hợp (coalsece) Trong kết hợp, các hàng có thuộc tính (phi thời gian) mang giá trị giống nhau có thể được kết hợp nhau theo trường tem thời gian nếu thời gian của chúng là kề nhau, hay chồng lấp lên nhau Và khi đó hàng mới được tạo ra có thời gian là tập hợp của các khoảng thời gian của các hàng nguyên thủy
Ngược lại, kết quả có cách tiếp cận theo khoảng thời gian, tức là chứa tất cả cách hàng có trong mà không có trong , khi đó xem có khoảng thời gian là giá ị nguyên tử không thể hia nhỏ được tr c
trả về các hàng từ với khoảng thời gian mà không bị chồng lấp với khoảng thời gian củ các hàng trong a
Kết quả cũng tương tự như về mặt tương đương hình thức, song về ngữ nghĩa thì là phiên bản có thực hiện kết hợp trên thời gian của
II.1.2.2 Khoảng thời gian trong CSDL thời gian
Các toán tử cho mốc hay điểm thời gian tương tự như trong CSDL snapshot Song trong CSDL thời gian, những vấn đề về ràng buộc liên quan đến các khoảng thời gian bị trùng lấp nhau nảy ra
Một ràng buộc điển hình là các khoảng thời gian hiệu lực của một đối tượng, thực thể là không chồng lấp nhau Ví dụ CSDL lưu một người có thể sống ở nhiều nơi, nhưng tại một thời điểm thì chỉ sống ở một nơi mà thôi Những ràng buộc như thế đòi hỏi vị từ cho khoảng thời gian đòi hỏi phức tạp hơn
Allen đã giới thiệu tập gồm 13 vị từ so sánh cho khoảng thời gian [7] Những vị từ này mô tả trong bảng 3.5 sau
Trang 26và là khoảng thời gian, và begin(I) và end(I) biểu diễn điểm thời gian
bắt đầu S và thời gian kết thúc E: Các biểu diễn khác của khoảng thời
Vị từ so sánh Tươ đương ng
e befor after
end( ) < begin( ) end( ) < begin( )
during
contains
(begin( ) > begin( ) end ) end ( ( )) (begin( ) begin( ) end( ) < end( )) (begin( ) > begin( ) end( ) end( ) ) (begin ( ) begin( ) e nd( ) < end( ))
end( ) = begin( ) end( ) = begin( )
starts
y started b
begin( ) = begin( ) end ) < end ( ( ) begin( ) = begin(v) end( ) < end( )
finishes finished by
begin( ) > begin( ) end ) = end( ) ( begin( ) > begin( ) end( = end(I ) )
equals begin( ) = begin( ) end( ) = end( ) Bảng 3.5 Vị từ so sánh khoảng thời gian của Allen
II.1.2.3 Đoạn thời gian
Khi một sự việc có hiệu lực không chỉ trong một khoảng thời gian mà còn trong nhiều khoảng thời gian khác nhau, với mô hình khoảng thời gian lưu các sự việc, thông tin kiểu thế này sẽ dẫn đến việc dư thừa dữ liệu Chính vì vậy, khái niệm thuật ngữ mới đoạn thời gian (temporal element) được đưa ra [13], đoạn thời gian là tập hữu hạn các khoảng thời gian
II.1.3 Tem cho dữ liệu
Trong các mô hình dữ liệu, giá trị của thuộc tính được kết hợp với một hay nhiều thuộc tính thời gian Ta có thể phân biệt các mô hình dữ liệu với nhau dựa ở đặc
Trang 27tính: gán tem thời gian cho mỗi thuộc tính một cách riêng lẻ hay cho tập các thuộc tính hay còn gọi là hàng, bộ [2]
Thuận lợi do mô hình dữ liệu hỗ trợ tem thời gian trên thuộc tính là hoàn toàn tránh được dư thừa dữ liệu Khi thuộc tính thay đổi giá trị của nó, nó độc lập với thuộc tính khác trong thế giới thực Tuy nhiên đặc tính tem thời gian trên thuộc tính lại mang lại sự rườm rà đối với tem thời gian lược đồ mô hình hệ thống của quan hệ vì lúc này mỗi bảng lưu chỉ một thuộc tính người dùng và thuộc tính thời gian đi kèm của nó
Mô hình CSDL với tem thời gian theo hàng có cấu trúc lưu trữ trong sáng, thuận tiện lưu trữ, tổ chức và thuận lợi trong các kỹ thuật truy vấn Nhưng nếu chỉ một thuộc tính của một hàng bị thay đổi giá trị, sẽ dẫn đến toàn bộ hàng được sao chép lại
và được đánh dấu tem thời gian khác Song điều này cũng đem lại bất tiện là sự dư thừa dữ liệu [2]
II.1.3.1 Tem thời gian theo hàng, đối tượng
Những công trình hiện thực tem thời gian trên mô hình quan hệ [8, 26, 27]
Sự khác nhau của các nghiên cứu này tùy thuộc vào nhiều đặc tính này mà hệ thống này hỗ trợ: hỗ trợ tem thời gian VT, hay TT hay cả hai loại tem thời gian hoặc hỗ trợ gán tem thời gian bằng thời điểm hay bằng khoảng thời gian, hoặc là hỗ trợ các khái
niệm thời gian: quá khứ, hiện tại (now) hay tương lại như UC, ∞, mãi mãi (forever)…
II.1.3.1.1 Mô hình tiếp cận cơ bản
Ta đặt miền giá trị của VT là và của TT là Định nghĩa miền giá trị như sau:
Trang 28Miền giá trị với các điểm thời gian hay khoảng thời gian áp dụng công thức dưới:
a Mô hình hướng sự kiện
Mô hình này không cho ta biết được lượng thời gian mà đối tượng đó hiệu lực trong thế giới thực Nó chỉ cho biết thời điểm , khi mà sự kiện nào đó xảy
ra làm đối tượng hay sự việc trở nên hiệu lực và được đăng kí hay giao tác vào CSDL vào
Các mô hình hướng sự kiện: Mô hình Ariav, mô hình này không hỗ trợ dò xét các thông tin đã không còn hiệu lực trong CSDL, do vậy nó có rất nhiều yếu điểm
Trang 29b Mô hình sự kiện - khoảng thời gian
Là mô hình lai ghép giữa gán tem thời gian sự kiện và khoảng thời gian, nó cho phép hỗ trợ biểu diễn ngữ nghĩa, thông tin về lượng thời gian của các sự việc, đối tượng trong thực tế
Các thông tin về đời sống của đối tượng: khi nó được tạo ra, khi nó bị xóa
đi hay bị thay đổi…cũng như các thông tin, dữ liệu quá khứ, hiện tại và tương lai Mô hình này sử dụng tem thời gian giao tác bằng điểm thời gian Do vậy, CSDL sẽ không nắm bắt được thông tin mà sự việc hay thông tin ấy đã cư trú trong CSDL trong bao lâu Mô hình Jensen là một biểu diễn của mô hình này
c Mô hình khoảng thời gian
Với mô hình này, thông tin được gán tem thời gian bằng cặp giá trị VT - TT , , ,
Với là biến, ví dụ UC nếu hàng dữ liệu đó đang hiện hành trong CSDL
1 Nếu , thì hàng đó đã bị xóa một cách luận lý
2 Nếu , hàng đó được thêm vào CSDL trước khi sự việc có hiệu lực t t trong thế giới thật hậ
3 Nếu thì hàng đó thêm vào CSDL sau khi sự việc có hiệu lực thật trong th ực tế
4 Nếu , ta có thao tác thêm vào CSDL “đồng thời” với thực tế
d 1NF và OID
Tất cả các hàng được gán tem thời gian thỏa dạng chuẩn 1 (1NF), vì không
có thuộc tính nào mang phức hợp, hay đa trị Nhưng một đối tượng hay một thực thể lại phải lưu thành nhiều hàng trong CSDL Chính vì thế, không có sự tương ứng một – một giữa đối tượng thật và đối tượng lưu trong CSDL, mà là sự thể hiện của rất nhiều hàng, bản ghi Do vậy nó tạo ra sự dư thừa dữ liệu không cần thiết, vì có một số thuộc tính thì ít thay đổi giá trị trong khi các thuộc tính khác thì ngược lại
Dữ liệu quan hệ dạng chuẩn 1 bản chất của nó là không tồn tại cơ chế tự động nhận diện đối tượng, chẳng hạn như khóa chính của một hàng Khi khóa chính
Trang 30của hàng đó thay đổi, thông tin của đối tượng đó sau này được thêm vào trong CSDL với khóa mới, sẽ không có cách nào để biết được nó cũng là đối tượng trước kia
Sự thiếu sót “tính động” của loại tem thời gian này mà người ta đã đề xuất tem thời gian theo thuộc tính của đối tượng
II.1.3.2 Tem thời gian thuộc tính
Đa số các mô hình quan hệ thời gian hỗ trợ tem thời gian theo hàng Tem thời gian theo thuộc tính cho phép miền giá trị áp dụng cho thuộc tính, tương ứng với thuộc tính đa trị Nó đã không thỏa dạng chuẩn 1, những quan hệ này được xem như là quan hệ không theo dạng chuẩn 1 (N1NF)
II.1.3.2.1 Mô hình tiếp cận cơ bản
Có 3 cách tiếp cận cho mô hình tem thời gian thuộc tính được định nghĩa như sau:
Mô hình này không thực hiện được các vấn đề tham đổi dữ liệu ví như: Khi một sự việc, sự kiện bị xóa khỏi , sẽ thêm một cách luận lý , đã xóa thông tin cần xóa, với giá trị TT mới
Yếu điểm của mô hình này là không biết một sự kiện có bị xóa không nếu không so sánh tem thời gian trong Mặc hạn chế nữa là khi thay đổi chỉ số nhận
Trang 31diện của đối tượng, sự việc thì nó cũng bị yếu điểm như 1NF Hơn nữa, nó cũng không tránh được vấn đề về dư thừa dữ liệu
b.
là mô hình hiện thực thuộc tính đa trị, mỗi thuộc tính đa trị là một bộ ba
VT, TT và một giá trị của thuộc tính Một hàng có n thuộc tính sẽ có n bộ ba như thế, mỗi bộ biểu diễn thông tin thời gian kép của một thuộc tính của hàng đó tại những thời gian khác nhau
Mô hình thời gian kép đa trị
Mô hình của Gadia AND Yeung [3], được gọi là mô hình không đồng nhất, một đại diện của mô hình R Mô hình này giải quyết được vấn đề dư thừa dữ liệu, và
nó cũng cho phép thay đổi giá trị của khóa nhận diện
c M
một mô hình VT đa trị, nó là một hình thức đơn giản của mô hình trước
R Song nó không hỗ trợ thời gian TT Sau đây là những cách tiếp cận của mô hình này
ô hình VT đa trị
Mô hình của Gadia là mô hình tem trên khoảng thời gian Nó là mô hình giả định đồng nhất Định nghĩa những hàng thời gian đồng nhất chứa tất cả các thuộc tính được định nghĩa trên cùng một khoảng thời gian Hay nói cách khác tất cả thuộc tính của một hàng có giá trị VT nhận diện duy nhất Ý tưởng Gadia là sẽ tránh được việc lưu trữ những đối tượng có giá trị NULL, chẳng hạn tất cả các thuộc tính phải được định nghĩa trong suốt thời gian sống của đối tượng Tương tự Mô hình Tansel và Mô hình Clifford và Croker cũng là một hiện thực của mô hình VT đa trị [3]
Immortal DB mở rộng thêm đặc tính thời gian giao tác TT cho Sql Server, hiện thực gán tem thời gian cho mỗi phiên bản bản ghi với thời gian T theo thứ tự chuỗi thực thi thứ tự trong giao tác và so với các giao tác khác Nó sử dụng cơ chế lan truyền tem thời gian để lan truyền thời gian cho các thao tác cập nhật sau khi hoàn thành giao tác Tem thời gian phải phản ánh đúng thứ tự của giao tác [24]
II.1.4 Phân loại CSDL thời gian
Phần trên đã đề cập về các khái niệm của thời gian, dựa trên khái niệm đó
mà người ta phân loại CSDL thời gian:
Trang 32ảnh (snapshot) chụp tức thời tại một thời điểm
nào đó, chứ không phải là cả một đoạn video
ghi lại toàn bộ tất cả các sự kiện
Hình 2.4 Hình biểu diễn CSDL snapshot
II.1.4.2 CSDL lưu quá khứ
CSDL lưu quá khứ ghi nhận lại lịch sử của dữ liệu tương ứng trong thế giới thực Tính động của thế giới thực xảy ra dọ
g thái dọc theo chiều thời gian
hiệu lực từ quá khứ, hiện tại và cả tương
lai Trong Hình 2.5 mô tả về CSDL này
Các thao tác trên CSDL này sẽ được đề
Một CSDL ghi nhận lại sự thay
đổi của chính CSDL đó được gọi là CSDL
Trang 33giao tác hay rollback CSDL loại này ghi nhận dữ liệu dọc theo chiều thời gian giao tác, CSDL này không ghi nhận bất cứ trạng thái tương lai nào của dữ liệu vì tương lai thì chưa xảy ra Bất cứ khi nào có một lệnh sửa đổi xảy ra, hệ thống sẽ ghi nhận trạng thái mới với thời gian mà nó được thực hiện trong hệ thống trong khi vẫn giữ lại các trạng thái cũ, như Hình 2.6 Không có dữ liệu nào bị xóa về mặt vật lý Các thao tác thay đổi dữ liệu của CSDL này cũng được đề cập ở phần sau
Hình 2.6 Hình biểu diễn CSDL giao tác
II.1.4.4 CSDL thời gian kép
CSDL thời gian kép là sự kết
hợp giữa CSDL lịch sử và CSDL giao tác
Hình 2.7 cho ta thấy một CSDL
thời gian kép, ghi nhận trạng thái dữ liệu
theo cả hai chiều thời gian hiệu lực và
giao tác Chính vì thế nó cả hai đặc tính
của cả hai loại CSDL trên
Hình 2.7 Hình biểu diễn CSDL thời gian kép
II.2.1 Các thao tác căn bản
Quản lý dữ liệu trong CSDL thương mại được thực hiện thông qua các thao
tác INSERT, DELETE, UPDATE và SELECT Tất cả các CSDL thương mại đều hỗ trợ
các thao tác này Trong CSDL thời gian các thao tác quản lý cũng tương tự như vậy, tuy nhiên việc hiện thực ắt hẳn sẽ khác
Thao tác chèn cũng tương tự như thao tác thêm dữ liệu thông thường, thêm vào đó có thể đi kèm các tác vụ toán tử kết hợp các khoảng thời gian mà có cùng giá trị hiệu lực giống nhau
Trang 34Thao tác xóa được thực thi như phép loại trừ luận lý Vì tất cả các dữ liệu
cũ phải được bảo toàn do vậy, thao tác xóa được phải được ghi lại với tem thời gian, đánh dấu thời điểm kết thúc của giá trị đó trong CSDL
Thường thì việc loại bỏ vật lý một dữ liệu (thao tác này thường được gọi là dọn rác -vacuuming) thỉnh thoảng được thực hiện chỉ vì muốn giảm kích thước lưu trữ của dữ liệu, hầu hết thì các ứng dụng đều muốn lưu lại những thông tin đã xóa này để
sử dụng cho một mục đích nào đó trong tương lai Khi xóa bỏ dữ liệu cũ, 3 hành động liên quan sau đây được xét đến:
1 Giá trị vừa hợp lệ ngay trước các giá trị bị xóa, bị loại đi, lúc này sẽ trở thành hợp lệ và hợp lệ trong suốt những khoảng thời gian mà các giá trị
bị loại trừ hay bị xóa đã có giá trị hợp lệ
2 Giá trị hợp lệ kế tiếp sẽ bắt đầu hay
3 Một giá trị mới được định nghĩa sử dụng khoảng thời gian của dữ liệu bị loại
Thao tác cập nhật không còn là thay giá trị cũ bằng giá trị mới (vẫn đảm bảo các ràng buộc) nữa mà vì toàn bộ thông tin trước đây của dữ liệu phải được duy trì Cả hai giá trị này sẽ được lưu vào trong CSDL và được dán nhãn tem thời gian đúng với thế giới thực
CSDL thời gian cũng yêu cầu các ràng buộc toàn vẹn, mô tả các luật để đảm bảo tính nhất quán của dữ liệu Những luật này khác nhau tùy thuộc vào kiểu CSDL thời gian được hiện thực: CSDL thời gian thao tác, CSDL thời gian hiệu lực, CSDL thời gian kép Trong phần mô hình thời gian kép đề xuất của hệ thống, thao tác
dữ liệu thời gian kép được ra cụ thể hơn và dựa trên những bước phân tích ở phần này,
ta sẽ đưa ra định nghĩa một tập các thao tác trên CSDL thời gian
CSDL thời gian không những lưu trữ những thông tin về tất cả thay đổi về trạng thái của đối tượng mà còn phải đảm bảo tất cả ràng buộc toàn vẹn tại mọi thời điểm của CSDL, cũng như thỏa ràng buộc toàn vẹn CSDL giữa những thời điểm ấy với nhau [4]
Trang 35Giả sử ta xét là quan hệ được tham chiếu và tham chiếu có khóa
chính là CK thì tại mọi thời điểm trong thế giới thực cũng như tại bất kì trạng thái dữ liệu thì mọi giá trị của FK của dữ liệu phải bằng giá trị CK của tại thời điểm đó
Khóa ngoại trong CSDL thời gian kép không chỉ đảm bảo tồn tại một hàng,
bộ dữ liệu tương ứng trong quan hệ được tham chiếu đồng thời còn phải kiểm tra rằng tem thời gian giao tác và thời gian hiệu lực của hàng tham chiếu có thuộc, có được chứa trong khoảng tem thời gian giao tác và thời gian hiệu lực của hàng được tham chiếu Ràng buộc này còn được gọi là ràng buộc toàn vẹn tham chiếu thời gian kép Để thực hiện đảm bảo ràng buộc này không bị vi phạm, cần thực hiện kiểm tra 3 điều kiện sau: Ví dụ với 2 quan hệ và có FK tham chiếu đến CK của Khoảng tem thời
gian hiệu lực và giao cho bởi V và T
1 Các hàng với CK=FK trong : Kiểm tra nếu có một hay nhiều hàng trong có
khóa dự tuyển cùng giá trị với khóa ngoại của
2 Trong cùng một trạng thái CSDL: Nếu điều kiện đầu tiên thoả, kiểm tra nếu khoảng tem thời gian giao tác của hàng thuộc quan hệ có thuộc, được chứa trong khoảng thời gian giao tác của một hàng hay sự kết hợp của các hàng trong quan hệ Tức và
Nếu điều kiện này thoả mãn, tiếp tục điều kiện 3 Ngược lại đã vi phạm ràng buộc toàn vẹn tham chiếu thời gian kép
3 Trong cùng một thời điểm thế giới thực: Nếu điều kiện thứ nhất và thứ nhì thoả, kiểm tra khoảng tem thời gian hiệu lực của hàng tham chiếu có thuộc khoảng tem thời gian của một hàng hay hợp của các hàng được tham chiếu nào đó, hay
II.3.1 Hiện thực kiểm tra toàn vẹn tham chiếu thời gian kép
Toàn vẹn tham chiếu cấu trúc, hệ thống trạng thái CSDL một cách đúng đắn
và hợp lý Bất kỳ trạng thái CSDL sẽ vi phạm này quy luật này, được xem như là trạng thái sai, không hợp lệ Để không bị rơi vào các trạng thái CSDL sai như vậy cần tránh: các thao tác gây ra trạng thái bất hợp lệ này
Trang 3626
II.3.1.1 Thao tác thêm trong quan hệ tham chiếu
Trước khi thêm một dữ liệu vào quan hệ tham chiếu, phải đảm bảo rằng khóa ngoại phải tham chiếu đến một giá trị có tồn tại trong suốt khoảng tem thời gian hiệu lực và vẫn còn hiệu lực trong dữ liệu hiện thời
II.3.1.2 Thao tác cập nhật và xóa trong quan hệ được tham chiếu
Có 2 khả năng liên quan đến thao tác cập nhật và xóa trong quan hệ được tham chiếu có thể dẫn đến việc vi phạm ràng buộc toàn vẹn tham chiếu
Loại bỏ, hạn chế cập nhật và xóa
Nếu giao tác cập nhật hay xóa trường khóa dự tuyển và thuộc tính tem thời gian hiệu lực, cần kiểm tra quan hệ tham chiếu nếu có tồn tại hàng thoả mãn điều kiện:
- Đang tồn tại hiện tại trong CSDL
- Có cùng giá trị khóa ngoại với khóa dự tuyển đang xét
- Và khoảng thời gian hiệu lực của nó có giao nhau với khoảng thời gian hiệu lực của hàng bị xóa hay cập nhật đó
Nếu có kết quả hàng như vậy, thì:
• Thao tác xóa và cập nhật này sẽ bị bỏ qua, vì vi phạm ràng buộc thời gian kép
• Thao tác cập nhật trên trường tem thời gian của quan hệ được tham chiếu sẽ được thực hiện nếu khoảng tem thời gian mới bao gồm cả khoảng thời gian
cũ mà được tham chiếu bởi quan hệ tham chiếu
Ngoài ra các ràng buộc khoảng thời gian cần được xem xét đến Chẳng hạn, HDMBS có các toán tử so sánh các khoảng thời gian Hay các hàng có cùng giá trị thuộc tính trên các khoảng thời gian chồng lấp nhau sẽ được hợp lại Chính vì thế, các
đề xuất cho việc chuẩn hóa hỗ trợ ràng buộc khoảng thời gian [14]
Trang 37Phần III Tổng thuật những công trình liên quan
Để phát triển xây dựng một CSDL thời gian, có những cách tiếp cận như hình 3.1:
• Sử dụng kiểu dữ liệu thời gian được xây dựng sẵn chẳng hạn kiểu date, time, datetime… hỗ trợ bởi Hệ quản trị CSDL thương mại phi thời gian
• Mở rộng các mô hình dữ liệu phi thời gian thành mô hình dữ liệu thời gian bằng cách gắn đặc tính thời gian cho mỗi dữ liệu, hỗ trợ các kiểu dữ liệu thời gian, cũng như các thao tác thời gian như TimeDB, Chronolog…
• Phát triển một hệ CSDL mới cung cấp các kiểu dữ liệu thời gian căn bản và điều khiển các thể hiện thời gian, trạng thái của dữ liệu như HDBMS và TDBMS
Giải pháp thứ ba sẽ phải phát triển toàn bộ một hệ thống CSDL mới có thể
hỗ trợ đặc tính thời gian Công việc này phức tạp, khó khăn và gian nan vì các nền tảng bên dưới của các Hệ quản trị CSDL thương mại hiện tại thật sự là kết quả làm việc cật lực tốn rất nhiều thời gian, trí lực, là công sức lao động của rất nhiều lập trình viên để tạo ra nó, hay có thể nói nó là sản phẩm thành quả của các nhà cung cấp các hệ quản trị CSDL lớn
Giải pháp thứ nhất và thứ hai không làm thay đổi các kỹ thuật CSDL đã tồn tại, đồng thời có thể ít phức tạp hơn vì ta chỉ xây dựng các phương pháp mới cho việc
hỗ trợ đặc tính thời gian trên hệ thống CSDL có sẵn
Trang 38Hình 3.1 Cách tiếp cận khác nhau cho các ứng dụng thời gian
Chính vì thế giải pháp thứ nhất và thứ hai được xem là khả thi để hiện thực hơn và phần lớn tất cả các nghiên cứu và hiện thực CSDL thời gian hiện tại đều dựa trên các giải pháp này
Ứng dụng thời gian theo kiến trúc giữa thông thường có thể phân rã thành 3 tầng:
• Tầng ứng dụng thời gian: giao tiếp tương tác, liên lạc với người dùng Nó
cung cấp một công cụ tiền xử lý cho người dùng xác định trên các khung nhìn dữ liệu thời gian, để thay đổi chỉnh sửa dữ liệu và thu nhận thông tin…, đồng thời sử dụng dịch vụ mà tầng trung gian cung cấp để thực hiện thao tác trên thông tin thời gian
• Tầng trung gian: cung cấp dịch vụ xử lý thông tin thời gian, bao gồm các
câu truy vấn, suy diễn…
• Tầng đáy CSDL: hoàn thành biểu diễn của dữ liệu thời gian trên CSDL
truyền thống
Trang 39Dựa theo các tài liệu tham khảo, các cách tiếp cận thiết kế khác nhau để mở rộng hệ quản trị CSDL đang tồn tại và hỗ trợ thêm các kiểu dữ liệu thời gian và các thao tác thời gian tương ứng Sau đây là cách tiếp cận:
III.1.1 Tích hợp các chức năng thời gian vào trong HQTCSDL truyền thống
Tiếp cận thiết kế theo mô hình này tích hợp hỗ trợ thời gian vào bên dưới của Hệ quản trị CSDL truyền thống, được mô tả như hình 3.2:
Hình 3.2 Chức năng thời gian được xây dựng trong phần lõi của HQTCSDL Xây dựng, mở rộng các chức năng thêm vào cho hệ quản trị truyền thống gồm:
• Xây dựng kiểu dữ liệu thời gian thích hợp (điểm thời gian, khoảng thời gian, các đoạn thời gian) với cấu trúc lưu trữ xác định Phần lõi cung cấp chuyển đổi các kiểu dữ liệu trên sang cách biểu diễn nguyên thủy, cung cấp bởi hệ quản trị CSDL để lưu dữ liệu vào ổ cứng
• Mô đun phân tích ngữ nghĩa có nhiệm vụ xác định một thao tác có ngữ nghĩa thời gian đối với CSDL hiện tại hay không và nếu có thì ngữ nghĩa như thế nào, để đưa ra hành vi hợp lý
Trang 40• Mô đun thực thi câu truy vấn phải được mở rộng thêm những thao tác thêm vào cần cho ứng dụng thời gian (như phép hợp thời gian, phép kết…)
• Bộ phân tích cú pháp DDL và DML của CSDL hiện tại được chỉnh sửa, thay đổi để có thể nhận biết cú pháp mở rộng sử dụng cho các thao tác thời gian Nếu như không hỗ trợ ngôn ngữ DDL và DML mở rộng, thì thay đổi này là không cần thiết
Ứng dụng thời gian hay ứng dụng snapshot sử dụng một thư viện giao tiếp chung để tương tác với Hệ quản trị CSDL thời gian Thư viện này cung cấp một tập các kiểu dữ liệu thời gian, được dùng khi dữ liệu được truyền từ ứng dụng đến hệ quản trị CSDL thời gian hay ngược lại, cùng với một tập các thủ tục, phương thức mà nó có thể được gọi từ ngôn ngữ từ ứng dụng hay bởi trigger về phía hệ quản trị CSDL
Bộ tiền xử lý có thể thực hiện thêm lời gọi hàm, thủ tục thật sự vào trong đoạn mã, trong khi các lập trình viên mô tả hành vi, công việc bằng cách sử dụng ngôn ngữ truy vấn khai báo (ví dụ SQL mở rộng, nhúng…)
III.1.2 Cách tiếp cận Máy chủ thời gian TS – Temporal Server
Tiếp cận này là giải pháp được ưa chuộng hơn vì nó không thay đổi CSDL
snapshot, và có sự tham gia và tồn tại của TS máy chủ thời gian Máy chủ thời gian
này được đặt một cách luận lý giữa ứng dụng thời gian và hệ quản trị CSDL snapshot như mô tả trong hình 3.3 Ứng dụng truy cập kho dữ liệu thời gian bằng thư viện giao tiếp hệ quản trị CSDL thời gian, sẽ được chuyển hướng các yêu cầu về thu nhận hay
thao tác dữ liệu cho TS, TS có trách nhiệm thực hiện các công việc sau:
• Phân tích yêu cầu được gửi đi từ ứng dụng, để đưa ra quyết định theo qui định của ngôn ngữ truy vấn thời gian hay ngôn ngữ truy vấn bình thường
• Ngăn chặn các tham chiếu đến các kiểu dữ liệu thời gian (thời điểm, khoảng thời gian, đoạn thời gian) không được hỗ trợ bởi phần lõi của hệ quản trị CSDL snapshot và cung cấp chuyển đổi giữa cách biểu diễn sử dụng bởi ứng dụng và cách biểu diễn định dạng dữ liệu thô (như kiểu chuỗi) dùng để lưu dữ liệu vào hệ quản trị CSDL snapshot
• Ánh xạ các thao tác thời gian thành một loạt các thao tác snapshot và sắp xếp quá trình thực thi của các thao tác này Các thao tác này liên quan đến