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

Аномалии модификации данных

После составления концептуальной (логической) схемы БД необходимо проверить её на отсутствие аномалий модификации данных. Дело в том, что при неправильно спроектированной схеме БД могут возникнуть аномалии выполнения операций модификации данных. Эти аномалии обусловлены ограниченностью структуры РМД (отсутствием агрегатов и проч.).

Рассмотрим эти аномалии на примере отношения со следующими атрибутами (атрибуты, входящие в ключ, выделены подчёркиванием):

ПОСТАВКИ (Номер поставки, Название товара, Цена товара, Количество, Дата поставки, Название поставщика, Адрес поставщика)

Различают три вида аномалий: аномалии обновления, удаления и добавления. Аномалия обновления может возникнуть в том случае, когда информация дублируется. Другие аномалии возникают тогда, когда две и более сущности объединены в одно отношение. Например:

  1. Аномалия обновления: в отношении ПОСТАВКИ она может возникнуть, если у какого-либо поставщика изменился адрес. Изменения должны быть внесены во все кортежи, соответствующие поставкам этого поставщика; в противном случае данные будут противоречивы.
  2. Аномалия удаления: при удалении записей обо всех поставках определённого поставщика все данные об этом поставщике будут утеряны.
  3. Аномалия добавления: в нашем примере она возникнет, если с поставщиком заключен договор, но поставок от него ещё не было. Сведения о таком поставщике нельзя внести в таблицу ПОСТАВКИ, т.к. для него не определён ключ (номер поставки и название товара) и другие обязательные атрибуты.

Для решения проблемы аномалии модификации данных при проектировании реляционной БД проводится нормализация отношений.

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

Декомпозицией схемы отношения R называется замена её совокупностью схем отношений Аi таких, что

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

Покажем нормализацию на примере отношения КНИГИ (табл. 8.1):

Id - идентификатор (первичный ключ),
Code - шифр рубрики (по ББК – библиотечно-библиографической классификации),
Theme - название рубрики (по ББК),
Title - название книги,
Author - автор(ы),
Editor - редактор(ы),
Type - тип издания (учебник, учебное пособие, сборник и.т.п.),
Year - год издания
Pg - количество страниц

Таблица 8.1. Исходное отношение КНИГИ

Id Code Theme Author Title Editor Type Year Pg
  22.18 МК Бочков С. Субботин Д. Язык программирования СИ Садчиков П. Седов П. учебник    
  22.18 МК Джехани Н. Язык АДА Красилов А. Перминов О. учебник    
  32.97 ВТ Соловьев Г. Никитин В. Операционные системы ЭВМ   учебное пособие    
  32.81 Кибернетика Попов Э.В. Общение с ЭВМ на естественном языке Некрасов А. учебник    
  32.97   ПУ для ПЭВМ   Витенберг Э. справочник    
  32.973 ЭВМ Коутс Р.Б Влейминк И. Интерфейс «человек-компьютер» Шаньгин В. учебник    

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: