-
Определение понятий реляционной модели
Для более ясного понимания сначала неформальное объяснение каждого термина, показанного на рисунке.
-
Отношение соответствует тому, что мы до сих пор называли таблицей.
-
Кортеж – строка таблицы (или запись).
-
Атрибут – столбец таблицы (или поле).
-
Мощность или Кардинальное число – количество кортежей (строк).
-
Степень – количество атрибутов (столбцов).
-
Первичный ключ – такая комбинация атрибутов (или один атрибут), что в любой момент времени нет двух кортежей, содержащих одинаковые значения в этой комбинации атрибутов.
-
Домен – напомним, это совокупность допустимых значений для атрибута.
Приведенные сравнения приблизительны и даны для облегчения понимания этих понятий. Теперь формальное изложение и чтобы его конкретизировать предлагается использовать гипотетический язык описания реляционной модели3. Операторы языка будут постепенно вводиться по ходу изложения.
-
Домен – именованное множество скалярных значений одного типа. Домены имеют уникальные имена в базе данных.
-
Отношение R, определенное на множестве доменов D1, D2, ..., Dk состоит из двух частей: заголовка и тела.
-
Заголовок отношения содержит фиксированное множество пар4 {<A1:D1>,…,<An:Dn>}, где Ai - имя-атрибута, Di - имя-домена. Все имена атрибутов А1, А2, …, Аn разные. Домены D1,…,Dn могут быть одними и теми же для разных атрибутов5. Для каждой пары говорят, что “атрибут Аi определен на домене Di”.
-
Тело отношения состоит из меняющегося во времени множества кортежей размерности m. Каждый кортеж, в свою очередь, содержит множество пар размерности n: {<A1:V1>,<A2:V2>,…,<An:Vn>}, где Ai - имя-атрибута, Vi - значение-атрибута.. Для любой такой пары <Ai:Vi> Vi является значением из домена Di, на котором определен атрибут Ai.
Степень отношения (иногда используется термин арность) – это число его атрибутов (значение n). Отношение степени один называют унарным, степени два – бинарным, степени три – тернарным, степени n – n-арным. Мощность (кардинальное число) отношения – это число его кортежей (значение m). Мощность отношения изменяется во времени в отличие от его степени.
-
Первичный ключ. Пусть R – отношение с атрибутами A1, A2, ..., An. Говорят, что множество атрибутов K = {Ai1, Ai2, ..., Aik} отношения R является потенциальным ключом R тогда и только тогда, когда удовлетворяются два независимых от времени условия:
-
Уникальность: в произвольный заданный момент времени никакие два различных кортежа R не содержат одних и тех же значений набора атрибутов Ai1, Ai2, ..., Aik.
-
Минимальность: ни один из атрибутов Ai1, Ai2, ..., Aik не может быть исключен из множества K без нарушения уникальности.
Один из потенциальных ключей объявляется первичным ключом. Остальные потенциальные ключи, если они есть, называются альтернативными ключами.
-
Свойства отношений
Непосредственно из определения отношений вытекают четыре их свойства:
-
В любом отношении нет одинаковых кортежей. Поскольку тело отношения – это математическое множество, а оно, по определению, не содержит совпадающих элементов, то никакие два кортежа отношения не могут полностью совпадать в любой произвольно заданный момент времени. Это означает, что всегда существует первичный ключ. Так как кортежи уникальны, то, по меньшей мере, комбинация всех атрибутов отношения будет удовлетворять условию уникальности, а значит, при необходимости может служить первичным ключом.
-
В любом отношении кортежи не упорядочены. Это свойство также следует из того, что тело отношения – это математическое множество, а простые множества в математике не упорядочены.
-
В любом отношении атрибуты не упорядочены. Это свойство следует и того, что заголовок отношения также является множеством.
-
В любом отношении все значения атрибутов атомарные, т.е. каждый кортеж содержит только одно значение для каждого атрибута. Это свойство является следствием того, что все лежащие в основе домены содержат только атомарные значения.
Эти свойства четко определяют, что отношение и таблица не есть одно и то же. Даже если рассматривать только таблицы с атомарными значениями в ячейках, первые три свойства для графически изображенной таблицы являются дополнительной абстракцией, потому что ничто не запрещает обычной таблице содержать две одинаковые строки; а строки и столбцы таблицы упорядочены в силу того, что она уже изображена именно в такой последовательности. Тем не менее, мы будем использовать таблицы для удобного представления отношений, не забывая указанных отличий и условившись соблюдать "правила интерпретации" таких изображений.
1 Например, оператор получения подмножества строк и оператор получения подмножества столбцов в данной таблице, оба подмножества, естественно, можно рассматривать как таблицы.
2 Например, мы видим, что строка D2 в таблице "Группа" имеет связь со строкой 57001 в таблице "Студент", говоря "Усманова учится в группе 2-ИЭ". Но эта информация представлена не указателем, а появлением значения D2 в столбце "Номер группы" строки 57001 в таблице "Студент".
3 Кстати, информация, описанная подобным (концептуальным!) языком сохраняется в БД в так называемом словаре данных или, по-другому, в каталоге. Эти данные часто называют метаданные.
4 Заголовок отношения часто рассматривают просто как набор имен атрибутов (т.е. имена доменов часто опускаются). Эта практика несколько небрежна, но удобна, и мы будем ею пользоваться, за исключением тех случаев, когда требуется точность
5 Подчеркнем – из определения следует, что каждый атрибут Ai соответствует одному и только одному из объявленных в системе доменов Dj (j = 1, 2, …, k).
