Persistenz (Informatik)


Persistenz (Informatik)

Persistenz ist in der Informatik der Begriff, der die Fähigkeit bezeichnet, Daten (oder Objekte) in nichtflüchtigen Speichermedien wie Dateisystemen oder Datenbanken zu speichern. Darüber hinaus wird der Begriff im Zusammenhang mit eindeutigen und dauerhaften Identifikatoren digitaler Objekte verwendet, siehe PURL, DOI, URN.

„Persistent“ wird als ein Synonym für „nichtflüchtig“ verwendet, was bedeutet, dass die Daten auch nach Beenden des Programms (gegebenenfalls auch bei unvorhergesehenem Beenden, z. B. bei Stromausfall) vorhanden (gespeichert) bleiben, und bei erneutem Aufruf des Programms wieder rekonstruiert und angezeigt werden können.[1]

Daten, die diese Fähigkeit nicht besitzen, existieren nur im Hauptspeicher des Computers und gehen verloren, sobald das Programm endet, von dem sie angelegt wurden. Solche „flüchtigen“ Daten werden transient genannt, sie sind gepuffert.

Unter einer persistenten Verbindung ist eine andauernde, anhaltende Verbindung zu verstehen, die kurzzeitige Unterbrechungen überdauert, ohne dass sich ihr Informationsinhalt ändert.

Zwei verschiedene Lösungsansätze bieten die Serialisierung und die objektrelationale Abbildung. Bei der Serialisierung kann das Objekt als serieller Datenstrom in ein persistentes Speichermedium geschrieben werden (z. B. durch „Java I/O Streams“). Die andere Möglichkeit ist die objektrelationale Abbildung (object-relational mapping). Diese wird durch einen sogenannten Persistenzprovider (persistence provider) realisiert. Typischerweise bieten die Datenbank-Hersteller dort eigene Implementierungen an, es gibt aber auch Open-Source Persistenzprovider (z. B. Hibernate).

Verschiedene Entwurfsmuster wie das Data Access Object unterstützen das gute Design. Sie bieten eine einheitliche Schnittstelle für verschiedene persistente Speichermedien (Dateisystem, RDBMS, Directory-Service, B2B-Service usw.).

Innerhalb eines Anwendungsservers unterscheidet man zwischen containerbasierter Persistenz (die Laufzeitumgebung übernimmt das Speichern und Wiederherstellen) und komponentenbasierter Persistenz (die Komponente muss selbst speichern und wiederherstellen). Im Beispiel Java wären für die containerbasierte Persistenz die Enterprise JavaBeans (EJBs) verantwortlich. Dabei muss ab Java Platform, Enterprise Edition 5 jede zu persistierende Klasse mit der Annotation @Entity ausgezeichnet werden.[2]

Einzelnachweise

  1. Persistenz/persistence. In: IT Wissen. DATACOM Buchverlag, abgerufen am 19. August 2008.
  2. Entity (Java EE 5). In: Java Platform Enterprise Edition, v 5.0: API Specifications. Sun Microsystems, Inc, 2007, abgerufen am 19. August 2008 (englisch).

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Persistenz — (aus lat. persistere „verharren“, allgemein: etwas mit dauerhafter Beschaffenheit oder Beharrlichkeit, das langfristige Fortbestehen einer Sache) steht für: Persistenz (Makroökonomie), in der Makroökonomie das Verharren von Arbeitslosigkeit und… …   Deutsch Wikipedia

  • Introspektion (Informatik) — In der Programmierung bedeutet Reflexion (engl. reflection) bzw. Introspektion, dass ein Programm seine eigene Struktur kennt und diese, wenn nötig, modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor… …   Deutsch Wikipedia

  • Absturz (Informatik) — Von einem Absturz im Zusammenhang mit Computern spricht man, wenn ein Programm auf unvorhergesehene Weise beendet wird oder nicht mehr in der vorhergesehenen Weise auf Interaktionen des Benutzers reagiert. Ist das abstürzende Programm Teil des… …   Deutsch Wikipedia

  • Persistent — Persistenz (aus lat. persistere „verharren“, allgemein: etwas mit dauerhafter Beschaffenheit oder Beharrlichkeit, das langfristige Fortbestehen einer Sache) steht für: Persistenz (Makroökonomie), in der Makroökonomie das Verharren von… …   Deutsch Wikipedia

  • Enterprise Java Beans — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • Entity Bean — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • Session Bean — Enterprise JavaBeans (EJB) sind standardisierte Komponenten innerhalb eines Java EE Servers (Java Enterprise Edition). Sie vereinfachen die Entwicklung komplexer mehrschichtiger verteilter Softwaresysteme mittels Java. Mit Enterprise JavaBeans… …   Deutsch Wikipedia

  • Aspekt-orientierte Programmierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • Aspektorientierung — Die Artikel Aspektorientierte Programmierung und Cross Cutting Concern überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen.… …   Deutsch Wikipedia

  • SQL-92 — SQL (das Kürzel für Structured Query Language; offizielle Aussprache [ɛskjuːˈɛl], häufig auch [ˈsiːkwəl] →SEQUEL), ist eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken. SQL ist von ANSI und ISO… …   Deutsch Wikipedia