Databaser har utvecklats långt från att bara handla om tabeller med rader och kolumner, skriver Infoworld. Det är så sant, och ännu är inte databaserna färdigutvecklade. Det blir de troligtvis aldrig.

I ett försök att återge databasernas historia i rekordfart hoppar vi fram till relationsdatabasens intåg på allvar, under mitten av åttiotalet ungefär. Då, och för lång tid framåt, låg fokus på tabeller med väldigt raka kolumner och en rad per objekt som beskrevs.

Relationsdatabasen har utgjort bottenplattan i modern it under lång tid. De flesta webbsajter kan beskrivas som lite CSS-smink, påmålat på databasspråket sql (som dominerar totalt för relationsdatabaser.)

Men den här bilden förändras. Utvecklare inser att inte alla data passar för lagring i enkla tabeller. En del av de här utvecklarna har skapat nya databaser som passar bättre för att lagra data de hanterar, därav den ökande populariteten för nosql-databaser.

Det har gått så långt att många pratar om ”data store” i stället för ”databas”, för att särskilja nyare databaser från de äldre relationsdatabaserna.

Hur som helst, här är sex sätt som databaser förändras på.

1. Grafikprocessorer

En gång i tiden var syftet med grafikkort att rita snygga bilder i barnens spel. Numera används de även för en massa andra saker, som inte har med grafik att göra. Att söka i stora datamängder är ett av de bästa exemplen, vilket kommer sig av att det är ett jobb som med fördel kan parallelliseras. Vilket passar utmärkt för de ibland tusentals små ”processorkärnor” som finns i en grafikprocessor.

Obs! Vad som är en processorkärna i det här sammanhanget är föremål för debatt. Säg så här: En modern grafikprocessor kan ha tusentals ”delar” som kan utföra arbete på egen hand.

Läs ocksåNvidia visar upp ny superdator på monsterpropp

Den riktigt stora fördelen vad gäller databaser är att sådana här lösningar kräver lite förberedande arbete. Ett exempel är att vissa uppgifter kan lösas utan att indexera en datamängd, vilket tar tid och kan vara besvärligt. Och så går enskilda sökningar snabbt, förstås.

2. Beständigt minne

Beständigt minne (Non-volatile memory, NVRAM) är helt enkelt minne som har kvar data när strömmen stängs av. Eftersom minne är mycket snabbare än disk får man stora prestandafördelar av att använda beständigt minne i stället för disk för att lagra data i databaser.

Det här leder till en hel del, ibland filosofiska, funderingar. Kommer man till exempel att använda databaser överhuvudtaget om all information alltid finns kvar i minnet? Fundera på det ett tag!

3. Skalbar sql

Det är lika bra att vi reder ut en sak nu: Satsen ”sql = relationsdatabas” är felaktig. Sql är ett språk som ofta används för relationsdatabaser, men även kan användas för databaser som baseras på andra modeller. Men i dagligt tal är ”sql-databas” ofta en synonym för ”relationsdatabas”.

Nå väl. En anledning till att nosql-databaser som Cassandra och MongoDB blivit populära är att de passar utmärkts för att sprida databaser på många noder (servrar). Men det finns inget skäl för att man inte ska kunna använda sql som frågespråk mot sådana databaser, åtminstone inte vad gäller grundläggande sql-kommandon.

Man ska inte heller glömma bort att de ”gamla” relationsdatabaserna utvecklas vad gäller att använda flera noder.

4. Geospatiala databaser

Traditionella databaser är byggda för endimensionella datamängder, inte för tvådimensionella geografiska koordinater, för att inte tala om tredimensionella. Det går att fuska till lösningar, med latitud och longitud i egna kolumner. Men det blir krångligt med sökningar, speciellt om man vill skapa mer avancerade geografiska lösningar.

Geospatiala databaser bidrar med specialfunktioner som index anpassade till 2d- och 3d-världar. Sådana gör det till exempel möjligt att skriva databasfrågor som innehåller begrepp som ”innehåller”, ”överlappar” och till och med ”rör vid”. Neo4j Spatial, Geomesa, MapD och PostGIS är exempel på sådana här lösningar.

Läs också”AI är bara en avancerad miniräknare”

5. Grafdatabaser

Tabeller är en bra förvaringsplats för många datastrukturer, men passar inte så bra för de senaste tio årens allt mer populära datamodell: Nätverket.

I takt med att ”sociala grafer” växer fylls databaser med information om allt fler noder, med allt fler kopplingar mellan sig. Och information om kopplingarna mellan noderna är ofta viktigare än informationen som hör till själva noderna.

Komplicerade databasfrågor som rör sådana här datastrukturer blir i princip omöjliga med traditionella relationsdatabaser. Frågor som ”dejtar Annika någon före detta pojkvän till någon av sina väninnor?” eller ”är Ahmed två eller tre steg ifrån Kristian i vänskapsnätverket?” är två principiella exempel.

Med grafdatabaser blir det enkelt att köra sådana här frågor. Neo4J som en gång skapades i Sverige är ett exempel på en grafdatabas.

6. Molndatabaser

En av de största skillnaderna mot förut gäller hur många köper databasmjukvara i dag. Tidigare köpte man en dator och en licens för en databashanterare och sedan körde man den på datorn som köpts. Nu kan man köpa databashanterare som en tjänst.

Fördelarna är uppenbara. Man behöver inte sköta om ett datacenter, eller ens en server. Och man behöver inte oroa sig för licenser, mycket av konfigurationsarbetet eller att installera patchar. Det sköter någon annan. Och det kan bli billigare också.

Men viss finns det källor till osäkerhet. Vem kommer åt dina data? Vad finns det för skydd mot till exempel strömavbrott och översvämningar? Sköts säkerhetskopieringen på ett bra sätt? Man får lov att lita på molnleverantören.