it-swarm.com.de

Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel

Ich benutze MySQL-Datenbank. Ich habe eine Verwechslung zwischen Primärschlüssel und eindeutigem Schlüssel.

Bitte helfen Sie mir, wo ich einen primären und eindeutigen Schlüssel erstellen soll. Ich meine, in welcher Situation wir einen eindeutigen Schlüssel oder Primärschlüssel erstellen.

230
Anuj

Primärschlüssel:

  • In einer Tabelle kann es nur einen Primärschlüssel geben
  • In einigen DBMS kann es nicht NULL sein - z. MySQL fügt NOT NULL hinzu
  • Primärschlüssel ist eine eindeutige Schlüsselkennung des Datensatzes

Eindeutiger Schlüssel:

  • Kann mehr als ein eindeutiger Schlüssel in einer Tabelle sein
  • Ein eindeutiger Schlüssel kann NULL Werte haben
  • Es kann ein Kandidatenschlüssel sein
  • Eindeutiger Schlüssel kann NULL sein; Mehrere Zeilen können NULL Werte haben und werden daher möglicherweise nicht als "eindeutig" betrachtet.
205
Mr. KB

Eindeutiger Schlüssel (UK) : Dies ist eine Spalte oder eine Gruppe von Spalten, die eine Eindeutigkeit in einer Zeile identifizieren können.

Primärschlüssel (PK) : Es ist auch eine Spalte oder eine Gruppe von Spalten das kann eine Einzigartigkeit in einer Reihe identifizieren.

Der Primärschlüssel ist also nur ein anderer Name für den eindeutigen Schlüssel, die Standardimplementierung in SQL Server unterscheidet sich jedoch für den Primärschlüssel und den eindeutigen Schlüssel.

Standardmäßig:

  1. PK erstellt einen Clustered-Index und UK erstellt einen Non-Clustered-Index.
  2. PK ist nicht null, aber UK erlaubt null (Hinweis: Standardmäßig)
  3. Es kann nur eine und nur eine PK auf einem Tisch geben, aber es können mehrere UKs vorhanden sein
  4. Sie können die Standardimplementierung je nach Bedarf überschreiben.

Es hängt wirklich davon ab, welches Ziel Sie verfolgen, wenn Sie sich für die Gründung eines UK oder eines PK entscheiden. Es folgt eine Analogie wie "Wenn es ein Team von drei Personen gibt, sind sie alle gleichberechtigt, aber es wird eine von ihnen geben, die ein Paar von Gleichberechtigten sein wird: PK und UK haben eine ähnliche Beziehung." Ich würde vorschlagen, diesen Artikel zu lesen: Das vom Autor angegebene Beispiel scheint möglicherweise nicht geeignet zu sein, aber versuchen Sie, sich einen Gesamtüberblick zu verschaffen.

http://tsqltips.blogspot.com/2012/06/difference-between-unique-key-and.html

73
dhi

Für eine Organisation oder ein Unternehmen gibt es so viele physische Entitäten (wie z. B. Personen, Ressourcen, Maschinen usw.) und virtuelle Entitäten (deren Aufgaben, Transaktionen, Aktivitäten). In der Regel muss das Unternehmen die Informationen dieser Unternehmenseinheiten aufzeichnen und verarbeiten. Diese Geschäftseinheiten werden innerhalb einer gesamten Geschäftsdomäne durch einen Schlüssel identifiziert.

Gemäß RDBMS-Prospective ist der Schlüssel (ein Kandidatenschlüssel) ein Wert oder eine Gruppe von Werten, die eine Entität eindeutig identifizieren.

Für eine DB-Tabelle sind so viele Schlüssel vorhanden, dass sie möglicherweise für den Primärschlüssel in Frage kommen. Damit alle Schlüssel, Primärschlüssel, eindeutigen Schlüssel usw. gemeinsam als Kandidatenschlüssel bezeichnet werden. DBA hat jedoch einen Schlüssel aus dem Kandidatenschlüssel zum Durchsuchen von Datensätzen ausgewählt, der als Primärschlüssel bezeichnet wird.

Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel

1. Verhalten: Mit dem Primärschlüssel wird eine Zeile (ein Datensatz) in einer Tabelle identifiziert, während mit dem Eindeutig-Schlüssel doppelte Werte in einer Spalte verhindert werden sollen (mit Ausnahme eines Null-Eintrags).

2. Indizierung: Standardmäßig erstellt die SQL-Engine einen gruppierten Index für den Primärschlüssel, falls nicht vorhanden, und einen nicht gruppierten Index für den eindeutigen Schlüssel.

3. Nullfähigkeit: Der Primärschlüssel enthält keine Nullwerte, wohingegen der eindeutige Schlüssel keine Nullwerte enthält.

4. Existenz: Eine Tabelle kann höchstens einen Primärschlüssel, aber mehrere Eindeutige Schlüssel haben.

5. Modifizierbarkeit: Sie können Primärwerte nicht ändern oder löschen, Unique-Key-Werte jedoch.

Weitere Informationen und Beispiele:

http://dotnetauthorities.blogspot.in/2013/11/Microsoft-SQL-Server-Training-Online-Learning-Classes-Integrity-Constraints-PrimaryKey-Unique-Key_27.html

Ein Primärschlüssel muss eindeutig sein.

Ein eindeutiger Schlüssel muss nicht der Primärschlüssel sein - siehe Kandidatenschlüssel .

Das heißt, es kann mehr als eine Kombination von Spalten in einer Tabelle geben, die eine Zeile eindeutig identifizieren kann - nur eine davon kann als Primärschlüssel ausgewählt werden. Die anderen, obwohl einzigartig, sind Kandidatenschlüssel.

26
Oded

Ein Primärschlüssel hat die Semantik, die Zeile einer Datenbank zu identifizieren. Daher kann es nur einen Primärschlüssel für eine bestimmte Tabelle geben, während es viele eindeutige Schlüssel geben kann.

Aus dem gleichen Grund kann ein Primärschlüssel auch nicht NULL sein (zumindest in Oracle, bei anderen Datenbanken nicht sicher).

Da es die Zeile identifiziert, sollte es sich niemals ändern. Das Ändern von Primärschlüsseln kann zu ernsthaften Schmerzen und wahrscheinlich zu ewiger Verdammnis führen.

In den meisten Fällen möchten Sie daher eine künstliche ID für den Primärschlüssel, die nur zum Identifizieren einzelner Zeilen in der Tabelle verwendet wird.

Eindeutige Schlüssel können sich jedoch beliebig ändern.

16
Jens Schauder

Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel

+-----------------------------------------+-----------------------------------------------+
|                Primary Key              |                    Unique Key                 |
+-----------------------------------------+-----------------------------------------------+
| Primary Key can't accept null values.   | Unique key can accept only one null value.    |
+-----------------------------------------+-----------------------------------------------+
| By default, Primary key is clustered    | By default, Unique key is a unique            |
| index and data in the database table is | non-clustered index.                          |
| physically organized in the sequence of |                                               |
| clustered index.                        |                                               |
+-----------------------------------------+-----------------------------------------------+
| We can have only one Primary key in a   | We can have more than one unique key in a     |
| table.                                  | table.                                        |
+-----------------------------------------+-----------------------------------------------+
| Primary key can be made foreign key     | In SQL Server, Unique key can be made foreign |
| into another table.                     | key into another table.                       |
+-----------------------------------------+-----------------------------------------------+

Detaillierte Informationen finden Sie bei:
http://www.dotnet-tricks.com/Tutorial/sqlserver/V2bS260912-Differenz zwischen-Primary-Key-und-Unique-Key.html

15
Omer K

Ein Primärschlüssel ist ein eindeutiger Schlüssel.

Jede Tabelle muss höchstens EINEN Primärschlüssel haben, kann jedoch mehrere eindeutige Schlüssel haben. Ein Primärschlüssel wird verwendet, um eine Tabellenzeile eindeutig zu identifizieren. Ein Primärschlüssel kann nicht NULL sein, da NULL kein Wert ist.

7
Buhake Sindi
  • Denken Sie, der Tabellenname ist Employe.
  • Primärschlüssel
  • Der Primärschlüssel kann keine Nullwerte akzeptieren. Primärschlüssel erzwingt die Eindeutigkeit einer Spalte. Wir können nur einen Primärschlüssel in einer Tabelle haben.
  • Einzigartiger Schlüssel
  • Der eindeutige Schlüssel kann Nullwerte annehmen. Der eindeutige Schlüssel erzwingt auch die Eindeutigkeit einer Spalte. Wenn der eindeutige Schlüssel Nullwerte enthält, warum kann er dann eindeutig sein? Ja, obwohl es Nullwerte akzeptieren kann, erzwingt es die Eindeutigkeit einer Spalte. Schauen Sie sich einfach das Bild an. Hier ist Emp_ID primär und Citizen ID ist eindeutig. Ich hoffe du verstehst. Wir können mehrere eindeutige Schlüssel in einer Tabelle verwenden. enter image description here
6

Ich weiß, dass diese Frage mehrere Jahre alt ist, aber ich möchte eine Antwort auf diese Erklärung geben warum und nicht wie

Zweck des Primärschlüssels: Eine Zeile in einer Datenbank eindeutig identifizieren => Eine Zeile repräsentiert eine einzelne Instanz des von der Tabelle modellierten Entitätstyps. Ein Primärschlüssel erzwingt die Integrität einer Entität, AKA Entity Integrity. Der Primärschlüssel wäre ein Clustered-Index, d. H. Er definiert die Reihenfolge, in der Daten physisch in einer Tabelle gespeichert werden.

Zweck des eindeutigen Schlüssels: Ok, mit dem Primärschlüssel haben wir eine Möglichkeit, eine Zeile eindeutig zu identifizieren. Aber ich habe ein Geschäftsbedürfnis, dass eine andere Spalte/ein Satz von Spalten eindeutige Werte haben sollte. Nun, da diese Spalte (n) eindeutig ist (sind), kann sie ein Kandidat für die Durchsetzung der Integrität von Entitäten sein. Aber soweit wir wissen, kann diese Spalte Daten enthalten, die von einer externen Organisation stammen und an deren Einzigartigkeit ich zweifeln kann. Ich kann es nicht vertrauen, um die Integrität der Einheit zu gewährleisten. Ich mache es einfach zu einem einzigartigen Schlüssel, um meine geschäftlichen Anforderungen zu erfüllen.

Es geht los!

3
Manuri

Wenn Ihr Datenbankdesign so ist, dass kein Fremdschlüssel benötigt wird, können Sie den eindeutigen Schlüssel verwenden (, aber denken Sie daran, dass der eindeutige Schlüssel einen einzelnen Nullwert zulässt ). .

Wenn Sie für Ihre Datenbank einen Fremdschlüssel anfordern, haben Sie keine andere Wahl, als den Primärschlüssel zu verwenden.

Um den Unterschied zwischen eindeutigem und Primärschlüssel zu sehen, besuchen Sie hier

1
user2903536

Unterschied zwischen Primärschlüssel und eindeutigem Schlüssel

Beide Primary key und Unique Key werden verwendet, um eine Zeile in einer Tabelle eindeutig zu definieren. _Primary Key_ erstellt ein clustered index der Spalte, wohingegen ein _Unique creates an unclustered index of the column_.

_A Primary Key_ lässt _NULL value_ nicht zu, jedoch _a Unique Key_ lässt _one NULL value_ zu.

0
Gufran Hasan

Primärschlüssel

Der Hauptzweck des Primärschlüssels besteht darin, ein Mittel zum Identifizieren jedes Datensatzes in der Tabelle bereitzustellen.

Der Primärschlüssel bietet eine Möglichkeit, die Zeile anhand der Daten in der Zeile zu identifizieren. Ein Primärschlüssel kann auf einer oder mehreren Spalten basieren, z. B. Vor- und Nachname. In vielen Designs ist der Primärschlüssel jedoch eine automatisch generierte Zahl aus einer Identitätsspalte.

Ein Primärschlüssel weist die folgenden Merkmale auf:

  1. Es kann nur einen Primärschlüssel für eine Tabelle geben.
  2. Der Primärschlüssel besteht aus einer oder mehreren Spalten.
  3. Der Primärschlüssel erzwingt die Entitätsintegrität der Tabelle.
  4. Alle definierten Spalten müssen als NOT NULL definiert sein.
  5. Der Primärschlüssel identifiziert eine Zeile eindeutig.
  6. Primärschlüssel führen standardmäßig zu eindeutigen CLUSTERED-Indizes.

Eindeutige Schlüssel

Ein eindeutiger Schlüssel wird auch als eindeutige Einschränkung bezeichnet. Eine eindeutige Einschränkung kann verwendet werden, um sicherzustellen, dass die Zeilen in der Datenbank eindeutig sind.

Tun wir das nicht schon mit dem Primärschlüssel? Ja, aber eine Tabelle kann mehrere Spaltensätze enthalten, die eindeutig sein sollen.

In SQL Server weist der eindeutige Schlüssel die folgenden Merkmale auf:

  1. In einer Tabelle können mehrere eindeutige Schlüssel definiert sein.
  2. Unique Keys führen standardmäßig zu NONCLUSTERED Unique Indexes.
  3. Eine oder mehrere Spalten bilden einen eindeutigen Schlüssel.
  4. Spalte kann NULL sein, aber eine NULL pro Spalte ist zulässig.
  5. Eine eindeutige Einschränkung kann durch eine Fremdschlüsseleinschränkung referenziert werden.

quelle: hier

0
Manish Vadher

Die Hauptmerkmale eines Primärschlüssels sind:

Es muss einen eindeutigen Wert für jede Datenzeile enthalten. Es darf keine Nullwerte enthalten. Nur ein Primärschlüssel in einer Tabelle.

Die Hauptmerkmale eines eindeutigen Schlüssels sind:

Es kann auch einen eindeutigen Wert für jede Datenzeile enthalten.

Es kann auch Nullwerte enthalten.

Mehrere eindeutige Schlüssel in einer Tabelle.

0
Nischal Tyagi

Simply Primary Key ist ein eindeutiger Schlüssel und kann nicht null sein. Unique kann null sein und darf nicht eindeutig sein.

0

Eindeutiger Schlüssel: - Sollte verwendet werden, wenn Sie einen eindeutigen Wert angeben müssen. Im Falle eines eindeutigen Schlüssels bedeutet dies, dass auch Nullwerte zulässig sind. Eindeutige Schlüssel sind solche Schlüssel, die eindeutig und in dieser Spalte nicht ähnlich sind, wie zum Beispiel Ihr Kosename .it kann nicht mit null identisch sein, und wenn Sie im Kontext der Datenbank nachfragen, muss beachtet werden, dass sich jede Null von einer anderen Null in der Datenbank unterscheidet. EXCEPT-SQL Server, wobei null = null wahr ist


primärschlüssel: - Dieser Schlüssel sollte verwendet werden, wenn Sie eine Zeile eindeutig identifizieren müssen. Der Primärschlüssel ist der Schlüssel, der für jede Zeile in einer Datenbankeinschränkung eindeutig ist, da er keine Null zulässt. Möglicherweise haben Sie also gesehen, dass die Datenbank leer ist Haben Sie eine Spalte, die automatisch inkrementiert wird und den Primärschlüssel der Tabelle darstellt. Außerdem kann es als Fremdschlüssel in einer anderen Tabelle verwendet werden. Beispiel: orderId in einer Auftragstabelle, billId in einer Rechnungstabelle.

Kommen wir jetzt auf die Situation zurück, in der es verwendet werden soll: -

1)Primärschlüssel in der Spalte, der in der Tabelle nicht null sein darf und den Sie als Fremdschlüssel in einer anderen Tabelle zum Erstellen einer Beziehung verwenden

2) eindeutiger Schlüssel in der Tabelle, auf den sich weder in der Tabelle noch in der gesamten Datenbank auswirkt, ob Sie die Null für eine bestimmte Spalte setzen, wie bei Snacks im Restaurant. Es ist möglich, dass Sie in einem Restaurant keine Snacks nehmen.

0
ayushs27