Дедуктивная база данных
Дедуктивная база данных это система баз данных которая может делать выводы (то есть заключать дополнительные факты) на основе правил и фактов хранящихся в (дедуктивной) базе данных. Datalog это язык, обычно используемый для указания фактов, правил и запросов в дедуктивных базах данных. Дедуктивные базы данных выросли из желания сочетать логическое программирование с реляционной базой данных для построения систем, поддерживающих мощный формализм, и по-прежнему быстры и способны справляться с очень большими наборами данных. Дедуктивные базы данных более экспрессивные, чем реляционные базы данных, но менее экспрессивны чем системы логического программирования. В последние годы дедуктивные базы данных, такие как Datalog, нашли новое применение в интеграции данных, извлечение информации, организации сетей, анализе программ, безопасности и облачных вычислениях.[1] Дедуктивные базы данных и логическое программирование: Дедуктивные базы данных используют большое количество концепций из логического программирования; правила и факты, указанные на языке дедуктивных баз данных. Datalog выглядит очень похоже на те, что в Prolog. Однако важные различия между дедуктивными базами данных и логическим программированием:
- Чувствительность и процедурность: в Prolog выполнение программы зависит от порядка правил в программе и порядка частей правил; эти свойства используются программистами для создания эффективных программ. Однако на языках баз данных (таких как SQL или Datalog) выполнение программы не зависит от порядка правил и фактов.
- Специальные предикаты. В Prolog программисты могут непосредственно влиять на процедурные оценки программы с помощью специальных предикатов, таких как cut, это не соответствует в дедуктивных базах данных.
- Символы функций: языки логического программирования позволяют функциональным символам создавать сложные символы. Это не допускается в дедуктивных базах данных.
- Кортеж — ориентированная обработка: дедуктивные базы данных используют ориентированную на набор обработку, в то время как языки логического программирования концентрируются на одном кортеже за раз.
Дальнейшее чтение
- Author: Herve Gallaire, Jack Minker, Jean-Marie Nicolas: Logic and Databases: A Deductive Approach. Publisher: ACM. doi:10.1145/356924.356929
- Author: Stefano Ceri, Georg Gottlob, Letizia Tanca: Logic Programming and Databases. Publisher: Springer-Verlag. ISBN 978-0-387-51728-5
- Author: Ramez Elmasri and Shamkant Navathe: Fundamentals of Database Systems (3rd edition). Publisher: Addison-Wesley Longman. ISBN 0-201-54263-3