Почему условие совместимости объединения не применимо к декартовому произведению? - PullRequest
0 голосов
/ 03 сентября 2018

При изучении реляционной алгебры я обнаружил, что для применения UNION, INTERSECTION и SET DIFFERENCE к любой реляционной схеме реляционная схема должна иметь UNION COMPATIBLE, потому что эти операции являются операциями над множествами

Но для декартового произведения также задана операция, тогда почему условие СОВМЕСТИМОСТИ СОЮЗА не является необходимым, когда мы применяем операцию декартового произведения к двум реляционным схемам?

1 Ответ

0 голосов
/ 03 сентября 2018

Для наборов R & S,

Кортеж находится в R ∪ S, если и только если он находится в R ИЛИ в S.
Кортеж находится в R ∩ S тогда и только тогда, когда он находится в R AND в S.
Кортеж находится в R - S тогда и только тогда, когда он находится в R, а НЕ в S.

Для отношений (которые определяются как наборы или как наборы плюс заголовки),

UNION возвращает кортежи, которые находятся в одном операнде ИЛИ в другом.
INTERSECTION возвращает кортежи, которые находятся в одном операнде И другом.
DIFFERENCE возвращает кортежи, которые находятся в одном операнде, а НЕ в другом.

Таким образом, мы можем разумно назвать их операциями "set" или "boolean".

Если каждое базовое отношение содержит кортежи, которые составляют истинное предложение (утверждение) из некоторого связанного предиката (шаблон предложения, параметризованный именами атрибутов), тогда каждый результат запроса имеет предикат, сделанный из его предикатов-операндов, а его значение содержит кортежи, которые делают истинное предложение из этого предиката:

Предположим, U содержит кортежи, где U & V содержит кортежи, где V . Тогда

U UNION V содержит кортежи, где U ИЛИ V
U INTERSECTION V содержит кортежи, где U И V
U DIFFERENCE V содержит кортежи, где U И НЕ V

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

U JOIN V содержит кортежи, где U И V
U RESTRICTcondition содержит кортежи, где U И условие
U PROJECT A содержит кортежи, в которых значения FORSOME для всех атрибутов, кроме A, U
U RENAME A A' содержит кортежи, где U с заменой A на A '

Таким образом, все реляционные операторы могут быть привязаны к синтаксису и семантике логики предикатов . Какой язык / обозначение точности в математике, естествознании (включая информатику) и инженерии (включая разработку программного обеспечения). Фактически, именно так мы знаем, что означает запрос . Так что на самом деле эти три оператора не являются в некотором смысле булевыми по своей природе настолько, что все реляционные операторы логические : каждое выражение отношения соответствует логическому выражению предиката.

Три «оператора множеств» называются так, потому что множество, являющееся телом отношения результата, возникает из множеств, являющихся телами отношений операндов согласно операторам множеств с одинаковыми именами. И это может быть полезным способом сгруппировать их в своем уме или вспомнить их или их имена, и, без сомнения, вдохновил их имена. Но в свете соответствия между операторами отношений и логическими связями / нетерминалами предикатов, а также соответствия между выражениями отношений и логическими выражениями предикатов и соответствия между предикатами и значениями отношений тот факт, что некоторые операторы отношений напоминают некоторые операторы множества, равен совершенно не имеет значения .

(Так же как и тот факт, что вы можете создать алгебру с такими вещами, как отношения, но чьи тела - сумки, а не наборы.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...