- •Определение и свойства отношения
- •Отношения и таблицы
- •Содержание
- •Роль нормализации в проектировании реляционных баз данных
- •Нормальные формы
- •Первая нормальная форма (1nf)
- •Вторая нормальная форма (2nf)
- •Третья нормальная форма (3nf)
- •«Ничего, кроме ключа»
- •1. Проектирование баз данных
- •1.1. Реляционная база данных и ее структура
- •1.2.2. Логическая модель
- •Объекты, атрибуты и ключи
- •Нормализация
Определение и свойства отношения
Пусть дана совокупность типов данных 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].
В соответствии с определением К. Дж. Дейта, таблица является прямым и верным представлением некоторого отношения, если она удовлетворяет следующим пяти условиям:
Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несёт в себе никакой информации).
Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несёт в себе никакой информации).
Нет повторяющихся строк.
Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
Все столбцы являются обычными. «Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов, кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток.
Пример
Пусть заданы следующие типы (домены):
T 1 {\displaystyle T_{1}}
=
{Иванов, Петров, Сидоров}T 2 {\displaystyle T_{2}} = {Физика, Химия}
T 3 {\displaystyle T_{3}} = {3, 4, 5}
Тогда декартово произведение T 1 × T 2 × T 3 {\displaystyle T_{1}\times T_{2}\times T_{3}} состоит из 18 кортежей, где каждый кортеж содержит три значения: первое — одна из фамилий, второе — учебная дисциплина, а третье — оценка.
Пусть отношение R имеет заголовок H: { (Фамилия, T1), (Дисциплина, T2), (Оценка, T3)}.
Тогда тело отношения R может моделировать реальную ситуацию и содержать пять кортежей, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал). Отобразим отношение в виде таблицы:
R |
||
Фамилия |
Дисциплина |
Оценка |
Иванов |
Физика |
4 |
Иванов |
Химия |
3 |
Петров |
Химия |
5 |
Сидоров |
Физика |
5 |
Сидоров |
Химия |
4 |
Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение.
Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных.[1] Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации. Как отмечает К. Дейт,[2] общее назначение процесса нормализации заключается в следующем:
исключение некоторых типов избыточности;
устранение некоторых аномалий обновления;
разработка проекта базы данных, который является достаточно «качественным» представлением реального мира, интуитивно понятен и может служить хорошей основой для последующего расширения;
упрощение процедуры применения необходимых ограничений целостности.
Устранение избыточности производится, как правило, за счёт декомпозиции отношений таким образом, чтобы в каждом отношении хранились только первичные факты (то есть факты, не выводимые из других хранимых фактов).
