kompetanseguiden
Hva er databaser?
Hva er databaser – og hvor kan du lære det? I denne artikkelen får du en rask introduksjon til hva databaser går ut på, mens du i verktøyet øverst kan finne ut hvor og hvordan du kan lære det – basert på dine egne kriterier for læringen.
Tilbake til kompetanseguidens hovedside
Bak omtrent enhver nettside, applikasjon eller program ligger det en database. En database lagrer og behandler strukturerte data, og er en essensiell del av programvareutvikling. SQL er det vanligste språket å bruke mot databaser.
Vi har bedt Marvin Lillehaug, systemutvikler i Kantega, om å fortelle litt om databaser.
Kort oppsummert; hva er databaser?– Databaser brukes når man ønsker å lagre noe, og finne det igjen senere.
Hva brukes databaser til i 2020? Når er det viktig å kunne dette?
– Nesten alle nettsider og applikasjoner henter og lagrer data et sted, så alle som jobber med noe som ikke er statisk HTML må forholde seg til noen form for database. Mange applikasjoner har ikke direkte kobling til den underliggende databasen, det er kanskje et API som ligger mellom, men det er viktig å forstå at det er en database i bunnen.
– For dem som skal jobbe direkte med databaser er det viktig å vite hva de forskjellige typene databaser er gode på. Å velge feil databaseteknologi kan få veldig store konsekvenser på sikt.
Har du noen eksempler på typiske situasjoner eller utfordringer som databaser blir brukt til å løse?
– De enkleste situasjonene er enkel lagring og uthenting, kanskje litt filtering. For eksempel en blogg der innlegg blir lagret og deretter listet ut og kanskje filtrert på kategori.
– Verktøy for overvåkning og grafing av metrikker kan forenklet beskrives på samme måte – med jevnlige intervaller lagres metrikker for applikasjonen, og så blir det laget grafer og alarmer basert på disse.
– Den mest tradisjonelle databasen er relasjonsdatabasen. Den kan være veldig enkel i bruk, men støtter også veldig avansert funksjonalitet med spørring på flere forskjellige typer data.
Er det noen vanlige språk, rammeverk eller verktøy som er særlig knyttet til databaser?
– Det finnes veldig mange muligheter innenfor databaser, så det er noe for ethvert behov og enhver smak.
– Det de fleste tenker på når ordet databaser nevnes er nok relasjonsdatabaser. Her er språket SQL, og de mest kjente databasene er Oracle, Microsoft SQL, MySQL/MariaSQL og Postgresql.
– De andre typene databaser har samlebetegnelsen «NoSQL». Selve ordet har forskjellige meninger, jeg tror det de fleste legger i det er en database som ikke er en relasjonsdatabase.
– En variant av NoSQL er dokumentdatabaser, som CouchDB og Solr/Elasticsearch, hvor lagring og uthenting er basert på dokumenter/semistrukturert data. Litt lignende er «key value»-databaser som Redis.
Hvordan er vanskelighetsgraden og læringskurven? Hvilke forkunnskaper er det eventuelt en fordel å ha hvis man ønsker å sette seg inn i det?– Det grunnleggende med å lagre og hente ut data er som oftest ganske lett. Men det er lett at ting blir vanskeligere/mer komplekst etter hvert som brukstilfellet beveger seg utenfor å lagre og hente ut bloggposter.
– I utgangspunktet er det ikke nødvendig med veldig mye forkunnskaper annet enn grunnleggende kunnskap om hvordan datamaskiner og nettverk henger sammen.
– Læringskurven avhenger av hva man vil oppnå. Å sette opp en enkel database for bloggen sin er veldig lett, men for å kunne administrere distribuerte databaser og transaksjoner og litt større ting, er det mye en må kunne, og det er mange fallgruver.
Hvilke ulemper eller utfordringer ser du med databaser?
– Den største utfordringer er å vite hvilken database-variant som passer best til de aktuelle brukstilfellene. Vi hører ofte historier om prosjekter som har prøvd å bruke en databaseteknologi, for så å måtte bytte fordi det opprinnelige valget ikke passet med bruksmønsteret.
Hva er forhistorien til databaser, og hvordan har utviklingen vært?
– Som det meste annet innenfor IT var starten på databaseteknologi på 60-tallet. Frem til rundt 2000 var relasjonsdatabasen ganske dominerende, etter det begynte NoSQL å komme på banen.
Det vil neppe komme noen database-revolusjon i nærmeste fremtid
Hvordan ser du for deg at databaser kan videreutvikles?
– Jeg har inntrykk av at de fleste typene databaser som kan finnes allerede er funnet opp. Så det vil neppe komme noen database-revolusjon i nærmeste fremtid.
– For noen år siden ble NoSQL-databaser veldig hypet, og mange sverget til slik i stedet for relasjonsdatabaser. Denne hypen har for det meste lagt seg nå, så «NoSQL» betyr av og til «Not only SQL».
– Så utviklingen vil nok være at de forskjellige teknologiene fortsetter å bli bedre på sine ting og blir brukt avhengig av behov. Det begynner å bli lettere å vite hvilke behov de forskjellige database-teknologiene er gode på, men det er nok også et stykke igjen.
Hvilke råd kan du gi til en som ønsker å lære seg dette?
– Finn ut hva behovet du har er, og se hva det enkleste du kan klare deg med er. Så er det som oftest mulig å legge til mer avanserte ting etter hvert.
– Mange databaser har spørrespråk som ligner på SQL, så det er lurt å kunne. Prinsippene for ACID er nyttig å kunne, og om det er snakk om distribuerte databaser må du vite om CAP.