Підручник з NoSQL: Типи баз даних NoSQL та приклади

⚡ Розумний підсумок

NoSQL — це нереляційна система керування базами даних, яка не вимагає фіксованої схеми, уникає об'єднань та легко масштабується. Цей ресурс пояснює, що таке NoSQL, чому він існує, його історію, функції, чотири типи баз даних, теорему CAP, остаточну узгодженість, а також його переваги та недоліки.

  • 📦 Визначення: Нереляційне сховище без схем, створене для величезних розподілених наборів даних.
  • 📈 Чому: Масштабування на багатьох хостах обробляє великі дані швидше, ніж масштабування наростанням.
  • 🗂️ Чотири типи: Ключ-значення, стовпцево-орієнтований, графічно-орієнтований та документо-орієнтований.
  • 🇧🇷 Теорема CAP: Розподілене сховище може гарантувати лише два: узгодженість, доступність та толерантність до розділів.
  • 🔁 БАЗА: Базово доступний, м'який стан, кінцева узгодженість між репліками.

Підручник NoSQL

Що таке NoSQL?

База даних NoSQL — це нереляційна система керування даними, яка не вимагає фіксованої схеми. Вона уникає об’єднань і легко масштабується. Основною метою використання бази даних NoSQL є розподілені сховища даних з величезними потребами зберігання даних. NoSQL використовується для великих даних і веб-додатків реального часу. Наприклад, такі компанії, як Twitter, Facebook і... Google збирати терабайти даних користувачів щодня.

База даних NoSQL Розшифровується як «Not Only SQL» або «Not SQL». Хоча кращим терміном був би «NoREL», NoSQL прижився. Карл Строцці представив концепцію NoSQL у 1998 році.

Традиційна система управління базами даних (RDBMS) використовує синтаксис SQL для зберігання та отримання даних для подальшого аналізу. Натомість, система баз даних NoSQL охоплює широкий спектр технологій баз даних, які можуть зберігати структуровані, напівструктуровані, неструктуровані та поліморфні дані. Давайте розглянемо NoSQL за допомогою діаграми в цьому посібнику з баз даних NoSQL:

База даних NoSQL

Чому NoSQL?

Концепція NoSQL баз даних стала популярною серед інтернет-гігантів, таких як Google, Facebook, Amazonтощо, які мають справу з величезними обсягами даних. Час відповіді системи стає повільним, коли ви використовуєте RDBMS для великих обсягів даних.

Щоб вирішити цю проблему, ми могли б «розширити» наші системи, оновивши наявне обладнання. Цей процес дорогий.

Альтернативою цій проблемі є розподіл навантаження бази даних на кілька хостів щоразу, коли навантаження збільшується. Цей метод відомий як «масштабування».

NoSQL

База даних NoSQL не є реляційною, тому вона масштабується краще, ніж реляційні бази даних, оскільки вони розроблені з урахуванням веб-застосунків.

Коротка історія баз даних NoSQL

  • 1998 – Карло Строцці використовує термін NoSQL для своєї легкої реляційної бази даних з відкритим кодом.
  • 2000 – Графова база даних Neo4j запущено.
  • 2004 - Google Запущено BigTable.
  • 2005 - CouchDB запускається.
  • 2007 – Дослідницька робота на тему Amazon Динамо звільнено.
  • 2008 – Facebook відкриває вихідні коди Cassandra Проект.
  • 2009 – Термін NoSQL було знову введено.

Особливості NoSQL

Нереляційний

  • Бази даних NoSQL ніколи не слідують реляційна модель.
  • Ніколи не надавайте таблиці з плоскими записами з фіксованими стовпцями.
  • Працюйте з автономними агрегатами або BLOB-об'єктами.
  • Не вимагає об'єктно-реляційної картиping та нормалізація даних.
  • Жодних складних функцій, таких як мови запитів, планувальники запитів, об'єднання для забезпечення посилальної цілісності або ACID.

Без схеми

  • Бази даних NoSQL або не мають схем, або мають розслаблені схеми.
  • Не вимагайте жодного визначення схеми даних.
  • Пропонуйте різнорідні структури даних в одному домені.
Особливості NoSQL
NoSQL не містить схем

Простий API

  • Пропонує прості у використанні інтерфейси для зберігання та запитів даних.
  • API дозволяють використовувати низькорівневі методи маніпулювання даними та вибору.
  • Текстові протоколи, що здебільшого використовуються з HTTP REST з JSON.
  • Здебільшого використовується мова запитів NoSQL, що не базується на стандартах.
  • Веб-бази даних, що працюють як інтернет-сервіси.

Видали більше

  • Кілька NoSQL баз даних можуть виконуватися розподіленим чином.
  • Пропонує можливості автоматичного масштабування та резервного копіювання.
  • Часто концепцію ACID можна принести в жертву заради масштабованості та пропускної здатності.
  • Здебільшого немає синхронної реплікації між розподіленими вузлами; асинхронна реплікація між кількома головними вузлами, реплікація між вузлами, реплікація HDFS.
  • Тільки забезпечення остаточної узгодженості.
  • Архітектура без спільного доступу. Це забезпечує меншу координацію та вищий розподіл.
Особливості NoSQL

NoSQL не має спільного доступу.

Типи баз даних NoSQL

Бази даних NoSQL в основному поділяються на чотири типи: пари ключ-значення, орієнтовані на стовпці, орієнтовані на графи та орієнтовані на документи. Кожна категорія має свої унікальні атрибути та обмеження. Жодна з вищезазначених баз даних не вирішує всі проблеми краще. Користувачам слід вибирати базу даних на основі потреб свого продукту.

Типи баз даних NoSQL:

  • На основі пари ключ-значення
  • Граф, орієнтований на стовпці
  • На основі графіків
  • Документоорієнтований

Типи баз даних NoSQL

На основі пари ключ-значення

Дані зберігаються в парах ключ/значення. Він розроблений таким чином, щоб обробляти великі обсяги даних та велике навантаження. Бази даних для зберігання пар ключ-значення зберігають дані у вигляді хеш-таблиці, де кожен ключ унікальний, а значення може бути JSON, BLOB (великі бінарні об'єкти), рядком тощо.

Наприклад, пара ключ-значення може містити ключ типу «Веб-сайт», пов’язаний зі значенням типу «Guru99 ".

На основі пари ключ-значення

Це один із найпростіших прикладів NoSQL баз даних. Цей тип NoSQL баз даних використовується як колекція, словники, асоціативні масиви тощо. Сховища типу «ключ-значення» допомагають розробнику зберігати дані без схеми. Вони найкраще підходять для магазинів.ping вміст кошика.

Redis, Dynamo та Riak – це деякі NoSQL-приклади баз даних типу «ключ-значення». Усі вони базуються на AmazonДинамівська газета.

На основі колонок

Колонково-орієнтовані бази даних працюють зі стовпцями та базуються на статті BigTable, написаній... GoogleКожен стовпець обробляється окремо. Значення баз даних з одним стовпцем зберігаються послідовно.

База даних NoSQL на основі стовпців

База даних NoSQL на основі стовпців

Вони забезпечують високу продуктивність для агрегуючих запитів, таких як SUM, COUNT, AVG, MIN тощо, оскільки дані легкодоступні у стовпці. Стовпцеві бази даних NoSQL широко використовуються для керування сховищами даних, бізнес-аналітика, CRM та каталоги бібліотечних карток.

HBase, Cassandra, а Hypertable – це приклади NoSQL-запитів для баз даних на основі стовпців.

Документоорієнтований

Документно-орієнтована NoSQL база даних зберігає та отримує дані у вигляді пари ключ-значення, але частина значення зберігається як документ. Документ зберігається у форматах JSON або XML. Значення розуміється базою даних і може бути запитуване.

Реляційний Vs. документ

Реляційний Vs. документ

На цій діаграмі ліворуч ви можете бачити рядки та стовпці, а праворуч – базу даних документів, яка має структуру, подібну до JSON. Щодо реляційної бази даних, вам потрібно знати, які у вас є стовпці тощо. Однак для бази даних документів у вас є сховище даних, таке як об'єкт JSON. Вам не потрібно його визначати, що робить його гнучким.

Цей тип документа здебільшого використовується для систем CMS, платформ для блогів, аналітики в режимі реального часу та програм електронної комерції. Його не слід використовувати для складних транзакцій, які потребують кількох операцій або запитів до різних агрегованих структур.

Amazon SimpleDB, CouchDB, MongoDB, Riak та Lotus Notes є популярними документоорієнтованими програмами Системи СУБД.

На основі графіків

База даних графового типу зберігає сутності, а також зв'язки між цими сутностями. Сутність зберігається як вузол, а зв'язок - як ребра. Ребро задає зв'язок між вузлами. Кожен вузол і ребро має унікальний ідентифікатор.

На основі графіків

Порівняно з реляційною базою даних, де таблиці слабо пов'язані, графова база даних є мультиреляційною за своєю природою. Перехід між зв'язками відбувається швидко, оскільки вони вже записані в базі даних, і немає потреби їх обчислювати. Графові бази даних здебільшого використовуються для соціальних мереж, логістики та просторових даних.

Neo4J, нескінченний граф, OrientDB, та FlockDB – деякі популярні графові бази даних.

Інструменти механізму запитів для NoSQL

Найпоширенішим механізмом отримання даних є отримання значення на основі REST на основі його ключа/ідентифікатора за допомогою ресурсу GET.

Бази даних сховищ документів пропонують складніші запити, оскільки вони розуміють значення в парі ключ-значення. Наприклад CouchDB дозволяє визначати представлення за допомогою MapReduce.

Що таке теорема CAP?

Теорему CAP також називають теоремою Брюера. Вона стверджує, що розподілене сховище даних не може запропонувати більше двох із трьох гарантій:

  1. консистенція
  2. доступність
  3. Толерантність розділу

Послідовність: Дані повинні залишатися узгодженими навіть після виконання операції. Це означає, що після запису даних будь-який майбутній запит на читання повинен містити ці дані. Наприклад, після оновлення статусу замовлення всі клієнти мають бачити однакові дані.

наявність: База даних має бути завжди доступною та оперативною. Він не повинен мати простоїв.

Толерантність до розділу: Допуск до розділів означає, що система має продовжувати функціонувати, навіть якщо зв’язок між серверами не стабільний. Наприклад, сервери можуть бути розділені на кілька груп, які можуть не спілкуватися один з одним. Тут, якщо частина бази даних недоступна, інші частини завжди залишаються незмінними.

Кінцева послідовність

Термін «кінцева узгодженість» означає наявність копій даних на кількох машинах для досягнення високої доступності та масштабованості. Таким чином, зміни, внесені до будь-якого елемента даних на одній машині, повинні поширюватися на інші репліки.

Реплікація даних може бути не миттєвою, оскільки деякі копії оновлюватимуться негайно, а інші – з часом. Ці копії можуть бути взаємно неузгодженими, але з часом вони стають узгодженими. Звідси й назва – остаточна узгодженість.

БАЗА: Bякось Aдоступний, Sчасто держава, Eвентиляційна консистенція

  • Базово доступний означає, що база даних доступна весь час згідно з теоремою CAP.
  • М'який стан означає, що навіть без вхідних даних стан системи може змінюватися.
  • Кінцева узгодженість означає, що система з часом стане узгодженою.

Кінцева послідовність

Переваги NoSQL

  • Може використовуватися як первинне або аналітичне джерело даних.
  • Можливості роботи з великими даними.
  • Жодної єдиної точки відмови.
  • Легке копіювання.
  • Немає потреби в окремому шарі кешування.
  • Він забезпечує високу продуктивність і горизонтальну масштабованість.
  • Може обробляти структуровані, напівструктуровані та неструктуровані дані з однаковим ефектом.
  • Об'єктно-орієнтоване програмування, яке є простим у використанні та гнучким.
  • NoSQL-бази даних не потребують виділеного високопродуктивного сервера.
  • Підтримка ключових мов та платформ розробників.
  • Простіше реалізувати, ніж використовувати РСУБД.
  • Він може служити основним джерелом даних для онлайн-додатків.
  • Обробляє великі дані, керуючи швидкістю, різноманітністю, обсягом та складністю даних.
  • Відмінно справляється з розподіленими базами даних та операціями з кількома центрами обробки даних.
  • Усуває потребу в окремому шарі кешування для зберігання даних.
  • Пропонує гнучку схему, яку можна легко змінити без простоїв або перебоїв у роботі.

Недоліки NoSQL

  • Немає правил стандартизації.
  • Обмежені можливості запитів.
  • СУБД Бази даних та інструменти є порівняно зрілими.
  • Він не пропонує жодних традиційних можливостей бази даних, як-от узгодженість, коли кілька транзакцій виконуються одночасно.
  • Коли обсяг даних збільшується, важко підтримувати унікальні значення, оскільки ключі стають складними.
  • Не так добре працює з реляційними даними.
  • Крива навчання для нових розробників є складною.
  • Варіанти з відкритим кодом не такі популярні для підприємств.

Поширені запитання

NoSQL-бази даних обробляють великі, різноманітні та швидкозмінні дані, які створюють штучний інтелект та конвеєри великих даних. Їхня гнучка схема та горизонтальне масштабування підходять для зберігання навчальних даних, журналів та функцій реального часу в розподілених кластерах.

Так. Кілька NoSQL баз даних, таких як MongoDB та Elasticsearch тепер підтримують векторні поля та пошук за подібністю. Це дозволяє програмам штучного інтелекту зберігати вбудовані елементи поруч із документами для семантичного пошуку та рекомендаційних функцій.

Бази даних SQL є реляційними з фіксованою схемою та використовують таблиці, рядки та об'єднання. Бази даних NoSQL є нереляційними, використовують гнучкі схеми та масштабуються горизонтально, зберігаючи дані у вигляді документів, пар «ключ-значення», стовпців або графіків.

Уникайте NoSQL, коли вам потрібні сильні ACID-транзакції, складні об'єднання або сувора цілісність даних, наприклад, у банківській справі. Зрілі реляційні бази даних у таких випадках краще обробляють багатозаписну узгодженість та стандартизовані запити.

Підсумуйте цей пост за допомогою: