Подходы к моделированию данных на собеседовании системного аналитика
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем спрашивают на собесе SA
Data modeling — основа дизайна БД. SA участвует в conceptual / logical уровне. На собесе: «отличие моделей», «когда денормализация».
3 уровня моделирования
Conceptual (бизнес) → Logical (структура) → Physical (БД)Каждый — добавляет detail.
Conceptual model
Что есть. Высокоуровневое представление сущностей и их связей.
- Без атрибутов / типов.
- Понятный бизнесу.
- Используется на этапе анализа.
[Customer] ── places ── [Order] ── contains ── [Product]В CASE-tools — рисуется через ER (но без типов).
Logical model
Что есть. Детализированная structure без привязки к конкретной СУБД.
- Атрибуты с типами.
- Primary / foreign keys.
- Cardinality.
- Нормализация (3НФ обычно).
- Без implementation deталей (индексы, partitions).
Customer
- id (PK)
- name VARCHAR
- email VARCHAR (UNIQUE)
Order
- id (PK)
- customer_id (FK)
- amount NUMERICPhysical model
Что есть. Конкретная implementation в выбранной СУБД.
- Datatypes (BIGINT vs BIGSERIAL, специфика Postgres / Oracle).
- Indexes (B-tree, GIN, partial).
- Партиционирование.
- Constraints с движкой (FK ON DELETE CASCADE).
- Tablespaces, distribution keys (для GP / Redshift).
CREATE TABLE customer (
id BIGSERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_customer_email ON customer(LOWER(email));Нотации ER
Crow's foot. Самая популярная.
Customer ┃─< Order (1:N)
Customer ─< Order (0..N)Chen. Старая, с овалами для атрибутов.
UML class diagram с «entity» стереотипами — для совместного использования с UML.
IDEF1X. Официальный, госсектор. ГОСТ-регулируемая.
Подходы к нормализации
1НФ. Атомарные значения. Никаких списков в одной cell.
2НФ. 1НФ + нет partial dependencies (атрибут зависит от composite PK only frmm part).
3НФ. 2НФ + нет transitive dependencies (атрибут зависит от non-key attribute).
BCNF. Strict variant 3НФ.
4НФ, 5НФ, DKNF. Редко в продакшне.
Денормализация. В DWH часто 1НФ или star — ОК, для performance.
Связанные темы
- ERD и связи на собесе SA
- Нормализация БД на собесе SA
- ER в таблицы для SA
- UML Class на собесе SA
- Подготовка к собесу системного аналитика
FAQ
Кто рисует physical model?
Database engineer / architect. SA обычно обозначает logical, оставляя физику DBA.
Это официальная информация?
Нет. Статья основана на классике (Codd, Date, Chen) и стандартных подходах database design.
Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.