Модели и проектирование баз данных

Синтаксис реляционных выражений


.

Определим теперь синтаксис для операций РА, который будем использовать в дальнейшем[22]. Основной синтаксической единицей является выражение

РА, производящее отношение. Любое выражение является безымянным производным отношением.

выражение

::=

унарное-выражение | бинарное-выражение;

унарное-выражение ::=

переименование | выборка | проекция;



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

::=

терм RENAME атрибут AS атрибут;

терм

::=

отношение | (выражение);

выборка

::=

терм  WHERE предикат;

предикат

::=

сравнение | предикат AND предикат |

предикат

OR предикат | NOT предикат[23];

сравнение

::=

символ q символ;

символ

::=

атрибут | константа;

q ::=

< | > | =;

проекция

::=

терм | терм [список];

бинарное-выражение

::=

проекция бинарная-операция выражение;

бинарная-операция

::=

        UNION | INTERSECT | MINUS | TIMES | JOIN | DIVIDEBY;

Здесь атрибут

– идентификатор, список – список разделенных запятыми атрибутов, константа

– литеральное значение.

Примеры.

Унарные выражения.

S RENAME S# AS  Snum;

переименование S# в Snum

S;

проекция S на все атрибуты схемы.

S[S#, Ci];

проекция S на атрибуты {S#, Ci}.

S WHERE Ci = ‘Томск’

выборка по условию Ci = ‘Томск’

Бинарные выражения.

(S[Ci])  UNION  (P[Ci]);

объединение проекций;

(S[Ci]) INTERSECT  (P[Ci]);

пересечение проекций;

(S[Ci])  MINUS  (P[Ci]);

разность проекций;

(S  RENAME  Ci  AS  SCi)  TIMES

(P  RENAME  Ci  AS  Pci);

расширенное прямое произведение;

(SPJ[S#, P#])  DIVIDEBY  (P[P#]);

реляционное деление;

 (S  JOIN  SPJ)[Sn, Qt];

проекция объединения;



Содержание раздела