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?
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:
Verkaufsfaktor (ID, BranchID, SalesPersonID, ItemID, Betrag, TimeID)
AggregatedSales (BranchID, TotalAmount)
Hier ist die Beziehung in 4NF
Das letzte Beispiel ist eher ungewöhnlich.
In der Data Warehouse-Modellierung besteht ein Sternschema und ein Schneeflockenschema aus Faktentabellen und Maßtabellen .
Faktentabelle:
Dimensionstabellen:
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/
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.
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.
Weiterlesen: Dimensionstabelle und Faktentabelle | Unterschied zwischen | Dimensionstabelle vs Faktentabelle http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo
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.