Нормализация реляционной модели данных
Реляционная модель данных – это множество взаимосвязанных отношений. Простейший вариант реляционной модели – одно отношение. В базе данных – одна таблица. Почему же возникает необходимость в многотабличной организации хранения данных? Разберемся на примере
Построить базу данных, содержащую сведения об успеваемости учеников в некотором классе: Фамилия, имя; Предмет; Пол; Адрес; Четвертные и годовые оценки по всем предметам;
УСПЕВАЕМОСТЬ (ФАМИЛИЯ, ИМЯ, ПРЕДМЕТ, ПОЛ, АДРЕС, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4_ЧЕТВ, ГОД) Первичный ключ является составным, т.к. состоит из 3-х полей: ФАМИЛИЯ, ИМЯ, ПРЕДМЕТ
Недостатком хранения данных в таком виде является их ИЗБЫТОЧНОСТЬ. ИЗБЫТОЧНОСТЬ – многократное повторение одних и тех же данных. ИЗБЫТОЧНОСТЬ – многократное повторение одних и тех же данных. (Значения каких полей в данном случае будут повторяться?) ПРОТИВОРЕЧИВОСТЬ ДАННЫХ – если в каких-то строках допущены ошибки при вводе значений повторяющихся полей. ПРОТИВОРЕЧИВОСТЬ ДАННЫХ – если в каких-то строках допущены ошибки при вводе значений повторяющихся полей.
Решением этих проблем является разбиение данного отношения на два, т.е. переход от однотабличной модели к двух табличной. УЧЕНИКИ (НОМЕР_УЧ, ФАМИЛИЯ, ИМЯ, ПОЛ, АДРЕС); УСПЕВАЕМОСТЬ (НОМЕР_УЧ, ПРЕДМЕТ, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4_ЧЕТВ, ГОД)
УСПЕВАЕМОСТЬ (ФАМИЛИЯ, ИМЯ, ПРЕДМЕТ, ПОЛ, АДРЕС, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4_ЧЕТВ, ГОД) УСПЕВАЕМОСТЬ (НОМЕР_УЧ, ПРЕДМЕТ, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4_ЧЕТВ, ГОД) УЧЕНИКИ (НОМЕР_УЧ, ФАМИЛИЯ, ИМЯ, ПОЛ, АДРЕС); ОБЛАДАЕТ ИЗБЫТОЧНОСТЬЮ МОЖЕТ СОДЕРЖАТЬ ПРОТИВОРЕЧИВЫЕ ДАННЫЕ Цель нормализации – избавление от избыточности данных. Сущность нормализации: при построении модели данных, относящихся к одной предметной области, суметь выделить типы объектов, которые должны быть представлены в этой модели.
В теории реляционных баз данных используется понятие «нормальная форма» отношений. Первая нормальная форма Первая нормальная форма – все поля являются атомарными (т.е. поле далее не делится); Вторая нормальная форма Вторая нормальная форма –если находится в первой нормальной форме и все его не ключевые поля полностью функционально зависят от первичного ключа. Третья нормальная форма Третья нормальная форма – удовлетворяет второй нормальной форме и отсутствуют поля, транзитивно зависимые от ключа.
Транзитивной зависимостью между полями А и В называются зависимость через третье поле С: А С В
Нормализация в реляционной модели данных исключает избыточность и противоречивость данных. Структура реляционной базы данных должна удовлетворять требованиям третьей нормальной формы: все поля должны быть атомарными отношений; все не ключевые поля должны полностью зависеть от первичного ключа; должны отсутствовать транзитивные зависимости.
Нормализуйте следующие отношения – приведите к третьей нормальной форме: ПОЛИКЛИНИКА (ФАМИЛИЯ_ПАЦИЕНТА, ДАТА_ПОСЕЩЕНИЯ, ДАТА_РОЖДЕНИЯ, УЧАСТОК, ВРАЧ, ДИАГНОЗ) РЕЙС_САМОЛЁТА (НОМЕР_РЕЙСА, ДАТА ВЫЛЕТА, ВРЕМЯ_ВЫЛЕТА, ПУНКТ_НАЗНАЧЕНИЯ, ТИП_САМОЛЁТА, ЧИСЛО_МЕСТ, ВРЕМЯ_ПОЛЁТА, КОМАНДИР_КОРАБЛЯ, КЛАСС_ПИЛОТА)