wake-up-neo.com

Unterschied zwischen Faktentabelle und Dimensionstabelle?

Beim Lesen eines Buches für Geschäftsobjekte bin ich auf die Begriffs- und Dimensionstabelle gestoßen.

Ich versuche zu verstehen, was der Unterschied zwischen Dimensionstabelle und Faktentabelle ist.

Ich habe einige Artikel im Internet gelesen, konnte sie aber nicht klar verstehen.

Kann ich anhand eines einfachen Beispiels besser verstehen?

66
user2467545

Dies ist der Teil zu beantworten:

Ich habe versucht zu verstehen, ob Dimensionstabellen auch Faktentabellen sein können oder nicht.

Die kurze Antwort (INMO) lautet Nein. Dies liegt daran, dass die beiden Tabellentypen aus unterschiedlichen Gründen erstellt werden. Aus Sicht des Datenbankentwurfs kann eine Dimensionstabelle jedoch eine übergeordnete Tabelle haben, wie dies bei der Faktentabelle der Fall ist, die immer eine Dimensionstabelle (oder mehr) als übergeordnete Tabelle hat. Faktentabellen können auch aggregiert werden, während Dimensionstabellen nicht aggregiert werden. Ein weiterer Grund ist, dass Faktentabellen nicht direkt aktualisiert werden sollen, während Dimensionstabellen in einigen Fällen direkt aktualisiert werden könnten.

Mehr Details:

Fakten- und Dimensionstabellen werden in einem sogenannten Sternschema angezeigt. Ein Hauptzweck des Sternschemas besteht darin, eine komplexe normalisierte Menge von Tabellen zu vereinfachen und Daten (möglicherweise von verschiedenen Systemen) in einer Datenbankstruktur zu konsolidieren, die auf sehr effiziente Weise abgefragt werden kann.

In seiner einfachsten Form enthält es eine Faktentabelle (Beispiel: StoreSales) und eine oder mehrere Dimensionstabellen. Jedem Dimensionseintrag sind mindestens 0,1 Faktentabellen zugeordnet (Beispiel für Dimensionstabellen: Geografie, Artikel, Lieferant, Kunde, Zeit usw.). Es wäre auch für die Dimension gültig, ein Elternteil zu haben, in welchem ​​Fall das Modell vom Typ "Schneeflocke" ist. Designer versuchen jedoch, diese Art von Design zu vermeiden, da dadurch mehr Joins entstehen, die die Leistung beeinträchtigen. Im Beispiel von StoreSales könnte die Dimension "Geografie" aus den Spalten bestehen (GeoID, Inhaltsname, Ländername, Statusanbietername, Städtename, Startdatum, Enddatum).

In einem Snow Flakes-Modell könnten Sie 2 normalisierte Tabellen für Geoinformationen haben, nämlich: Inhaltstabelle, Ländertabelle.

Auf Star Schema finden Sie viele Beispiele. Überprüfen Sie dies auch, um eine alternative Ansicht des Sternschemamodells zu erhalten Inmon vs. Kimball . Kimbal hat ein gutes Forum, das Sie vielleicht auch hier ansehen möchten: Kimball Forum .

Bearbeiten: Um Kommentare zu Beispielen für 4NF zu beantworten:

  • Beispiel für eine Faktentabelle, die 4NF verletzt:

Verkaufsfaktor (ID, BranchID, SalesPersonID, ItemID, Betrag, TimeID)

  • Beispiel für eine Faktentabelle, die 4NF nicht verletzt:

AggregatedSales (BranchID, TotalAmount)

Hier ist die Beziehung in 4NF

Das letzte Beispiel ist eher ungewöhnlich.

38
NoChance

In der Data Warehouse-Modellierung besteht ein Sternschema und ein Schneeflockenschema aus Faktentabellen und Maßtabellen .

Faktentabelle:

  • Es enthält alle Primärschlüssel der Dimension und die dazugehörigen Fakten oder Kennzahlen (eine Eigenschaft, für die Berechnungen durchgeführt werden können) wie die verkaufte Menge, die verkaufte Menge und den durchschnittlichen Umsatz.

Dimensionstabellen:

  • Die Dimensionstabellen enthalten beschreibende Informationen zu allen in der Faktentabelle aufgezeichneten Messungen.
  • Die Abmessungen sind als Vergleich der Faktentabelle relativ klein.
  • Häufig verwendete Dimensionen sind Menschen, Produkte, Ort und Zeit.

enter image description here

Bildquelle

101
Premraj

Dies scheint eine sehr einfache Antwort auf die Unterscheidung zwischen Fakt- und Maßtabellen zu sein!

Es kann hilfreich sein, sich Dimensionen als Dinge oder Objekte vorzustellen. So etwas wie ein Produkt kann existieren, ohne jemals an einem Geschäftsereignis beteiligt zu sein. Eine Dimension ist dein Nomen. Es ist etwas, das unabhängig von einem Geschäftsereignis wie einem Verkauf existieren kann. Produkte, Mitarbeiter, Geräte sind alles Dinge, die existieren. Eine Dimension tut entweder etwas oder hat etwas damit zu tun.

Mitarbeiter verkaufen, Kunden kaufen. Mitarbeiter und Kunden sind Beispiele für Dimensionen.

Produkte werden verkauft, sie sind auch Dimensionen, da sie etwas damit zu tun haben.

Fakten sind das Verb. Ein Eintrag in einer Faktentabelle markiert ein diskretes Ereignis, das mit etwas aus der Dimensionstabelle passiert. Ein Produktverkauf würde in einer Faktentabelle erfasst. Das Verkaufsereignis wird dadurch gekennzeichnet, welches Produkt verkauft wurde, welcher Mitarbeiter es verkaufte und welcher Kunde es kaufte. Produkt, Mitarbeiter und Kunde sind alle Dimensionen, die das Ereignis, den Verkauf beschreiben.

Darüber hinaus enthalten Faktentabellen in der Regel auch quantitative Daten. Die verkaufte Menge, der Preis pro Artikel, der Gesamtpreis und so weiter.

Quelle: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/

85
AeyJey

Ich fand diese Antwort aus der Sicht einer Person, die nicht viel über die DB/DW-Terminologie weiß, verständlicher.

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

Ich empfehle, dies zuerst durchzugehen und dann Emmad Kareems Antwort durchzugehen, um die Granularität zu verbessern. Hoffe es ist hilfreich.

8
aa8y

Super einfache Erklärung:

Faktentabelle: Eine Datentabelle, die Lookup-IDs zusammenordnet. Ist normalerweise eine der Haupttabellen, die für Ihre Anwendung von zentraler Bedeutung sind.

Dimensionstabelle: Eine Nachschlagetabelle zum Speichern von Werten (z. B. Städtenamen oder Bundesstaaten), die in der Faktentabelle häufig wiederholt werden.

2
RelativitySQL
  1. Die Faktentabelle besteht hauptsächlich aus Geschäftsfakten und Fremdschlüsseln, die in den Dimensionstabellen auf Primärschlüssel verweisen. Eine Dimensionstabelle besteht hauptsächlich aus beschreibenden Attributen, die Textfelder sind.
  2. Eine Dimensionstabelle enthält einen Ersatzschlüssel, einen natürlichen Schlüssel und eine Reihe von Attributen. Im Gegenteil, eine Faktentabelle enthält einen Fremdschlüssel, Maße und entartete Dimensionen.
  3. Dimensionstabellen bieten beschreibende oder kontextbezogene Informationen für die Messung einer Faktentabelle. Auf der anderen Seite liefern Faktentabellen die Messungen eines Unternehmens.
  4. Beim Vergleich der Größe der beiden Tabellen ist eine Faktentabelle größer als eine Dimensionstabelle. In einer Vergleichstabelle werden mehr Dimensionen dargestellt als in den Faktentabellen. In einer Faktentabelle werden weniger Fakten beobachtet.
  5. Die Maßtabelle muss zuerst geladen werden. Beim Laden der Faktentabellen sollte man sich die Dimensionstabelle ansehen. Dies liegt daran, dass die Faktentabelle Kennzahlen, Fakten und Fremdschlüssel enthält, die die Primärschlüssel in der Dimensionstabelle sind.

Weiterlesen: Dimensionstabelle und Faktentabelle | Unterschied zwischen | Dimensionstabelle vs Faktentabelle http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

1
guest

In der einfachsten Form denke ich, dass eine Dimensionstabelle so etwas wie eine "Master" -Tabelle ist, die sozusagen eine Liste aller "Elemente" enthält.

Eine Faktentabelle ist eine Transaktionstabelle, die alle Transaktionen beschreibt. Darüber hinaus können aggregierte (gruppierte) Daten wie Gesamtumsatz nach Vertriebsmitarbeitern und Gesamtumsatz nach Branchen vorliegen. Solche Arten von Tabellen können auch als unabhängige Faktentabellen vorliegen.

1
user5729371