Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
При ответах на некоторые запросы вместо объединения предпочтительнее пользоваться выбором, включая в его условие операцию «ИЛИ». Это замечание для тех запросов, которые используют информацию из одного файла. В примере, демонстрирующем такую ситуацию, использованы файлы с рисунка 26.
Пример 6: определить номера отделов, в которых используются номера работ 7 и 12.
proj №_отдела (sel (№_работы = 7) оr (№_работы = 12)(Работа))
Пример 7: определить имя служащего либо работающего в третьем отделе, либо занимающего должность зам. начальника отдела
proj Имя_служащего (sel №_отдела = 3 (Служащий))
union proj Имя_служащего(Служащий join proj №_служащего (sel должность = «зам. начальника отдела» (Трудовая деятельность))
д. Операция пересечения.
Синтаксис: ИФ1 intersection ИФ2.
Результат – набор записей, входящих в состав обоих файлов.
Пример:
ИФ1 ИФ2 ИФ1 intersection ИФ2
F1 | G1 |
a | 8 |
b | 5 |
c | 6 |
F1 | G1 |
e | 12 |
b | 5 |
d | 1 |
c | 6 |
F1 | G1 |
b | 5 |
c | 6 |
Рис.27.5
Замечание. Для запросов, использующих один файл удобнее пользоваться операцией выбора с логическим «И».
Пример 8: определить №_отдела, в котором выполняют работу вида 2 и 4.
рroj №_отдела (sel (№_работы = 2) and (№_работы = 4)(Работа)).
Пример 9: определить № отдела, в которой выполняют работу 9 и ведут отчетность по форме 5
proj №_отдела(sel отчетность = 5 (отдел)) intersection proj №_отдела(sel№_работы = 9 (Работа)).
е. Операция вычитания.
Синтаксис: ИФ1 difference ИФ2
Результат – совокупность записей, имеющихся в ИФ1, но отсутствующих в ИФ2.
Пример 10:
ИФ1 ИФ2 ИФ1 union ИФ2
F1 | G1 |
a | 4 |
b | 5 |
c | 6 |
f | 5 |
F1 | G1 |
d | 1 |
b | 5 |
e | 4 |
c | 6 |
F1 | G1 |
a | 4 |
f | 5 |
Рис.27.6
Пример 11: составить список сотрудников, у которых нет детей
proj Имя_служащего((proj №_служащего (Служащий) difference proj №_служащего (Дети)) join Служащий).
ё. Операция деления.
Синтаксис: ИФ1 division ИФ2
Условия выполнения – каждое поле ИФ2 имело те же имя и тип, что и одно из полей ИФ1. В результате деления получается файл, поля которого содержатся в ИФ1, но отсутствуют в ИФ2. Запись включается в результат только при том условии, что в ИФ1 она сцеплена с каждой записью из ИФ2.
Пример12:
ИФ1 ИФ2 ИФ1 division ИФ2
G2 | F1 | G1 |
A | d | 3 |
C | h | 7 |
B | h | 7 |
B | y | 4 |
A | y | 4 |
A | h | 7 |
B | d | 3 |
C | y | 4 |
F1 | G1 |
3 | d |
7 | h |
4 | y |
G2 |
A |
B |
Рис.27.7
Запись А, В включена в результат, так как в ИФ1 есть записи,
G2 | G1 | F1 |
A | d | 3 |
A | h | 7 |
A | y | 4 |
аналогично для записи В, запись С отсутствует, так как в ИФ1 нет записи С d З.
Пример 13:
Определить список отделов, в которых выполняются все виды работ.
Работа division (proj №_работы, описание работы (Работа)).
ж. Операция Умножение (декартово произведение).
Синтаксис: ИФ1 product ИФ2
Результат – совокупность записей, представляющих конкатенацию каждой записи ИФ1 с каждой записью ИФ2.
Пример 14:
F1 | F2 |
b | 4 |
d | 7 |
ИФ1 ИФ2 ИФ1 product ИФ2
F3 | F4 |
A | 4 |
C | R |
ИФ1.F1 | ИФ1.F2 | ИФ1.F3 | ИФ1.F4 |
b | 4 | A | 4 |
b | 4 | C | R |
d | 7 | A | 4 |
d | 7 | C | R |
Рис.27.8
В образованном файле каждое поле сохраняет прежнее имя, но оно дополняется именем файла, из которого взято. Это делается, чтобы избежать совпадения имен полей в одноименном файле.
Пример 15: определить список лиц, которые получили повышение оклада после того, как Иванов (№_служащего 15) занял должность главного инженера.
proj Имя_служащего (proj №_служащего (sel Изм, Окл. Дата_устр.> Труд. Деятельность. Дата_назначения (Изм. оклада product (sel №_служащего = 15 and должность = «главный инженер» (Труд. деятельность)))) join служащий).
Систему операций, используемую для манипулирования отношениями, называют алгеброй отношений. Оператор в ней имеет одно или несколько отношений в качестве операнда и образует новое отношение по определенному правилу.
Можно и далее разработать набор операций для своих узких целей, использую исчисление отношений. Исчисление отношений – это аппарат для формулирования отношения, которое можно получить из хранимых в БД отношений, он предоставляет машине самой решать, какие операции необходимо выбрать для получения нужного отношения из БД.
Символика в исчислении отношений.
Символ | Объяснение |
x • y | Множество значений элементов данных из доменов у отношения х. |
A(x1·y1, x2·y2… ) | Отношение с именем А задано над доменами, которые являются множествами значений х1·у1, х1·у2, … соответственно. |
∃ | «Существует» |
: | «Такой, что». Выражение слева от двоеточия означает то, что должно быть найдено выражение справа – условие. |
∀ | Для любого |
⋀ | «И» должны выполняться одновременно условия слева и справа от знака. |
⋁ | «ИЛИ» должно выполняться хотя бы одно из двух условий. |
− | «НЕ» условие, записанное справа от знака должно не выполняться. |
≠, =, <, >. | Не равно, равно, меньше, больше |
‘x’ | Символьное значение х. |
Рис. 28.
В таблице на рисунке 28 приведен список символов, которые используются в вычислении отношений. Рассмотрим несколько типичных примеров использования исчисления отношений:
Пример 1: из отношения служащий образовать отношение Q, включающее признаки Имя_служащего и з/пл для всех сотрудников отдела 721 с з/пл более 2000:
Q (Служащий ∙ Имя_служащего, Служащий ∙ з/пл):Служащий · №_отдела = 721 ∧ Служащий ∙ з/пл > 2000.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 |


