Читаем SQL за 24 часа полностью

Рис, 4.4. Третья нормальная форма Процесс нормализации улучшает организацию базы данных, облегчая работу с базой данных всем, начиная от простых пользователей до администратора, который отвечает за общее управление объектами базы данных. Уменьшается число повторений данных, что упрощает структуру данных и экономит дисковое пространство. Из-за сокращения дублирования данных уменьшается вероятность их несогласованности. Например, в одной таблице имя персоны может храниться в виде STEVE SMITH, а в другой - STEPHEN R. SMITH. Поскольку в результате нормализации база данных разделяется на ряд более мелких таблиц, модифицировать существующие структуры становится проще. Гораздо проще изменить небольшую таблицу с малым количеством данных, чем большую таблицу, содержащую все жизненно важные для базы данных значения. Наконец, повышается безопасность в том смысле, что администратор базы данных получает возможность разрешить различным пользователям доступ только к ограниченному списку таблиц. Нормализация упрощает управление безопасностью.

Целостность данных - это гарантия согласованности и надежности данных в базе данных.

Ссылочная целостность

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

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

КЛЮЧОМ, ССЫЛаЮЩИМСЯ на CUST_ID ТабЛИЦЫ CUSTOMER_TBL.

Недостатки нормализации

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

Денормализация базы данных

Денормализация - это процесс модификации структуры таблиц нормализованной базы данных с целью повышения производительности за счет допущения некоторой управляемой избыточности данных. Единственным оправданием денормализации является попытка повышения скорости работы базы данных. Де-нормализованная база данных - это не то же самое, что ненормализованная. Денормализация базы данных представляет собой процесс понижения нормализации на один-два уровня. Нормализация может существенно снизить скорость доступа к данным вследствие частых операций связывания таблиц. (Связывание таблиц обсуждается в ходе урока 13, "Объединение таблиц в запросах".) Денормализация предполагает объединение некоторых из ранее разделенных таблиц и создание таблиц с дубликатами данных с целью уменьшения числа связываемых таблиц при доступе к данным, что должно уменьшить число требуемых операций ввода-вывода и нагрузку на центральный процессор.

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

Резюме

Относительно структуры базы данных необходимо принять непростое решение: нормализовать или не нормализовать - вот в чем вопрос. Всегда имеет смысл до некоторой степени нормализовать базу данных. Но насколько можно нормализовать базу данных без заметного ухудшения производительности? Ответ на этот вопрос зависит от конкретного приложения. Насколько велика база данных? Каковы ее цели и задачи? Кто будет ее использовать?

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

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

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных