Primärschlüssel

Wenn Sie einen Kundenservice anrufen, werden sie nach ihrer Kundennummer gefragt, bei einer Reklamation will ihr Gegenüber eine Auftragsnummer oder eine Rechnungsnummer.

Kaum wurden die Daten, meistens Nummerns, einwandfrei mitgeteilt, kommt auch schon ein Feedback. Es wird nicht mehr gefragt, ob die eine oder andere Rechnung gemeint ist, auch nicht, ob der namensgleiche Großonkel der besprochene Kunde ist.

Warum?

Die abgefragten Eigenschaften sind sogenannte „Primary Keys“, Primärschlüsseln, diese Felder (Eigenschaften eines Objekts) beschreiben einen Datensatz eindeutig. Das hat das den Vorteil, dass die Daten zweifelsfrei abgefragt werden können.

Technisch gesehen hat das einen wesentlichen Impact. Wird in einer Tabelle im MS SQL Server ein Primärschlüssel definiert, dann wird darüber ein sogenannter Clustered Index, ein gruppierter Index erstellt. Ähnlich einem Index in einem Buch, wird dadurch das Suchen massiv beschleunigt.

Stellen sie sich vor sie suchen in einem Telefonbuch (das sind die alten, dicken, gelben Bücher) eine Telefonnummer. Suchen sie nach einem Familiennamen werden sie das Ergebnis ziemlich rasch finden. Wollen sie aber nach dem Vornamen suchen, sieht die Situation schon erheblich anders aus.
Sie müssen Zeile für Zeile des Telefonbuchs durchsuchen und können erst am Ende sicher sein, dass sie auch alle gefunden haben. Ein sogenannter Tablescan ist notwendig.

In relationalen Datenbanken (OLTP) ist es oft auch üblich mehrere Teilschlüsseln zu verwenden. Ein Beispiel dafür könnte ein Autokennzeichen sein. Nehmen wir ein typisches EU-Kennzeichen, Land, Verwaltungseinheit, Buchstabenziffern Kombination. Keines der drei Eigenschaften ist für sich allein eindeutig, erst in Kombination wird eine Eindeutigkeit erzielt. Warum das drei Eigenschaften sind? Das besprechen wir im nächsten Blog, wenn wir mit der Normalisierung beginnen.

In Analyse-Datenbanken (OLAP) wie zum Beispiel in Microsoft Power BI können sie nur eine aktive Beziehung zwischen 2 Tabellen (Objekten, Entitäten, Relationen) haben. Also können keine Teilschlüsselattribute verwendet werden. Die Lösung dafür ist ein künstlicher Schlüssel, ein sogenanntes Surrogat. Er wird eine künstliche Eigenschaft erfunden, die alle Merkmale eines Primärschlüssels hat, typischerweise eine Nummer.

Ich freue mich über Anregungen.

Zurück
Zurück

Datenbankmonitoring

Weiter
Weiter

Normalisierung