Нормалізація реляційних даних

Вступ до моделювання даних у Snowflake

Nuno Rocha

Director of Engineering

Розуміння ненормалізованих даних

  • Ненормалізовані дані (UNF): дані без чіткої структури, неорганізовані, з повтореннями та/або аномаліями

Сутність «Усі товари»

Вступ до моделювання даних у Snowflake

Розуміння ненормалізованих даних

Аномалії в сутності «Усі товари»

Вступ до моделювання даних у Snowflake

Розуміння ненормалізованих даних

Підсвічено аномалію: банан

Вступ до моделювання даних у Snowflake

Розуміння ненормалізованих даних (3)

Підсвічено аномалію: виробник

Вступ до моделювання даних у Snowflake

Розуміння ненормалізованих даних (4)

Підсвічено аномалію: детальний опис

Вступ до моделювання даних у Snowflake

Розуміння ненормалізованих даних (5)

Підсвічено аномалію: товари

Вступ до моделювання даних у Snowflake

Проблеми ненормалізованих даних

  • Надлишковість даних: зайві повтори даних
  • Аномалії даних: нерегулярності або неузгодженості в даних

Аномалії в сутності «Усі товари»

Вступ до моделювання даних у Snowflake

Виявлення ненормалізованих даних

SELECT manufacturer_id, 
       manufacturer_name, 
       location, 
       COUNT(*) AS repetitions
FROM allproducts
GROUP BY manufacturer_id, 
    manufacturer_name, 
    location
HAVING COUNT(*) > 1;

Список виробників із кількістю повторів товарів

Вступ до моделювання даних у Snowflake

Виявлення ненормалізованих даних

SELECT DISTINCT category 
FROM allproducts;

Список категорій

Вступ до моделювання даних у Snowflake

Виявлення ненормалізованих даних

SELECT DISTINCT product_name,
    category
FROM allproducts
WHERE category = 'L';

Список товарів з категорією L

Вступ до моделювання даних у Snowflake

Виявлення ненормалізованих даних

SELECT DISTINCT product_name,
    category
FROM allproducts
WHERE category = 'L';

Список усіх товарів, що містять L

Вступ до моделювання даних у Snowflake

Нормалізовані дані

  • Нормалізовані дані: організовані в окремі атомарні сутності
  • Переваги:
    • Краще точність і надійність даних
    • Швидші запити
    • Оптимізоване використання ресурсів
    • Масштабованість
Вступ до моделювання даних у Snowflake

Терміни та огляд функцій

  • Ненормалізовані дані (UNF): дані без структури, неорганізовані або з повтореннями чи аномаліями
  • Нормалізовані дані: організовані в окремі атомарні сутності
  • SELECT FROM: оператор SQL для отримання даних із певної сутності
  • DISTINCT: повертає унікальні значення атрибута
  • COUNT: підраховує рядки, що відповідають умові
  • GROUP BY: групує рядки за зазначеними атрибутами
  • HAVING: фільтрує групи після GROUP BY за умовою
  • WHERE: фільтрує записи за умовою
  • AS: перейменовує стовпець або таблицю за допомогою псевдоніма
Вступ до моделювання даних у Snowflake

Огляд функцій

-- Вибір унікальних значень із фільтром за умовою
SELECT DISTINCT column_name
FROM table_name
WHERE column_name  condition  value;
-- Підрахунок значень, агрегованих за стовпцем, із фільтрацією результатів
SELECT column_name, 
    COUNT(*) AS alias_name
FROM table_name
GROUP BY column_name
HAVING COUNT(*)  condition  value;
Вступ до моделювання даних у Snowflake

Давайте потренуємось!

Вступ до моделювання даних у Snowflake

Preparing Video For Download...