Скачиваний:
147
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

6.3. Синтаксис

В этом разделе представлен синтаксис (в основном, синтаксис языка Tutorial D), ко- торый мы будем использовать для выражений реляционной алгебры.

Замечание. В большинстве работ по базам данных для обозначения реляционных операторов используются математические или греческие символы. Например, буква о обозначает оператор выборки, буква п— проекцию, знак п— пересечение и т.д. Мы же предпочитаем использовать ключевые слова, такие как JOIN и WHERE. Хотя при этом дли- на выражений увеличивается, такие выражения являются более дружественными по от- ношению к пользователю.

реляционное выражение>

::= RELATION { <список выражений кортежей> } <имя переменной-отношения> реляционная операция> { реляционное выражение> )

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

реляционная операция>

::= <проекция> | <яе проекция>

Мы различаем операции <проекция> и <не проекция> в синтаксисе только из-за не- обходимости соблюдать приоритет операторов (удобнее назначать более высокий при- оритет операторам проекции).

<проекция>

::= реляционное выражение>

{ [ ALL BUT ] <список имен атри6утов> }

Здесь параметр реляционное выражениё> не должен иметь вид <не проекция>.

<не проекция>

::= <переименование>

<о6ъединениё> | <пересечение> | <вычитание> | <произведениё> <выборка> | <соединение> | <деление>

<переименование>

::= реляционное выражениё>

RENAME <список переименовываемых элементов>

Здесь параметр реляционное выражение> не должен иметь вид <не проекция>. Син- таксис параметра Переименовываемый элемент> можно увидеть в примерах из преды- дущего раздела.

<о6ъещнениё>

::= реляционное выражениё>

UNION реляционное выражениё>

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>, за исключением тех случаев, когда одно или оба выражения, в свою очередь, являются вы- ражениями типа <объединение>.

<пересечение>

::= реляционное выражениё>

INTERSECT реляционное выражение>

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>, за исключением тех случаев, когда одно или оба выражения, в свою очередь, являются вы- ражениями <пересечение>.

<вычитание>

::= реляционное выражение>

MINUS реляционное выражение>

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>.

<произведениё>

:: = реляционное выражение>

TIMES реляционное выражениё>

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>, за исключением тех случаев, когда одно или оба выражения, в свою очередь, являются вы- ражениями <вроизведение>.

<выборка>

::= реляционное выражение> WHERE <логическое выражениё>

Здесь параметр реляционное выражение> не должен иметь вид <не проекция>. Замечание. Параметр Логическое выражение> может включать ссылки на атрибуты отношения, обозначенного как реляционное выражение>, во всех случаях, когда допус- тимо обращение к оператору выбора (например, выражение S WHERE CITY = 'London' является корректной формой операции <выборка>). <соединение>

:: = реляционное выражение>

JOIN реляционное выражение>

Здесь параметры реляционное выражение> не должны иметь вид <не проекциям, за исключением тех случаев, когда одно или оба выражения, в свою очередь, являются вы- ражениями типа <соединение>.

<деление>

::= реляционное выражение>

DIVIDEBY реляционное выражениё> PER <рег>

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>. <рег>

:: = реляционное выражение>

| ( реляционное выражение>, реляционное выражение> )

Здесь параметры реляционное выражение> не должны иметь вид <не проекция>.

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]