Основы реляционных баз данных
Нормализация и оптимизация SQL-запросов
1. Нормальные формы реляционных моделей
Проектирование структуры таблиц строится на принципах нормализации, цель которой
— устранение избыточности данных и аномалий модификации.
Первая нормальная форма (1NF) требует атомарности всех значений атрибутов. Вторая
нормальная форма (2NF) включает условия 1NF и требует, чтобы каждый неключевой атрибут
функционально зависел от полного первичного ключа. Третья нормальная форма (3NF)
исключает транзитивные зависимости неключевых полей от ключа.
2. Индексация и оптимизация планов выполнения
Для ускорения выборки данных в СУБД применяются индексы (чаще всего на основе B-
Tree структур). Индексы значительно повышают скорость выполнения операций SELECT,
однако создают дополнительную нагрузку на операции вставки (INSERT) и обновления
(UPDATE).
Для анализа неэффективных запросов используется команда EXPLAIN. Пример запроса
со сложным соединением и фильтрацией:
SELECT [Link], [Link], COUNT([Link]) AS active_loans FROM users u LEFT JOIN
loans l ON [Link] = l.user_id AND [Link] = 'ACTIVE' WHERE [Link] =
'VERIFIED' GROUP BY [Link], [Link] HAVING COUNT([Link]) > 0;