Eine Datenbank ohne Zugriff auf Quelldaten normalisieren?

8

Ich habe eine neue Rolle gestartet, die sich mit einer großen Menge verwandter Daten befasst. Unsere Quelle für all diese Daten sind verschiedene Excel-Dumps, die aus Datenbanken stammen, auf die wir keinen Zugriff haben. Die vorherige Person, die diese Rolle ausfüllte, verwendete ungefähr ein Dutzend Excel-Dateien, um diese Datendateien zu sammeln, zu bearbeiten und Berichte zu erstellen.

Ich habe begonnen, die Speicherauszüge in eine Access-Datenbank zu verschieben. Ich habe festgestellt, dass viele Excel-Daten zusammenhängen und wahrscheinlich normalisiert werden sollten. Derzeit habe ich für jeden Datendump eine Tabelle erstellt, diese in Access importiert und mithilfe einer Reihe von Abfragen Dutzende von Datenmanipulationen und Berichten repliziert.

Gibt es noch Vorteile bei der Normalisierung von Daten, bei denen meine einzige Quelle Excel-Dumps aus einem Lager sind?

Wie würde ich Daten normalisieren, wenn ich nicht in der Lage bin, das Format für das Senden der Dumps an mich zu ändern?

Außerdem ist mein Plan (budgetabhängig), von Access auf eine MS SQL-Datenbank umzusteigen.

pedram
quelle
4
Normalerweise möchten Sie KEINE Daten normalisieren, die nicht transaktionsbezogen sind und nur für die Berichterstellung verwendet werden. Wenn die Daten aus einem Data Warehouse stammen, haben sie bereits die harte Arbeit für Sie erledigt. Laden Sie es einfach in Access und fragen Sie ab.
HardCode
Enthalten die Excel-Dumps zur Verdeutlichung die Rohdaten oder handelt es sich um voraggregierte Daten / Berichtsdaten? Kommt die Datenquelle von einem Herstellerexport (dh können Sie mit demjenigen kommunizieren, der die betreffenden Datenstrukturen entworfen hat)?
Jon Seigel
Excel-Dumps stammen entweder vom Anbieter oder von unserem eigenen Data Warehouse. Es handelt sich also entweder um Rohdaten oder um Rohdaten mit minimaler Anzahl von Transformationen (z. B. 0/1 Änderungen an Ja / Nein oder Konto-Code, der der Kontobeschreibung zugeordnet ist). Ich kann mit denen kommunizieren, die die Datenstrukturen entworfen haben, aber keinen Einfluss darauf haben, wie sie entworfen wurden. Um einen gewissen Kontext zu geben, ich bin kein DBA, aber ich versuche angesichts finanzieller und politischer Zwänge die beste Lösung für unser Team zu finden.
Pedram

Antworten:

6

Ja, die Normalisierung von Daten bietet erhebliche Vorteile, wenn Sie bereit sind, die Arbeit zu leisten, um sie zu erreichen und zu warten. Die zwei grundlegenden Vorteile der Normalisierung sind:

  • Datenintegrität
  • Flexibilität bei Abfragen

Der einfache Ansatz zur Normalisierung besteht darin, eine Tabelle für jede Person, jeden Ort, jede Sache, jedes Konzept oder jedes Ereignis zu erstellen. Auf diese Weise haben Sie jedes Merkmal jeder Person, jedes Ortes, jeder Sache, jedes Konzepts oder jedes Ereignisses, das Sie interessiert, an einem und nur einem Ort in der Datenbank. Der Vorteil der Datenintegrität wird beim Einfügen und Aktualisieren von Daten erzielt. Da Sie normalisiert haben, verfügen Sie an vielen Stellen in der Datenbank nicht über redundante Kopien desselben Merkmals mit jeweils unterschiedlichen Werten, die Sie aktualisieren und synchronisieren müssen. Zweitens haben Sie nur einen Platz in der Datenbank, an dem Sie beim Einfügen oder Aktualisieren von Daten Überprüfungen programmieren können, um sicherzustellen, dass die Daten gültig sind. Da Ihre Daten aus vielen Excel-Tabellen stammen, Durch die Normalisierung Ihrer Daten haben Sie die Möglichkeit, Datenintegritätsprüfungen für die Last durchzuführen, um sicherzustellen, dass Ihre Analyse auf genauen Daten basiert. Der Vorteil der Abfrageflexibilität wird erreicht, wenn Sie die Daten lesen und analysieren möchten. Da Sie die Daten normalisiert haben, können Sie die Tabellen auf flexible Weise verbinden, basierend auf der Frage zu den Daten, die Sie beantworten möchten, einschließlich nur der Informationen, die Sie zur Beantwortung der spezifischen Frage benötigen. Zweitens kann die Datenbank die Antworten auf Ihre Fragen viel schneller zurückgeben, als wenn sie alle Daten, einschließlich der für Ihre Frage nicht relevanten Daten, in Ihren nicht normalisierten Tabellen durchsuchen müsste. Da Sie die Daten normalisiert haben, können Sie die Tabellen auf flexible Weise verbinden, basierend auf der Frage zu den Daten, die Sie beantworten möchten, einschließlich nur der Informationen, die Sie zur Beantwortung der spezifischen Frage benötigen. Zweitens kann die Datenbank die Antworten auf Ihre Fragen viel schneller zurückgeben, als wenn sie alle Daten, einschließlich der für Ihre Frage nicht relevanten Daten, in Ihren nicht normalisierten Tabellen durchsuchen müsste. Da Sie die Daten normalisiert haben, können Sie die Tabellen auf flexible Weise verbinden, basierend auf der Frage zu den Daten, die Sie beantworten möchten, einschließlich nur der Informationen, die Sie zur Beantwortung der spezifischen Frage benötigen. Zweitens kann die Datenbank die Antworten auf Ihre Fragen viel schneller zurückgeben, als wenn sie alle Daten, einschließlich der für Ihre Frage nicht relevanten Daten, in Ihren nicht normalisierten Tabellen durchsuchen müsste.

Access ist ein vereinfachtes DBMS und enthält einen grundlegenden SQL-Prozessor, mit dem Sie Abfragen schreiben und so die Vorteile normalisierter Daten nutzen können. Wenn Sie irgendwann zu SQL Server wechseln, einem voll ausgestatteten DBMS, erleichtert die Normalisierung Ihrer Daten jetzt den Übergang und ermöglicht es Ihnen, die vollen Funktionen von SQL Server und die sehr umfangreiche Implementierung von SQL zu nutzen.

Wie eingangs erwähnt, müssen Sie bereit sein, die von Ihren verschiedenen Excel-Dumps eingehenden Daten zu übersetzen und die Zeilen und Spalten in diesen Tabellen Ihren normalisierten Tabellen zuzuordnen , um diese Vorteile zu erzielen . Dies ist keine triviale Übung, sondern mit der Access-Programmierung möglich. Ein Ansatz wäre, Tabellen zu erstellen, die die Daten wie in der Quelle replizieren und in diese laden. Diese werden als Bühne bezeichnetTabellen. Sobald Sie die nicht normalisierten Daten in Access-Tabellen haben, können Sie mit SQL einfacher Zugriffscode schreiben, um die Daten aus diesen Stufentabellen zu extrahieren, zu normalisieren und Datenqualitätsprobleme zu identifizieren (sagen Sie dasselbe Merkmal in zwei verschiedenen Excel-Dumps, die vorhanden sein sollten den gleichen Wert, aber nicht), und laden Sie ihn in Ihre normalisierten Tabellen. Dies ist die übliche Methode zum Normalisieren von Daten aus einer nicht normalisierten Quelle, die in themenbereichsbasierten Data Warehouses sehr verbreitet ist.

Sie werden feststellen, dass sich dieser zusätzliche Aufwand lohnt, sobald Sie qualitativ hochwertige, normalisierte Daten in Ihrer Zugriffsdatenbank haben. Sie berichten, dass Verbraucher feststellen werden, dass Sie ein echter Datenprofi sind, wenn Sie ihnen Beispiele zeigen, bei denen die Datenqualität schlecht war, und Sie diese Tatsache entdeckt haben, damit sie in den Quellen korrigiert werden kann. Wenn Sie nach einem neuen Bericht fragen, der die Daten auf eine ganz andere Weise analysiert, können Sie den neuen Bericht schnell mit SQL erstellen, um die Daten in den normalisierten Tabellen auf eine ganz andere Weise zu kombinieren, die ursprünglich nicht erwartet wurde. Sie werden sehr beeindruckt sein, dass Sie dies schnell und einfach tun können!

Ich hoffe, dies erklärt, warum eine Normalisierung für Sie von Vorteil ist.

Todd Everett
quelle
Vielen Dank! Eine schöne Antwort, von der ich überzeugt bin, dass ich mich im Voraus darum bemühe, dieses Chaos zu beseitigen. Ich frage mich, ob Sie empfohlene Bücher oder andere Quellen haben, um sich über Best Practices für die Datenbanknormalisierung und andere wichtige Konzepte zu informieren.
Pedram
3
Ich bin froh, dass ich helfen konnte. Hier ist ein anständiger Link zum Datenbankdesign und zur Normalisierung im Allgemeinen - sqa.org.uk/e-learning/MDBS01CD/page_01.htm . Das ist ziemlich gut, weil es die Dinge einfach hält und von vielen Beispielen, die ich gesehen habe, am einfachsten zu verstehen ist. Ein gutes Buch, insbesondere da Sie möglicherweise zu SQL Server wechseln, ist Louis Davidsons "Pro SQL Server 2012 Relational Database Design and Implementation". Dieses Buch enthält neben der Normalisierung auch Best Practices und Beispiele für SQL Server. Informationen zur Bereitstellung finden Sie im "The Data Warehouse ETL Toolkit" von Ralph Kimball. Viel Glück!
Todd Everett