2011-09-04

NoSQL

Jag tycker det är väldigt intressant att följa debatten kring hela NoSQL hypen. Senast den här veckan hade Computer Sweden en stor artikel. Några av mina tankar...

En viktig aspekt med NoSQL databaserna är att de är gjorda för sitt specifika ändamål, man behöver ingen datamodell och man vet i förväg hur data kommer accessas. Jämför detta med en SQL databas där man i förväg inte har en aning om hur datat modelleras eller kommer att accessas. Man gör antaganden om hur datat kommer att efterfrågas och skapar t.ex. index. Man kan givetvis använda en SQL databas som key-value store, eller för att lagra dokument, men det är självklart att NoSQL databaser optimerade för sin uppgift gör jobbet bättre än en generell SQL databas skulle göra på en likvärdig modell.

Avsaknaden av en datamodell kan dock vara ett problem. Har man många applikationer med olika objektmodeller som mappar mot datalagret är det lätt att man får motsägelser i datat. Det finns inte heller något standardiserat gränssnitt för NoSQL databaser. Om man flera applikationer i olika programmeringsspråk kan detta kräva att man bygger ett eget accesslager ovanpå datalagret för att få ett gemensamt gränssnitt mot alla applikationer. Arbetet har dock påbörjats med UnSQL men det återstår att se hur det fortlöper.

Som vanligt så finns det tyvärr ingen silver bullet som löser alla problem. Alla databaser har sin styrka, må det vara en rad/kolumnbaserad relationsdatabas, grafdatabas, dokumentdatabas eller key-value store. Det viktiga är att förstå de olika alternativen för att kunna välja den bästa lösningen. Hur många svenska företag sitter på hybridlösningar i sitt warehouse idag?

Inga kommentarer:

Skicka en kommentar