# Persistència (informàtica)

En informàtica, la persistència es refereix a la pràctica que fa que les dades d'un programa continuïn existint emmagatzemades més enllà de la finalització del procés o aplicatiu que les ha creades. Sense persistència, les dades quedarien eliminades des del moment en què el procés que les gestiona deixa de referenciar-les o aquestes desapareixen del suport on es guardaven, com pot ser la memòria o un fitxer temporal d'un perifèric.

## Programació

En programació, la persistència es refereix concretament a la capacitat de preservar estructures de dades entre execucions diferents. Això s'aconsegueix a la pràctica guardant les dades en dispositius d'emmagatzemament no volàtils : sistema de fitxers, una base de dades relacional o una base de dades orientada a objectes. Els patrons de disseny que resolen aquest problema són: persistència basada en el contenidor, persistència basada en el component i el model Data Access Object. Quan foren presentats, la idea era que la persistència fos una propietat intrínseca de les dades, en contraposició a la pràctica habitual on la dada és llegida i escrita de i al disc usant verbs imperatius en un llenguatge de programació. Aquest concepte ha evolucionat juntament amb els sistemes gestors de bases de dades i actualment és el programa qui comprova que les transaccions són correctes i se n'encarreguen de fer persistent tot allò que ha estat modificat. Exemples de persistència són: l'ús de la serialització Java per emmagatzemar objectes Java al disc, usant Java EE per guardar Enterprise JavaBeans en bases de dades relacionals.

### Persistència incorporada a una sistema operatiu o llenguatge de programació

La persistència ortogonal es refereix al suport ofert per un llenguatge de programació o sistema operatiu que habilita l'estat dels programes escrits en un llenguatge de programació persistent, o del sistema operatiu en ell mateix, per romandre persistent inclús després d'una caiguda o apagada inesperada. En tornar, l'ordinador continua al mateix punt de l'apagada. Els sistemes operatius que inclouen aquesta funcionalitat són:
* KeyKOS
* EROS, successor de KeyKOS
* Coyotos
* CapROS, revisions d'EROS
* Multics amb el seu emmagatzematge de nivell simple
Els llenguatges de programació que inclouen persitència ortogonal són:
* PS-Algol
* Smalltalk i Lisp, usant imatge del sistema

### Interfície d'usuari

La majoria d'aplicacions inclouen persistència com a funcionalitat bàsica sense la qual no poden ser considerades tancades. En aquest context, les operacions de persistència se separen en categories ben diferenciades, basades en els tipus de les dades a emmagatzemar. Les categories són:
* capacitat per afegir noves entrades (objectes o registres)
* recuperació d'entrades
* modificació d'entrades
* eliminació d'entrades
A més, encara que no siguin funcionalitats bàsiques, les operacions següents acostumen a estar associades a la persistència quan cal manejar un nombre elevat d'entrades:
* cerca
* ordenació
* filtratge

## Dispositius d'emmagatzemament

L'emmagatzamament persistent (Persistent Storage o PSD, en anglès) és la capacitat d'un dispositiu de mantenir les dades inclús quan està apagat. Els anomenem dispositius dispositius de memòria no volàtil, per exemple, el disc dur, llapis de memòria o CD.

## Vegeu també

* CRUD
* Hibernate
* Java Persistence API
Viccionari