Вторая нормальная форма (2NF)

Базы Данных

Вторая нормальная форма (2NF)

Теперь мы можем перейти к следующему этапу нормализации. Чтобы показать, зачем он нужен, поставим небольшой эксперимент. Внесем в нашу таблицу несколько записей (основанных на реально существующих книгах).

ID

Название

Фамилия автора

Имя Автора

Отчество Автора

Предмет

Класс

Издательство

Год издания

Количество

1

Перышкин

А.

В.

Физика

7

Дрофа

2001

100

2

Электромагнитые являния

Гуревич

А.

Е.

Физика

8

Дрофа

2001

100

3

Перышкин

А.

В.

Физика

8

Дрофа

2001

100

4

Перышкин

А.

В.

Физика

9

Дрофа

2001

100

5

Механика

Мякишев

Г.

Я.

Физика

10

Дрофа

2002

100

Из нашего примера видно, что значения многих атрибутов повторяются. Так, один автор может написать несколько книг, разные книги могут издаваться в одном и том же издательстве и т.п.

При этом оператору базы данных часто придется вводить одинаковые значения, что повышает вероятность опечаток, на исправление которых может потребоваться довольно много времени. Этого можно избежать – и заодно сделать поиск по любому из этих значений много быстрее.

Для этого нужно выделить еще три отдельные сущности: “Автор”, “Предмет” и “Издательство”.

Заметим, что все свойства автора – фамилия, имя, отчество – мы вынесли в сущность “Автор”.

Для всех сущностей мы сохранили поле “ID”. Однако их значения независимы друг от друга. Пока мы не указали, как эти сущности между собой связаны; это – задача следующего этапа.

Говорят, что модель данных находится во второй нормальной форме (2NF), если:

      • ·она находится в 1NF
      • ·каждая сущность, которую можно логически отделить от остальных, выделена как отдельная сущность (таблица)
      • ·все атрибуты, логически относящиеся к каждой сущности, отнесены именно к ней (и помещены именно в её таблицу)
      • ·для каждой сущности введён уникальный идентификатор

Важно, что при этом по значению идентификатора любой сущности можно найти все её атрибуты. Например, по значению поля ID в таблице “Автор” можно определить и фамилию, и имя, и отчество.

Отделив сущности “Автор”, “Предмет” и “Издательство”, мы получили возможность получить из базы данных список всех авторов и издательств. Наша база данных удовлетворяет определению 2NF, и мы с полным правом можем сказать, что она находится во второй нормальной форме.

Hosted by uCoz