Kiire ülevaade relatsioonilistest ja mitte relatsioonilistest andmebaasidest

Siiani on minu kogemus andmebaaside arendajana piirdunud relatsiooniliste (“SQL”) andmebaasidega. Uurides professionaalsete arendajate kasutatavaid populaarseid tehnilisi korstnaid, sattusin siiski MEAN-i virna (MongoDB, Express, Angular ja Node), mis viis mind seejärel uurima MongoDB-d ja andmebaaside kontseptsiooni, mis ei tugine tehnikatele kasutatakse andmete salvestamiseks relatsiooniandmebaasides.

Esiteks: relatsiooniandmebaasi põhimõistete kiire värskendamine. Suhteandmebaasid põhinevad andmete relatsioonimudelil, mille pakkus esmakordselt välja inglise arvutiteadlane EF Codd 1970. aastal. Andmed on korraldatud vastavalt sellele, kuidas iga tabel on üksteisega seotud, ja need suhted on kvantifitseeritud, lähtudes igas võõraste võtmetega tabel, mis tuvastab, millised välismaised tabelid on seotud praeguse tabeliga, mille kohta otsite. Peaaegu kõik relatsiooniandmebaasid kasutavad andmebaasi otsimiseks ja hooldamiseks SQL-i.

Lihtne näide relatsiooniandmebaasist

Mitterelatsioonilised ehk NoSQL-andmebaasid on kõikehõlmav termin andmebaaside jaoks, mis ei tugine andmete korraldamisel eelnimetatud mudelile. Selle üheks lihtsamaks näiteks võiks olla võtme-väärtuste paaride ümber korraldatud andmebaas. Veel üks levinum näide on dokumendile orienteeritud andmebaasid, mis on korraldatud eeldusel, et kõik andmebaasi kirjed on dokumendid, mis on kodeeritud mingisuguses standardiseeritud failivormingus (näiteks JSON).

Miks kasutada NoSQL andmebaasi?

Mitterelatsioonilistel andmebaasidel võib olla ahvatlevalt palju lihtsust võrreldes relatsiooniandmebaasidega, mis sageli muutuvad keeruliseks, kuna tabelite vahel luuakse rohkem suhteid. Kui teate, et andmed, millega hakkate töötama, on suhteliselt lihtsad, võib piisata lihtsa võtmeväärtusega kaupluste kogumisest. See keeruline küsimus võib kanda üle ka jõudluse probleemidele. See ei ole suureks probleemiks nende väikeste rakendustega, mida oleme loonud ja töötame koos, kuid miljonite kasutajatega rakenduse või veebisaidi korral võib halvasti korraldatud relatsiooniandmebaasid teie rakendust märkimisväärselt aeglustada. Kuna NoSQL-i andmebaasidel pole liitumistabeleid, võivad nad päringuid teha kiiremini kui relatsiooniandmebaas.

Aeglane lehe laadimine suurendab märkimisväärselt teie põrkumiste määra

NoSQL-i andmebaasid pakuvad ka paremat skaleeritavust, kui peate skaleerima horisontaalselt, mitte vertikaalselt. Horisontaalne skaleerimine on vahend skaala lisamiseks, kui lisate oma arvutinõuete jaoks rohkem masinaid, vertikaalne skaleerimine lahendab selle aga täiendava arvutusvõimsuse lisamisega. Horisontaalne skaleerimine on üks põhjusi, miks NoSQL-i andmebaasid hakkasid populaarsemaks muutuma ka siis, kui Interneti populaarsus kasvas, kuna ettevõtted pidid haldama potentsiaalselt miljoneid kasutajaid, kes löövad samal ajal nende veebisaidile.

Kas NoSQL andmebaasid on alati parem valik?

Veebirakenduste jaoks, kus on palju ainult kirjutuskaitstud andmeid ja kus kiirus on ülitähtis, võivad NoSQL-i andmebaasid olla hea valik. Kuid keerukate andmebaaside korral, milles on palju struktureeritud ja omavahel seotud andmeid, ei pruugi NoSQL olla parim lahendus. Liiga lihtsustatud andmebaas sunnib suure osa äriloogikast, mida andmete relatsioonimudel kaudselt jõustab, teie tegelikku rakenduse koodi sisestama. NoSQL andmebaasid on ka üldiselt vähem küpsed kui nende relatsioonilised kolleegid. See tähendab, et need võivad olla vähem stabiilsed, mis võib olla oluline probleem, kui käsitlete suurtes kogustes tundlikku teavet, näiteks finantstehinguid või meditsiinilisi andmeid. Probleemiks võib olla ka standardiseeritud päringkeele puudumine. Kõik, kes tunnevad SQL-i, saavad uues andmebaasis kiiresti järelepärimisi teha, samas kui NoSQL-i andmebaasidega töötamine võib nõuda teistsuguse päringkeele õppimist, aeglustades uue töötaja töö kiirenemist ja produktiivsust. Lõpuks turustatakse NoSQL-i andmebaase sageli veebisaitide ja rakenduste suunas, kus suur osa andmevood keerleb CRUD-i ümber. Olukordades, kus on vaja keerukamat ärianalüütikat, võib parem valik olla SQL-andmebaas.

Erinevate NoSQL andmebaaside võrdlus relatsiooniandmebaasiga

Allikad / täiendav lugemine

https://www.hadoop360.datasciencecentral.com/blog/ Eelised-ja puudused-of-nosql-andmebaasid-mõistagu-soovida-k