На интуитивном уровне нетрудно догадаться, что выполнение проектирования баз данных без солидной стратегии, на основании одних лишь непоколебимых математических принципов, чревато возникновением нескольких проблем. Обнаружить потенциальные причины низкой производительности, связанные с неправильным использованием пространства хранения и большими показателями по времени выполнения запросов, легко, но в случае импровизированного проектирования таблиц в базе данных также могут возникать и гораздо более серьезные проблемы, называемые аномалиями данных.
В частности, в результате неправильного проектирования баз данных могут возникать аномалии трех перечисленных ниже типов.
- Аномалии обновления. Эти аномалии хорошо известны и могут не позволить обновлять все вхождения определенного атрибута из-за проблемы с повторением значений.
- Аномалии вставки. Эти аномалии могут не позволить вставлять определенные данные из-за отсутствия других фрагментов информации. Например, они могут не позволить вставлять данные заказчика из-за того, что тот пока не приобретал ни одного продукта из данного хранилища.
- Аномалии удаления. Эти аномалии могут приводить к безвозвратной потере данных при попытке удалить из данных заказчика какие-нибудь дублированные атрибуты.
Очень важная вещь! Между разработчиками и проектировщиками баз данных продолжают бушевать споры по поводу денормализации. Многие считают, что можно нарушать практически все правила проектирования и отступать от норм ради получения выгоды в плане производительности.
Некоторые, однако, полагают, что так поступать нельзя и что процедура денормализации сокращает степень целостности базы данных тем, что лишает средств управления, которые лежат в основе проектирования РСУБД.