Нормальная форма Бойса-Кодда
Третья нормальная форма
Вторая нормальная форма
Первая нормальная форма
База данных считается нормализованной, когда каждое поле содержит только одно значение, а каждая таблица состоит из верного набора полей.
Создание многотабличной базы данных
Лабораторная работа №5
Цели работы:На примере построения многотабличной базы освоить приёмы нормализации данных в БД.
Задачи работы:научиться проектировать и создавать многотабличную базу данных.
Общие сведения.
Базы данных должны проектироваться предельно аккуратно, чтобы гарантировать надёжное и правильное хранение данных. Поскольку реляционная модель БД основывается на первичных ключах для идентификации объектов и внешних ключах для создания связей, необходимо следить за целостностью (достоверностью) ключей.
Одной из целей создания базы данных является создание нормализованных (правильно разработаны) таблиц. Нормализация подразумевает разделение таблицы на несколько таблиц с целью исключения дублирования данных.
Нормализация таблиц базы данных - первый шаг на пути проектирования структуры реляционной базы данных. Строго говоря, конечно, не самый первый - сначала надо решить, что же мы вообще будем хранить в базе, то есть определиться со структурой полей, их типами и размерностью, смыслом хранимой в них информации.
Теория нормализации реляционных баз данных была разработана в конце 70-х годов 20 века. Согласно ей, выделяются шесть нормальных форм, пять из которых так и называются: первая, вторая, третья, четвертая, пятая нормальная форма, а также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой. Существует шесть нормальных форм. Каждая нормальная форма разрабатывается на основе предшествующих. На практике в основном применяются три нормальные формы (остальные применяются редко).
База данных считается нормализованной, если ее таблицы (по крайней мере, большинство таблиц) представлены как минимум в третьей нормальной форме. Часто многие таблицы нормализуются до четвертой нормальной формы, иногда, наоборот, производится денормализация.
Главная цель нормализации базы данных - устранение избыточности и дублирования информации. В идеале при нормализации надо добиться, чтобы любое значение хранилось в базе в одном экземпляре, причем значение это не должно быть получено расчетным путем из других данных, хранящихся в базе.
Первая нормальная форма:
· запрещает повторяющиеся столбцы (содержащие одинаковую по смыслу информацию)
· запрещает множественные столбцы (содержащие значения типа списка и т.п.)
· требует определить первичный ключ для таблицы, то есть тот столбец или комбинацию столбцов, которые однозначно определяют каждую строку
Вторая нормальная форма требует, чтобы неключевые столбцы таблиц зависели от первичного ключа в целом, но не от его части. В принципе, если таблица находится в первой нормальной форме и первичный ключ у нее состоит из одного столбца, то она автоматически находится и во второй нормальной форме.
Чтобы таблица находилась в третьей нормальной форме, необходимо, чтобы неключевые столбцы в ней не зависели от других неключевых столбцов, а зависели только от первичного ключа. Самая распространенная ошибка - это расчетные столбцы, значения которых можно получить путем каких-либо манипуляций с другими столбцами таблицы. Для приведения таблицы в третью нормальную форму такие столбцы из таблиц надо удалить.
Нормальная форма Бойса-Кодда требует, чтобы в таблице был только один потенциальный первичный ключ. Чаще всего у таблиц, находящихся в третьей нормальной форме, так и бывает, но не всегда. Если обнаружился второй столбец (комбинация столбцов), позволяющий однозначно идентифицировать строку, то для приведения к нормальной форме Бойса-Кодда такие данные надо вынести в отдельную таблицу.