Отлагане на ACID в полза на BASE в бази данни

Релационните бази данни са проектирани със своята надеждност и последователност. Инженерите, които ги разработиха, бяха фокусирани върху един транзакционен модел, който гарантира, че четирите принципа на ACID модела винаги ще бъдат запазени. Но появата на нов модел на неструктурирана база данни превръща ACID на главата си. Моделът на базата данни NoSQL избягва високо структурирания релационен модел в полза на гъвкав подход за съхранение на ключ / стойност. Този неструктуриран подход към данните изисква алтернатива на модела ACID: BASE моделът.

Основни течения на модела ACID

Съществуват четири основни принципа на модела на ACID:

Атомността на транзакциите гарантира, че всяка транзакция на базата данни е единична единица, която възприема подход "изцяло или нищо" към изпълнението. Ако някое изявление в транзакцията не успее, цялата транзакция се връща обратно.

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

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

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

Основни принципи на BASE

От друга страна, базите данни на NoSQL обхващат ситуации, при които моделът на ACID е прекалено голям или всъщност би възпрепятствал работата на базата данни. Вместо това, NoSQL разчита на по-мек модел, познат по подходящ начин като BASE модел. Този модел приспособява гъвкавостта, предлагана от NoSQL, и сходни подходи към управлението и уреждането на неструктурираните данни. BASE се състои от три принципа:

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

Софт състояние . Основните бази данни изоставят напълно изискванията за съгласуваност на модела ACID. Едно от основните понятия зад BASE е, че последователността на данните е проблем на разработчика и не трябва да се обработва от базата данни.

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

Моделът BASE не е подходящ за всяка ситуация, но със сигурност е гъвкава алтернатива на модела ACID за бази данни, които не изискват стриктно спазване на релационния модел.