Отношение в реляционной модели: заголовок и смысл тела? - PullRequest
1 голос
/ 02 февраля 2020

Отношение в реляционной модели - это то, что SQL представляет с таблицей. Можно сказать, что таблица - это попытка SQL представить отношение. Возвращаясь к отношению, которое SQL пытается представить с помощью таблицы: отношение имеет заголовок и тело. Заголовок - это набор атрибутов (которые SQL пытается представить столбцами), каждый из которых имеет заданный тип. Атрибут идентифицируется по имени и имени типа. Тело - это набор кортежей (которые SQL пытается представить строками). Заголовок каждого кортежа является заголовком отношения. Каждое значение атрибута каждого кортежа имеет свой соответствующий тип.

Что мы подразумеваем под заголовком отношения - это набор атрибутов, а тело - это набор кортежей?

Если мы рассмотрим эти две таблицы:

Employee : EmployeeId,FirstName,LastName,DepartmentId

Department : DepartmentId, DepartmentName, Description

Если я хочу выбрать сотрудников и их отделы, запрос будет выглядеть следующим образом:

SELECT * FROM Employee E
LEFT Department D ON E.DepartmentId=D.DepartmentId

В этом случае, каков заголовок и тело, соответствующее математике c определение реляционного?

1 Ответ

2 голосов
/ 03 февраля 2020

В реляционной модели

Атрибут - это имя в паре с типом данных.

Набор атрибутов с уникальными именами называется заголовком .

A кортеж представляет собой набор значений атрибутов , соответствующих заданному c заголовку .

Отношение - это несортированный, уникальный набор кортежей .

A кортеж может быть только частью отношения , если их заголовок точно совпадают.

Набор кортежей , которые все соответствуют одному и тому же заголовку , называются телом .

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

В реляционной базе данных

отношение реализовано в виде таблицы.
(Примечание: реляционная модель описывает кортежи в отношении как уникальные, но не знаю СУБД, о которой я знаю применяет это правило, если не объявлен уникальный ключ (в форме первичного ключа, уникального ограничения или уникального индекса).

A Заголовок является определением столбца таблицы.

A tuple - это строка в таблице.

Значение атрибута - это значение определенного столбца c в указанном c ro w.

Чтобы ответить на ваш вопрос

В этом случае, каков заголовок и тело, соответствующее математике c определение реляционного?

Учитывая таблицы, которые вы описали в своем вопросе, и запрос, который вы используете для выбора из этих таблиц, результирующий набор этого запроса не может рассматриваться как отношение, так как в его заголовке есть дублирующий атрибут - DepartmentId столбец существует в обеих исходных таблицах.

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

Для получения дополнительной информации читайте Отношение (база данных) в Википедии.

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