ЛЕКЦІЯ 2

Архітектура магії: Типи та моделі баз даних

Карта Мародерів курсу

  • Лекція 1: Вступ
  • Лекція 2: Моделі даних (Поточна)
  • Лекція 3: AI та Векторні БД
  • Лекція 4: Реляційна модель

Що таке Модель Даних?

Data Model

Абстракція, що описує, як дані організовані, збережені та як вони пов'язані між собою.

Аналогія: Аналогія: Це як правила квідичу. Вони не кажуть, як літати (фізика), але визначають, що таке 'гол', 'снітч' і як нараховувати бали.

Рівні абстракції

Три рівні сприйняття магії

%%{init: {"theme": "neutral", "mermaid": {"version": "11.12.2"}}}%% graph TD Ext[Зовнішній рівень - Заклинання користувача] --> Conc[Концептуальний рівень - Теорія магії/Структура] Conc --> Phys[Фізичний рівень - Магічне ядро/Біти на диску] style Ext fill:#f9f,stroke:#333 style Conc fill:#bbf,stroke:#333 style Phys fill:#dfd,stroke:#333

Еволюція магічних сховищ

1960s

Родове дерево Блеків. Жорстка структура. Щоб знайти онука, треба знати діда.

1970s

Журнал Гоґвортсу. Таблиці, чіткі колонки, зв'язки через ID.

2000s

Кімната на вимогу. Зберігає будь-що у будь-якій формі (мітли, діадеми, документи).

Реляційні (SQL) vs NoSQL

SQL (Таблиці)

  • Схема фіксована (Schema-on-write)
  • Гаррі Поттер (Обраний, структурований)
  • Вертикальне масштабування (Сильніший сервер)

NoSQL (Документи/Графи)

  • Схема гнучка (Schema-on-read)
  • Ньют Скамандер (Хаос у валізі, багато різного)
  • Горизонтальне масштабування (Більше серверів)

Реляційний підхід (SQL)

Порядок і структура. Ідеально для оцінок та розкладу.

-- Дані розбиті на таблиці
CREATE TABLE Houses (id INT, name TEXT);
CREATE TABLE Students (id INT, name TEXT, house_id INT);

-- Чіткий зв'язок
INSERT INTO Students VALUES (1, 'Draco', 2);

Документо-орієнтований підхід (JSON/MongoDB)

Гнучкість. У Рона може бути 'щур', а у Гаррі — 'сова'. Структура різна.

{
  "name": "Harry Potter",
  "house": "Gryffindor",
  "inventory": ["Wand", "Cloak", "Map"],
  "attributes": { "scar": true, "parseltongue": true }
}

Графова модель даних

Соціальні зв'язки Гоґвортсу. Використовується, коли зв'язки важливіші за самі дані (Neo4j).

%%{init: {"theme": "neutral", "mermaid": {"version": "11.12.2"}}}%% graph LR Harry((Harry)) -- friend_of --> Ron((Ron)) Harry -- enemy_of --> Draco((Draco)) Snape((Snape)) -- loves --> Lily((Lily)) Lily -- mother_of --> Harry

Об'єктно-орієнтовані БД

Сортувальний капелюх запитує

Якщо вам потрібно створити соціальну мережу для чарівників, яку модель краще обрати?

  • Ієрархічну (як файлова система)
  • Реляційну (таблиці)
  • Графову (вузли та ребра)
  • Ключ-значення
✅ Правильна відповідь: Графову (вузли та ребра)

Висновки

  • Не існує 'найкращої' БД. Є інструменти для різних задач.
  • SQL = Порядок, Транзакції, Банки (Gringotts).
  • NoSQL = Гнучкість, Швидкість, Великі дані (Weasleys' Wizard Wheezes).
  • Більшість сучасних проектів використовують обидва підходи.

Підготовка до практики

Дякую за увагу! 💾

← Повернутися до списку лекцій