Database
 sql >> Datenbank >  >> RDS >> Database

Datenbank Design

Ich praktiziere jetzt seit ungefähr zwanzig Jahren agile Datenbanktechniken. Meine Anwendung dieser Techniken begann nicht als festgelegter Plan; Vielmehr hat es sich im Laufe der Zeit entwickelt, als ich bei verschiedenen Projekten beratend tätig war. Es war sinnvoll, nach Wegen zu suchen, schneller und mit größerer Kundeninteraktion zu arbeiten.

Mir fallen mindestens drei Arten agiler Datenbanktechniken ein:

  • Datenmodellierung
  • Data-Warehouse-Entwicklung
  • Datenbank-Reverse-Engineering

Agile Datenmodellierung

Viele halten die Datenmodellierung für eine mühsame Aufgabe. Das muss aber nicht sein. Sie können die Datenmodellierung aus dem Hinterzimmer nehmen und vor einem Kunden durchführen. Sie könnten denken, dass Kunden von dem technischen Gore abgeschreckt werden, aber das sind sie nicht. Geschäftsleute haben eine Leidenschaft für ihre Arbeit und eine Vision davon, wohin sie wollen. Sie sind begeistert, die IT als Vermittler und nicht als Hindernis zu haben.

Für die agile Datenmodellierung muss ein Entwickler Folgendes tun:

  • Sie beherrschen Datenmodellierungskonzepte und ein Datenmodellierungstool.
  • Schaffen Sie sich für Ihre ersten Male ein freundliches Publikum. Sie müssen Ihre Techniken an einem fördernden Publikum ausprobieren, bis Sie Vertrauen gewinnen.
  • Führen Sie mindestens einen Business-Champion aus der Zuhörerschaft ein – jemanden, der das Ergebnis Ihrer Arbeit aufnimmt, jemand, der das Geschäft genau versteht und dazu beiträgt, andere zu einem Konsens zu bewegen.
  • Ein solides Projekt mit einem klaren Ziel und einer geschäftlichen Rechtfertigung haben.

Mit der agilen Datenmodellierung arbeiten Entwickler schnell und liefern häufige Modellrevisionen. Ich ziehe es vor, dass Sitzungen zur Datenmodellierung nicht länger als zwei Stunden dauern. Diese Sessions sind intensiv, bei denen jeder um Ideen kreist. Nach zwei Stunden brauchen die Teilnehmer eine Pause. Außerdem benötigen Sie Zeit, um das Modell zu bereinigen und die Dokumentation nachzuholen.

Agile Techniken gelten für alle Facetten der Datenmodellierung, einschließlich alltäglicher Betriebssysteme, Data Warehouses, Stammdatenmodelle und Unternehmensdatenmodelle.

Agile Data-Warehouse-Entwicklungstechniken

Agile Techniken sind auch wichtig, wenn Sie ein Data Warehouse aufbauen. Insbesondere gibt es zwei Bereiche, in denen wir diese Techniken auf die Lagerhausentwicklung angewendet haben.

Die erste ist Daten-Staging . Es hat sich bewährt, zwischengeschaltete Staging-Tabellen zu verwenden, um das eigentliche Lager von den betrieblichen Quellen abzupuffern. Staging-Tabellen duplizieren Betriebsdaten und fügen Metadaten wie Quellsystem, Verarbeitungsdatum, effektiver Zeitstempel und Ablaufzeitstempel hinzu. Derzeit verarbeiten die meisten Entwickler Staging-Daten mit benutzerdefiniertem ETL-Code. (ETL ist ein Akronym für Extract, Transform, and Load.) Es gibt mindestens ein Tool (A2B-Daten), das die Erstellung und Auffüllung von Staging-Tabellenschemas automatisiert.

Wir verwenden auch agile Techniken zur Verbesserung der Lagerdatenverarbeitung . Dafür favorisieren wir eine Mischung aus ETL und SQL. ETL wird für Kerntabellen mit komplexer Logik verwendet, während SQL für periphere Tabellen verwendet wird – und davon gibt es viele in einem typischen Warenhaus. Das Schreiben von SQL ist ungefähr zehnmal schneller als das Schreiben von ETL. Der SQL-Code ist auch einfacher zu entwickeln und zu testen. Vernünftigerweise können Sie damit rechnen, ETL für etwa die Hälfte der Tabellen durch SQL zu ersetzen. der genaue Betrag hängt von der Warehouse-Komplexität und Ihren SQL-Kenntnissen ab.

Diese Verbesserungen reduzieren die Menge an ETL-Code, der geschrieben werden muss, und stellen ihn dort bereit, wo er am wertvollsten ist:für große Datensätze mit mehreren zu integrierenden und zu verarbeitenden Quellen.

Agilität beim Datenbank-Reverse Engineering

Auch beim Reverse Engineering setzen wir agile Techniken ein. Reverse Engineering nimmt ein vorhandenes Design und arbeitet rückwärts, um die zugrunde liegende logische Absicht abzuleiten. Reverse Engineering von Datenbanken kann verschiedene Motivationen haben. Möglicherweise konvertieren Sie von einer Datenbankplattform zu einer anderen. Oder Sie versuchen vielleicht, das Modell zu Wartungszwecken besser zu verstehen. Oder Sie versuchen möglicherweise, in einem Schema implizit enthaltene Anforderungen für die Berücksichtigung durch neue Software zu retten.

Normalerweise beginnen wir mit der Analyse des bestehenden Schemas. Ein Schema ist oft verfügbar und etwas, das wir schnell studieren können. Wir können dies mit anderen Ressourcen wie Dokumentation, Daten und Entwicklergesprächen ergänzen.

Ein Datenmodellierungstool ist eine wichtige Ressource für das Studium des Schemas. Die meisten Tools können das SQL-Schema importieren, sodass Sie die Tabellen und ihre Verbindungen sehen können. Oft reicht das für eine Reverse-Engineering-Analyse aus.

Agile Datenbanktechniken:Das Wichtigste zum Mitnehmen

Agile Entwicklung ist ein beliebtes Thema, das mehrere Auswirkungen auf Datenbanken hat. Ein agiler Ansatz ist hilfreich für die Datenmodellierung, die Entwicklung von Data Warehouses und das Reverse Engineering von Datenbanken.

Michael Blaha ist ein Berater und Trainer, der sich auf die Konzeption, Architektur, Modellierung, Gestaltung und Optimierung von Datenbanken spezialisiert hat. Er hat mit Dutzenden von Organisationen auf der ganzen Welt zusammengearbeitet. Dr. Blaha ist Autor von sieben US-Patenten, sieben Büchern, vielen Artikeln und zwei Videokursen. Seine neueste Veröffentlichung ist das Agile Data Warehouse Design Videokurs von O’Reilly. Er promovierte an der Washington University in St. Louis und ist Absolvent von GE Global Research in Schenectady, New York. Weitere Informationen finden Sie auf seinem LinkedIn-Profil oder unter superdataguy.com.