DBMS (Databasestyringssystem)

Hvorfor oss?

Hva er et DBMS?

Et databasesystem (DBMS) er mellomvare som tillater programmerere, databaseadministratorer (DBAer), programvareapplikasjoner og sluttbrukere å lagre, organisere, få tilgang til, spørre og manipulere data i en database.

DBMSer er viktige fordi de tilbyr effektive og pålitelige mekanismer for å organisere, håndtere og bruke store mengder data, samtidig som de sikrer dataintegritet og tilbyr andre fordeler med databehandling.

I næringslivet gir databasesystemer databaseadministratorer (DBAer) en strukturert ramme som letter datadeling mellom ulike avdelinger, team og applikasjoner. DBMS gir ansatte kontrollert og organisert tilgang til data som de kan bruke til å drive innovasjon og hjelpe selskapet sitt med å opprettholde en konkurransefordel.

Historien bak databasesystemer

Historien til databasesystemer går tilbake til tidlig på 1960-tallet da datamaskiner begynte å bli brukt for databehandling. På den tiden ble konseptet vanligvis referert til som et informasjonshåndteringssystem.

Det første kommersielt tilgjengelige databasesystemet het Integrated Data Store (IDS). Det ble utviklet av Charles W. Bachman og hans team hos General Electric (GE) på slutten av 1960-tallet.

IDS var et hierarkisk DBMS som organiserte data i en tre-lignende struktur, med foreldre-barn-relasjoner mellom postene. Det tillot brukere å lagre, hente og håndtere data på en strukturert måte. IDS introduserte også konseptet med dataordbok, som definerte strukturen og relasjonene til dataene i databasen. Før IDS ble data vanligvis lagret i flate filer og det var ingen standard for hvordan filene skulle lagres, nås eller manipuleres.

Bachmans IDS ble til slutt overskygget av fremveksten av relasjonsdatabaser og Structured Query Language (SQL) på 1970-tallet. Siden den gang har DBMS-produkter og -tjenester gjennomgått kontinuerlige fremskritt som har forbedret datalagring, -henting og -håndtering.

Tidslinje: Utviklingen databasestyringssystemer 

Årstall Hendelse
1964 Utviklingen av den første databasen, et Intergrated Data Store (IDS), av Charles Bachman
1966 IBM introduserer Information Management System (IMS), et felles utviklingsprosjekt med Rockwell og Caterpillar.
1970 Edgar F. Codd introduserer den relasjonelle modellen i en artikkel med tittelen “A Relational Model of Data for Large Shared Data Banks“.
1974 Structured Query Language (SQL) blir opprettet.
1976 Peter Chen introduserer entitets-relasjonsmodellen i sin artikkel “The Entity-Relationship Model – Toward a Unified View of Data“.
1979 Oracle lanserer den første kommersielle relasjonsdatabasen som bruker SQL.
1980 IBM introduserer System R, et SQL-basert relasjonelt databasesystem.
1981 SQL/DS, det første fullfunksjonelle DBMS som kjører på personlige datamaskiner, blir lansert av IBM.
1983 IBM lanserer første versjon av DB2 for stormaskiner.
1986 Object-Oriented Database System Manifesto blir publisert, noe som gir et betydelig dytt til utviklingen av objektorienterte databaser.
1996 PostgreSQL, et av de første åpen kildekode relasjonelle databasesystemene, blir lansert.
1998 MySQL, et annet betydelig åpen kildekode RDMS, blir lansert for Windows 95 og NT.
1998 Microsoft lanserer SQL Server 7.0, en fullstendig omskriving av deres DBMS.
2000 Internettstartups omfavner XML-databaser.
2004 Begrepet “NoSQL” blir populært, noe som fører til en ny generasjon av ikke-relasjonelle, distribuerte databaser.
2006 Google publiserer en artikkel om BigTable, deres interne NoSQL-database, noe som påvirker en ny bølge av åpen kildekode NoSQL-databaser.
2012 Amazon introduserer DynamoDB, en proprietær NoSQL-database.
2013 FoundationDB, en distribuert database designet for å håndtere store mengder strukturert data, blir lansert.
2017 Google kunngjør Spanner, en globalt distribuert database.
2020-tallet Kontinuerlig utvikling og innovasjon i DBMS-teknologi, med fokus på skybaserte databaser, kantdatabaser og forbedringer i AI-integrasjon for databasehåndtering. Blokkjededatabaser blir også et signifikant interessefelt.

Database vs DBMS

Begrepene “database” og “databasesystem” brukes ofte om hverandre i uformelle samtaler. Det er sannsynligvis fordi når sluttbrukere samhandler med en database, er de ikke klar over den underliggende DBMS og dens distinkte rolle i håndtering av data. For å legge til i forvirringen, i noen tilfeller er DBMS direkte innebygd i applikasjonskoden. Dette gjør det enda mindre tydelig at et separat system er involvert. 

For å skille mellom de to begrepene og bruke dem korrekt, er det nyttig å forstå deres respektive roller og funksjonaliteter: En database er en strukturert samling av data. Databasesystemet er programvaren som utviklere, sluttbrukere og applikasjoner bruker for å samhandle med en database.

DBMS-komponenter

Kjernekomponenten i alle DBMS-er kalles database-motoren. Det er programvaren som direkte samhandler med det underliggende lagringssystemet eller filsystemet og koordinerer interaksjonene mellom modulære underkomponenter som gjør det mulig for motoren å håndtere og manipulere data i databasesystemet. Dette inkluderer moduler for:

Sikkerhetskopiering og gjenoppretting: Disse modulene håndterer operasjoner for databacksikkerhet og gjenoppretting for å beskytte mot tap av data eller systemfeil. De inkluderer mekanismer for å opprette databackups, gjenopprette data og utføre gjenopprettingsoperasjoner.

Samtidighetskontroll og transaksjonsstyring: Disse modulene håndterer samtidig tilgang til databasen av flere brukere eller applikasjoner. De håndterer låsemekanismer og sikrer datakonsistens.

Databasespråk: Denne typen modul gjør det mulig for database-motoren å behandle og tolke brukerspørringer eller kommandoer skrevet på standardspråket. Den analyserer spørrespråkets syntaks, validerer spørringen mot kataloginformasjonen og genererer en optimalisert utførelsesplan for å hente eller manipulere data som etterspurt.

Datadefinisjonsspråk (DDL): DDL-modulen lar brukere definere strukturen og organiseringen av dataene. Den inkluderer kommandoer for å opprette, endre og slette databaseobjekter som tabeller, visninger, indekser og begrensninger.

Dataordbok: Dataordboken (også kalt metadata-repositoriet) lagrer metadata om databasen, inkludert informasjon om dataens struktur, relasjoner og egenskaper. Denne modulen brukes av DBMS-motoren for å sikre datakonsistens og håndheve unike begrensninger.

Data Manipulasjonsspråk (DML): DML-modulen tilbyr kommandoer for å manipulere og hente data i databasen. Brukere kan bruke DML-uttalelser til å sette inn, oppdatere, slette og spørre etter data.

Datavarehus og forretningsintelligens: Disse modulene legger til rette for datautvinning, transformasjon og lasting fra flere kilder til et separat datavarehus. De støtter også verktøy for online analytisk prosessering (OLAP) og rapportering for forretningsintelligens.

Indeksering: De fleste DBMS-er inkluderer indekseringsmoduler for å akselerere spørreutførelse ved å redusere mengden data som må skannes.

Låsing: Låseforvalterkomponenten i en DBMS er ansvarlig for å håndtere samtidighetskontroll. Den forhindrer konflikter og opprettholder datakonsistens ved å sikre at flere brukere eller transaksjoner ikke kan endre samme data samtidig.

Logging og revisjon: DBMS-er inkluderer ofte moduler for databaseloggføring og revisjonsaktiviteter. Loggoppføringer dokumenterer endringer i databasen – inkludert innsettinger, oppdateringer og slettinger – samt systemhendelser som sikkerhetskopier og gjenopprettinger. Revisjon innebærer overvåking og gjennomgang av disse loggene for å spore brukerhandlinger, opprettholde dataintegritet og hjelpe til med å håndheve overholdelse av sikkerhetspolitikker.

Behandling av spørringer: Spørreprosessoren mottar og tolker brukerspørringer, konverterer dem til en optimalisert utførelsesplan og samhandler med databasemotoren for å utføre spørringer effektivt. Den inkluderer undermoduler for å optimalisere spørringer som vurderer faktorer som tilgjengelige indekser, join-operasjoner og datatilgangsmetoder.

Replikering: Noen DBMS-er støtter datareplikering, som innebærer å opprette og vedlikeholde flere kopier av databasen på forskjellige steder eller på forskjellige servere. Replikering forbedrer datatilgjengelighet, feiltoleranse og ytelse. Den sikrer at hvis en kopi av databasen blir utilgjengelig, kan dataene fortsatt hentes fra en annen kopi.

Sikkerhet og autorisasjon: Sikkerhets- og autorisasjonsmodulene kontrollerer brukertilgang til databasen og sikrer datavern og integritet. De håndterer autentisering, brukeradministrasjon og implementerer prinsippet om minst privilegium (PoLP) tilgangskontrollmekanismer basert på brukerroller og jobbkrav.

Lagring: Databasemotoren i en DBMS kommuniserer med en lagringsmotor for å håndtere fysisk datalagring. Lagringsmotoren er ansvarlig for å håndtere lavnivådetaljene om hvordan data lagres og tilgås, mens databasemotoren koordinerer og orkestrerer disse handlingene for å optimalisere den generelle funksjonen til databasestyringssystemet.

Brukergrensesnitt: Disse modulene tilbyr brukergrensesnitt som lar programmerere, databaseadministratorer og sluttbrukere samhandle med databasen. Dette kan inkludere kommandolinjegrensesnitt (CLI), grafiske brukergrensesnitt (GUI) eller applikasjonsprogrammeringsgrensesnitt (APIer) for programvareintegrasjon.

Brukerpolitikk: Brukerpolitikk definerer og håndhever tilgangskontroller og interne sikkerhetspolitikker. De spesifiserer tillatelser, roller og privilegier, og styrer hvordan brukere kan samhandle med en database.

RDBMS vs. DBMS

Et relasjonelt databasestyringssystem (RDBMS) er et type databasestyringssystem. Alle RDBMS-er er DBMS-er, men ikke alle databasestyringssystemer er relasjonelle databasestyringssystemer.

DBMS RDBMS
Forskjellige typer kan brukes til å håndtere ulike typer databasemodeller. Kan kun håndtere den relasjonelle databasemodellen.
Forskjellige typer kan lagre data i forskjellige strukturer. Lagrer alltid data i tabeller med rader og kolonner.
Forskjellige typer kan enten håndheve dataintegritet automatisk eller ikke. Håndhever automatisk dataintegritet gjennom begrensninger som primærnøkkel, unik nøkkel og fremmednøkkel.
Forskjellige typer kan bruke forskjellige språk eller teknikker for datamanipulering. Bruker alltid SQL (Structured Query Language)

Typer databestyringssystemer

Frem til århundreskiftet ble databasestyringssystemer klassifisert som enten relasjonelle eller ikke-relasjonelle, avhengig av deres struktur og bruksområder. Hvis DBMS lagret data i tabeller, ble det referert til som et relasjonelt DBMS (RDBMS). Hvis det ikke lagret data i tabeller, ble det referert til som et NoSQL eller ikke-relasjonelt DBMS.

I dag blir databasestyringssystemer fortsatt kategorisert som enten RDBMS eller ikke-RDBMS, men de blir også klassifisert etter de unike fordelene de tilbyr. Typer DBMS inkluderer:

Skybaserte Databasestyringssystemer – Sky-DBMS-er som Amazon Aurora er designet for å håndtere distribuert data lagret i en skytilbyders fjerndata-sentre.

Kolonnebaserte Databasestyringssystemer – Kolonnebaserte DBMS-er som Apache Cassandra returnerer spørringer raskere ved å lagre data i kolonner i stedet for rader. Dette skjemaet gjør det lettere for dataanalyse og business intelligence-applikasjoner å jobbe med store datasett.

Distribuerte Databasestyringssystemer – DDBMS-funksjonaliteter som de funnet i Apache Hadoop-økosystemet er designet for å sikre dataintegritet for logisk relaterte databaser på flere steder eller databehandlingsmiljøer.

Graf Databasestyringssystemer – Disse systemene er designet for å støtte graf-databaser som lagrer relasjoner på individuelt oppføringsnivå. Graf-DBMS-er som Neo4j er ideelle for å håndtere data med sammenkoblede relasjoner, som sosiale mediedata.

Hierarkiske Databasestyringssystemer – Hierarkiske styringssystemer er designet for å støtte databaser organisert i forelder-barn-relasjoner. Denne typen DBMS har sine røtter i hovedramme databehandling, og bruken i dag er begrenset.

HTAP Databasestyringssystemer – Hybrid transaksjons-/analytiske behandlingssystemer er designet for å støtte blandede arbeidsbelastninger for transaksjons- og analysedata. Tradisjonelle databasesystemer har ofte separate systemer for online transaksjonsbehandling (OLTP) og online analytisk behandling (OLAP). HTAP-styringssystemer som SAP HANA og CockroachDB tilbyr en samlet plattform som kan håndtere begge typer oppgaver samtidig.

In-memory Databasestyringssystemer – In-memory styringssystemer er designet for å redusere latens ved å bruke hovedminne for datalagring og -håndtering. Volt Active Data og andre IMDBMS-er gjør datagjenfinning betydelig raskere og forbedrer den totale systemytelsen.

Objektorienterte databasestyringssystemer (OODBMS) – db4o er ett eksempel på denne typen DBMS. OODBMS-er er designet for å håndtere komplekse datastrukturer som lagringsobjekter.

NewSQL Databasestyringssystemer – NewSQL DBMS-er som PostgreSQL tilbyr skalering- og ytelsesfordelene til NoSQL-databaser samtidig som de beholder ACID-egenskapene til tradisjonelle relasjonelle databaser. Denne typen DBMS er designet for storskala distribuerte miljøer og kan håndtere høytransaksjonsarbeidsbelastninger.

Tidsseriedatabasestyringssystemer — Tidsserie-DBMS-er som InfluxDB optimaliserer lagring, gjenfinning og analyse av tidsstemplet data. De blir ofte brukt til å støtte finansanalyse og Internett-ting (IoT) overvåkningssystemer.

Velkjente databasesystemer

Noen eksempler på velkjente DBMSer inkluderer:

Microsoft Access logo Access – et lettvekts relasjonelt databasehåndteringssystem (RDMS) inkludert i Microsoft Office og Office 365.
Amazon RDS logo Amazon RDS – et skybasert DBMS som tilbyr motorer for håndtering av MySQL, Oracle, SQL Server, PostgreSQL og Amazon Aurora databaser.
Apache Cassandra logo Apache Cassandra – et åpen kildekode distribuert databasehåndteringssystem kjent for å kunne håndtere massive mengder data.
Filemaker logo Filemaker – et lavkode/ingen kode (LCNC) relasjonelt DBMS.
Google Cloud Spanner logo Google Cloud Spanner – en globalt distribuert, horisontalt skalerbar og strengt konsistent relasjonell databasetjeneste tilbudt av Google Cloud.
IBM DB2 logo IBM Db2 – en familie av relasjonelle databasehåndteringssystemer utviklet av IBM som tilbyr ulike utgaver for forskjellige miljøer og arbeidsbelastninger.
MariaDB logo MariaDB – en åpen kildekode relasjonell database, en forgrening av MySQL.
Microsoft Azure SQL Database logo Microsoft Azure SQL Database – en skybasert relasjonell databasetjeneste levert av Microsoft Azure som tilbyr fullt administrerte SQL databaser..
MongoDB logo MongoDB – Et populært NoSQL databasehåndteringssystem som bruker et dokumentorientert skjema for å gi høy skalerbarhet og fleksibilitet.
MySQL logo MySQL – et åpen kildekode relasjonelt databasehåndteringssystem (RDBMS) eid av Oracle.
Oracle RDMS logo Oracle – et proprietært RDMS optimalisert for hybrid skyarkitekturer.
PostgreSQL logo PostgreSQL – et åpen kildekode relasjonelt databasehåndteringssystem kjent for sin robusthet, skalerbarhet og omfattende funksjonssett.
SAP HANA logo SAP HANA – et in-memory, kolonneorientert RDBMS optimalisert for sanntids datainnhenting og høytytende analyser
SQL Server logo SQL Server – et bedriftsnivå relasjonelt databasehåndteringssystem fra Microsoft som er i stand til å håndtere ekstremt store mengder data og databaseforespørsler.
SQLite logo SQLite – et lettvekts, filbasert relasjonelt databaseprogram som er mye brukt i innebygde systemer og mobilapplikasjoner.
Teradata logo Teradata – aen kraftig SQL-motor som tilbyr skalerbare løsninger for håndtering og analyse av store mengder data.

Fordeler med å bruke DBMS

Databasehåndteringssystemer (DBMSer) er spesielt viktige i situasjoner der flere brukere eller applikasjoner samhandler med de samme databasene samtidig. DBMSen beskytter mot konflikter og feil med mekanismer for samtidighetskontroll som sikrer at dataintegriteten forblir intakt, selv i scenarioer med høy trafikk.

En annen fordel er at databasehåndteringssystemer tilbyr et bredt spekter av sikkerhetsfunksjoner, mekanismer og funksjonaliteter. Administratorer kan definere regler for tilgangskontroll, tildele brukerroller og spesifisere tillatelser for å sikre at kun autoriserte personer kan gå inn i, få tilgang til og manipulere data.

Fordi DBMSer gir sporloggføring og loggingsmuligheter for å spore og overvåke databruk og modifikasjoner, er de nyttige verktøy for overholdelse av regler.

For eksempel kan en DBMS hjelpe administratorer med å håndtere datalivssyklusstyring ved å implementere retningslinjer for dataoppbevaring, arkivering og eventuell disposisjon. En DBMS kan også hjelpe med å håndheve personvernkontroller ved å tilby mekanismer som anonymiserer eller krypterer sensitiv data.

Utfordringer med databasehåndteringssystemer

Databasehåndteringssystemer (DBMS) har transformert hvordan både små og store bedrifter organiserer og administrerer data. Men, å implementere og håndtere et bedriftsorientert DBMS kan være komplekst, særlig når det skal integreres med andre systemer som Enterprise Resource Planning (ERP) og Customer Relationship Management (CRM).

I tillegg kan det være kostbart å innføre et nytt DBMS. Selv bedrifter av middels størrelse må ofte ansette eller kontraktere en erfaren databaseadministrator for å sikre korrekt konfigurasjon, vedlikehold og optimalisering av deres DBMS. Utgifter som lisensavgifter, maskinvareinfrastruktur, programvareoppdateringer og vedvarende vedlikeholdskostnader kan belaste budsjettene betydelig, noe som er en spesiell utfordring for mindre organisasjoner.

Fremtiden for DBMS

Dagens DBMSer inkorporerer banebrytende teknologier som kunstig intelligens (AI), maskinlæring (ML) og blokkjede for å takle utfordringer med store data, og hjelpe organisasjoner med å overholde relevante forskrifter og standarder for datalagring.

  • DBMSer utstyrt med AI og ML-kapasiteter kan automatisere oppgaver som spørringsoptimalisering, dataindeksering og deteksjon av anomalier. Intelligente databasehåndteringssystemer kan lære av datamønstre, tilpasse seg endrede arbeidsbelastninger og optimalisere ytelse autonomt.
  • Databaser som er muliggjort av blokkjeder kan tilby uforanderlig, transparent datalagring og muliggjøre sikre, reviderbare transaksjoner. Denne typen databasehåndteringssystem eliminerer behovet for sentrale myndigheter samtidig som det styrker dataintegriteten. Dette gjør dem ideelle for industrier som finans, forsyningskjeder og helsevesen, hvor risikoene og konsekvensene av datamanipulering er betydelige.
  • DBMSer med innebygde strømbehandlingskapasiteter blir avgjørende for brukstilfeller som sanntidsanalyse, svindeldeteksjon og personlig tilpassede kundeopplevelser. Med fremveksten av Internettet for Ting (IoT) og strømmende datakilder, må DBMSer håndtere sanntids databehandling enda mer effektivt.

Relaterte begreper

Margaret Rouse
Teknologiekspert

Margaret Rouse er en prisbelønt teknisk skribent og lærer som er kjent for sin evne til å forklare kompliserte tekniske emner for et ikke-teknisk, forretningsmessig publikum. I løpet av de siste tjue årene har forklaringene hennes blitt publisert på TechTarget-nettsteder, og hun har blitt sitert som en autoritet i artikler i New York Times, Time Magazine, USA Today, ZDNet, PC Magazine og Discovery Magazine. Margarets idé om en morsom dag er å hjelpe IT- og forretningsfolk med å lære å snakke hverandres høyt spesialiserte språk. Hvis du har forslag til en ny definisjon eller ønsker å forbedre en teknisk forklaring,…