傳統的資料庫管理系統按照用戶的要求提供數據服務,是典型的“服務程式”。它所提供的服務完全是被動的,只有當用戶有要求時才為其服務,不會主動地為用戶作些事情。能夠根據各種事件的發生或環境的變化主動為用戶提供相應的信息服務的新型的資料庫系統,即主動資料庫系統。
基本介紹
- 中文名:主動資料庫
- 外文名: Active database
- 定 義:主動為用戶提供相應的信息服務
概念,主動資料庫的需求背景,主動資料庫的特點,主動資料庫的描述,工作原理,主動資料庫管理系統的功能,主動資料庫管理系統的體系結構,主動資料庫系統的實現,
概念
傳統的資料庫管理系統按照用戶的要求提供數據服務,是典型的“服務程式”。它所提供的服務完全是被動的,只有當用戶有要求時才為其服務,不會主動地為用戶作些事情。能夠根據各種事件的發生或環境的變化主動為用戶提供相應的信息服務的新型的資料庫系統,即主動資料庫系統。
主動資料庫的需求背景
各種傳統的資料庫的服務功能都有一個公共的屬性,就是資料庫本身是被動的。它們只能根據用戶的命令被動地提供服務。用戶給什麼命令,系統就做什麼動作。它絲毫不會靈活地根據資料庫的外部環境或內部狀態主動做什麼。諸如主動提出警告、主動切換檢索方法和主動實現某些動態修改和適應等功能,它們都做不到。所以,不妨把傳統資料庫系統的服務稱為“被動服務”。其次,對傳統資料庫而言,若需要實現這些功能,就必須藉助一種程式設計語言以獨立進程的形式單獨編寫一個程式來實現。然而,在各種實際套用中,資料庫軟體的各種主動性功能是迫切需要的。例如,一個典型的倉庫管理系統,除了必須有諸如入庫和出庫等基本功能之外,往往需要有對倉庫庫存的監控功能,即在庫存太少或過多時主動地發出警告之類的信息。
雖然各種資料庫目前已在各個領域中得到廣泛的套用,並發揮著極其重要的作用,但是由於傳統資料庫只能被動地為用戶服務,在許多的套用中產生了局限性。在實際套用中,經常會遇到主動性的需求。例如,實時監控、自動恢復以及實時處理等系統中,都需要系統進行主動地處理,而且在資料庫套用中也需要這種主動性的服務。例如在計算機集成製造系統、管理信息和辦公自動化系統中常常希望資料庫系統在緊急情況下能夠根據資料庫的當前狀態,主動、實時地做出反應,執行某些處理或向用戶報告某些信息等。可以說,實際套用需要主動資料庫。所謂的主動資料庫實際上就是除了完成一切傳統資料庫的功能之外,還具有各種主動服務功能的資料庫系統。
主動資料庫的特點
與傳統資料庫系統相比,主動資料庫最大的特點就在於其主動性。主動資料庫的一個很突出的基本思想是讓資料庫系統具有主動服務的功能,並以一種統一面方便的機制來實現各種主動服務需求。除了主動服務之外,還特彆強調了用統一的機制來實現,即要求把這些主動功能用一種統一的方法與原有的資料庫功能集成在一個資料庫系統中。到目前為止,這種機制主要是通過將一些規劃預先嵌入資料庫系統的方法來實現的。系統提供了一個自動監視模組。它主動地不時檢查這這些規劃中包含的各種事件是否已經發生,一旦發現某事件發生時,就主動觸發執行某個動作。顯然,這樣一來,資料庫管理系統就可主動履行一些預先由用戶設定的動作,可把諸如完整性約束、存取控制、例外處理、監督和警告、狀態開關自動切換、檢索策略的切換,乃至複雜的演繹推理和實時處理等功能以一種統一的機製得以實現。
主動資料庫的描述
在功能上,一個主動資料庫系統(ADBS)由一個傳統資料庫系統(DBS)和一個事件驅動的知識庫(EB)及其相應的事件監視器組成,可用公式表示為:ADBS=DBS+EB+EM
其中DBS用來存儲數據和對數據進行維護、管理與套用;EB是一個由事件驅動的一組知識組成的集合,稱為事件庫,其中每一項知識表示在相應的事件發生時,如何來主動地執行其中包含的由用戶預先設定的動作;EM是一個隨時監視EB中的事件是否已經發生的監視模組,一旦監視到某時間已經發生時就主動地觸發系統按照EB中指明的相應知識執行其中預先設定的動作。
工作原理
主動資料庫管理系統的功能
主動資料庫管理系統(ADBMS)除了具有傳統資料庫管理系統的數據定義、數據操縱及資料庫的管理等功能之外,主要還應該具有主動功能,可以對任意事件表達式所表示的事件進行監測和執行相應的動作,主要完成各種實時監測和控制、資料庫狀態的動態監視、例外情況處理、監測錯誤,並進行警報和處理等主動功能。系統應該能夠附加和完成更加豐富的主動功能,以適應各種需要場合。
主動資料庫管理系統的體系結構
主動資料庫管理系統與傳統的資料庫管理系統在結構上的主要區別就在於除了它有一個被動的資料庫和一個事件驅動的事件庫之外,在運行系統中還增加了一個或多個事件的監視器,從而主動地時刻監測各種事件的發生,從而自動地發出所需動作的執行。
主動資料庫系統的實現
實現主動資料庫系統可以有以下途徑。
(1)改造的途徑。簡單的實現途徑就是在原有資料庫管理系統的基礎上進行改造。為此只需在原有資料庫管理系統之外增加一個能經常有機會運行的事件監視器即可。為此,事件是統一的一個庫,由用戶預先設定好,在應用程式運行的同時,由事件監視器來監視事件的發生,並根據事件庫中所示,自動執行相應的動作或動作序列。
(2)嵌入主動程式設計語言的途徑。把一般程式設計語言改造成一種主動程式設計語言,並設計實現一種主動程式設計語言,然後按傳統方法把資料庫操作嵌入在其中執行。
(3)重新設計主動資料庫程式設計語言的途徑。重新設計主動程式設計語言將數據定義、操作、維護和管理功能與應用程式徹底融合,也是一條可取的途徑。
實際上,上述的三條實現路徑中,第一種途徑最簡單,但效率較低;第三種效率高,但實現起來非常複雜;第二種是一個折衷的方案,改造工作量適中,而且效率也較第一種途徑要高。總的來說,採用何種實現路徑還要根據實際情況來決定。