Dokumentorientert database

En dokumentorientert database eller et dokumentlager er et dataprogram og datalagringssystem designet for lagring, henting og håndtering av semistrukturerte data, også kalt dokumentorientert informasjon.

Dokumentorienterte databaser er en av hovedkategoriene av NoSQL databaser, og populariteten til begrepet "dokumentorientert database" har vokst sammen med bruken av begrepet NoSQL. XML-databaser er en underklasse av dokumentorienterte databaser som er optimalisert for å jobbe med XML-dokumenter. Grafdatabaser er lignende, men legger i tillegg til relasjoner hvilket gjør det mulig å koble dokumenter for rask traversering.

Dokumentorienterte databaser er en underklasse av nøkkel-verdi-databaser, et annet konsept fra NoSQL-databaser. Forskjellen ligger i måten dataene behandles på: I et nøkkelverdilager anses dataene å være ugjennomsiktige for selve databaseprogramvaren, mens i et dokumentorientert system er man avhengig av intern struktur i dokumentet for å trekke ut metadata som databasemotoren bruker for videre optimalisering. Selv om forskjellen ofte er ubetydelig på grunn av verktøyene i systemene er et dokumentlager konseptuelt designet for å tilby en rikere opplevelse med moderne programmeringsteknikker.

Dokumentdatabaser (og nøkkel-verdi-lagre generelt) står i sterk kontrast til det tradisjonelle relasjonsdatabaser. Relasjonsdatabaser lagrer vanligvis data i separate tabeller som er definerte av programmereren, og et enkelt objekt kan være spredt over flere tabeller. Dokumentdatabaser lagrer all informasjon for et gitt objekt i en enkelt forekomst i databasen, og hvert lagret objekt kan være forskjellig fra alle andre. Dette eliminerer behovet for objekt-relasjonell avbilding når man laster data inn i databasen.

Dokumenter 
Forestillingen om en dokument er det sentrale konseptet i dokumentorientert databaser. Dokumentorienterte databaser antar generelt at dokumenter innkapsler og koder data (eller informasjon) i noen standard formater eller kodinger. Kodinger i bruk inkluderer XML, YAML, JSON, samt noen binære former som BSON.

Dokumenter i et dokumentlager tilsvarer omtrent programmeringskonseptet objekt. De er ikke pålagt å følge et standardskjema, og vil heller ikke ha alle de samme seksjonene, delene eller nøklene. Vanligvis har programmer som bruker objekter mange forskjellige typer objekter, og disse objektene har ofte mange valgfrie felter. Hvert objekt, selv de som er i samme klasse, kan se veldig ulike ut. Dokumentlagre er like ved at de tillater forskjellige typer dokumenter i et enkelt lager, lar felter være valgfrie, og ofte lar dem kodes ved hjelp av forskjellige tegnkodingssystemer.

Se også 
 Databaseteori
 Datahierarki
 Dataanalyse
 Fulltekstsøk
 Hovedminnedatabase
 Internet Message Access Protocol (IMAP)
 Maskinlesbart dokument
 Multimodell-database
 NoSQL
 Objektdatabase
 Online database
 Publiseringssystem
 Sanntidsdatabase
 Relasjonsdatabase

Referanser 

Databaser
Dataanalyse
Databasehåndteringssystem
Dataadministrasjon