- •Тема 3.1. Разработка информационно-логической модели 2
- •Тема 3.1. Разработка информационно-логической модели
- •3.1.1. Основные понятия теории баз данных
- •3.1.2. Виды моделей данных
- •Иерархическая модель
- •Основные свойства иерархической модели
- •Сетевая модель
- •Реляционная модель
- •Правила назначения ключа таблицы
- •3.1.3. Информационно-логическая модель данных
- •3.1.4. Нормализация отношений Понятие нормализации отношений
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (3нф)
- •Устранение связи «многие-ко-многим»
Первая нормальная форма (1нф)
Таблица считается нормализованной или приведенной к первой нормальной форме (1НФ), если все значения полей простые (то есть неделимые).
Иначе говоря, каждый атрибут для каждого экземпляра сущности имеет только одно значение. Требование 1НФ, по сути, повторяет свойство реляционных таблиц: каждый элемент таблицы — один элемент данных
Рассмотрим пример. Таблица 3.1.3 содержит сведения о дисциплинах, преподавателях и учебниках
Таблица 3.1.3. Пример множественных значений атрибутов в таблице
Данная таблица не удовлетворяет требованию 1НФ, потому что содержит ячейки, в которых указаны несколько возможных значений реквизита
Приведение к 1НФ заключается в выполнении операции вставки: в таблицу включаются дополнительные строки, так, чтобы в каждой строке каждый атрибут принимал единственное значение. В нашем примере необходимо добавить строки, чтобы каждый преподаватель и каждая книга были помещены в отдельную ячейку (табл. 3.1.4). Всего для указанных значений реквизитов потребуется 3 х 4 + 2 х 3 = 18 строк
Таблица 3.1.4. Приведение таблицы к 1НФ
Рассмотрим другой пример. Таблица 3.1.5 имеет так называемые составные атрибуты — «ФИО», «Адрес» и «Паспорт». Составные атрибуты затрудняют обработку данных. Для упрощения обработки удобнее разбить поле «ФИО» на отдельные поля («Фамилия», «Имя», «Отчество»); поле «Адрес» — на поля «Город», «Улица», «Дом», «Квартира»; поле «Паспорт» — на поля «Серия» и «Номер»
Таблица 3.1.5. Пример составных атрибутов
Приведение к 1НФ в данном случае вызовет появление в таблице новых столбцов, а данные в отдельных полях опять могут дублироваться, потому что много людей живет в одном городе или на одной улице.
Из примеров видно, что в результате приведения к 1НФ может появиться избыточность данных и, как следствие, аномалии добавления, удаления и модификации.
Избыточность данных говорит о том, что реквизиты данного отношения, возможно, не находятся в полной функциональной зависимости, о которой пойдет речь ниже.
Вторая нормальная форма (2нф)
Чтобы рассмотреть вопрос приведения отношений ко второй нормальной форме (2НФ), необходимо дать пояснения к таким понятиям, как функциональная зависимость и полная функциональная зависимость.
Описательные реквизиты информационного объекта логически связаны с общим для них ключом — эта связь называется функциональной зависимостью реквизитов.
Так, в сущности «Студент», (см. табл. 3.1.1) атрибуты «Фамилия», «Имя», «Отчество» и пр. находятся в функциональной зависимости от ключевого реквизита «Номер личного дела».
Функциональная зависимость реквизитов означает, что для каждого экземпляра сущности значению его ключевого атрибута соответствует только одно значение описательного атрибута.
Такое определение функциональной зависимости позволяет при анализе всех взаимосвязей реквизитов предметной области выделить самостоятельные сущности.
В случае наличия в таблице составного ключа вводится понятие функционально-полной зависимости.
Функционально-полная зависимость неключевых атрибутов заключается в том, что каждый неключевой атрибут функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Таблица находится во второй нормальной форме, если она находится в 1НФ, и каждый неключевой атрибут функционально полно зависит от составного ключа.
Таким образом, если отношение имеет простой ключ и находится в 1НФ, то требования 2НФ удовлетворяются автоматически. А в случае составного ключа надо проверить наличие полной функциональной зависимости.
Рассмотрим пример. Таблица «Оценки студента», приведенная на рис. 3.1.6 находится в первой нормальной форме и имеет составной ключ: «Номер ЛД» + «Дисциплина». Это отношение не находится во второй нормальной форме, так как атрибуты «Фамилия», «Имя», «Отчество» зависят только от номера личного дела и не зависят от дисциплины.
Отсутствие полной функциональной зависимости приводит также к появлению избыточности данных и аномалиям работы с данными.
Рис. 3.1.6. Зависимость атрибутов от составного ключа
Приведение таблицы (отношения) к 2НФ осуществляется по следующим правилам:
атрибуты, зависящие от части составного ключа, и сама эта часть выносятся в отдельную (новую) таблицу и исключаются из исходной;
ключом новой таблицы становится часть ключа исходной, от которой имеет место функционально неполная зависимость;
между новой и исходной таблицами устанавливается связь типа 1:М.
Приведение к 2НФ позволяет выявить в модели упущенные сущности и связи и, кроме того, устранить избыточность данных в исходной модели.
Для нормализации отношения, представленного на рис. 3.1.7, реквизиты «Дисциплина» и «Оценка» выделяют в отдельную таблицу, а остальные реквизиты остаются в исходной таблице. Нужно также подумать об именах новых таблиц.
Рис. 3.1.7. Приведение к 2НФ
