Kasutaja:Kravi321/NoSQL

Allikas: Vikipeedia

NoSQL (ingl not only SQL) on mitterelatsiooniline alternatiiv klassikalistele relatsioonilistele andmebaasidele, mis põhinevad eelkõige SQLi baasil. Erinevalt relatsioonilistest andmebaasidest ei pea NoSQL süsteemid vastama rangelt ette kirjutatud andmemudelile. Baasiks oleva andmemudeli puudumine tähendab, et oluliste äriloogiliste muudatuste tegemine andmebaasi tasemel on oluliselt vähem aega- ja rahanõudev võrreldes relatsiooniliste andmebaasidega. Teine oluline eelis relatsiooniliste ees tuleneb nende võimekusest käsitleda mistahes struktureerimata andmeid.[1] Sellisteks andmeteks võivad olla näiteks kasutajate seansi teave, sõnumid, vestlused, logid, videod, pildid või seadmete andmed.[2]

Ajalugu[muuda | muuda lähteteksti]

Kuigi mitterelatsiooniliste andmebaaside kontseptsioon pärineb 1960ndate aastate lõpust, ei leidnud see kuigi palju kasutust enne 21. sajandi algust.[3] Üha suurenevate andmemahtudega toime tulemiseks tuli paljudel IT-tööstuse suurfirmadel 2000. aastate algul hakata vaatama mitterelatsiooniliste andmebaasi lahenduste poole. 2005. aastal tuli Google välja oma Bigtable-nimelise lahendusega.[4]

Termini NoSQL võttis esmakordselt kasutusele Carlo Strozzi aastal 1998, mil ta tuli välja Strozzi NoSQL nimelise avatud lähtekoodiga andmebaasiga, mis ei kasutanud SQL liidest, kuid oli siiski relatsiooniline. 2009. aastal võttis termini taas kasutusele Johan Oskarsson, et kirjeldada toona esile kerkima hakkavaid mitterelatsioonilisi ja distributiivseid andmebaase, mis ei järginud senini oluliseks peetud ACID (ingl atomicity, consistency, isolation, durability) printsiipe.[5]

NoSQL andmebaaside tüübid ja näited[muuda | muuda lähteteksti]

NoSQL mõiste on lai – selle alla kuuluvad mitut erinevat tüüpi andmete haldussüsteemid, millest põhilisteks on võti-väärtus paari tüüpi, dokumendi tüüpi, graafi tüüpi ning lai-veerg tüüpi andmebaasid.[6]

Võti-väärtus paar[muuda | muuda lähteteksti]

NoSQL andmebaaside lihtsaim vorm on võtmete ja väärtuste paarid ehk sõnastik. Igale väärtusele vastab andmebaasis kindel unikaalne võti, mille abil saab selle kiiresti üles leida.[7]

Dokument[muuda | muuda lähteteksti]

Enimkasutatav NoSQL andmebaaside formaat on dokument. Dokument sarnaneb ülesehituselt võti-väärtus paarile, kuid võimaldab hallata väärtustena keerulisemaid andmestruktuure, näiteks loendeid. Sellistes andmebaasides on võimalik hoida dokumente tekstiformaatides nagu näiteks JSON, XML või YAML, aga ka binaarformaatides nagu PDF, BSON või DOCX.[8]

Graaf[muuda | muuda lähteteksti]

Graafi tüüpi andmebaasid on loodud kujutamaks andmetevahelisi seoseid. Sellist tüüpi andmebaasid koosnevad sõlmedest ehk kirjetest ning nende omavahelisest seostest. Igal seosel peab olema suund ja nimi ning see peab määrama kahe sõlme vahelise suhte (näiteks linn ASUB riigis). Graafi tüüpi andmebaaside abil on võimalik kujutada näiteks inimeste suhtlusvõrgustikku, ühistranspordivõrgustikku või teedevõrgustikku.[9]

Lai-veerg[muuda | muuda lähteteksti]

Lai-veerg tüüpi andmebaasid võimaldavad hallata suuri andmemahtusid. Kasutatakse tabeleid, ridu ja veerge, kuid erinevalt relatsioonilistest andmebaasidest võivad veergude nimed ja formaadid ridade kaupa ühes tabelis erineda.[10]

Näited NoSQL andmebaaside haldussüsteemidest[11]
Tüüp Näited
Võti-väärtus Amazon Dynamo, Oracle NoSQL, Redis, Apache Ignite
Dokument Apache CouchDB, Couchbase, MongoDB, Riak
Graaf Neo4J, InifiniteGraph, Apache Giraph, OrientDB
Lai-veerg Apache Cassandra, Google Bigtable, Apache HBase

Viited[muuda | muuda lähteteksti]

  1. mongoDB. "NoSQL Databases Explained". Vaadatud 01.12.2018.
  2. mongoDB. "Unstructured Data in Big Data". Vaadatud 01.12.2018.
  3. Neal Leavitt. "Will NoSQL Databases Live Up to Their Promise" (PDF). Vaadatud 21.11.2018.
  4. Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber. "Bigtable: A Distributed Storage System for Structured Data" (PDF). Vaadatud 01.12.2018. {{netiviide}}: nähtamatu tähemärk (reavahetus) parameetris |Autor= positsioonil 78 (juhend)CS1 hooldus: mitu nime: autorite loend (link)
  5. Chapple, Mike. "The ACID Model". Vaadatud 21.11.2018.
  6. mongoDB. "Types of NoSQL Databases". Vaadatud 01.12.2018.
  7. Amazon. "What Is a Key-Value Database?". Vaadatud 01.12.2018.
  8. Ciprian-Octavian Truica, Florin Radulescu, Alexandru Boicea, Ion Bucur. "Performance evaluation for CRUD operations in asynchronously replicated document oriented database" (PDF). Vaadatud 01.12.2018.{{netiviide}}: CS1 hooldus: mitu nime: autorite loend (link)
  9. Neo4j. "What is a Graph Database?". Vaadatud 21.11.2018.
  10. "Wide Column Stores". DB-Engines. Vaadatud 21.11.2018.
  11. "LIST OF NOSQL DATABASES". Vaadatud 01.12.2018.