-
Notifications
You must be signed in to change notification settings - Fork 0
БД3. Реляционное исчисление (вариант кортежей).
Формула реляционного исчисления только устанавливает условия, которым должны удовлетворять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными.
RANGE - оператор, который используется для определения кортежной переменной.
RANGE СОТРУДНИК IS СОТРУДНИКИ
определение переменной СОТРУДНИК, областью определения которой является отношение СОТРУДНИКИ.
Атрибуты переменной - для того, чтобы сослаться на значение атрибута СОТР_ИМЯ переменной СОТРУДНИК, нужно употребить конструкцию СОТРУДНИК.СОТР_ИМЯ
.
Правильно построенные формулы (WFF - Well-Formed Formula) служат для выражения условий, накладываемых на кортежные переменные.
-
простые сравнения - операции сравнения скалярных значений. Например
СОТРУДНИК.СОТР_НОМ = 140
. - логические связки NOT, AND, OR и IF ... THEN.
- кванторы EXISTS var (form) и FORALL var (form)
Переменные, входящие в WFF, могут быть свободными или связанными.
- Все переменные, входящие в WFF, при построении которой не использовались кванторы, являются свободными. Фактически, это означает, что если для какого-то набора значений свободных кортежных переменных при вычислении WFF получено значение true, то эти значения кортежных переменных могут входить в результирующее отношение.
- Если же имя переменной использовано сразу после квантора при построении WFF вида
EXISTS var (form)
илиFORALL var (form)
, то в этой WFF и во всех WFF, построенных с ее участием,var
- это связанная переменная. Это означает, что такая переменная не видна за пределами минимальной WFF, связавшей эту переменную. При вычислении значения такой WFF используется не одно значение связанной переменной, а вся ее область определения.
Целевой список - компонент, который определяет набор и имена столбцов результирующего отношения.
-
var.attr
, где var - имя свободной переменной соответствующей WFF, а attr - имя атрибута отношения, на котором определена переменная var; -
var
, что эквивалентно наличию подспискаvar.attr1, var.attr2, ..., var.attrn
, где attr1, attr2, ..., attrn включает имена всех атрибутов определяющего отношения; -
new_name = var.attr;
new_name - новое имя соответствующего атрибута результирующего отношения.