Отношение (реляционная модель)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от лат. relatio — отношение, связь).

Определения[править | править исходный текст]

n-арным отношением R, или отношением R степени n, называют подмножество декартовa произведения множеств D_1, D_2, ..., D_n (n\ge 1), не обязательно различных. Исходные множества D_1, D_2, ..., D_n называют в реляционной теории доменами (типами данных).

Отношение R состоит из заголовка (схемы) и тела.

  • Заголовок (или схема) Hr отношения R — конечное множество упорядоченных пар вида <A, T>, где A называется именем атрибута, а T обозначает имя домена (множества значений). По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны. Под атрибутом отношения понимается именованное вхождение домена в заголовок отношения.
  • Тело Br отношения R — неупорядоченное множество различных кортежей tr. Кортеж tr, соответствующий заголовку Hr — множество упорядоченных триплетов (троек) вида <A, T, v>, по одному такому триплету для каждого атрибута в Hr, где v — допустимое значением домена T. Так как имена атрибутов уникальны, то указание домена в кортеже обычно излишне.

Основные свойства отношения:

  • В отношении нет двух одинаковых элементов (кортежей).
  • Порядок кортежей в отношении не определён.

Количество кортежей называют кардинальным числом отношения (кардинальностью), или мощностью отношения.

Количество атрибутов называют «арностью» отношения; отношение с одним атрибутом называется унарным, с двумя — бинарным и т.д., с n атрибутами — n-арным. С точки зрения теории вполне корректным является и отношение с нулевым количеством атрибутов.

Отношение обычно имеет простую графическую интерпретацию в виде таблицы, столбцы которой соответствуют атрибутам, а строки — кортежам, а в «ячейках» находятся значения атрибутов в кортежах.

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

В соответствии с определением К. Дж. Дейта, таблица является прямым и верным представлением некоторого отношения, если она удовлетворяет следующим пяти условиям:

  1. Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несет в себе никакой информации).
  2. Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несет в себе никакой информации).
  3. Нет повторяющихся строк.
  4. Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
  5. Все столбцы являются обычными. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток[1].

В строгой реляционной модели не используются термины «таблица», а также «поле» и «столбец» (которые обычно примерно соответствуют понятию атрибута), «строка», «запись» (которые обычно примерно соответствуют понятию кортежа) именно вследствие их нечёткости и слабой формализованности. В частности, ничто не препятствует визуально представить отношение таблицей, в которой столбцы будут соответствовать не атрибутам, а кортежам, а строки — не кортежам, а атрибутам. То есть соотнесение кортежей отношения со строками таблицы, а атрибутов отношения со столбцами таблицы является лишь данью традиции, но не имеет никакой теоретической обусловленности.

Подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости), называется потенциальным ключом.

Пример[править | править исходный текст]

Допустим, содержание доменов следующее:

  • D_1 = {Иванов, Петров, Сидоров}
  • D_2 = {Физика, Химия}
  • D_3 = {3,4,5}

Тогда полное декартово произведение состоит из 18 троек, где первый элемент тройки — одна из фамилий, второй элемент — учебная дисциплина, а третий — оценка.

Тогда отношение R может моделировать реальную ситуацию и содержать пять строк, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал):

R
Фамилия Предмет Оценка
Иванов Физика 4
Иванов Химия 3
Петров Химия 5
Сидоров Физика 5
Сидоров Химия 4

Операции, определённые над отношениями[править | править исходный текст]

См. также: реляционная алгебра, реляционное исчисление.

Любая операция, результатом которой является отношение, подпадает под понятие реляционной операции и может использоваться в реляционной теории и практике. Ниже приведён список из восьми операций, изначально предложенным создателем реляционной модели Эдгаром Коддом. Все операции из списка, кроме деления, по прежнему широко востребованы, однако список не является исчерпывающим, то есть по факту используется гораздо большее число реляционных операций.

  • Объединение — тело отношения-результата является объединением тел отношений-операндов; схема не изменяется.
  • Пересечение — тело отношения-результата является пересечением тел отношений-операндов; схема не изменяется.
  • Вычитание — тело отношения-результата получено вычитанием тел отношений-операндов; схема не изменяется.
  • Проекция — схема отношения-результата является подмножеством схемы отношения-операнда; тело отношения-результата является нестрогим подмножеством тела отношения-операнда вследствие возможного удаления кортежей-дубликатов.
  • Декартово произведение — тело отношения-результата является декартовым произведением тел отношений-операндов; схема результата является конкатенацией схем операндов.
  • Выборка — из отношения-операнда выбираются лишь те кортежи, которые удовлетворяют заданному предикату (условию выборки); схема не изменяется.
  • Соединение — выборка над декартовым произведением.
  • Деление — делитель является унарным отношением, частное — совпадающие части кортежей делимого, перед которыми стоит делитель.

Примечания[править | править исходный текст]

  1. С. J. Date. What First Normal Form Really Means //С. J. Date. Date on database: Writings 2000—2006, Apress, 2006, ISBN 978-1-59059-746-0

Литература[править | править исходный текст]