NoSQL (englannin sanoista Not only SQL) on käsite, jolla kuvataan perinteisestä relaatiomallista poikkeavia tietokantoja. Nämä tietokannat eivät seuraa mitään kiinteästi määrättyä taulukkoskeemaa, minkä ansiosta ne skaalautuvat hyvin horisontaalisesti. [1]

NoSQL-tietokannaksi kutsuttiin aluksi Carlo Strozzin vuonna 1998 esittämää järjestelmää, jossa ei käytetty SQL-kyselykieltä.[2] Termi yleistyi vuonna 2009 Johan Oskarssonin järjestämässä tapaamisessa, jossa keskusteltiin ei-relaatiomallin mukaisista ohjelmistoista kuten Cassandra ja Voldemort.[2]

Tarkoituksena oli löytää yhteinen nimitys kasvavalle määrälle tietokantajärjestelmiä, jotka poikkeavat ACID-periaatteista. Tunnettuja NoSQL-toteutuksia ovat muun muassa Google BigTable ja Amazon Dynamo. [3]

Avain-arvo -tietokantajärjestelmiä ovat muun muassa Redis, Memcached ja Riak.[2]Sarakkeisia tietokantajärjestelmiä ovat muun muassa Apache Cassandra, Apache HBase ja ClickHouse.[2]Dokumentti-orientoituneita tietokantajärjestelmiä ovat muun muassa MongoDB, Couchbase ja Apache CouchDB.[2]Graafitietokantajärjestelmiä ovat muun muassa Neo4j, ArangoDB ja OrientDB.[2]

Arkkitehtuuri muokkaa

Relaatiotietokannat soveltuvat huonostilähde? suurten dokumenttimäärien käsittelyyn ja pilvilaskennan käyttöön. Parhaimmillaan ne ovat, kun käsitellään pieniä transaktioita tai suoritetaan harvoin tapahtuvia suuria eräajoja. Ne eivät kuitenkaan ole kovin tehokkaita, jos tietokantaan tarvitsee tehdä paljon muutoksia tihein väliajoin. NoSQL taas pystyy suoriutumaan hyvinkin suuresta samanaikaisesta määrästä luku- ja kirjoitusoperaatioita. [1]

Tekniikan heikkoihin puoliin kuuluu, että NoSQL-arkkitehtuurit eivät välttämättä takaa datan eheyttä eri palvelimilla. Ne kuitenkin pyrkivät siihen, että tiedot päivitetään lopulta, vaikka se ei tapahtuisikaan välittömästi. Useat NoSQL-toteutukset tukevat tietokantojen hajauttamista, jossa tiedot ovat toisteisesti useilla palvelimilla ja ne on mahdollista löytää esimerkiksi hajautetun tiivisteen avulla. Tällä tavoin järjestelmiä on helppo skaalata, ja ne toimivat, vaikka verkkoyhteydet sen joidenkin solmujen välillä katkeaisivatkin. [4][5][1]

Lähteet muokkaa

  1. a b c Peltola, Marko: NoSQL-tietokannat tieteellisen tutkimusaineiston arkistoinnissa users.jyu.fi. 17.3.2011. Viitattu 25.4.2013.
  2. a b c d e f Mark Drake: A Comparison of NoSQL Database Management Systems and Models digitalocean.com. Arkistoitu . Viitattu 20.10.2019. (englanniksi)
  3. Evans, Eric: NOSQL 2009 blog.sym-link.com. 12.5.2009. Arkistoitu 16.7.2011. Viitattu 25.4.2013.
  4. Lakshman, Avinash & Malik, Prashant: Cassandra. Structured Storage System over a P2P Network static.last.fm. Viitattu 25.4.2013.
  5. De-mystifying “eventual consistency” in distributed systems Kesäkuu 2012. Oracle. Viitattu 25.4.2013.

Aiheesta muualla muokkaa

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.