Đang xử lý.....

Cơ sở dữ liệu thời gian thực - Một xu hướng mới  

Thứ Hai, 07/12/2015 7340
|

Giới thiệu

Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp các đối tượng mà một số thông tin thường xuyên thay đổi theo thời gian. Lấy ví dụ, khi mô tả thông tin về nhân viên, thì 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ó một số trường có thể thay đổi như: Hệ số lương, chức danh, chức vụ. Trong một số trường hợp, các thông tin thay đổi thường xuyên, như tỷ giá ngoại tệ, giá bán sản phẩm… Một trường hợp điển hình, đó là các gian hàng trực tuyến bán sản phẩm qua mạng bán hàng (ví dụ như amazon, ebay), khi đó giá của các sản phẩm (giá sản phẩm thì tính theo đồng USD, euro...) có sự thay đổi và tỉ giá ngoại tệ có thể thay đổi theo từng ngày hoặc từng giờ phụ thuộc cách tổ chức đó bán sản phẩm như nào để có lãi. Do đó, để đảm bảo doanh thu của các gian hàng thì cần phải xác định giá của sản phẩm từng ngày cũng như tỉ giá tương ứng, để từ đó xác định được doanh thu hoặc xem xét để điều chỉnh giá trị sản phẩm cho phù hợp.

Một số khái niệm và định nghĩa về Cơ sở dữ liệu 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 (ví dụ 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ỏ... hoặc các loại dữ liệu khác).

Điều này khác với cơ sở dữ liệu truyền thống chứa những dữ liệu bền vững, chủ yếu không bị ảnh hưởng bởi thời gian. Ví dụ, một thị trường chứng khoán thay đổi rất nhanh chóng và gần như liên tục. Các đồ thị của các thị trường khác nhau xuất hiện rất không ổn định (chúng thay đổi liên tục) và chưa có một cơ sở dữ liệu nào để theo dõi giá trị hiện tại cho tất cả các thị trường chứng khoán.

Xử lý thời gian thực có nghĩa là một giao dịch được xử lý đủ nhanh và cho kết quả phản hồi và có tác động ngay lập tức. Các cơ sở dữ liệu thời gian thực là các công cụ quản lý hữu ích cho các đối tượng như cán bộ kế toán, các ngân hàng, hệ thống pháp luật, các hồ sơ y tế, hệ thống đa phương tiện, hệ thống kiểm soát quá trình, hệ thống dự phòng thảm hoạ, và hệ thống phân tích dữ liệu khoa học.

Các ứng dụng của cơ sở dữ liệu thời gian thực có rất nhiều những tiện ích giúp cho cả người quản lý cũng như các tổ chức có thể nắm bắt kịp thời việc thay đổi dữ liệu một cách liên tục, nhanh chóng, nó giúp cho việc phân tích dự đoán được kịp thời và phản ánh các thay đổi gần như ngay lập tức. Trong phần sau của bài viết chúng ta sẽ cùng xem xét những đặc điểm cũng như sự khác biệt của các cơ sở dữ liệu thời gian thực (Real-time Database) với các cơ sở dữ liệu truyền thống.

 

Hình 1: Minh họa một cơ sở dữ liệu thời gian thực

Sự khác biệt giữa cơ sở dữ liệu truyền thống và cơ sở dữ liệu thời gian thực

Cơ sở dữ liệu thời gian thực thực chất là một cơ sở dữ liệu truyền thống có sử dụng những phần mở rộng để cung cấp thêm nhiều chức năng giúp cho các cơ sở dữ liệu này có thể đưa ra những phản hồi đáng tin cậy. Cơ sở dữ liệu thời gian thực sử dụng cơ chế hạn chế thời gian để thể hiện một phạm vi nhất định của giá trị mà các dữ liệu được coi là đúng. Phạm vi này được gọi là giá trị thời gian, một cơ sở dữ liệu thông thường không thể làm việc trong những trường hợp này vì những mâu thuẫn giữa các đối tượng trong thế giới thực và các dữ liệu mà đại diện cho chúng bị ràng buộc đối với các thay đổi ví dụ sản phẩm là vàng có thuộc tính giá trị biểu diễn bởi đồng đô la, nhưng đồng đô la lại chịu ảnh hưởng lên xuống liên tục do các yếu tố khác tác động dẫn đến giá vàng nếu muốn chính xác thì phải liên tục cập nhật theo tỷ giá của đồng đô la. Các cơ sở dữ liệu truyền thống có sử ràng buộc về dữ liệu nên khi có nhiều trường thay đổi thì cần phải tạo thêm rất nhiều bảng.

Một hệ thống có hiệu quả 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. Để nhập dữ liệu vào một bản ghi, thường là một thiết bị đầu vào theo dõi trạng thái của hệ thống và cập nhật cơ sở dữ liệu với thông tin mới để phản ánh hệ thống đó chính xác hơn.

Khi thiết kế một hệ thống cơ sở dữ liệu thời gian thực, ta nên xem xét làm thế nào để biểu điễn đúng giá trị thời gian, làm thế nào các “sự kiện” được liên kết với hệ thống thời gian thực. Ngoài ra, xem xét làm thế nào thể hiện các giá trị thuộc tính trong cơ sở dữ liệu để các xử lý giao dịch và sự toàn vẹn của dữ liệu không bị ảnh hưởng.

Khi thiết kế một hệ thống cơ sở dữ liệu thời gian thực, điều quan trọng là phải xem xét những gì hệ thống phải làm khi các mốc thời hạn (deadlines) không được đáp ứng. Ví dụ, một hệ thống kiểm soát không lưu liên tục giám sát hàng trăm máy bay và quyết định về đường bay đến cũng như xác định thứ tự mà các máy bay nên hạ cánh dựa trên các dữ liệu như nhiên liệu, độ cao, và tốc độ. Nếu bất kỳ thông tin nào được cung cấp muộn, kết quả có thể là những tai nạn đáng tiếc. Để giải quyết các vấn đề của các dữ liệu lỗi thời, các “dấu thời gian” (timestamp) có thể hỗ trợ các giao dịch bằng cách cung cấp cơ chế kiểm tra lại chính xác thời gian.

Khi thiết kế một hệ thống, một trong những điều quan trọng nữa là phải xem xét những gì hệ thống phải làm gì khi các mốc thời hạn không được đáp ứng. Ví dụ, một hệ thống kiểm soát không lưu liên tục giám sát hàng trăm máy bay và làm cho các quyết định về đường bay đến và xác định thứ tự mà máy bay nên đất đai dựa trên các dữ liệu như nhiên liệu, độ cao, và tốc độ. Nếu bất kỳ thông tin này là muộn, kết quả có thể bị tàn phá. Để giải quyết vấn đề của dữ liệu lỗi thời, các dấu thời gian có thể hỗ trợ các giao dịch bằng cách cung cấp tài liệu tham khảo thời gian rõ ràng.

Kết luận

Các cơ sở dữ liệu truyền thống vẫn tiếp tục tồn tại và phát triển tuy nhiên nó không có khả năng xử lý với các loại dữ liệu động liên tục thay đổi, vì vậy việc xây dựng các cơ sở dữ liệu theo thời gian thực là hết sức cần thiết đối với các tổ chức có các yêu cầu nghiệp vụ quản lý các loại thông tin dữ liệu liên tục thay đổi. Các cơ sở dữ liệu ngày nay xử lý dữ liệu nhanh hơn so với quá khứ, tuy nhiên khả năng xử lý kết quả một cách kịp thời và đưa ra các dự đoán sẽ luôn luôn quan trọng hơn việc xử lý nhanh. Việc xử lý nhanh mà áp dụng không đúng thì không mang lại nhiều hiệu quả đối với các cơ sở dữ liệu thời gian thực. Các hệ thống ngày càng được mở rộng, các loại thiết bị thông minh cũng đang ngày càng được phát triển và dữ liệu các hệ thống ngày càng lớn và đa đạng. Việc ứng dụng cơ sở dữ liệu thời gian thực 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ợ tức thì từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định.