Операции деления можно определить с помощью уже ранее введенных операций следующим образом:

где
—это проекция отношения на атрибуты списка
.
Пример.

Включим в список матрицы М атрибуты С и D (из отношения R1), тогда в список
войдут атрибуты А и В, а в список N — атрибуты С и D из отношения R2:

Действительно,


При построении языка манипулирования данными на основе реляционной алгебры каждый оператор языка реализует некоторый набор алгебраических операций, в результате выполнения которых получается желаемое выходное отношение.
Другой подход к построению языка манипулирования данными основан на использовании моделей реляционного исчисления.
Суть этого подхода заключается в том, что желаемый результат определяется не заданием набора операций над отношениями, а путем описания требований, которым должно удовлетворять результирующее отношение. СУБД представляется самой подобрать последовательность операций, ведущих к поставленной цели. Естественно, что языки, основанные на использовании моделей реляционного исчисления, представляют собой языки очень высокого
уровня.
Реляционное исчисление. В реляционном исчислении, так же как и в реляционной алгебре, имеется набор понятий и операций, которые позволяют записывать любое отношение в виде некоторой формулы или формального выражения (α-выражения).
Формулы в реляционном исчислении помимо арифметических операций ( = , ≠, <, ≤, >, ≥) включают дополнительные логические операции. К ним относят операции квантификации:
— квантор общности и
— квантор существования.
Квантор общности
читается как: «все для всех», «для каждого», «каков бы ни был».
Например, запись
x читается «для любого х» или «для всех х».
Квантор существования
читается «для некоторого», «существует хотя бы один». Например,
у читается «для некоторого у» или «существует у такой, что». Кроме кванторов в реляционном исчислении используются логические операции:
,
,
.
Операция
носит название логическое сложение, или дизъюнкция, и по смыслу соответствует слову «ИЛИ». Операция
логическое умножение, или конъюнкция, и соответствует слову «И». Операция
— операция отрицания, соответствует «НЕ». Запись R1
R2 будет читаться как отношение R1 И отношение R2, запись R1
R2 — «отношение R1 ИЛИ отношение R2».
При записи выражений в реляционном исчислении используется понятие свободных или связных переменных.
Вхождение переменных х в формулу реляционного исчисления ψ(х) связано, если в ψ она находится в части формулы, начинающейся квантором
или
, за которым непосредственно следует переменная х. В таких случаях говорят, что квантор связывает переменную х. В остальных случаях вхождение переменной х в формулу ψ свободно.
Например, в формуле

переменная х связана, переменная у в отношении R1 свободна, а в R2 — связана, переменная z свободна.
Формулы в реляционном исчислении строятся из атомов и совокупности арифметических и логических операторов. Атомы в реляционном исчислении представляются по-разному. В зависимости от того, что используется в качестве переменной — кортеж (строка) или атрибут (столбец). Поэтому различают реляционное исчисление с переменными-кортежами и переменными-доменами.
Реляционное исчисление с переменными-кортежами. Выражение такого исчисления может иметь следующий вид:

где r —кортеж: ψ — некоторая формула исчисления. Например, выражение {r|R1(r)
R2(r)}, где в качестве формулы ψ(r) используется выражение R1(r)
R2(r), означает, что необходимо получить множество всех кортежей r, таких, что они принадлежат одновременно как отношению R1, так и отношению R2. В том случае, когда в качестве переменных в реляционном исчислении используются кортежи атомы, из которых конструируются формулы, они могут быть следующих типов:
1. Атом — отношение R(r), где r — кортеж в отношении R.
2. Атом — конструкция типа s[i]θv[j] или s[i]θc, где с — некоторая константа; θ — арифметический оператор (= , ≠, <, ≤, >, ≥);
s, v — кортежи; i, j — номера (или имена) атрибутов (столбцов) в соответствующих кортежах. Например, атом (s[l] =q[7]) означает, что первая компонента кортежа s равна седьмому кортежа q, а атом s[5]<10 означает, что пятая компонента меньше 10. Два перечисленных выше типа вида атомов являются единственными в реляционном исчислении.
Сами формулы рекурсивно конструируются из атомов по следующим правилам.
1. Любой атом—это формула. Все вхождения переменных-кортежей, упомянутые в атоме, являются свободными.
2. Если ψ формула, то
ψ — тоже формула (
—символ логического отрицания).
3. Если ψ1 и ψ2 формулы, то и выражения ψ1
ψ2 и ψ1
ψ2 также являются формулами. Причем свободными (связными) являются те и только те вхождения переменных, которые происходят от свободных (связных) вхождений переменных ψ1 и ψ2.
4. Если ψ формула и r — свободная переменная-кортеж этой формулы, то
r(ψ)) и
r(ψ) также формулы, переменная в этом случае становится связанной.
5. Формулы могут при необходимости заключаться в скобки.
6. Ничто иное не является формулой.
Реляционное исчисление с переменными-доменами. В этом случае в качестве переменных вместо кортежей используются домены. Реляционное исчисление с переменными на доменах строится с использованием тех же операторов, что и с переменными кортежами. Но в качестве атомов формул исчисления используются следующие типы:
1. R(x1, х2, ..., хп), где R — n-арное отношение, xi — константа или переменная на некотором домене.
Атом R(x1, х2, ..., хп) указывает, что значения xi, которые являются переменными, должны быть выбраны так, чтобы (x1, х2, ..., хп) было кортежем отношения.
2. хθу, где х и у — константы или переменные на некотором домене, θ — арифметический оператор сравнения.
В остальном формулы реляционного исчисления с переменными-доменами строятся аналогично формулам исчисления с переменными-кортежами.
Выражение реляционного исчисления с переменными на доменах имеет вид {х1, х2.....хп|ψ(х1, х2, ..., хn)}, где ψ — формула, обладающая тем свойством, что только ее свободные переменные на доменах являются различными переменными x1, x2, ..., хп.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |


