LƯU Ý VỀ TÊN ĐỀ TÀI Tên đề tài: NGHIÊN CỨU MÔ HÌNH HƯỚNG ĐỐI TƯỢNG CHO CƠ SỞ DỮ LIỆU HƯỚNG THỜI GIAN - ỨNG DỤNG VÀO VIỆC QUẢN LÝ DỮ LIỆU CHUỖI THỜI GIAN sẽ được đổi tên thành: QUẢN
Trang 1LỜI CẢM ƠN
Tôi xin được gửi lời cảm ơn chân thành đến:
- Tiến sĩ Dương Tuấn Anh đã tận tình chỉ bảo, hướng dẫn tôi nghiên cứu và thực hiện luận văn này Nếu không có sự theo dõi và động viên của thầy, tôi
sẽ không thể hoàn thành luận văn đúng thời gian quy định
- Các thầy cô của Khoa Công nghệ Thông tin trường Đại học Bách khoa TP
Hồ Chí Minh đã tận tâm giảng dạy mở ra cho chúng tôi những con đường đến với những tri thức mới
- Anh Lại Đức Nhuận đã cung cấp những dữ liệu quan trọng thiết thực góp phần làm sinh động luận văn
- Gia đình, bạn bè thân thiết những người luôn bên tôi, động viên khuyến khích tôi vào những thời điểm quan trọng của cuộc đời tôi
Trang 2LƯU Ý VỀ TÊN ĐỀ TÀI
Tên đề tài:
NGHIÊN CỨU MÔ HÌNH HƯỚNG ĐỐI TƯỢNG CHO CƠ SỞ
DỮ LIỆU HƯỚNG THỜI GIAN - ỨNG DỤNG VÀO VIỆC QUẢN LÝ
DỮ LIỆU CHUỖI THỜI GIAN
sẽ được đổi tên thành:
QUẢN LÝ DỮ LIỆU CHUỖI THỜI GIAN BẰNG MÔ HÌNH DỮ LIỆU QUAN HỆ - ĐỐI
TƯỢNG
cho sát với nội dung thực hiện trong luận văn
Trang 3TÓM TẮT
Hệ quản trị dữ liệu chuỗi thời gian là một thành phần đặc biệt quan trọng của
cơ sở dữ liệu hướng thời gian Ngày này, dữ liệu chuỗi thời gian được ứng dụng hết sức rộng rãi trong thực tiễn Dữ liệu tài chính và dữ liệu khoa học là hai ví dụ tiêu biểu có thể được mô hình bằng chuỗi thời gian Mặc dù đã có một số những công trình nghiên cứu về việc quản lý chuỗi thời gian, nhưng vẫn còn khá ít những tài liệu quan tâm đến việc làm cách nào ánh xạ dữ liệu chuỗi thời gian vào trong các
mô hình dữ liệu hiện thực Theo khuynh hướng này, luận văn sẽ nêu ra một số hướng tiếp cận mới nhằm ánh xạ chuỗi thời gian đã được trực quan hoá bằng mô hình dữ liệu thời gian tích hợp ITDM vào mô hình dữ liệu quan hệ - đối tượng, tiêu biểu là DBMS ORACLE Để đánh giá rõ ràng hơn về các cách ánh xạ này, luận văn cũng đã hiện thực hai ứng dụng tài chính tiêu biểu: chuỗi thời gian về thị trường chứng khoán Việt Nam và chuỗi thời gian về tỉ giá ngoại tệ Trong hai ứng dụng thử nghiệm này có sử dụng đặc tính quan hệ - đối tượng tiêu biểu của hệ quản trị cơ sở
dữ liệu quan hệ - đối tượng ORACLE, góp phần giúp cho việc hiện thực cơ sở dữ liệu chuỗi thời gian trở nên rõ ràng và linh hoạt
Trang 4ABSTRACT
Time series data management system is a special type of temporal databases that has a variety of practical applications Financial data and scientific data are examples that can be modeled with time series Though there have been some researches on time series management, very few studies have reported how to map time series data into implementation data models In this thesis, we propose some approaches to map time series represented in Integrated Temporal Data Model (ITDM) into object-relational data model so that we can implement time series databases on some object-relational DBMS such as ORACLE To evaluate the mapping scheme, we have applied it in two typical financial applications: Vietnamese stock time series and foreign exchange rate time series The two experiments have shown that by using object-relational features of an object- relational DBMS such as ORACLE, the implementation of time series databases becomes feasible and quite straightforward
Trang 5LỜI CẢM ƠN
LƯU Ý VỀ TÊN ĐỀ TÀI
TÓM TẮT
ABSTRACT
MỤC LỤC
Chương 1: GIỚI THIỆU ĐỀ TÀI 1
1.1 GIỚI THIỆU CHUNG 1
1.2 MỤC TIÊU LUẬN VĂN 2
1.3 ĐÓNG GÓP CỦA LUẬN VĂN 3
1.4 CẤU TRÚC CỦA LUẬN VĂN 3
Chương 2: DỮ LIỆU CHUỖI THỜI GIAN – NHỮNG KHÁI NIỆM CĂN BẢN VÀ CÁC CÔNG TRÌNH LIÊN QUAN 5
2.1 NHỮNG KHÁI NIỆM VỀ CƠ SỞ DỮ LIỆU HƯỚNG THỜI GIAN 5
2.1.1 Cơ sở dữ liệu hướng thời gian (Temporal Database) 5
2.1.2 Thời gian hợp lệ (Valid Time) 5
2.1.3 Thời gian giao dịch (Transaction Time) 5
2.1.4 Nhãn thời gian (Timestamp) 6
2.1.5 Độ mịn thời gian (Granularity) 6
2.2 DỮ LIỆU CHUỖI THỜI GIAN (Time Series Data) 7
2.2.1 Khái niệm 7
2.2.2 Lịch dùng trong chuỗi dữ liệu thời gian (Calendar for Time Series) 10
2.3 MÔ HÌNH DỮ LIỆU THỜI GIAN TÍCH HỢP 11
2.4 TỔNG THUẬT VỀ CÁC CÔNG TRÌNH LIÊN QUAN 14
2.4.1 Các công trình tập trung vào mô hình dữ liệu chuỗi thời gian 14
2.4.2 Các công trình đi sâu vào các phương pháp ánh xạ chuỗi thời gian 15
2.4.3 Các công trình thiên về những ứng dụng của chuỗi thời gian 16
Chương 3: PHƯƠNG PHÁP ÁNH XẠ DỮ LIỆU CHUỖI THỜI GIAN VÀO CÁC MÔ HÌNH DỮ LIỆU THÔNG DỤNG 19
3.1 ÁNH XẠ VÀO CƠ SỞ DỮ LIỆU QUAN HỆ 19
3.2 ÁNH XẠ VÀO CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 23
3.3 ÁNH XẠ VÀO CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG 26
3.3.1 Lý do sử dụng cơ sở dữ liệu quan hệ - đối tượng 26
3.3.2 Ánh xạ vào cơ sở dữ liệu quan hệ - đối tượng 29
Chương 4: ỨNG DỤNG VÀO CƠ SỞ DỮ LIỆU THỊ TRƯỜNG CHỨNG KHOÁN VÀ CƠ SỞ DỮ LIỆU TỈ GIÁ NGOẠI TỆ 38
4.1 NHỮNG ĐẶC ĐIỂM CỦA DBMS QUAN HỆ - ĐỐI TƯỢNG ORACLE 39
4.1.1 Các câu lệnh SQL 39
Trang 64.2.3 Ánh xạ chuỗi thời gian SSI vào DBMS Oracle (cách 1) 46
4.2.4 Các Member Function và Member Procedure 50
4.3 CHUỖI THỜI GIAN TỈ GIÁ NGOẠI TỆ (CÁCH 2) 52
4.3.1 Mô tả bài toán 53
4.3.2 Mô hình ITDM của chuỗi thời gian tỉ giá ngoại tệ 53
4.3.3 Ánh xạ chuỗi thời gian tỉ giá ngoại tệ vào DBMS Oracle (Cách 2) 54
4.3.4 Các Member Function và Member Procedure 57
Chương 5: HIỆN THỰC MỘT SỐ THAO TÁC TRUY VẤN DỮ LIỆU CHUỖI THỜI GIAN CỦA HAI ỨNG DỤNG TRÊN 59
5.1 CHUỖI THỜI GIAN THỊ TRƯỜNG CHỨNG KHOÁN VIỆT NAM 59
5.1.1 Các Stored Procedure 59
5.1.2 Các truy vấn 62
5.1.3 Biểu diễn bằng đồ thị trực quan 66
5.2 CHUỖI THỜI GIAN TỈ GIÁ NGOẠI TỆ 68
5.2.1 Các Stored Procedure 68
5.2.2 Các truy vấn 72
5.2.3 Biểu diễn bằng đồ thị trực quan 77
Chương 6: KẾT LUẬN 80
6.1 ĐÁNH GIÁ VỀ HAI CÁCH THỨC ÁNH XẠ 80
6.1.1 Ánh xạ vào DBMS quan hệ - đối tượng theo CÁCH 1 80
6.1.2 Ánh xạ vào DBMS quan hệ - đối tượng theo CÁCH 2 81
6.2 TỔNG KẾT 82
6.3 NHỮNG ỨNG DỤNG THỰC TIỄN 83
6.4 HƯỚNG PHÁT TRIỂN 84
TÀI LIỆU THAM KHẢO 85 Phụ lục A: LƯỢC ĐỒ THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC LUẬN LÝ CỦA CHUỖI THỜI GIAN THỊ TRƯỜNG CHỨNG KHOÁN A1 Phụ lục B: LƯỢC ĐỒ THIẾT KẾ CƠ SỞ DỮ LIỆU MỨC LUẬN LÝ CỦA CHUỖI THỜI GIAN TỈ GIÁ NGOẠI TỆ B1 Phụ lục C: MỘT SỐ ĐẶC ĐIỂM THÔNG DỤNG CỦA PL/SQL C1 C.1 CÁC CẤU TRÚC ĐIỀU KHIỂN TRONG PL/SQL C1 C.1.1 Cấu trúc điều kiện IF C1 C.1.2 Cấu trúc lặp LOOP C3 C.2 CURSOR TRONG PL/SQL C5 C.2.1 Khai báo CURSOR C6 C.2.2 Mở CURSOR C6 C.2.3 Lấy giá trị từ CURSOR C6 C.2.4 Đóng CURSOR C7 C.2.5 Các thuộc tính của CURSOR C7 C.3 PROCEDURE VÀ FUNCTION C7 C.3.1 Procedure C8
Trang 7D.1 MỘT SỐ KHÁI NIỆM D1 D.1.1 Thị trường tài chính D1 D.1.2 Cấu trúc của thị trường tài chính D1 D.1.3 Thị trường tiền tệ (Money Market) D1 D.1.4 Thị trường vốn (Capital Market) D2 D.2 CHỨC NĂNG VÀ VAI TRÒ CỦA THỊ TRƯỜNG CHỨNG KHOÁN D2 D.2.1 Chức năng của thị trường chứng khoán D2 D.2.2 Vai trò của thị trường chứng khoán D3 D.3 CHỨNG KHOÁN D3 D.3.1 Khái niệm D3 D.3.2 Trái phiếu D3 D.3.3 Cổ phiếu thường (Common Stock) D4 D.3.4 Cổ phiếu ưu đãi (Preferred Stock) D5 D.4 CÔNG TY CHỨNG KHOÁN D6 D.4.1 Khái niệm D6 D.4.2 Chức năng của công ty chứng khoán D6 Phụ lục E: CÀI ĐẶT CHƯƠNG TRÌNH E1 Phụ lục F: CÁC THUẬT NGỮ F1
Trang 8Chương 1:
GIỚI THIỆU ĐỀ TÀI
Chuỗi thời gian là một dạng đặc biệt của cơ sở dữ liệu hướng thời gian, được ứng dụng rộng rãi trong thực tiễn Mặc dù đã có khá nhiều những nghiên cứu trên cơ sở dữ liệu hướng thời gian, nhưng vẫn còn rất thiếu những công trình nghiên cứu về dữ liệu chuỗi thời gian (Time Series Data) Đặc biệt là làm cách nào để ánh xạ dữ liệu chuỗi thời gian vào những mô hình dữ liệu hiện thực Chính vì vậy, luận văn sẽ thảo luận về các phương pháp ánh xạ dữ liệu chuỗi thời gian vào những mô hình dữ liệu khác nhau Trong đó, phương pháp ánh xạ vào mô hình quan hệ - đối tượng được chú trọng vì những ưu điểm nổi bật của nó
1.1 GIỚI THIỆU CHUNG
Việc tách biệt chương trình và dữ liệu là một bước tiến quan trọng trong lập trình Các nhà phát triển có thể tập trung hơn vào việc viết chương trình mà không còn bị chi phối quá nhiều vào việc quản lý dữ liệu nữa Những thao tác trên dữ liệu đã được giao phó hết cho các hệ quản trị cơ sở dữ liệu (DataBase Management System – DBMS) tin cậy Các hãng sản xuất ngày nay chú trọng vào việc phát triển các hệ quản trị cơ sở dữ liệu quan hệ (Relational DataBase Management System – RDBMS), các hệ quản trị cơ sở dữ liệu hướng đối tượng (Object-oriented DataBase Management System – ODBMS), cũng như những hệ quản trị cơ sở dữ liệu quan hệ - đối tượng (Object-Relational DataBase Management System – ORDBMS)
Tuy nhiên, các nhà thiết kế cũng như những nhà phát triển khi đi vào khảo sát, thiết
kế, lập trình hay hiện thực các ứng dụng thường bỏ qua các yếu tố về thời gian Mặt khác, những hệ quản trị cơ sở dữ liệu tuy đa dạng về chất lượng, phong phú về chủng loại, số lượng nhưng lại không hỗ trợ, cũng như hỗ trợ rất ít về việc lưu trữ, thao tác trên dữ liệu hướng thời gian
Ngày càng có nhiều những bài toán thực tế được ứng dụng công nghệ thông tin cũng như đã và đang được mô hình hóa rộng rãi vào trong máy tính Những ứng dụng này không chỉ tập trung vào việc lưu trữ, thao tác trên những dữ kiện bất biến, cố định, không thay đổi theo thời gian mà còn tập trung vào những dữ liệu mang ít nhiều các yếu tố về mặt thời gian Cơ sở dữ liệu hướng thời gian (Temporal Database) trở nên hết sức quan trọng
và cần thiết Việc bỏ công sức, thời gian ra để nghiên cứu, ứng dụng cơ sở dữ liệu hướng thời gian vào thực tiễn là hoàn toàn cần thiết
Trong cơ sở dữ liệu hướng thời gian, dữ liệu chuỗi thời gian là một phần quan trọng không thể thiếu Dữ liệu chuỗi thời gian ngày càng được sử dụng rộng rãi từ những ứng dụng khoa học đến những ứng dụng kinh tế, tài chính như:
Trang 9Ø Dự báo thời tiết: Lưu trữ những dữ liệu chuỗi thời gian về nhiệt độ, độ ẩm, tốc độ gió… thay đổi liên tục theo từng giờ, từng phút là cực kỳ quan trọng trong việc dự báo sự thay đổi của thời tiết
Ø Môi trường: Việc đo đạt, lưu trữ số liệu về số lượng băng ở hai cực của trái đất theo từng tháng, từng năm là một bằng chứng quan trọng cho thấy sự thay đổi của môi trường sống trên trái đất
Ø Ngân hàng: Trong tất cả các ngân hàng đều tồn tại nhu cầu về việc quản lý những dữ liệu chuỗi thời gian về tỉ giá vàng, tỉ giá ngoại tệ luôn luôn biến động không ngừng trong từng phút
Ø Thị trường chứng khoán: Giá cổ phiếu được niêm yết trên thị trường chứng khoán là một dữ liệu chuỗi thời gian tiêu biểu
Ø Kinh doanh: Việc quản lý doanh thu hàng ngày, hàng tháng cũng là công việc chính trong hoạt động kinh doanh của mỗi công ty
Ø …
Rõ ràng, dữ liệu chuỗi thời gian được ứng dụng hết sức rộng rãi trong rất nhiều lĩnh vực thực tiễn Tuy nhiên, mãi cho đến những năm gần đây dữ liệu chuỗi thời gian mới được các nhà khoa học tập trung nghiên cứu một cách có hệ thống Hiện tại, vẫn còn rất thiếu những công trình nghiên cứu tương xứng với vai trò của dữ liệu chuỗi thời gian, đặc biệt là làm thế nào để ánh xạ dữ liệu chuỗi thời gian vào những mô hình dữ liệu hiện thực
Chính tầm quan trọng của dữ liệu chuỗi thời gian, những ứng dụng rộng rãi của nó, cũng như nhu cầu phải tiến hành nghiên cứu dữ liệu chuỗi thời gian là động lực thôi thúc các nhà khoa học tìm tòi, nghiên cứu về dữ liệu chuỗi thời gian và ứng dụng nó sao cho hiệu quả Đó cũng là mục đích chính của luận văn này
Luận văn sẽ tập trung nghiên cứu về những phương pháp ánh xạ dữ liệu chuỗi thời gian vào các mô hình dữ liệu thông dụng Bên cạnh đó, luận văn sẽ đi sâu vào việc quản lý
dữ liệu chuỗi thời gian bằng mô hình dữ liệu quan hệ - đối tượng, bằng cách đưa ra hai phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình quan hệ - đối tượng cũng như xây dựng ứng dụng dữ liệu chuỗi thời gian về thị trường chứng khoán, tỉ giá ngoại tệ trên hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Oracle, đồng thời hiện thực một số thao tác truy vấn thông dụng trên hai loại dữ liệu chuỗi thời gian này
1.2 MỤC TIÊU LUẬN VĂN
Ø Tìm hiểu những tính chất cơ bản của dữ liệu chuỗi thời gian
Ø Tham khảo những phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ và mô hình dữ liệu hướng đối tượng
Ø Nghiên cứu phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng
Trang 10Ø Áp dụng phương pháp vừa nghiên cứu, xây dựng, hiện thực dữ liệu chuỗi thời gian về thị trường chứng khoán cũng như dữ liệu chuỗi thời gian về tỉ giá ngoại tệ trên hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Oracle
Ø Thông qua hai ứng dụng thực tiễn này, tạo ra các truy vấn cơ bản trên dữ liệu chuỗi thời gian Đồng thời biểu diễn những dữ liệu chuỗi thời gian này thông qua đồ thị trực quan
1.3 ĐÓNG GÓP CỦA LUẬN VĂN
Dữ liệu chuỗi thời gian có một tầm quan trọng nhất định Đồng thời, các hệ quản trị
cơ sở dữ liệu quan hệ - đối tượng mang những đặc tính nổi bật được ứng dụng ngày một rộng hơn Chính vì vậy, luận văn đã tập trung nghiên cứu phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng Luận văn đã thực hiện được những công việc cụ thể sau:
Ø Nghiên cứu cơ sở dữ liệu hướng thời gian nói chung, dữ liệu chuỗi thời gian nói riêng Trình bày những thuộc tính, đặc điểm, những thành phần chính của
dữ liệu chuỗi thời gian
Ø Tìm hiểu những công trình nghiên cứu liên quan đến dữ liệu chuỗi thời gian
Ø Tìm hiểu 2 phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ và mô hình dữ liệu hướng đối tượng
Ø Nghiên cứu 2 cách thức ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng
Ø Áp dụng phương pháp ánh xạ này hiện thực 2 ứng dụng chuỗi thời gian thị trường chứng khoán Việt Nam và chuỗi thời gian tỉ giá ngoại tệ trên hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Oracle
Ø Hiện thực một số truy vấn cơ bản trên dữ liệu chuỗi thời gian của 2 ứng dụng
1.4 CẤU TRÚC CỦA LUẬN VĂN
Luận văn sẽ được tổ chức thành 6 chương:
Chương 1: Giới thiệu về luận văn, lý do chọn luận văn cũng như những đóng góp của luận văn
Trang 11Chương 2: Trình bày những định nghĩa, những khái niệm, những thuật ngữ được sử dụng xuyên suốt trong luận văn cũng như các công trình liên quan
Chương 3: Trình bày các phương pháp ánh xạ dữ liệu chuỗi thời gian đã được biểu diễn bằng mô hình dữ liệu thời gian tích hợp (IDTM) vào các mô hình dữ liệu thông dụng
Chương 4: Ứng dụng phương pháp vừa nghiên cứu, hiện thực dữ liệu chuỗi thời gian về thị trường chứng khoán Việt Nam và dữ liệu chuỗi thời gian tỉ giá ngoại tệ trên
hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Oracle
Chương 5: Hiện thực một số thao tác truy vấn dữ liệu chuỗi thời gian của hai ứng dụng trên
Chương 6: Tổng kết lại những lý thuyết, những kỹ thuật, cũng như các kinh nghiệm sau khi vận dụng phương pháp này Qua đó đề xuất những hướng phát triển của luận văn trong tương lai
Sau chương 6 là những tài liệu tham khảo và các phụ lục gồm các nội dung:
Phụ lục A: Lược đồ thiết kế cơ sở dữ liệu mức luận lý của chuỗi thời gian thị trường chứng khoán Việt Nam
Phụ lục B: Lược đồ thiết kế cơ sở dữ liệu mức luận lý của chuỗi thời gian tỉ giá ngoại tệ
Phụ lục C: Một số những đặc điểm thông dụng của PL/SQL
Phụ lục D: Tổng quan về thị trường chứng khoán
Phụ lục E: Cách thức cài đặt chương trình
Phụ lục F: Các thuật ngữ được sử dụng trong luận văn
Như vậy, chương mở đầu đã giới thiệu tổng quan về những nhu cầu, những ứng dụng rộng rãi của dữ liệu chuỗi thời gian, tầm quan trọng của cơ sở dữ liệu quan hệ - đối tượng Qua đó thấy được mục tiêu của luận văn là nghiên cứu về cách thức ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng là cần thiết như thế nào Phần này cũng nêu lên một số đóng góp tích cực của luận văn Chương này cũng đã trình bày cấu trúc của luận văn nhằm giúp người đọc có cái nhìn tổng quát về những vấn đề sẽ được nêu
ra Nội dung của luận văn sẽ được mô tả lần lượt trong những chương kế tiếp Mở đầu là những định nghĩa, những khái niệm cơ bản liên quan đến dữ liệu chuỗi thời gian
Trang 12đó, thấy được phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng là cần thiết như thế nào
2.1 NHỮNG KHÁI NIỆM LIÊN QUAN ĐẾN CƠ SỞ DỮ
LIỆU HƯỚNG THỜI GIAN
Dữ liệu chuỗi thời gian là thành phần quan trọng của cơ sở dữ liệu hướng thời gian Chính vì vậy, trước hết cần phải nắm được một số khái niệm chính yếu liên quan đến dữ liệu hướng thời gian Nội dung trình bày được dựa trên tài liệu [7] của Christian S Jensen
và Curtis Dyreson, tài liệu [8] của Christian S Jensen
2.1.1 Cơ sở dữ liệu hướng thời gian (Temporal Database)
Một cơ sở dữ liệu hướng thời gian là một cơ sở dữ liệu có hỗ trợ một số yếu tố về thời gian, không tính đến thời gian được người dùng định nghĩa
2.1.2 Thời gian hợp lệ (Valid Time)
Thời gian hợp lệ của một sự kiện là thời gian khi sự kiện đó là đúng trong mô hình hiện thực Một sự kiện có thể kết hợp với nhiều thời điểm cũng như thời khoảng khác nhau Thời gian hợp lệ thường được người sử dụng cung cấp
2.1.3 Thời gian giao dịch (Transaction Time)
Một sự kiện cơ sở dữ liệu được lưu trữ trong cơ sở dữ liệu tại một số điểm thời gian, và sau khi nó được lưu trữ, nó được hiện hành cho đến khi nó bị xóa đi Thời gian
Trang 13giao dịch của một sự kiện cơ sở dữ liệu là thời gian mà khi sự kiện đó được trở nên hiện hành trong cơ sở dữ liệu và có thể được rút trích Về tổng quát, thời gian giao dịch không phải là những thời điểm mà nó là những khoảng thời gian
2.1.4 Nhãn thời gian (Timestamp)
Ø Định nghĩa: Một nhãn thời gian là một giá trị thời gian được kết hợp với một vài đối tượng mà là một giá trị thuộc tính hay một bộ các giá trị thuộc tính Có hai loại nhãn thời gian thông dụng là: nhãn thời gian thời điểm và nhãn thời gian thời khoảng
Ø Nhãn thời gian thời điểm: (Instant Timestamp) Trong ví dụ sau: bệnh nhân
sẽ được đo huyết áp vào những thời điểm khác nhau trong ngày Thông tin về kết quả đo được thể hiện thông qua bảng 2.1 Trong đó, cột thời điểm đo chính là nhãn thời gian thời điểm
Tên bệnh nhân Huyết áp Thời điểm đo
Bảng 2.1: Ví dụ về nhãn thời gian thời điểm
Ø Nhãn thời gian thời khoảng: (Interval Timestamp) Ví dụ ở bảng 2.2 cho thấy lương của các nhân viên sẽ thay đổi theo những khoảng thời gian khác nhau Cột [TS, TE] chính là nhãn thời gian thời khoảng
2.1.5 Độ mịn thời gian (Granularity)
Độ mịn thời gian cho biết khoảng cách ngắn nhất giữa hai điểm thời gian Ví dụ khi
có độ mịn thời gian là 5 giây, có nghĩa là khoảng cách giữa hai điểm thời gian mà hệ thống
có thể hỗ trợ là 5 giây
Trang 14Bảng 2.2: Ví dụ về nhãn thời gian thời khoảng
2.2 DỮ LIỆU CHUỖI THỜI GIAN (Time Series Data)
Sau khi trình bày khái quát về cơ sở dữ liệu hướng thời gian cùng một số khái niệm liên quan, phần 2.2 này sẽ tiếp tục xem xét những vấn đề liên quan đến dữ liệu chuỗi thời gian Nội dung sau đây được rút trích từ tài liệu [5] của Ramez Elmasri và Jae Young Lee
hệ thống thông tin, một khi chúng đã được mô hình vào hệ thống (Ví dụ như
số chứng minh nhân dân của mỗi người hay số ID được sinh ra bởi hệ thống…)
Ø Các đối tượng biến đổi theo thời gian: (Time-varying Object) Chúng là những đối tượng mà bị thay đổi giá trị không theo một quy luật thời gian nào
cả (Ví dụ như lương hay cấp bậc của một nhân viên sẽ thay đổi không tuân theo một quy luật nào về thời gian)
Ø Các đối tượng chuỗi thời gian: (Time-series Object) Những đối tượng này thay đổi giá trị của chúng và sự thay đổi này gắn kết chặt chẽ với một mẫu thời gian đặc biệt gọi là lịch (Calendar) (Ví dụ như giá cổ phiếu biến động
Trang 15hằng ngày, dữ liệu khoa học được lấy mẫu một cách đều đặn theo những khoảng thời gian nhất định)
Chuỗi thời gian (Time Series): là một kỹ thuật trừu tượng hóa để quản lý những tập hợp dữ liệu có những giá trị được giám sát tại những thời điểm, hoặc những khoảng thời gian đều đặn Những tập hợp và những phân tích của dữ liệu tài chính và dữ liệu khoa học là những ví dụ có thể được mô hình dưới dạng dữ liệu chuỗi thời gian Những tính chất thông thường của những ứng dụng sử dụng dữ liệu chuỗi thời gian là:
1 Những ứng dụng này thường chứa đựng khối lượng lớn dữ liệu
2 Sự thay đổi của các giá trị dữ liệu được gắn chặt chẽ vào một mẫu thời gian được định nghĩa từ trước, gọi là lịch
3 Những thao tác trên dữ liệu bao gồm những tác vụ số học cũng như những tác
vụ phân tích thống kê
4 Tác vụ gom nhóm (Aggregation Operation) trên một tập hợp dữ liệu là quan trọng hơn trên những phần tử đơn lẻ
Dữ liệu chuỗi thời gian thường được thể hiện như là một chuỗi những sự kiện Một
sự kiện (Event) là một cặp có trật tự bao gồm một giá trị thời gian (Temporal Value) và một giá trị dữ liệu (Data Value) Giá trị dữ liệu có thể là đơn trị hoặc đa trị
Định dạng của một loại dữ liệu chuỗi thời gian đa trị là {(t1 , < data_value1,1 , data_value1,2 , … >), (t2 , < data_value2,1 , data_value2,2 , … >), …}
Định dạng một dữ liệu chuỗi thời gian đơn trị sẽ là: {(t1 , data_value1), (t2 , data_value2), …}
Trong đó, data_valuei,j (hoặc data_valuei) là giá trị của một mục dữ liệu phù hợp với miền giá trị nào đó và ti là các giá trị thời gian
Hình 2.1 là ví dụ minh hoạ một cách trực quan về những dữ liệu chuỗi thời gian khác nhau:
Ở hình 2.1(a) chỉ ra số dư hàng ngày của tài khoản Chú ý rằng trong trường hợp này chuỗi thời gian được biểu diễn: (1,10), (6,3), (8,7), (14,5), (17,11) Đây là loại chuỗi thời gian hằng số bậc thang (Stepwise Constant Time Series)
Hình 2.1(b) diễn tả số lượng sách được bán ra hàng ngày Chúng ta gọi nó là chuỗi thời gian rời rạc (Discrete Time Series)
Hình 2.1(c) cho thấy độ lớn của từ trường đo được bởi thiết bị đo vào những khoảng thời gian đều đặn Trong trường hợp này chúng ta gọi đó là chuỗi thời gian liên tục (Continuous Time Series)
Trang 16Hình 2.1: Ví dụ về chuỗi thời gian
(a) Số dư tài khoản: bậc thang hằng số (stepwise constant)
(b) Số lượng sách được bán: rời rạc (discrete)
(c) Từ trường: liên tục (continuous)
Trang 172.2.2 Lịch dùng trong chuỗi dữ liệu thời gian (Calendar for Time Series)
Một trong những thành phần quan trọng của hệ quản trị chuỗi thời gian (Time Series Management System) chính là lịch (Calendar) Lịch dùng trong những hệ quản trị chuỗi thời gian khác với hệ thống lịch thông thường Lịch dùng trong dữ liệu chuỗi thời gian định nghĩa một mẫu thời gian (Time Pattern) đặc biệt tương ứng với những giá trị dữ liệu được lấy mẫu và được lưu trữ Ví dụ như, lịch dùng cho giao dịch cổ phiếu định nghĩa một chuỗi những ngày mà thị trường chứng khoán mở cửa, gồm tất cả những ngày làm việc không bao gồm những ngày nghỉ cuối tuần và ngày lễ
Một lịch sẽ xác định miền giá trị của những giá trị thời gian của dữ liệu chuỗi thời gian tương ứng Nó cũng cung cấp một giao tiếp (Interface) cho những ngôn ngữ truy vấn gần gũi với con người Ví dụ: Có thể dùng cụm từ the fourth Thursday of November every year trong câu truy vấn
Một lịch được xem như là một tập hợp có trật tự của những đơn vị thời gian Đơn
vị thời gian (Time Unit) là một điểm thời gian diễn tả một độ mịn thời gian nhất định như giây, phút, tháng…
Một lịch được thể hiện thông qua một bộ <granularity, pattern, period, start time, end time>
Ø Granularity: (Độ mịn thời gian) là đơn vị thời gian mặc định được sử dụng trong một lịch
Ø Pattern: (Mẫu) là chuỗi con của những đơn vị thời gian diễn tả như là một phần tử thời gian Nếu như lịch sử dụng là tuần hoàn, một mẫu diễn tả một chu
kỳ sẽ được thể hiện Ngược lại, một chuỗi bao gồm tất cả những điểm thời gian của một lịch sẽ được thể hiện Nếu có nhiều hơn một mẫu, sẽ dùng dấu
“|” (có nghĩa là hoặc (or)) để ngăn cách
Ø Period: (Chu kỳ) là chiều dài của một khoảng thời gian mà tại đó mẫu xuất hiện một cách lặp đi lặp lại Period của một lịch không có chu kỳ được ký hiệu
là ∞
Ø Start time: (Thời điểm bắt đầu) là điểm thời gian tại đó bắt đầu lịch
Ø End time: (Thời điểm kết thúc) là điểm thời gian tại đó kết thúc lịch
Ví dụ: Lịch diễn tả 8 giờ làm việc mỗi ngày được thể hiện như sau:
Calendar WorkHours
< granularity: Hour, pattern: {[9, 11], [13, 17]}, period: 24,
start time: 4/1/96,
Trang 182.3 MÔ HÌNH DỮ LIỆU THỜI GIAN TÍCH HỢP (Integrated Temporal Data Model – ITDM)
Mô hình dữ liệu thời gian tích hợp dùng để biểu diễn một cách trực quan những dữ liệu chuỗi thời gian Phần 2.3 này sẽ trình bày những đặc điểm chính của mô hình ITDM này Nội dung phần này cũng được tham khảo trong tài liệu [5] của Ramez Elmasri và Jae Young Lee như sau:
Trong mô hình dữ liệu thời gian tích hợp, một đối tượng chuỗi thời gian được mô hình như là một thuộc tính chuỗi thời gian và được xem như tương tự những thuộc tính khác Kết hợp với mỗi đối tượng chuỗi thời gian là một lịch, cung cấp một miền giá trị thời gian để xác định những giá trị thời gian đúng đắn và tần suất cập nhật thuộc tính thời gian tương ứng
Các ký hiệu của mô hình dữ liệu thời gian tích hợp ITDM rất giống với lược đồ thực thể quan hệ EER Tuy nhiên cũng có một số thành phần được mở rộng:
1 Thuộc tính không biến đổi theo thời gian (Time-invariant Attribute) được biểu diễn bằng một hình oval (Hình 2.2)
Trong hình 2.2, thuộc tính Issuer là khóa chính, nó mô tả tên của cổ phiếu Issuer chính là thuộc tính không biến đổi theo thời gian
Hình 2.2: Biểu diễn thuộc tính không biến đổi theo thời gian trong ITDM
2 Thuộc tính biến đổi theo thời gian (Time-varying Attribute) được thể hiện bởi một hình oval có một hình chữ nhật được viền hai nét bên trong (Hình 2.3)
Ở hình 2.3, Shares chính là thuộc tính biến đổi theo thời gian Shares thể hiện số lượng cổ phiếu được bán ra thay đổi theo những khoảng thời gian nhất định
Stock
Issuer
Trang 19Hình 2.3: Biểu diễn thuộc tính biến đổi theo thời gian trong ITDM
3 Một hình oval với hình chữ nhật có một nét viền thể hiện một thuộc tính chuỗi thời gian (Time Series Attribute) (Hình 2.4)
4 Mỗi thuộc tính chuỗi thời gian được gắn kết với một lịch kèm theo, và lịch này được kết nối với thuộc tính chuỗi thời gian thông qua một dấu mũi tên (Hình 2.4)
Hình 2.4 biểu diễn thuộc tính chuỗi thời gian đơn giản Trong đó, Dividend (cổ tức) là thuộc tính chuỗi thời gian Thuộc tính này được gắn kết với một lịch Quarters Lịch này diễn tả thời gian biến động của cổ tức theo từng quý
Hình 2.4: Biểu diễn thuộc tính chuỗi thời gian đơn giản trong ITDM
5 Những thuộc tính thành phần của một thuộc tính chuỗi thời gian phức hơp, thông thường không có những lịch riêng biệt kết nối với chúng Giả định rằng lịch trong thuộc tính chuỗi thời gian phức hợp được dùng chung cho các thuộc tính thành phần (Hình 2.5)
6 Tuy nhiên, giá trị dữ liệu của một thuộc tính chuỗi thời gian phức hợp cũng có thể là một chuỗi thời gian (Ticks chẳng hạn), và cũng có một lịch riêng kết hợp với thành phần thuộc tính chuỗi thời gian này (Hình 2.5)
Stock
Dividend Quarters
Stock
Shares
Trang 20Hình 2.5 mô tả thuộc tính chuỗi thời gian phức hợp Price Price biểu diễn giá giao dịch của cổ phiếu bao gồm giá cao (High), giá thấp (Low) và giá giao dịch vào giờ làm việc (Ticks) Thuộc tính chuỗi thời gian Price sẽ được gắn kết với một lịch là BusinessWeek, mô tả các ngày hoạt động trong tuần Ngoài ra, thuộc tính chuỗi thời gian Ticks, mô tả giá cổ phiếu vào từng giờ giao dịch Do đó, Ticks sẽ được gắn kết với một lịch là WorkHours, thể hiện các giờ hoạt động trong ngày
Hình 2.5: Biểu diễn thuộc tính chuỗi thời gian phức hợp trong ITDM
Hình 2.6 là mô hình dữ liệu tích hợp chuỗi thời gian mô tả các thuộc tính thông thường của cổ phiếu Mô hình này đã diễn tả được đầy đủ những thuộc tính của thực thể cần biểu diễn bao gồm: những thuộc tính không biến đổi theo thời gian, thuộc tính biến đổi theo thời gian, thuộc tính chuỗi thời gian Chi tiết các thành phần được mô tả ở hình 2.2, hình 2.3, hình 2.4, hình 2.5
Hình 2.6: Ví dụ về lược đồ ITDM mô tả những thuộc tính của cổ phiếu
Trang 21Mô hình dữ liệu thời gian tích hợp rất đơn gian, trực quan, dễ sử dụng Mô hình này được sử dụng rộng rãi trong việc mô hình hoá cơ sở dữ liệu hướng thời gian Lưu ý,
mô hình dữ liệu thời gian tích hợp ITDM ở hình 2.6 sẽ còn được sử dụng như là ví dụ mẫu trong những chương sau
2.4 TỔNG THUẬT VỀ CÁC CÔNG TRÌNH LIÊN QUAN
Phần này sẽ điểm qua một số công trình đã được các khoa học trên thế giới quan tâm nghiên cứu Qua đó, cũng có được một góc nhìn khái quát hơn về những vấn đề liên quan đến đề tài sẽ được phát triển
2.4.1 Các công trình tập trung vào mô hình dữ liệu chuỗi thời gian
Những công trình này sẽ tập trung vào các khía cạnh của cơ sở dữ liệu hướng thời gian nói chung cũng như dữ liệu chuỗi thời gian nói riêng Nội dung chủ yếu bàn về những đặc tính nổi bật của dữ liệu chuỗi thời gian, cũng như cách thức mô hình hóa dữ liệu chuỗi thời gian
Tài liệu [15] của Arie Segev và Arie Shoshani mô tả khá chi tiết những đặc điểm của chuỗi thời gian Trong tài liệu này, tác giả cũng trình bày khá rõ nét các thao tác trên
dữ liệu chuỗi thời gian Cuối cùng, tài liệu cũng trình bày chi tiết về quá trình thể hiện dữ liệu chuỗi thời gian trên môi trường quan hệ Tài liệu này rất cần thiết cho những ai quan tâm đến những đặc điểm của dữ liệu chuỗi thời gian cũng như các thao tác truy vấn trên dữ liệu chuỗi thời gian
Trong tài liệu [16], Arie Segev và Rakesh Chandra đã trình bày những đặc tính cơ bản của dữ liệu chuỗi thời gian Từ những đặc điểm này, các tác giả đã đề nghị cách thức
mô hình hóa chuỗi thời gian thông qua vector Chính vì vậy, tài liệu đã tập trung vào việc trình bày cách thức để mô hình dữ liệu dựa trên vector, những đặc điểm chính của mô hình này, các khái niệm (concept) cũng như các luật Ngoài ra, trong tài liệu này tác giả cũng giới thiệu qua về ngôn ngữ truy vấn hướng thời gian (Temporal Query Language) và những tác vụ đặc biệt trên cơ sở dữ liệu chuỗi thời gian Đóng góp chính của tài liệu này là
ở việc nêu lên được cách thức mô hình hóa dữ liệu chuỗi thời gian thông qua mô hình vector
Trong tài liệu [5], Ramez Elmasri và Jae Young Lee trình bày một số đặc điểm quan trọng của dữ liệu chuỗi thời gian, đặc biệt là lịch (Calendar) Ngoài ra, tác giả cũng
mô tả khá rõ nét cách thức xây dựng mô hình dữ liệu thời gian tích hợp (Integrated Temporal Data Model) là một mô hình dữ liệu trực quan dùng để biểu diễn chuỗi thời gian
Trang 22Hơn nữa trong tài liệu này tác giả cũng nêu ra hai phương pháp ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ, cơ sở dữ liệu hướng đối tượng Tài liệu này khá hữu ích, đặc biệt là mô hình dữ liệu thời gian tích hợp rất trực quan
Trong tài liệu [20], Gene T J Wuu và Umeshwar Dayal đã trình bày mô hình dữ liệu OODAPLEX dùng cho quản lý dữ liệu chuỗi thời gian Đây là mô hình dữ liệu hướng đối tượng dựa trên mô hình dữ liệu chức năng DAPLEX Ngoài ra, tài liệu cũng mô tả cách thức truy vấn trên mô hình OODAPLEX Mô hình OODAPLEX cũng chỉ là mô hình dữ liệu hướng đối tượng dùng cho việc quản lý chuỗi thời gian
2.4.2 Các công trình đi sâu vào các phương pháp ánh xạ chuỗi thời gian
Nội dung chính của các công trình này là việc tập trung nghiên cứu những cách thức ánh xạ dữ liệu chuỗi thời gian vào các mô hình hiện thực Có rất nhiều hướng tiếp cận nhưng nhiều nhất vẫn là phương pháp ánh xạ chuỗi thời gian vào mô hình cơ sở dữ liệu quan hệ
Như đã nói ở phần trên, trong tài liệu [15] Arie Segev và Arie Shoshani ngoài việc trình bày chi tiết những đặc điểm của dữ liệu chuỗi thời gian, các thao tác trên dữ liệu chuỗi thời gian Tác giả còn trình bày rất chi tiết cách thức thể hiện dữ liệu chuỗi thời gian trên môi trường cơ sở dữ liệu quan hệ Đây là một trong những hướng tiếp cận kinh điển đã được nhiều nhà khoa học đào xới nghiên cứu
Ở tài liệu [2], trước tiên Werner Dreyer, Angelika Kotz Dittrich và Duri Schmidt nêu lên một ứng dụng tiêu biểu của chuỗi thời gian đó là chuỗi thời gian về thị trường chứng khoán Zurich Thông qua đó các tác giả tiến hành mô hình hóa chuỗi thời gian này theo mô hình dữ liệu hướng đối tượng Rõ ràng, dữ liệu chuỗi thời gian được xây dựng trong mô hình dữ liệu hướng đối tượng là rất trong sáng Việc quản lý những thao tác dữ liệu trên mô hình này cũng hết sức dễ dàng
Như trình bày ở trên, trong tài liệu [5], Ramez Elmasri và Jae Young Lee ngoài việc mô tả những đặc tính cơ bản của chuỗi thời gian, mô hình dữ liệu thời gian tích hợp Tác giả còn miêu tả khá rõ ràng hai phương pháp ánh xạ chuỗi thời gian vào cơ sở dữ liệu quan hệ và cơ sở dữ liệu hướng đối tượng Luận văn sẽ dựa vào nội dung của tài liệu này
Trang 23yêu cầu đồng bộ hóa… Tài liệu cũng nêu ra ví dụ về chuỗi thời gian HIKU được công ty Swiss company Telekurs lưu trữ Cuối cùng tài liệu nêu ra các hướng để giải quyết yêu cầu
về quản lý chuỗi thời gian gồm: quản lý chuỗi thời gian bằng file, hệ quản trị cơ sở dữ liệu quan hệ, hệ quản trị cơ sở dữ liệu hướng đối tượng hay hệ quản trị chuỗi thời gian chuyên biệt Tài liệu này cho thấy có những cách khác nhau để quản lý dữ liệu chuỗi thời gian Trong đó, cần thiết phải xây dựng một hệ quản trị chuỗi thời gian chuyên biệt
Trong tài liệu [1] của Rakesh Chadra và Arie Segev đề xuất việc quản lý dữ liệu chuỗi thời gian trên cơ sở dữ liệu mở rộng (Extensible Database) Cơ sở dữ liệu mở rộng được cung cấp các khả năng như: thêm vào một số kiểu dữ liệu phức tạp từ các kiểu dữ liệu cơ bản, có khả năng định nghĩa các tác vụ mới trên kiểu dữ liệu phức tạp này, … Cách tiếp cận của tài liệu này chính là việc mở rộng một số khả năng cho cơ sở dữ liệu hiện tại thay gì phải xây dựng một cơ sở dữ liệu mới
2.4.3 Các công trình thiên về những ứng dụng của chuỗi thời gian
Phần này sẽ điểm qua một số công trình tập trung vào việc ứng dụng chuỗi thời gian vào trong thực tiễn Đồng thời cũng trình bày một số hệ quản trị dữ liệu chuyên dùng cho việc quản lý chuỗi thời gian
Tài liệu [2] của tác giả Werner Dreyer, Angelika Kotz Dittrich và Duri Schmidt phân tích khá sâu ứng dụng chuỗi thời gian tiêu biểu Đó là chuỗi thời gian về thị trường chứng khoán Zurich Tác giả cũng mô tả một số những đặc điểm nổi bật của chuỗi thời gian này
Trong tài liệu [1] của Rakesh Chandra và Arie Segev cũng có trình bày những ứng dụng thương mại cũng như những ứng dụng tài chính có sử dụng chuỗi thời gian Qua tài liệu này cũng thấy khả năng ứng dụng rộng rãi của dữ liệu chuỗi thời gian
Trong tài liệu [4], Werner Dreyer, Angelika Kotz Dittrich và Duri Schmidt có trình bày một ví dụ về dữ liệu chuỗi thời gian HIKU của công ty Swiss company Telekurs Nó chứa đựng 10000 chuỗi thời gian của thế giới tài chính Hệ thống hoạt động từ năm 1986 đến năm 1992 Kích thước chuỗi thời gian này lện đến 4GB Qua ví dụ này càng thấy rõ hơn độ phức tạp của dữ liệu chuỗi thời gian
Mỗi một loại dữ liệu chuỗi thời gian ứng dụng vào những lĩnh vực khác nhau đều ít nhiều có sự khác biệt Trong tài liệu [18], Arie Shoshani, Preston Holland, Janet Jacobsen,
và Debasis Mitra tập trung vào việc phân tích những đặc điểm của dữ liệu chuỗi thời gian trong một lĩnh vực khá cụ thể, đó là những cơ sở dữ liệu về địa vật lý Tài liệu đã trình bày
Trang 24những đặc điểm về thời gian, những tác vụ trên chiều thời gian Tài liệu cũng nêu ra một thí nghiệm cụ thể của ngành địa vật lý dùng để minh họa Đọc tài liệu này, chúng ta thấy được những ứng dụng rộng rãi của dữ liệu chuỗi thời gian trong ngành địa vật lý
Ở tài liệu [14], Duri Schmidt, Angelika Kozt Dittrich và Werner Dreyer đã nêu ra một số yêu cầu chính của việc thiết kế hệ quản trị chuỗi thời gian (Time Series Management System) Tài liệu cũng đã trình bày một số điểm yếu của cơ sở dữ liệu hướng thời gian trong việc quản lý các ứng dụng chuỗi thời gian Qua đó, thấy được những nhu cầu cần thiết phải xây dựng các hệ quản trị chuỗi thời gian Sau cùng, tài liệu cũng mô tả một số DBMS đã tồn tài dùng cho việc quản lý chuỗi thời gian Trong đó, 2 DBMS là bảng thương mại còn 2 DBMS mới chỉ là bảng prototype
TSMS được đại học Berkeley phát triển đây là bảng prototype dùng cho việc quản
lý chuỗi thời gian DBMS này sử dụng kỹ thuật mở rộng quan hệ (Extended Relational Technology)
Illustra TimeSeries DataBlade cũng là DBMS dùng kỹ thuật mở rộng các hệ quản trị cơ sở dữ liệu quan hệ trong việc quản lý chuỗi thời gian
FAME là một hệ thống thương mại do FAME Software Corporation xây dựng FAME sử dụng các đối tượng dữ liệu để quản lý các chuỗi thời gian
CALANDA là một hệ quản trị chuỗi thời gian sử dụng theo mô hình hướng đối tượng CALANDA được Union Bank of Switzerland phát triển
Theo các tác giả đánh giá thì nhu cầu về một hệ quản trị cơ sở dữ liệu chuyên về việc quản lý chuỗi thời gian là hết sức cần thiết Do đó, cần phải đầu tư nhiều hơn nữa cho vấn đề này
Trong tài liệu [3], [13], Werner Dreney, Angelika Kotz Dittrich và Duri Schmidt lại tiếp tục mô tả sâu hơn vào hệ quản trị chuỗi thời gian CALANDA Hệ quản trị chuỗi thời gian CALANDA này sử dụng giao diện trực quan GUI Đồng thời việc quản lý dữ liệu trong CALANDA sử dụng kỹ thuật mô hình chuỗi thời gian theo mô hình hướng đối tượng Hai tài liệu này là những hướng dẫn hữu ích trong việc sử dụng hệ quản trị chuỗi thời gian CALANDA
Những công trình nghiên cứu này đã đi từ những vấn đề tổng quan của cơ sở dữ liệu hướng thời gian đến việc tập trung vào dữ liệu chuỗi thời gian – là một mảng rất quan trọng trong các nghiên cứu thuộc lĩnh vực cơ sở dữ liệu hướng thời gian Từ việc phân tích những đặc điểm tổng quan của dữ liệu chuỗi thời gian đến việc ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ hay cơ sở dữ liệu hướng đối tượng Một số tác giả cũng đi sâu vào việc giới thiệu các hệ quản trị dữ liệu chuỗi thời gian Ngoài ra, cũng có những tài liệu đề cập đến dữ liệu chuỗi thời gian trong một vài lĩnh vực cụ thể, qua đó cũng thấy được tầm ứng dụng rộng lớn của dữ liệu chuỗi thời gian
Trang 25Tuy thế, vẫn còn rất thiếu những bài báo, tài liệu nói về việc ánh xạ dữ liệu chuỗi thời gian vào trong mô hình dữ liệu quan hệ - đối tượng Đây sẽ là phần công việc chính cần phải được giải quyết trong luận văn này
Như vậy, luận văn đã điểm qua một số những khái niệm liên quan đến cơ sở dữ liệu hướng thời gian cũng như dữ liệu chuỗi thời gian Bên cạnh đó, cũng đã xem xét những thành phần của mô hình dữ liệu thời gian tích hợp Đồng thời có được một cái nhìn tổng quan về những công trình nghiên cứu trên thế giới liên quan đến đề tài Qua đó, cũng xác định được mục tiêu chính yếu của luận văn chính là tìm ra phương pháp ánh xạ hiệu quả
dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng Để đi dần vào mục tiêu này, chương kế tiếp sẽ lần lượt trình bày các phương pháp ánh xạ dữ liệu chuỗi thời gian vào những mô hình dữ liệu thông dụng hiện nay
Trang 26mô hình dữ liệu quan hệ - đối tượng
Relational Databases)
Phương pháp ánh xạ chuỗi thời gian vào mô hình dữ liệu quan hệ được Ramez Elmasri và Jae Young Lee trình bày khá đầy đủ trong tài liệu [5] Theo cách tiếp cận này, một quan hệ sẽ được tạo ra cho mỗi thuộc tính chuỗi thời gian Chi tiết thực hiện như sau:
1 Tạo một quan hệ R cho một thực thể chuỗi thời gian E R chỉ chứa những thuộc tính không biến đổi theo thời gian của E (Hình 3.1)
Trong hình 3.1, thực thể chuỗi thời gian Stock sẽ được chuyển thành một quan hệ Stock bao gồm thuộc tính không biến đổi theo thời gian Issuer
Hình 3.1: Ánh xạ thuộc tính không biến đổi theo thời gian vào DBMS quan hệ
2 Tạo ra một quan hệ cho mỗi thuộc tính chuỗi thời gian đơn giản Những thuộc tính của một quan hệ mới này là: (Hình 3.2)
Stock
Issuer IBM
TI
Trang 27• Khóa chính của thực thể chuỗi thời gian, nó sẽ là một khóa ngoại
• Giá trị thời gian của thuộc tính chuỗi thời gian
• Giá trị dữ liệu của thuộc tính chuỗi thời gian
Hình 3.2 cho thấy: từ một thuộc tính chuỗi thời gian Dividend ta có thể ánh xạ vào DBMS quan hệ hình thành nên một quan hệ Dividend bao gồm khóa ngoại Issuer (là khóa chính của thực thể chuỗi thời gian Stock), giá trị thời gian Time (tương ứng với lịch Quarters), cuối cùng là giá trị dữ liệu Value
Hình 3.2: Ánh xạ thuộc tính chuỗi thời gian đơn giản vào DBMS quan hệ
3 Nếu như thuộc tính chuỗi thời gian là phức hợp, một quan hệ sẽ được tạo ra cho mỗi thuộc tính thành phần Những thuộc tính của những quan hệ mới này được tạo ra tương tự như thuộc tính chuỗi thời gian đơn giản như bước 2 (Hình 3.3)
Hình 3.3 cho thấy, thuộc tính chuỗi thời gian phức hợp Price sẽ được ánh xạ vào DBMS quan hệ bằng cách tạo 3 quan hệ High, Low, Ticks tương ứng với các thuộc tính thành phần High, Low, Ticks Với:
Quan hệ High sẽ gồm: khóa ngoại Issuer, giá trị thời gian Time, giá trị dữ liệu High
Quan hệ Low gồm: khóa ngoại Issuer, giá trị thời gian Time, giá trị dữ liệu Low Quan hệ Ticks sẽ bao gồm: khóa ngoại Issuer, giá trị thời gian Time, giá trị dữ liệu Tick
Giá trị thời gian của High và Low sẽ dựa trên lịch BusinessWeek
Trong khi giá trị thời gian của Ticks sẽ dựa vào lịch WorkHours
Stock
Dividend
Issuer IBM IBM IBM IBM
Time 3/31/96 6/30/96 9/30/96 12/31/96
Trang 28Hình 3.3: Ánh xạ thuộc tính chuỗi thời gian phức hợp vào DBMS quan hệ
4 Ánh xạ những thuộc tính biến đổi theo thời gian cũng giống như cách ánh xạ những thuộc tính chuỗi thời gian (Hình 3.4) Một quan hệ mới được tạo ra cho mỗi thuộc tính biến đổi theo thời gian, và những thuộc tính của quan hệ mới này là:
• Khóa chính của thực thể chuỗi thời gian sẽ là một khóa ngoại
• Thời gian hợp lệ (Valid Time) của thuộc tính này
• Giá trị dữ liệu của thuộc tính này
Ưu điểm của phương pháp này là đơn giản, dễ áp dụng, phù hợp với những người
đã quen thuộc với những bảng quan hệ của cơ sở dữ liệu quan hệ Tuy nhiên, nhược điểm của phương pháp này lại chính là việc tạo ra quá nhiều bảng trong cơ sở dữ liệu Việc này đôi khi sẽ dẫn đến sự lầm lẫn, rối rắm khi sử dụng cơ sở dữ liệu Mặt khác, người dùng sẽ gặp nhiều khó khăn trong việc truy vấn các cơ sở dữ liệu quan hệ dạng này theo chiều thời gian
Hình 3.4 cho thấy, thuộc tính biến đổi theo thời gian Shares sẽ được ánh xạ vào DBMS quan hệ bằng cách tạo ra một quan hệ mới Shares Quan hệ này gồm có khóa ngoại
Time
3/6/97 3/7/97 3/10/97 3/11/97
Time
3/6/97 09:00 3/7/97 10:00 3/10/97 11:00 3/11/97 13:00
Trang 29Issuer (là khóa chính của thực thể chuỗi thời gian Stock), thời gian hợp lệ Valid_Time của thuộc tính này, và giá trị dữ liệu Value của thuộc tính Shares này
Hình 3.4: Ánh xạ thuộc tính biến đổi theo thời gian vào DBMS quan hệ
Bảng 3.1 dưới đây là kết quả của quá trình áp dụng phương pháp ánh xạ từ mô hình
dữ liệu thời gian tích hợp ở hình 2.6 vào cơ sở dữ liệu quan hệ Các bước thực hiện đượd
mô tả ở những hình 3.1, hình 3.2, hình 3.3, hình 3.4
IBM 9/10/96 – 1/27/97 1200 IBM 9/30/96 250
IBM 12/31/96 280
Issuer Time High
Value
Issuer Time Low
Value
IBM 3/6/97 130 IBM 3/6/97 85 IBM 3/6/97 09:00 90 IBM 3/7/97 125 IBM 3/7/97 81 IBM 3/6/97 10:00 105 IBM 3/10/97 132 IBM 3/10/97 125 IBM 3/6/97 11:00 123 IBM 3/11/97 134 IBM 3/11/97 122 IBM 3/6/97 13:00 130
Bảng 3.1: Kết quả ánh xạ vào cơ sở dữ liệu quan hệ
SHARES Issuer IBM IBM IBM
Valid_Time 1/1/96 – 3/5/96 3/6/96 – 9/9/96 9/10/96 – 1/27/97
Trang 303.2 ÁNH XẠ VÀO CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG (Mapping to Object – Oriented Databases)
Phương pháp ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu hướng đối tượng cũng đã được Ramez Elmasri và Jae Young Lee mô tả trong tài liệu [5] Ý tưởng chính ở đây, là tạo ra một định nghĩa lớp cho mỗi thuộc tính chuỗi thời gian Sau đó, một thực thể chuỗi thời gian sẽ được ánh xạ thành một định nghĩa lớp nắm giữ tất cả các thuộc tính chuỗi thời gian, những thuộc tính này chính là những tham chiếu đến những lớp chuỗi thời gian vừa được tạo ra Quá trình ánh xạ này được tóm tắt theo các bước như sau:
1 Một lớp Calendar được định nghĩa cho một lịch tương ứng Những thuộc tính của lớp Calendar này gồm có granularity, pattern, period, start time, và end time (Hình 3.5)
Hình 3.5 cho thấy một lớp lịch Calendar gồm các thuộc tính độ mịn granularity, mẫu pattern, chu kỳ period, thời điểm bắt đầu start_time, thời điểm kết thúc end_time
Hình 3.5: Định nghĩa lớp Calendar
2 Thuộc tính chuỗi thời gian sẽ được định nghĩa bằng một lớp có thứ bậc (Hình 3.6) Trong lớp có thứ bậc này, thuộc tính chuỗi thời gian được xem như là những lớp con nếu cần thiết Bên trong mỗi định nghĩa lớp, những tác vụ của ứng dụng và những tác vụ cập nhật hay rút trích dữ liệu được định nghĩa như
là những phương thức (Method) Một số tác vụ thường gặp là:
• Những hàm tính toán sum, average, minimum, hoặc maximum của những giá trị dữ liệu trên một chu kỳ thời gian được cho
• Những tác vụ trả về một hoặc nhiều giá trị dữ liệu trên một điểm hoặc một khoảng thời gian cho trước
• Những tác vụ làm biến đổi giá trị dữ liệu
class Calendar
type tuple ( granularity: granularity_type,
pattern: pattern_type, period: period_type, start_time: time_unit, end_time: time_unit );
method … end
Trang 31• Các hàm trả về thuộc tính của lịch tương ứng (ví dụ như granularity, period…)
3 Mỗi định nghĩa lớp chuỗi thời gian bao gồm một biến calendar có loại là lớp Calendar (thiết lập này là sự gắn kết giữa một đối tượng chuỗi thời gian với một đối tượng Calendar) Thêm vào đó, định nghĩa lớp này cũng có thêm một thuộc tính giá trị (Value) chính là một chuỗi giá trị dữ liệu mà mỗi giá trị dữ liệu được lấy mẫu tương ứng với biến calendar trên (Hình 3.6)
Trong hình 3.6, lớp Ticks được hình thành từ thuộc tính chuỗi thời gian Ticks gồm
có biến WorkHours tương ứng với lịch WorkHours và một list chứa giá trị dữ liệu của thuộc tính chuỗi thời gian này Tương tự, thuộc tính chuỗi thời gian Dividend cũng hình thành nên lớp Dividend tương ứng gồm có lịch Quarters và một list chứa giá trị dữ liệu Trong khi đó thuộc tính chuỗi thời gian phức hợp Price hình thành nên lớp Price Lớp Price này gồm có lịch BusinessWeek và đặc biệt là một list là một danh sách những bộ giá trị gồm các biến high, low và ticks (tham chiếu đến lớp Ticks đã tạo)
Hình 3.6: Định nghĩa lớp chuỗi thời gian Ticks, Price, và Dividend
class Ticks type tuple ( WorkHours: Calendar,
value: list ( tick: integer ));
method … end
class Price type tuple ( BusinessWeek: Calendar,
value: list (DailyValue: tuple (high: integer,
low: integer, ticks: Ticks )));
method … end
class Dividend type tuple ( Quarters: Calendar,
value: list ( dividend: integer ));
method … end
Trang 324 Một thực thể chuỗi thời gian E trong mô hình tích hợp được ánh xạ thành một định nghĩa lớp Tất cả những thuộc tính chuỗi thời gian trong E sẽ được duy trì tương ứng là những thuộc tính trong định nghĩa lớp Giá trị của mỗi thuộc tính này sẽ là tham chiếu đến lớp chuỗi thời gian được tạo ra tương ứng ở trên (Hình 3.7)
Hình 3.7 ta thấy, lớp Stock được hình thành từ thực thể chuỗi thời gian Stock Lớp này gồm có những tham chiếu đến những lớp Company, Dividend, Price đã được định nghĩa trước đó Trong đó, lớp Company sẽ mô tả công ty phát hành cổ phiếu tương ứng với thuộc tính không biến đổi theo thời gian Issuer Còn những lớp Dividend, Price sẽ tương ứng với thuộc tính chuỗi thời gian Dividend, Price Ngoài ra, thuộc tính biến đổi theo thời gian Shares sẽ tạo ra một list là danh sách những bộ hai giá trị: thời gian hợp lệ ValidTime
và giá trị dữ liệu num_stock
Hình 3.7: Định nghĩa lớp thực thể chuỗi thời gian Stock
5 Nếu một thuộc tính chuỗi thời gian là thuộc tính phức hợp và một trong những thuộc tính thành phần của nó cũng là thuộc tính chuỗi thời gian, thì nó được thực hiện như cách đã được mô tả ở những bước trên (Hình 3.8)
Ưu điểm của phương pháp này chính là các đối tượng được tạo ra trong cơ sở dữ liệu rất rõ ràng, trong sáng, việc truy vấn dữ liệu theo chiều thời gian được thực hiện dễ dàng thông qua các phương thức của đối tượng Tuy nhiên, việc người dùng phải tự viết, tự lựa chọn các phương thức để truy vấn là một nhược điểm của phương pháp này
Hình 3.8 cho thấy kết quả của việc ánh xạ thuộc tính chuỗi thời gian phức hợp Price vào DBMS hướng đối tượng Hình thành nên lớp Price gồm có: lịch BusinessWeek tham chiếu đến lớp Calendar đã được định nghĩa và một list là một danh sách những bộ 3 giá trị high, low và ticks Trong đó, thuộc tính thành phần Ticks là một thuộc tính chuỗi thời gian sẽ được thể hiện như là một biến ticks tham chiếu đến lớp Ticks được định nghĩa trước
class Stock type tuple ( issuer: Company,
share: list (share: tuple (vt: ValidTime,
num_stock: integer)), dividend: Dividend,
price: Price);
method … end
Trang 33Hình 3.8: Định nghĩa lớp cho thuộc tính chuỗi thời gian phức hợp Price
Hình 3.9 là kết quả của việc ánh xạ mô hình ITDM ở hình 2.6 vào hệ quản trị cơ
sở dữ liệu hướng đối tượng theo phương pháp này Chi tiết quá trình thực hiện được thể hiện ở hình 3.5, hình 3.6, hình 3.7, hình 3.8
3.3 ÁNH XẠ VÀO CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI
TƯỢNG (Mapping to Object – Relational Databases)
Luận văn vừa trình bày hai phương pháp ánh xạ dữ liệu chuỗi thời gian vào cơ sở
dữ liệu quan hệ và cơ sở dữ liệu hướng đối tượng do Ramez Elmasri và Jae Young Lee đề xuất Mỗi phương pháp có những ưu khuyết điểm riêng Dựa vào hai phương pháp ánh xạ này, luận văn sẽ đề xuất một phương pháp mới: phương pháp ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ - đối tượng Nhưng tại sao lại chọn mô hình dữ liệu quan hệ
- đối tượng? Đó là vì cơ sở dữ liệu quan hệ - đối tượng đã kết hợp được những ưu điểm của
cả hai mô hình dữ liệu quan hệ và hướng đối tượng Sau đây là nội dung chi tiết:
3.3.1 Lý do sử dụng cơ sở dữ liệu quan hệ - đối tượng
Các ứng dụng chuỗi thời gian trong luận văn này sẽ được xây dựng trên hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Oracle Tại sao lại chọn hệ quản trị cơ sở dữ liệu quan
hệ - đối tượng mà không chọn hệ quản trị cơ sở dữ liệu quan hệ hay hệ quản trị cơ sở dữ liệu hướng đối tượng? Đó là do những nguyên nhân đã được Fred R McFadden, Jeffrey A Hoffer, và Marry B Prescott trình bày trong cuốn sách [11], cũng như Steve McClure chỉ
ra trong tài liệu [10] như sau:
1 Mô hình dữ liệu quan hệ không thích hợp cho việc quản lý những dữ liệu phức tạp như hình ảnh, âm thanh, video…
class Price type tuple ( BusinessWeek: Calendar,
value: list (DailyValue: tuple (high: integer,
low: integer, ticks: Ticks )));
method … end
Trang 34Hình 3.9: Định nghĩa những class trong cơ sở dữ liệu hướng đối tượng
(* class definition of Calendar *)
class Calendar
type tuple (granularity: granularity_type,
pattern: pattern_type, period: period_type, start_time: time_unit, end_time: time_unit);
method …
end
(* class definition of time series Ticks, Price, and Dividend *)
class Ticks
type tuple (WorkHours: Calendar,
value: list (tick: interger));
method …
end
class Price
type tuple (BusinessWeek: Calendar,
value: list (DailyValue: tuple ( high: integer,
low: integer, ticks: Ticks)));
method …
end
class Dividend
type tuple (Quarters: Calendar,
value: list (dividend: integer));
method …
end
(* class definition of the entity type Stock *)
class Stock
type tuple (issuer: Company, (* assume class Company exists *)
share: list (share: tuple (vt: ValidTime,
num_stock: integer)), dividend: Dividend,
price: Price);
method …
end
Trang 352 Việc ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ cũng khá khó khăn và phức tạp Thể hiện qua việc tạo ra quá nhiều bảng (Table) rối rắm đối với người dùng
3 Điểm yếu của cơ sở dữ liệu hướng đối tượng chính là sự thiếu hụt những đặc tính quan trọng được tìm thấy trong cơ sở dữ liệu quan hệ như khả năng mở rộng câu truy vấn, sao lưu (Backup) và phục hồi (Recovery) dữ liệu trực tuyến, và điều khiển đồng thời một cách linh hoạt
4 Trong khi đó cơ sở dữ liệu quan hệ - đối tượng là sự kết hợp giữa cơ sở dữ liệu quan hệ và cơ sở dữ liệu hướng đối tượng, cho nên nó khắc phục được những hạn chế của cơ sở dữ liệu quan hệ cũng như của cơ sở dữ liệu hướng đối tượng Đồng thời lại kết hợp được những ưu điểm của cả hai mô hình này
5 Việc ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ - đối tượng khá giống với việc ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu hướng đối tượng Cách ánh xạ này khá đơn giản và rõ ràng
6 Thị phần của các hệ quản trị cơ sở dữ liệu quan hệ - đối tượng ngày càng mở rộng do việc kế thừa thị phần của các hệ quản trị cơ sở dữ liệu quan hệ (là những hệ quản trị chiếm ưu thế trên thị trường) Bảng 3.2 cho thấy thị trường
về các hệ quản trị cơ sở dữ liệu phong phú như thế nào Đặc biệt là sự khẳng định của những hệ quản trị cơ sở dữ liệu quan hệ - đối tượng
Tên sản phẩm Công ty sản xuất
Bảng 3.2: Một số hệ quản trị cơ sở dữ liệu thông dụng
Trang 367 Những đặc điểm cơ bản của cơ sở dữ liệu quan hệ - đối tượng cung cấp những
hỗ trợ sau:
• Khả năng mở rộng của những loại dữ liệu mới do người dùng định nghĩa
• Những đối tượng phức tạp
• Tính kế thừa
• Những sự gọi hàm (Procedure), các luật (Rule), hoặc các trigger
• Các định danh được hệ thống sinh ra (System-generated identifier) hay OID surrogates
• Những đặc điểm mới được thêm vào trong mô hình quan hệ trong khi vẫn duy trì những ưu điểm của mô hình quan hệ
8 Điểm qua một số những nghiên cứu trong tài liệu [12] của Johanna Wenney Rahayu và David Taniar, [9] của E Marcos, B Vela và J M Cavero, [19] của Steffen Skatulla và Stefan Dorendorf, [17] của Praveen Seshadri để thấy được
sự phát triển của cơ sở dữ liệu quan hệ - đối tượng đã được các nhà khoa học tập trung nghiên cứu như thế nào Có thể nói cơ sở dữ liệu quan hệ - hướng đối tượng đã nhận được sự quan tâm rất lớn trong thời gian gần đây
9 Ngày nay, có rất nhiều hãng cung cấp hệ quản trị cơ sở dữ liệu quan hệ - đối tượng Trong đó Oracle từ 8.x trở lên đã hỗ trợ mô hình quan hệ - đối tượng Oracle là một hệ quản trị cơ sở dữ liệu rất mạnh và nổi tiếng trên thế giới Việc xây dựng ứng dụng trên Oracle có thể hoàn toàn tin tưởng vào độ bảo mật cao cũng như những hỗ trợ kỹ thuật khá đầy đủ
Do những ưu điểm của cơ sở dữ liệu quan hệ - đối tượng đã được trình bày ở trên, luận văn sẽ tập trung phát triển những ứng dụng trên môi trường cơ sở dữ liệu quan hệ - đối tượng Đặc biệt, luận văn sẽ tập trung phát triển những ứng dụng trên hệ quản trị cơ sở
dữ liệu quan hệ - đối tượng Oracle Tiếp theo chi tiết của phương pháp ánh xạ dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng sẽ được trình bày
3.3.2 Ánh xạ vào cơ sở dữ liệu quan hệ - đối tượng (Mapping to Object - Relational Databases)
Dữ liệu chuỗi thời gian có một tầm quan trọng nhất định Đồng thời, việc xây dựng những ứng dụng trên hệ quản trị cơ sở dữ liệu quan hệ - đối tượng có rất nhiều thuận lợi Vậy làm cách nào để ánh xạ những dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng? Luận văn sẽ kết hợp hai phương pháp ánh xạ chuỗi thời gian vừa được trình bày ở những phần trên để hình thành nên hai cách thức ánh xạ hiệu quả dữ liệu chuỗi thời gian vào mô hình dữ liệu quan hệ - đối tượng
Trang 37Phương pháp ánh xạ này là sự kết hợp của hai phương pháp ánh xạ dữ liệu chuỗi thời gian vào cơ sở dữ liệu quan hệ và cơ sở dữ liệu hướng đối tượng Đối với những thuộc tính không biến đổi theo thời gian cũng như những thuộc tính biến đổi theo thời gian chúng
ta sẽ áp dụng phương pháp ánh xạ vào cơ sở dữ liệu quan hệ để tạo ra các bảng quan hệ cho những thuộc tính này Trong khi đó, thuộc tính chuỗi thời gian sẽ sử dụng phương pháp ánh xạ vào cơ sở dữ liệu hướng đối tượng để tạo ra những định nghĩa lớp tương ứng Sau đây là các bước chi tiết:
1 Một lớp Calendar được định nghĩa cho một lịch tương ứng Những thuộc tính của lớp Calendar này gồm có granularity, pattern, period, start time, và end time (Hình 3.10)
Hình 3.10 cho thấy một lớp lịch Calendar gồm các thuộc tính độ mịn granularity, mẫu pattern, chu kỳ period, thời điểm bắt đầu start_time, thời điểm kết thúc end_time
Hình 3.10: Định nghĩa lớp Calendar
2 Chuỗi thời gian đơn giản sẽ được định nghĩa bằng một lớp (Hình 3.11) Bên trong mỗi định nghĩa lớp này, những tác vụ của ứng dụng và những tác vụ cập nhật hay rút trích dữ liệu được định nghĩa như là những phương thức (Method) Một số tác vụ thường gặp là:
• Những hàm tính toán sum, average, minimum, hoặc maximum của những giá trị dữ liệu trên một chu kỳ thời gian được cho
• Những tác vụ trả về một hoặc nhiều giá trị dữ liệu trên một điểm hoặc một khoảng thời gian cho trước
• Những tác vụ làm biến đổi giá trị dữ liệu
• Các hàm trả về thuộc tính của lịch tương ứng (ví dụ như granularity, period…)
3 Mỗi định nghĩa lớp chuỗi thời gian bao gồm một biến calendar có loại là lớp Calendar (thiết lập này là sự gắn kết giữa một đối tượng chuỗi thời gian với một đối tượng Calendar) Thêm vào đó, định nghĩa lớp này cũng có thêm một
class Calendar
type tuple ( granularity: granularity_type,
pattern: pattern_type, period: period_type, start_time: time_unit, end_time: time_unit );
method … end
Trang 38thuộc tính giá trị (Value) chính là một chuỗi giá trị dữ liệu mà mỗi giá trị dữ liệu được lấy mẫu tương ứng với biến calendar trên (Hình 3.11)
Trong hình 3.11, lớp Dividend được hình thành từ thuộc tính chuỗi thời gian Dividend gồm có biến Quarters tham chiếu đến lớp lịch Calendar và một list chứa giá trị
dữ liệu của thuộc tính chuỗi thời gian này
Hình 3.11: Ánh xạ chuỗi thời gian đơn giản Dividend
4 Nếu thuộc tính chuỗi thời gian là thuộc tính phức hợp và một trong những thuộc tính thành phần của nó cũng là thuộc tính chuỗi thời gian thì có hai cách ánh xạ vào cơ sở dữ liệu quan hệ - đối tượng như sau:
Ø Cách 1: Thuộc tính chuỗi thời gian này sẽ được định nghĩa bằng một lớp có thứ bậc Trong lớp có thứ bậc này, thuộc tính chuỗi thời gian được xem như là những lớp con nếu cần thiết (Hình 3.12)
Ø Cách 2: Một quan hệ sẽ được tạo ra (Hình 3.13) Những thuộc tính của quan
hệ mới này bao gồm:
§ Khóa chính của thực thể chuỗi thời gian, nó sẽ là một khóa ngoại
§ Giá trị thời gian của thuộc tính chuỗi thời gian phức hợp
§ Những giá trị dữ liệu của thuộc tính chuỗi thời gian phức hợp
§ Thuộc tính chuỗi thời gian sẽ được xem như một lớp con nếu cần thiết
5 Tạo một quan hệ R cho một thực thể chuỗi thời gian E R chỉ chứa những thuộc tính không biến đổi theo thời gian của E và những tham chiếu chỉ đến những đối tượng chuỗi thời gian của E (Hình 3.14)
6 Đối với những thuộc tính biến đổi theo thời gian, một quan hệ mới được tạo ra cho mỗi thuộc tính biến đổi theo thời gian (Hình 3.15), và những thuộc tính của quan hệ mới này là:
§ Khóa chính của thực thể chuỗi thời gian sẽ là một khóa ngoại
§ Thời gian hợp lệ (Valid Time) của thuộc tính này
§ Giá trị dữ liệu của thuộc tính này
class Dividend type tuple ( Quarters: Calendar,
value: list ( dividend: integer ));
method … end
Dividend
Quarters
Trang 39Hai cách vừa trình bày có những bước thực hiện khá giống nhau Chúng chỉ khác nhau ở bước ánh xạ chuỗi thời gian phức hợp Rõ ràng nếu áp dụng cách 1 ta có thể thực hiện việc ánh xạ một cách tổng quát cho những thuộc tính chuỗi thời gian phức hợp có những thuộc tính thành phần là những chuỗi thời gian phức hợp nối tiếp nhau (Hình 3.16) Trong khi đó cách 2 chỉ áp dụng được ở mức 1 Tuy nhiên, cách 2 lại khá đơn gian, hiệu quả khi ánh xạ những chuỗi thời gian phức hợp chỉ ở mức 1
Hình 3.12 cho thấy kết quả của việc ánh xạ thuộc tính chuỗi thời gian phức hợp Price, hình thành nên lớp Price gồm có: lịch BusinessWeek tham chiếu đến lớp Calendar
đã được định nghĩa và một list là một danh sách những bộ 3 giá trị high, low và ticks Trong đó, thuộc tính thành phần Ticks là một thuộc tính chuỗi thời gian sẽ được thể hiện như là một biến ticks tham chiếu đến lớp Ticks được định nghĩa trước
Hình 3.12: Ánh xạ chuỗi thời gian kết hợp Price theo cách 1
Hình 3.13 cho thấy, thuộc tính chuỗi thời gian phức hợp Price sẽ tạo ra một quan
hệ Price gồm: khóa ngoại Issuer (là khóa chính của thực thể chuỗi thời gian Stock), giá trị thời gian Time (tương ứng với lịch BusinessWeek), giá trị dữ liệu High, Low (tương ứng với thuộc tính thành phần High, Low), biến Ticks tham chiếu đến lớp Ticks được định nghĩa trước (tương ứng với thuộc tính chuỗi thời gian thành phần Ticks)
class Price type tuple ( BusinessWeek: Calendar,
value: list (DailyValue: tuple ( high: integer,
low: integer, ticks: Ticks ))); method …
Trang 40Hình 3.13: Ánh xạ thuộc tính chuỗi thời gian phức hợp Price theo cách 2
Hình 3.14 cho thấy, quá trình ánh xạ sẽ hình thành nên một quan hệ Stock tương ứng với thức thể chuỗi thời gian Stock Quan hệ này gồm có thuộc tính không biến đổi theo thời gian Issuer, tham chiếu đến lớp Dividend tương ứng với thuộc tính chuỗi thời gian Dividend
Hình 3.14: Ánh xạ thuộc tính không biến đổi theo thời gian STOCK
Issuer IBM
TI
Dividend
Quarters
Dividend D1 D2
(Lớp Dividend đã được định nghĩa)
Price
WorkHours
Issuer IBM IBM IBM IBM
Time 3/6/97 3/7/97 3/10/97 3/11/97
(Lớp Ticks đã được định nghĩa) BusinessWeek