Читайте также: |
|
Нормализация – это разбиение отношения на два или более отношений, обладающих лучшими свойствами при включении, обновлении и удалении данных. Окончательная цель нормализации сводится к получению такой базы данных, в которой каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не только с целью экономии памяти, но и для исключения возможной противоречивости хранимых данных.
Проектирование реляционной базы данных может быть выполнено путем декомпозиции (разбиения ), при которой исходное множество отношений, входящих в базу данных, заменяется другим множеством с большим числом отношений, являющихся проекциями исходных отношений.
Процесс проектирования с использованием декомпозиции состоит в последовательной нормализации отношений, и при этом каждое следующее полученное множество отношений соответствует нормальной форме более высокого порядка и обладает лучшими свойствами по сравнению с предыдущим. В теории реляционных баз данных особо выделяются следующие нормальные формы отношений: первая нормальная форма (1НФ), вторая нормальная форма (2НФ), третья нормальная форма (3НФ), нормальная форма Бойса-Кодда (НФБК), четвертая нормальная форма (4НФ), пятая нормальная форма (5НФ).
Универсальным отношением проектируемой базы данных принято называть отношение, содержащее все представляющие интерес атрибуты и имеющее структуру, в которой каждый кортеж состоит из атомарных, т.е. неделимых, и непустых значений атрибутов. Универсальное отношение соответствует первой нормальной форме.
С использованием универсального отношения связаны три специфичные проблемы [7]: проблема, обусловленная необходимостью включения новых кортежей в БД; проблема, связанная с обновлением данных в БД; проблема, обусловленная необходимостью удаления кортежей из БД. Эти проблемы называются аномалиями вставки, обновления и удаления, поскольку под аномалией понимается отклонение от нормы.
Рассмотрим суть этих проблем на примере БД, содержащей сведения о жителях, их доходах и телефонах. Универсальное отношение Zgrad для этой БД (табл.1.1) содержит кортежи со значениями атрибутов объектов, показанных на рис.1.3.
Аномалия вставки. Если появляется новый житель (например, новорожденный), у которого отсутствуют источники дохода, то для него приходится включать в отношение Zgrad строку с пустыми значениями полей Source и Money. Но поскольку пустых (т.е. неопределенных) полей в отношении (таблице) быть не должно, то регистрация нового жителя в БД откладывается до появления у него источника дохода.
.
Рис.1.3. Объекты предметной области и их атрибуты
Таблица 1.1
Универсальное отношение (однотабличная база данных Zgrad)
Nom | FIO | Rdate | Pol | Adr | Ntel | Source | Money | SumD |
Иванов И.И. | 11.03.78 | м | 801-12 | 531-5894 | Работа1 | |||
Иванов И.И. | 11.03.78 | м | 801-12 | 531-5894 | Работа2 | |||
Петрова П.П. | 01.12.79 | ж | 05-321 | Нет | Стипендия | |||
Петрова П.П. | 01.12.79 | ж | 05-321 | Нет | Работа1 | |||
Иванова И.И. | 14.04.30 | ж | 801-12 | 531-5894 | Пособие | |||
Иванова И.И. | 14.04.30 | ж | 801-12 | 531-5894 | Пенсия | |||
Ильин Ф.П. | 25.06.70 | м | 901-323 | 534-9900 | Работа3 | |||
Иванов И.И. | 23.10.28 | м | 801-12 | 531-5894 | Пенсия |
Аномалия обновления. Отношение Zgrad характеризуется как явной, так и неявной избыточностью. Явная избыточность заключается в том, что фамилия жителя, его дата рождения, пол, адрес, номер телефона и значения других атрибутов могут появиться в отношении несколько раз. Например, у Петровой П.П. адрес появляется в отношении дважды. Если она сообщит об изменении своего адреса, то придется проследить изменение ее адреса в обоих кортежах во избежание противоречивости данных.
В отношении Zgrad неявная избыточность обнаруживается в том, что один и тот же номер телефона имеют все жители, живущие в одной квартире. Например, номер телефона для квартиры с адресом 801-12 появляется в сочетании с фамилиями трех жителей. Допустим, Иванов И.И. 1978 года рождения известит служащего, работающего с базой данных, о том, что его номер телефона изменен на 531-55-33, забыв при этом сообщить о других жильцах квартиры. Если служащий изменит номер телефона только в тех строках, которые содержат телефонный номер Иванова И.И. 1978 года рождения, то правильный номер телефона в квартире с адресом 801-12 будет фактически утерян, поскольку в отношении Zgrad будут присутствовать два различных телефонных номера для одной квартиры.
Аномалия удаления. В отношении Zgrad присутствует только один кортеж, соответствующий Ильину Ф.П. Предположим, что работающий с базой данных служащий узнает, что этот житель лишился своего источника дохода, условно именуемого Работа3, и удаляет этот кортеж из отношения. Поскольку это единственный кортеж с информацией об Ильине, его удаление приведет к исключению жителя из БД. Если служащий вслед за этим запросит список жителей, зарегистрированных в БД, то Ильина в списке не окажется, хотя он продолжает жить по прежнему адресу.
Дата добавления: 2015-07-20; просмотров: 83 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Цели проектирования реляционных баз данных | | | Функциональные зависимости |