複製鏈接
請複製以下鏈接發送給好友

演繹數據庫

鎖定
演繹數據庫是指具有演繹推理能力數據庫。一般地,它用一個數據庫管理系統和一個規則管理系統來實現。將推理用的事實數據存放在數據庫中,稱為外延數據庫;用邏輯規則定義要導出的事實,稱為內涵數據庫。主要研究內容為,如何有效地計算邏輯規則推理。具體為:遞歸查詢的優化、規則的一致性維護等。
中文名
演繹數據庫
外文名
deductive database
產生時期
20世紀70年代後期
核    心
包含遞歸查詢算法的演繹推理機制
表示工具
一階謂詞邏輯
常用查詢語句
Datalog

演繹數據庫定義

演繹的含義是根據已知的事實和規則進行推理,回答用户提出的各種問題。演繹數據庫也稱為邏輯數據庫、演繹關係數據庫或虛關係數據庫。換言之,它們有很強的的推理能力,這種推理能力起源於人工智能的研究。 [1] 
演繹數據庫是指具有演繹推理能力的數據庫,一般地,它用一個數據庫管理系統和一個規則管理系統來實現。將推理用的事實數據存放在數據庫中,稱為外延數據庫;用邏輯規則定義要導出的事實,稱為內涵數據庫。主要研究內容為,如何有效地計算邏輯規則推理,具體為:遞歸查詢的優化、規則的一致性維護等。 [2] 
演繹數據庫可包含三方面內容:實數據(事實)、規則及虛數據。虛數據系根據已知的實數據經使用規則推理得到,它不必放在數據庫中。 [1] 
演繹數據庫技術主要內容包括邏輯理論、邏輯語言、遞歸查詢處理與優化算法、演繹數據庫體系結構等。演繹數據庫的理論知識是一階謂詞邏輯和一階語言模型論。這些邏輯理論是研究演繹數據庫技術的基石,對其發展起到了重要的指導作用。 [3] 

演繹數據庫發展階段

第一階段
20世紀60年代末到70年代為演繹數據庫發展的第一階段,在這一階段誕生了關係演算查詢語句和邏輯程序設計語言PROLOG,並對演繹數據庫的形成產生了重大影響。 [4] 
1978年《邏輯與數據》一書的出版標誌着演繹數據庫領域的誕生。 [4] 
第二階段
20世紀70年代末到80年代為演繹數據庫發展的第二階段。在這個階段,演繹數據庫和邏輯程序設計的理論研究以及與實現有關的基礎研究都得到了全面發展和完善。 [4] 
1987年,Minken編寫了《演繹數據庫與邏輯程序設計》一書,它標誌着演繹數據庫理論已經走向成熟。 [4] 
第三階段
20世紀80年代末一直到現在為演繹數據庫發展的第三階段,這一階段出現了一些試驗性的系統,但還沒有商品化的演繹數據庫系統投入到市場,因而演繹數據庫也沒有得到真正的應用。 [4] 

演繹數據庫基本結構

演繹數據庫由三部分組成:
(1)傳統數據庫管理。由於演繹數據庫建立在傳統數據庫之上,因此傳統數據庫是演繹數據庫的基礎。
(2)具有對一階謂詞邏輯進行推理的演繹結構,這是演繹數據庫全部功能特色所在,推理功能由此結構完成。
(3)數據庫與推理機構的接口 由於演繹結構是邏輯的,而數據庫是非邏輯的,因此必須有一個接口實現物理上的連接。 [5] 

演繹數據庫理論研究

演繹數據庫是一種新的數據庫技術,其本質仍然是數據庫。雖然演繹數據庫的理論研究取得了很大的成就,但還需要不斷完善,儘快實現商品化。
建立理論體系
建立一個較為理想的演繹數據庫理論體系。雖然全一階理論為演繹數據庫提供嚴密的理論基礎,但由於實現起來比較困難,效率低下,因此需要尋找一種相對合理的理論,以指導演繹數據庫的發展。
並行推理與分佈式演繹數據庫
關於並行邏輯程序或分佈式演繹數據庫的理論模型及其語義問題至今還沒有徹底弄清楚,但是已經有人從度量空間拓撲學角度出發,並取得某些初步成果。
利用人工智能
應嘗試更多地利用人工智能的思想和技術。演繹數據庫是人工智能與數據庫技術相結合的一種技術,但演繹數據庫只用了人工智能中演繹邏輯推理的某些概念,實際上人工智能還有很多思想和技術可供演繹數據庫借鑑。
引入高階邏輯
雖然一階邏輯可以提供比較嚴密的理論基礎,但是高階邏輯卻具有更強的表達能力,所以不放在演繹數據庫中引入高階邏輯。
特殊類型演繹數據庫
已經出現了兩種非常重要的演繹數據庫,一種是層疊式演繹數據庫,另一種是與域無關的演繹數據庫。

演繹數據庫實現方法

對演繹數據庫的研究始於20世紀70年代後期,對它的研究分為兩個方面:數學模型和實現方法。
在演繹數據庫中往往用證明理論作為其實現的數學模型,在證明理論中,演繹數據庫可視為一個一階謂詞演算的公理系統,包括:
(1)公理:一階謂詞演算公式;
(2)定理:有公理通過證明而獲得的一階謂詞演算公式;
(3)證明:有公理經推理而得到定理的證明工具。
實現演繹數據庫的方法有三種:
PROLOG語言
由於PROLOG語言是一種基於證明理論的語言,因此用它來實現從理論上是完全可行的。用PROLOG語言表示演繹數據庫不需要編制專門的系統軟件,從而實現工作變得極為簡單。將傳統數據庫與演繹結構均用證明理論方法表示,這樣,整個演繹數據庫也變得極為簡單。但由於PROLOG語言本身的弱點(效率低),因此用它來有效完整地表示一個演繹數據庫還需進一步改造。這方面的工作主要集中在兩點:
(1)功能上改進,在PROLOG中增加數據庫的功能,以適應對數據的處理要求;
(2)效率上的提高,改進PROLOG的搜索速度,以大大提高它的效率。 [1] 
DBMS+RULE
著名的SQL和INGRESE都已經實現了演繹功能。其中RULE部分需要完成推理與接口兩部分功能。推理部分由演繹結構完成;接口部分的功能是將推理中的邏輯表示轉換為給定DBMS中的數據描述與數據操縱語言中的語句。當用户查詢演繹數據庫時,如果涉及到的是實關係,則如同通常的數據庫查詢一樣處理;如果涉及的是虛關係,則由規則處理部分的演繹結構將其轉換成對實關係的查詢,最後通過DBMS的查詢結構完成,將最終結果提交給用户。 [1] 
專用軟件
利用專用軟件來實現,這種方法必須一切從頭開始,研製週期長且工作量大,所以並不實用。 [4] 

演繹數據庫數據庫區別

演繹數據庫與智能數據庫
1.聯繫。兩者均屬於數據庫範圍,都是人工智能與數據庫的結合,吸取了人工智能的成功技術的成果。 [1] 
2.區別。演繹數據庫雖然也含有規則,但含有的規則較少,數據量較大;至於智能數據庫不僅應用人工智能中的邏輯推理思想,而且還應用人工智能中自然語言理解、語言識別,圖像、文字處理等多種方法與技術於數據庫,以求得更多的功能、性能的改善與提高。因此,從某種程度上來講,演繹數據庫是智能數據庫的一部分。 [1] 
參考資料
  • 1.    梁靜國編著.決策支持系統與決策知識發現.哈爾濱:哈爾濱工程大學出版社,2007:83-84
  • 2.    趙永霞主編.數據庫原理與應用技術.武漢:華中科技大學出版社,2013:37-37
  • 3.    黃國興,陶樹平,丁嶽偉編著.計算機導論.北京:清華大學出版社 ,2013:194-194
  • 4.    苗雪蘭編著.數據庫系統原理及應用教程.北京:機械工業出版社 ,2014:268-269
  • 5.    馮玉才,盧正鼎,曾昭蘇.中小型計算機數據庫簡明教程.北京:科學出版社 ,1994:187-190