So verwenden Sie Schlüssel für den Zugriff auf Informationen schnell in einer SQL-Datenbank

Eine gute Regel für SQL-Datenbank-Design ist, um sicherzustellen, dass jede Zeile in einer Datenbanktabelle von jedem anderen row- jeder Reihe unterscheidbar ist, sollte eindeutig sein. Manchmal möchten Sie Daten aus Ihrer Datenbank für einen bestimmten Zweck (wie eine statistische Analyse) zu extrahieren und dabei, am Ende die Erstellung von Tabellen, in denen die Reihen sind nicht unbedingt eindeutig.

Menu

Für einen solchen begrenzten Zweck, diese Art von Doppel keine Rolle spielt. Tabellen, die Sie in mehr als einer Weise nutzen können, sollten enthalten jedoch keine doppelten Zeilen.

EIN Schlüssel ist ein Attribut (oder eine Kombination von Attributen), die eindeutig eine Zeile in einer Tabelle identifiziert. Um eine Zeile in einer Datenbank zugreifen können, müssen Sie eine Möglichkeit haben, diese Zeile von allen anderen Reihen zu unterscheiden. Weil Schlüssel eindeutig sein müssen, bieten sie einen solchen Zugriffsmechanismus.

Darüber hinaus muss ein Schlüssel nie einen Nullwert enthalten. Wenn Sie null Schlüssel verwenden, können Sie nicht in der Lage sein, zwischen zwei Reihen zu unterscheiden, die einen Null-Schlüsselfeld enthalten.

Betrachten wir ein Beispiel eines Tier-Labor: Sie entsprechenden Spalten als Schlüssel bezeichnen kann. In der Tabelle Kunde, Kundenname ist ein guter Schlüssel. Dieser Schlüssel kann jeden einzelnen Kunden von allen anderen Kunden unterscheiden. Deshalb wird in dieser Spalte einen Wert eingeben wird für jede Zeile in der Tabelle obligatorisch.

Testname und Mitarbeitername machen gute Tasten für die Tests und EMPLOYEE Tabellen. Bestellnummer und ResultNumber machen gute Schlüssel für die Aufträge und Ergebnistabellen. Stellen Sie sicher, dass Sie einen eindeutigen Wert für jede Zeile eingeben.

Sie können zwei Arten von Schlüsseln haben: Primärschlüssel und Fremdschlüssel.

Primärschlüssel

EIN Primärschlüssel ist eine Spalte oder eine Kombination von Spalten in einer Tabelle mit Werten, die in einzigartiger Weise die Zeilen in der Tabelle identifizieren. Um die Idee der Schlüssel in die VetLab Datenbank integrieren, können Sie den Primärschlüssel einer Tabelle angeben, wie Sie die Tabelle erstellen. Im folgenden Beispiel wird eine einzelne Spalte reicht (vorausgesetzt, dass alle VetLab den Kunden eindeutige Namen haben):

CREATE TABLE-Client (Client CHAR (30) PRIMARY KEY, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), Postal CHAR (10), PhoneCHAR (13), Fax CHAR (13) , Contact CHAR (30)) -

Die Einschränkung PRIMÄRSCHLÜSSEL ersetzt die Einschränkung NICHT NULL, in der früheren Definition des CLIENT Tabelle angegeben. Das PRIMÄRSCHLÜSSEL Einschränkung impliziert die NICHT NULL Zwang, weil ein Primärschlüssel nicht einen Nullwert haben kann.

Obwohl die meisten DBMS-Systeme ermöglichen es Ihnen, ohne Primärschlüssel eine Tabelle zu erstellen, werden alle Tabellen in einer Datenbank sollte man haben. Mit dem im Verstand, ersetzen die NICHT NULL Zwang in allen Tabellen. Im Beispiel die Tests, ANGESTELLTEN, Aufträge und Ergebnisse, Tabellen sollte die haben PRIMÄRSCHLÜSSEL constraint, wie im folgenden Beispiel:

CREATE TABLE-Tests (Testname CHAR (30) PRIMARY KEY, StandardCharge CHAR (30)) -

Manchmal kann keine einzelne Spalte in einer Tabelle Einzigartigkeit garantieren. In solchen Fällen können Sie ein verwenden Composite-Schlüssel - eine Kombination von Spalten, die Eindeutigkeit bei der Verwendung gewährleisten. Stellen Sie sich vor, dass einige von VetLab-Kunden sind Ketten, die Büros in mehreren Städten haben. Kundenname nicht ausreichend ist, zwischen zwei Niederlassungen des gleichen Kunden zu unterscheiden. Um diese Situation zu handhaben, können Sie einen zusammengesetzten Schlüssel wie folgt definieren:

CREATE TABLE-Client (Client CHAR (30) NOT NULL, Address1CHAR (30), Address2CHAR (30), Stadt CHAR (25) NOT NULL, StateCHAR (2), Postal CHAR (10), PhoneCHAR (13), Fax CHAR (13 ), Contact CHAR (30), CONSTRAINT BranchPK PRIMARY KEY (Clientname, Stadt)) -

Als Alternative einen zusammengesetzten Schlüssel zu verwenden, einen Datensatz eindeutig zu identifizieren, können Sie Ihre DBMS lassen eine automatisch zuweisen, wie Zugriff hat in was darauf hindeutet, dass das erste Feld in einer neuen Tabelle ID benannt werden und der Auto-Nummerierung Typ sein. Ein solcher Schlüssel hat keine Bedeutung an sich. Sein einziger Zweck ist eine eindeutige Kennung sein.

Fremdschlüssel

EIN Unbekannter Schlüssel ist eine Spalte oder eine Gruppe von Spalten in einer Tabelle, die auf oder verweist in einer anderen Tabelle in der Datenbank einen Primärschlüssel entspricht. Ein Fremdschlüssel muss nicht eindeutig sein, aber es muss die Spalte (n) in der jeweiligen Tabelle, die die Schlüsselreferenzen eindeutig zu identifizieren.

wenn der Kundenname Spalte ist der Primärschlüssel in der Client-Tabelle (zum Beispiel), muss jede Zeile in der Tabelle Kunde haben einen eindeutigen Wert in der Kundenname Spalte. Kundenname ist ein Fremdschlüssel in der Tabelle ORDERS. Dieser Fremdschlüssel entspricht dem Primärschlüssel der Tabelle Kunde, aber der Schlüssel muss nicht einzigartig in der ORDERS-Tabelle zu sein.

In der Tat hoffen, dass Sie den Fremdschlüssel ist nicht unique- wenn jeder Ihrer Kunden gaben Sie nur einen Auftrag und dann nie wieder bestellt, würden Sie ziemlich schnell aus dem Geschäft. Sie hoffen, dass viele Zeilen in der Tabelle ORDERS mit jeder Zeile in der Tabelle Kunde entsprechen, was darauf hinweist, dass fast alle Ihre Kunden sind Stammkunden.

Die folgende Definition der ORDERS-Tabelle zeigt, wie Sie das Konzept der Fremdschlüssel ein hinzufügen ERSTELLEN Erklärung:

CREATE TABLE ORDERS (Auftragsnummer INTEGER PRIMARY KEY, Client CHAR (30), TestOrdered CHAR (30), Verkäufer CHAR (30), Orderdate DATE, CONSTRAINT NameFK FOREIGN KEY (Clientname) LITERATUR CLIENT (Clientname), CONSTRAINT TestFK FOREIGN KEY (TestOrdered) LITERATUR Tests (Testname), CONSTRAINT SalesFK FOREIGN KEY (Verkäufer) REFERENCES Mitarbeiter (EmployeeName)) -

In diesem Beispiel verknüpfen Fremdschlüssel in der Tabelle ORDERS die Tabelle zu den Primärschlüssel der CLIENT, Tests und EMPLOYEE Tabellen.

Menü