Общие понятия
Суть
Реляционная БД хранит данные в таблицах (в теории — «отношениях»): строки — записи, столбцы — атрибуты с типом. Связи между таблицами выражаются через ключи, а не через вложенность, как в JSON.
Базовый словарь, который ждут на собеседовании:
- Primary key — уникальный идентификатор строки. Foreign key — ссылка на primary key другой таблицы, так моделируют связи 1:N и, через промежуточную таблицу, N:M.
- Индекс — отдельная структура (обычно B-tree), ускоряющая поиск по столбцу ценой места и более медленных записей. Без индекса
WHERE email = ?— полный скан таблицы. - JOIN — соединение таблиц по ключам в одном запросе.
- Транзакция — группа операций «всё или ничего». Свойства ACID: Atomicity, Consistency, Isolation, Durability.
- Нормализация — устранение дублирования данных (например, имя автора хранится один раз в таблице
author, а не в каждой книге).
SQL (Structured Query Language) — декларативный язык для описания схемы (DDL: CREATE TABLE), изменения и выборки данных (DML: INSERT, UPDATE, DELETE, SELECT).
ORM (Object-Relational Mapping) — слой, который отображает строки таблиц на объекты языка и генерирует SQL за разработчика. Плюс — меньше ручного кода; минус — скрытые тяжёлые запросы (классическая проблема N+1).
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep