Основні концепції БД: модель даних, транзакції, ACID, індексування, реплікація, безпека

Розділ: Бази та сховища даних

📌 Про що ця тема

Тут перевіряють розуміння того, як влаштовані бази даних: за якою моделлю зберігаються дані, як зберегти їхню цілісність під час одночасних операцій (транзакції, ACID) і як пришвидшити й захистити доступ. Ключові поняття: модель даних, транзакція, ACID, індекс, реплікація, безпека.


📖 Головне

• База даних (БД) — упорядкований набір пов’язаних даних; СУБД — програма для керування ними (створення, зберігання, пошук, зміна).

• Модель даних — спосіб логічної організації даних. Основні: реляційна (таблиці з рядками й стовпцями, зв’язки через ключі), ієрархічна (дерево), мережева (граф), об’єктна, а серед сучасних — документо-орієнтована та інші NoSQL.

• Реляційна модель — найпоширеніша: дані у таблицях (відношеннях); рядок = запис, стовпець = поле. Мова роботи — SQL.

• Ключ — поле (чи кілька), що однозначно визначає запис. Первинний ключ (PRIMARY KEY) унікальний і не порожній; зовнішній ключ (FOREIGN KEY) посилається на первинний ключ іншої таблиці й забезпечує зв’язок.

• Транзакція — послідовність операцій, яку СУБД виконує як одне ціле: або все успішно (COMMIT), або все скасовується (ROLLBACK).

• ACID — чотири властивості надійної транзакції:

• Atomicity (атомарність) — усе або нічого; половинчастих змін не буває.

• Consistency (узгодженість) — БД переходить з одного коректного стану в інший, правила цілісності не порушуються.

• Isolation (ізольованість) — паралельні транзакції не заважають одна одній.

• Durability (стійкість) — після COMMIT зміни збережені навіть у разі збою живлення.

• Індекс — допоміжна структура (часто B-дерево), що прискорює пошук за певним полем, як покажчик у книзі. Пришвидшує SELECT, але сповільнює вставку/оновлення й займає місце.

• Реплікація — копіювання даних на кілька серверів для надійності та розподілу навантаження. Master-slave: запис на головний, читання з копій.

• Безпека БД — захист від несанкціонованого доступу й втрати: автентифікація (логін/пароль), авторизація (права доступу, ролі, GRANT/REVOKE), шифрування, резервне копіювання (backup).


🔢 Як це працює на прикладі

Переказ грошей: зняти 100 з рахунку A і додати на рахунок B.

• Крок 1: BEGIN — старт транзакції.

• Крок 2: A = A − 100.

• Крок 3: B = B + 100.

• Крок 4: якщо обидві дії успішні — COMMIT; якщо на кроці 3 збій — ROLLBACK, і гроші з A повертаються.

Атомарність не дозволить списати з A без зарахування на B. Пошук рахунку за номером прискорить індекс на полі «номер рахунку».


⚠️ Типові помилки

• Плутають первинний і зовнішній ключ: первинний ідентифікує запис, зовнішній посилається на інший.

• Вважають, що індекс завжди корисний — він уповільнює операції запису.

• Плутають COMMIT і ROLLBACK: перший підтверджує, другий скасовує зміни.

• Змішують реплікацію (копії на різних серверах) і резервне копіювання (архів на випадок втрати).

• Плутають автентифікацію (хто ти) з авторизацією (що тобі дозволено).


🎯 Що завчити напам’ять

• ACID: Atomicity, Consistency, Isolation, Durability — і суть кожної.

• COMMIT підтверджує, ROLLBACK скасовує транзакцію.

• Первинний ключ — унікальний; зовнішній — посилання на інший.

• Індекс прискорює читання, сповільнює запис.


🧠 Перевір себе

1. Що означає «атомарність» транзакції?

2. Чим зовнішній ключ відрізняється від первинного?

3. Навіщо потрібен індекс і яка його ціна?

4. Чим реплікація відрізняється від резервного копіювання?


Відповіді: 1 — транзакція виконується повністю або не виконується зовсім, без половинчастих змін; 2 — первинний однозначно ідентифікує запис таблиці, зовнішній посилається на первинний ключ іншої таблиці для зв’язку; 3 — пришвидшує пошук за полем, але сповільнює вставку/оновлення й займає місце; 4 — реплікація підтримує актуальні копії на кількох серверах для доступності, резервне копіювання зберігає архів для відновлення після втрати даних.

Перевірити себе на практиці

Прочитати — половина справи. Далі потрібні завдання цієї ж теми з розбором кожної відповіді: саме на них видно, чи справді тема закрита.