Anfänger, Primär und Fremdschlüssel bestimmen

vaiona

Neuer Benutzer
Beiträge
2
Hallo ich bin noch Anfängerin und kann die Primär und Fremdschlüssel nicht bestimmen, könnt ihr mir helfen. Die Aufgabenstellung lautet:

Das Unternehmen bietet für seine Mitarbeiter eine Reihe von internen Seminaren an, die in die Bereiche Führungs-, Fachqualifikation und Allgemeine Qualifikation unterteilt werden können. Für jedes Seminar gibt es ein oder mehrere Veranstaltungstermine. Die Veranstaltungsorte können pro Termin wechseln. Jedem Seminar kann ein Referent eindeutig zugeordnet werden, wobei ein Referent mehrere Seminare leiten kann. Für ein Seminar kann es ein oder mehrere andere Seminare geben, die Voraussetzung für die Teilnahme an diesem Seminar sind (z.B.: Seminar "Bilanz" setzt voraus: Teilnahme an Seminar "Kostenrechnung" und an Seminar "Buchhaltung").

Es soll u.a. nachweisbar sein, welche Mitarbeiter an welchen Seminaren zu welchen Terminen teilgenommen
haben bzw. zu welchen Seminarterminen sie gebucht sind.

und die Aufgaben sind:
1. Identifizieren Sie zunächst die Entity-Typen.
2. Welchen Primärschlüssel haben die einzelnen Entitys?
3. Welche weiteren Attribute sind für die Entitys sinnvoll?
4. Legen Sie nun auch die Fremdschlüssel-Attribute fest.
 
Werbung:
Vielleicht kann ich was dazulernen.

Kenne mich gerade nicht aus was Entity bzw Entity-Typen sein sollen.

Aber um direkt zu Fremdschlüssel zu kommen:
Ein Fremdschlüssel ist ein Wert, der in einer anderen Tabelle eindeutig ist, sprich einen Primary Key oder Unique Constraint hat, dann kann man in einer anderen Tabelle NUR Werte eintragbar machen, die in der vorigen Tabelle vorhanden sind.

Beispiel:
Code:
create database fk;
create table a(b integer primary key, name text unique);

Variante 1:
Code:
create table b (b integer references a(b));

Bei dieser Variante ist die Spalte b der Tabelle a der Primary Key, und muss vorhanden sein, um in Tabelle b eintragbar zu sein.

Variante 2:
Code:
create table b (b text references a(name));

Bei dieser Variante ist die spalte b der Tabelle a der unique-constraint, und muss vorhanden sein, um in Tabelle b eintragbar zu sein.

references definiert einen Foreign-Key-Constraint, man könnte es auch im nachhinein nachtragen durch folgendes scrpt:

Code:
alter table b add constraint foreign_key b references a(b);

oder

Code:
alter table b add constrant foreign_key b references a(name);

Es ist nur wichtig, dass der Wert in der Tabelle a eindeutig ist, sprich unique oder primary key ist.

EDIT: Natürlich ist es auch wichtig, dass der Foreign Key in beiden Tabellen den gleichen Spaltentyp hat.
 
Werbung:
Tut mir ehrlich leid, habe in meiner Datenbank-Zeit quasie nie mit ERMs gearbeitet, und wäre nicht wirklich ein Fan davon, jetzt deine Hausaufgaben zu schreiben ;)

Mir ist bewusst, was ein ERM ist, nur bin ich eher eine Person, die das ERM umsetzt, als jemand, der eines erstellt.

Ich denke/hoffe, dass das ab nächstem Schuljahr (September) bei meiner Ausbildung dabei sein wird (wie ich mir auch erwarte).
 
Zurück
Oben