Opprett, les, oppdater og slett

I programmering er opprett, les, oppdater og slett (ofte referert til som CRUD, fra engelsk: create, read, update and delete) de fire grunnleggende operasjonene for vedvarende lagring av data.

Historie 
Begrepet ble sannsynligvis først popularisert av James Martin i sin bok fra 1983 Managing the data-base environment.

Konsept 
Data kan legges inn på et område på en lagringsmekanisme. 

 Den grunnleggende egenskapen til en lagringslokasjon er at innholdet både er lesbart og oppdaterbart
 Før et lagringssted kan leses eller oppdateres må det bli opprettet, som vil si allokert og initialisert med innhold
 På et senere tidspunkt kan det hende at lagringsstedet må ødelegges, som vil si at det er ferdigstilt og deallokert

Sammen utgjør disse fire operasjonene de grunnleggende operasjonene for lagringsadministrasjon kjent som CRUD: create, read, update, delete.

Database 
Forkortelsen CRUD refererer til hovedoperasjonene som implementeres av databaser, og hver av bokstavene i akronymet kan avbildes til standard SQL-kommandoer:

Selv om relasjonsdatabaser er vanlige å bruke som et vedvarende lag i programvare finnes det også mange andre vedvarende lag. CRUD-funksjonalitet kan for eksempel implementeres med dokumentdatabaser, objektdatabaser, XML-databaser, tekstfiler eller binære filer. 

Noen stordata-systemer implementerer ikke oppdatering, men har i stedet bare tidsstemplet innsetting (journalføring) og lagrer en helt ny versjon av objektet hver gang.

RESTful API-er 
Forkortelsen CRUD brukes også om RESTful API-er, og kan avbildes til HTTP-metoder på følgende måte:

CRUD-operasjoner i HTTP samvarer med metodene GET (for read), PUT (for create og update), POST (for create, hvis man ikke har id eller uuid) og DELETE (delete) ettersom de har semantikk for lagringsadministrasjon, hvilket betyr at de lar brukeragenter direkte manipulere tilstandene til målressurser. POST-metoden derimot er en prosessoperasjon som har målressurs-spesifikk semantikk som vanligvis overskrider omfanget av CRUD-operasjoner.

Se også 
 Atomisk, konsistent, isolert, durabel (ACID)
 Innputt/utputt (I/O)
 Representational state transfer (REST)
 Datamanipuleringsspråk (DML)

Referanser 

Programvareutvikling