Дедуктивная база данных

Дедуктивная база данных это система баз данных которая может делать выводы (то есть заключать дополнительные факты) на основе правил и фактов хранящихся в (дедуктивной) базе данных. Datalog это язык, обычно используемый для указания фактов, правил и запросов в дедуктивных базах данных. Дедуктивные базы данных выросли из желания сочетать логическое программирование с реляционной базой данных для построения систем, поддерживающих мощный формализм, и по-прежнему быстры и способны справляться с очень большими наборами данных. Дедуктивные базы данных более экспрессивные, чем реляционные базы данных, но менее экспрессивны чем системы логического программирования.

В последние годы дедуктивные базы данных, такие как Datalog, нашли новое применение в интеграции данных, извлечение информации, организации сетей, анализе программ, безопасности и облачных вычислениях.

Дедуктивные базы данных и логическое программирование:

Дедуктивные базы данных используют большое количество концепций из логического программирования; правила и факты, указанные на языке дедуктивных баз данных. Datalog выглядит очень похоже на те, что в Prolog. Однако важные различия между дедуктивными базами данных и логическим программированием:

  • Чувствительность и процедурность: в Prolog выполнение программы зависит от порядка правил в программе и порядка частей правил; эти свойства используются программистами для создания эффективных программ. Однако на языках баз данных (таких как SQL или Datalog) выполнение программы не зависит от порядка правил и фактов.
  • Специальные предикаты. В Prolog программисты могут непосредственно влиять на процедурные оценки программы с помощью специальных предикатов, таких как cut, это не соответствует в дедуктивных базах данных.
  • Символы функций: языки логического программирования позволяют функциональным символам создавать сложные символы. Это не допускается в дедуктивных базах данных.
  • Кортеж — ориентированная обработка: дедуктивные базы данных используют ориентированную на набор обработку, в то время как языки логического программирования концентрируются на одном кортеже за раз.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я