intermediate
Основы SQL
Моделируйте relational data через tables, keys, joins, indexes, transactions, isolation, plans, normalization и denormalization.
На интервью по основам SQL проверяют реляционное моделирование и рассуждение о запросах — общее для PostgreSQL, MySQL и SQLite. Ждут проектирования таблиц и ключей, выбора типов join, индексов под реальные предикаты и объяснения изоляции транзакций при конкуренции.
Подтемы: таблицы и ограничения, первичные и внешние ключи, join, индексы, транзакции, уровни изоляции, блокировки, планы запросов, нормализация и денормализация.
На интервью: по эскизу схемы объясните, как обеспечить инвариант, какой индекс поддержит горячий запрос и какая аномалия возможна при более слабой изоляции.
Типовые ошибки: суррогатные ключи без правил уникальности; внешние ключи без стратегии cascade; индекс на каждый столбец; денормализация до измерения боли на чтении.
Компромисс — между нормализацией для корректности записи и денормализацией для скорости чтения; обоснуйте паттернами доступа и планами.
Чеклист:
- Отображайте сущности на таблицы с явными ограничениями.
- Выбирайте тип join по кардинальности и null-семантике.
- Индексируйте предикаты, join и сортировку из реальных запросов.
- Выбирайте изоляцию по допустимым аномалиям, не по умолчанию.