Какво е NoSQL?
NoSQL или NoSQL база данни е термин, използван, когато се отнася до база данни „не SQL“ или „не само SQL“. Базите данни NoSQL съхраняват данни в различен формат от традиционните системи за управление на релационни бази данни. Ето защо NoSQL често се свързва с термина „нерелационна“ база данни. Просто казано, базите данни NoSQL са модерни бази данни с висока гъвкавост, изключителна производителност и изградени за мащабируемост. Тези бази данни се използват, когато се нуждаете от ниска латентност и висока разширяемост, докато работите с големи структури от данни. Универсалността на NoSQL се дължи на това, че е неограничен в сравнение с моделите на релационни бази данни като MySQL или DB2.
Сравнение на SQL спрямо NoSQL
Има множество разлики между SQL и NoSQL типовете бази данни. В таблицата по-долу ще сравним някои от най-критичните варианти.
SQL | NoSQL |
Бази данни за релационни структури от данни | Бази данни с нерелационни структури от данни |
По-добре за многоредови транзакции | По-добро за документи и JSON файлове |
Бази данни, базирани на таблици | Базите данни са документи, ключ-стойност, графики или магазини с широки колони |
SQL бази данни са вертикално мащабируеми | Бази данни NoSQL са хоризонтално мащабируеми |
Използва предварително дефинирана схема | Използва динамична схема |
Език на структурирани заявки (SQL) | Без език за заявки |
Типове NoSQL бази данни
Има четири основни типа NoSQL бази данни.
- Хранилища на данни за ключ-стойност
- Магазини за документи
- Магазини с широки колони
- Графики
Ще прегледаме всеки от тези видове и ще обясним за какво се използват.
Хранилища на данни за ключ-стойност
Тези типове бази данни използват ключ-стойност като метод за съхранение на данни в базата данни. Всеки ключ-стойност е уникален и служи като идентификатор, когато се изпълнява заявка. Първичният ключ е разделен на разделен ключ и ключ за сортиране. Например, ключът на дяла ще има съхранен идентификатор на продукта, а ключът за сортиране ще има съхранени типове продукти.
Съхранените стойности в тези бази данни могат да бъдат всичко от най-простите двоични обекти като JSON документи до видеоклипове или други масивни сложни елементи. Нашето приложение ще има пълен контрол върху тези стойности и затова хранилищата на данни ключ-стойност се считат за най-гъвкавия NoSQL модел. Важно е да се спомене, че ключ-стойностите често не поддържат транзакции, тъй като данните, които се съхраняват в тях, се разделят и използват в цели клъстери.
Магазини за документи
Както подсказва името, базата данни NoSQL е нерелационна база данни без схеми, която съхранява и заявява данни в документ, подобен на JSON файл. За разлика от конвенционалните MySQL таблици, базите данни за съхранение на документи събират всички данни от даден обект в документ. Всички данни, свързани с този обект, се съхраняват и в този единичен документ.
Така от една страна имате релационни бази данни, съхраняващи данни за стоката в таблици и тези данни се разпределят в няколко таблици. От друга страна, имате нерелационна база данни за съхранение на документи, която съхранява всички данни в един файл.
Магазини с широки колони
Второто име за тези бази данни е Разширяеми магазини за записи . Подобно на магазините за документи, тези бази данни с широки колони също са бази данни без схеми. Тази база данни използва таблици, редове и колони, като релационна база данни.
Но има една разлика! Нито една от колоните или ключовете за запис не са фиксирани, което означава, че името и форматът могат да варират. Ето защо базите данни с широки колони често се разглеждат като двуизмерни хранилища на ключ-стойност.
Графични магазини
Базите данни на Graph Stores са изградени около проста структура от данни:
Възел — Връзка — Възел
Тези бази данни имат три типа полета с данни. Тези полета се наричат върхове и се състоят от възли, ръбове и свойства. Тези полета се използват за съхраняване и представяне на данните в хранилищата на Graph.
Графът съхранява работата чрез събиране на данни в рамките на възел, а ръбовете съхраняват връзката между всеки възел. Всеки ръб има четири компонента:начален възел, краен възел, тип и посока. Тази структура е необходима, защото един възел може да има неограничен брой връзки.
Крайният тип поле за данни, свойства, съхранява функции и допълнителна информация, свързана с ръбове и връзки. Един пример за свойство се нарича „Тегло на ръба.“ Това свойство може да спести цена, разстояние, обхват, дължина или всяка друга мярка за връзка между два възела.
Примери за NoSQL система
Сега, когато знаем кои типове бази данни NoSQL имаме, ще прегледаме някои от най-използваните системи за управление на бази данни за всеки от тези типове.
Тип база данни | Най-използваната система за управление |
Хранилища на данни за ключ-стойност | Redis е най-използваната система за управление на NoSQL като цяло. Redis може да се използва за други операции, като например кеширане, но управлението на база данни е основната му функция.
|
Магазини за документи | MongoDB се рекламира като „Най-популярната база данни за съвременни приложения “. MongoDB всъщност е доста повече от просто система за управление на база данни. Това е цяла платформа за данни с много инструменти, които разработчиците и учените по данни могат да използват.
|
Магазини с широки колони | Apache Cassandra се използва от Activision, Hulu, Uber, Walmart и десетки други високопоставени компании. Според официалната страница 40% от Топ 100 компании на Fortune използват Cassandra в ежедневните си операции. Причината за това е проста. Cassandra е най-добрият избор, когато имате нужда от система за управление на магазин с широки колони, която предлага най-добрата мащабируемост и наличност, без да се компрометира производителността.
|
Графични магазини | Neo4j е собствена база данни с графики, изградена от самото начало, за да се използват възли и връзки. Neo4j прави връзки между данните, докато се съхраняват, позволявайки типове заявки, които никога не сме си представяли, със скорости, които рядко се смятат за възможни.
|
Вече познаваме различните типове NoSQL бази данни. Знаем и основите зад тях. И накрая, нека разгледаме кой би бил най-добрият начин да приложим всяка от тези бази данни на практика.
Най-добри случаи на използване на NoSQL бази данни
- Бази данни за хранилища ключ-стойност :Тези бази данни се използват най-добре за различни пазарски колички. Това е просто защото базите данни ключ-стойност могат да обработват милиони или милиарди поръчки. Огромни входящи данни се обработват без загуба на производителност. Тези бази данни също имат вградено резервиране, така че няма да се притеснявате за загуба на данни.
- Бази данни за съхранение на документи :Тези бази данни се използват най-добре за различни каталози. Това отново може да бъде свързано с вашия бизнес за електронна търговия, където трябва да съхранявате хиляди различни атрибути за нашите продукти. Тъй като данните се съхраняват в един документ, управлението на продуктите е бързо и лесно.
- Магазини с широки колони :Тези бази данни се използват най-добре за географска информация, системи за отчитане, регистрационни файлове на сензори и други. Заявяваме това, защото магазините с широки колони използват многоизмерно съпоставяне (стойност на ред, стойност на колона и времева марка) в табличен формат, предназначен за масивна мащабируемост. Ако някога използвате уебсайт или приложение, за да проверите разстоянието за шофиране от А до Б на карта, шансовете са доста големи магазините с широки колони да се използват в този уебсайт или приложение.
- Бази данни за съхранение на графики :Тези бази данни се използват най-добре за системи за откриване на измами над средното ниво. Да кажем, че имаме известен случай на измама за конкретен въпрос за имейл или кредитна карта. Ако този човек се опита да влезе и закупи нещо отново с информацията от този случай на измама, някой ще бъде уведомен от системата. Това се случва поради начина, по който базите данни на хранилището на Graph обработват връзките между възлите в реално време.
Заключение
Често се сблъскваме с използването на NoSQL бази данни в ежедневието си, без да осъзнаваме това. Данните показват, че общите предимства на NoSQL и неговата ефективност са неизчислими. Надяваме се, че тази статия ви предоставя полезна информация и как NoSQL може да бъде внедрен във вашата бизнес методология. В заключение, радваме се, че успяхме да демонстрираме как NoSQL може да бъде полезен за вас.
Как можем да помогнем?
Гордеем се, че сме най-полезните хора в хостинг™! Нашите компетентни решения или опитни хостинг съветници са винаги на разположение, за да ви покажат как можете да се възползвате от тези техники днес!
Достъпни сме 24 часа в денонощието, 7 дни в седмицата 365 дни в годината, чрез нашия системи за продажба на билети на [email protected], по телефона (на 800-580-4986) или чрез LiveChat или какъвто предпочитате метод.
Работим усилено за вас, за да можете да се отпуснете.