Hopp over navigasjon

Hva er databaser?

Definisjoner, typer og eksempler på databaser

Hva er databaser?

I sin mest grunnleggende definisjon er en database en hvilken som helst samling av sammenhengende informasjon. Når du skriver en handleliste på et papir, oppretter du en liten analog database. Men hva er en database innen informatikk? I den sammenhengen defineres «database» som en samling informasjon som er lagret som data på et datasystem, som for eksempel varelageret i den lokale matbutikken.

Hva brukes databaser til?

Databaser brukes til å lagre og organisere data, slik administrasjon og tilgang blir enklere. Når en samling av data vokser og blir mer kompleks, blir det vanskeligere å holde dataene organiserte, tilgjengelige og sikre. For å hjelpe til med det bruker du systemer for databaseadministrasjon (DBMS), som inkluderer et lag med administrasjonsverktøy.

Hva er data?

Data viser til all informasjon som er hentet og lagret om en enkelt person, et sted, en ting eller et objekt – kalt en enhet – samt attributtene til den enheten.

Hvis du for eksempel henter og lagrer informasjon om lokale restauranter, er hver restaurant en enhet, og navnet, adressen og åpningstiden er attributtene til den enheten. All informasjonen du samler inn og lagrer om favorittrestaurantene dine, er data.

Typer databaser

Databaser er bredt gruppert i relasjonelle og ikke-relasjonelle databaser. Relasjonsdatabaser er høyt strukturerte og forstår et programmeringsspråk kalt Structured Query Language (SQL). Ikke-relasjonelle databaser er svært forskjellige, og støtter en rekke datastrukturer. Siden mange ikke-relasjonelle databaser ikke bruker SQL, kalles de ofte NoSQL-databaser.

Typer datastrukturer

Tabellstrukturer er relasjonelle databasestrukturer som organiserer data i rader og kolonner – rader inneholder enheter mens kolonner inneholder enhetsattributter. Brede tabeller eller brede kolonnelagre bruker sparsomme kolonner med tomme attributter for å øke det totale antallet kolonner du kan ha i tabellen. Fordi noen mellomrom er tomme, er brede tabeller et eksempel på en ikke-relasjonell databasestruktur.

Lineære strukturer organiserer elementer i en sekvens.

Matrise

Koblet liste

Binært tre

Trestrukturer organiserer elementer i en hierarkisk database med noder som stammer fra en rotnode i over- og underordnede relasjoner.

Graf

Grafstrukturer organiserer elementer i et ikke-hierarkisk nettverk av noder med komplekse relasjoner til hverandre.

Hash-tabell

Hash-baserte strukturer tilordner nøkler til verdier ved hjelp av hash-funksjoner som tilknytter relaterte data ved å tildele indekser til hash-tabeller.

Dokumentorienterte databaser

Dokumentorienterte databaser organiserer mengder av informasjon om en enhet i et enkelt objekt (dokumentet). Dette er atskilt fra andre objekter. Objekter trenger ikke å tilordnes i forhold til hverandre, og et enkeltobjekt kan redigeres uten å påvirke andre objekter.

Relasjonsdatabaser

I den vanligste typen relasjonsdatabase er data organisert i tabeller som inneholder informasjon om hver enhet og representerer forhåndsdefinerte kategorier gjennom rader og kolonner. Disse strukturerte dataene er både effektive og fleksible å få tilgang til.

Eksempler på relasjonsdatabaser inkluderer SQL Server, Azure SQL, MySQL, PostgreSQL og MariaDB.

Ikke-relasjonelle databaser

Ikke-relasjonelle databaser lagrer ustrukturerte eller halvstrukturerte data. De bruker ikke tabeller med kolonner og rader slik relasjonsdatabaser gjør. I stedet bruker de en lagringsmodell som er optimalisert for de spesifikke kravene til typen data som lagres. Ikke-relasjonelle databaser gjør det mulig å få tilgang til, oppdatere og raskt analysere større sett med distribuerte data.

Eksempler på ikke-relasjonelle databaser inkluderer MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redis og Neo4j.

Noen ikke-relasjonelle databaser blir referert til som NoSQL-databaser. NoSQL viser til datalager som ikke bruker SQL eller ikke bare bruker SQL til spørringer. NoSQL-databaser bruker i stedet andre programmeringsspråk og konstrueringer til å spørre dataene. Mange NoSQL-databaser støtter SQL-kompatible spørringer, men måten de utfører disse spørringene på er vanligvis forskjellig fra måten en tradisjonell relasjonsdatabase ville utføre den samme SQL-spørringen på.

Én type ikke-relasjonell database, en objektdatabase, bruker objektorientert programmering. Objekter er kodet med en tilstand (faktiske data) som er lagret i et felt eller en variabel og en oppførsel som vises gjennom en metode eller funksjon. Objekter kan holdes i vedvarende lagring for alltid og leses og tilordnes direkte uten API eller verktøy, noe som gir raskere tilgang til data og bedre ytelse. Objektdatabaser er imidlertid ikke like populære som andre databasetyper og kan være utfordrende å støtte.

Minneinterne databaser og bufre

Alle dataene i en minneintern database er lagret i datamaskinens Random Access Memory (RAM). Når du spør eller oppdaterer denne typen databaser, får du tilgang til hovedminnet direkte. Det er ingen disk involvert. Dataene lastes raskt fordi tilgang til hovedminnet (som er i nærheten av prosessoren på hovedkortet) er mye raskere enn tilgang til en disk.

Minneinterne databaser brukes ofte til å lagre kopier av ofte tilgjengelig informasjon, for eksempel priser eller beholdningsdata. Dette er kjent som bufring. Når du bufrer data lagrer du en kopi av dem på en midlertidig plassering, slik at de lastes raskere neste gang du ber om dem. Få mer informasjon om bufring.

Eksempler på databaser

Databaser kan virke som usynlige mysterier, men de fleste av oss kommuniserer med dem hver dag. Her er noen vanlige eksempler på relasjonsdatabaser, NoSQL-databaser og minneinterne databaser:

Økonomiske transaksjoner

Banker bruker databaser til å holde oversikt over kundetransaksjoner – alt fra saldohenvendelser til overføringer mellom kontoer. Disse transaksjonene må skje nesten umiddelbart, og dataene fra store mengder transaksjoner må alltid være oppdaterte. Til dette bruker banker nettbaserte transaksjonsbehandlingssystemer som er bygget med relasjonsdatabaser. De kan håndtere et stort antall kunder, hyppige dataendringer fra transaksjoner og raske svartider.

E-handelskataloger

Hvis du har et e-handelsnettsted, inneholder katalogen enkeltprodukter med hvert sitt utvalg av attributter. En dokumentorientert database, som er et eksempel på en ikke-relasjonell database, bruker enkeltdokumenter til å beskrive alle attributtene til et enkelt produkt. Du kan endre attributtene i dokumentet uten å påvirke noen av de andre produktene dine. Minneinterne databaser brukes ofte til å bufre e-handelsdata som er ofte tilgjengelige, som lager og priser. Dette for å øke datahentingen og redusere belastningen på databasen.

Sosiale nettverk

Når du blir med i et sosialt nettverk, blir informasjonen din lagt til i en ikke-relasjonell database for alle som bruker det nettverket. Når du kommer i kontakt med andre mennesker i det nettverket, blir du en del av en sosial graf. Dette er grunnen til at du kan se en filtrert liste over vennene dine eller profesjonelle forbindelser og oppdage nye mennesker som disse vennene og forbindelsene kjenner til.

Tilpassede resultater

Ikke-relasjonelle databaser driver nettbasert tilpassing som er blitt så utbredt at du ikke engang merker det. Hvis du bestiller en flyreise via et reisenettsted, vil du også se alternativer for å bestille hotell og leiebiler. Nettstedets database inneholder et vell av ustrukturert informasjon som flyvningsdetaljer, reisepreferanser, tidligere bil- eller hotellbestillinger. Dette brukes til å gi deg tilpassede forslag for å spare deg for tid, penger eller krefter. Minneinterne databaser brukes på samme måte som en øktlagring for effektivt å bevare midlertidige brukerdata, for eksempel søkeinnstillinger eller handlekurv, mens du bruker programmet.

Forretningsanalyseverktøy

Når organisasjoner ønsker å hente innsikt fra sine egne data, hjelper relasjonsdatabaser dem med å administrere analysene. Teknisk støtte kan for eksempel spore kundeproblemer i en rekke dimensjoner, inkludert problemtype, tiden det tar å løse problemet og kundetilfredshet. En relasjonsdatabase som bruker en tabellstruktur organiserer kundeproblemdata ved bruk av bare to dimensjoner om gangen, men med et analytisk behandlingssystem på nettet kan teknisk støtte se på mer enn en tabell om gangen. Det gjør at flerdimensjonal analyse kan behandle store mengder data ved høye hastigheter.

Systemer for databaseadministrasjon

Databaseadministratorer bruker systemer for databaseadministrasjon (DBMS) til å kontrollere data – spesielt når de jobber med stordata. Stordata viser til store mengder strukturerte og ustrukturerte data som ofte mottas av systemet i sanntid eller nesten i sanntid. DBMS hjelper også til å administrere data som brukes på tvers av flere programmer, eller data som ligger på flere steder.

Ulike administrasjonssystemer tilbyr forskjellige nivåer av organisering, skalerbarhet og program. I tillegg til typen data du vil organisere og hvordan du vil få tilgang til dem, avhenger DBMS du også av hvor dataene ligger, hvilken type arkitektur databasen din bruker og hvordan du planlegger å skalere.

Er dataene dine lokale, i skyen eller begge deler?

I lokale databaser ligger dataene på privat maskinvare på stedet (ofte kalt en privat sky). Hvis de vil legge til datakapasitet, må databaseadministratorer enten sørge for at serverne på stedet har nok plass, eller utvide infrastrukturen med ny maskinvare for å skape plass.

I skybaserte databaser ligger strukturerte eller ustrukturerte data på en privat, offentlig eller hybrid plattform for databehandling i skyen (for eksempel en plattform som kombinerer privat og offentlig skylagring). Fordi skydatabaser er utformet for et virtualisert miljø, er de både svært skalerbare og tilgjengelige. Fordi du ikke trenger å kjøpe så mye maskinvare bidrar de også til å redusere kostnadene, og du betaler bare for lagringsplassen du bruker.

Er databasearkitekturen din sentralisert, distribuert eller samlet?

I en sentralisert database ligger alle dataene i ett system, på ett sted. Dette ene systemet er tilgangspunktet for alle brukere.

En distribuert database kan omfatte både relasjonelle og ikke-relasjonelle databasetyper. I distribuerte databaser lagres dataene på flere fysiske steder, enten på flere lokale datamaskiner eller spredt over et nettverk av sammenkoblede datamaskiner.

I en samlet database er flere forskjellige databaser som kjører på uavhengige servere samlet i ett stort objekt. En blokkjede er en type samlet database som brukes til å administrere økonomiske hovedbøker og andre transaksjonsposter på en sikker måte.

Vil du vokse med dataene dine ved å skalere opp eller skalere ut?

Å skalere opp (eller ned), også kalt vertikal skalering, er prosessen med å legge til ressurser, for eksempel minne eller kraftigere CPU-er, i en eksisterende server.

Skalering ut (eller inn), også kalt horisontal skalering, legger til flere maskiner i ressurspuljen din.

Å skalere horisontalt i stedet for å skalere vertikalt forlenger livssyklusen til eksisterende maskinvare, frigjør deg til å oppgradere uten leverandørinnlåsing, reduserer kostnadene og skaper langsiktig potensial for fleksibilitet.

Azure-databaser

Forenkle dataoperasjonene dine med totaladministrerte databaser som automatiserer skalerbarhet, tilgjengelighet og sikkerhet. Velg mellom relasjonelle, NoSQL-baserte og minneinterne databaser som omfatter proprietære motorer og motorer med åpen kildekode.

Bli kjent med Azure SQL-serien med databaser

Foren SQL-porteføljen din uten at det går på bekostning av kompatibilitet. Migrer, moderniser og rull ut programmer på din måte, fra kant til sky, ved hjelp av kjent SQL Server-teknologi.

Skaler uten frykt med Azure Database for PostgreSQL

Azure Database for PostgreSQL hjelper deg med å skalere arbeidsbelastningen raskt og trygt med høy tilgjengelighet, ytelsesoptimalisering drevet av kunstig intelligens og avansert sikkerhet.

Få mer informasjon om Azure PostgreSQL

Bygg apper med høy ytelse med Azure Cosmos DB

Azure Cosmos DB er en totaladministrert NoSQL-database med åpne API-er og garantert hastighet i enhver skala.

Les mer om Azure Cosmos DB

Håndter høy trafikk effektivt med Azure Cache for Redis

Azure Cache for Redis hjelper deg med å håndtere tusenvis av samtidige brukere med umiddelbar hastighet ved å legge til et hurtigbufret lag i appens arkitektur.

Les mer om Azure Cache for Redis
Kan vi hjelpe deg?