> 教育经验 > 什么是主动数据库介绍

什么是主动数据库介绍

什么是主动数据库介绍

传统的数据库管理系统按照用户的要求提供数据服务,是典型的“服务程序”。它所提供的服务完全是被动的,只有当用户有要求时才为其服务,不会主动地为用户作些事情。能够根据各种事件的发生或环境的变化主动为用户提供相应的信息服务的新型的数据库系统,即主动数据库系统。

主动数据库概念

传统的数据库管理系统按照用户的要求提供数据服务,是典型的“服务程序”。它所提供的服务完全是被动的,只有当用户有要求时才为其服务,不会主动地为用户作些事情。能够根据各种事件的发生或环境的变化主动为用户提供相应的信息服务的新型的数据库系统,即主动数据库系统。

主动数据库的需求背景

各种传统的数据库的服务功能都有一个公共的属性,就是数据库本身是被动的。它们只能根据用户的命令被动地提供服务。用户给什么命令,系统就做什么动作。它丝毫不会灵活地根据数据库的外部环境或内部状态主动做什么。诸如主动提出警告、主动切换检索方法和主动实现某些动态修改和适应等功能,它们都做不到。所以,不妨把传统数据库系统的服务称为“被动服务”。其次,对传统数据库而言,若需要实现这些功能,就必须借助一种程序设计语言以独立进程的形式单独编写一个程序来实现。然而,在各种实际应用中,数据库软件的各种主动性功能是迫切需要的。例如,一个典型的仓库管理系统,除了必须有诸如入库和出库等基本功能之外,往往需要有对仓库库存的监控功能,即在库存太少或过多时主动地发出警告之类的信息。

虽然各种数据库已在各个领域中得到广泛的应用,并发挥着极其重要的作用,但是由于传统数据库只能被动地为用户服务,在许多的应用中产生了局限性。在实际应用中,经常会遇到主动性的需求。例如,实时监控、自动恢复以及实时处理等系统中,都需要系统进行主动地处理,而且在数据库应用中也需要这种主动性的服务。例如在计算机集成制造系统、管理信息和办公自动化系统中常常希望数据库系统在紧急情况下能够根据数据库的当前状态,主动、实时地做出反应,执行某些处理或向用户报告某些信息等。可以说,实际应用需要主动数据库。所谓的主动数据库实际上就是除了完成一切传统数据库的功能之外,还具有各种主动服务功能的数据库系统。

主动数据库的特点

与传统数据库系统相比,主动数据库最大的特点就在于其主动性。主动数据库的一个很突出的基本思想是让数据库系统具有主动服务的功能,并以一种统一面方便的机制来实现各种主动服务需求。除了主动服务之外,还特别强调了用统一的机制来实现,即要求把这些主动功能用一种统一的方法与原有的数据库功能集成在一个数据库系统中。这种机制主要是通过将一些规划预先嵌入数据库系统的方法来实现的。系统提供了一个自动监视模块。它主动地不时检查这这些规划中包含的各种事件是否已经发生,一旦发现某事件发生时,就主动触发执行某个动作。显然,这样一来,数据库管理系统就可主动履行一些预先由用户设定的动作,可把诸如完整性约束、存取控制、例外处理、监督和警告、状态开关自动切换、检索策略的切换,乃至复杂的演绎推理和实时处理等功能以一种统一的机制得以实现。

主动数据库的描述

在功能上,一个主动数据库系统(ADBS)由一个传统数据库系统(DBS)和一个事件驱动的知识库(EB)及其相应的事件监视器组成,可用公式表示为:ADBS=DBS+EB+EM

其中DBS用来存储数据和对数据进行维护、管理与应用;EB是一个由事件驱动的一组知识组成的集合,称为事件库,其中每一项知识表示在相应的事件发生时,如何来主动地执行其中包含的由用户预先设定的动作;EM是一个随时监视EB中的事件是否已经发生的监视模块,一旦监视到某时间已经发生时就主动地触发系统按照EB中指明的相应知识执行其中预先设定的动作。

主动数据库工作原理

主动数据库管理系统的功能

主动数据库管理系统(ADBMS)除了具有传统数据库管理系统的数据定义、数据操纵及数据库的管理等功能之外,主要还应该具有主动功能,可以对任意事件表达式所表示的事件进行监测和执行相应的动作,主要完成各种实时监测和控制、数据库状态的动态监视、例外情况处理、监测错误,并进行警报和处理等主动功能。系统应该能够附加和完成更加丰富的主动功能,以适应各种需要场合。

主动数据库管理系统的体系结构

主动数据库管理系统与传统的数据库管理系统在结构上的主要区别就在于除了它有一个被动的数据库和一个事件驱动的事件库之外,在运行系统中还增加了一个或多个事件的监视器,从而主动地时刻监测各种事件的发生,从而自动地发出所需动作的执行。

主动数据库系统的实现

实现主动数据库系统可以有以下途径。

(1)改造的途径。简单的实现途径就是在原有数据库管理系统的基础上进行改造。为此只需在原有数据库管理系统之外增加一个能经常有机会运行的事件监视器即可。为此,事件是统一的一个库,由用户预先设置好,在应用程序运行的同时,由事件监视器来监视事件的发生,并根据事件库中所示,自动执行相应的动作或动作序列。

(2)嵌入主动程序设计语言的途径。把一般程序设计语言改造成一种主动程序设计语言,并设计实现一种主动程序设计语言,然后按传统方法把数据库操作嵌入在其中执行。

(3)重新设计主动数据库程序设计语言的途径。重新设计主动程序设计语言将数据定义、操作、维护和管理功能与应用程序彻底融合,也是一条可取的途径。

实际上,上述的三条实现路径中,第一种途径最简单,但效率较低;第三种效率高,但实现起来非常复杂;第二种是一个折衷的方案,改造工作量适中,而且效率也较第一种途径要高。总的来说,采用何种实现路径还要根据实际情况来决定。