Урок за NoSQL: Какво е, видове NoSQL бази данни и пример

Какво е NoSQL?

NoSQL Базата данни е нерелационна система за управление на данни, която не изисква фиксирана схема. Той избягва обединения и е лесен за мащабиране. Основната цел на използването на NoSQL база данни е за разпределени хранилища на данни с огромни нужди за съхранение на данни. NoSQL се използва за големи данни и уеб приложения в реално време. Например компании като Twitter, Facebook и Google събират терабайти потребителски данни всеки ден.

NoSQL база данни означава „Не само SQL“ или „Не SQL“. Въпреки че по-добрият термин би бил „NoREL“, NoSQL се улови. Carl Strozz представи концепцията 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- Фейсбук отворени източници Cassandra проект
  • 2009 - Терминът NoSQL беше въведен отново

Характеристики на NoSQL

Нерелационни

  • NoSQL базите данни никога не следват релационен модел
  • Никога не предоставяйте таблици с плоски записи с фиксирани колони
  • Работете със самостоятелни агрегати или BLOB
  • Не изисква обектно-релационно картографиране и нормализиране на данни
  • Няма сложни функции като езици за заявки, планиране на заявки, съединявания с референтна цялост, ACID

Без схеми

  • NoSQL базите данни са или без схеми, или имат облекчени схеми
  • Не изисквайте никаква дефиниция на схемата на данните
  • Предлага разнородни структури от данни в една и съща област
Характеристики на NoSQL
NoSQL е без схема

Прост API

  • Предлага лесен за използване интерфейс за съхранение и заявка на предоставените данни
  • API позволяват манипулиране на данни и методи за избор на ниско ниво
  • Текстово базирани протоколи, използвани предимно с HTTP REST с JSON
  • Най-често не използва стандартен NoSQL език за заявки
  • Уеб активирани бази данни, работещи като услуги за интернет

Разпределени

  • Множество NoSQL бази данни могат да се изпълняват по разпределен начин
  • Предлага възможности за автоматично мащабиране и отказ
  • Често ACID концепцията може да бъде пожертвана за мащабируемост и производителност
  • Предимно няма синхронна репликация между разпределени възли Асинхронна мулти-главна репликация, peer-to-peer, HDFS репликация
  • Осигурява само евентуална последователност
  • Споделено нищо Archiтекстура. Това позволява по-малко координация и по-добро разпределение.
Характеристики на NoSQL
NoSQL не е споделено нищо.

Видове NoSQL бази данни

NoSQL бази данни основно се категоризират в четири типа: двойка ключ-стойност, ориентирани към колони, базирани на графики и ориентирани към документи. Всяка категория има своите уникални характеристики и ограничения. Нито една от горепосочените бази данни не е по-добра за решаване на всички проблеми. Потребителите трябва да изберат базата данни въз основа на техните продуктови нужди.

Типове NoSQL бази данни:

  • Базиран на двойка ключ-стойност
  • Графика, ориентирана по колони
  • Базирани на графики
  • Ориентиран към документи

Видове NoSQL бази данни

Базиран на двойка ключ стойност

Данните се съхраняват в двойки ключ/стойност. Той е проектиран по такъв начин, че да се справя с много данни и голямо натоварване.

Базите данни за съхранение на двойки ключ-стойност съхраняват данни като хеш-таблица, където всеки ключ е уникален и стойността може да бъде JSON, BLOB (двоични големи обекти), низ и т.н.

Например, двойка ключ-стойност може да съдържа ключ като „Уебсайт“, свързан със стойност като „Guru99“.

Базиран на двойка ключ стойност

Това е един от най-основните примери за база данни NoSQL. Този вид NoSQL база данни се използва като колекция, речници, асоциативни масиви и т.н. Хранилищата на ключови стойности помагат на разработчика да съхранява данни без схеми. Те работят най-добре за съдържанието на пазарската количка.

Redis, Dynamo, Riak са някои NoSQL примери за бази данни за съхранение на ключ-стойност. Всички те се основават на AmazonДинамо хартия.

Базиран на колони

Базите данни, ориентирани към колони, работят върху колони и са базирани на хартия BigTable от Google. Всяка колона се третира отделно. Стойностите на базите данни с една колона се съхраняват непрекъснато.

NoSQL база данни, базирана на колони

NoSQL база данни, базирана на колони

Те осигуряват висока производителност при заявки за агрегиране като SUM, COUNT, AVG, MIN и т.н., тъй като данните са лесно достъпни в колона.

Базираните на колони NoSQL бази данни се използват широко за управление на складове за данни, бизнес разузнаване, CRM, Каталози на библиотечни карти,

HBase, Cassandra, HBase, Hypertable са примери за NoSQL заявки за база данни, базирана на колони.

Ориентиран към документи

Документно-ориентираната NoSQL DB съхранява и извлича данни като двойка ключ-стойност, но стойностната част се съхранява като документ. Документът се съхранява в JSON или XML формати. Стойността се разбира от DB и може да бъде поискана.

Релационни Vs. Документ

Релационни Vs. Документ

В тази диаграма отляво можете да видите, че имаме редове и колони, а отдясно имаме база данни с документи, която има структура, подобна на JSON. Сега за релационната база данни, трябва да знаете какви колони имате и т.н. За база данни с документи обаче имате хранилище за данни като JSON обект. Не е необходимо да дефинирате кое го прави гъвкав.

Типът документ се използва най-вече за CMS системи, платформи за блогове, анализи в реално време и приложения за електронна търговия. Не трябва да се използва за сложни транзакции, които изискват множество операции или заявки срещу различни агрегатни структури.

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

Базиран на графики

База данни от графичен тип съхранява обекти, както и връзките между тези обекти. Обектът се съхранява като възел с връзката като ръбове. Ръбът дава връзка между възлите. Всеки възел и ръб има уникален идентификатор.

Базиран на графики

В сравнение с релационна база данни, където таблиците са слабо свързани, базата данни Graph е мултирелационна по природа. Връзката на преминаване е бърза, тъй като те вече са записани в DB и няма нужда да ги изчислявате.

Графична база данни, използвана най-вече за социални мрежи, логистика, пространствени данни.

Neo4J, безкрайна графика, OrientDB, FlockDB са някои популярни бази данни, базирани на графики.

Инструменти за механизъм за заявки за NoSQL

Най-разпространеният механизъм за извличане на данни е базирано на REST извличане на стойност въз основа на нейния ключ/ID с GET ресурс

Базата данни за съхранение на документи предлага по-трудни заявки, тъй като те разбират стойността в двойка ключ-стойност. например, CouchDB позволява дефиниране на изгледи с MapReduce

Какво представлява теоремата за CAP?

Теоремата на CAP се нарича още теорема на Брюър. Той гласи, че е невъзможно за разпределено хранилище на данни да предложи повече от две от три гаранции

  1. Съгласуваност
  2. Наличност
  3. Толерантност към дялове

Съвместимост:

Данните трябва да останат последователни дори след изпълнение на операция. Това означава, че след като данните бъдат записани, всяка бъдеща заявка за четене трябва да съдържа тези данни. Например, след актуализиране на статуса на поръчката, всички клиенти трябва да могат да виждат едни и същи данни.

Достъпност:

Базата данни трябва да е винаги достъпна и отзивчива. Не трябва да има престой.

Толерантност към дялове:

Partition Tolerance означава, че системата трябва да продължи да функционира дори ако комуникацията между сървърите не е стабилна. Например, сървърите могат да бъдат разделени на множество групи, които може да не комуникират помежду си. Тук, ако част от базата данни е недостъпна, другите части винаги остават незасегнати.

Последователност на събитията

Терминът „евентуална последователност“ означава да имате копия на данни на множество машини, за да получите висока наличност и мащабируемост. По този начин промените, направени във всеки елемент от данни на една машина, трябва да бъдат предадени на други реплики.

Репликацията на данни може да не е мигновена, тъй като някои копия ще бъдат актуализирани незабавно, докато други след известно време. Тези копия може да са взаимно, но с течение на времето те стават последователни. Оттук и името евентуална консистенция.

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

  • По принцип наличен означава, че DB е наличен през цялото време според теоремата на CAP
  • Меко състояние означава дори без вход; състоянието на системата може да се промени
  • Евентуалната последователност означава, че системата ще стане последователна с течение на времето

Последователност на събитията

Предимства на NoSQL

  • Може да се използва като основен или аналитичен източник на данни
  • Възможност за големи данни
  • Няма единична точка на отказ
  • Лесна репликация
  • Няма нужда от отделен кеширащ слой
  • Осигурява бърза производителност и хоризонтална мащабируемост.
  • Може да обработва структурирани, полуструктурирани и неструктурирани данни с еднакъв ефект
  • Обектно-ориентирано програмиране, което е лесно за използване и гъвкаво
  • NoSQL базите данни не се нуждаят от специален високопроизводителен сървър
  • Поддръжка на ключови езици и платформи за разработчици
  • Лесен за изпълнение от използването на RDBMS
  • Може да служи като основен източник на данни за онлайн приложения.
  • Обработва големи данни, които управляват скоростта, разнообразието, обема и сложността на данните
  • Отличава се с разпределени бази данни и операции с множество центрове за данни
  • Елиминира необходимостта от специфичен кеширащ слой за съхраняване на данни
  • Предлага гъвкав дизайн на схема, който може лесно да бъде променен без престой или прекъсване на услугата

Недостатъци на NoSQL

  • Няма правила за стандартизация
  • Ограничени възможности за заявки
  • RDBMS бази данни и инструменти са сравнително зрели
  • Той не предлага никакви традиционни възможности за база данни, като последователност, когато множество транзакции се извършват едновременно.
  • Когато обемът на данните се увеличи, е трудно да се поддържат уникални стойности, тъй като ключовете стават трудни
  • Не работи добре с релационни данни
  • Кривата на обучение е трудна за новите разработчици
  • Опциите с отворен код не са толкова популярни за предприятията.

Oбобщение

  • NoSQL е нерелационен DMS, който не изисква фиксирана схема, избягва обединения и е лесен за мащабиране
  • Концепцията за бази данни NoSQL стана популярна сред интернет гиганти като Google, Facebook, Amazon, и т.н., които работят с огромни обеми от данни
  • През 1998 г. Карло Строци използва термина NoSQL за своята лека релационна база данни с отворен код
  • NoSQL базите данни никога не следват релационния модел, те са или без схеми, или имат облекчени схеми
  • Четири типа NoSQL база данни са 1). Базирана на двойка ключ-стойност 2). Графика 3, ориентирана по колони). Базирани на графики 4). Ориентиран към документи
  • NOSQL може да обработва структурирани, полуструктурирани и неструктурирани данни с еднакъв ефект
  • CAP теоремата се състои от три думи Consistency, Availability и Partition Tolerance
  • BASE означава Bпо принцип Aналичен, Sчесто състояние, Eвентуална консистенция
  • Терминът „евентуална последователност“ означава да имате копия на данни на множество машини, за да получите висока наличност и мащабируемост
  • NoSQL предлагат ограничени възможности за заявки