Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU THỜI GIAN 1. Giới thiệu về cơ sở dữ liệu thời gian thực Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp phải các đối tượng mà một số thông tin thường xuyên thay đổi theo thời gian.1: Khi mô tả thông tin về nhân viên, ngoài các trường ít (hoặc không) thay đổi như: Mã nhân viên, họ tên, số CMND,… thì cũng có một số trường có thể thay đổi như: Hệ số lương, chức vụ, phòng ban,… Hay một số ví dụ khác như giá ngoại tệ, giá bán sản phẩm. Do đó, để đảm bảo lưu trữ đc đầy đủ thông tin của những thay đổi này. Nó buộc chúng ta phải đi theo hướng nghiên cứu đó là “Cơ sở dữ liệu theo thời gian”.
Một hệ thống cần phải có khả năng xử lý các truy vấn thời gian gần như tức thời, trả về tạm thời những dữ liệu hợp lệ, và hỗ trợ cho việc lập kế hoạch ưu tiên. Việc ứng dụng cơ sở dữ liệu thời gian là một xu hướng tất yếu trong tương lai khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ ngay lập tức từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định.2: Hệ thống quản lý giá vàng trong và ngoài nước, nhà quản lý muốn xem sự chênh lệch giá vàng các ngày trong tuần qua, cụ thể về giá và thời gian. Như vậy có nghĩa là hệ thống này phải lưu trữ được các thông số thay đổi trong từng ngày của giá vàng và đưa ra được dữ liệu gọi là tạm thời đúng với yêu cầu tại thời điểm đó. Các khái niệm cơ bản về CSDL thời gian thực 1.
Hệ thời gian thực Trước hết chúng ta phải hiểu được Hệ thời gian thực là gì? Hệ thời gian thực là một trong những điểm đúng đắn của hệ thống không chỉ phụ thuộc vào 3 những kết quả logic mà còn phụ thuộc vào thời gian trên quá trình đưa ra những kết quả đó.2, cũng cùng một yêu cầu trên nhưng hôm nay hệ thống đưa ra một kết quả, hôm sau hoặc thời gian sau đó, kết quả mà hệ thống đưa ra có thể khác đi. CSDL thời gian thực Một cơ sở dữ liệu thời gian thực là một hệ thống cơ sở dữ liệu trong đó sử dụng thời gian thực để xử lý khối lượng công việc cho các bài toán đang có thay đổi liên tục về dữ liệu.4: Các hệ thống bán hàng có các sản phẩm có giá trị thay đổi liên tục như vàng, dầu mỏ, điện thoại, xe máy. hoặc các loại dữ liệu khác. Ví như xe máy, tại thời điểm hiện tại nhận một giá trị, cũng thời điểm đó, nhưng của ngày hôm sau nó lại nhận một giá trị khác.
Hệ thống phải xử lý như thế nào đó để tránh người dùng nhầm lẫn về thời gian và việc biến đổi giá cả. Cơ sở dữ liệu (CSDL) thời gian phản ánh đầy đủ, chi tiết hơn thông tin ở hiện tại và quá khứ. Yếu tố thời gian làm cho cơ sở dữ liệu (CSDL) đầy đủ về mặt “lịch sử” dữ liệu hơn, nhưng đồng thời cũng làm cho nó phức tạp hơn.5: Bệnh nhân nhập viện sẽ được đo huyết áp hàng ngày (một hoặc nhiều lần). Hệ CSDL thời gian có khả năng lưu trữ lại tất cả quá trình đo đạt cụ thể về thời gian đo, số lần và đơn vị huyết áp… cho đến khi bệnh nhân ra viện.
Sau này có khả năng bệnh nhân nhập viện lần nữa, lịch sử bệnh án của bệnh nhân vẫn được tìm thấy và có thể được tiếp tục lưu trữ thêm.3 Mô hình thực thể mối quan hệ thời gian (TimeER) [1] [2] Để giải quyết vấn đề thiết kế các CSDL thời gian từ mức khái niệm, đã có nhiều đề xuất về các mô hình ER thời gian, như các mô hình sau: TERM, RAKE, MOTAR, TEER, STEER, ERT, TER, TempEER, TempRT, TERC+ , TimeER… tuy nhiên, trong khoá luận lần này, em chỉ tập trung nghiên cứu về mô hình TimeER. 4 Mô hình TimeER là phát triển dựa vào mô hình EER (Mô hình thực thể mối liên kết mở rộng). Mô hình này cho phép hỗ trợ các loại thời gian sau: Thời gian sống (LifeSpan) của một thực thể (ký hiệu là LS) Thời gian hợp lệ (Valid Time) của một sự kiện (ký hiệu là VT) Thời gian giao tác (Transaction Time) của một thực thể hoặc một sự kiện (ký hiệu là TT) Đối với các thực thể, hệ thống chỉ có thể hỗ trợ thời gian sống (LifeSpan, ký hiệu là LS), hoặc thời gian giao tác (Transaction Time, ký hiệu là TT), hoặc cả hai loại thời gian này tức LS+TT=LT (LifeTime, ký hiệu là LT). Đối với các thuộc tính, hệ thống chỉ cho phép hỗ trợ thời gian hợp lệ (Valid Time, ký hiệu là VT), hoặc thời gian giao tác (TT) hoặc cả hai loại thời gian này tức VT+TT= BT (BiTemporal, ký hiệu là BT).
Ngoài ra, do một mối quan hệ có thể xem là một tập thực thể hoặc một thuộc tính, nhờ vậy mà người thiết kế có thể xác định các yếu tố thời gian hỗ trợ cho mối quan hệ đó nếu cần. Dưới đây là mô hình TimeER (Hình 2) được xây dựng trên mô hình ER (Hình 1) và mô hình ER* (Hình 3) biểu diễn rõ hơn cho mô hình TimeER: 5 Hình 1. Ví dụ về mô hình ER Hình 2. Ví dụ về mô hình TimeER 6 Hình 3.
Mô hình ER* mô tả rõ hơn cho mô hình TimeER 1. So sánh mô hình ER và mô hình TimeER - Giống nhau: Mô hình ER và mô hình Time ER đều là mô hình mối quan hệ thực thể ở mức khái niệm. Về mặt cấu trúc, hai mô hình này tương tự như nhau. TimeER được coi như ER mở rộng.
- Khác nhau: Thực thể: Bên phía Time ER sẽ có phát sinh thêm thực thể mới liên kết với thực thể cần hỗ trợ về mặt thời gian thực.6: Hình 3, thực thể NHÂN VIÊN phát sinh thêm quan hệ với LifeTime Thuộc tính: Cũng tương tự như thực thể, thuộc tính bên phía TimeER cũng sẽ phát sinh thêm thực thể hỗ trợ trên mối quan hệ của thuộc tính đó với thực thể chính.7: Trên hình 3, thuộc tính lương của thực thể NHÂN VIÊN cũng phát sinh BiTemporal hỗ trợ cho quan hệ của lương với thực thể NHÂN VIÊN. Mối quan hệ: Mối quan hệ trong TimeER cũng có thể phát sinh thực thể mới hỗ trợ nếu quan hệ đó được cho là cần thiết hỗ trợ thời gian thực.8: Hình 3, mối quan hệ làm việc giữa NHÂN VIÊN với DỰ ÁN phát sinh ValidTime hỗ trợ cho quan hệ làm việc. Thiết kế: Bên phía TimeER đòi hỏi độ phức tạp hơn so với ER. TimeER đòi hỏi người thiết kế phải xác định được thực thể nào, thuộc tính nào hay mối quan hệ nào cần thiết phải hỗ trợ thời gian thực.
Còn trong mô hình ER không có những phát sinh như vậy. Cách xây dựng mô hình CSDL thời gian ở mức khái niệm [2] Muốn có được mô hình CSDL thời gian ở mức khái niệm (TimeER), từ mô hình ER truyền thống, chúng ta thực hiện qua các bước như sau: Bước 1: Xác định đối tượng hỗ trợ thời gian, bao gồm: Thực thể, hay thuộc tính, hay mối quan hệ.9: Ở hình 2, các thực thể, thuộc tính hay mối quan hệ được hỗ trợ thời gian như: thực thể (NHÂN VIÊN, BỘ PHẬN), thuộc tính (Lương, Địa chỉ, lợi nhuận, ngân sách), mối quan hệ “làm việc” giữa NHÂN VIÊN với DỰ ÁN. Bước 2: Xác định loại thời gian cần hỗ trợ cho các đối tượng, lưu ý các loại thời gian phù hợp với từng đối tượng: LifeSpan, TranTime, ValidTime, LifeTran, BiTemporal.10: Hình 2 hỗ trợ các loại thời gian cho từng đối tượng như sau: ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG LOẠI THỜI GIAN HỖ TRỢ 1.NHÂN VIÊN Thực thể LifeTran 2.BỘ PHẬN Thực thể TranTime 3. Lương Thuộc tính BiTemporal 4.
Địa chỉ Thuộc tính ValidTime 5. Lợi nhuận Thuộc tính BiTemporal 6. Ngân sách Thuộc tính BiTemporal 8 7. Làm việc Mối quan hệ ValidTime Bảng 1.
Đối tượng và loại thời gian hỗ trợ Bước 3: Sử dụng thực thể thời gian tương ứng (hình 2) và mối quan hệ nhị nguyên S (1-n) để xây dựng mô hình ER* biểu diễn dữ liệu thời gian.11: từ mô hình ER truyền thống như Hình 1 ta xây dựng được mô hình TimeER như Hình 2. Cách chuyển đổi từ mô hình TimeER sang mô hình R [1] Chúng ta sẽ tìm hiểu cách chuyển đổi mô hình TimeER sang mô hình R: Bước 1: Chuyển đổi các tập thực thể không tham gia vào mối quan hệ lớp cha/lớp con Với mỗi tập thực thể E không tham gia vào mối quan hệ lớp cha/lớp con và có các thuộc tính đơn trị phi thời gian là A1, A2, …, An, ta xét hai trường hợp sau: a) Chuyển đổi tập thực thể mạnh1: Nếu E là tập thực thể mạnh có khóa ký hiệu là ID(E), thì ta tạo một quan hệ được gọi là quan hệ chính biểu diễn với tập thực thể E, ký hiệu là R(E), có tập thuộc tính là ID(E) {A1, A2, …, An}. Khóa chính của quan hệ R(E) là ID(E). b) Chuyển đổi tập thực thể yếu2: Xét E là tập thực thể yếu của mối quan hệ định danh S có tập thực thể chủ là E’.
Giả sử E có khóa bộ phận là X{A1, A2, …, An}. Khi đó, ta tạo ra một quan hệ chính R(E) có tập thuộc tính là FK {A1, A2, …, An}, với FK là khóa ngoài tham chiếu đến quan hệ R(E’). Khi đó, khóa chính của R(E) là FK X. Nhãn thời gian hỗ trợ cho thực thể và mối quan hệ 1 Thực thể có thuộc tính khoá cho chính mình 2 Thực thể không có thuộc tính khoá cho chính mình.
Không thể xác định khi k có thực thể chủ. 9 Gọi T’ T là các thuộc tính có gạch dưới trong bảng trên, khi đó khóa chính của quan hệ TR(E) là FK T’. Chuyển đổi thực thể không tham gia vào lớp cha/con Bước 2: Chuyển đổi các tập thực thể tham gia vào mối quan hệ lớp cha/lớp con Với mỗi mối quan hệ lớp cha/lớp con, trong đó lớp cha E có các lớp con là S1, S2, …, Sn, ta tạo ra quan hệ chính R(E) tương ứng với tập thực thể E để biểu diễn lớp cha E. Ngoài ra, giả sử mỗi lớp con Si có tập thuộc tính đơn trị phi thời gian riêng là Xi, thì ta tạo thêm n quan hệ được gọi là các quan hệ con, ký hiệu là SR(Si), có tập thuộc tính là FK Xi (với i = 1.n) và khóa chính là FK, ở đây FK là khóa ngoài tham chiếu đến quan hệ R(E).