Основы баз данных — чек-лист
Разработчику
Аналитику
Тестировщику
Архитектору
Инженеру
Чек-лист самопроверки
Пройдите список после глав Знакомство с базами данных–Восстановление после сбоя, Entity Relationship. Случайный вопрос — кнопка выше.
- Могу ли я объяснить разницу БД и СУБД — и чем таблица в СУБД отличается от файла Excel (транзакции, параллельный доступ, ограничения)?
- Понимаю ли я разницу relation (таблица у Кодда) и relationship (связь на ER-диаграмме)?
- Понимаю ли я, что такое сущность и как она выражается в терминах моделирования?
- Умею ли я определить атрибуты сущности и разделить их на идентифицирующие и описательные?
- Знаю ли я, почему сущности выражаются существительными, а связи — глаголами?
- Могу ли я привести пример слабой и сильной сущности?
- Понимаю ли я, что такое первичный и внешний ключ?
- Умею ли я построить связь "один ко многим" между двумя таблицами (без имени таблицы
Order, конфликтующего сORDER BY)? - Знаю ли я, как реализуется связь "многие ко многим"?
- Могу ли я объяснить, зачем нужна промежуточная таблица для M:N-связей?
- Понимаю ли я, что такое ER-диаграмма и как её читать?
- Умею ли я описать кардинальность связи на диаграмме?
- Знаю ли я, какие типы связей бывают (1:1, 1:N, M:N)?
- Могу ли я объяснить, почему данные в БД хранятся на диске, а не в оперативной памяти постоянно?
- Понимаю ли я, что такое страница данных и зачем она нужна?
- Знаю ли я, что такое буферный пул и как он ускоряет работу СУБД?
- Могу ли я описать этапы выполнения SQL-запроса в СУБД?
- Понимаю ли я, что такое метаданные и где они хранятся?
- Знаю ли я, что такое индекс и как он работает?
- Умею ли я объяснить разницу между B-деревом и хеш-индексом?
- Понимаю ли я, когда стоит использовать битовый индекс?
- Знаю ли я, что такое селективность столбца и как она влияет на выбор плана запроса?
- Могу ли я объяснить, зачем СУБД нужна статистика по таблицам?
- Понимаю ли я, что такое оптимизатор запросов и от чего зависит его решение?
- Знаю ли я, чем отличается логическая схема от физической?
- Понимаю ли я уровни архитектуры ANSI/SPARC?
- Могу ли я объяснить, что такое внешнее представление (view) и зачем оно нужно?
- Знаю ли я, что такое вычисляемый столбец и что синтаксис зависит от СУБД?
- Понимаю ли я, что такое партиционирование и какие у него типы?
- Умею ли я объяснить, как работает партиционное прореживание?
- Знаю ли я, что такое индекс-организованная таблица (IOT)?
- Понимаю ли я, чем отличается кучевая таблица от IOT?
- Могу ли я объяснить, почему
NULL = NULLдаётUNKNOWNв SQL? - Знаю ли я, как правильно проверять значение на
NULL? - Понимаю ли я, что такое коррелированный подзапрос и чем он отличается от некоррелированного?
- Умею ли я использовать
EXISTSдля проверки наличия связанных записей? - Знаю ли я, что такое ACID и зачем нужны транзакции?
- Понимаю ли я, какие задачи решает СУБД помимо хранения данных?
- Могу ли я перечислить компоненты СУБД (ядро, менеджер транзакций, механизм запросов и т.д.)?
- Знаю ли я примеры реляционных, NoSQL и NewSQL СУБД?
- Понимаю ли я, когда уместны SQL, NoSQL и полиглотное хранение (несколько СУБД в одном продукте)?
- Умею ли я привести пример документа в JSON, как в MongoDB?
- Знаю ли я, что такое схема базы данных и какие у неё уровни?
- Понимаю ли я, зачем нормализация — и где читать 1НФ–3НФ подробно? (Нормализация данных)
- Могу ли я объяснить первую нормальную форму (атомарность ячейки)?
- Знаю ли я, что такое транзитивная зависимость и 3НФ?
- Понимаю ли я, почему важно избегать дублирования данных?
- Умею ли я объяснить, как циклические зависимости влияют на вставку данных?
- Знаю ли я, как правильно именовать внешние ключи?
- Понимаю ли я, что физическое размещение данных влияет на производительность?
- Могу ли я объяснить, почему проектирование БД начинается с предметной области, а не с выбора MongoDB или PostgreSQL?
- Могу ли я назвать хотя бы пять из двенадцати правил Кодда и объяснить одно на примере?
- Чем оптимистичный контроль отличается от
SELECT … FOR UPDATE? - Понимаю ли я разницу между crash recovery (WAL при старте) и восстановлением из pg_dump?
- Знаю ли я, зачем нужен checkpoint, если есть WAL?
- Могу ли я описать этапы концептуального → логического → физического проектирования?
- Чем DBA отличается от владельца данных в организации?
- Назову ли я три обязанности команды при managed PostgreSQL в облаке (не провайдера)?