NoSQL означає "Не тільки SQL" і зазвичай означає, що база даних не є реляційною базою даних, яка була дуже популярною в останні десятиліття.
Причина, по якій NoSQL був настільки популярний останні кілька років, головним чином полягає в тому, що коли реляційна база даних виростає з одного сервера, це вже не так просто у використанні. Іншими словами, у розподіленій системі вони не дуже добре масштабуються. Усі великі сайти, про які ви згадали Google, Yahoo, Facebook та Amazon (я не знаю багато про Digg), мають безліч даних і зберігають дані в розподілених системах з кількох причин. Можливо, дані не вміщуються на одному сервері, або є вимоги щодо високої доступності .
Теорема CAP
Властивості розподіленої системи можна описати теоремою CAP . З трьох властивостей у вас може бути лише максимум два:
- C onsistency
- Доступність
- толерантність до мережі P артикулювання
Amazon Dynamo використовує Eventual Consistency, щоб наблизитись до всіх трьох властивостей. Папір Динамо: Магазин високодоступних ключових значень Amazon варто прочитати, коли дізнаєтесь про бази даних NoSQL та розподілені системи. Amazon Dynamo має властивості A і P.
Google застосовує інший підхід до BigTable , який має властивості C і A.
Інші бази даних NoSQL
Як я писав на початку, існує багато інших типів баз даних NoSQL, розроблених для різних вимог. Наприклад, бази даних графіків , такі як Neo4j , бази даних документів, такі як CouchDB і багатомодельні / об'єктні бази даних, такі як OrientDB .
Нарешті, я хотів би сказати, що реляційні бази даних залишаться популярними. Вони дуже гнучкі та ремонтопридатні. Але вони не завжди є найкращим вибором.