Вторая нормальная форма
Вторая нормальная форма (англ. Second normal form; сокращённо 2NF) — одна из возможных нормальных форм отношения в реляционной базе данных.
Определение
Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо зависит от (каждого) её потенциального ключа[1].
Неприводимость означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, от которого можно также вывести данную функциональную зависимость[1]. Для неприводимой функциональной зависимости часто используется эквивалентное понятие «полная функциональная зависимость»[1].
Если потенциальный ключ является простым, то есть состоит из единственного атрибута, то любая функциональная зависимость от него является неприводимой (полной). Если потенциальный ключ является составным, то, согласно определению второй нормальной формы, в отношении не должно быть неключевых атрибутов, зависящих от части составного потенциального ключа.
Пример
Пример приведения отношения ко второй нормальной форме
Пусть в следующем отношении первичный ключ образует пара атрибутов {Филиал компании, Должность}:
Филиал компании | Должность | Зарплата | Наличие компьютера |
---|---|---|---|
Филиал в Томске | Уборщик | 20000 | Нет |
Филиал в Москве | Программист | 40000 | Есть |
Филиал в Томске | Программист | 25000 | Есть |
Допустим, что зарплата зависит от филиала и должности, а наличие компьютера зависит только от должности.
Существует функциональная зависимость Должность → Наличие компьютера, в которой левая часть (детерминант) является лишь частью первичного ключа, что нарушает условие второй нормальной формы.
Для приведения к 2NF исходное отношение следует декомпозировать на два отношения:
Филиал компании | Должность | Зарплата |
---|---|---|
Филиал в Томске | Уборщик | 20000 |
Филиал в Томске | Программист | 25000 |
Филиал в Москве | Программист | 40000 |
Должность | Наличие компьютера |
---|---|
Уборщик | Нет |
Программист | Есть |
Примечания
- ↑ 1 2 3 Дейт К. Дж., 2005.
Литература
На русском языке
- Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 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.