N
Nathalie4784
Gast
Hallo
Ich arbeite zur Zeit allgemeine Unterschiede zwischen dem objektorientierten System und dem Datenbank System heraus und versuche gerade das Problem der Identität zu verstehen. Habe jedoch noch Verständnisfragen dazu. Wäre nett wenn mir jemand helfen würde.
In einer Datenbank wird die Identität einer Datenbankzeile mit Hilfe eines Primärschlüssels gekennzeichnet. Der Primärschlüssel darf hier nur eindeutige Werte besitzen und darf nicht null sein. Das ist soweit klar.
Bei Java-Objekten werden zwei Konzepte von Identität definiert. Einmal die Identität von Objekten und die Gleichheit.
Hier ein anschauliches Beispiel:
So weit so gut. Anschliessend habe ich folgende Textpassage gefunden: :###
"Weder equals() noch == ist natürlich äquivalent mit dem Wert des Primärschlüssels. Es ist für mehrere nicht-identische Objekte üblich, simultan die gleiche Zeile der Datenbank zu repräsentieren, zum Beispiel in parallel ablaufenden Applikationthreads"
Ich verstehe jedoch nicht genau was damit gemeint ist. Wieso ist weder equals noch == natürlich äquivalent? Verstehe das Problem noch nicht so wirklich ???:L
Kann mir das jemand in "einfachen" Worten erklären? Ein Beispiel wäre super!
Vielen lieben Dank!
Ich arbeite zur Zeit allgemeine Unterschiede zwischen dem objektorientierten System und dem Datenbank System heraus und versuche gerade das Problem der Identität zu verstehen. Habe jedoch noch Verständnisfragen dazu. Wäre nett wenn mir jemand helfen würde.
In einer Datenbank wird die Identität einer Datenbankzeile mit Hilfe eines Primärschlüssels gekennzeichnet. Der Primärschlüssel darf hier nur eindeutige Werte besitzen und darf nicht null sein. Das ist soweit klar.
Bei Java-Objekten werden zwei Konzepte von Identität definiert. Einmal die Identität von Objekten und die Gleichheit.
Hier ein anschauliches Beispiel:
Code:
Point p = new Point (10,10);
Point q = new Point (10,10);
if (p == q) // false, weil es verschiedene Objekte sind --> Identität von Objekten
if (p.equals(q)) // true, weil der Inhalt gleich ist --> Gleichheit
"Weder equals() noch == ist natürlich äquivalent mit dem Wert des Primärschlüssels. Es ist für mehrere nicht-identische Objekte üblich, simultan die gleiche Zeile der Datenbank zu repräsentieren, zum Beispiel in parallel ablaufenden Applikationthreads"
Ich verstehe jedoch nicht genau was damit gemeint ist. Wieso ist weder equals noch == natürlich äquivalent? Verstehe das Problem noch nicht so wirklich ???:L
Kann mir das jemand in "einfachen" Worten erklären? Ein Beispiel wäre super!
Vielen lieben Dank!