NoSQL
NoSQL er samheiti yfir margvíslegar tegundir gagnagrunna sem eru frábrugðnir hefðbundnum vensluðum SQL-gagnagrunnum. NoSQL er skammstöfun á ensku sem stendur fyrir „non SQL“, „not only SQL“ eða „non relational SQL“. Hröð framþróun tölvutækni undanfarinna ára hefur einkennst af aukinni framleiðslu og geymslu stafrænna gagna, stundum er þetta fyrirbæri nefnt gagnagnótt.
NoSQL-gagnagrunnar eru notaðir í auknum mæli til þess að takast á við aðstæður þar sem vinna þarf með gagnagnótt. Þeir eru frábrugnðir hefðbundnum gagnagrunnum að eftirfarandi leyti:
- ekki er þörf á fyrirfram tilbúinni skilgreiningu á þeim gögnum sem geyma á (nefnt töfluskema)
- þeir styðja jafnan ekki staðlað fyrirspurnarmál (SQL)
- þeir bjóða jafnan upp á að „skala út” frekar en að „skala upp”.
- sérhæfa sig í mismunandi tegundum gagna
Helstu tegundur NoSQL gagnagrunna eru lykla-gildagrunnar (e. key-value store), skjalagrunnar (e. document store), breiðdálkagrunnar (e. wide-column store) og grafgrunnar (e. graph).
Vegna þess að flestir NoSQL-gagnagrunnar framfylgja ekki töfluskema eiga ACID-eiginleikar hreyfinga ekki við nema að takmörkuðu leyti. Og vegna þess að gögnum í NoSQL-kerfum er gjarnan dreift á tvo eða fleiri þjónar er heldur talað um CAP-kennisetninguna í samhengi við skilvirkni kerfisins sem mælir fyrir um að dreifð tölvukerfi þurfi að velja tvennt af þrennu mögulegu:
- Heilleika (e. consistency) - að allir þjónar hafi aðgang að nýjustu gögnunum
- Framboð (e. availability) - að notandinn getið lesið og skrifað gögn
- Sundurskiptingarþol (e. partition tolerance) - að kerfið ráði við það þó svo að tengingar á milli þjóna rofni tímabundið