Я новичок в реляционной алгебре. Я нашел оператор *
в следующем выраженииЧто делает оператор умножения реляционной алгеброй?
Что отличается это и один с использованием присоединиться
Я новичок в реляционной алгебре. Я нашел оператор *
в следующем выраженииЧто делает оператор умножения реляционной алгеброй?
Что отличается это и один с использованием присоединиться
*
следует более правильно записать ×
, поскольку он представляет собой Cartesian product. Эта операция возвращает набор всех кортежей, которые являются конкатенацией кортежей из каждого операнда. Объединение фильтрует декартово произведение только на те кортежи с соответствующими значениями по указанным атрибутам. Если соединение является естественным соединением, как и в вашем примере, атрибуты, совпадающие с ними, это те, у которых одинаковые имена.
К примеру, учитывая следующие два соотношения R
и S
, как показано:
R (a, b, c) S (b, c, d)
(1, 2, 3) (2, 7, 9)
(2, 4, 6) (5, 3, 4)
(3, 6, 9) (2, 3, 6)
Картезианская продукт R × S
является:
(R.a, R.b, R.c, S.b, S.c, S.d)
(1, 2, 3, 2, 7, 9 )
(1, 2, 3, 5, 3, 4 )
(1, 2, 3, 2, 3, 6 )
(2, 4, 6, 2, 7, 9 )
(2, 4, 6, 5, 3, 4 )
(2, 4, 6, 2, 3, 6 )
(3, 6, 9, 2, 7, 9 )
(3, 6, 9, 5, 3, 4 )
(3, 6, 9, 2, 3, 6 )
естественное соединение R ⨝ S
является продуктом фильтрации только кортежей где значения b
и c
:
(a, b, c, d)
(1, 2, 3, 6)
Джойн R ⨝b S
является продукт фильтруется только кортежей, где b
значения соответствуют:
(R.a, b, R.c, S.c, S.d)
(1, 2, 3, 7, 9 )
(1, 2, 3, 3, 6 )
Книга «Основы систем баз данных» - 6-е издание использует знак умножения * в качестве альтернативного обозначения для естественного соединения на стр. 159 (6-е издание, ISBN 0136086209). – pln