Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Рассредоточение информации крупных таблиц

Рассредоточение информации крупных таблицПод нормализацией понимается рассредоточение информации крупных таблиц по нескольким небольшим с целью исключения избыточности данных. Естественно, при этом приходится пересматривать отношения между таблицами, так как появляются новые сущности. Этапы нормализации носят название Форм. Теоретически база данных может принадлежать к одной из пяти так называемых Нормальных форм, естественно, если в ней вообще был начат процесс нормализации. Таким образом, проектирование базы данных — итерационный процесс: одни и те же действия выполняются снова и снова, пока не будут получены удовлетворительные результаты. В то же время полной нормализации базы данных обычно не проводят. Это вызвано тем, что все нормальные формы после третьей вызывают существенное снижение производительности (поскольку разделение таблиц приводит к созданию дополнительных объединений в запросах). К тому же иногда сложно определить направления дальнейшего разделения данных для приведения базы к четвертой и пятой нормальным формам.

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

Первая нормальная форма избавляет базу от повторяющихся данных. Возьмем за основу таблицу CUSTOMER, представленную в табл. В.1. Начнем с того, что отметим всю информацию, которая характерна для сущности “заказчик”. Это его название, адрес, номера заказов и т. д. Однако заметим: несмотря на то что заказы принадлежат конкретным клиентам, помещение информации о них в таблицу заказчиков приводит к неестественному увеличению объема хранимых данных (в добавок при этом нарушаются принципы реляционности). Полная информация о клиенте помещается в строку каждого заказа, а полная информация об идентичных заказах будет дублироваться для каждого клиента, выполнившего такую покупку.