Relationale vs. dimensionale Datenbanken, was ist der Unterschied?
Ich versuche zu lernen über OLAP und data warehousing, und ich bin verwirrt über den Unterschied zwischen relationalen und dimensionalen Modellierung. Ist dreidimensionale Modellierung grundsätzlich relationale Modellierung, aber so für redundante/un-normalisierten Daten?
Zum Beispiel, sagen wir, ich habe historische Daten im Verkauf (Produkt, Stadt, # sales). Ich verstehe, dass das folgende wäre eine relationale Sicht:
Produkt | City | # Sales Äpfel, San Francisco, 400 Äpfel, Boston, 700 Äpfel, Seattle, 600 Orangen, San Francisco, 550 Orangen, Boston, 500 Orangen, Seattle, 600
Während der folgenden ist ein mehr dimensionales point-of-view:
Produkt | San Francisco | Boston | Seattle Äpfel, 400, 700, 600 Orangen, 550, 500, 600
Aber es scheint, wie beide Standpunkte würde dennoch umgesetzt werden, in einem identischen Stern-schema:
Fakt-Tabelle: Produkt-ID, Region-ID, # Sales Product-dimension: Produkt-ID, Produkt-Name Stadt Dimensions: Stadt-ID, Name der Stadt
Und es ist nicht, bis Sie beginnen, hinzufügen von ein paar zusätzliche details zu jeder dimension, dass die Unterschiede beginnen aufspringen. Zum Beispiel, wenn Sie auf die Strecke wollten-Regionen, eine relationale Datenbank würde dazu neigen, eine separate region Tabelle, um Sie zu halten alles normalisiert:
Stadt Dimensions: Stadt-ID, City Name, Region ID Dimension Region: Region ID, Name der Region, Region Manager -, # Regional-Filialen
Während eine dreidimensionale Datenbank würde es erlauben, Denormalisierung, dass die region Daten in der Stadt dimension, um die es leichter machen, schneiden Sie die Daten:
Stadt Dimensions: Stadt-ID, City Name, Region Name, Region Manager -, # Regional-Filialen
Ist das richtig?
InformationsquelleAutor der Frage grautur | 2010-05-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einem star-schema liegt wirklich an der Kreuzung des relationalen Modells der Daten und dem dreidimensionalen Modell der Daten. Es ist wirklich ein Weg, beginnend mit einem dreidimensionalen Modell, und das mapping in SQL-Tabellen, die etwas ähneln die SQL-Tabellen erhalten Sie, wenn Sie beginnen, aus einer relationalen Modell.
Sage ich etwas ähneln, da viele relationale design-Methoden führen in einer normalisierten design, oder zumindest eine fast normalisiert design. Ein star-schema wird erhebliche Abweichungen vom vollständigen Normalisierung.
Jeder Abfahrt von vollständigen Normalisierung führt mit ihm eine konsequente data update-Anomalie. (Ich bin auch anomlaies auf insert -, update-und delete-Operationen unter einem Dach). Diese Anomalien haben nichts zu tun mit dem, was Datenmodell, das Sie mit begann.
Den Kommentar auf OLTP-versus OLAP-hier relevant ist. Update-Anomalien haben unterschiedliche Auswirkungen auf die Leistungsfähigkeit und/oder Programmierung Schwierigkeit, in diesen beiden Situationen.
Zusätzlich zu einem star schema in einer SQL-databaase, es gibt dimensionalen Datenbank-Produkte gibt, die Speicherung von Daten in einer physischen form, die einzigartig für das Produkt. Mit diesen Produkten, die Sie nicht sehen, ein Stern-schema so viel, wie Sie sehen, eine direkte Umsetzung des dimensionalen Modells und einer Benutzeroberfläche, die möglicherweise besonderen für das Produkt. Einige dieser Schnittstellen erlauben OLAP-Operationen werden komplett Punkt-und-klicken.
Nur als Abschweifung von deiner Frage habe ich mal gebaut, ein star-schema als eine Zwischenstufe zwischen einer OLTP-Datenbank mit Unterstützung für eine Transaktion-basierte Anwendung und eine datacube im inneren Cognos PowerPlay. Mit standard-ETL-Techniken, die kombinierte übertragung aus der OLTP-Datenbank in das star-schema und dann aus der star-schema in den Daten-cube eigentlich besser als der direkte transfer von der OLTP-Datenbank zu den datacube. Dies war ein unerwartetes Ergebnis.
Hoffe, das hilft.
InformationsquelleAutor der Antwort Walter Mitty
In einfachen Worten OLTP-normalisierte Datenbank sind so konzipiert, mit optimalen "transactional" - Sicht. Datenbanken normalisiert, um optimal zu funktionieren, um eine transaktionale system. Wenn ich sage, Optimierung von Transaktions-system, mit dem ich meine ..bekommen, um ein design-Stand der Datenbank-Struktur, bei der alle Transaktions-Operationen wie löschen,einfügen,aktualisieren und wählen Sie ausgewogen sind, zu geben, gleich oder optimale Bedeutung für alle von Ihnen an jedem Punkt der Zeit..., wie Sie sind gleichwertig in eine transaktionale system.
Und dass das, was ein einheitliches system bieten ..minimal-updates für eine Aktualisierung der Daten,minimal einfügen möglich für neuen Eintrag,einen Platz zu löschen Kategorie löschen etc. (z.B. neue Produkt-Kategorie )...all das ist möglich, ein wir-branch ein master erstellen-Tabellen .....aber das kommt auf Kosten der "select" - operation delay ..aber wie gesagt seine(Normalisierung) nicht das effizienteste Modell für alle Operationen ..seine "Optimale"...gesagt haben wir andere Methoden zur Verbesserung der Daten abrufen der Geschwindigkeit..wie Indizierung etc.
Auf der anderen Seite Dreidimensionalen Modell (meist genutzt für data-ware-house-design)..bedeutete für die Bedeutung nur einer Art von Operationen, das ist die Auswahl der Daten..., wie dies bei data-ware-houses ..Daten aktualisieren/einfügen passiert regelmäßig ..und seine einmalige Kosten.
So, wenn man versuchen zu zwicken normalisierte Datenstruktur, so dass nur die Auswahl ist der wichtigste Vorgang an einem beliebigen Punkt in der Zeit ...wir werden am Ende immer eine denormalisierte (ich würde sagen, teilweise denormalisierten)..dimensionalen Stern-Struktur.
-Nein dimension dimension join (d.h. master - /master-Tabellen-join)..Schneeflocke darstellen derselben dimension
Für details gehen Sie bitte durch detaillierte Bücher zu diesem Thema.
InformationsquelleAutor der Antwort Vijender
Ich habe gerade vor kurzem gelesen, bis auf den Unterschied zwischen Dimensionalen und Relationalen Datenmodellierung, da wir in Erster Linie verwenden Relationale Modelle an meinem Geschäft, wo speichern wir in einem Enterprise Data Warehouse (EDW).
Laut Steve Hoberman in seinem Buch "Data Modeling Made Simple" ist die Unterscheidung zwischen den 2 Arten von Modellen:
Kann argumentiert werden, dass ein relationales Modell kann auch verwendet werden, als Grundlage für die Geschäftsfragen beantworten, aber auf eine taktische Ebene. "Wie viele Bestellungen sind in einem unerfüllten Zustand für den Kunden x durch Kredit aufnehmen?" Aber der Unterschied ist, dass, wo die Berichterstattung Frage muss der "native Korn' von der Tabelle und wenn die reporting-Frage beantwortet werden kann, mit verdichteten Daten.
In die oben genannten 2 Beispiele, Sie sind eigentlich beide Beispiele, Dimensionale Datenmodellierung, da weder der 2 Tabellen die Speicherung der Kundenauftrag in seinem 'native Korn", und daher nicht erfassen, die Unternehmen in den Prozess der Erstellung eines Kundenauftrags. Der einzige Unterschied zwischen den 2 Tabellen ist, dass in der 2. Tabelle die dimension Stadt wurde umgesetzt in die Tat-Tabelle.
InformationsquelleAutor der Antwort codemagic
Fand ich die Beschreibung, die ich gefunden auf http://www.orafaq.com/node/2286 sehr hilfreich, wenn Sie kommen, um Stern-schema ist aus einer relationalen Perspektive.
InformationsquelleAutor der Antwort Sam Shiles