Базы данных конспект лекций - Коллектив авторов (2007)

-
Год:2007
-
Название:Базы данных конспект лекций
-
Автор:
-
Жанр:
-
Язык:Русский
-
Издательство:Эксмо
-
Страниц:83
-
ISBN:978-5-699-23778-4
-
Рейтинг:
-
Ваша оценка:
Четкое и лаконичное изложение материала, осознанный отбор важных тем позволяют качественно и быстро подготовиться к экзаменам по данному предмету, семинарам и зачетам.
Базы данных конспект лекций - Коллектив авторов читать онлайн бесплатно полную версию книги
Пусть нам даны два отношения r1(S1) и r2(S2) которые будут выступать в качестве операндов. Они равны:
r1(S1):
r2(S2):
Как мы уже получали ранее, результатом операции естественного соединения этих отношений будет являться таблица следующего вида:
r3(S3) ≔ r1(S1) × r2(S2):
А результатом внутреннего соединения этих же отношений r1(S1) и r2(S2) по условию P = (b1 = b2) будет следующая таблица:
r4(S4) ≔ r1(S1) × Pr2(S2):
Сравним эти два результата, получившиеся новые отношения r3(S3) и r4(S4).
Ясно, что операция естественного соединения выражается через операцию внутреннего соединения, но, что главное, с условием соединения специального вида.
Запишем математическую формулу, описывающую действие операции естественного соединения как производную операции внутреннего соединения.
r1(S1) × r2(S2) = { ρ <ϕ1> r1 × Eρ< ϕ2>r2}[S1 ∪ S2],
где E —условие соединимости кортежей;
E= ∀a ∈S1 ∩ S2 [IsNull (b1) & IsNull (2) ∪b1 = b2];
b1 = ϕ1 (name(a)), b2 = ϕ2 (name(a));
Здесь одна из функций переименованияϕ1 является тождественной, а другая функция переименования (а именно – ϕ2) переименовывает атрибуты, на которых наши схемы пересекаются.
Условие соединимости E для кортежей записывается в общем виде с учетом возможных появлений Null-значений, ведь операция внутреннего соединения (как уже было сказано выше) является производной операцией от операции декартового произведения двух отношений и унарной операции выборки.
6. Выражения реляционной алгебры
Покажем, как можно использовать рассмотренные ранее выражения и операции реляционной алгебры в практической эксплуатации различных баз данных.
Пусть для примера в нашем распоряжении имеется фрагмент какой-то коммерческой базы данных:
Поставщики (Код поставщика, Имя поставщика, Город поставщика);
Инструменты (Код инструмента, Имя инструмента, …);
Поставки (Код поставщика, Код детали);
Подчеркнутые имена атрибутов[1] являются ключевыми (т. е. идентификационными) атрибутами, причем каждый в своем отношении.
Предположим, что к нам, как разработчикам этой базы данных и хранителям информации по этому вопросу, поступил заказ получить наименования поставщиков (Имя Поставщика) и место их расположения (Город Поставщика) в случае, когда эти поставщики не поставляют каких-либо инструментов с родовым именем «Плоскогубцы».
Чтобы в нашей, возможно, весьма обширной, базе данных определить всех поставщиков, отвечающих этому требованию, запишем несколько выражений реляционной алгебры.
1. образуем естественное соединение отношений «Поставщики» и «Поставки» для того, чтобы сопоставить с каждым поставщиком коды поставляемых им деталей. Новое отношение – результат применения операции естественного соединения – для удобства дальнейшего применения обозначим через r1.
Поставщики × Поставки ≔ r1 (Код поставщика, Имя поставщика, Город поставщика, Код поставщика, Код инструмента);
В скобках мы перечислили все атрибуты отношений, участвующих в этой операции естественного соединения. Мы видим, что атрибут «Код поставщика» дублируется, но в итоговой записи операции каждое имя атрибута должно присутствовать только один раз, т. е.:
Поставщики × Поставки ≔ r1 (Код поставщика, Имя поставщика, Город поставщика, Код инструмента);





