Проектирование базы данных выполняется на физическом и логическом уровнях. Решение возникающих проблем на физическом уровне выполняется автоматизировано конкретной СУБД. Логическое проектирование заключается в определении числа и структуры таблиц, формировании запросов к БД, определении отчетных документов, разработке алгоритмов обработки информации, создании форм для ввода и редактирования данных в базе и решении других задач. При определении структур данных в отношениях реляционной модели имеют место следующие проблемы: избыточное дублирование данных и аномалии.
Неизбыточное дублирование данных рассмотрим на следующем примере: Отношение Сотрудник-Телефон с атрибутами Сотрудник и Телефон.
Сотрудник-Телефон
Сотрудник
Телефон
Иванов И.И.
8-903
Петров П.П.
8-902
Сидоров С.С.
8-903
Семенов С.П.
8-903
Избыточное дублирование представлено примером отношения Сотрудник-Телефон-Комната
Сотрудник-Телефон-Комната
Сотрудник
Телефон
Комната
Иванов И.И.
8-903
Петров П.П.
8-902
Сидоров С.С.
8-903
Семенов С.П.
8-903
Возможный способ выхода из данной ситуации – это выполнение декомпозиции исходного отношения на два отношения.
Телефон-Комната
Телефон
Комната
8-903
8-902
Сотрудник-Комната
Сотрудник
Комната
Иванов И.И.
Петров П.П.
Сидоров С.С.
Семенов С.П.
Простое (неизбыточное) дублирование допускается в БД. Избыточное дублирование данных может приводить к проблемам при обработке данных.
Аномалия – это такая ситуация в таблицах БД, которая приводит к противоречиям в БД. Виды аномалий:
1) аномалии модификации (редактирования),
2) аномалии удаления,
3) аномалии добавления.
Аномалии модификации проявляются в том, что измененные значения одного данного могут повлечь за собой просмотр всей таблицы и соответствующее изменение некоторых других записей таблицы. Например, изменение номера телефона в комнате 110 в таблице Сотрудник-Телефон-Комната потребует просмотра всей таблицы.
Аномалии удаления – при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным. Например, при удалении информации о сотруднике Петрове в отношении Сотрудник-Телефон-Комната будет потеряна информация о номере телефона в комнате 110.
Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, или вставка новой записи требует дополнительного просмотра таблицы. Например, добавление в таблицу Сотрудник-Телефон-Комната сведений о телефоне и комнате без фамилии сотрудника.