Языки манипулирования данными в реляционных системах

 

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

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.

 

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