När Statoil i Norge nyligen gjorde om ett stort system för att optimera beräkningar för hantering av gas var Jimmy Nilsson på Factor10 inhyrd konsult. En av de saker han gjorde var att byta ut relationsdatabasen som används mot en lösning som passade tillämpningen bättre.

– Nyckeloperationer går 120 gånger snabbare sedan vi bytte. Vi kunde dessutom ta bort 10 000 rader programkod från systemet, säger Jimmy Nilsson.

– Nu finns det bara en datamodell att hålla reda på. Tidigare krävdes ett programlager för översättning mellan databasen och objektmodellen i systemet.

Problemet med relationsdatabaser i sammanhanget är att den datamodell som användes inte stämde så väl överens med de data som hanteras i systemet. Lösningen blev att skippa relationerna, den så kallade normaliserade datamodellen, och i stället lagra värden för tidsserier som binära objekt. Det ger flera fördelar, förutom bra prestanda och mindre kod.

Bytet av databasmodell innebar däremot inte ett byte av databashanterare. Det är fortfarande Oracle som används, men nu ”används Oracle som en fil”.

– Det är nog så på många stora företag att man inte kan byta databashanterare hur som helst.

En annan fördel är att vissa beräkningar av aggregerade värden blir enklare och just sådana beräkningar är viktiga i systemet.

En följd av ändringen är att databasen inte kan användas av andra system lika enkelt som tidigare. Men att använda databaser för flera system leder ofta till problem, tycker Jimmy Nilsson. Enkelt uttryckt innebär det stora nackdelar vad gäller ändringsbarheten om flera system delar databas.

Sammantaget är Jimmy Nilsson mycket nöjd med beslutet att byta databasmodell.

– Det är en sådan lättnad att använda den här lösningen i stället för en relationsdatabas.

Men han dömer inte ut relationsmodellen helt.

– Det viktiga är att välja rätt lösning för varje problem.

Fakta

Data i relationsdatabaser organiseras ofta enligt en princip som heter normalisering. Det ger en hög grad av tillförlitlighet för data, men lämpar sig dåligt för många typer av tillämpningar.
Normalisering innebär att man följer en uppsättning regler som ska minska dubbellagring av data och som ska garantera att data kan identifieras på ett bra sätt.