Все проекты English Написать директору Вебинары
Выбор региона
Ваш город:Семей
Поиск

Что такое нормализация баз данных?

Время чтения: ~4 мин.

Актуальность проверена: 06 . 10 . 2024

Порядок в работе с данными важен в любой сфере деятельности. В данной статье мы рассмотрим нормализацию базы данных и ее виды. Также приведем примеры для полноты понимания отношений между разными таблицами в нормализованной базе данных.

Нормализация БД представляет собой процесс организации информации определенным образом и по установленным рекомендациям проектирования. Все таблицы и отношения (связи) между ними должны создаваться согласно правилам. Таким образом, будет обеспечиваться необходимый уровень сохранности и безопасности данных, а сама база может своевременно дополняться и корректироваться. Оператор сможет быстро устранять из нее все несогласованные избыточности или зависимости.

Плюсы нормализации баз данных

Нормализацию нельзя назвать обязательным мероприятием, но у нее есть целый ряд положительных черт.

  1. Нормализация упрощает процессы выборки. В данном случае речь идет об упрощении составления запросов. Пользователь легко может получить информацию по простейшему запросу.
  2. Обеспечение целостности данных. В процессе нормализации сокращается вероятность искажения и потери важной информации.
  3. Улучшенная масштабируемость. При соблюдении всех правил нормализации постепенно создаются благоприятные условия для расширения такой базы.
  4. Отсутствие избыточности. Большой объем информации задействует огромную часть свободного места на жестком диске и усложняет процесс обслуживания информации. В некоторых случаях возникают множественные повторяющиеся записи и одинаковая информация сразу в нескольких местах. Из-за этого пользователи вынуждены вносить изменения сразу во все источники информации. Это очень трудоемкое занятие нередко приводит к ошибкам. Намного проще сделать таким образом, чтобы данные по одному подразделению или участку хранились в соответствующей таблице и больше нигде. Избыточность предполагает постоянное дублирование данных, усложняет работу с базой данных и раздувает ее размер.
  5. Отсутствие несогласованных зависимостей. Всевозможные нестыковки и несогласованные зависимости также усложняют доступ к информации, поскольку путь к данным может быть нелогичным и неверным. Например, в таблице «Sities» более логично искать адреса и количество жителей, а не адреса и имена жителей. Для этой информации  надо создавать другую таблицу, к примеру «Sitizens».

1С:MDM Управление нормативно-справочной информацией

Консолидация и управление данными из разных информационных систем компании.

  • Быстрый поиск информации;
  • Интеграция данных между различными системами;
  • Повышение точности и качества информации;
  • Удобство управления всеми данными одной системе.

Как выполнить нормализацию базы данных?

Для того, чтобы привести конкретную базу данных к нормальному виду, необходимо сделать следующее:

  1. Объединить все данные в тематических группах.
  2. Установить логические связи между группами для обеспечения правильности связей, чтобы связанные поля имели один тип.

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

При нормализации необходимо использовать неформальный подход к структуре собранных данных. Но важно учитывать несколько строгих правил нормализации. Каждое такое правило носит название «нормальная форма» (НФ). Все формы кроме первой предполагают, что к имеющимся данным муже была применена предыдущая нормальная форма  - 1НФ. А при выполнении трех правил – она должна выражаться в третьей нормальной форме – 3НФ.

Всего существует семь форм (уровней) нормализации. На практике будет достаточно нормализовать базу данных до третьей нормальной формы. То есть, база данных будет считаться нормализованной, когда к ней будет применена 3НФ и выше.

Полное обеспечение соответствия для всех спецификаций – это не всегда выполнимая задача, поскольку для нормализации нужно будет создавать другие таблицы. Иногда это вовсе неприемлемо. Но если правила придется нарушать, то нужно быть готовым к таким проблемам, как несогласованные избыточности и зависимости. Они будут учитываться в работе системы и никак не нарушат ее работоспособность.

Примеры правил нормализации базы данных

Первая нормальная форма – 1НФ

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


Следует обратить внимание на нарушение нормализации в моделях BMW. В таблице в одной ячейке находится перечень сразу из трех элементов – М5, Х5М и М1. Это свидетельствует об отсутствии атомарности. После проведенного преобразования 1НФ таблица будет иметь другой вид.


Вторая нормальная форма 2НФ

Отношения в таблице будут соответствовать 2НФ при условии, что база данных находится в 1 НФ и каждый ее столбец зависит от первичного ключа. Рассмотрим еще одну таблицу.


Представленная выше таблица приведена в форму 1НФ, но не в форму 2НФ. Здесь стоимость автомобилей зависит от производителя и модели. Также размер скидки зависит от производителя, поэтому прямая функциональная зависимость от самого первого ключа будет неполной. Это можно исправить, если выполнить декомпозицию сразу на 2 отношения, где не ключевые атрибуты будут зависеть только от первого ключа.



Третья нормальная форма 3НФ

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


В представленной таблице в отношении атрибут первым ключом является «Модель». Поскольку свои телефоны у автомобилей отсутствуют, то необходимо указывать номера продаваемых их магазинов. В результате создается связь функционального типа или зависимость следующего вида:


Такая модель транзитивна, поэтому ее отношение не отражается в 3НФ. Если разделить исходное отношение, то можно получить два отношения, которые будут отражены в форме 3НФ.



Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Нет времени читать? Пришлем вам на почту!

Я даю Согласие на обработку персональных данных

Автоматизируем учет и бизнес-процессы

Получить коммерческое предложение