Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы данных / БД2012 / Часть 1.doc
Скачиваний:
33
Добавлен:
28.03.2015
Размер:
149.5 Кб
Скачать

Повторяющиеся группы

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

Например, «Кадры». Каждая запись описывает работника. При необходимости вести более исчерпывающую информацию, получим ситуацию, когда объем информации сильно меняется от человека к человеку (прежние места работы, командировки, научные премии, взыскания, напечатанные труды, заболеваемость и т.д.).

Если все это попросту включить в файл KADR, то число полей для каждой записи придется брать по максимуму. Например, ученый может иметь до 10 премий, тогда придется включать в общую таблицу 20 полей: ДАТА1, КОД1; ДАТА2, КОД2;… Большая часть значений этих полей будет пустой.

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

PREM

Таб_ном

Дата_присужд

Код_прем

Главным ключом в этой таблице является Таб_ном + Дата_присуж. Если допустить, что в один день сотрудник может получить две премии (в юбилей), то в

главный ключ придется включить все поля. Одновременно придется ввести и словарь:

SL_PREM

Код_прем

Назв_прем

Рассмотрим еще один пример.

Необходимо вести список сплавов с указанием значений всех возможных параметров для каждого из них. Допустим число параметров равно 100 (плотность, теплоемкость, температура плавления, и т.д.). тогда таблица становится громоздкой:

Сплав

Код_спл

Пар1

Пар2

Пар100

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

Поэтому добавляется таблица, хранящая только имеющиеся параметры:

Сплав-Параметр

Код_спл

Код_парам

Знач_парам

к которой, как и в предыдущем примере нужен словарь (справочник) параметров, содержащий код, наименование и описание параметра.

Единственный недостаток этой таблицы - многократное повторение кода одного и того же сплава.

Нормальные формы

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

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

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

Вторая нормальная форма

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

  • Код заказа (первичный ключ)

  • Код продукта (первичный ключ)

  • Имя продукта

Такая структура не соответствует второй обычной форме, т. к. имя продукта зависит от кода продукта, но не зависит от кода заказа; следовательно, этот столбец зависит лишь от части первичного ключа. Столбец с именем продукта следует удалить из таблицы. Он должен быть включен в другую таблицу (таблицу продуктов).

Замечание. На время анализа таблицы на соответствие второй нормальной форме следует хотя бы мысленно исключить числовые заменители составных первичных ключей (если они имеются).

Соседние файлы в папке БД2012