Написать утверждение в реляционной алгебре - PullRequest
0 голосов
/ 22 апреля 2019

У меня возникают проблемы при попытке написать следующее утверждение в реляционной алгебре:

select A.name, A.gender, A.class, B.sid from A,B;

Не знаю, поможет ли это, но A и B подключаются через первичный ключ sid

Когда я возился с этим, я придумал это:

π A.name, A.gender, A.class, B.sid (A,B)

Но я не уверен, правильно ли это

1 Ответ

1 голос
/ 22 апреля 2019

Обозначение FROM A,B в SQL используется не часто, как некоторое время назад, оно соответствует декартовому произведению (которое теперь чаще пишется как FROM A CROSS JOIN B), которое объединяет каждый кортеж A со всеми кортежами B.

В реляционной алгебре это можно выразить через оператор для декартового произведения, x, поэтому запрос можно перевести как:

π A.name, A.gender, A.class, B.sid (A x B)

Обратите внимание, что в реляционной алгебре аргументы двух таблиц оператора x обычно требуются с разными атрибутами.

Наконец, обратите внимание также на то, что этот оператор игнорирует тот факт, что кортежи двух отношений связаны каким-либо атрибутом (например, внешним ключом).

...