Schreibweise von Fremdschlüsseln

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Schreibweise von Fremdschlüsseln
Hey, hätte mal eine Frage was die Schreibweise von Fremdschlüsseln angeht:

Im Skript unter dem Kapitel Relationale Datenmodell steht ja u.a. diese Schreibweise :
Personen ( PNR, Vorname, Nachname, Abteilung [Abteilungen])
wobei eben der Relationenname der Relation auf die referenziert wird in den eckigen Klammern steht.

Bei SQL dagegen würde es ja so aussehen: Personen(PNR, Vorname, Nachname, Abteilungen (Abteilung))
wobei der Name der referenzierten Relation vor den runden Klammern steht und das Attribut darin.

Meine Frage ist jetzt, darf ich die SQL Schreibweise auch für Frage zum allgemeinen relationalen Datenmodell nehmen?
Oder ist diese Schreibweise nur in SQL üblich?

Gruß
Paddi


Vorbemerkung: Afaik beschreibst du an der Stelle immer ein Tupel und nicht die ganze Relation. Die Namen wären also Person und Abteilung im Singular, keine Ahnung ob das für die Klausur relevant ist.

Das was du da schreibst ist kein SQL, sondern irgendeine Variante der gegebenen Relationen-Syntax.

SQL wäre eine konkrete Anweisung wie:

CREATE TABLE Person (
    PNr INT PRIMARY KEY,
    …
    ANr INT REFERENCES Abteilung(ANr)
);

Somit dürfte deine Frage eigtl. hinfällig sein, die von dir als SQL bezeichnete Syntax kenne ich nicht und in „richtigem“ SQL musst du für Foreign Keys auch die Attributnamen und nicht nur den Namen der Relation angeben.


Richtig, allerdings denke ich, geht es hier nur um’s “Darf’s statt Attr[Rel] auch Rel[Attr] sein?”

Kurze Antwort: Wir haben uns für’s Relationale auf diese Syntax mit Attr[Rel] geeinigt. Diese ist einfach zu lernen und für zwei Tägelchen zu behalten, insofern warne ich davor, bei wirklich einfachen Konventionen zu variieren. Die Lösungsrichtlinien in der Klausur sind mir noch nicht bekannt, aber unter Umständen verspielst du dir einen von zwei Punkten, wenn du hier trotz besserem Wissen von der Konvention abweichst.

tl;dr: Nein, mach’s so, wie gelernt.


alles klar, vielen Dank!