Giới thiệu Cơ sở dữ liệu trong bộ nhớ IMDS In Memory Database System hoặc còn gọi là MMDS – Main Memory Database System Xuất hiện trong nhưng hệ thống yêu cầu đáp ứng thời gian thực
Trang 1CƠ SỞ DỮ LIỆU THỜI GIAN THỰC ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC ĐIỆN THOẠI
VÀ CHĂM SÓC KHÁCH HÀNG
Báo cáo tiểu luận
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN HÀ NAM HỌC VIÊN THỰC HIỆN : NGUYỄN THẾ HUY PHẠM ĐỨC MẠNH
Hà nội, ngày 16 tháng 03 năm 2012
Trang 2NỘI DUNG
Yêu cầu thực tiễn
So sánh DBMS và IMDS
Các mô hình IMDS
Fast Database
Trang 3Giới thiệu
Cơ sở dữ liệu trong bộ nhớ IMDS ( In Memory Database System
hoặc còn gọi là MMDS – Main Memory Database System
Xuất hiện trong nhưng hệ thống yêu cầu đáp ứng thời gian thực
như các hệ thống tổng đài, cung cấp SMS, tính cước nóng
Cần phát triển một cơ sở dữ liệu có khả năng truy xuất nhanh
chóng không phụ thuộc vào đĩa cứng bởi trong quá trình đọc dữ liệu
trên đĩa cứng thời gian xử lý sẽ lâu và phụ thuộc vào chất lượng của
đĩa cứng
Trang 4I Yêu cầu thực tế Yêu cầu thực tế
o Mức độ thông minh của các thiết bị viễn thông ngày càng tăng đi đôi với nó là khối lượng dữ liệu mà các hệ thống phần mềm nhúng phải
xử lý ngày càng nhiều và phức tạp
o Các chương trình cung cấp các dịch vụ thời gian thực hoặc gần thực trở nên nặng nề khi sử dụng các flat-file hoặc cơ sở dữ liệu truyền
thống chậm chạp
o IMDS đã ra đời từ nhu cầu đó Các nhà phát triển phần mềm lúc này chỉ việc chú trọng vào việc giải quyết bài toán của mình còn việc tổ
chức, lưu trữ và truy suất dữ liệu trong bộ nhớ thế nào hoàn toàn do IMDS đảm nhiệm
Trang 5o Việc sử dụng IMDS đặc biệt phát huy hiệu quả trong các hệ thống
nhúng như các IP router hiện đại, các tổng đài thế hệ mới, các phần
mềm cần yêu cầu cao về hiệu xuất và thời gian đáp ứng Các sản
phẩm của một số hãng lớn đều có sử dụng các IMDS như Kenan của
CSG, các giải pháp của Amdocs
Trang 6II So sánh DBMS và IMDS
o Các DBMS truyền thống lưu trữ dữ liệu trên đĩa cứng nên có tốc độ
truy xuất dữ liệu bị hạn chế bởi tốc độ chậm chạp của các linh kiện cơ khí tạo nên đĩa cứng
o Còn đúng như tên gọi, IMDS lưu trữ dữ liệu hoàn toàn trên bộ nhớ và chỉ truy xuất đĩa cứng trong trường hợp cần
o Phải chăng IMDS chỉ đơn giản là các DBMS được nạp hoàn toàn vào
bộ nhớ? Câu trả lời là không
Trang 7o IMDS có những khác biệt cơ bản với người họ hàng DBMS của nó
o Do không phải truy xuất đĩa cứng nữa nên không có phần dữ liệu
nào bị chuyển qua lại giữa đĩa cứng và bộ nhớ
o Điều đó dẫn tới giảm thiểu được tiêu tốn xung nhịp CPU và có đáp
ứng nhanh hơn từ hàng chục đến hàng trăm lần so với các DBMS
truyền thống
o Sau đây là các khác biệt cơ bản giữa DBMS truyền thống và IMDS
Trang 8II.1 Lưu trữ dữ liệu tạm thời
o Lưu trữ dữ liệu tạm thời còn được gọi là Caching
o Để hạn chế số lần phải truy xuất đĩa cứng, các DBMS truyền thống đều sử dụng biện pháp lưu giữ phần dữ liệu được truy xuất mới nhất trong bộ nhớ Caching bao gồm cả việc đồng bộ dữ liệu
o Nếu dữ liệu mà ứng dụng yêu cầu nằm trong cache thì nó được lấy ra và trả về cho chương trình, nếu không thì dữ liệu này sẽ được lấy ra từ đĩa cứng
và thêm vào cache để cho những lần dùng sau
o Đối với các DBMS, các thủ tục này đều được thực hiện cho dù nó được nạp vào bộ nhớ
Trang 9o Còn đối với các IMDS, do loại bỏ được công đoạn ra vào đĩa nên
caching là không cần thiết do đó giảm bớt được sự phức tạp và tiêu tốn tài nguyên RAM và xung nhịp CPU
Trang 10II.2 Chuyển giao dữ liệu
Chúng ta hãy xem xét điều gì sẽ xẩy ra khi ứng dụng truy vấn dữ liệu sau đó thay đổi nó và ghi lại trên DBMS truyền thống
Hình: Luồng dữ liệu luân chuyển trong một DBMS truyền thống
Màu đỏ thể hiện luồng dữ liệu
Trang 1111/ 21
1 Ứng dụng truy vấn dữ liệu từ CSQL thông qua các giao diện API của nó
2 CSDL hướng dẫn hệ thống file lấy dữ liệu từ thiết bị lưu trữ
3 Hệ thống file sẽ chuyển một bản copy của dữ liệu vào cache của nó và chuyển một bản copy khác trả lại cho CSDL
4 CSDL giữ lại một bản copy cho cache của nó và chuyển một bản cho ứng dụng
5 Ứng dụng cập nhật dữ liệu và chuyển nó trở lại cho CSDL thông qua các API của nó
Trang 126 CSDL sao lại dữ liệu đã thay đổi vào cache.
7 Bản sao của cache của CSDL cuối cũng cũng sẽ được lưu vào hệ thống file, tại đó cache của hệ thống file cũng được cập nhật
8 Cuối cùng thì dữ liệu lại được ghi vào thiết bị lưu trữ vật lý
Trang 1313/ 21
II.3 Xử lý giao dịch
Trong các trường hợp có sự cố nghiêm trọng như là mất điện, CSDL dựa trên đĩa cứng sẽ được khôi phục bằng cách commit những giao dịch
đã được hoàn tất và hồi phục lại dữ liệu liên quan đến những giao dịch
chưa hoàn tất từ log file khi hệ thống khởi động lại Các CSDL truyền thống
xử lý các giao dịch dựa trên các log file
Nếu các sự cố nghiêm trọng xẩy ra thì dữ liệu trong IMDS sẽ bị mất Đó
là điều khác biệt lớn giữa các DBMS truyền thống và các IMDS Khi hệ
thống được khởi động lại, để có thể tiếp tục sử dụng được thì dữ liệu phải được nạp lại bằng cách này hay cách khác Nguyên nhân của sự khác biệt này là IMDS được tạo ra để tăng tối đa tốc độ truy xuất dữ liệu có thể nên một số tính năng như ghi log file và các tính năng làm ảnh hưởng đến hiệu xuất khác đều bị loại bỏ
Trang 14III Các mô hình IMDS
III.1 Mô hình client/server
Đây là mô hình gần với các DBMS truyền thống nhất và nổi bật trong số này là GOODS (Generic Object Oriented Database System) Chúng hỗ trợ môi trường phân tán và có rất nhiều tính năng của một DBMS nhưng có lợi điểm là truy xuất dữ liệu rất nhanh so với các
sản phẩm truyền thống Client và Server có thể nằm trên các node
khác nhau
Trang 1515/ 21
III.2 Mô hình AO
Đây là một mô hình khá phổ biến của IMDS Chúng được cung cấp dưới dạng các thư viện nhúng vào trong chương trình phần mềm Thực chất chúng cung cấp các dịch vụ lưu trữ, truy vấn và cập nhật dữ liệu cho các ứng dụng Thường thì các IMDS không thể sửa đổi cấu trúc khi chạy
chương trình mà điều này được thực hiện khi viết chương trình ví dụ của loại này là FastDB, GigaBase, Berkeley DB
Trang 16IV Giới thiệu cơ sở dữ liệu thời gian thực FastDB
Là cơ sở dữ liệu thời gian thực mã nguồn mở
Là các AO viết bằng C++
Là cơ sở dữ liệu hướng đối tượng
Có khả năng quản lý giao dịch
Tự động sao lưu và phục hồi hệ thống khi có sự cố
Hỗ trợ truy vấn dữ liệu thông qua ngôn ngữ gần giống SQL
Các câu lệnh truy vấn gồm:
• Điều kiện lọc dữ liệu
• Sắp xếp dữ liệu
Trang 1717/ 21
Kết Luận
1.Tìm hiểu được sự khác nhau trong việc lưu trữ và truy xuất giữa cơ sở
dữ liệu thời gian thực và cơ sở dữ liệu truyền thống
2.Các mô hình của IMDS
3.Có kiến thức về 1 cơ sở dữ liệu thời gian thực là Fast Database
Trang 18TRÂN TRỌNG CẢM CTRÂN TRỌNG CẢM CƠN !