Zum Inhalt springen
  • 0

SQL - Was sind Schlüsselattribut und nicht Schlüsselattribut?


MichaelKreil

Frage

Hallo zusammen,

ich verstehe nicht so ganz was das sein soll.

Wenn ID 1,2,3,4,5 der Primärschlüssel sind dann sind dies Schlüsselattribute und alle anderen Werte in der Tabelle sind dann Nichtschlüsselattribute, wäre mein Verständnis so korrekt?

Ist der Fremdschlüssel in einer Tabelle dann auch ein Schlüsselattribut?

Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

9 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
vor 4 Stunden schrieb MichaelKreil:

Wenn ID 1,2,3,4,5 der Primärschlüssel sind dann sind dies Schlüsselattribute und alle anderen Werte in der Tabelle sind dann Nichtschlüsselattribute, wäre mein Verständnis so korrekt?

Ich verstehe deine Frage nicht so richtig.

Die Schlüsselattribute identifizieren ein Tupel (= Zeile) eindeutig. Daraus wird dann der Primärschlüssel erzeugt.

vor 4 Stunden schrieb MichaelKreil:

Ist der Fremdschlüssel in einer Tabelle dann auch ein Schlüsselattribut?

Nein, ein Fremschlüssel stellt eine Relation zu einer anderen Tabelle dar. Der Fremdschlüssel hat aber die Form des Primärschlüssels der in Relation stehenden Tabelle.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Auch in den IHK Prüfungen wird sowohl in der Aufgabenstellung und auch in den Lösungshinweisen häufig von einem Kombinierten PK ausgegangen. Bestes Beispiel sind hier die Verknüpfungstabellen wo die beiden FK´s als kombinierter PK genommen werden. Für die Prüfung sollte man das also drauf haben.

In realen Datenbanken lehne ich es ab den PK aus den vorhandenen Attributen zu bilden. Ich habe schon erlebt, dass Schreibweise einer eindeutige Kennung die PK war, geändert wurde. Da wurde einfach ein Bindestrich bei allen Datensätzen eingefügt und so mussten alle Fremdschlüsselverknüpfunge überarbeitet werden. Deshalb trenne ich die Daten des Kunden und die Infrastruktur der Datenbank und füge generell in jede Tabelle ne Intgerspalte als PK hinzu.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Ich weiß nicht ganz genau, was du mit ID 1,2,3,4,5 meinst. Aber gehen wir es mal durch. Eine Datenbank besteht aus einer oder mehrerer Tabellen/Relationen. In einer Relation hast du mehrere Spalten/Attribute. Nehmen wir als Beispiel die Relation "Kunde", mit den Attributen/Spalten ("KdNr", "KdName", "KdVorname", ..).

Du kannst in diese Tabelle nun reale Kunden als Datensätze eintragen. Jeder dieser Datensätze muss aber eindeutig durch einen geigneten Primärschlüssel identifiziert sein. Der Primärschlüssel besteht nun aus einem oder mehreren Attributen (Es gilt das Minimalprinzip, d. h. man nimmt nur so viele wie wirklich nötig sind).

Die Attribute, welche den Primärschlüssel ausmachen, nennt man Schlüsselattribute. Der Fremdschlüssel zählt hier, also in dieser Tabelle, nicht zu den Schlüsselattributen (der Fremdschlüssel ist aber in seiner "Heimattabelle" ein Primärschlüssel und dort bilden die verknüpften Tabellen die Schlüsselattribute).

(Im obigen Beispiel wäre KdNr ein Schlüsselkandidat, d. h. es würde sich als Primärschlüssel eignen. Es handelt sich hierbei um ein künstlich erzeugtes Attribut, also einen  "künstlichen" Schlüssel, ein sogenanntes  Surrogat.)

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
Am 21.10.2022 um 16:34 schrieb gabrielinc:

Die Attribute, welche den Primärschlüssel ausmachen, nennt man Schlüsselattribute. Der Fremdschlüssel zählt hier, also in dieser Tabelle, nicht zu den Schlüsselattributen (der Fremdschlüssel ist aber in seiner "Heimattabelle" ein Primärschlüssel und dort bilden die verknüpften Tabellen die Schlüsselattribute).

Was ist denn, wenn ich der Tabelle ein Attribut als Fremdschlüssel (foreign key) deklariere:

CREATE TABLE Test (
    ID int NOT NULL,
    PRIMARY KEY (ID),
);

CREATE TABLE Test2 (
    ID int NOT NULL,
    TEST_FK int NOT NULL,
    PRIMARY KEY (ID),
    FOREIGN KEY (TEST_FK) REFERENCES TEST(ID)
);

 

1960252033_Bildschirmfoto2022-10-24um6_05_02PM.png.08816e1edc4b2c3fe5919b92f13301d5.png

 

Ist "TEST_FK" dann nicht auch ein Schlüsselattribut?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Nein, denn die Schlüsselattribute sind die Attribute, die in ihrer Gesamtheit die Datenzeile eindeutig identifizieren. Sprich, den Primärschlüssel bilden. Du schreibst aber selber

vor 6 Stunden schrieb pr0gg3r:
    PRIMARY KEY (ID),

 

und definierst damit ID als einzigen Schlüsselattribut.

Oder einfacher ausgedrückt: Was in der Klammerung steht, sind die Schlüsselattribute.

Fremdschlüssel definieren nicht eindeutig eine Datenzeile, sondern sie sind ein Verweis auf eine andere Tabelle. Sie haben aber in der Regel die Form der Schlüsselattribute der auf die verwiesenden Tabelle.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...