( haspokember | 2014. 12. 22., h – 11:39 )

A SQL/NoSQL adatbazisok kulonbozo dolgokra valok.

A SQL irasra es ad-hoc olvasasra valo: a normalformara hozott relacios adatbazisban, tranzakcio kereteben iras a fo use case. A lekerdezesek pedig nagyon rugalmasak, megfelelo indexek eseten a sema valtoztatasa nelkul is megfelelo teljesitmennyel futtathatok.

A NoSQL olvasasra valo: az egyseg, a "dokumentum" optimalis esetben megfelel egy lekerdezes eredmenyenek, vagyis plusz joinolas nelkul, egy darab olvasassal lehet prezentalni az adatot a usernek. Mindezt raadasul konnyu nagy rendelkezesre allassal kombinalni (lasd meg CAP theorem). Cserebe viszont az iras maceras, altalaban a muvelet "eventually consistent", vagyis elobb-utobb latni fogod a frissitett adatot is, de nem tudod, mikor (es hol). Nincs hagyomanyos tranzakcio, egy dokumentumot egyszerre tobben is modosithatnak, es ilyenkor nem az adatbazis, hanem a program feladata feloldani a konfliktust (Riakban legalabbis igy van).

Aztan ott a Redis, ami lenyegeben egy perzisztens hashtabla, cache-elesre (pld. sessionok adatainak tarolasara) tokeletes.

Es meg nem is emlitettuk a specializaltabb adatbaziskezeloket (pl. grafadatbazisok, oszlop-orientalt adatbazisok stb).

Izelitonek es alapveto tajekozodashoz tudom ajanlani a Seven databases in 7 weeks konyvet, viszonylag atfogoan ir a temarol.

(Ebbol az egeszbol csak annyit akartam kihozni, hogy a kerdes feltevese rossz, nem jobb vagy rosszabb a NoSQL a hagyomanyosnal, minthogy nem helyettesitoi egymasnak.)