MongoDB
MongoDB - документоорієнтована система управління базами даних (СУБД) з відкритим вихідним кодом, що не потребує опису схеми таблиць. Класифікована як NoSQL, використовує JSON-подібні документи й схему бази даних. Написана мовою C++.
Формат даних у MongoDB
Одним із популярних стандартів обміну даними та їхнього зберігання є JSON (JavaScript Object Notation). JSON ефективно описує складні за структурою дані. Спосіб зберігання даних у MongoDB у цьому плані схожий на JSON, хоча формально JSON не використовується. Для зберігання в MongoDB застосовується формат, який називається BSON (БіСон) або скорочення від binary JSON.
BSON дає змогу працювати з даними швидше: швидше виконується пошук і обробка. Хоча треба зазначити, що BSON на відміну від зберігання даних у форматі JSON має невеликий недолік: загалом дані в JSON-форматі займають менше місця, ніж у форматі BSON, з іншого боку, цей недолік з лишком окупається швидкістю.
Документи замість рядків
Якщо реляційні бази даних зберігають рядки, то MongoDB зберігає документи. На відміну від рядків документи можуть зберігати складну за структурою інформацію. Документ можна уявити як сховище ключів і значень.
Ключ являє собою просту мітку, з якою асоційовано певний шматок даних.
Однак за всіх відмінностей є одна особливість, яка зближує MongoDB і реляційні бази даних. У реляційних СУБД зустрічається таке поняття як первинний ключ. Це поняття описує якийсь стовпець, який має унікальні значення. У MongoDB для кожного документа є унікальний ідентифікатор, який називається _id. І якщо явно не вказати його значення, то MongoDB автоматично згенерує для нього значення.
Кожному ключу зіставляється певне значення. Але тут також треба враховувати одну особливість: якщо в реляційних базах є чітко окреслена структура, де є поля, і якщо якесь поле не має значення, йому (залежно від налаштувань конкретної бд) можна присвоїти значення NULL. У MongoDB все інакше. Якщо якомусь ключу не зіставлено значення, то цей ключ просто опускається в документі й не вживається.
Колекції
Якщо в традиційному світі SQL є таблиці, то у світі MongoDB є колекції. І якщо в реляційних БД таблиці зберігають однотипні жорстко структуровані об'єкти, то в колекції можуть містити найрізноманітніші об'єкти, що мають різну структуру і різний набір властивостей.
Реплікація
Система зберігання даних у MongoDB являє собою набір реплік. У цьому наборі є основний вузол, а також може бути набір вторинних вузлів. Усі вторинні вузли зберігають цілісність і автоматично оновлюються разом з оновленням головного вузла. І якщо основний вузол з якихось причин виходить з ладу, то один із вторинних вузлів стає головним.