Язык, основанный на реляционной алгебре

Язык данных, основанный на реляционной алгебре, был предложен Коддом. Это теоретический язык, позволяющий манипулировать данными в реляционных БД. Этот язык в полном объеме пока не реализован в СУБД. Однако большая часть операций языка так или иначе реализована в современных коммерческих СУБД.

Язык содержит девять операторов. Это операторы для выполнения операций теории множеств над отношениями: объединение, пересечение, произведение, разность отношений, а также операторы для выполнения операций, применимых только к отношениям. К числу последних относятся операция сцепления отношения с множеством (ее еще называют выборкой), операция сцепление двух отношений (или соединение) и операция проекции отношения на его компоненту. При рассмотрении предыдущего параграфа мы могли убедиться в том, что трех последних операций оказывается достаточно для составления разнообразных запросов к БД, связанных с поиском нужных сведений.

Рассмотрим операторы языка, предложенного Коддом.

UNION – объединение. Выполняет операцию объединения отношений.

INTERSECTION – пересечение. Выполняет операцию пересечения отношений.

DIFFERENCE (MINUS) – вычитание. Выполняет операцию вычитания отношений.

SELECT – выборка. Выполняет операцию сцепления отношения с множеством.

JOIN – соединить. Выполняет операцию сцепления двух отношений.

PROJECT – спроектировать. Выполняет операцию проекции отношения на его компоненты.

INSERT – включить. Выполняет операцию добавления кортежей в отношение.

DELETE – удалить. Выполняет операцию удаления кортежей из отношения.

UPDATE – обновить. Выполняет операцию изменения значений атрибутов отношения.

При составлении запросов используются , в основном, три операции: SELECT, JOIN и PROJECT.

 

Конструкция предложения SELECT такова:

SELECT <имя таблицы> WHERE <условие> GIVING TEMP

(выбрать, где, сформировать таблицу, содержащую результат).

 

Конструкция предложения JOIN:

JOIN <имя таблицы> AND <имя таблицы> OVER <имя атрибута, по которому выполняется сцепление> GIVING TEMP

(соединить, и, по, сформировать таблицу, содержащую результат).

 

Конструкция предложения PROJECT:

PROJECT <имя таблицы> OVER <имена атрибутов> GIVING TEMP

(спроектировать, на, сформировать таблицу, содержащую результат).

Предложения языка записываются в том порядке, в котором должны выполняться операции запроса. Сформированная каждым из предложений таблица (TEMP) является исходной для выполнения следующего предложения. Таблица, сформированная последним предложением запроса, содержит окончательный результат выполнения запроса (RESULT).

Составленные ранее запросы запишем с помощью этих операторов. Предложения запросов следуют в том же порядке, в котором следуют операции в записанных ранее формулах запросов.