Однако за денормализацию нужно платить. В денормализованной базе данных повышается избыточность данных, что может повысить производительность, но потребует больше усилий для контроля за связанными данными. Усложнится процесс создания приложений, поскольку данные будут повторяться и их труднее будет отслеживать. Кроме того, осуществление ссылочной целостности оказывается не простым делом - связанные данные оказываются разделенными по разным таблицам. Существует золотая середина между нормализацией и денормализацией, но чтобы найти ее, требуется знание и природы хранимых данных, и специфических требований бизнеса соответствующей компании.
Резюме
Относительно структуры базы данных необходимо принять непростое решение: нормализовать или не нормализовать - вот в чем вопрос. Всегда имеет смысл до некоторой степени нормализовать базу данных. Но насколько можно нормализовать базу данных без заметного ухудшения производительности? Ответ на этот вопрос зависит от конкретного приложения. Насколько велика база данных? Каковы ее цели и задачи? Кто будет ее использовать?
На этом уроке были рассмотрены три наиболее часто используемые нормальные формы, лежащие в основе нормализации концепции и целостности данных. Процесс нормализации складывается из многих этапов, по большей части необязательных, но важных с точки зрения производительности и надежности базы данных. Независимо от глубины нормализации, она всегда будет компромиссом между простотой управления и производительностью системы в целом. Конечное решение остается за теми, кто разрабатывает базу данных, они и будут ответственны за принятое решение.
Вопросы и ответы
Почему так уж необходимо учитывать интересы конечных пользователей при планировании базы данных?
Именно конечные пользователи являются теми экспертами, которые оценивают реальные данные базы данных, и именно поэтому интересы конечных пользователей должны учитываться в первую очередь при разработке любой базы данных. Проектировщики базы данных лишь помогают организовать данные.
Мне кажется, что нормализация все же предпочтительнее денормализации. Разве не так?
Нормализация может быть предпочтительной. Но, в зависимости от ситуации, может быть более предпочтительной и Денормализация. Не забывайте, что здесь выбор зависит от очень большого числа факторов. Наверное, вы сначала нормализуете свою базу данных, чтобы уменьшить число повторений, но после этого так же вероятно, что вы проведете частичную денормализацию, чтобы улучшить производительность.
Практикум
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
Тесты
1. Верно ли следующее утверждение: "Нормализация - это процесс группировки данных в логически связанные группы?"
2. Верно ли следующее утверждение: "Отсутствие повторяющихся и избыточных данных и, таким образом, нормализация базы данных - в любом случае лучше всего?"
3. Верно ли следующее утверждение: "Если данные находятся в третьей нормальной форме, они автоматически находятся и в первой, и во второй нормальной формах?"
4. Какое главное преимущество имеет денормализованная база данных по сравнению с нормализованной?
5. Каковы основные недостатки денормализации?
Упражнения
1. Предположим, вам нужно организовать новую базу данных для небольшой компании. Возьмите следующие данные и нормализуйте их. Но не забывайте, что даже в малой компании данных бывает значительно больше, чем представлено здесь.
Служащие:
Анжела Смит, секретарь, 317-545-6789, просп. Широкий, 1, п. я. 73, Гринс-бург, шт. Индиана, 47890, $9,50 в час, приступила к работе 22 января 1996 г., идент. код 323149669.
Джек Ли Нельсон, продавец, ул. Главная, 3334, Браунсбург, шт. Индиана, 45687, 317-852-9901, $35000 в год, идент. код 312567342, работает с 28.10.95. Клиенты:
Дичь и охотничьи аксессуары Роберта, просп. Лафайет, 5612, Индианапо-лис, шт. Индиана, 46224, 317-291-7888, код клиента 432А.
Молочный бар Рида, 10-я Западная улица, Индианаполис, шт. Индиана, 46245, 317-271-9823, код клиента 117А.
Читать дальше