Здравствуйте, уважаемые посетители сайта ZametkiNaPolyah.ru. Продолжаем изучать базы данных и наше знакомство с библиотекой SQLite3.  Рассмотрим более подробно первую нормальную форму. Для тех, кто уже забыл, я приведу заново определение первой нормальной формы. Переменная отношения находится в первой нормальной форме (1НФ) тогда и только тогда, когда в любом допустимом значении отношения каждый его кортеж содержит только одно значение для каждого из атрибутов.

Напоминаю и о том, что в определение первой нормальной формы фигурирует термин отношение, а не таблица: всё дело в том, что отношение по своей сути, как минимум должно находиться в первой нормальной форме, таблица – нет.

Ключевым свойством первой нормальной формы является атомарность: значение в ячейки таблицы может быть только одно, например, если столбец называется ФИО, то значение будет Иванов Иван Иваны, а если столбец должность, то значение будет инженер, но никак не: механик, электрик, сантехник.

Давайте разберем пример первой нормальной формы.

Таблица, которая не находится в первой нормальной форме

Таблица, которая не находится в первой нормальной форме

На рисунке выше таблица не находится в первой нормальной форме, поэтому не является отношением. Всё дело в том, что у сотрудника Пупкина Сергея в столбце должность указано два значения: механик и сантехник. Давайте приведем нашу таблицу к первой нормальной форме.

Таблица, которая находится в первой нормальной форме

Таблица, которая находится в первой нормальной форме

Таблица на Рисунке действительно находится в первой нормальной форме, поскольку в каждой ячейки содержится только одно логическое значение, то есть было соблюдено свойство атомарности. Добились мы этого путем дублирования данных о сотруднике с кодом 1, следовательно, мы внесли избыточность в базу данных, но привели ее к первой нормальной форме. Избавиться от избыточности в базе данных нам поможет вторая нормальная форма.

 

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Loading Disqus Comments ...