Проблемы проектирования базы данных

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

Эффективная структура данных позволяет минимизировать избыточность хранимой информации (тем самым уменьшить необходимые ресурсы внешней памяти), устранить возможные причины нарушения корректности и непротиворечивости данных.

Рассмотрим таблицу «Курсы», в которой объединена информация о преподавателях и учебных дисциплинах ими читаемых.

Таблица базы данных

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

  • обновления;
  • удаления;
  • ввода.

Аномалия обновления. Пусть, например, у преподавателя Иванова А. А. изменился кабинет, в котором проходят занятия, и как следствие, номер телефона. В этом случае, придется редактировать значения соответствующих полей у всех записей, имеющих отношение к данному факту. Если это сделать не для всех записей, то база данных будет содержать противоречивые сведения.

Аномалия удаления. Представим себе, что курс «3D-моделирование» по определенным причинам больше не читается Петровым П. П.. Попытка удалить сведения о курсе из базы данных приведет к удалению данных преподавателя Петрова П. П.

Аномалия ввода связана с возможностью ввода недопустимых значений в поля при добавлении новой записи. Например, вводится значение, не входящее в заданный диапазон или может быть не задано значение поля, которое обязательно должно быть заполнено (не может быть пустым). Также к противоречивости данных может привести, например, допущенная ошибка в фамилии преподавателя при добавлении записи об очередном курсе. В этом случае в базе данных появится новый преподаватель.

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

Разбиение (декомпозиция) — это процесс деления таблицы на несколько с целью поддержания целостности данных, т. е. устранения избыточности данных и аномалий.