2 Stimmen

OLAP: Warum sollten alle Fremdschlüssel zwischen Faktentabellen und Dimensionstabellen Surrogatschlüssel sein?

Ich lese gerade einen Wikipedia-Artikel über OLAP und OLAP-Faktentabellen und im Artikel steht

Alle Fremdschlüssel zwischen Faktentabellen und Dimensionstabellen sollten Surrogat schlüssel sein, und nicht wiederverwendete Schlüssel aus operationellen Daten.

Aber es wird nicht erklärt warum. Also, warum sollten

Alle Fremdschlüssel zwischen Faktentabellen und Dimensionstabellen sollten Surrogat schlüssel sein, und nicht wiederverwendete Schlüssel aus operationellen Daten.

?

3voto

Tudor Constantin Punkte 25366

Aus der ausführlichen Erklärung, was ist eine Dimensions-Tabelle von Wikipedia:

Es wird empfohlen, dass das Schlüsselfeld ein einfacher Integer ist, aus dem Grund, dass der Schlüsselwert bedeutungslos ist und nur dazu dient, Verknüpfungsfelder zwischen den Fakt- und Dimensions-Tabellen zu sein. Die Verwendung von surrogaten Dimensionsschlüsseln bringt mehrere Vorteile mit sich:

  • Leistung - der Verknüpfungsprozess ist viel effizienter, wenn ein einzelner Feldsurrogat verwendet wird,
  • Puffer vor betrieblichen Schlüsselverwaltungspraktiken - verhindert Situationen, in denen entfernte Datensätze wieder auftauchen könnten, wenn ihre natürlichen Schlüssel nach einer langen Ruhezeit wiederverwendet oder neu zugewiesen werden könnten,
  • Zuordnung zum integrieren disparater Quellen,
  • Bearbeitung unbekannter oder nicht anwendbarer Verbindungen,
  • Verfolgung von Änderungen in den Werten von Dimensionsattributen.

1voto

Sergio Tulentsev Punkte 218286

Hart erworbenes Wissen.

Schlüssel aus Betriebsdaten können jederzeit das Format ändern. Auf diese Weise ist es einfach.

Dies ist wie die Frage "Sollte ich die Sozialversicherungsnummer als Primärschlüssel für die Benutzer-Tabelle verwenden?". Während du es (theoretisch) könntest, ist es keine gute Idee.

Ich gebe jedoch zu, dass ich nicht wirklich weiß, wovon ich spreche. Ich erinnere mich nur daran, dass unsere Oracle-Leute in dieser Angelegenheit eine sehr starke Meinung hatten. :-)

0voto

Kyle Punkte 1

Ich würde niemals die Sozialversicherungsnummer als Primärschlüssel für irgendeine Tabelle verwenden. Diese Informationen erfordern einen hohen Schutz. Wenn sie als PK verwendet werden, würde sie auch in anderen Tabellen als der Fremdschlüsselverknüpfung erscheinen. Selbst eine Mitarbeiter-ID, die eindeutig für das Unternehmen ist und anderweitig nicht kompromittiert wird, sollte nicht verwendet werden. Fremdschlüssel arbeiten schneller. Sie ermöglichen, dass die Dimension als SCD Typ 2 eingerichtet wird. Selbst wenn du denkst, dass nur Typ 1 benötigt wird, kann sich in Zukunft etwas ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X