Spørring
Tabell med innhold og resultattabell fra spørringen SELECT tittel, type FROM eiendeler WHERE plassering="Hylle 5";
Spørring

En database er en samling med lagrede data. Datasamlingen er organisert og strukturert etter en bestemt strategi eller modell – en databasemodell. Dataene brukes og vedlikeholdes gjennom et bestemt programsystem som kalles et databasesystem eller databasehåndteringssystem.

I mange IT-system er det behov for å lagre data på en (semi-)strukturert og sikker måte for enkelt kunne søke i data og holde dataene oppdatert. Sikker lagring betyr både å ikke miste eller uforvarende slette dataene, samt ha kontroll over hvem som kan lese dataene og eventuelt endre på de lagrede dataene.

Moderne databaser

Relasjonsdatabase

Eksempel på en enkel relasjonsmodell
Eksempel på en relasjonsmodell: Arkeologiske gjenstander og funnsted
Eksempel på en enkel relasjonsmodell
Lisens: CC BY SA 3.0

Relasjonsdatabaser er systemer basert på relasjonsmodellen. Her lagres data i rader (poster) med et sett felt (attributter) i todimensjonale tabeller.

Alle operasjoner på relasjonsmodellen er definert i en standard som kalles SQL-standarden. SQL står for Structured Query Language. Det blir på norsk kalt et strukturert spørrespråk, selv om SQL omfatter vesentlig mer enn spørrespråket.

SQL ble første gang standardisert i 1986, og har siden kommet med en rekke endringer og tillegg. Eksempler på kommersielle systemer som følger relasjonsmodellen inkluderer Oracle, Microsoft SQL Server, MySQL, PostgreSQL og IBM DB2. Riktignok følger ingen kommersielle systemer en gitt SQL-standard til punkt og prikke. Dette kan kreve små justering av databaser ved immigrasjon fra et system til et annet.

NoSQL

NoSQL-databaser er en noe løs betegnelse på en rekke alternative datamodeller til relasjonsmodellen. NoSQL har typisk større fleksibilitet på formatene til dataene som lagres og endringer i format over tid. Et minus kan være at de gir noen begrensninger i hvilke søk i data en kan utføres sammenlignet med SQL.

En oppdeling av NoSQL-løsninger kan være i dokumentdatabase, ulike nøkkel-verdi-løsninger, og grafdatabase.

I motsetningen til SQL finnes det i dag ingen standard for NoSQL. Det nærmeste en kommer en standard er at markeringsspråkene XML og JSON, eller varianter av disse, ofte brukes til å representere semi-strukturerte dokumenter, eller tekst med litt struktur, i databasen.

Databasesystem

Det finnes mange databasemodeller og tilhørende databasesystemer. Årsaken er delvis datateknologisk utvikling, men også at brukere av databaser har mange forskjellige behov.

Et fullverdig databasesystem baseres på følgende:

  • databasen inneholder sin egen beskrivelse (databaseskjema)
  • garanterer for at lagringen er sikker og korrekt på fysisk lagringsmedium selv om plutselig stopp oppstår (årsak kan for eksempel være strømbrudd, program- eller maskinfeil), eller hvis lagringsmediet feiler
  • kan sikre sikker lagring selv om databasen har mange samtidige brukere
  • databasen beskyttes mot brukere uten adgangsrettigheter, uautorisert endring og sletting av data
  • brukerne får ett eller flere grensesnitt mot databasen for fleksibel og effektiv søking, manipulering av data, og sammenstilling og presentasjon av data

Et fullverdig databasesystem kan i tillegg vurderes ut fra databasetekniske kriterier:

  • indeksering: brukes for raskere søk på spesifikke elementer/attributter, for eksempel kundenummer eller kundenavn
  • skalerbarhet: databasesystemet evne til å håndtere lagring av en stadig voksende datamengde
  • ytelse: hvor raskt det går å utføre ulike søk, eller spørringer, mot databasen.

Databasemaskin og datasikkerhet

En database vil typisk inngå i et IT-system, kanskje koblet opp mot internett og hvor datasikkerhet er viktig.

Klient-/tjenerløsning

Tradisjonelt brukes klient-/tjenerteknologi, hvor databasesystemet kjører i sin helhet på en vertsmaskin, typisk kalt databasetjener (engelsk database server) i et datanett hvor mange ulike programmer, kalt klienter, kan aksessere samme database. Vertsmaskinen kan typisk være fysisk lokalisert lokalt hos bedriften eller organisasjonen som kjører, eller drifter, databasetjeneren. Fordelen med en slik løsning er at en administrerer tjeneren lokalt, og kan blant annet sørge for at det blir tatt sikkerhetskopi av databasen. Ulemper er at hvis databasetjeneren er koblet til internett kan den utgjøre en sikkerhetstrussel for hacking utenfra. I tillegg kan det være krevende å skalere opp vertsmaskinen med hensyn på ytelse og fysisk lagringsplass knyttet til utvidet bruk og lagring av databaser.

Distribuert database

En løsning er å spre lagringen av databasen utover flere maskiner i et datanett. En distribuert database er lokalisert på på forskjellige maskiner som er knyttet sammen i et nettverk. Hver maskin med sine data og sitt databasesystem kalles en node. Distribuerte databaser forekommer i en rekke varianter. Hvis alle noder er like – altså at de har samme databaseprogram og databaseskjema – og er knyttet sammen i et raskt nettverk, har vi en parallell databasemaskin. Den andre ytterlighet er at maskiner og databaseprogrammer er forskjellige – altså at nodene har individuelle databaseskjema – og maskinene er knyttet sammen av det alminnelige internettet. Korrekt utførelse, altså operasjoner som sikrer et teknisk korrekt resultat, er teknisk krevende og av og til umulig i distribuerte databaser. Noder kan falle ut, det samme kan deler av nettet og lange forsinkelser kan oppstå.

Begrepet distribuert database brukes også ved at noder kan ha en kopi (replikasjon) av deler av databasen lagret lokalt for raskere søk i data. NoSQL-databaser garanterer typisk ikke for at lokale kopier inneholder oppdaterte data til enhver tid. Databasesystem må fortsatt vite hvordan den nyeste versjonen av den totale databasen kan finnes.

Skyløsning

En løsning er å lagre databasen i en skytjeneste. Dette kan medføre at en overlater til en leverandør av skytjenester å sørge for at databasesystemet til enhver tid er oppdatert og skalert i forhold til bruken. Ulempen er at en da må stole på en ekstern leverandør. I tillegg kan det for eksemepel i offentlig forvaltning være juridiske utfordringer knyttet til at en kanskje ikke har full oversikt over hvor dataene i en database faktisk er lagret fysisk.

Personvern

Datasikkerhet handler også om personvern. Databaser i for eksempel helsetjenester eller i offentlig forvaltning, inneholder sensitive personopplysninger. I Norge skal for eksempel ikke fødselsnummer lagres eller brukes som identifikasjon (nøkkel), i databaser uten at det finnes saklige grunner til dette. I stedet kan en bedrift for eksempel bruke et eget lokalt kundenummer som nøkkel i en database.

Databaser og langring av data

Unike og delte ressurser

Databasen inneholder unike ressursenheter – poster eller dataobjekter – som mange samtidige brukere konkurrerer om å bruke (lese, skrive eller oppdatere). Dette skiller et dataobjekt fra andre typer ressurser som lagerplass og CPU-kapasitet. Et dataobjekt kan ikke erstattes, og databasesystemet må derfor sørge for at konkurransen om dataobjektene, systemfeil eller ytre hendelser ikke fører til at data går tapt eller får feil verdi.

En mekanisme for å sikre korrekt utførelse og hindre tap eller korrupsjon av data er å utføre databaseoperasjonene innenfor en enhet som kalles en transaksjon.

Programmering av databaseoperasjoner

Settmodelbaserte databaser programmeres proseduralt. Dette betyr at en må navigere seg gjennom databasen post for post langs tilgjenglige veier for å få fram det ønskede resultat. Dette krever hyppig kommunikasjon fram og tilbake mellom bruker- og databaseprogram.

I relasjonsmodellen kan oppgaver spesifiseres ved å formulere betingelser som resultatet skal oppfylle. Deretter vil databasesystemet selv finne ut hvordan det best mulig kan beregne resultatet. Denne programmeringsmåten gir kompakte programmer som også er egnet til å overføre oppgaver til maskiner i et nettverk.

Spesialiserte databasetyper

Lagring av tekst og multimedia

Tradisjonelt er databaser gode på håndtering av formaterte data, men lite fleksible ved behov for å lagre andre typer data som tekst, film, video og lyd, tegninger, kart, matriser og vektorer, og data med komplekse eller variable strukturer, for eksempel dokumenter. Ikke alle typer data trenger å lagres i en database. For eksempel kan multimedia-filer lagres i et filsystem utenfor databasen, og heller lagre referanser til filene med metadata, data om data, i selve databasen.

Tekstbaserte dokumenter kan i dag håndteres av NoSQL eller tilleggsfunksjonalitet i kommersielle relasjonsdatabasesystem.

Objektorienterte databaser er brukt i geografiske informasjonssystemer (GIS). For å lagre fakta og regler er det utviklet deduktive databaser.

Løsninger for søk i fritekst kan være et alternativ til en tradisjonell database. Fritekstsøk kan utføres gjennom spesielle algoritmer på egne fritekst-databaser som inneholder ustrukturert informasjon.

Lagring av historiske data

Tradisjonelt har det vært slik at databaser oppdateres, den gamle verdien overskrives med den siste og mest gyldige verdien. Dette fører til at historikken, det vil si de historiske data, går tapt. Skal en ta vare på historikken må det bygges inn i databasemodellen, altså den aktuelle databases utforming eller struktur. Eventuelt kan en kan ha en database som aldri sletter eller overskriver data – en såkalt temporal database. Nye verdier for en attributt lenkes inn i front på kjeden av alle foregående verdier, og til alle verdier hører en tidsangivelse, et tidsstempel.

Historikk

Den tradisjonelle databasen lagrer data i form av poster. Hver post inneholder et antall felter der ett eller flere felter i kombinasjon utgjør en entydig identifikasjon – postens nøkkel. Databasene vokste ut av de postorienterte filsystemene, der alle poster var lagret i en sekvensiell fil. Databasene utviklet strukturer, eller relasjoner, mellom posttypene. Først kom en ren trestruktur også kalt hierarkisk modell med IBMs IMS. Poster i trestrukturer lar seg linearisere, det vil si at de kan lagres etter hverandre på sekvensielle medier, for eksempel magnetbånd.

Med inntog av disker som er adresserbare, kunne en ved hjelp av pekere (adresser) hoppe fra en post til en annen, og det gir muligheter for mer avanserte strukturer hvor en lenker sammen poster. Datamodeller basert på lenker kalles settbaserte modeller. Postene i en lenke danner et sett, og posten som lenken starter fra blir settets eierpost. Når samme post inngår i flere lenker dannes en nettverksstruktur. CODASYL foreslo i 1971 en standard for databasesystemer, både strukturell utforming og operasjoner, basert på en nettverkstruktur av lenkede lister.

De settbaserte (lenkede lister av poster) var omstendelige å programmere. I 1970 lanserte Edgar Frank Codd relasjonsmodellen som prioriterte enkelthet og enklere programmering, samt at den var basert på en helhetlig teoretisk modell. Problemet var at ingen ennå kunne fortelle hvordan systemet kunne realiseres i praksis slik at en oppnådde akseptabel kapasitet.

1970-årene var preget av at operative databaser var realisert av databasesystemer basert på settmodellen, enten trestrukturert modell eller nettverksmodellen (CODASYL-modellen). Forskningsmiljøene prøvde å finne løsninger på hvordan relasjonsmodellen kunne realiseres for praktisk bruk. Blant annet ble det bygget flere databasemaskiner med spesialisert maskinvare.

Fra slutten av 1970-årene ble relasjonsdatabasesystemer mest vanlig, typisk i en klient-/tjenerarkitektur. Dette ga rom for at flere (klient-)programmer kunne aksessere samme databasesystem (tjener) over et datanett. Relasjonsdatabaser har overlevd teknologisk ved at både hardvare, fysisk lagringsmedium og datakommunikasjon har blitt stadig billigere og raskere. Dette inkluderer ulike distribuerte løsninger for både prosessering (ytelse) og lagring av data. I tillegg har kommersielle aktører sørget for å optimalisere og tilpasse sine databasesystemer etter hva kundene / markedet har etterspurt.

I 1976 ble ER (Entitets Relasjons)-modellen introdusert. Dette er en såkalt konseptuell datamodell for visualisering av databasen i form av en figur, kalt ER-diagram. ER-diagram er ikke teoretisk knyttet til relasjonsdatabase, men i praksis bruk er det vanlig at et ER-diagram viser databasens struktur. Dette letter forståelsen for databases oppbygging for utenforstående, og har derfor vært viktig for utbredelsen av spesielt relasjonsdatabase. Kommersielt finnes det verktøy som automatisk oversetter mellom ER-diagram og relasjonsdatabase. Et tidlig eksempel på et slikt verktøy var Modelator, utviklet av det norske selskapet Metodedata.

Sent på 1980-tallet og innover på 1990-tallet kom først objektorienterte datamodeller og deretter objektrelasjonsdatabase. Objektorientert tankegang ble veldig populært i denne perioden innen systemutvikling, eller programmering. Fullt ut objektorienterte databasesystemer representerer data som objekter med mulighet for å inkludere egenskaper, eller metoder, for å lagre og manipulere data i objektet. Rene objektorienterte løsninger ble, i motsetning til objektorientert programmering, ingen kommersiell suksess. Tanken er imidlertid delvis videreført som tilleggsfunksjonalitet i SQL-standarden for relasjonsdatabase.

Utover 2010-tallet kom NoSQL-databaser. Begrepet NoSQL ble første gang brukt i 2009. NoSQL adresserer behovet for å lagre store mengder data med litt struktur, semistrukturelle data, men i en friere form enn det relasjonsdatabaser legger opp til. Populariteten har kommet i kjølvannet av stordata, knyttet til dataanalyse og KI. Teknologisk har utviklingen vært mulig fordi lagringskapasitet er billig og fordi både prosessering og lagring av data kan spres utover flere maskiner i et datanett ved behov.

Les mer i Store norske leksikon

Kommentarer (2)

skrev Kjell Bratbergsengen

Bør overføres til Databaseteknologi og informasjonsgjenfinning

svarte Guro Djupvik

Det har du rett i, flyttet den nå.

Kommentarer til artikkelen blir synlig for alle. Ikke skriv inn sensitive opplysninger, for eksempel helseopplysninger. Fagansvarlig eller redaktør svarer når de kan. Det kan ta tid før du får svar.

Du må være logget inn for å kommentere.

eller registrer deg