Основні концепції БД: модель даних, транзакції, 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 — реплікація підтримує актуальні копії на кількох серверах для доступності, резервне копіювання зберігає архів для відновлення після втрати даних.