9
табельного номера и номера проекта встречается в БД только один раз. Будем 
обозначать такой ключ как (Табельный номер, Номер проекта). В таблицах бу-
дем выделять атрибуты, составляющие ключ, подчеркиванием. 
Очевидно, что атрибуты Табельный номер и Номер проекта по отдельно-
сти не могут  использоваться в  качестве  ключевых, так как, например, одно и 
то же значение  табельного номера может встречаться в БД  несколько раз. На-
пример,  значение  табельного  номера 15 встречается  в  БД  дважды,  так  как  со-
трудник Иванов работает на двух проектах. Атрибут Номер проекта также сам 
по себе не является ключевым, так как, например, номер проекта 2140 встреча-
ется в БД дважды (на этом проекте работают два сотрудника). 
Примечание – Как отмечено выше, приведение к 1НФ необходимо, чтобы ввести дан-
ные в любую реляционную БД. Поэтому, строго говоря, баз данных, не приведенных к пер-
вой нормальной форме, не существует. При этом “степень” разбиения атрибутов на атомар-
ные  значения  может  быть  различной  в  зависимости  от  того,  какие  запросы  возможны  для 
данной  БД.  Например,  если  станет  известно,  что  может  достаточно  часто  требоваться  ин-
формация об объектах, располагающихся на определенной улице, то, возможно, потребуется 
разбить столбец Адрес на столбцы Улица и Дом. 
Легко видеть, что БД, приведенная в таблице 1.2, имеет целый ряд сущест-
венных взаимосвязанных недостатков: 
−  большая  избыточность  данных:  многие  данные  хранятся  многократно. 
Например,  данные  о  каждом  сотруднике (табельный  номер,  фамилия,  специ-
альность, оклад) хранятся столько раз, сколько имеется проектов, над которыми 
работает  данный  сотрудник. Данные о каждом проекте (номер  проекта,  адрес, 
тип объекта, нормативный документ) хранятся столько раз, сколько имеется со-
трудников, работающих над данным проектом. Информация о том, какой нор-
мативный  документ  соответствует  каждому  типу  объекта,  также  хранится  не-
сколько раз (столько, сколько имеется проектов с данным типом объекта); 
−  аномалия добавления (ввода): невозможность ввода данных о сотрудни-
ке, не назначенном ни на один проект (так как при этом одно из полей, состав-
ляющих ключ БД – номер проекта – оказывается пустым). Аналогичным обра-
зом невозможным оказывается ввод данных о проекте, пока на него не назначен 
ни один сотрудник; 
−  аномалия удаления: при удалении данных о проекте могут быть потеря-
ны данные о работниках, занятых в данном проекте, если они не заняты в дру-
гих проектах. Аналогично, при удалении данных о сотруднике можно потерять 
данные о проекте, если этот сотрудник был единственным, работавшим в дан-
ном проекте; 
−  аномалия  обновления:  если  изменяется  какой-либо  атрибут,  то  его  при-
ходится изменять во  многих записях. Например, если у сотрудника  изменится 
оклад,  то изменение потребуется вносить  столько  раз,  сколько  имеется  проек-
тов,  в  которых  работает  данный  сотрудник.  Кроме  того,  при  этом  происходит 
нарушение целостности данных: например, в некоторый момент значения атри-
бута Оклад у одного и того же сотрудника оказываются разными.