Master-Detail-Beziehung
# Master-Detail-Beziehung

Unter einer Master-Detail-Beziehung versteht man in der Softwareentwicklung eine Beziehung zwischen zwei Blöcken von angezeigten Daten in einem Computerprogramm, wobei der zweite Block (Detail) detailliertere Informationen zu den Daten des ersten Blocks (Master) enthält.

## Datenbankanwendung, Benutzeroberfläche

In Bezug auf Datenbankanwendungen wird der Begriff insbesondere für den häufig auftretenden Fall verwendet, dass der erste Block genau einen und der zweite Block mehrere inhaltlich dem ersten Block zugehörige Datensätze enthält. Dies wird meist als Kombination von Formularfeldern für den „Master“-Datensatz mit einer darunter oder rechts daneben stehenden Tabelle für die „Detail“-Datensätze dargestellt.
Beispiel:
Eine Bildschirmmaske oder Webseite mit den persönlichen Daten eines Kunden und dazu als Detaildaten die darunter aufgeführten Aufträge dieses Kunden.

## Datenmodell

Eine Master-Detail-Beziehung auf der Benutzeroberfläche des Computerprogramms resultiert meist aus einer entsprechenden Struktur der Datenbank, nämlich aus einer 1:n-Beziehung zwischen zwei Datenbanktabellen (im obigen Beispiel zwischen einer Kundentabelle und einer Auftragstabelle).

## Datenbankabfrage

Datenbankdaten, die in einer Master-Detail-Beziehung zueinander stehen, können nicht (bzw. nicht immer korrekt) mit einer einzigen SQL-Abfrage aus der Datenbank ausgelesen werden. Da Master- und Detaildaten getrennt ausgelesen und zurückgeschrieben werden müssen, bestimmt die Datenstruktur auch die innere Architektur des Programms, indem hierfür getrennte Datasets bzw. Direct Views angelegt werden. Formulare und Reports in Datenbankanwendungen bestehen häufig aus zueinander in Master-Detail-Beziehung stehenden Programmteilen.