Языки манипулирования данными в реляционных системах
Рассмотренные выше реляционная алгебра и реляционные исчисления над кортежами и доменами явились теоретической основой для реализации языков манипулирования данными в реляционных системах. Далее приводятся примеры наиболее известных языков, используемых в реляционных СУБД.
1) На основе реляционной алгебры фирмой IBM был разработан язык ISBL(Information System Base Language). Выражения этого языка строятся с помощью операций, соответствующих операциям реляционной алгебры или их обобщениям. Например, объединение, пересечение, соединение и выбор обозначаются соответственно: (R : F).
Результат вычисления любого выражения языка ISBL может быть присвоен некоторому отношению, либо напечатан с помощью ключевого слова list.
2) Реляционное исчисление кортежей послужило основой для создания языка QUEL(QUEry Language), разработанного в университете шт. Калифорния. Все переменные языка неявно связаны квантором существования, и область определения каждой из них ограничена одним из отношений. Объявление переменной и её привязка к определенному отношению производится с помощью оператора следующего вида:
range of <переменная> is <имя отношения>
Основная форма оператора запроса в QUEL является:
retrieve (<целевой список>) where <условие>,
где условию соответствует формула исчисления кортежей. Целевой список представляет собой последовательность компонент переменных, напоминающую ту часть выражения в исчислении доменов, что расположена слева от вертикальной черты. Результат запроса можно присвоить некоторому отношению, если после ключевого слова retrieve написать into <отношение>.
3) Слабость языка QUEL заключается в том, что он использует для исчисления кортежей только кванторы существования. Это послужило причиной роста популярности другого языка, основанного на полном исчислении кортежей и частично реляционной алгебре - язык SQL. Язык SQL был разработан в научно-исследовательской лаборатории фирмы IBM в Сан-Хосе (шт. Калифорния).
Основной операцией в SQL служит отображение, представляющее собой композицию ограничения предикатом и проекции. В простейшем случае отображение выражается синтаксической конструкцией вида:
select <список атрибутов>
from <отношение>
where <условие>
4) Реляционное исчисление доменов стало основой для создания языка QBE(Query-By-Example) – реляционного языка манипулирования данными, разработанного Злуфом из Уотсоновского исследовательского центра фирмы IBM. Язык QBE обладает двумерным синтаксисом. Запрос формулируется путём заполнения табличной формы, содержащей имя отношения и имена атрибутов схемы. Строки запроса имеют вид:
Имя отношения | Имя атр.1 | …. | Имя атр.n |
операция |
Примером СУБД, реализующей язык QBE, является Paradox.
Каждый из рассмотренных языков обладает своими особенностями. Языки, основанные на реляционных исчислениях, - непроцедурные языки, поскольку их средствами можно описать то, что необходимо и не обязательно указывать, как это получить. Выражения реляционной алгебры задают конкретный порядок выполнения операций. В общем случае языки манипулирования данными реальных СУБД выходят за рамки абстрактных языков, так как для обработки данных требуются операции, выходящие за рамки возможностей реляционной алгебры или реляционного исчисления. К таким командам относятся команды добавления, изменения, удаления, а также команды присваивания, печати, функции и другие.