Lyhenne NoSQL keksittiin vuonna 1998. Monet ihmiset ajattelevat, että NoSQL on halventava termi, joka on luotu SQL:n näkemiseen. Todellisuudessa termi tarkoittaa Ei vain SQL:ää. Ajatuksena on, että molemmat tekniikat voivat esiintyä rinnakkain ja jokaisella on paikkansa. NoSQL-liike on ollut uutisissa viime vuosina, koska monet Web 2.0:n johtajat ovat ottaneet käyttöön NoSQL-tekniikan. Yritykset, kuten Facebook, Twitter, Digg, Amazon, LinkedIn ja Google, käyttävät NoSQL:ää tavalla tai toisella. Puretaan NoSQL, jotta voit selittää sen tietohallintojohtajallesi tai jopa työtovereillesi.
NoSQL tuli tarpeesta
Data Storage: Maailman tallennetut digitaaliset tiedot mitataan eksatavuina. Eksatavu vastaa yhtä miljardia gigatavua (GB) dataa. Internet.comin mukaan vuonna 2006 lisätyn tallennetun datan määrä oli 161 eksatavua. Vain 4 vuotta myöhemmin vuonna 2010 tallennetun datan määrä on lähes 1 000 Exatavua, mikä on yli 500 % kasvua. Toisin sanoen maailmassa on tallennettu paljon dataa ja se vain jatkaa kasvuaan.
Yhdistetyt tiedot: Tietojen yhdistäminen jatkuu. Webin luomista edistetään hyperlinkeillä, blogeilla on pingbackeja ja jokaisessa suuressa sosiaalisen verkoston järjestelmässä on tunnisteita, jotka yhdistävät asiat. Tärkeimmät järjestelmät on rakennettu kytkettäväksi toisiinsa.
Monimutkainen tietorakenne: NoSQL pystyy käsittelemään hierarkkisia sisäkkäisiä tietorakenteita helposti. Saman asian saavuttamiseksi SQL:ssä tarvitset useita relaatiotaulukoita kaikenlaisilla avaimilla. Lisäksi suorituskyvyn ja tietojen monimutkaisuuden välillä on suhde. Suorituskyky voi heikentyä perinteisessä RDBMS:ssä, kun tallennamme v altavat määrät dataa, joita tarvitaan sosiaalisen verkostoitumisen sovelluksissa ja semanttisessa verkossa.
Mikä on NoSQL?
Yksi tapa määritellä NoSQL on pohtia, mitä se ei ole. Se ei ole SQL eikä relaatio. Kuten nimestä voi päätellä, se ei korvaa RDBMS:ää, vaan täydentää sitä. NoSQL on suunniteltu hajautettuihin tietovarastoihin erittäin suuria tietotarpeita varten. Ajattele Facebookia 500, 000, 000 käyttäjän kanssa tai Twitteriä, joka kerää terabittiä dataa joka ikinen päivä.
NoSQL-tietokannassa ei ole kiinteää skeemaa eikä liitoksia. RDBMS "skaalautuu" hankkimalla entistä nopeampia laitteistoja ja lisäämällä muistia. NoSQL puolestaan voi hyödyntää "skaalausta". Skaalaus tarkoittaa kuorman jakamista moniin hyödykejärjestelmiin. Tämä on NoSQL:n osa, joka tekee siitä edullisen ratkaisun suurille tietojoukoille.
NoSQL-kategoriat
Nykyinen NoSQL-maailma sopii 4 peruskategoriaan.
- Key-values Stores perustuvat ensisijaisesti Amazonin Dynamo Paperiin, joka kirjoitettiin vuonna 2007. Pääideana on hash-taulukon olemassaolo, jossa on ainutlaatuinen avain ja osoitin tiettyyn tietokohteeseen. Näihin kartoituksiin liittyy yleensä välimuistimekanismeja suorituskyvyn maksimoimiseksi.
- Dokumenttitietokannat ovat Lotus Notesin inspiroimia, ja ne ovat samanlaisia kuin avainarvovarastot. Malli on pohjimmiltaan versioituja asiakirjoja, jotka ovat muiden avainarvokokoelmien kokoelmia. Puolistrukturoidut asiakirjat tallennetaan muodoissa, kuten JSON.
- Graph Databases on rakennettu solmujen, muistiinpanojen välisten suhteiden ja solmujen ominaisuuksien avulla. Rivien ja sarakkeiden taulukoiden ja SQL:n jäykän rakenteen sijaan käytetään joustavaa graafimallia, joka voi skaalata useisiin koneisiin.
Column Family Stores luotiin tallentamaan ja käsittelemään erittäin suuria tietomääriä monille koneille. Avaimia on edelleen, mutta ne osoittavat useisiin sarakkeisiin. BigTablen (Googlen sarakeperheen NoSQL-malli) tapauksessa rivit tunnistetaan riviavaimella ja tiedot lajitellaan ja tallennetaan tällä avaimella. Sarakkeet on järjestetty sarakeperheen mukaan.
suuret NoSQL-soittimet
NoSQL:n tärkeimmät toimijat ovat nousseet esiin ensisijaisesti ne omaksuneiden organisaatioiden ansiosta. Joitakin suurimmista NoSQL-tekniikoista ovat:
- Dynamo: Dynamon loi Amazon.com ja se on näkyvin Key-Value NoSQL-tietokanta. Amazon tarvitsi erittäin skaalautuvan hajautetun alustan verkkokauppayrityksilleen, joten he kehittivät Dynamon. Amazon S3 käyttää Dynamoa tallennusmekanismina.
- Cassandra: Cassandra oli avoimen lähdekoodin Facebook ja se on sarakesuuntautunut NoSQL-tietokanta.
- BigTable: BigTable on Googlen oma sarakesuuntautunut tietokanta. Google sallii BigTablen käytön, mutta vain Google App Enginelle.
- SimpleDB: SimpleDB on toinen Amazon-tietokanta. Käytetään Amazon EC2:ssa ja S3:ssa, se on osa Amazon Web Services -palvelua, joka veloittaa käytöstä riippuen.
- CouchDB: CouchDB ja MongoDB ovat avoimen lähdekoodin dokumenttisuuntautuneita NoSQL-tietokantoja.
- Neo4J: Neo4j on avoimen lähdekoodin grafiikkatietokanta.
NoSQL-kyselyn tekeminen
Kysymys NoSQL-tietokannan kyselystä on se, mistä useimmat kehittäjät ovat kiinnostuneita. V altavaan tietokantaan tallennetut tiedot eivät kuitenkaan hyödytä ketään, jos et voi hakea niitä ja näyttää niitä loppukäyttäjille tai verkkopalveluita. NoSQL-tietokannat eivät tarjoa korkean tason deklaratiivista kyselykieltä, kuten SQL. Sen sijaan näiden tietokantojen kysely on> PREFIX foaf:
SELECT ?url
FROM
WHERE {
?contributor foaf:name "Jon Foobar".
?contributor foaf:weblog ?url.
}
NoSQL:n tulevaisuus
Organisaatiot, joilla on suuria tiedontallennustarpeita, katsovat vakavasti NoSQL:ää. Ilmeisesti konsepti ei saa niin paljon vetoa pienemmissä organisaatioissa. Information Weekin tekemässä tutkimuksessa 44 % yritysten IT-ammattilaisista ei ole kuullut NoSQL:stä. Lisäksi vain 1 % vastaajista ilmoitti, että NoSQL on osa heidän strategista suuntaansa. On selvää, että NoSQL:llä on paikkansa verkostoituneessa maailmassamme, mutta sen on jatkettava kehitystä saadakseen sen massan vetovoiman, jonka monet uskovat sen voivan saavuttaa.