ERM -> Tabellen -> Datenbanken: Allgemeine Fragen

FrazeColder

Lt. Commander
Registriert
Okt. 2013
Beiträge
1.718
Moin zusammen,

Ich hätte da mal vereinzelt ein paar Fragen zu den 3 Themen.

Wenn ich eine Relation zwischen zwei Entitäten habe, sowie hier (Seite 6), und das in eine Tabelle umwandeln möchte, müsste ich bei der Tabelle aus der Relation, sprich KNR, SNR und Fehlstunden, KNR und SNR beides als FK anstatt als PK kennzeichnen?

Denn im PDF sind beide als PK gekennzeichnet... Ich frage mich allerdings wieso
Meine zweite Frage ist fast so ähnlich. Wann genau benutzt man eiglt. einen PK und FK für ein Attribut zur gleichen Zeit und wieso?

Und meine letzte Frage ist, wenn ich die Werte aus der Tabelle in eine Datenbank eingeben möchte. Wie genau setzte ich da den FK fest und wie einen PFK? - PK ist ja einfach: Primary Key (`attribut`)

MfG und Vielen Dank!
 
Jede Tabelle sollte (nur für sich betrachtet) einen eigenen Primary-Key besitzen. Ein PM ist ein eindeutiger Schlüssel einer Tabelle. Der innerhalb dieser Tabelle nicht doppelt vorkommt (normalwweise). Es gibt auch Tabellen in denen Schlüssel mehrfachvorkommen können, aber das sind dann keine EINDEUTIGEN PMs mehr und kommt auf den Anwednungszweck an.

Ein PK ist (normalerweise) ein eindeutiger Schlüssel einer Tabelle, den man bei Abfragen (Select-Anweisungen) wunderbar nutzen kann.
Wenn Du nun die Tabelle "besucht" Dir anschaust, was könnest Du als EINDEUTIGEN PK nutzen damit Du für diese Tabelle einen eindeutigen PM erhälst?

Antwort: Du nimmst beide Felder KNR und SNR und baust Dir aus beiden Felder einen eindeutigen PM zusammen.
Das bedeutet du hast einen zusammengesetzten PM, der aus zwei Feldern besteht (KNR und SNR). Dieser zusammengesetzte Schlüssel ist für diese Tabelle absolut eindeutig.

Praktischer Ansatz: In MS-Access kann man im Entwurfsmodus zwei Felder markieren und dann den Primary-Key setzen. Probiers mal aus. Erstelle Dir in Access zwei Tabellen und erstelle eine 3 mit der Relation "besucht" und erstelle dort Deinen zusammengesetzten PM.

Hinweis: Durch das praktische Anwenden von solcher Theorie wird Dir so etwas viel verständlicher, und wenn Du dann mal anfängst zu Programmieren, dann wirst Du das noch viel besser verstehen können.
 
Moin,

zu 1: Es sind Primary Keys der Tabelle - allerdings gleichzeitig Foreign Keys. Das versucht dein Lehrer / Dozent vermutlich durch die Farbgebung mitzuteilen. KNR und SNR sind jeweils Foreign Keys und bilden gemeinsam den Primary Key.

zu 2: Frage verstehe ich nicht.

zu 3: in SQL würde man vermutlich eine der folgenden Anweisung ähnliche verwenden (nagel mich nicht drauf fest!)

Code:
create table BESUCHT
(
KNR int(4) not null,
SNR int(4) not null,
Fehlstunden int(4),
foreign key (KNR) references Kurs(KNR),
foreign key (SNR) references Schueler(SNR),
primary key (KNR,SNR)
)
 
Zwei (oder noch mehr) Foreign-Keys als Primary Key benutzt man meistens bei M x N (x WEITERETABELLEN..)-Relationen, denn oft sind solche Relationen durch ihre Foreign-Keys eindeutig bestimmt. In diesem Fall kann ein Schüler nicht mehrfach an ein und demselben Kurs teilnehmen.

Wenn deine Relation neben den beiden verknüpften Mengen irgendwann noch mit mehr Zeug als den Fehlstunden attributiert ist, kann/sollte man darüber nachdenken, eine künstliche ID einzuführen, sonst wird es irgendwann unübersichtlich. Aber solche wenig attributierten Relationen wie im Beispiel kann man ruhig so auf 'ne DB abbilden.
 
Zurück
Oben