1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO CƠ 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ÁC

8 613 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 88,5 KB

Nội dung

IMDS xuất hiện trong các hệ thống cung cấp các dịch vụ yêu cầu các đáp ứng thời gian thực như các Tổng đài thế hệ mới, các router hoặc các chương trình phải xử lý số lượng rất lớn các gi

Trang 1

CƠ SỞ DỮ LIỆU THỜI GIAN THỰC VÀ ỨNG DỤNG TRONG BÀI TOÁN TÍNH CƯỚC VÀ CHĂM SÓC KHÁCH HÀNG

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) có một vai trò rất quan trọng trong sự phát triển của ngành công nghệ thông tin hiện đại IMDS xuất hiện trong các hệ thống cung cấp các dịch vụ yêu cầu các đáp ứng thời gian thực như các Tổng đài thế hệ mới, các router hoặc các chương trình phải xử lý

số lượng rất lớn các giao dịch trong một giây như các hệ thống xử lý cước nóng, hệ thống chăm sóc khách hàng, hệ thống cung cấp SMS, hệ thống cung cấp các dịch vụ trên Internet Ở đây chúng tôi xin giới thiệu ứng dụng công nghệ Cơ sở dữ liệu bộ nhớ vào trong Hệ thống Tính cước và chăm sóc khách hàng

I Yêu cầu thực tiễn

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 Các nhà phát triển phần mềm nhúng nhận thấy rằng các tổ chức dữ liệu theo phương pháp tiếp cận truyền thống trở nên ngày càng khó khăn và chương trình trở nên khó bảo dưỡng và nâng cấp mỗi khi nảy sinh yêu cầu mới 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 Cùng với đó, giá RAM ngày cảng giảm và tốc độ CPU ngày càng nhanh khiến cho các nhà phát triển nghĩ tới lối thoát là xây dựng các Cơ sở dữ liệu trong bộ nhớ 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 2

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

II So sánh DBMS và IMDS

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 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

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 IMDS có những khác biệt cơ bản với người họ hàng DBMS của nó 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ớ Đ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 Sau đây là các khác biệt cơ bản giữa DBMS truyền thống và IMDS

II.1 Lưu trữ tạm thời (Caching)

Để 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 Việc này đảm bảo rằng phần ảnh của

dữ liệu được cache giống với phần gốc được lưu trên đĩa cứng của nó Ngoài ra caching gồm cả thủ tục tìm kiếm dữ liệu 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

Đố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ớ Còn đối với các IMDS, do loại bỏ được công đoạn ra vào đĩa

Trang 3

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

II.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 1: 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

Mầu xám thể hiện luồng thông điệp

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 4

6 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ý

Các bước này là trình tự cơ bản không thể bỏ qua trong bất kỳ một CSDL truyền thống nào ngay cả khi công việc được thực hiện hoàn toàn trong

bộ nhớ Các bước này trong thực tế còn phức tạp hơn nhiều khi tính đến các công đoạn Log các thao tác và một số công đoạn quan trọng khác

Ngược lại, trong các IMDS, việc truyền dữ liệu qua lại là không cần thiết CSDL cho cho phép người dùng truy cập dữ liệu thông qua các con trỏ trực tiếp tới dữ liệu Tuy nhiên dữ liệu vẫn được đảm bảo an toàn do con trỏ này chỉ được sử dụng thông qua các API của IMDS Loại bỏ được việc phải chuyền dữ liệu qua lại nhiều lần làm tăng tốc độ truy xuất dữ liệu Giảm được

số lượng bản sao của dữ liệu dẫn đến giảm tài nguyên chiếm dụng bởi CSDL

Sự đơn giản trong hoạt động khiến cho thiết kế đơn giản làm tăng độ tin cật của

hệ thống

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

IMDS cũng cung cấp các tính năng đảm bảo tính toàn vẹn của các giao dịch Để làm điều này, các IMDS lưu lại các bản sao của các đối tượng được cập nhật hay bị xóa và một danh sách các dữ liệu được chèn vào CSDL trong suốt quá trình giao dịch diễn ra Khi ứng dụng commit giao dịch, phần bộ nhớ của các bản sao của các dữ liệu được bỏ đi và các dữ liệu được chèn vào được

Trang 5

chuyển tới vùng nhớ chứa dữ liệu chính của CSDL, thao tác này được thực hiện rất nhanh và hiệu quả Nếu ứng dụng hủy giao dịch thì các bản sao dữ liệu được chuyển thành bản chính và các dữ liệu được chèn vào trong quá trình giao dịch

bị huỷ bỏ

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ỏ

Đặc tính này của IMDS rõ ràng là không phù hợp với mọi loại ứng dụng Tuy nhiên lại rất thích hợp trong lĩnh vực phần mềm nhúng hoặc những ứng dụng đòi hỏi truy xuất dữ liệu với tốc độ thời gian thực

Tuy nhiên một phần lớn các IMDS hiện nay đều cung cấp tính năng Sao lưu và Hồi phục dữ liệu Có thể kể đến các IMDS phổ biến là: FastDB, GigaBase, Goods

III Các mô hình IMDS

Hiện tại, các IMDS chưa hề có chuẩn Các hãng phát triển hoặc là áp dụng các chuẩn của DBMS hoặc tự định nghĩa riêng cho mình Các cách tiếp cận và triển khai, các khái niệm của chúng cũng khác nhau Trên thế giới các IMDS tồn tại dưới 2 mô hình chính là mô hình hướng ứng dụng (Application Oriented - AO) và mô hình Client/Server Phần lớn các IMDS hiện nay đều là các CSDL hướng đối tượng hoặc CSDL Hướng đối tượng - Quan hệ

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

Trang 6

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

Mô hình này thường được sử dụng trong các ứng dụng lớn với những đòi hỏi khắt khe về thời gian đáp ứng

GOODS là một IMDS mã nguồn mở khá mạnh với rất nhiều tính năng của một DBMS như Replication, quản lý các giao dịch chặt chẽ nhờ các REDO log và Global History Log GOODS là một CSDL phân tán, dữ liệu có thể đặt trên nhiều node trong mạng

II.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

Đa phần IMDS cũng cung cấp khả năng Sao lưu và hồi phục dữ liệu Khi ứng dụng gặp sự cố thì dữ liệu vẫn có thể khôi phục lại được như trước đó nhờ các file dữ liệu được lưu trên ổ cứng Các IMDS loại này mang lại cho ứng dụng khả năng truy cập dữ liệu rất nhanh

Các DBMS loại này thường chỉ hỗ trợ việc truy cập dữ liệu từ một hay nhiều tiến trình trong cùng một ứng dụng chứ không cho phép nhiều ứng dụng cùng truy cập

CSDL loại này được dùng nhiều trong các ứng dụng đòi hỏi tốc độ xử lý cao và phải quản lý rất nhiều tham số như hệ thống tính cước của chúng tối là một ví dụ

Trang 7

III.3 áp dụng vào Hệ thống Tính cước và chăm sóc khách hàng

Sau khi thiết kế hệ thống Tính cước và Chăm sóc khách hàng, hệ thống

đã phức tạp lên rất nhiều, các bảng tham số đã lên tới hơn 70 và cấu trúc tham

số vô cùng phức tạp Việc quản lý các thông số này trở nên khó khăn và dễ gây lỗi Chúng tôi đã nghĩ ngay đến việc ứng dụng IMDS vào chương trình để giảm bớt công sức trong việc quản lý các tham số

Sau một số thời gian nghiên cứu và tìm kiếm thông tin trên mạng, chúng tôi đã tìm được một số IMDS phù hợp với nhu cầu và điều kiện của mình Sau đây chúng tôi xin giới thiệu 2 IMDS nổi bật là FastDB và GigaDB

Đây đều là 2 IMDS mã nguồn mở và đã được sử dụng khá phổ biến Cả hai cùng cung cấp tính năng sao lưu và phục hồi dữ liệu rất tốt Chúng là các

AO viết bằng ngôn ngữ C++ nên việc giao tiếp cũng rất thuận lợi Và một điều đặc biệt quan trọng, chúng đều là các CSDL hướng đối tượng nên rất thuận tiện trong việc tích hợp vào các chương trình hiện tại của phòng đang phát triển bằng công nghệ hướng đối tượng

GigaBase sử dụng kỹ thuật page-pool để truy cập dữ liệu nên sẽ lưu trữ được nhiều dữ liệu hơn nhưng chậm hơn so với FastDB sử dụng kỹ thuật virtual-memory Qua cân nhắc, chúng tôi lựa chọn FastDB do chương trình Tính cước của chúng tôi đòi hỏi thời gian đáp ứng ngắn và phải xử lý rất nhiều

dữ liệu cuộc gọi

Sau đây chúng tôi xin giới thiệu về FastDB:

FastDB là một IMDS hướng ứng dụng và hướng đối tượng, mã nguồn

mở Nó có một số tính năng mạnh như quản lý giao dịch, tự động sao lưu và hồi phục khi có sự cố Thủ tục ‘commit’ hoạt động rất hiệu quả dựa trên thuật toán “shadow root pages” Và một tính năng rất hay nữa của FastDB là nó hỗ trợ truy vấn dữ liệu thông qua một ngôn ngữ gần giốn SQL (SQL liked language) Câu lệnh truy vấn bao gồm: điều kiện lọc dữ liệu, sắp xếp dữ liệu

Trang 8

Một bản ghi trong FastDB chính là một đối tượng của chương trình Các thủ tục trong đối tượng đó có thể dùng như những từ khóa trong câu lệnh truy vấn dữ liệu

Công nghệ sắp xếp và tìm kiếm dữ liệu ở đây là T-tree, extensible hash table, GiST khiến cho chương trình có thể truy vấn dữ liệu rất hiệu quả

Với những tính năng ưu việt của mình, FastDB sẽ đóng một vai trò quan trọng trong hệ thống Tính cước và Chăm sóc khách hàng trong thời gian tới

Ngày đăng: 08/07/2015, 16:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w