Базы данных. Учебное пособие

       

Нормализация отношений


 

Нормализация отношения

-  процесс  приведения  реляционных  таблиц  к  стандартному  виду.

Рассмотрим  реляционную  таблицу  на  рис.  3.1.  После  небольшого  анализа  видно,  что  реляционная  таблица  на  рис. 3.1  спроектирована  неудачно.  Например,  в  четырех  кортежах,  соответствующих  рабочему  1412,  повторяется  одно  и  то  же  имя  и  информация  о  типе  специальности.  Эта  избыточность  данных  или  повторение  приводит  не  только  к  потере  лишнего  места;  она  может  вызвать  нарушение  целостности  данных  (противоречивость)  в  базе  данных.

 

Избыточность  данных -  повторение  данных  в  базе  данных.

Целостность  данных  -  согласованность  данных  в базе  данных.

                            Таблица   3.1.   «Работник»

№  работника

Фамилия

Специальность



№ менеджера

№ здания

1235

Петров

Электрик

1311

312

1235

Петров

Электрик

1311

515

1412

Смирнов

Штукатур

312

1412

Смирнов

Штукатур

460

1412

Смирнов

Штукатур

435

1412

Смирнов

Штукатур

515

1311

Васильев

Электрик

435

 

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

 

Аномалия  обновления -  противоречивость  данных,  вызванная  их  избыточностью и  частичным  обновлением.  

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

Аномалия  удаления -   непреднамеренная  потеря  данных,  вызванная  удалением  других  данных.

Аномалия  ввода -  невозможность  ввести  данные  в  таблицу,  вызванная  отсутствием  других  данных.

Аномалии  обновления,  удаления  и  ввода,  очевидно,  нежелательны.  Чтобы  предотвратить  или  хотя  бы  свести  к  минимуму  подобные  проблемы  нужно    воспользоваться  нормальными  формами  или  правилами  структурирования  таблиц.



Содержание раздела