Вступ до NoSQL

4 хв. читання

Протягом останніх десятиліть професіонали в галузі баз даних залежали від єдиного стандарту, підтримуваного усіма базами даних - мови структурованих запитів (SQL). Ми покладались на таблично орієнтовану реляційну базу даних і використовували її для зберігання та доступу до даних. Ніхто не задумувався над альтерантивами їй. Проте, часи змінились. Модель NoSQL (Not only SQL) відкидає багато усталених уявлень про "правильну" структуру баз даних. Натомість NoSQL пропонує можливість отримати підвищену продуктивність роботи.

Зміни до моделі

Реляційні бази даних завжди ґрунтувалися на незмінних структурованих правилах, які регулювали проведення транзакцій. Ці правила складають ACID модель, яка вимагає щоб база даних зберігала атомарність, узгодженість, ізольованість та довговічність транзакцій. Будь-яка дія, яка може порушити ACID модель є заборонена.

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

Якщо не таблиці, тоді що?

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

Є чотири типи NoSQL баз даних:

  • база даних "ключ/значення" є нічим більшим, ніж вище описана функція - двійковий об'єкт даних, асоційований з його ключем, зберігається у базі даних для подальшого його повернення.
  • документоорієнтована база даних трохи виходить за рамки попередного принципу. Вона накладає певну структуру на двійковий об'єкт. Об'єктами повинні бути документи впізнаваного формату, XML чи PDF. Проте немає ніяких вимог щодо структури чи змісту документу. Кожен документ зберігається як значення (у структурі "ключ/значення") і може супроводжуватись метаданими, вбудованими в себе.
  • колоноподібна база даних є гібридом NoSQL та реляційних баз даних. Вона передбачає певну структуру рядок-колонка, але не має жорстких правил реляційної структури.
  • **база даних на основі графів **зберігає дані у кортежах з багатьма атрибутами, які відображають відношення в інший спосіб. Наприклад, "дружні" зв'язки у соціальних мережах можуть зберігатись у вигляді запису, який включає всього лиш двоє користувачів, які є друзями.

Архітектура NoSQL

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

Для пошуку пари "ключ/значення" потрібно надати базі даних сам ключ.

Після прочитання опису цього процесу може постати питання: "Як користувач чи програма виконує складніші запити, такі як пошук ключів які мають якесь конкретне значення, або сортування по значенню?" Відповідь проста - NoSQL просто не підтримує функціоналу такого типу. NoSQL створений для ефективного зберігання пар "ключ/значення" зі швидким доступом до них, коли програмі просто потрібно місце для схову даних з подальшим пошуком їх тільки за ключем.

Якщо вам треба виконувати інші запити, тоді NoSQL не є доречною для вас платформою.

Надлишковість та масштабованість

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

Висновок

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

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.8K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація