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

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

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

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

Пусть дана совокупность типов данных T1, T2, ..., Tn, называемых также доменами, не обязательно различных. Тогда n-арным отношением R, или отношением R степени n называют подмножество декартовa произведения множеств T1, T2, ..., Tn[1][2].

Отношение R состоит из заголовка (схемы) и тела. Заголовок представляет собой множество атрибутов (именованных вхождений домена в заголовок отношения), а тело — множество кортежей, соответствующих заголовку[2]. Более строго:

  • Заголовок (или схема) H отношения R — конечное множество упорядоченных пар вида (Ai, Ti), где Aiимя атрибута, а Tiимя типа (домена), i=1,…, n. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны.
  • Тело B отношения R — множество кортежей t. Кортеж t, соответствующий заголовку H, — множество упорядоченных триплетов (троек) вида <Ai, Ti, vi>, по одному такому триплету для каждого атрибута в H, где vi — допустимое значением типа (домена) Ti. Так как имена атрибутов уникальны, то указание домена в кортеже обычно излишне. Поэтому кортеж t, соответствующий заголовку H, нередко определяют как множество пар (Ai, vi).

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

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

Основные свойства отношения[1][2]:

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

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

Отношения и таблицы[править | править вики-текст]

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

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

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

Пример[править | править вики-текст]

Пусть заданы следующие типы (домены):

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

Тогда декартово произведение T_1 \times T_2 \times T_3 состоит из 18 кортежей, где каждый кортеж содержит три значения: первое — одна из фамилий, второе — учебная дисциплина, а третье — оценка.

Пусть отношение R имеет заголовок H: { (Фамилия, T1), (Дисциплина, T2), (Оценка, T3)}.

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

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

Операции над отношениями[править | править вики-текст]

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

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

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

Примечания[править | править вики-текст]

  1. 1 2 Дейт К. Дж., 2005
  2. 1 2 3 4 5 6 Database in Depth, 2005
  3. В частности, ничто не препятствует визуально представить отношение таблицей, в которой столбцы будут соответствовать не атрибутам, а кортежам, а строки — не кортежам, а атрибутам. То есть соотнесение кортежей отношения со строками таблицы, а атрибутов отношения со столбцами таблицы является лишь данью традиции, но не имеет никакой теоретической обусловленности.
  4. Необходимо помнить, что «таблица» чаще всего означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что реляционная модель данных имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».
  5. С. J. Date. What First Normal Form Really Means //С. J. Date. Date on database: Writings 2000—2006, Apress, 2006, ISBN 978-1-59059-746-0

Литература[править | править вики-текст]