Kann mir jemand bei dieser SQL-Aufgabe weiterhelfen?

1 Antwort

Wenn es SQL wäre, wäre es einfach, aber das ist irgendeine wilde mathematische Formulierung von Relationen, die ich in 15 Jahren als Datenbankadmin noch nie gesehen hab. Man kann es aber grob als eine Reihe von Primärschlüssel-Fremdschlüssel-Beziehungen sehen, auch wenn man das so nicht auf Datenbanken anwenden kann.

Aber um es kurz zu machen: Du kannst dir die Buchstaben als Spalten in einer Tabelle vorstellen und die Tupel sind halt die Werte. Die Werte aus den Spalten, die links vom Pfeil stehen, bestimmen eindeutig den Wert der Spalten auf der rechten Seite vom Pfeil. So, wie ich es verstanden hab, sollst du jetzt rausfinden, bei welchem Tupel die Eindeutigkeit nicht mehr gegeben ist.

Ich hab mal eine Tabelle gemacht, damit du siehst, was ich meine:

In den gelb markierten Zellen ist halt eine Abweichung, wo ein Schlüssel auf verschiedene Werte verweist. Das heißt, bei allen Werten, außer dem Tupel b) wird die Relation verletzt (zumindest, wenn ich es richtig verstanden habe)

 - (Datenbank, SQL)
kali01 
Fragesteller
 13.12.2023, 21:45
 Das heißt, bei allen Werten, außer dem Tupel b) wird die Relation verletzt

danke für deine Veranschaulichung, aber ich verstehe halt immer noch nicht warum die Relation verletzt sein soll

0
daCypher  14.12.2023, 07:31
@kali01

Weil die Werte pro Schlüssel immer eindeutig sein müssen. Wenn einmal in der Tabelle drinsteht, dass der Schlüssel 3 den Wert 5 hat, darf man kein Tupel hinzufügen, wo der Schlüssel 3 plötzlich den Wert 4 hat.

Wie gesagt, das ist nur sehr entfernt auf SQL bzw. auf Datenbanken anwendbar, aber bei Datenbanken versucht man immer, möglichst keine Redundanz zu haben. Also z.B. sollte ein Kunde immer genau unter einer Kundennummer in der Datenbank stehen, so dass Namens- oder Adressänderungen sofort an allen Stellen richtig angewendet werden.

1