Проектирование реляционных баз данных. Тюмиков Д.К. - 25 стр.

UptoLike

Составители: 

25
делителя с соответствующими типами и необходимо s(OTN1) => s(OTN2), часть
строки делимого по полям не совпадавшая со строкой делителя, должна быть
сцеплена с каждой строкой делителя, т.е. повторяться m(OTN2) раз в делимом
OTN2. Результатом деления является отношение, содержащее поля не
имеющиеся в делителе со значениями строк, сцепленных в указанном выше
смысле с отношением-делителем.
OTNR := OTN1 division OTN2.
Например:
OTNR OTN1 QTN2
А1 А1 А2 АЗ А2 А3
а d 3
А := а f 7 Division d 3
С с f 7 f 7
с d 3
m(OTNR) = m(OTN1) (OTN2).
s(OTNR) = s(OTN1) — s(OTN2),
Такое деление назовем кратным. Если ослабить второе условие и допустить, что
часть строк делимого сцеплены не со всеми строками делителя или сцеплены со
значениями не имеющихся в делителе, то результатом деления будет тот жe
результат, что и в первом рассмотренном случае, но с остатком.
А1 А1 А2 АЗ А2 А3
а d 3
А := а f 7 Division d 3
С с f 7 f 7
с d 3
остатком деления будет отношение:
OTN0=(b d 3),
которое можно получить, если определить следующую операцию деления:
OTN0 := OTN1 module OTN2.
m(OTNO) = m(OTNI) mod m(OTN2), где mod — деление по модулю,
s(OTN0) = s(OTN1).
УМНОЖЕНИЕ. Результатом умножения (декартово произведение) является
отношение представляющее сцепление (конкатенации) каждой записи первого
отношения с каждой записью второго отношения.
OTNR := OTN1 product OTN2.