Greita reliacinių ir nesusijusių duomenų bazių apžvalga

Iki šiol mano, kaip kūrėjo, duomenų bazių patirtis apsiribojo reliacinėmis („SQL“) duomenų bazėmis. Tačiau tyrinėdamas populiarių technologijų kūrimo būdus, kuriuos naudoja profesionalūs kūrėjai, susidūriau su MEAN rinkiniu („MongoDB“, „Express“, „Angular“ ir „Node“), kurie paskatino mane tyrinėti „MongoDB“ ir duomenų bazių, kurios nesiremia technika, koncepciją. naudojami duomenims saugoti reliacinėse duomenų bazėse.

Pirma: greitai atnaujinamos pagrindinės reliacinės duomenų bazės sąvokos. Reliacinės duomenų bazės yra pagrįstos reliaciniu duomenų modeliu, kurį pirmą kartą pasiūlė anglų informatikas EF Coddas 1970 m. Duomenys organizuojami atsižvelgiant į tai, kaip kiekviena lentelė yra susijusi viena su kita, ir šie santykiai yra kiekybiškai įvertinti, atsižvelgiant į kiekvienos „svetimus raktus“. lentelė, nurodanti, kurios užsienio lentelės yra susijusios su dabartine jūsų užklausos lentele. Beveik visos reliacinės duomenų bazės naudoja SQL, norėdamos ieškoti ir prižiūrėti duomenų bazę.

Paprastas reliacinės duomenų bazės pavyzdys

Nesusijusios arba „NoSQL“ duomenų bazės yra bendras terminas duomenų bazėms, kurios duomenų tvarkymui nesiremia minėtu modeliu. Vienas iš paprasčiausių pavyzdžių galėtų būti duomenų bazė, kuri yra suskirstyta į raktų ir reikšmių poras. Kitas paplitęs pavyzdys yra į dokumentą orientuotos duomenų bazės, kurios yra paremtos prielaida, kad visi įrašai duomenų bazėje yra dokumentai, užkoduoti kažkokiu standartizuotu failų formatu (pavyzdžiui, JSON).

Kodėl verta naudoti „NoSQL“ duomenų bazę?

Nesusijusios duomenų bazės gali būti patrauklios paprastumo, palyginti su reliacinėmis duomenų bazėmis, kurios dažnai tampa sudėtingesnės, nes užmegzti ryšiai tarp lentelių. Jei žinote, kad duomenys, kuriuos ketinate naudoti, yra gana paprasti, gali pakakti paprasčiausio pagrindinės vertės parduotuvių rinkinio. Šis sudėtingas klausimas gali būti perkeltas į našumo klausimus. Tai netaps problema, susijusi su mažomis programomis, kurias mes kūrėme ir su kuriomis dirbame, tačiau milijonams vartotojų turinčiai programai ar svetainei prastai sutvarkytos ryšių duomenų bazės gali žymiai sulėtinti jūsų programos veikimą. Kadangi „NoSQL“ duomenų bazėse nėra sujungimo lentelių, jos gali pateikti užklausas greičiau nei reliacinė duomenų bazė.

Lėtas puslapio įkėlimas žymiai padidina atmetimo rodiklį

„NoSQL“ duomenų bazės taip pat gali pasiūlyti geresnį mastelį, jei jums reikia mastelio horizontaliai, o ne vertikaliai. Horizontalus mastelio keitimas yra priemonė mastui pridėti pridedant daugiau mašinų, kad būtų galima tvarkyti jūsų duomenų reikalavimus, o vertikali mastelio didinimas - tai pridedant papildomos skaičiavimo galios. Horizontalus mastelio keitimas yra viena iš priežasčių, kodėl „NoSQL“ duomenų bazės ėmė populiarėti, kai augo ir internetas, nes įmonėms reikėjo valdyti potencialiai milijonus vartotojų, kurie tuo pačiu metu trenkė į jų svetainę.

Ar NoSQL duomenų bazės visada yra geresnis pasirinkimas?

Tinklalapių programoms, turinčioms daug tik skaitomų duomenų, kur svarbiausia yra greitis, NoSQL duomenų bazės gali būti geras pasirinkimas. Tačiau sudėtingoms duomenų bazėms, turinčioms daug struktūrizuotų ir tarpusavyje susijusių duomenų, NoSQL gali būti ne pats geriausias sprendimas. Pernelyg supaprastinta duomenų bazė privers daug verslo logikos, kurią netiesiogiai įgyvendina duomenų santykinis modelis į jūsų tikrąjį programos kodą. „NoSQL“ duomenų bazės taip pat paprastai yra mažiau subrendusios nei jų santykinės kolegijos. Tai reiškia, kad jie gali būti ne tokie stabilūs, o tai gali būti svarbi problema, jei tvarkote daug neskelbtinų duomenų, tokių kaip finansinės operacijos ar medicininiai duomenys. Problemą gali sukelti ir standartizuotos užklausų kalbos trūkumas. Kiekvienas, susipažinęs su SQL, gali greitai susidoroti su užklausomis naujoje duomenų bazėje, tuo tarpu dirbant su „NoSQL“ duomenų baze gali reikėti išmokti kitokią užklausų kalbą, sulėtinant naujojo darbuotojo greitį ir produktyvumą. Galiausiai, NoSQL duomenų bazės dažnai parduodamos svetainėms ir programoms, kuriose didžioji duomenų srauto dalis yra CRUD. Tais atvejais, kai reikalinga sudėtingesnė verslo analizė, geresnis pasirinkimas gali būti SQL duomenų bazė.

Įvairių NoSQL duomenų bazių palyginimas su reliacine duomenų baze

Šaltiniai / Tolesni skaitymai

https://www.hadoop360.datasciencecentral.com/blog/advantages-and-dispensatages-of-nosql-databases-what-you-should-k