Проектирование баз данных
Что это такое
Проектирование баз данных начинается с выбора таблиц, ключей, связей и индексов, которые делают данные приложения корректными, а запросы — быстрыми. Здесь модель предметной области встречается с движком: решается, какие факты заслуживают собственной таблицы, что идентифицирует строку, какие связи нужно поддерживать на уровне базы и под какие пути доступа нужен индекс.
Почему это важно
Код приложения заменяется каждые несколько лет, а схема обычно нет: отсутствующее ограничение или неудачно выбранный ключ переживают команду, которая их выбрала, а миграция позже означает перенос живых данных при работающем приложении. Однако соответствия правилам мало: проект, который выполняет каждое правило и при этом плохо отвечает на запросы, даёт систему корректную и медленную. Проектирование поэтому — баланс, а не контрольный список, и найти этот баланс сразу — одно из самых выгодных решений команды.
Что в этом треке
- Ключи и связи (05-backend-data/14-database-design/01-keys-and-relations) — что идентифицирует строку и как выражаются связи между ними.
- Проектирование под выполняемые запросы (05-backend-data/14-database-design/02-designing-for-the-queries-you-run) — как форма схемы и её индексы выводятся из шаблонов доступа.
Предварительные требования
- SQL и реляционные базы данных (05-backend-data/07-sql-relational-databases)
Что читать дальше
- SQL и реляционные базы данных (05-backend-data/07-sql-relational-databases) — модель, в которой строятся эти проекты, поэтому читайте её первой.
- Индексы и планы запросов (05-backend-data/07-sql-relational-databases/03-indexes-and-query-plans) — механизм, лежащий в основе второго дочернего урока.
- Объектно-реляционное отображение (05-backend-data/15-object-relational-mapping) — как код приложения отображается на выбранную схему.