SQL on tiensä päässä

SQL on tiensä päässä

Tietokannat ovat olleet kuluneen vuoden kuumin puheenaihe web-kehittäjien keskuudessa. Mysql:n siirryttyä käytännössä Oraclen omistukseen moni on ihmetellyt, mikä motivaatio tietokantajätillä on ylläpitää ilmaista kilpailijaa maksullisille tuotteilleen. Ei ole ihme, että Mysql:n avoimesta lähdekoodista haarautuneet vaihtoehtoiset projektit herättävät mielenkiintoa. Näitä ovat esimerkiksi Drizzle sekä Monty Wideniuksen oma Mariadb.

Drizzle on kiinnostava projekti, joka keskittyy parantamaan Mysql:n skaalautuvuutta ja soveltuvuutta pilvipalveluiden alustaksi. Tavoitteena on karsia tuotteesta pois tarpeettomat ominaisuudet, kuten tallennetut proseduurit, näkymät ja käyttäjätunnukset. Niiden sijaan keskitytään tekemään ydintoiminnallisuudesta tehokasta ja yksinkertaista.

Sql-pohjaisille tuotteille on kuitenkin hyvää vauhtia putkahdellut uudenlaisia kilpailijoita, jotka on ristitty yhteisesti Nosql-tietokannoiksi. Avoimen lähdekoodin puolella tunnetuimpia näistä ovat Facebookin julkaisema Cassandra sekä Apache-projektin kehittämä Couchdb. Pilvioperaattoreilla on puolestaan omat palvelunsa, joista suurimpia ovat Googlen Bigtable sekä Amazonin Simpledb.

Nosql-tekniikan suuri oivallus on, ettei relaatiotietokannoissa ole oikeastaan mitään järkeä, koska nykyajan sovellusten rakenne ei vastaa enää lainkaan perinteistä relaatiomallia. Modernit webbisovellukset käsittelevät tietoa mieluiten json-muotoisina objekteina, joita liikutellaan sellaisenaan esimerkiksi Ajax- ja Rest-rajapintojen yli. Tietorakenteet ovat moniulotteisia, ja niihin lisätään koko ajan uusia kenttiä sovellusten kehittyessä.

Miksi näitä tietorakenteita oikeastaan edes pitäisi yrittää ujuttaa relaatiotietokantaan? Couchdb:n ja Mongodb:n kaltaiset tuotteet osaavat varastoida json-objektit tietokantaan sellaisenaan. Sovelluksesta katoaa valtava määrä turhaa monimutkaisuutta, kun perinteinen object-relational-mapping voidaan jättää pois. Tietokantojen skeemojakaan ei tarvitse enää pitää ajan tasalla jokaisen päivityksen yhteydessä, koska skeemoja ei näissä ratkaisuissa tarvita lainkaan.

Nosql-teknikkaa käyttämällä myös sovellusten skaalautuvuus paranee olennaisesti. Relaatiotietokantojen jäyhät käsitteet kuten transaktiot ja automaattiset id-numerot jäävät pois. Ne ovat tehokkaasti estäneet tietokantojen hajauttamisen usealle palvelimelle. Nosql-tietokannoissa käytetään niiden sijaan relaxed consistency -mallia ja uuid-tunnisteita. Yhtäkkiä tietokannan voikin hajauttaa kymmenelle, sadalle tai vaikkapa tuhannelle palvelimelle.

Sql-tietokantojen käyttöön on oikeastaan jäljellä enää kaksi hyvää syytä. Toinen on se, että nykyiset tietokantatuotteet ovat kypsiä ja luotettavia, kun taas useimmat Nosql-projektit ovat vielä versiossa 0.x. Tilanne kuitenkin korjaantuu hyvää vauhtia, ja ensi vuonna tullaan varmasti näkemään monien projektien 1.0-versiot.

Toinen syy on siinä, että lukemattomat blogi- ja julkaisujärjestelmät on rakennettu sql:n varaan, eikä niitä ole ihan triviaalia muokata toimimaan Nosql-tietokantojen kanssa. Vahvana veturina tässä siirtymässä toimii kuitenkin Google, jonka tarjoama App Engine -palvelu on hyvin mielenkiintoinen alusta uusille web-sovelluksille. App Enginen käyttö edellyttää Googlen oman Bigtable-rajapinnan integroimista sovelluksiin, joten se motivoi osaltaan siirtymistä Nosql-maailmaan. Kun sovellus on kerran integroitu Googlen tietokantaan, se on suhteellisen helppoa liittää myös esimerkiksi Couchdb:hen.

Nähtävissä on siirtymäkausi, joka kestänee vuosikymmeniä. Selvää on, että sql:n kehitys on webbisovellusten kannalta pysähtynyt. Nosql-tuotteet pystyvät tarjoamaan paljon tehokkaampia ja skaalautuvampia ratkaisuja, mutta niiden kypsyminen ja käyttöönotto tapahtuu asteittain. Tällä välin sovelluskehittäjien kannattaa harkita, voiko sovellukset rakentaa jo nyt siten, että siirtyminen Nosql:ään on mahdollisimman kivutonta.

Sql jää luultavasti joka tapauksessa elämään hybridiratkaisuissa, joissa transaktio-ominaisuudet ovat tärkeitä. Virtuaalisen valuutan ja maksujen käsitteleminen on hyvin haasteellista ilman transaktioita. Käyttäjäsessiot on kuitenkin nykyään järkevämpää tallentaa vaikkapa Tokyo Tyrant -tietokantaan, ja dokumenttialustaksi taas sopii paremmin esimerkiksi Couchdb. Mutta nyt sql ei ole enää se ainoa oikea ratkaisu kaikkeen tiedon varastointiin.

Tagit: -
Lähetä Tulosta Tilaa RSS-syöte
Takaisin ylös

Tietokone 5/2012 julkaisupäivä 16.5.2012

Katse näyttöön

Edessäsi ole oleva näyttö on kovin erilainen kuin ei-kovin-kauan-sitten yleisimmin käytetyt kuvaputkinäytöt. Eikä kehitys pysähdy. Toukokuun Tietokoneessa katsotaan näyttöjen tulevaisuuteen ja myös testataan terävät 27-tuumaiset näytöt. Ensituntumaa otetaan tulevan Windowsin palvelinversiosta. Vinkkejä tarjotaan muun muassa pc-hygienian ylläpitoon.

Takaisin ylös

Tietokone 12/2009

Lehden uusimmat numerot ovat vain tilaajien luettavissa. Vanhemmat numerot ovat vapaasti kaikkien luettavissa.

Voit myös ostaa Tietokoneen digilehden.

TTL ry
Pieni kirjapuoti
Takaisin ylös