Суть нормализации

Раздел: Проектирование баз данных

Аномалии можно интуитивно описать следующим образом: проблемы возникают из-за того, что отношение СЕКЦИЯ содержит факты, относящиеся к двум различным темам.
1. Кто из студентов какую секцию посещает.
2. Какова плата за абонемент в каждой из секций.
Когда мы добавляем новую строку, нам приходится добавлять информацию, затрагивающую две различные темы; точно так же, когда мы удаляем строку, мы вынуждены удалять данные, относящиеся сразу к двум темам.
Помните, что учительница родного языка и литературы говорила вам, что абзац должен иметь только одну тему? Если абзац содержал более одной темы, вас учили разбивать его на два или более абзаца таким образом, чтобы каждый из получившихся абзацев содержал ровно одну тему. Аналогичные высказывания справедливы и для отношений. Каждое нормализованное отношение имеет од-ну-единственную тему. Любое отношение, содержащее две или более темы, следует разбить на два или более отношения, каждое из которых будет содержать одну тему. Этот процесс составляет суть нормализации. Когда мы обнаруживаем отношение с аномалиями модификации, мы устраняем эти аномалии, разбивая отношение на два или более новых отношения, каждое из которых содержит факты, относящиеся к одной теме.
Однако не стоит забывать, что всякий раз, когда мы разбиваем отношение, мы, возможно, порождаем ограничение ссылочной целостности. Поэтому следует обязательно проверять наличие таких ограничений каждый раз при разбиении отношения на два или более новых.
В оставшейся части этой главы вам предстоит узнать несколько правил, относящихся к нормализации. Все эти правила представляют собой частные случаи только что описанного процесса.