Ātrs pārskats par relāciju un bez relāciju datu bāzēm

Pagaidām mana pieredze ar datu bāzēm kā izstrādātāju ir bijusi ierobežota ar relāciju (“SQL”) datu bāzēm. Tomēr, izpētot populāro tehnoloģiju krājumus, ko izmanto profesionāli izstrādātāji, es saskāros ar MEAN steku (MongoDB, Express, Angular un Node), kas pēc tam lika man izpētīt MongoDB, kā arī tādu datu bāzu koncepciju, kuras nepaļaujas uz paņēmieniem izmanto datu glabāšanai relāciju datu bāzēs.

Pirmkārt: ātra atsvaidzināšana par relāciju datu bāzes pamatjēdzieniem. Relāciju datu bāzu pamatā ir datu relācijas modelis, kuru pirmo reizi ierosināja angļu datorzinātnieks EF Kodds 1970. gadā. Dati tiek organizēti, ņemot vērā to, kā katra tabula ir savstarpēji saistīta, un šīs attiecības tiek kvantitatīvi noteiktas, pamatojoties uz katrā esošajām “svešajām atslēgām”. tabula, kas identificē, kuras ārzemju tabulas ir saistītas ar pašreizējo tabulu, kurā vaicājat. Gandrīz visas relāciju datu bāzes izmanto SQL, lai meklētu un uzturētu datu bāzi.

Vienkāršs relāciju datu bāzes piemērs

Nerelatīvas jeb “NoSQL” datu bāzes ir vispārējs termins datu bāzēm, kuras datu organizēšanai nepaļaujas uz iepriekš minēto modeli. Viens no vienkāršākajiem piemēriem varētu būt datu bāze, kas ir sakārtota pa galveno vērtību pāriem. Vēl viens izplatīts piemērs ir uz dokumentu orientētas datu bāzes, kas ir sakārtotas, balstoties uz pieņēmumu, ka visi ieraksti datu bāzē ir dokumenti, kas ir kodēti kaut kādā standartizētā failu formātā (piemēram, JSON).

Kāpēc izmantot NoSQL datu bāzi?

Nereliģiskām datu bāzēm var būt pievilcīga vienkāršības pakāpe, salīdzinot ar relāciju datu bāzēm, kuras bieži vien ātri palielinās sarežģītībā, jo tiek izveidotas lielākas attiecības starp tabulām. Ja zināt, ka dati, ar kuriem strādāsit, ir samērā vienkārši, var pietikt ar vienkāršu atslēgas vērtības krājumu apkopošanu. Šis sarežģītības jautājums var tikt pārnests uz veiktspējas jautājumiem. Tā nebūs liela problēma ar mazajām lietotnēm, kuras mēs esam izveidojuši un ar kurām strādājam, taču lietotnei vai vietnei ar miljoniem lietotāju slikti sakārtotas relāciju datu bāzes var ievērojami palēnināt jūsu lietotnes darbību. Tā kā NoSQL datu bāzēm nav pievienošanās tabulu, tās, iespējams, var veikt vaicājumus ātrāk nekā relāciju datu bāze.

Lēna lapas ielāde ievērojami palielina atlēcienu līmeni

NoSQL datu bāzes var piedāvāt arī labāku mērogojamību, ja jums ir nepieciešams mērogot horizontāli, nevis vertikāli. Horizontālā mērogošana ir līdzeklis mēroga palielināšanai, pievienojot vairāk mašīnu, lai apstrādātu jūsu datu prasības, savukārt vertikālā mērogošana to risina, pievienojot papildu skaitļošanas jaudu. Horizontālā mērogošana ir viens no iemesliem, kāpēc NoSQL datu bāzes sāka kļūt populārākas, pieaugot arī interneta popularitātei, jo uzņēmumiem vajadzēja pārvaldīt potenciāli miljoniem lietotāju, kuri vienlaikus skāra viņu vietni.

Vai NoSQL datu bāzes vienmēr ir labāka izvēle?

Tīmekļa lietojumprogrammām ar lielu lasāmu datu daudzumu, kurās ātrums ir vissvarīgākais, NoSQL datu bāzes var būt laba izvēle. Tomēr sarežģītām datu bāzēm ar lielu strukturētu un savstarpēji saistītu datu daudzumu NoSQL var nebūt labākais risinājums. Pārāk vienkāršota datu bāze piespiedīs lielu daļu biznesa loģikas, ko netiešā veidā nodrošina datu relācijas modelis jūsu faktiskajā lietotnes kodā. NoSQL datu bāzes arī parasti ir mazāk nobriedušas nekā to relāciju kolēģi. Tas nozīmē, ka tie var būt mazāk stabili, kas var būt būtiska problēma, ja nodarbojas ar lielu daudzumu sensitīvu datu, piemēram, finanšu darījumiem vai medicīniskiem datiem. Problēma var būt arī standartizētas vaicājumu valodas trūkums. Ikviens, kurš pārzina SQL, var ātri panākt vaicājumu izdarīšanu jaunā datu bāzē, turpretim darbam ar NoSQL datu bāzi var būt nepieciešams iemācīties citu vaicājumu valodu, palēninot, cik ātri jauns darbinieks var uzņemties ātrumu un būt produktīvs. Visbeidzot, NoSQL datu bāzes bieži tiek pārdotas vietnēs un lietotnēs, kur liela daļa datu plūsmas ir saistīta ar CRUD. Situācijās, kad nepieciešama sarežģītāka biznesa analīze, labāka izvēle varētu būt SQL datu bāze.

Dažādu NoSQL datu bāzu salīdzinājums ar relāciju datu bāzi

Avoti / turpmākā lasīšana

https://www.hadoop360.datasciencecentral.com/blog/,83- un- trūkumi-of-nosql-databases-what-you-should-k