Чек-лист самопроверки
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Чек-лист самопроверки
- Понимаю ли я, что такое реляционная модель данных и чем она отличается от других моделей?
- Могу ли я объяснить разницу между DDL, DML, DCL и TCL в SQL?
- Знаю ли я основные типы данных в SQL и когда какой использовать?
- Умею ли я писать запросы с использованием SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY?
- Понимаю ли я разницу между INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL OUTER JOIN?
- Могу ли я правильно использовать агрегатные функции: COUNT, SUM, AVG, MIN, MAX?
- Знаю ли я, как работает NULL в SQL и как с ним обращаться?
- Умею ли я писать подзапросы в WHERE, FROM и SELECT?
- Понимаю ли я, что такое первичный ключ и зачем он нужен?
- Знаю ли я, что такое внешний ключ и как он обеспечивает ссылочную целостность?
- Могу ли я создавать таблицы с помощью CREATE TABLE с указанием ограничений?
- Умею ли я изменять структуру таблицы с помощью ALTER TABLE?
- Знаю ли я, как работают уникальные ограничения (UNIQUE)?
- Понимаю ли я, как работают ограничения CHECK?
- Могу ли я объяснить, что такое нормализация и зачем она нужна?
- Знаю ли я, какие есть формы нормализации и когда их применять?
- Умею ли я писать запросы с использованием UNION и UNION ALL?
- Понимаю ли я разницу между UNION и JOIN?
- Могу ли я использовать оконные функции: ROW_NUMBER(), RANK(), DENSE_RANK(), LEAD(), LAG()?
- Знаю ли я, как работают общие табличные выражения (CTE) и рекурсивные CTE?
- Умею ли я писать рекурсивные запросы для обхода иерархий (например, оргструктуры)?
- Понимаю ли я, что такое транзакция и какие у неё свойства (ACID)?
- Знаю ли я команды BEGIN, COMMIT, ROLLBACK и SAVEPOINT?
- Могу ли я объяснить уровни изоляции транзакций и их влияние на конкурентность?
- Умею ли я создавать и использовать представления (VIEW)?
- Знаю ли я, что такое материализованное представление и чем оно отличается от обычного?
- Понимаю ли я, как работают индексы и когда их стоит создавать?
- Могу ли я объяснить разницу между кластеризованным и некластеризованным индексом?
- Знаю ли я, как анализировать план выполнения запроса (EXPLAIN / EXECUTION PLAN)?
- Умею ли я оптимизировать медленные запросы на основе плана выполнения?
- Понимаю ли я, что такое кардинальность и селективность индекса?
- Могу ли я писать запросы с использованием EXISTS и NOT EXISTS?
- Знаю ли я разницу между IN и EXISTS и когда что использовать?
- Умею ли я работать с датами и временем в SQL (DATE, TIMESTAMP, INTERVAL)?
- Понимаю ли я, как работают строковые функции: CONCAT, SUBSTRING, TRIM, UPPER, LOWER?
- Могу ли я использовать CASE-выражения для условной логики в запросах?
- Знаю ли я, как работают хранимые процедуры и функции?
- Умею ли я создавать и вызывать хранимые процедуры?
- Понимаю ли я, что такое триггер и в каких случаях его стоит использовать?
- Знаю ли я, как управлять пользователями и привилегиями (GRANT, REVOKE)?
- Могу ли я объяснить, что такое партиционирование таблиц и зачем оно нужно?
- Понимаю ли я, как работает блокировка строк и таблиц при конкурентном доступе?
- Знаю ли я, что такое взаимоблокировка (deadlock) и как её избежать?
- Умею ли я писать пагинацию с помощью LIMIT/OFFSET или ROW_NUMBER()?
- Понимаю ли я, почему OFFSET неэффективен при глубокой пагинации?
- Знаю ли я альтернативы OFFSET для курсорной пагинации?
- Могу ли я объяснить разницу между суррогатным и естественным ключом?
- Понимаю ли я, когда лучше денормализовать данные для производительности?
- Знаю ли я основные различия в диалектах SQL (PostgreSQL, MySQL, SQL Server, Oracle)?
- Могу ли я обосновать выбор реляционной СУБД для заданного бизнес-сценария?