Stand with Ukraine

Stand with Ukraine logo
Quick donation

Коли варто використовувати нормалізацію та денормалізацію даних?

ITOMYCH STUDIO
December 23, 2021
7 min to read
Коли варто використовувати нормалізацію та денормалізацію даних?

Що таке нормалізація даних?

Нормалізація бази даних — це процес організації даних у пов'язану таблицю. Завдяки цьому, значно збільшується цілісність та продуктивність запиту. Щоб провести нормалізацію таблиці, необхідно розділити її на таблиці та встановити між ними зв'язки.

Отже, нормалізація БД — це практична оптимізація структур таблиць. Велика увага тут приділяється настроюванню зв'язків між таблицями.

Існує кілька типів процесу нормалізації бази даних:

  • Перша нормальна форма (1 NF)
  • Друга нормальна форма (2 NF)
  • Третя нормальна форма (3 NF)
  • Нормальна форма Бойса Кодда або четверта нормальна форма (BCNF або 4 NF)
  • П'ята нормальна форма (5 NF)
  • Шоста нормальна форма (6 NF)

Це все дозволяє уникнути надмірності даних, розподіляючи інформацію на різні адреси однієї БД.

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

Що таке денормалізація даних?

Денормалізація є навмисним приведенням структури бази даних у стан, який не задовольняє вимогам нормалізації. Денормалізація використовується для додавання надмірності, щоб швидко виконати запит. При використанні цього методу, дані об'єднуються, щоб швидко виконати запит. У цьому випадку, кількість таблиць зменшується, на відміну від нормалізації. Цей метод оптимізації застосовується після нормалізації.

Менша кількість з'єднань прискорює час обробки запиту та зменшує кількість помилок. Але існують недоліки цього методу: денормалізація може ускладнити оновлення та доопрацювання коду. Також може бути проблема суперечливих даних.

Різниця між нормалізацією та денормалізацією даних

Ми вже виявили, що серед основних процесів зміни структури баз даних виділяються нормалізація та денормалізація.

Нормалізація:

  • Використовується для видалення надлишкових даних з бази даних, може зберігати не порожні (null) та послідовні дані в ній.
  • Спрямована на очищення бази даних від невикористаних даних та зменшення невідповідності даних.
  • Кількість таблиць значно більша.
  • Використання оптимізованої пам'яті дає вищу продуктивність.
  • Повна підтримка цілісності даних, тобто додавання або видалення даних з таблиці не призведе до невідповідностей у взаємозв'язку таблиць.
  • Корисна у випадках, коли виконуються вставка, оновлення чи видалення.

Денормалізація:

  • Використовується для поєднання декількох таблиць, щоб спростити запити.
  • Спрямована на швидші запити.
  • Кількість таблиць значно менша.
  • Є певна втрата пам'яті.
  • Цілісність даних не підтримується.
  • Корисна у випадках, коли є багато запитів до бази даних.

Приклади використання

Отже розглянемо приклади нормалізації та денормалізації. Маємо таку таблицю:

Проведемо нормалізацію за параметром компанії:

Ідемо далі. Маємо дві таблиці:

Після денормалізації ми отримаємо таку таблицю:

Використання нормалізації та денормалізації — невід'ємна частина роботи з базами даних. Про доцільність використання такого чи іншого методу слід думати в кожному окремому випадку. При правильному виборі, ти ніколи не зіштовхнешся з проблемами втрати даних або складнощами масштабування.