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

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

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

Содержание

Определение

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

В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение.

Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в 1NF. В соответствии с определением К. Дж. Дейта для такого случая, таблица нормализована (эквивалентно — находится в первой нормальной форме) тогда и только тогда, когда она является прямым и верным представлением некоторого отношения. Конкретнее, рассматриваемая таблица должна удовлетворять следующим пяти условиям:

  1. Нет упорядочивания строк сверху-вниз (другими словами, порядок строк не несет в себе никакой информации).
  2. Нет упорядочивания столбцов слева-направо (другими словами, порядок столбцов не несет в себе никакой информации).
  3. Нет повторяющихся строк.
  4. Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
  5. Все столбцы являются обычными[1].

«Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток[1].

Пример

Исходная ненормализованная (то есть не являющаяся правильным представлением некоторого отношения) таблица:

Сотрудник Номер телефона
Иванов И. И. 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, которую предложил Э. Ф. Кодд в статье «Реляционная модель данных для больших совместно используемых банков данных»[2] («A Relational Model of Data for Large Shared Data Banks»[3]), вообще не было связано с борьбой с аномалиями или избыточностью. Кодд предложил использовать «простые домены» (simple domains) только для облегчения будущей программной реализации, а именно:

  • для облегчения хранения отношений в виде двумерных массивов

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

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

Примечания

Литература

  • Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — ISBN 5-279-02276-4
  • Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. — ISBN 978-5-94774-736-2
  • Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. — ISBN 5-8459-0788-8 (рус.) 0-321-19784-4 (англ.)
  • Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с. — ISBN 0-201-70857-4
  • Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — ISBN 5-8459-0384-X
  • C. J. Date Date on Database: Writings 2000–2006. — Apress, 2006. — 566 с. — ISBN 978-1-59059-746-0, 1-59059-746-X

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Первая нормальная форма" в других словарях:

  • Нормальная форма Бойса — Кодда — (англ. Boyce Codd normal form; сокращённо BCNF)  одна из возможных нормальных форм отношения в реляционной модели данных. Иногда нормальную форму Бойса Кодда называют усиленной третьей нормальной формой, поскольку она во всех отношениях… …   Википедия

  • Нормальная форма Бойса — Кодда (англ. Boyce Codd normal form; сокращённо BCNF)  одна из возможных нормальных форм отношения в реляционной модели данных. Иногда нормальную форму Бойса Кодда называют усиленной третьей нормальной формой, поскольку она во всех… …   Википедия

  • Нормальная форма — У этого термина существуют и другие значения, см. Нормальная форма (значения). Нормальная форма  свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным… …   Википедия

  • Нормальная форма базы данных — Третья нормальная форма (3NF) одна из возможных нормальных форм таблицы реляционной базы данных. Третья нормальная форма является достаточной при решении большинства практических задач, и процесс проектирования реляционной базы данных, как… …   Википедия

  • Нормальная форма Бойса—Кодда — Основная статья: Нормальная форма Нормальная форма Бойса Кодда (BCNF) одна из возможных нормальных форм таблицы реляционной базы данных. Это модификация третьей нормальной формы (в некоторых источниках именно 3NF называется формой Бойса Кодда).… …   Википедия

  • Нормальная форма Бойса-Кодда — Основная статья: Нормальная форма Нормальная форма Бойса Кодда (BCNF) одна из возможных нормальных форм таблицы реляционной базы данных. Это модификация третьей нормальной формы (в некоторых источниках именно 3NF называется формой Бойса Кодда).… …   Википедия

  • Третья нормальная форма — (англ. Third normal form; сокращённо 3NF)  одна из возможных нормальных форм отношения реляционной базы данных. 3NF была изначально сформулирована Э. Ф. Коддом в 1971 году. Содержание 1 Определение …   Википедия

  • Вторая нормальная форма — Основная статья: Нормальная форма Вторая нормальная форма (англ. Second normal form; сокращённо 2NF) одна из возможных нормальных форм таблицы реляционной базы данных. Содержание 1 Определение 2 Пример …   Википедия

  • Пятая нормальная форма — Основная статья: Нормальная форма Пятая нормальная форма (5NF)  одна из возможных нормальных форм отношения реляционной базы данных. Содержание 1 Определение 1.1 Декомпозиция без потерь …   Википедия

  • Четвертая нормальная форма — Основная статья: Нормальная форма Четвёртая нормальная форма (4NF)  одна из возможных нормальных форм таблицы реляционной базы данных. Определение Таблица находится в 4NF, если она находится в BCNF и не содержит нетривиальных многозначных… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»