Языки запросов



Теоретические языки запросов, предложенные Э.Коддом:

  1. реляционная алгебра – процедурные языки. Над отношением выполняются последовательности реляционных операторов. Операторы состоят из операндов (отношений) и реляционных операций. Результатом является отношение. Пример языка РА – ISBL (базовый язык ИС).
  2. реляционное исчисление – непроцедурные (декларативные), позволяют выражать запросы с помощью предиката первого порядка, которому должны удовлетворять кортежи или домены отношений. SQL.

РА более наглядно описывает выполняемые над отношениями действия. РА включает 8 основных операций: объединение, пересечение, вычитание, произведение, выборка, проекция, соединение и деление. Операции РА могут быть унарными – выполняться над 1 отношением (проекция, выборка) или бинарными – выполняться над 2 отношениями (объединение, произведение).

Принципиальное различие между РА и РИ: в РА процесс получения результата описывается явным образом, путем указания набора операций, которые надо выполнить, а в РИ указываются свойства требуемого отношения (без описания процедуры его получения). Внешне подходы различны: РА – предписывающий, РИ – описательный. На низком уровне они эквивалентны, так как выражения РА могут быть преобразованы в семантически эквивалентные выражения РИ и наоборот.

РИ состоит из двух частей: исчисление кортежей (РИК) и исчисление доменов (РИД). В первом случае для описания отношений используются переменные, дополнительными значениями которых являются кортежи отношения, во втором – элементы доменов.

Запрос (query) – это специальным образом описанное требование, определяющее состав производимых над БД операций по выборке или модификации хранимых данных.

2 языка описания запросов:

1. QBE (Query BY Example) – язык запросов по образцу, визуальное (ручное) формирование запроса, основан на РИД

2. SQL (Structured Query Language) – структурированный язык запросов, программирование запроса, основан на РИК