- •1. Понятие базы данных и системы управления базами данных
- •2. Архитектура баз данных
- •3. Модели данных
- •4. Реляционные базы данных
- •4.1. Основные понятия реляционной модели
- •4.2. Проектирование реляционных баз данных
- •5. Реляционная алгебра
- •6. Языки баз данных
- •6.1. Язык sql
- •6.2. Язык qbe
- •6.3. Язык odl
- •7. Базы данных в сетях
- •8. Системы управления базами данных
- •Заключение
- •Библиографический список
- •Оглавление
- •Учебное издание
- •Базы данных
- •394026 Воронеж, Московский просп., 14
4.2. Проектирование реляционных баз данных
При проектировании реляционной базы данных разработчику необходимо решить вопрос о наиболее эффективной структуре данных. Дублирование данных называется избыточностью данных. Избыточность данных вызывает нежелательные явления, возникающие в процессе работы с базой данных, называемые аномалиями.
Ситуация, при которой изменение значения одного данного, может повлечь за собой просмотр и редактирование нескольких строк таблицы, называется аномалией модификации (редактирования).
При удалении каких-либо данных из таблицы может исчезнуть и информация, напрямую не связанная с удаляемой, возникает аномалия удаления.
Аномалия при которой невозможно ввести одни данные из-за отсутствия других данных, называется аномалией ввода.
Избавится от избыточности данных позволяет нормализация базы данных. Нормализация – это процесс преобразования отношения путем декомпозиции (разбиения) его на два или более отношений, имеющих лучшие свойства. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации.
Нормализации – это классический метод проектирования реляционной базы данных. Исходной точкой здесь является представление предметной области в виде одного или нескольких отношений, и на каждом шаге проектирования производится некоторый набор схем отношений, обладающих лучшими свойствами. Процесс проектирования представляет собой процесс нормализации схем отношений, причем каждая следующая нормальная форма обладает лучшими свойствами по сравнению с предыдущей.
Каждой нормальной форме соответствует некоторый набор ограничений. Отношение находится в определенной нормальной форме, если оно удовлетворяет набору ограничений этой формы. Основные свойства нормальных форм:
- каждая следующая нормальная форма в некотором смысле лучше предыдущей;
- при переходе к следующей нормальной форме свойства предыдущих нормальных форм сохраняются.
В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:
- первая нормальная форма (1NF);
- вторая нормальная форма (2NF);
- третья нормальная форма (3NF);
- нормальная форма Бойса-Кодда (BCNF);
- четвертая нормальная форма (4NF);
- пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).
Процесс нормализации основан на понятии функциональной зависимости. Функциональные зависимости позволяют накладывать определенные ограничения на реляционную схему. Идея состоит в том, что значение одного атрибута в кортеже определяет значение другого атрибута.
Пусть A и B – атрибуты в отношении R. Атрибут В функционально зависит от атрибута А, если в любой момент времени каждому значению атрибута А соответствует в точности одно значение атрибута В. Функциональная зависимость записывается следующим образом: AB. Данная запись означает, что если два кортежа в таблице R имеют одно и тоже значение атрибута A, то они имеют одно и тоже значение атрибута B. Атрибут в левой части называется детерминантом, т.к. его значение определяет значение атрибута в правой части. Ключи таблицы являются детерминантами.
Неключевым атрибутом называется любой атрибут отношения, не входящий в состав первичного ключа
Функциональная зависимость называется полной, если неключевой атрибут зависит от всего составного ключа и не зависит от его частей.
Если атрибут B функционально зависит от атрибута A (AB), а атрибут C функционально зависит от атрибута B (BC), но обратная зависимость отсутствует, то говорят, что атрибут С зависит от А транзитивно.
Два или более атрибута взаимно независимы, если ни один из этих атрибутов не является функционально зависимым от других.
Отношение находится в первой нормальной форме (1NF), если значения его атрибутов атомарны. Исходное отношение строится таким образом, чтобы оно было в 1NF.
Отношение находится во второй нормальной форме (2NF), если выполняются ограничения первой нормальной формы и каждый неключевой атрибут функционально полно зависит от всего первичного ключа.
Отношение находится в третьей нормальной форме (3NF), если выполняются ограничения второй нормальной формы и все неключевые атрибуты взаимно независимы и полностью зависят от первичного ключа (т.е. в отношении отсутствуют транзитивные зависимости неключевых атрибутов от первичного ключа).