Datalog

维基百科,自由的百科全书
跳转至: 导航搜索

Datalog是一种数据查询语言,专门设计与大型关系数据库交互[1],语法与Prolog相似。正如SQL只是一个规范,Transact-SQLPL-SQL是其具体实现一样;Datalog也是一个规范,bddbddb[2]、 DES[3]、OverLog[4]、Deals[5]等都按照Datalog的语法实现了自己的语言,所以Datalog没有特定的执行环境(如Java之于Java虚拟机Prolog之于SWI-Prolog)。

起源[编辑]

二十世纪九十年代,为了解决更多的问题,带有人工智能的系统通常要携带一个自行开发的数据库。这样的数据库非常简陋,不能数据共享与恢复,也不能在其他人工智能系统间通用。为了降低智能系统与数据库之间的耦合(智能系统可以使用现有的成熟的数据库,并方便地从一种数据库切换到另一种数据库),需要一种在数据库与智能系统间交互的语言。于是Datalog应运而生。[1]

en:David Maier发明了Datalog这个名称[6]

与Prolog的异同[编辑]

Datalog的语法是Prolog的子集;但是Datalog的语义与Prolog不同。

Prolog程序里的事实规则的出现顺序决定了执行结果。很可能两条规则的出现顺序对换,程序就陷入死循环。Datalog程序对事实和规则的出现顺序不做要求,两条规则的出现顺序对换,执行结果仍然是一样的。


参考资料[编辑]

  1. ^ 1.0 1.1 Stefano Ceri; Georg gottlob, Letizia Tanca. What You Always Wanted to Know About Datalog (And Never Dared to Ask) 1. 1989.3. 
  2. ^ bddbddb, Source forge 
  3. ^ Fernan, DES, ES: UCM 
  4. ^ Berkeley (PDF) 
  5. ^ Deductive Application Language (DeAL) System. [2014-02-14]. 
  6. ^ Abiteboul, Serge; Hull, Richard; Vianu, Victor, Foundations of databases:  305 
  • Stefano Ceri; Georg gottlob, Letizia Tanca. What You Always Wanted to Know About Datalog (And Never Dared to Ask) 1. 1989.3. 


数据库管理系统(DBMS) (查看 · 讨论 · 编辑)

概念
数据库 · 数据模型 · 数据库存储结构英语Database storage structures · 关系 (数据库) · 关系模型 · 分布式数据库 · ACID ( 原子性英语Atomicity (database systems) · 一致性 · 隔離性 · 持久性英语Durability (database systems) ) · Null值
关系数据库 · 关系模型 · 数据库规范化 · 數據庫完整性 · 實體完整性 · 參照完整性英语Referential integrity · 关系数据库管理系统 
主键 · 外键 · 代理键 · 超键 · 候选键 

数据库组件
触发器 · 视图 · 数据库表 · 指标 (数据库) · 事务日志英语Transaction log · 数据库事务 · 并发控制 · 乐观锁 · 悲观锁 · 数据库索引 
存储程序 · 資料庫分割

SQL
分类: 数据查询语言 (DQL) - 資料定義語言 (DDL) - 資料操縱語言 (DML) - 資料控制語言 (DCL)
指令:SELECT · INSERT · UPDATE · MERGE · DELETE · JOIN · UNION · CREATE · DROP · Begin work · COMMIT · ROLLBACK · TRUNCATE · ALTER
安全: SQL資料隱碼攻擊 · 參數化查詢

数据库管理系统的实现

实现类型
关系数据库 · 檔案型資料庫 · Deductive · 維度化資料庫 · 階層式 · 圖形資料庫 · 对象数据库 · 物件關聯式資料庫 · Temporal · XML資料庫

数据库产品
对象型 (对比) · 关系型 (对比)

数据库组件
数据查询语言 · 查詢最佳化器 · 查詢計畫 · 嵌入式SQL · ODBC · JDBC · OLE DB