Oracle Fremd Key

Oracle Fremd Key
Ein Fremdschlüssel bezieht sich auf eine Spalte oder eine Reihe von Spalten in einer Datenbanktabelle, die sich auf die Primärschlüssel einer anderen Tabelle bezieht. Fremdschlüssel sind ein unglaubliches Tool, das die Integrität in Ihrer Datenbank gewährleistet.

Fremdeschlüssel sind so wertvoll und bekannt, dass sie in der Datenbanknormalisierung als Stufe 3 eingestuft werden. In 3NF sind alle Attribute (Spalten) in einer Tabelle direkt vom Primärschlüssel dieser Tabelle abhängig, und es gibt keine transitiven Abhängigkeiten.

Die Einführung der Fremdschlüssel kann dazu beitragen, die Anforderungen von 3NF aufrechtzuerhalten, indem sichergestellt wird.

Das Ziel dieses Tutorials ist es, Ihnen zu zeigen, wie Sie einen Fremdschlüssel in einer Oracle -Datenbank erstellen und verwenden können. Dieses Tutorial ist auf Anfänger ausgerichtet, und wir behandeln nicht, wie die Fremdkasten in Datenbanknormalisierungen implementiert werden können.

Erstellen Sie eine ausländische Schlüsselaussage

Wir können während der Erstellung der Tabelle einen Fremdschlüssel mithilfe der Erstellung von Tabellenerklärung und der Fremdschlüsselklausel erstellen.

Wir können die Syntax wie im Folgenden gezeigt ausdrücken:

Table table erstellen (
Spalte1 -Datentyp,
Spalte2 DataType,

Fremdschlüssel (Spalte1, Spalte2,…)
Referenzen unter anderem_table_name (other_column1, other_column2,…)
);

Der table_name bezieht sich auf die Tabelle, die Sie in der Datenbank erstellen möchten. Wir definieren auch die Tabellenspalten, deren entsprechende Datentyp und verschiedene Einschränkungen.

Schließlich rufen wir die Fremdschlüsselklausel an, um die Spalte oder die Spalten anzugeben, aus denen wir die Fremdschlüsselreferenzen ausmachen möchten.

Um die Verwendung von Fremdschlüssel am besten zu veranschaulichen, nehmen wir zwei Tabellen, wie in den folgenden Erstellen von Anweisungen gezeigt:

Erstellen Sie Tabellendatenbanken
(
ID -Nummer, die standardmäßig auf Null als Identität generiert wird,
Nennen Sie varchar2 (50) nicht null,
default_port nummer,
neuest_version varchar2 (20) nicht null,
Typ varchar2 (20) nicht null,
Sprache varchar2 (20) nicht null,
Fremdschlüssel (ID)
Referenzen size_stats (Database_id)
);

Tabelle 2:

TABLE SIZE_STATS CREATE (
Datenbanknummer Primärschlüssel,
size_on_disk -Nummer nicht null,
Größe_Comprimed Nummer
);

In der ersten Klausel erstellen wir eine Tabelle, um die Datenbankinformationen wie den Datenbanknamen, den Standardport, die neueste Datenbankversion, den Datenbanktyp und die Sprache zu speichern.

Zusätzlich schließen wir die Ausländerschlüsselklausel ein, die einen neuen Fremdschlüssel in der ID -Spalte der Datenbanktabelle definiert. Dieser Fremdschlüssel verweist auf die Datenbank_id in der Tabelle size_stats. Daher ist es gut sicherzustellen, dass die Tabelle Size_Stats vor dem Erstellen der Datenbankentabelle vorhanden ist.

Sobald wir die Beispieltabellen eingerichtet haben, fügen wir die Beispieldaten zur Demonstration in die Tabelle ein.

Einfügen in size_stats (Database_id, size_on_disk, size_compressed) Werte (1, 100.45, 94.55);
Einfügen in size_stats (Database_id, size_on_disk, size_compressed) Werte (2, 567.67, 344.43);
Einfügen in size_stats (Database_id, size_on_disk, size_compressed) Werte (3, 649.30, 500.13);
Einfügen in size_stats (Database_id, size_on_disk, size_compressed) Werte (4, 45.62, 39.96);
Einfügen in size_stats (Database_id, size_on_disk, size_compressed) Werte (5, 1000.12, 986.43);

Fügen Sie als Nächstes die Daten in die Datenbankentabelle hinzu, wie im Folgenden gezeigt:

In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Werte ('Oracle', 1521, '19c', 'Relational', 'SQL');
In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Werte ('MySQL', 3306, '8.0 ',' relational ',' sql ');
In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Values ​​('postgresql', 5432, '13', 'relational', 'sql');
In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Werte ('MongoDB', 27017, '4.4 ',' nicht-relational ',' JavaScript ');
In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Werte ('Microsoft SQL Server', 1433, '2017', 'Relational', 'T-SQL');

Die ersten Einfügungsanweisungen sollten uns eine Tabelle geben, in der die Datenbankgrößenstatistiken wie im Folgenden dargestellt sind:

Die zweite Tabelle enthält die Datenbankinformationen wie in Folgendes gezeigt:

Sobald der Fremdschlüssel angewendet wurde, stellt er sicher, dass die bereitgestellten Daten intakt sind und keine ungültigen Daten hinzugefügt werden.

Wenn wir beispielsweise versuchen, eine neue Datenbank mit einer ID hinzuzufügen, die in der Statistik -Tabelle nicht vorhanden ist, sollte sie einen Fehler wie folgt zurückgeben:

In Datenbanken einfügen (Name, default_port, neuest_version, Typ, Sprache)
Werte ('sqlite', null, '3.34 ',' relational ',' c ');

Resultierender Fehler:

[23000] [2291] OA-02291: Integritätsbeschränkung (HR.Sys_c007781) verletzt - übergeordnete Schlüssel nicht gefunden

Eine fremde Einschränkung fallen lassen

Sie können einen vorhandenen Fremdbeschränkungsnamen mit dem Befehl alter table entfernen, wie im folgenden dargestellt:

ALTER TALE TABLE_NAME
Drop Constraint fremd_key_name;

Aktivieren/deaktivieren Sie einen fremden Schlüssel

Wir können auch einen Fremdschlüssel deaktivieren oder aktivieren, ohne ihn aus der Tabelle zu entfernen, wie in den folgenden Befehlen gezeigt:

TABLE TABLE TABLE_NAME
Deaktivieren Sie die Einschränkung fremd_key_name;

Verwenden Sie den folgenden Befehl, um einen Fremdschlüssel zu aktivieren:

TABLE TABLE TABLE_NAME
Aktivieren Sie die Einschränkung fremd_key_name;

Abschluss

In diesem Tutorial haben Sie gelernt, wie man die Fremdschlüssel in Oracle -Tabellen verwendet, um die Datenintegrität zu verbessern und bereitzustellen.