SlideShare a Scribd company logo
eleks.comeleks.com
NoSQL: основи
План
 NoSQL концепції
 Види NoSQL
 NoSQL vs RDBMS
 Реплікація
 CAP теорема
 Redis
 MongoDB
NoSQL basics
NoSQL – це…
сукупність технологій баз даних, які були розроблені у
відповідь на вимоги сучасних додатків:
 великі об’єми нових типів даних, що швидко
змінюються;
 короткотривалі цикли розробки (1-2 тижні)
 аплікації як сервіси, завжди доступні, масштабовані
для мільйонів користувачів
 перевага масштабованих архітектур з використанням
відкритого ПЗ
Види NoSQL
 Ключ-значення
 Документні
 Графові
 Об’єктні
 Інші
NoSQL: Ключ-значення сховища
використовують асоціативні масиви (також відомі як
словники) як фундаментальну модель даних. В цій
моделі дані зберігаються як колекція пар ключ-
значення, так що кожен ключ зустрічається лише один
раз.
Ключ-значення БД: приклади
 Redis
 Riak
 Dbm
 Berkeley DB
NoSQL: Документні БД
ставить у відповідність кожному ключу складну
структуру даних відому, як документ. Документ може
містити багато відмінних пар ключ-значеня, або ж ключ-
масив і навіть вкладені документи
Документні БД: приклади
 MongoDB
 CouchDB
 DocumentDB
 MarkLogic
NoSQL: Графові БД
використовують граф з вершинами, ребрами та
властивостями для представлення та збереження даних.
Графові БД: приклади
 Neo4J
 Giraph
 OrientDB
 Stardog
NoSQL: Об’єктні БД
представляють інформацію у вигляді об’єктів, що
використовуються в об’єктно-орієнтованому
програмуванні.
Об’єктні БД: приклади
 ObjectDB
 JADE
 Db4o
 Perst
NoSQL vs RDBMS
SQL NoSQL
Типи Одного типу (SQL) з
мінімальними відмінностями
Багато різних типів,
наприклад, сховища ключ-
значення, документні, графові
та інші
Модель зберігання даних Окремі записи зберігаються як
рядки в таблицях, де кожна
колонка зберігає специфічну
частину даних про даний
запис. Пов’язані дані
зберігаються в інших
таблицях, а потім
об’єднуються для виконання
складних запитів.
Варіюється в залежності від
виду бази даних. На приклад,
ключ-значення сховища
зберігають складні об’єкти як
BLOB. Документні БД
зберігають всю пов’язану
інформацію разом в одному
документі
NoSQL vs RDBMS
SQL NoSQL
Схема Структура та типи даних є
фіксованими. Для збереження
нових даних, вся база даних
повинна бути змінена.
Протягом цього часу база
даних є недоступною.
Переважно динамічна з
дотриманням деяких правил
валідації даних. Додатки
можуть додавати нові поля
«на льоту», і на відміну SQL
таблиць, несхожі дані при
потребі можуть зберігатись
разом.
Масштабування Вертикальне: сервер повинен
бути максимально потужним,
щоб справлятись з вимогами.
Можливо рознести SQL БД по
багатьох серверах, що є
складним технологічним
процесом.
Горизонтальне: додавання
нових серверів. Бази даних
автоматично розподіляють
дані між серверами при
потребі.
NoSQL vs RDBMS
SQL NoSQL
Модель розробки Поєднання відкритого ПЗ
(Postgres, MySQL та інші) з
закритим (Oracle, MSSQL та
інші)
Відкрите ПЗ (open-source)
Підтримка транзакцій Так. Зміни можуть бути
налаштовані таким чином,
щоб завершуватись разом або
ні.
При певних обставинах та на
певних рівнях.
NoSQL vs RDBMS
SQL NoSQL
Маніпулювання даними Використання операторів
специфічної мови: Select,
Insert, Update та інші.
Через об’єктно-орієнтовані
APIs
Узгодженість (Consistency) Можливе налаштування для
підтримки строгої
узгодженості.
Залежить від продукту. Деякі
забезпечують строгу
узгодженість, інші –
підсумкову узгодженість.
Реплікація
CAP теорема
Розподілена система може
одночасно забезпечувати
лише 2 з 3 властивостей:
- узгодженість
(consistency);
- доступність (availability);
- стійкість до розподілу
(partition tolerance)
Redis – REmote DIctionary Service
 ключ-значення сховище;
 зберігає дані в оперативній пам’яті (по замовчуванню).
Переваги Redis
 надзвичайно швидкий;
 можливість зберігати не тільки стрічки;
 постійність;
 реплікація;
 вбудована підтримка Lua-скриптів.
Redis: типи даних
 Strings
 Lists
 Hashes
 Sets
 Sorted Sets
Redis: Strings CRUD
 SET
 GET
 APPEND
 INCR and DECR (для чисел)
 GETRANGE (підрядок)
 MGET (багато значень)
 MSET
 STRLEN
Redis: List CRUD
 LPUSH and RPUSH
 LREM
 LSET
 LINDEX
 LRANGE
 LLEN
 LPOP and RPOP
 LTRIM
Redis: Set CRUD
 SADD
 SCARD
 SDIFF, SINTER and SUNION
 SISMEMBER
 SMEMBERTS
 SMOVE
 SREM
Redis: Hash CRUD
 HSET
 HMSET
 HGET
 HMGET
 HGETALL
 HDEL
 HEXISTS
 HINCRBY
 HKEYS
 HVALS
Redis: Sorted Set CRUD
 ZADD
 ZCARD
 ZCOUNT
 ZINCRBY
 ZRANGE
 ZRANK
 ZREM
 ZSCORE
MongoDB
Документно-орієнтована БД:
 документи – аналоги ключ-значення структур у мовах
програмування (словники, хеші, мапи, асоціативні
масиви)
 документи зберігаються у JSON форматі (насправді у
BSON – бінарний JSON)
 всі документи зберігаються в колекціях. Колекція –
група пов’язаних документів, що мають набір спільних
індексів
Переваги MongoDB
 відсутність схеми;
 індекси;
 auto-sharding;
 реплікація;
 масштабованість.
MongoDB: Приклад документа
MongoDB: Приклад запиту
MongoDB CRUD: Insert
 db.collection.insertOne()
 db.collection.insertMany()
 db.collection.insert()
MongoDB CRUD: Update
 db.collection.updateOne()
 db.collection.updateMany()
 db.collection.replaceOne()
 db.collection.update()
MongoDB CRUD: Delete
 db.collection.deleteOne()
 db.collection.deleteMany()
 db.collection.remove()
MongoDB: Запити
- стосуються конкретної колекції документів
- вказують критерії чи умови, що
визначають документи, які поверне
MongoDB
- можуть включати проекцію, що вказує, які
поля повернути у знайдених документах
MongoDB CRUD: Find
MongoDB Find: Проекція
MongoDB Find: Курсор
MongoDB: Індекси
Покращують ефективність операції читання
завдяки зменшенню кількості даних, яку
запит повинен обробити.
MongoDB: Індекси
MongoDB: Види індексів
- одинарні (single)
- композитні (compound)
- multikey (для значень в масивах)
Рекомендовані джерела
MongoDB:
https://university.mongodb.com/courses/M101P/about
Redis
http://redis.io/documentation
Питання
andriy.pukalyak@eleks.com
eleks.com
Inspired by Technology.
Driven by Value.
Ad

More Related Content

What's hot (15)

Dbase
DbaseDbase
Dbase
Пупена Александр
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
11 web services
11 web services11 web services
11 web services
eleksdev
 
Version control
Version controlVersion control
Version control
eleksdev
 
Lec10 11 ado-net
Lec10 11 ado-netLec10 11 ado-net
Lec10 11 ado-net
cit-cit
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
Maksym Davydov
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
Andrii Hladkyi
 
Lecture 201 - Introduction to MySQL
Lecture 201 - Introduction to MySQLLecture 201 - Introduction to MySQL
Lecture 201 - Introduction to MySQL
Andrii Kopp
 
Theme20_ajax
Theme20_ajaxTheme20_ajax
Theme20_ajax
Олег Вілігурський
 
Advanced styles
Advanced stylesAdvanced styles
Advanced styles
eleksdev
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
eleksdev
 
G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2G rpc lection1_theory_bkp2
G rpc lection1_theory_bkp2
eleksdev
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
eleksdev
 
11 web services
11 web services11 web services
11 web services
eleksdev
 
Version control
Version controlVersion control
Version control
eleksdev
 
Lec10 11 ado-net
Lec10 11 ado-netLec10 11 ado-net
Lec10 11 ado-net
cit-cit
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
eleksdev
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
Maksym Davydov
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
Maksym Davydov
 
Lecture 201 - Introduction to MySQL
Lecture 201 - Introduction to MySQLLecture 201 - Introduction to MySQL
Lecture 201 - Introduction to MySQL
Andrii Kopp
 

Viewers also liked (20)

SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
Frontend basics
Frontend basicsFrontend basics
Frontend basics
eleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
eleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
tsql
tsqltsql
tsql
eleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
#4 code quality
#4 code quality#4 code quality
#4 code quality
eleksdev
 
#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui tests
eleksdev
 
Code Practices
Code PracticesCode Practices
Code Practices
eleksdev
 
Design patterns
Design patternsDesign patterns
Design patterns
eleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
eleksdev
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summary
eleksdev
 
SQL Grouping, Joins
SQL Grouping, JoinsSQL Grouping, Joins
SQL Grouping, Joins
eleksdev
 
Frontend basics
Frontend basicsFrontend basics
Frontend basics
eleksdev
 
SDLC. PM Role
SDLC. PM RoleSDLC. PM Role
SDLC. PM Role
eleksdev
 
Improving rpc bkp
Improving rpc bkpImproving rpc bkp
Improving rpc bkp
eleksdev
 
Sql 04n edited
Sql 04n editedSql 04n edited
Sql 04n edited
eleksdev
 
SQL: Indexes, Select operator
SQL: Indexes, Select operatorSQL: Indexes, Select operator
SQL: Indexes, Select operator
eleksdev
 
SDLC. QA Role
SDLC. QA RoleSDLC. QA Role
SDLC. QA Role
eleksdev
 
Angular. presentation
Angular. presentationAngular. presentation
Angular. presentation
eleksdev
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
eleksdev
 
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
eleksdev
 
G rpc lection1
G rpc lection1G rpc lection1
G rpc lection1
eleksdev
 
SDLC. BA Role
SDLC. BA RoleSDLC. BA Role
SDLC. BA Role
eleksdev
 
SDLC. UX Role
SDLC. UX RoleSDLC. UX Role
SDLC. UX Role
eleksdev
 
#4 code quality
#4 code quality#4 code quality
#4 code quality
eleksdev
 
#2 integration + ui tests
#2 integration + ui tests#2 integration + ui tests
#2 integration + ui tests
eleksdev
 
Code Practices
Code PracticesCode Practices
Code Practices
eleksdev
 
Design patterns
Design patternsDesign patterns
Design patterns
eleksdev
 
If unit2 summary
If unit2 summaryIf unit2 summary
If unit2 summary
eleksdev
 
Unit1 summary
Unit1 summaryUnit1 summary
Unit1 summary
eleksdev
 
Ad

Similar to NoSQL basics (16)

Різноманітя баз даних (додаток до доповіді)
Різноманітя баз даних (додаток до доповіді)Різноманітя баз даних (додаток до доповіді)
Різноманітя баз даних (додаток до доповіді)
Olga Tomakhina
 
Тема 5. Простори даних.
Тема 5. Простори даних.Тема 5. Простори даних.
Тема 5. Простори даних.
Oleg Nazarevych
 
Обробка надвеликих масивів даних
Обробка надвеликих масивів данихОбробка надвеликих масивів даних
Обробка надвеликих масивів даних
ssuser8004f6
 
Lecture 105 - Relational data model
Lecture 105 - Relational data modelLecture 105 - Relational data model
Lecture 105 - Relational data model
Andrii Kopp
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатики
Tanyushka Bora-Bora
 
Databases
DatabasesDatabases
Databases
Masters Academy
 
Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...
Nikolay Shaygorodskiy
 
поняття моделі даних
поняття моделі данихпоняття моделі даних
поняття моделі даних
Julia Stepsnuk
 
Darabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentationDarabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentation
Charlie662408
 
Тема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих данихТема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих даних
Andriy Gorbal
 
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Oleg Nazarevych
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Тема 6. Системи  зберігання  даних.  Віртуалізація  сховища  данихТема 6. Системи  зберігання  даних.  Віртуалізація  сховища  даних
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Oleg Nazarevych
 
Різноманітя баз даних (додаток до доповіді)
Різноманітя баз даних (додаток до доповіді)Різноманітя баз даних (додаток до доповіді)
Різноманітя баз даних (додаток до доповіді)
Olga Tomakhina
 
Тема 5. Простори даних.
Тема 5. Простори даних.Тема 5. Простори даних.
Тема 5. Простори даних.
Oleg Nazarevych
 
Обробка надвеликих масивів даних
Обробка надвеликих масивів данихОбробка надвеликих масивів даних
Обробка надвеликих масивів даних
ssuser8004f6
 
Lecture 105 - Relational data model
Lecture 105 - Relational data modelLecture 105 - Relational data model
Lecture 105 - Relational data model
Andrii Kopp
 
реферат з інформатики
реферат з інформатикиреферат з інформатики
реферат з інформатики
Tanyushka Bora-Bora
 
Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...Lesson22 the concepts of databases and database management systems, their pur...
Lesson22 the concepts of databases and database management systems, their pur...
Nikolay Shaygorodskiy
 
поняття моделі даних
поняття моделі данихпоняття моделі даних
поняття моделі даних
Julia Stepsnuk
 
Darabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentationDarabase sql my sql mysql good presentation
Darabase sql my sql mysql good presentation
Charlie662408
 
Тема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих данихТема 6. Підготовка до публікації відкритих даних
Тема 6. Підготовка до публікації відкритих даних
Andriy Gorbal
 
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Тема 7. Моделі інтеграції - глобальна Global As View (GAV) та локальна Local ...
Oleg Nazarevych
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
інформаційні системи
інформаційні системиінформаційні системи
інформаційні системи
ISP БіттерНет
 
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Тема 6. Системи  зберігання  даних.  Віртуалізація  сховища  данихТема 6. Системи  зберігання  даних.  Віртуалізація  сховища  даних
Тема 6. Системи зберігання даних. Віртуалізація сховища даних
Oleg Nazarevych
 
Ad

More from eleksdev (7)

Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 
Uml
UmlUml
Uml
eleksdev
 
Lecture android best practices
Lecture   android best practicesLecture   android best practices
Lecture android best practices
eleksdev
 
Communication in android
Communication in androidCommunication in android
Communication in android
eleksdev
 
Hello android world
Hello android worldHello android world
Hello android world
eleksdev
 
Android location and sensors API
Android location and sensors APIAndroid location and sensors API
Android location and sensors API
eleksdev
 
Lecture java basics
Lecture   java basicsLecture   java basics
Lecture java basics
eleksdev
 
Css animation, html5 api
Css animation, html5 apiCss animation, html5 api
Css animation, html5 api
eleksdev
 

NoSQL basics

  • 2. План  NoSQL концепції  Види NoSQL  NoSQL vs RDBMS  Реплікація  CAP теорема  Redis  MongoDB
  • 4. NoSQL – це… сукупність технологій баз даних, які були розроблені у відповідь на вимоги сучасних додатків:  великі об’єми нових типів даних, що швидко змінюються;  короткотривалі цикли розробки (1-2 тижні)  аплікації як сервіси, завжди доступні, масштабовані для мільйонів користувачів  перевага масштабованих архітектур з використанням відкритого ПЗ
  • 5. Види NoSQL  Ключ-значення  Документні  Графові  Об’єктні  Інші
  • 6. NoSQL: Ключ-значення сховища використовують асоціативні масиви (також відомі як словники) як фундаментальну модель даних. В цій моделі дані зберігаються як колекція пар ключ- значення, так що кожен ключ зустрічається лише один раз.
  • 7. Ключ-значення БД: приклади  Redis  Riak  Dbm  Berkeley DB
  • 8. NoSQL: Документні БД ставить у відповідність кожному ключу складну структуру даних відому, як документ. Документ може містити багато відмінних пар ключ-значеня, або ж ключ- масив і навіть вкладені документи
  • 9. Документні БД: приклади  MongoDB  CouchDB  DocumentDB  MarkLogic
  • 10. NoSQL: Графові БД використовують граф з вершинами, ребрами та властивостями для представлення та збереження даних.
  • 11. Графові БД: приклади  Neo4J  Giraph  OrientDB  Stardog
  • 12. NoSQL: Об’єктні БД представляють інформацію у вигляді об’єктів, що використовуються в об’єктно-орієнтованому програмуванні.
  • 13. Об’єктні БД: приклади  ObjectDB  JADE  Db4o  Perst
  • 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-скриптів.
  • 22. Redis: типи даних  Strings  Lists  Hashes  Sets  Sorted Sets
  • 23. Redis: Strings CRUD  SET  GET  APPEND  INCR and DECR (для чисел)  GETRANGE (підрядок)  MGET (багато значень)  MSET  STRLEN
  • 24. Redis: List CRUD  LPUSH and RPUSH  LREM  LSET  LINDEX  LRANGE  LLEN  LPOP and RPOP  LTRIM
  • 25. Redis: Set CRUD  SADD  SCARD  SDIFF, SINTER and SUNION  SISMEMBER  SMEMBERTS  SMOVE  SREM
  • 26. Redis: Hash CRUD  HSET  HMSET  HGET  HMGET  HGETALL  HDEL  HEXISTS  HINCRBY  HKEYS  HVALS
  • 27. Redis: Sorted Set CRUD  ZADD  ZCARD  ZCOUNT  ZINCRBY  ZRANGE  ZRANK  ZREM  ZSCORE
  • 28. MongoDB Документно-орієнтована БД:  документи – аналоги ключ-значення структур у мовах програмування (словники, хеші, мапи, асоціативні масиви)  документи зберігаються у JSON форматі (насправді у BSON – бінарний JSON)  всі документи зберігаються в колекціях. Колекція – група пов’язаних документів, що мають набір спільних індексів
  • 29. Переваги MongoDB  відсутність схеми;  індекси;  auto-sharding;  реплікація;  масштабованість.
  • 32. MongoDB CRUD: Insert  db.collection.insertOne()  db.collection.insertMany()  db.collection.insert()
  • 33. MongoDB CRUD: Update  db.collection.updateOne()  db.collection.updateMany()  db.collection.replaceOne()  db.collection.update()
  • 34. MongoDB CRUD: Delete  db.collection.deleteOne()  db.collection.deleteMany()  db.collection.remove()
  • 35. MongoDB: Запити - стосуються конкретної колекції документів - вказують критерії чи умови, що визначають документи, які поверне MongoDB - можуть включати проекцію, що вказує, які поля повернути у знайдених документах
  • 39. MongoDB: Індекси Покращують ефективність операції читання завдяки зменшенню кількості даних, яку запит повинен обробити.
  • 41. MongoDB: Види індексів - одинарні (single) - композитні (compound) - multikey (для значень в масивах)