Я не понимаю ответы на этот вопрос с естественным соединением и проекцией - PullRequest
0 голосов
/ 04 июля 2019

Я слежу за MOOC, но не понимаю ни правильного ответа, ни других ответов.
MOOC закрыт, и я не могу задавать вопросы на форуме.

Это вопрос:

Учитывая следующее соотношение R:
A B C D
1 0 2 2
4 1 2 2
6 0 6 3
7 1 2 3
1 0 6 1
1 1 2 1

Между всеми этими запросами, какой из них возвращает одинаковое отношение R?

  1. Π А, В, С, D (R⋈δ A → D, D → F (R)) * * тысяча двадцать два
  2. R⋈δ A → D, D → A (R) * 1 026 *
  3. R⋈δ B → C, C → B * * тысяча двадцать девять (R)
  4. Π A, B, C, D (R⋈δ B → G, C → F (R)) (примечание: это правильный ответ)

Единственное объяснение:

Первые 3 ответа освобождают кортеж (4,1,2,2). В последнем соединении ни один кортеж не теряется.

Не могли бы вы рассказать подробнее, что делают ответы?
Большое спасибо за внимание!

1 Ответ

1 голос
/ 05 июля 2019

Это вопрос о естественном объединении реляционной алгебры и присвоении имен атрибутам.Я полагаю, что в ваших формулах ворсистая вещь относится к переименованию, обычно обозначаемому греческой буквой 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 нет общих значений, поэтому при их перестановке в цикле при переименовании возвращается пустой результат.

...