Системи за управление на бази от данни с отворен код. NoSQL бази от данни.


Категория на документа: Информатика


NoSQL е отрицание на релационния модел, не толкова на SQL като език. За това е
необходимо на кратко да се разгледат RDBMS (Relational Database Management Systems -
релационни системи за управление на бази данни), за да може от техните недостатъци да
стане ясна причината за възникването на NoSQL.
Основна конструкция в релационния модел е релацията. Релацията е двумерна таблица, в
която се поместват данните и се основава на математическото понятие за релация.
Атрибутите служат за имена на колони. Името на релацията и множеството на атрибутите й
формират схемата на релацията. Множеството от всички схеми на релации в една база от
данни е схемата на базата от данни. Ако A и B са множества, релацията е подмножество на
произведението от AxB.
Схемата на една конкретна база от данни, изградена с релационния модел, се изгражда чрез
прилагане на правилата за нормализация. Нормалните форми имат за цел да съхранят
данните от аномалии при добавяне, обновяване и прочит на информация.
Някои предимства на RDBMS:
- Простота, гъвкавост и продуктивност при разработка;
- Данните са в лесно разбираем вид;
- Лесно обучение, неограничен обем документация за съществуващите СУБД (системи
за управление на бази от данни);
- SQL е стандартизиран и има голяма степен на припокриване между SQL за различните
бази данни;
- SQL дава възможност да се правят всевъзможни справки.
Сега да разгледаме основните недостатъци на релационните бази данни, част от които NoSQL базите данни решават.
Ограниченията на релационните бази от данни, мотивиращи разработката на NoSQL бази от
данни, са по отношение няколко практически проблема - евтина скалируемост, без
ангажиране на приложенията с допълнителна логика; нужда от евтина промяна на
структурата на данните; нужда от метод за управление на обобщения и свързани данни при
голям обем на информацията; отразяване на гъвкави структури от данни.
Има два основни аспекта на скалируемостта - възможност за справяне с нарастващ обем
данни и с нараснало натоварване. Най-прозрачното решение е добавянето на хардуер към
съществуващите машини и на нови машини в клъстери.
Първият основен проблем, поставен за решаване пред разработчиците на NoSQL бази данни е
постигането на масивна скалируемост при ниска цена и при употреба на евтина техника.
NoSQL DB предлагат богат набор от решения за разпределяне и дублиране на данните между
отделните сървъри в рамките на един клъстер, разгледани по-подробно към всяка база от
данни по отделно.
Един от най-големите проблеми на релационните бази данни е ограничената възможност за адаптиране и промяна в структурата. Например Twitter посочват като основна причина за дългогодишните им опити да мигрират от MySQL към Cassandra невъзможността да добавят нова колона в съществуваща таблица, предвид обема на данните. Този проблем е общ за RDBMS. Измененията в схемата при 50-100К записа в RDBMS са лесни и бързи. Но измененията в табличната информация са близки до невъзможност и отнемат дни, при много сложни схеми за измяна.

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

Нерелационната база данни има разпределена и устойчива на повреди архитектура, като обектите с информация се съхраняват на няколко сървъра. По този начин системата може да се предпази като добавя повече сървъри и тогава при повреда на сървър продължава да работи. Този тип база данни се разширява хоризонтално и се използва за управлението на голямо количество от данни, когато производителността (в реално време) е по-важна от последователността (както в индексирането на голям брой документи, обслужващите страници на натоварените сайтове и предоставянето на стриймове).
ACID срещу BASE
ACID означава Atomicity, Consistency, Isolation, Durability. Съвременните RDBMS следват
тези 4 правила практически без изключения.

Atomicity - означава, че транзакциите в база от данни трябва да следват правилото всичко
или нищо. Ако една част от транзакцията се провали, цялата транзакция се проваля.

Consistency - консистентност. Означава, че всяка транзакция променя базата от данни от едно
състояние с консистентна информация в друго такова състояние.



Сподели линка с приятел:





Яндекс.Метрика
Системи за управление на бази от данни с отворен код. NoSQL бази от данни. 9 out of 10 based on 2 ratings. 2 user reviews.