Напомним, что
Всего Э. Ф. Коддом было предложено 8 операций для реляционной алгебры. В общем это множество избыточное, так как одни операции
могут быть представлены через другие, однако множество операций выбрано из соображений
максимального удобства при реализации произвольных запросов к БД. Все множество
операций можно разделить на две группы: теоретико-множественные операции и специальные
операции. В первую группу входят 4 операции. Три первые теоретико-множественные
операции являются бинарными, то есть в них участвуют два отношения и они требуют
эквивалентных схем исходных отношений.
Пусть заданы два отношения R1 = { r1 } , R2 = { r2
}. где r1 и r2 — соответственно кортежи отношений R1
и R2, то объединение
R1
R2 = { г | г R1
r R2
}. Здесь r — кортеж нового отношения, —
операция логического сложения «ИЛИ».
Пример применения
операции объединения приведен на рис. 4.1. Исходными отношениями являются отношения
R1 и R2, которые содержат перечни деталей. изготавливаемых
соответственно на первом и втором участках цеха. Отношение R3 содержит
общин перечень деталей, изготавливаемых в цеху, то есть характеризует общую
номенклатуру цеха.
R1 |
|
Шифр детали |
Название
детали |
00011073 |
Гаика Ml |
00011075 |
Гайка М2 |
00011076 |
Гаика M3 |
00011003 |
Болт Ml |
00011006 |
Болт МЗ |
00013063 |
Шайба Ml |
00013066 |
Шайба МЗ |
R2 |
|
Шифр детали |
Название
детали |
00011073 |
Гайка М1 |
00011076 |
Гайка М3 |
00011077 |
Гайка М4 |
00011004 |
Гайка М2 |
00011006 |
Гайка М3 |
R3 |
|
Шифр детали |
Название
детали |
00011073 |
Гайка Ml |
00011075 |
Гайка М2 |
00011076 |
Гайка МЗ |
00011003 |
Болт Ml |
00011006 |
Болт МЗ |
00013063 |
Шайба Ml |
00013066 |
Шайба МЗ |
00011077 |
Гайка М4 |
00011004 |
Болт М2 |
R3
= R1 R2={ г |
r R1 ^ г R2
}, здесь ^ - операция логического умножения (логическое «И»).
В отношении
R4 содержатся перечень деталей, которые выпускаются одновременно
на двух участках цеха.
R4 |
|
Шифр детали |
Название
детали |
00011073 |
Гайка Ml |
00011076 |
Гайка МЗ |
00011006 |
Болт МЗ |
R5
= RI \ R2 = { r | r R1
^ r R2 }
Отношение
R5 содержит перечень деталей, изготавливаемых только на участке 1,
отношение RG содержит перечень деталей, изготавливаемых только на
участке 2.
R6
= R2 \ R1 = { r | r R2
^ rR1 }
R5 |
|
Шифр детали |
Название
детали |
00011075 |
Гайка М2 |
00011003 |
Болт Ml |
00013063 |
Шайба Ml |
00013066 |
Шайба МЗ |
R6 |
|
Шифр детали |
Название детали |
00011077 |
Гайка М4 |
00011004 |
Болт М2 |
Следует отметить,
что первые две операции, объединение и пересечение, являются коммутативными
операциями, то есть результат операции не зависит от порядка аргументов в операции.
Операция же разности является принципиально несимметричной операцией, то есть
результат операции будет различным для разного порядка аргументов, что и видно
из сравнения отношений R5 и R6.
В отличие
от навигационных средств манипулирования данными в теоретико-графовых моделях
операции реляционной алгебры позволяют получить сразу иной качественный результат,
который является семантически гораздо более ценным и понятным пользователям.
Например, сравнение результатов объединения и разности номенклатуры двух участков
позволит оценить специфику производства: насколько оно уникально на каждом участке,
и, в зависимости от необходимости, принять соответствующее решение по изменению
номенклатуры.
Для демонстрации
возможностей трех первых операций реляционной алгебры рассмотрим еще один пример
— уже из другой предметной области. Исходными являются три отношения R1
R2 и R3. Все они имеют эквивалентные схемы.
Рассмотрим
ситуацию поступления в высшие учебные заведения, которая была характерна для
периода, когда были разрешены так называемые репетиционные вступительные экзамены,
которые сдавались раньше основных вступительных экзаменов в вуз. Отношение R1
содержит список абитуриентов, сдававших репетиционные экзамены. Отношение, R2
содержит список абитуриентов, сдававших экзамены на общих условиях. И наконец,
отношение R3 содержит список абитуриентов, принятых в институт. Будем
считать, что при неудачной сдаче репетиционных экзаменов абитуриент мог делать
вторую попытку и сдавать экзамены в общем потоке, поэтому некоторые абитуриенты
могут присутствовать как в первом, так и во втором отношении.
Ответим на
следующие вопросы:
Прежде всего это те
абитуриенты, которые присутствуют в отношениях R1 и R2,
потому что они поступали два раза, и присутствуют в отношении R3,
потому что они поступили. R = R1
R2
R3
Это прежде всего те
абитуриенты; которые присутствуют в R1 и не присутствуют
в R2, и те, кто присутствуют в R2 и не присутствуют
в R1. И разумеется, никто из них не присутствует в R3.
R = (R1 \ R2)
(R2 \ R1) \ R3
В отсутствие
скобок порядок выполнения операций реляционной алгебры естественный, поэтому
сначала будут выполнены операции в скобках, а затем будет выполнена последняя
операция вычитания отношения R3.
Операции
объединения, пересечения и разности применимы только к отношениям с эквивалентными
схемами.
Кроме перечисленных
трех теоретико-множественных операций в рамках реляционной алгебры определена
еще одна теоретико-множественная операция — расширенное декартово произведение.
Эта операция не накладывает никаких дополнительных условий на схемы исходных
отношений, поэтому операция расширенного декартова произведения, обозначаемая
R1 ® R2, допустима для любых двух отношений. Но прежде
чем определить саму операцию, введем дополнительно понятие конкатенации, или
сцепления, кортежей.
Сцеплением,
пли конкатенацией, кортежей с = <c1, с2,
..., сn> и q = <q1, q2, ..., qm>
называется кортеж, полученный добавлением значений второго в конец первого.
Сцепление кортежей с и q обозначается как (с , q).
(с, q) = <с1
с2, ... , сn, q1, q2, .... qm>
Здесь n —
число элементов в первом кортеже с, m — число элементов во втором кортеже q.
Все предыдущие
операции не меняли степени или арности отношений — это следует из определения
эквивалентности схем отношений. Операция декартова произведения меняет степень
результирующего отношения.
Расширенным
декартовым произведением отношения R, степени n со схемой
SR1=(А1,А2...,Аn)
и отношения R2 степени m со схемой
SR2=(В1,В2,
... , Вm) называется отношение R3 степени n+m со схемой
SR3
= (А1, А2, ... , Аn, В1, В2,
..., Вm),
содержащее
кортежи, полученные сцеплением каждого кортежа г отношения R] с каждым кортежем
q отношения R2.
То есть если R1 = { r }, R2 = { q }
R1
R2 = {(r, q) | r R1
^ q R2}
Операцию
декартова произведения с учетом возможности перестановки атрибутов в отношении
можно считать симметричной. Очень часто операция расширенного декартова произведения
используется для получения некоторого универсума — т. е. отношения, которое
характеризует все возможные комбинации между элементами отдельных множеств.
Однако самостоятельного значения результат выполнения операции обычно не имеет,
он участвует в дальнейшей обработке. Например, на производстве в отношении 07
задана обязательная номенклатура деталей для всех цехов, а в отношении 08 дан
перечень всех цехов.
R7 |
|
Шифр детали |
Название
детали |
00011073 |
Гайка M1 |
00011075 |
Гайка М2 |
00011076 |
Гайка МЗ |
00011003 |
Болт М1 |
00011006 |
Болт МЗ |
00013063 |
Шайба Ml |
00013066 |
Шайба МЗ |
00011077 |
Гайка М4 |
000ll004 |
Болт М2 |
00011005 |
Болт М5 |
00011006 |
Болт М6 |
00013062 |
Шайба М2 |
R8 |
Цех |
Цех 1 |
Цех 2 |
Цех 3 |
Тогда отношение
R9, которое соответствует ситуации, когда каждый цех изготавливает
все требуемые детали, будет выглядеть следующим образом:
R9 |
||
Шифр детали |
Название
детали |
Цех |
00011073 |
Гайка Ml |
Цех 1 |
00011075 |
Гайка М2 |
Цех 1 |
00011076 |
Гайка МЗ |
Цех 1 |
00011003 |
Болт Ml |
Цех 1 |
00011006 |
Болт МЗ |
Цех 1 |
00013063 |
Шайба Ml |
Цех 1 |
00013066 |
Шайба МЗ |
Цех 1 |
00011077 |
Гайка М4 |
Цех 1 |
00011004 |
Болт М2 |
Цех 1 |
00011005 |
Болт М5 |
Цех 1 |
00011006 |
Болт Мб |
Цех 1 |
00013062 |
Шайба М2 |
Цех 1 |
00011073 |
Гайка Ml |
Цех 2 |
00011075 |
Ганка М2 |
Цех 2 |
R10 |
||
Шифр |
Название
детали |
Цех |
00011073 |
Гайка Ml |
Цех 1 |
(МО И 075 000
11 076 |
Гайка М2 Гайка
МЗ |
Цех 1 Цех 1 |
000 11 003 |
! Болт Ml |
Цех 1 |
0011 0006 |
Болт МЗ |
Цех 1 |
00013063 |
Шайба Ml |
Цех 1 |
000 11060 |
Шайба МЗ |
Цех 1 |
000
11 004 |
Болт М2 |
Цех 1 |
00011077 |
Гайка М4 |
Цех 1 |
00011006 |
Болт МЗ |
Цех2 |
00013063 |
Шайба Ml |
Цех 2 |
0013066 |
Шайба МЗ |
Цех 2 |
00011077 | Гайка М4 | Цех 2 |
0001 0778 | Болт М2 | Цех 2 |
00011076 |
Гайка МЗ |
Цех 2 |
00011U03 |
Болт Ml |
Цех 2 |
00011006 |
Болт МЗ |
Цех 2 |
00013063 |
Шайба Ml |
Цех 2 |
00013066 |
Шайба МЗ |
Цех 2 |
00011077 |
Гайка М4 |
Цех 2 |
00011004 |
Болт М'2 |
Цех 2 |
00011005 |
Болт М5 |
Цех 2 |
00011006 |
Болт Мб |
Цех 2 |
00013062 |
Шайба М2 |
Цех 2 |
00011073 |
Гайка Ml |
ЦсхЗ |
00011075 |
Гайка М2 |
ЦехЗ |
00011076 |
Гайка МЗ |
Цех 3 |
00011003 |
Болт Ml |
ЦехЗ |
00011006 |
Болт МЗ |
ЦехЗ |
00013063 |
Шайба Ml |
Цех 3 |
00013066 |
Шайба МЗ |
ЦехЗ |
00011077 |
Гайка М4 |
ЦехЗ |
00011004 |
Болт М2 |
Цех 3 |
00011005 |
Болт М5 |
ЦехЗ |
00011006 |
Болт Мб |
ЦехЗ |
00013062 |
Шайба М2 |
ЦехЗ |
00011006 |
Болт Мб |
Цех 2 |
00013062 |
Шайба М2 |
Цех 2 |
00011073 |
Гайка Ml |
ЦeхЗ |
00011075 |
Гайка М2 |
ЦехЗ |
00011076 |
Гайка МЗ |
ЦехЗ |
00011003 |
Болт Ml |
ЦехЗ |
00011006 |
Болт МЗ |
Цех 3 |
00013063 |
Шайба Ml |
Цех 3 |
00013066 |
Шайба МЗ |
ЦехЗ |
00011077 |
Гайка М4 |
Цeх3 |
00011005 |
Болт М5 |
Цех3 |
00011006 |
Болт Мб |
Цех3 |
00011005 |
Болт М5 |
Цех 1 |
00011006 |
Болт Мб |
Цех 1 |
00013062 |
Шайба М2 |
Цех1 |
В каких запросах
нужно использовать расширенное декартово произведение? Эта операция моделирует
некоторую ситуацию, которая характеризуется словом «все». Поэтому
если нам надо узнать, какие детали в каких цехах из общей обязательной номенклатуры
не выпускаются, то мы можем вычесть из полученного отношения R9 отношение
R10, характеризующее реальный выпуск деталей в каждом цехе.
Отношение
R11, которое является результатом выполнения этой операции, имеет
вид:
R11
= R9 \ R10
R11 |
||
Шифр детали |
Название
детали |
Цех |
00011073 |
Гайка Ml |
Цех 2 |
00011075 |
Гайка М2 |
Цех 2 |
00011076 |
Гайка МЗ |
Цех 2 |
00011004 |
Болт М2 |
ЦехЗ |
00013062 |
Шайба М2 |
ЦехЗ |
00011003 |
Болт Ml |
Цех 2 |
00011005 |
Болт М5 |
ЦехЗ |
Группа теоретико-множественных
операций избыточна, так, например, операцию можно заменить сочетанием операций
объединения и пересечения.
(R1
R2) \ (R1 \ R2)
\ (R2 \ R1)
Однако это
достаточно сложная формула, и именно поэтому все три теоретико-множественные
операции вошли в базовый набор операций реляционной алгебры.
Далее мы
переходим к группе операций, названных специальными операциями реляционной алгебры.
Релятивисты и позитивисты утверждают, что "мысленный эксперимент" весьма полезный интрумент для проверки теорий (также возникающих в нашем уме) на непротиворечивость. В этом они обманывают людей, так как любая проверка может осуществляться только независимым от объекта проверки источником. Сам заявитель гипотезы не может быть проверкой своего же заявления, так как причина самого этого заявления есть отсутствие видимых для заявителя противоречий в заявлении.
Это мы видим на примере СТО и ОТО, превратившихся в своеобразный вид религии, управляющей наукой и общественным мнением. Никакое количество фактов, противоречащих им, не может преодолеть формулу Эйнштейна: "Если факт не соответствует теории - измените факт" (В другом варианте " - Факт не соответствует теории? - Тем хуже для факта").
Максимально, на что может претендовать "мысленный эксперимент" - это только на внутреннюю непротиворечивость гипотезы в рамках собственной, часто отнюдь не истинной логики заявителя. Соответсвие практике это не проверяет. Настоящая проверка может состояться только в действительном физическом эксперименте.
Эксперимент на то и эксперимент, что он есть не изощрение мысли, а проверка мысли. Непротиворечивая внутри себя мысль не может сама себя проверить. Это доказано Куртом Гёделем.
Понятие "мысленный эксперимент" придумано специально спекулянтами - релятивистами для шулерской подмены реальной проверки мысли на практике (эксперимента) своим "честным словом". Подробнее читайте в FAQ по эфирной физике.