Первая нормальная форма

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
Основная статья: Нормальная форма

Первая нормальная форма (1NF) — одна из возможных нормальных форм таблицы реляционной базы данных.

Содержание

Определение

Таблица находится в первой нормальной форме, если каждый её атрибут атомарен. Под выражением «атрибут атомарен» понимается, что атрибут может содержать только одно значение. Таким образом, не существует 1NF таблицы, в полях которых могут храниться списки значений. Для приведения таблицы к 1NF обычно требуется разбить таблицу на несколько отдельных таблиц.

Замечание: в реляционной модели отношение всегда находится в 1 (или более высокой) нормальной форме в том смысле, что иные отношения не рассматриваются в реляционной модели. То есть само определение понятия отношение заведомо подразумевает наличие 1NF.

Пример

Пример приведения таблицы к первой нормальной форме

Исходная, ненормализованная, таблица:

Сотрудник Номер телефона
Иванов И. И. 283-56-82
390-57-34
Петров П. Ю. 708-62-34

Таблица, приведённая к 1NF:

Сотрудник Номер телефона
Иванов И. И. 283-56-82
Иванов И. И. 390-57-34
Петров П. Ю. 708-62-34

Атомарность атрибутов

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

Одно и то же значение может быть атомарным или неатомарным в зависимости от смысла этого значения. Например, значение «4286» является

  • атомарным, если его смысл — «пин-код кредитной карты» (при разбиении на части или переупорядочивании смысл теряется)
  • неатомарным, если его смысл — «четные цифры» (при разбиении на части или переупорядочивании смысл не теряется)

Хорошим способом принятия решения о необходимости разбиения атрибута на части является вопрос: «будут ли части атрибута использоваться по отдельности?». Если да, то атрибут следует разделить (но так, чтобы сохранились осмысленные части атрибута). Далее необходимо снова задаться тем же вопросом для новой структуры и так до тех пор, пока не останется атрибутов, допускающих разбиение.

Примеры неатомарного атрибута, часто встречающиеся на практике: составные поля в виде строки идентификаторов, разделённых, скажем, запятыми: 100,32,168,1045

Исходное назначение 1NF

Исходное назначение 1NF, которую предложил Кодд в статье «A Relational Model of Data for Large Shared Data Banks», вообще не было связано с борьбой с аномалиями или избыточностью. Кодд предложил использовать «простые домены» (simple domains) только для облегчения будущей программной реализации, а именно:

  • для облегчения хранения отношений в виде двумерных массивов («A relation whose domains are all simple can be represented in storage by a two-dimensional column-homogeneous array»);
  • для облегчения передачи данных в гетерогенных системах («The simplicity of the array representation which becomes feasible when all relations are cast in normal form is not only an advantage for storage purposes but also for communication of bulk data between systems which use widely different representations of the data.»)
en:First normal form
Личные инструменты

Served in 0.097 secs.