Каждая из нормальных форм получается последовательно из предыдущей нормальной формы. Кроме того, каждая последующая нормальная форма сохраняет свойства предыдущей нормальной формы и удаляет некоторые аномалии, присущие своей предшественнице.
Условиям первой нормальной формы удовлетворяет таблица, в которой:
Ø каждое поле содержит неделимую информацию;
Ø отсутствуют повторяющиеся группы полей.
Таблица, соответствующая второй нормальной форме, должна отвечать следующим требованиям:
Ø таблица должна быть приведена к первой нормальной форме;
Ø любое поле таблицы, не являющееся ключевым, должно однозначно идентифицироваться ключевыми полями.
Третья нормальная форма предъявляет к таблице следующие требования:
Ø таблица должна быть приведена ко второй нормальной форме;
Ø каждое из неключевых полей таблицы должно однозначно идентифицироваться только значениями ключевых полей и не зависеть от любого другого неключевого поля.
Рассмотрим теперь процесс нормализации БД на конкретном примере. Спроектируем БД для хранения информации о читателях библиотеки.
Итак, нам необходимо первоначальное распределение данных по полям таблицы. Сделаем предварительный набросок полей (табл. 2.5).
Структура ненормализованной таблицы
Читатель |
Дата |
Книга |
.... |
.... |
.... |
Мы спроектировали три поля. Поле Читатель содержит информацию о читателе: ФИО, возраст, адрес, телефон, паспортные данные. В поле Дата находится число, когда читатель взял книгу из библиотеки. Поле Книга должно хранить полную информацию о книге: название, авторы, издательство, количество страниц.
Созданная нами таблица из трех полей имеет простую структуру, и ее можно рассматривать как БД, состоящую из одной таблицы. Однако эта таблица не соответствует требованиям, предъявляемым к нормальным формам. Попробуем привести ее к первой нормальной форме.
Первое и последнее поля таблицы не отвечают требованию о неделимости информации поля. Разобьем поле Читатель на пять полей: ФИО читателя, возраст, адрес, телефон и паспортные данные. Также выделим из поля Книга четыре поля: название книги, авторы, издательство и количество страниц. В результате у нас получится таблица иного вида.
Таблица в первой нормальной форме
Ф.И.О. |
Возраст |
Адрес |
Телефон |
Паспорт |
Дата |
Книга |
Автор |
Издательство |
Количество страниц |
.... |
.... |
.... |
.... |
.... |
.... |
.... |
.... |
.... |
.... |
Для того чтобы привести таблицу ко второй нормальной форме, нужно добавить в нее дополнительное ключевое поле. Назовем это поле Номер выданной книги. Каждая последующая выданная книга будет иметь свой уникальный номер.
Теперь осталось внести изменения, сводящие нашу таблицу к третьей нормальной форме. Для этого разобьем таблицу на две: таблицу читателей и таблицу книг. Затем свяжем эти таблицы по ключевому полю Номер выданной книги.
Таблица читателей
Номер |
Ф.И.О. |
Возраст |
Адрес |
Телефон |
Паспорт |
.... |
.... |
.... |
.... |
.... |
Таблица книг
Дата |
Книга |
Автор |
Издательство |
Количество страниц |
.... |
.... |
.... |
.... |
.... |
Процесс проектирования структуры и нормализации БД может быть весьма трудоемким, так как иногда таблицы содержат несколько сотен полей, а база данных может включать сотни таких таблиц. Организовать правильную взаимосвязь данных в таких случаях вручную очень тяжело. Для облегчения этой задачи существуют специальные системы автоматизации разработки приложений (например, CASE, Computer Aided Software Engineering).
Системы CASE - это приложения, которые предназначены для проектирования информационных систем (анализ и формулирование требований, проектирование БД, тестирование, генерирование кода и многое другое).
Таким образом, СУБД Microsoft Access также можно
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.