Первая нормальная форма
Первая нормальная форма (1НФ) — базовая нормальная форма отношения в реляционной модели данных.
Определение
[править | править код]Переменная отношения находится в первой нормальной форме тогда и только тогда, когда в любом допустимом значении этой переменной каждый кортеж отношения содержит только одно значение для каждого из атрибутов[1].
В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение.
Что же касается различных таблиц, то они могут не быть правильными представлениями отношений и, соответственно, могут не находиться в 1НФ. В соответствии с определением Кристофера Дейта для такого случая таблица нормализована (эквивалентно — находится в первой нормальной форме) тогда и только тогда, когда она является прямым и верным представлением некоторого отношения. Конкретнее, рассматриваемая таблица должна удовлетворять следующим пяти условиям:
- Нет упорядочивания строк сверху вниз (другими словами, порядок строк не несет в себе никакой информации).
- Нет упорядочивания столбцов слева направо (другими словами, порядок столбцов не несет в себе никакой информации).
- Нет повторяющихся строк.
- Каждое пересечение строки и столбца содержит ровно одно значение из соответствующего домена (и больше ничего).
- Все столбцы являются обычными[1].
«Обычность» всех столбцов таблицы означает, что в таблице нет «скрытых» компонентов, которые могут быть доступны только в вызове некоторого специального оператора взамен ссылок на имена регулярных столбцов, или которые приводят к побочным эффектам для строк или таблиц при вызове стандартных операторов. Таким образом, например, строки не имеют идентификаторов кроме обычных значений потенциальных ключей (без скрытых «идентификаторов строк» или «идентификаторов объектов»). Они также не имеют скрытых временных меток[1].
Пример
[править | править код]Исходная ненормализованная (то есть не являющаяся правильным представлением некоторого отношения) таблица:
Сотрудник | Номер телефона |
---|---|
Иванов И. И. | 283-56-82 390-57-34 |
Петров П. П. | 708-62-34 |
Таблица, приведённая к 1НФ, являющаяся правильным представлением некоторого отношения:
Сотрудник | Номер телефона |
---|---|
Иванов И. И. | 283-56-82 |
Иванов И. И. | 390-57-34 |
Петров П. П. | 708-62-34 |
Атомарность
[править | править код]Многие авторы дополняют определение первой нормальной формы требованием атомарности (неделимости) значений[2]. Однако концепция «атомарности» является слишком неясной[1][3]. Например, для многих типов данных (строки, даты, числа с фиксированной точкой и т. д.) значения при необходимости легко могут быть декомпозированы на составляющие элементы с помощью стандартных операций, предоставляемых СУБД. К. Дейт заключает, что «понятие атомарности не имеет абсолютно никакого смысла»[1].
Исторически концепция «атомарности» берёт начало от «простых доменов» (англ. simple domains), предложенных автором реляционной модели данных Э. Ф. Коддом. Цель «нормальной формы», которую предложил Кодд в статье «Реляционная модель данных для больших совместно используемых банков данных»[4], не была связана с каким-либо теоретическим аспектом, например, с борьбой с аномалиями или избыточностью. Кодд предложил использовать «простые домены» только для облегчения будущей программной реализации, а именно:
- для облегчения хранения отношений в виде двумерных массивов
Отношение, все домены которого являются простыми, может быть представлено при хранении двумерным массивом с однородными столбцами.
Оригинальный текст (англ.)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.
Примечания
[править | править код]- ↑ 1 2 3 4 5 С. J. Date. What First Normal Form Really Means //С. J. Date. Date on database: Writings 2000—2006, Apress, 2006, ISBN 978-1-59059-746-0
- ↑ Elmasri, Ramez and Navathe, Shamkant B. Fundamentals of Database Systems, Fourth Edition (англ.). — Pearson, 2003. — P. 315. — ISBN 0321204484.: «It states that the domain of an attribute must include only atomic (simple, indivisible) values and that the value of any attribute in a tuple must be a single value from the domain of that attribute.»
- ↑ Darwen, Hugh. Relation-Valued Attributes; or, Will the Real First Normal Form Please Stand Up? // Relational Database Writings 1989—1991, Addison-Wesley, 1992.
- ↑ Е. Ф. Кодд. Реляционная модель данных для больших совместно используемых банков данных (перевод М. Р. Когаловского) Архивная копия от 22 ноября 2010 на Wayback Machine
Codd, E.F. A Relational Model of Data for Large Shared Data Banks (англ.) // Communications of the ACM : journal. — 1970. — Vol. 13, no. 6. — P. 377—387. — doi:10.1145/362384.362685. Архивировано 12 июня 2007 года.
Литература
[править | править код]- Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 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.