Назад до Інформатика
СереднійІнформатика

Бази даних

Основи роботи з базами даних, SQL-запити, проектування таблиць.

Що таке база даних?

База даних (БД) — це організоване сховище для зберігання та обробки інформації. 📚 Приклади БД у житті: • Каталог бібліотеки • Журнал оцінок у школі • Контакти у телефоні • Товари в інтернет-магазині 🗄️ Реляційні БД зберігають дані у вигляді таблиць, пов'язаних між собою.

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).