Back Story:
Kurssilla opin kaksi asiaa:
Relationaaliset tietokannat ja ei-relationaaliset tietokannat, mutta en koskaan todella oppinut näiden kahden eroa, joten halusin herättää uteliaisuuteni tietokantoihin ja niiden välisiin eroihin uudelleen.
- E.F Coddin vuonna 1970 määrittelemä relaatiotietokanta on digitaalinen tietokanta, joka perustuu relaatiomalliin. Tiedot tallennetaan taulukoihin, jotka sisältävät rivejä (jotka edustavat merkintää) ja sarakkeita (jotka tallentavat ja lajittelevat tietyntyyppistä tietoa). Suhteet luodaan ensisijaisten ja ulkoisten avainten avulla.
Kielet: SQL(Structured Query Language), MySQL, PostgreSQL, sqlite3
Edut:
- Käsittelee paljon monimutkaisia kyselyjä, tietokantatapahtumia ja rutiininomaista tietojen analysointia.
- ACID(Atomity, Consistency, Isolation, Durability): Joukko ominaisuuksia, jotka takaavat luotettavat tietokantatapahtumat.
Haitat:
- Ei pysty tallentamaan monimutkaisia tai erittäin suuria kuvia, numeroita, malleja ja multimediatuotteita
- Voi tulla erittäin kalliiksi ylläpidon ja uusien palvelimien kanssa
Hyvä! Mutta entä jos tietokantamme ovat liian suuria tai jäsentymättömiä?
Ei-relationaalinen tietokanta eli NoSQL
Mikä on ei-relationaalinen tietokanta?
- Ei-relationaalisia tietokantoja oli olemassa jo 1960-luvun lopulla, mutta termiä käytettiin vasta vuonna 1998 Carlo Strozzin toimesta, joka johti NoSQL:n kehittämistä.
- ”NoSQL-tietokanta (alun perin viitaten ”ei-SQL” tai ”ei-relationaalinen”) tietokanta tarjoaa mekanismin sellaisten tietojen tallentamiseen ja hakemiseen, jotka on mallinnettu muilla keinoilla kuin relaatiotietokannoissa käytetyillä taulukkomuotoisilla relaatioilla.” – Wikipedia
NoSQL-tietokantojen tyypit:
Column Store: Käyttää avaintilan käsitettä, joka sisältää kaikki sarakeperheet, jotka sisältävät rivejä ja sarakkeita, tietojen tallentamiseen ja järjestämiseen.
Tietokanta: Apache HBase, Cassandra
Avainarvosäilö: Käyttää assosiatiivista arraya (map tai dictionary) perustietomallina. Tiedot esitetään avain-arvoparien kokoelmana, ja avain esiintyy kokoelmassa korkeintaan kerran. Voit tallentaa arvon, kuten kokonaisluvun, merkkijonon, JSON-rakenteen tai joukon, sekä avaimen, jota käytetään viittaamaan kyseiseen arvoon.
Kanta: Redis, Amazon DynamoDB
Graafi: On tietokanta, joka hyödyntää graafirakenteita tietojen esittämiseen ja tallentamiseen. Tämä antaa käyttäjille mahdollisuuden liikkua nopeasti kaikkien toisiinsa liittyvien arvojen välillä ja löytää oivalluksia suhteista.
Tietokanta: Neo4J, OrientDB, Titan
Dokumenttikeskeinen tietokanta: Dokumenttipainotteinen tietokanta eli dokumenttivarasto on tietokoneohjelma, joka on suunniteltu dokumenttipainotteisen tiedon, jota kutsutaan myös puolistrukturoiduksi dataksi, tallentamiseen, hakemiseen ja hallintaan.
Tietokanta: MongoDB, Couchbase
Edut:
- Suuret määrät strukturoitua, puolistrukturoitua ja strukturoimatonta dataa
- Objektipainotteinen ohjelmointi, joka on helppokäyttöistä ja joustavaa (MongoDB on periaatteessa kirjoitettu javascriptillä)
- Tehokas skaalautuva arkkitehtuuri kalliin monoliittisen arkkitehtuurin sijasta
Haitat:
- Vähemmän tukea, koska NoSQL-tietokannat ovat yleensä avoimen lähdekoodin tietokantoja
- Hallinta:
- Vähän kypsä. NoSQL-tietokannat ovat edelleen kasvussa ja monia ominaisuuksia ollaan vielä toteuttamassa.
Mitä käyttää?
Yritykset hyödyntävät sekä perinteisten että ei-relationaalisten tietokantojen yhdistelmää liiketoimintavaatimustensa ja -tarpeidensa täyttämiseksi.
Relationaalinen tietokanta:
Traditionaaliset relaatiotietokannat pystyvät pitämään tietoliikenteesi turvallisena ja suorittamaan monimutkaisia kyselyjä tiedon hankkimiseksi. Yritykset, jotka ovat jo valmiiksi jäsenneltyjä ja joilla ei ole massiivista kasvua, pitäytyvät todennäköisesti perinteisissä tietokannoissa.
Ei-relationaaliset tietokannat:
Sopivat erinomaisesti suurten tietomäärien tallentamiseen, joilla on vähän rakennetta. Nopeasti kasvavat yritykset, kuten startup-yritykset, käyttävät enemmän ei-relationaalisia tietokantoja niiden skaalautuvuuden ja joustavuuden vuoksi. Yhdistettynä pilvipalveluun ei-relationaaliset tietokannat voivat myös säästää yrityksille paljon rahaa.
Data Fun Facts:
- Data kasvaa nopeammin kuin koskaan ennen, ja vuoteen 2020 mennessä jokaista planeetan ihmistä kohti luodaan joka sekunti noin 1,7 megatavua uutta tietoa.
- Siihen mennessä kertynyt digitaalinen datauniversumimme kasvaa tämänhetkisestä 4,4 zettabyytistä noin 44 zettabyyttiin eli 44 triljoonaan gigatavuun.
- Video- ja valokuvadatan kasvu on valtavaa, sillä pelkästään YouTubeen ladataan joka minuutti jopa 300 tuntia videoita.
- Tänä vuonna toimitetaan yli 1,4 miljardia älypuhelinta, jotka ovat täynnä antureita, jotka kykenevät keräämään kaikenlaista dataa, puhumattakaan käyttäjien itse tuottamasta datasta.
- Viiden vuoden kuluessa maailmassa on yli 50 miljardia älykästä, toisiinsa kytkettyä välinettä, jotka on kehitetty keräämään, analysoimaan ja jakamaan dataa.
Hyväksytty.