Это вопрос о естественном объединении реляционной алгебры и присвоении имен атрибутам.Я полагаю, что в ваших формулах ворсистая вещь относится к переименованию, обычно обозначаемому греческой буквой rho ρ
(см. Ссылку в википедии).
Для естественного объединения см. Пример википедии и примечание
Результатом естественного объединения является набор всех комбинаций кортежей в R
и S
, которые равны по своим общим именам атрибутов.
Как правило, из-за переименования в четырех формулах результат переименованного R
не будет иметь тех же имен атрибутов, что и исходный R
, или не будет совпадать по значениям.в результирующих одноименных атрибутах.
Я предлагаю вам пройти через все четыре переименования и выяснить, каковы «заголовки» каждого результата, то есть, каковы итоговые имена атрибутов.
Вы найдете в запросах 1., 2., 3. хотя бы один результирующий атрибут с тем же именем, что и у исходного R
, но значения этого атрибута не совпадают.
В запросе 4. хотя атрибуты B, C
переименованы, их новые имена не конфликтуют ни с одним существующим атрибутом в R
.Таким образом, Natural Join к оригинальному R
будет использовать атрибуты A, D
.Это даст интересный промежуточный результат: рассмотрим кортежи <1, 0, 6, 1>, <1, 1, 2, 1>
, каждый из которых содержит равные значения в атрибуте A
и атрибуте D
.
Но затем в запросе 4. проекция выбрасываетудалите недавно названные атрибуты G, F
и сверните обратно к исходному A, B, C, D
.Таким образом, в общем случае запрос 4. всегда возвращает точно оригинал R
.
Запросы 1., 2., 3. иногда могут возвращать оригинал R
, в зависимости от содержимого R
.Но с содержимым, которое вы показываете, есть конфликты недавно присвоенных атрибутов с одинаковыми именами с неравными значениями, поэтому они действительно «теряют» кортежи.
Кстати, хотя кортеж <4, 1, 2, 2>
действительно теряется.в этих трех запросах это не единственный кортеж, который «теряется».В частности, в запросе 3. обратите внимание, что для примеров данных между B, C
нет общих значений, поэтому при их перестановке в цикле при переименовании возвращается пустой результат.