Реляциялық дерекқорлар сенімділік пен жүйелілік негізінде жасалған. Оларды жасаған инженерлер ACID моделінің төрт принципі әрқашан сақталуын қамтамасыз ететін транзакциялық модельге назар аударды. Дегенмен, жаңа құрылымдалмаған дерекқор үлгісінің пайда болуы ACID-ті өз басына айналдырады. NoSQL дерекқор үлгісі икемді кілт/құнды сақтау тәсілінің пайдасына жоғары құрылымдық реляциялық модельден бас тартады. Деректерге бұл құрылымдалмаған тәсіл ACID үлгісіне баламаны қажет етеді: BASE үлгісі.
ACID моделінің негізгі қағидалары
ACID моделінің төрт негізгі қағидасы бар:
- Транзакциялардың атомдылығы әрбір дерекқор транзакциясының орындауға «бәрі немесе ештеңе» тәсілін қабылдайтын бір бірлік екенін қамтамасыз етеді. Транзакциядағы кез келген мәлімдеме орындалмаса, бүкіл транзакция кері қайтарылады.
- Реляциялық дерекқорлар сонымен қатар дерекқордың бизнес ережелерімен әрбір транзакцияның үйлесімділігін қамтамасыз етеді. Атомдық транзакцияның кез келген элементі дерекқордың жүйелілігін бұзса, бүкіл транзакция сәтсіз аяқталады.
- Дерекқор механизмі бір уақытта немесе оған жақын жерде орындалатын бірнеше транзакциялар арасында оқшаулау күшіне келтіреді. Әрбір транзакция әрбір басқа транзакцияның алдында немесе одан кейін орын алады және транзакцияның басында көретін дерекқордың көрінісін транзакцияның өзі жасалғанға дейін ғана өзгертеді. Ешбір транзакция басқа транзакцияның аралық өнімін ешқашан көрмеуі керек.
- Соңғы ACID принципі, тұрақтылық транзакция дерекқорға бекітілгеннен кейін оның сақтық көшірмелерді және транзакция журналдарын пайдалану арқылы тұрақты сақталуын қамтамасыз етеді. Сәтсіздік болған жағдайда, бұл механизмдер жасалған транзакцияларды қалпына келтіру үшін пайдаланылуы мүмкін.
BASE негізгі принциптері
NoSQL дерекқорлары, керісінше, ACID үлгісі шамадан тыс немесе дерекқордың жұмысына кедергі келтіретін жағдайларды қамтиды. Оның орнына, NoSQL BASE үлгісі ретінде белгілі жұмсақ үлгіге сүйенеді. Бұл модель NoSQL ұсынатын икемділікті және құрылымданбаған деректерді басқаруға және өңдеуге ұқсас тәсілдерге сәйкес келеді. BASE үш принциптен тұрады:
- Негізгі қолжетімділік NoSQL дерекқор тәсілі бірнеше сәтсіздіктер болған жағдайда да деректердің қолжетімділігіне назар аударады. Ол бұған дерекқорды басқаруға жоғары бөлінген тәсілді қолдану арқылы қол жеткізеді. Бір үлкен деректер қоймасын сақтаудың және сол дүкеннің ақауларға төзімділігіне назар аударудың орнына, NoSQL дерекқорлары репликацияның жоғары дәрежесі бар көптеген сақтау жүйелеріне деректерді таратады. Сәтсіздік деректер сегментіне қол жеткізуді бұзатын екіталай жағдайда, бұл міндетті түрде дерекқордың толық үзілуіне әкелмейді.
- Жұмсақ күй. BASE дерекқорлары ACID моделінің сәйкестік талаптарын толығымен бас тартады. BASE негізіндегі негізгі концепциялардың бірі деректердің сәйкестігі әзірлеушінің мәселесі болып табылады және оны дерекқор өңдеуге болмайды.
- Соңғы сәйкестік NoSQL дерекқорларының бірізділікке қатысты жалғыз талабы – болашақта белгілі бір уақытта деректердің дәйекті күйге бірігуін талап ету. Дегенмен, бұл қашан болатынына кепілдік берілмейді. Бұл алдыңғы транзакция аяқталмайынша және дерекқор дәйекті күйге жинақталғанша транзакцияны орындауға тыйым салатын ACID-тің дереу сәйкестік талабынан толық ауытқу.
BASE жүйесінде негізгі қолжетімділік тіпті деректер көздерін басқара алмайтыныңызды білдіруі мүмкін. Мысалы, күш-жігеріңіздің бір бөлігі үшін жалпыға қолжетімді деректер жиынына сілтеме жасай аласыз.
Салыстырмалы пайдалану жағдайлары
BASE үлгісі кез келген жағдайға сәйкес келмейді, бірақ ол реляциялық үлгіні қатаң сақтауды қажет етпейтін дерекқорлар үшін ACID үлгісіне икемді балама болып табылады.
ACID пайдаланатын дерекқорларды пайдаланудың оңтайлы жағдайлары болжамды кірістер мен шығыстары бар жоғары құрылымды деректерге байланысты. Осылайша, адам ресурстарының дерекқорлары, бөлшек сауда деректер базалары және электрондық медициналық жазбалар ACID ұсынатын сенімді ішкі сәйкестікті тексерудің пайдасын көреді.
Алайда BASE шешімдері көңіл-күйді талдау сияқты анық емес тақырыптар үшін жақсырақ. Мысалы, BASE құрылымдық жоба белгілі бір хэштегке негізделген эмоцияны білдіретін сөздерді іздейтін Twitter арнасын сканерлей алады. Twitter арнасы жақсы құрылымдалмаған немесе жергілікті түрде жасалмаған, бірақ деректер ағыны сұрауларға бағдарламаланған ақпаратты ұсынады, тіпті бұл деректердің ауқымы мен сипаты нақты шектелмеген болса да.