Grundlagen der Programmierung: Datenbanken

Eins-zu-eins-Beziehung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Theoretisch besteht die Möglichkeit, innerhalb einer Datenbank eine Eins-zu-eins-Beziehung zu integrieren. Allerdings ist es in diesem Fall wesentlich sinnvoller, diese Informationen in einer Tabelle zu verwalten.

Transkript

Es ist zwar möglich, in einer Datenbank eine Eins-zu-eins Beziehung zu erstellen, aber es ist tatsächlich eigentlich kaum üblich und zwar aus folgendem Grund: Nehmen wir an, ich baue eine Mitarbeiter-Datenbank auf. Ich skizziere also einige Entitäten, basierend auf Objekten der realen Welt und im Beispiel benenne ich das hier schon auf Englisch, mit "Employee" für Mitarbeiter und "DriversLicense" für den Führerschein. Ich muss also Mitarbeiterdaten und Informationen zum Führerschein verfolgen. Deshalb lege ich gleich mal zwei Tabellen an. Angenommen, ich brauche das zum Beispiel, um die hauseigene Pkw-Flotte zu verwalten. Im beschriebenen System ist das also eine reine Eins zu Eins Beziehung. Eine Mitarbeiterzeile zeigt auf eine Führerscheinzeile. Es gibt niemals mehrere Mitarbeiter für ein und denselben Führerschein und es gibt auch niemals mehrere Führerscheine für einen Mitarbeiter, weil die unterschiedlichen Führerscheinklassen ja als Tabellenspalte definiert sind. Somit könnte ich diese beiden Tabellen mit einer Eins zu Eins Beziehung verknüpfen. In der Mitarbeiterzeile könnte ich einen Fremdschlüssel zur Führerscheintabelle speichern oder das ganze auch in umgekehrter Richtung aufziehen. Ich könnte aber auch, wie ich es hier zeige, denselben Primärschlüssel für jede Tabelle verwenden und einfach die eine Zeile direkt mit einer anderen verknüpfen. Wenn sich diese Situation aber so darstellt, dann könnte ich doch genauso gut die beiden Tabellen auch zusammenfassen und die Führerschein-Informationen direkt in der Mitarbeiterzeile speichern, ohne dass eine Beziehung erforderlich ist. Selbst wenn es sich bei diesem Führerschein um eine physisch verschiedene Entität handelt, ein eigenes Ding, ist es wesentlich sinnvoller, so vorzugehen, und beides in einer Tabelle zusammenzufassen. Aber als Einsteiger in den Datenbankentwurf sollten Sie auch darauf achten, dass sie manchmal von einer Eins zu Eins Beziehung ausgehen, obwohl es in Wirklichkeit gar keine ist. Das folgende Beispiel veranschaulicht, wo ich dies schon mehrmals gesehen habe. Nehmen wir an, wir zeichnen eine ziemlich grundlegende Situation mit einer Bestellung, ich nenne das hier "Order", einem Bestellartikel, das ist "OrderItem". und einem Produkt also einem "Product". Hier gibt es eine bestimmte Beziehung. "Order" speichert Informationen wie zum Beispiel eine OrderID, ein Datum oder einen fälligen Gesamtbetrag. Jeder OrderItem Eintrag enthält einen Fremdschlüssel, FK für "ForeignKey", hin zur OrderID, einer Menge und einer ProductID. Darüber ist er verknüpft mit mehreren anderen Produkttabellen, die Informationen wie Beschreibung, den Listenpreis und so weiter speichern. Nun weiß ich, dass es eine Beziehung natürlich zwischen diesen Tabellen gibt. Überlegen Sie mal, wie die Beziehungen zwischen den Tabellen hier aussehen könnten. Vermutlich so, könnten Sie meinen. Es gibt eine Eins zu Viele Beziehung zwischen Order und OrderItem. Ok, eine Bestellung kann mehrere Artikel, also OrderItems enthalten, das ist richtig und dann gibt es noch jeden einzelnen Artikel in OrderItem, der genau für ein Produkt steht. Und diese Schlussfolgerung hier, eins zu eins, die trifft oftmals zu. Ein Artikel gilt nur für genau ein Produkt, so dass es eine Eins zu Eins Beziehung, eine One to One Beziehung ist, aber eigentlich ist sie das gar nicht. Eine Zeile in Product kann tatsächlich mit vielen Zeilen in OrderItem verknüpft sein. Ein Produkt kann ja mehrmals bestellt werden, zumindest ist das die Hoffnung von jedem Händler. Es ist also eine Viele zu Eins Beziehung, eine Many to One Beziehung. Achten sie also darauf, dass Sie Ihre Beziehungen in beiden Richtungen betrachten, Insbesondere, wenn Sie glauben, eine Eins zu Eins Beziehung gefunden zu haben.

Grundlagen der Programmierung: Datenbanken

Fangen Sie ganz von vorne an und erfahren Sie alles über die Grundlagen zu Datenbanken und deren Einsatzzwecke, um danach eigene Lösungen und Anwendungen zu entwickeln.

3 Std. 6 min (39 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!