2. План
NoSQL концепції
Види NoSQL
NoSQL vs RDBMS
Реплікація
CAP теорема
Redis
MongoDB
4. NoSQL – це…
сукупність технологій баз даних, які були розроблені у
відповідь на вимоги сучасних додатків:
великі об’єми нових типів даних, що швидко
змінюються;
короткотривалі цикли розробки (1-2 тижні)
аплікації як сервіси, завжди доступні, масштабовані
для мільйонів користувачів
перевага масштабованих архітектур з використанням
відкритого ПЗ
6. NoSQL: Ключ-значення сховища
використовують асоціативні масиви (також відомі як
словники) як фундаментальну модель даних. В цій
моделі дані зберігаються як колекція пар ключ-
значення, так що кожен ключ зустрічається лише один
раз.
8. NoSQL: Документні БД
ставить у відповідність кожному ключу складну
структуру даних відому, як документ. Документ може
містити багато відмінних пар ключ-значеня, або ж ключ-
масив і навіть вкладені документи
14. NoSQL vs RDBMS
SQL NoSQL
Типи Одного типу (SQL) з
мінімальними відмінностями
Багато різних типів,
наприклад, сховища ключ-
значення, документні, графові
та інші
Модель зберігання даних Окремі записи зберігаються як
рядки в таблицях, де кожна
колонка зберігає специфічну
частину даних про даний
запис. Пов’язані дані
зберігаються в інших
таблицях, а потім
об’єднуються для виконання
складних запитів.
Варіюється в залежності від
виду бази даних. На приклад,
ключ-значення сховища
зберігають складні об’єкти як
BLOB. Документні БД
зберігають всю пов’язану
інформацію разом в одному
документі
15. NoSQL vs RDBMS
SQL NoSQL
Схема Структура та типи даних є
фіксованими. Для збереження
нових даних, вся база даних
повинна бути змінена.
Протягом цього часу база
даних є недоступною.
Переважно динамічна з
дотриманням деяких правил
валідації даних. Додатки
можуть додавати нові поля
«на льоту», і на відміну SQL
таблиць, несхожі дані при
потребі можуть зберігатись
разом.
Масштабування Вертикальне: сервер повинен
бути максимально потужним,
щоб справлятись з вимогами.
Можливо рознести SQL БД по
багатьох серверах, що є
складним технологічним
процесом.
Горизонтальне: додавання
нових серверів. Бази даних
автоматично розподіляють
дані між серверами при
потребі.
16. NoSQL vs RDBMS
SQL NoSQL
Модель розробки Поєднання відкритого ПЗ
(Postgres, MySQL та інші) з
закритим (Oracle, MSSQL та
інші)
Відкрите ПЗ (open-source)
Підтримка транзакцій Так. Зміни можуть бути
налаштовані таким чином,
щоб завершуватись разом або
ні.
При певних обставинах та на
певних рівнях.
17. NoSQL vs RDBMS
SQL NoSQL
Маніпулювання даними Використання операторів
специфічної мови: Select,
Insert, Update та інші.
Через об’єктно-орієнтовані
APIs
Узгодженість (Consistency) Можливе налаштування для
підтримки строгої
узгодженості.
Залежить від продукту. Деякі
забезпечують строгу
узгодженість, інші –
підсумкову узгодженість.
19. CAP теорема
Розподілена система може
одночасно забезпечувати
лише 2 з 3 властивостей:
- узгодженість
(consistency);
- доступність (availability);
- стійкість до розподілу
(partition tolerance)
20. Redis – REmote DIctionary Service
ключ-значення сховище;
зберігає дані в оперативній пам’яті (по замовчуванню).
21. Переваги Redis
надзвичайно швидкий;
можливість зберігати не тільки стрічки;
постійність;
реплікація;
вбудована підтримка Lua-скриптів.
28. MongoDB
Документно-орієнтована БД:
документи – аналоги ключ-значення структур у мовах
програмування (словники, хеші, мапи, асоціативні
масиви)
документи зберігаються у JSON форматі (насправді у
BSON – бінарний JSON)
всі документи зберігаються в колекціях. Колекція –
група пов’язаних документів, що мають набір спільних
індексів
35. MongoDB: Запити
- стосуються конкретної колекції документів
- вказують критерії чи умови, що
визначають документи, які поверне
MongoDB
- можуть включати проекцію, що вказує, які
поля повернути у знайдених документах