Data Analyst Professional · Модуль 3 · Урок 8 із 51

Реляційні дані: як читати схему до першого запиту

SQL починається не з SELECT, а з розуміння моделі. Перш ніж рахувати показник, аналітик визначає grain таблиці, первинний ключ, значення зовнішніх ключів, типи полів і те, які бізнес-події представляють рядки.

75–90 хвSchema readingМінітест: 3 питання

Реляційна модель у практичних термінах

Таблиця

Набір рядків одного визначеного grain: клієнти, замовлення або позиції замовлення.

Колонка

Один атрибут із визначеним типом і семантикою: дата, ID, сума, статус.

Первинний ключ

Поле або комбінація полів, що однозначно ідентифікує рядок.

Зовнішній ключ

Посилання на ключ іншої таблиці; він описує зв’язок, але не гарантує потрібний grain запиту.

Спочатку grain

Назва orders ще не доводить, що один рядок — одне замовлення. Таблиця може містити версії статусу, платежі або позиції. Перевірте опис, ключ і фактичні дублікати.

ТаблицяЙмовірний grainКандидат на ключРизик
customersодин клієнтcustomer_idmerge профілів або історія версій
ordersодне замовленняorder_idповторний запис після зміни статусу
order_itemsодна позиція замовленняorder_id + line_idпомилково рахувати рядки як замовлення
paymentsодна спроба платежуpayment_idкілька спроб на одне замовлення

Data type — частина контракту

Integer / numericКількості й суми. Для грошей важлива точність; float може мати похибку.
TextНазви, коди й ID, якщо над ними не виконують арифметику.
Date / timestampДата без часу або момент із часовою зоною. Це різні бізнес-смисли.
BooleanТак/ні, але NULL може означати «невідомо», якщо поле nullable.
Enum/categoryКонтрольований набір статусів; значення треба звірити з довідником.
NULLВідсутнє або невідоме значення, не zero і не порожній рядок.

Як читати metadata

-- PostgreSQL: колонки й типи однієї таблиці SELECT column_name, data_type, is_nullable FROM information_schema.columns WHERE table_schema = 'public' AND table_name = 'orders' ORDER BY ordinal_position;

Metadata — лише початок. Далі потрібні data dictionary, owner, частота оновлення, timezone, allowed statuses, правила soft delete та історії.

П’ять запитань до таблиці

  1. Що саме представляє один рядок?
  2. Який ключ має бути унікальним і чи є він фактично унікальним?
  3. Які поля nullable і що означає NULL?
  4. Яка дата є датою події, а яка — технічною датою завантаження?
  5. Чи зберігає таблиця поточний стан, історію або snapshot?

Не починайте з production-таблиці навмання

Працюйте в read-only середовищі або контрольованій навчальній базі. Не виконуйте DDL/DML-команди й не використовуйте облікові дані з правами запису для навчального аналізу.

Практика: паспорт схеми

  • Візьміть 3–4 пов’язані таблиці навчального набору.
  • Для кожної запишіть grain, primary key, foreign keys, dates і measures.
  • Перевірте expected key через count rows і count distinct key.
  • Зафіксуйте nullable fields, allowed statuses і timezone.
  • Намалюйте зв’язки та позначте one-to-many до написання JOIN.

Офіційні довідки

Готовність до тесту

Ви можете пояснити grain, відрізнити primary key від foreign key, назвати ризики order_items і визначити, які metadata ще потрібні до аналізу.

Практична перевірка · урок 8 з 51

Закріпіть матеріал уроку

Три сценарні питання. Для зарахування уроку потрібно дати щонайменше дві правильні відповіді.

1. Що треба визначити про таблицю до першого аналітичного запиту?
2. Який grain найімовірніший для order_items?
3. Що робить primary key?