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

Введение в моделирование данных в 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: оператор SQL для возврата уникальных значений атрибута
  • COUNT: оператор SQL, подсчитывающий количество строк, соответствующих заданному условию
  • GROUP BY: оператор SQL, группирующий строки с одинаковыми значениями по указанным атрибутам
  • HAVING: оператор SQL, используемый с GROUP BY для фильтрации групп по условию
  • WHERE: оператор SQL для фильтрации записей по заданному условию
  • AS: оператор SQL для переименования столбца или таблицы с помощью псевдонима
Введение в моделирование данных в Snowflake

Обзор функций

-- Querying unique values while being filtered by a specific condition
SELECT DISTINCT column_name
FROM table_name
WHERE column_name  condition  value;
-- Counting the values aggregated by a specific column while filtering the results
SELECT column_name, 
    COUNT(*) AS alias_name
FROM table_name
GROUP BY column_name
HAVING COUNT(*)  condition  value;
Введение в моделирование данных в Snowflake

Давайте потренируемся!

Введение в моделирование данных в Snowflake

Preparing Video For Download...