Как вычислить естественное соединение?

StackOverflow https://stackoverflow.com/questions/547014

  •  23-08-2019
  •  | 
  •  

Вопрос

Может ли кто-нибудь объяснить мне, что здесь происходит и как решить эту проблему?

Предположим, что отношение R(A,B) имеет кортежи:

A B
1 2
3 4
5 6

и отношение S(B,C,D) имеет кортежи:

B C D
2 4 6
4 6 8
4 7 9

Вычислите естественное соединение R и S.Затем определите, какие из следующих кортежей находится в естественном соединении
R |> <| Сб.Вы можете предположить, что каждый кортеж имеет схему (A,B,C,D).

Я не знаю, что на самом деле означает естественное соединение.Можете ли вы объяснить это мне?

Это было полезно?

Решение

Естественное соединение — это соединение («склеивание») элементов двух отношений, в которых есть совпадение.В этом примере

  • (1, 2) Матчи (2, 4, 6) и вы получите (1, 2, 4, 6)
  • (3, 4) Матчи (4, 6, 8) и вы получите (3, 4, 6, 8)
  • (3, 4) Матчи (4, 7, 9) и вы получите (3, 4, 7, 9)

Таким образом, естественное соединение — это {(1, 2, 4, 6), (3, 4, 6, 8), (3, 4, 7, 9)}

Другие советы

Я предполагаю, что R(A,B) — главный, S(B,C,D) — деталь, а B — внешний ключ.

SQL:выберите * из R, S, где R.B = S.B

Тогда результат:

А Б В Г

1 2 4 6

3 4 6 8

3 4 7 9

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top