Що таке база даних?
База даних (БД) — це організоване сховище для зберігання та обробки інформації. 📚 Приклади БД у житті: • Каталог бібліотеки • Журнал оцінок у школі • Контакти у телефоні • Товари в інтернет-магазині 🗄️ Реляційні БД зберігають дані у вигляді таблиць, пов'язаних між собою.
SQL — мова запитів
📝 SQL (Structured Query Language) — для роботи з БД: -- Вибрати всіх учнів SELECT * FROM students; -- Вибрати учнів 10-А класу SELECT name, surname FROM students WHERE class = "10-А"; -- Порахувати кількість учнів SELECT COUNT(*) FROM students; -- Додати нового учня INSERT INTO students (name, surname, class) VALUES ("Іван", "Петренко", "10-А");
💡 Історія: Oracle і Ларрі Еллісон
💰 Oracle — одна з найбільших IT-компаній світу. 📖 Історія: У 1977 році Ларрі Еллісон прочитав статтю IBM про реляційні бази даних. IBM не поспішала з реалізацією, а Еллісон з друзями створили Oracle. 🏆 Результат: Еллісон став одним з найбагатших людей планети! Цікаво: Назва "Oracle" походить від проекту ЦРУ, над яким працював Еллісон.
Типи баз даних
- 📊 Реляційні (SQL): MySQL, PostgreSQL, Oracle, SQL Server
- 📄 NoSQL (документні): MongoDB — зберігає дані як JSON-документи
- 🔑 Key-Value: Redis — надшвидке сховище для кешування
- 📈 Графові: Neo4j — для соціальних мереж та зв'язків
🛡️ Принципи ACID (Надійність БД)
Банківські системи використовують SQL, бо ці БД гарантують ACID:
- Atomicity (Атомарність) — транзакція або виконується повністю, або ніяк.
- Consistency (Консистентність) — після транзакції база даних повинна бути валідною.
- Isolation (Ізольованість) — паралельні транзакції не псують дані.
- Durability (Довговічність) — після успішної транзакції дані не зникнуть навіть при збої електроенергії.
⚖️ CAP-теорема
Створена Еріком Брюером, вона стверджує, що в розподіленій базі даних можна мати максимум ДВІ з трьох властивостей: 1. Consistency (Узгодженість) — всі бачать одні й ті самі дані. 2. Availability (Доступність) — система завжди відповідає. 3. Partition tolerance (Стійкість до розривів мережі). Жодна NoSQL база не може забезпечити всі три!
Індекси: як бази даних працюють так швидко?
Уявіть книгу лікаря на 10 000 сторінок, де треба знайти слово "Аскорбінка". Без індексу ви будете гортати сторінку за сторінкою — в базах даних це називається "Full Table Scan" (повне сканування). Але якщо в кінці книги є Алфавітний Індекс, ви знаходите слово за секунду! Так само працюють індекси (Indexes) в базах: це спеціальні структури даних (частіше за все B-Trees), які сортують дані для миттєвого пошуку.
💉 SQL-ін'єкція: страшний сон адміністратора
Один з найстаріших і найнебезпечніших способів зламати базу даних сайту. Якщо форма введення пароля на сайті не перевіряє те, що вводить користувач, хакер може написати туди шматок SQL-коду. База даних виконає цей код як наказ. Наприклад: `' OR 1=1; DROP TABLE users;` — це змусить базу повірити, що пароль правильний, і після цього вона ВИДАЛИТЬ таблицю зі всіма користувачами сайту!
Реляційні vs Нереляційні (NoSQL)
Два головні підходи до зберігання даних:
- Табличні (Relational/SQL): як таблиці Excel. Кожен рядок має однакову структуру (Ім'я, Вік). Надійні, ідеальні для фінансів (PostgreSQL, MySQL).
- Документо-орієнтовані (NoSQL): як папки з документами. Один запис може мати дані про користувача, інший — масив його фотографій. Дуже гнучкі та швидкі, ідеальні для соцмереж та каталогів (MongoDB).