Diskussion:Persistenz (Informatik)

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Alter Disku-Beitrag[Quelltext bearbeiten]

Also, der Begriff "Datenstrukturen" genauso wie Objekte ist hier denke ich mal falsch. Ich denke es waere von der Kategorie her besser zu sagen "Daten", denn die Struktur wie die Daten abgelegt werden haben nicht unmittelbar etwas mit dem Begriff persistenz in der Informatik zu tun (vgl. beispielsweise im Fach Ontologie wird ebenfalls von persistenz gesprochen), sondern die daten an sich die dort in diesem Speicherbereich liegen sind persistent. Man koennte faelschlicherweise annehmen, dass Daten eine gewisse Struktur haben muessen, damit sie als persistent bezeichnet werden koennen, das ist AFAIK falsch.



84.185.64.229 16:51, 6. Mär 2006 (CET)

zwei verschiedene Lösungsansätze?[Quelltext bearbeiten]

Im Artikel werden Serialisierung und das DAO als zwei verschiedene Lösungsansätze erwähnt. Klar muß sich die Anwendung nicht kümmern was DAO zur Erreichung der Persistenz macht, aber letztendlich wird die Serialisierung doch nur ausgelagert und nicht umgangen. Oder sehe ich das falsch? --jailbird 16:43, 15. Dez. 2006 (CET)[Beantworten]

Sehe ich genau so. Die Transferobjekte müssen auch beim DAO-Muster z.B. in Java das Interface 'java.io.Serializable' implementieren. --La Corona 01:27, 2. Feb. 2007 (CET)[Beantworten]

DAOs lassen sich auch ohne Serialisierung implementieren, indem nämlich die einzelnen Attribute des Objekts in unterschiedlichen Tabellenspalten gespeichert werden. Ebenso lassen sich DAOs ohne Transferobjekte implementieren (z. B. bei Verwendung lokaler Schnittstellen). Es gibt auch nicht wenige Entwickler, die die Verwendung von Transferobjekten im Sinne des klassischen J2EE-DAO-Musters mittlerweile als Anti-Pattern ansehen. Werft z. B. mal einen Blick auf die EJB-3-Spezifikation. Fazit: Es sind unterschiedliche Konzepte, die auch unabhängig voneinander existieren können, obwohl beide oft gemeinsam auftreten. --jpp ?! 13:57, 2. Feb. 2007 (CET)[Beantworten]

persistenz und programmierung[Quelltext bearbeiten]

Korrekt oder nicht? In der Programmierung bezeichnet Persistenz die Lebensdauer einer Variable. In jedem Fall wäre ein Link auf Variable#Gültigkeitsbereich von Variablen (Scope) nett. --mik81 15:31, 3. Dez. 2007 (CET)[Beantworten]

Schwer zu sagen, ob das korrekt ist oder nicht. Wer definiert das denn so? Außerdem zeigt dein Link in die Wüste (auf eine Begriffsklärungsseite). Wohin wolltest du denn zeigen? --jpp ?! 15:40, 3. Dez. 2007 (CET)[Beantworten]
Erstmal: Variable (Programmierung)#Gültigkeitsbereich von Variablen (Scope). Aussagen, die in die Richtung Lebensdauer Allgemein gehen, finden sich mit Suchmaschinen nur schwer (Die einzige gute Quelle hab ich verloren). Die Allgemeine Definition, dass Persistenz ein Synonym für Lebensdauer einer Variablen sei, ist sehr selten. --mik81 09:57, 5. Dez. 2007 (CET)[Beantworten]
Dieser Artikel behandelt aber den Begriff „Persistenz“. In Zusammenhang mit der Lebensdauer von Variablen ist mir zwar (in Java) der Begriff „transient“ begegnet, nicht aber dessen Gegenteil „persistent“. Und solange wir keinen guten Belege für die Verwendung dieses Begriffs haben, sollten wir auch nichts dazu schreiben, um uns nicht dem Vorwurf der Theoriefindung auszusetzen. --jpp ?! 10:17, 5. Dez. 2007 (CET)[Beantworten]

Eine halbwegs brauchbare Quelle: Skript aus der UNI Erlangen (nur fürs Protokoll)
Eine Integration in den Artikel halte ich für nicht unbedingt notwendig --mik81 10:58, 5. Dez. 2007 (CET)[Beantworten]

Überarbeiten[Quelltext bearbeiten]

Dauerhaft: Dateisystem/Datenbank ?[Quelltext bearbeiten]

Weder ein Dateisystemen noch eine Datenbanken sind "nichtflüchtigen Speichermedien"; nichtflüchtigen Speichermedien sind Festplatten, optische Datenträger, Flash-Chips, ...
Wie "nichtflüchtig" ist eine mySQL-Datenbank auf einer Ram-Disk (Dateisystem darf sich jeder frei aussuchen) ?
--arilou 09:36, 20. Dez. 2011 (CET)[Beantworten]

Dieser Abschnitt kann archiviert werden. arilou (Diskussion) 13:22, 29. Jan. 2021 (CET)

OOP[Quelltext bearbeiten]

Persistenz ist mitnichten ein ausschließliches OOP-Problem. In einem C-Programm gibt's keine "Objekt-Relationale Abbildung" (mangels Existenz von Objekten), keine "Laufzeitumgebung" - über "Serialisierung" und "DAO-Pattern" muss ich nochmal nachdenken, aber vermutlich gibt's zumindest zweiteres ebenfalls nicht, und trotzdem kann das Problem auch unter C gelöst werden... --arilou 09:46, 20. Dez. 2011 (CET)[Beantworten]

Dieser Abschnitt kann archiviert werden. arilou (Diskussion) 13:22, 29. Jan. 2021 (CET)

Einleitung[Quelltext bearbeiten]

"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." Ähm, das halte ich für zu-kurz-gegriffen. "Persistente Datenverwendung/-haltung" heißt nicht nur, dass ein Programm seine Daten überhaupt speichern kann. Sondern (wie im weiteren Text beschrieben), dass es sich fortwährend (selbst) darum kümmert, möglichst immer einen konsistenten Zustand mit den "fest gespeicherten" Daten zu halten. Oder griffiger: Notepad ist nicht persistent, Word wäre es (so ziemlich), wenn man den Autosafe auf "1 sec" stellt.

Im Artikel fallen nirgends die Begriffe "Inkonsistenz"/"Konsistenz" oder verwandtes.
--arilou 09:54, 20. Dez. 2011 (CET)[Beantworten]

Liegt vermutlich daran, dass der Artikel zu Beginn v.a. auf die "Persistenz-Eigenschaft von Daten" abhebt (also eine -hm- "statische Eigenschaft von Daten"), und kaum auf "Persistente Datenhaltung in einem Programm" (also eher eine "Programmierweise oder Verhaltensweise eines Programms").
--arilou 10:03, 20. Dez. 2011 (CET)[Beantworten]

Soweit ich das sehe:

Dieser Abschnitt kann archiviert werden. arilou (Diskussion) 13:22, 29. Jan. 2021 (CET)

Obj.-Relationales Mapping und Serialisierung nur Hilfsmittel[Quelltext bearbeiten]

Unter "objektrelationale Abbildung" wurde in den von mir besuchten Vorlesungen erst mal nur die Lösung verstanden, wie man (OOP) Objekt-Daten in relationale Datenbanken packt. Das kann vollkommen un-persistent geschehen.
Dass dazu bereitgestellte Frameworks das Persistenz-Problem meistens mitlösen, ist an dieser Stelle sinnvoll, ist aber kein zwingender Bestandteil der objektrel.Abbildung. Auch Serialisierung ist nur ein Hilfsmittel zur persistenten Datenhaltung, aber wer seine Objekte serialisierbar macht, hat damit noch nicht das Persistenz-Problem gelöst...
--arilou 10:00, 20. Dez. 2011 (CET)[Beantworten]

Um ein Programm mit persistenter Datenhaltung zu versehen, ist weder Serialisierung noch objRela.Abb. notwendig, beides sind nur Hilfsmittel, jedoch keine Lösungen, um die Daten im Ram persistent zu halten.
--arilou 10:10, 20. Dez. 2011 (CET)[Beantworten]

Der eigentliche Clou ist doch das "fortwährende, nebenläufige Speichern jeder Datenänderung/-erzeugung" auf dem nichtflüchtigen Speicher, nicht nur im Ram, oder?
--arilou 10:07, 20. Dez. 2011 (CET)[Beantworten]

Wenn ich mir das so überlege, müsste als Lösungen eher Begriffe wie "Observer-Pattern" und "Journaling-Dateisystem" fallen, ersteres, damit ein Framework Daten-Änderungen bemerkt (und dann gleich speichert), zweiteres um bei der Wiederherstellung nach (ungewollter) Unterbrechung zu helfen; auch "ACID" und "Transaktion" bleiben hier unerwähnt...
--arilou 10:16, 20. Dez. 2011 (CET)[Beantworten]

Dieser Abschnitt kann archiviert werden. arilou (Diskussion) 13:20, 29. Jan. 2021 (CET)

Formulierungsfrage[Quelltext bearbeiten]

Hallo.

Im Artikel steht folgender Satz "Verschiedene Entwurfsmuster wie das Data Access Object unterstützen das gute Design." Hat "gut" in diesem Zusammenhang eine fachspezifische Bedeutung die ich nicht kenne? Es klingt in meinen Ohren wie "gute Butter". -- Hgulf Diskussion 10:52, 16. Sep. 2013 (CEST)[Beantworten]

Hab's etwas umformuliert; was "gutes Softwaredesign" bedeutet, lerne man im dortigen Artikel (hoffentlich). --arilou (Diskussion) 15:33, 16. Sep. 2013 (CEST)[Beantworten]

"Persistente Datenstruktur" vs. "Persistente Daten"[Quelltext bearbeiten]

Die beiden Themen sind weit genug voneinander entfernt, dass sie für zwei getrennte Artikel taugen. Beide sind klarerweise Themen der Informatik, die Datenstruktur eher zur theoretischen, die Daten eher zur praktischen gehörig. Möglicherweise geht die erste letztlich nicht ganz ohne die zweiten, hat aber genügend Substanz, um einen Artikel zu füllen (s. en:Persistent data structure) mit den Unterbegriffen "partielle Persistenz", "volle Persistenz" und "konfluente Persistenz". (Die konfluente P. ist volle P., bei der man immer zwei Versionen zu einer vollen Version integrieren kann.)[1] Wenn ich recht sehe, ist fr:Structure de données persistante eine teilweise Übersetzung aus dem Englischen. (Ich würde gerne in den Artikeln Rot-Schwarz-Baum und AVL-Baum auf einen Artikel Persistente Datenstruktur verweisen können.)

Im Gegensatz dazu ist sind "persistente Daten" welche, die ihren kreierenden Prozess (auf einem "persistenten Speicher") überleben. Dazu braucht’s ebenfalls Software-Unterstützung, die m.E. leichter anhand von Beispielen (DBMS, Data Access Object etc.) beschrieben werden kann und recht nahe beim jetzigen Artikel ist.

Ich plädiere also für eine Umbenennung des hiesigen Artikels in "Persistente Daten" oder "Persistente Datenhaltung" oder "Persistenter Speicher" und einen zweiten Artikel genannt "Persistente Datenstruktur".

Der Vorredner, Benutzer:Arilou, scheint Vorlesungen über diese Themen gehört zu haben. --Nomen4Omen (Diskussion) 17:14, 10. Jan. 2019 (CET)[Beantworten]

  1. "Konfluenz" und "konfluente Relation" gibt es auch im Satz von Church-Rosser, – wohl ohne brauchbare Beziehung zur konfluenten Persistenz.

Persist.Kommunikation[Quelltext bearbeiten]

Auch wenn Persistenz überwiegend für Daten relevant ist, gibt es diese Eigenschaft auch für einen Kommunikationskanal. Dieser Aspekt kann nicht einfach aus der Einleitung gelöscht werden.

--arilou (Diskussion) 13:14, 29. Jan. 2021 (CET)[Beantworten]

Das könntest Du ja ergänzen. Aber einfach Alles auf einen bedenklichen Zustand zurückzudrehen, ist keine sinnvolle Zusammenarbeit. --West of House (Diskussion) 13:38, 29. Jan. 2021 (CET)[Beantworten]

Der Artikel ist in einem schlechten Zustand. Es findet sich keine verständliche Definition. Die Formulierungen sind unbeholfen. Viele Nebelbegriffe. Am Ende wird das ganze mit dem peinlichen Senf der Fachinformatiker "Java-Anwendungsentwicklung" zu gekleistert. Ohne schwere Eingriffe ist da nichts zu retten --West of House (Diskussion) 14:06, 29. Jan. 2021 (CET)[Beantworten]

Ein QS-Baustein wär' eine Idee; ich mach' das mal. --arilou (Diskussion) 12:20, 3. Feb. 2021 (CET)[Beantworten]