Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

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

Dieses Thema im Forum "DB2" wurde erstellt von vaiona, 18 Mai 2020.

  1. vaiona

    vaiona Neuer Benutzer

    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.
     
  2. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    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.
     
    vaiona gefällt das.
  3. vaiona

    vaiona Neuer Benutzer

    die aufgabe ist auch ein ERM modell zu erstellen
     
  4. Kampfgummibaerlie

    Kampfgummibaerlie Datenbank-Guru

    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).
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden