Commit 5ece755f authored by Jens Ehlers's avatar Jens Ehlers
Browse files

minor ORM text corrections

parent 0bfb2b8a
Pipeline #8869 passed with stage
in 2 minutes and 19 seconds
<p>Als <i>Object-Relational Mapping</i> (kurz <i>ORM</i>) bezeichnen wir in der Softwareentwicklung die Abbildung der Objekte aus einer objektorientierten Programmiersprache auf ein relationales Datenbankschema. In der Praxis ist diese objektrelationale Abbildung in einer Vielzahl von Projekten zu bewerkstelligen, da die Entscheidung für eine objektorientierte Programmiersprache als auch für ein relationales Datenbanksystem sehr verbreitet ist. Zwischen dem objektorientierten und dem relationalen Datenmodell ergeben sich gewisse Unterschiede, die als <a href="https://de.wikipedia.org/wiki/Object-relational_impedance_mismatch">Object-Relational Impedance Mismatch</a> bezeichnet werden. Zwei typische Unterschiede zwischen objektorientiertem und relationalem Modell sind die Abbildung von N:N-Beziehungen und die Abbildung von Vererbungsbeziehungen.</p>
<p>Als <i>Object-Relational Mapping</i> (kurz <i>ORM</i>) bezeichnen wir in der Softwareentwicklung die Abbildung der Objekte aus einer objektorientierten Programmiersprache auf ein relationales Datenbankschema. In der Praxis ist diese objektrelationale Abbildung in einer Vielzahl von Projekten zu bewerkstelligen, da die Entscheidung für eine objektorientierte Programmiersprache als auch für ein relationales Datenbanksystem sehr verbreitet ist. Zwischen dem objektorientierten und dem relationalen Datenmodell ergeben sich gewisse Unterschiede, die als <i><a href="https://de.wikipedia.org/wiki/Object-relational_impedance_mismatch">Object-Relational Impedance Mismatch</a></i> bezeichnet werden. Zwei typische Unterschiede zwischen objektorientiertem und relationalem Modell betreffen die Abbildung von N:N-Beziehungen und die Abbildung von Vererbungsbeziehungen.</p>
<span>Die Abweichungen zwischen den Modellen werden am Beispiel der folgenden Abbildung verdeutlicht.</span>
<span>Die Abweichungen zwischen den Modellen werden anhand eines Beispiels in der folgenden Abbildung verdeutlicht.</span>
<ul>
<li>Im objektorientierten Modell links besteht eine N:N-Beziehung zwischen den Klassen <code>Person</code> und <code>Skill</code>, die im relationalen Modell rechts durch eine zusätzliche Beziehungstabelle <code>skill_acquisition</code> mit Fremdschlüsseln dargestellt werden muss.</li>
<li>Im objektorientierten Modell (oben) besteht eine N:N-Beziehung zwischen den Klassen <code>Person</code> und <code>Skill</code>, die im relationalen Modell (unten) durch eine zusätzliche Beziehungstabelle <code>skill_acquisition</code> mit Fremdschlüsseln abgebildet werden muss.</li>
<li>Die Vererbungsbeziehung zwischen der allgemeinen Oberklasse <code>Person</code> und ihren Unterklassen <code>Employee</code> und <code>Freelancer</code> im objektorientierten Modell kann im relationalen Modell in drei bekannten, unterschiedlichen Varianten abgebildet werden. In diesem Fall wird die Vererbungshierarchie in einer gemeinsamen Tabelle <code>person</code> zusammengefasst (Variante <i>Single Table</i>).</li>
<li>Explizit erlaubte oder ausgeschlossene Navigierbarkeit – wie zwischen den Klassen <code>Person</code> und <code>Department</code> – kann im relationalen Modell gar nicht dargestellt werden.</li>
</ul>
......
......@@ -44,7 +44,7 @@ public class TweetStarter implements CommandLineRunner {
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(loremIpsumApi)).build();
// post a new tweet every 3 seconds
Runnable changePrices = () -> {
Runnable newTweet = () -> {
try {
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
Tweet tweet = new Tweet(response.body());
......@@ -52,7 +52,7 @@ public class TweetStarter implements CommandLineRunner {
} catch (InterruptedException | IOException e) { }
};
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(changePrices, 0, 3, TimeUnit.SECONDS);
scheduler.scheduleAtFixedRate(newTweet, 0, 3, TimeUnit.SECONDS);
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment