Sind Datenmodellierung und Datenmodell immer noch wichtig?

Datenmodellierung und Datenmodelle sind auch in der heutigen Zeit wichtige Komponenten des allgemeinen Datenmanagements, meint der Berater und Experte Len Silverston.

Datenbank-Technologie mag immer schneller werden, aber dies ist kein Grund, auf Datenmodelle zu verzichten: Len Silverston, Berater und Experte für Datenmodellierung, ist der Auffassung, dass diese Technik im Zeitalter Spalten-orientierter Datenbanken und agilen Software-Entwicklung sogar wichtiger sein könnte als je zuvor. Silverstone, Verfasser des Data Model Resource Book, hat sich als Redner auf Konferenzen zum Datenmanagement einen Namen gemacht und vertritt die Auffassung, dass der Verzicht auf ein sauberes Datenmodell zu ernsthaften Komplikationen bei der künftigen Integration führen kann, weil sich die Umstände heutzutage mit großem Tempo verändern.

In diesem Interview spricht Silverstone darüber, welchen Einfluss Methoden der agilen Entwicklung und die zunehmende Verbreitung von superschnellen Datenbanken auf die Datenmodellierung haben. Außerdem gibt er einen Kurzüberblick über Techniken der Datenmodellierung und erläutert, warum die Hauptgründe für eine Modellierung selbst oft in Konflikt miteinander stehen.

Wie würden sie einem Anfänger erklären, was ein Datenmodell ist?

Es gibt viele verschiedene Sichtweisen, aber nach meiner Definition handelt es sich bei einem Datenmodell um eine graphische Darstellung der Struktur von Daten. Mit einer Datenmodellierung bezweckt man dreierlei: Erstens ein Verständnis der Anforderungen an die Daten. Zweitens will man mit solchen Modellen ein Fundament für das Design einer Datenbank-Implementierung schaffen. Und drittens geht es um die Integration der Daten, diese wird durch das Modell ermöglicht. Das Interessante dabei ist, dass die ersten beiden Zielsetzungen einander oft entgegenlaufen.

Worin besteht denn der Konflikt zwischen dem Verständnis der Anforderungen und dem Aufbau eines Fundaments für das Design?

Wenn man ein Datenmodell erarbeitet, um die Anforderung genau zu verstehen, dann neigt man dazu, sich mit den Details zu befassen. Üblicherweise würde man sich die Anforderungen genau anschauen und daraus ein sehr spezifisches Format ableiten. Aber wenn ich mich damit als Grundlage für das Design einer Implementierung befasse, dann geht es mir darum, alles ganz flexibel zu gestalten, also um ein generalisiertes Modell, und darum, bestimmte Features mit hereinzunehmen. Es ist ein bisschen wie beim Hausbau: Spricht man mit dem künftigen Eigentümer, dann sieht das eben wie ein Modellhaus aus. Aber wenn man als Architekt auftritt und mit dem Bauunternehmer spricht, dann geht es um technische Konzepte und Spezifikationen.

Was verstehen Sie unter einem „generalisierten“ Datenmodell?

Als Beispiel könnte man sich ein Datenmodell für ein Kundensystem vorstellen, wo der Firmenvertreter sagt, ich brauche als Kunden-Informationen die E-Mail-Adresse, die Telefon- und die Faxnummer. Wenn man das auf diese spezifische Weise konzipiert, dann würde man hier die Anforderungen so auffassen, dass man vielleicht eine Einheit mit der Bezeichnung „Kunde, E-Mail, Fax und Telefon“ definiert. Würde ich das so implementieren, dann würde ich mir aber vielleicht die in der Zukunft möglichen Anforderungen vorenthalten. So könnte der Kunde künftig zwei Faxnummern haben, zwei Telefone, daneben einen Twitter-, einen LinkedIn- und einen Facebook-Account. Also wäre es vielleicht besser, wenn ich ein Datenmodell festlege nach dem Motto: „Dies ist ein Kunde mit vielen Kontaktmöglichkeiten unterschiedlicher Art.“ Das Modell wird also so generalisiert, dass damit alle Kontaktinformationen abgedeckt sind, auch wenn sie sich erst zukünftig ergeben.

Und was ist agile Softwareentwicklung?

Agile Entwicklung ist vor allem schnelle Entwicklung. Dabei ist man vollständig auf die Geschäftsanforderungen fokussiert, auf die Schaffung von Wert für das Unternehmen in kurzen, intensiven Schüben. Diese kurzen Lieferzyklen in der agilen Entwicklung werden auch als „Sprints“ bezeichnet. Das Großartige daran ist: Man wird ständig daran erinnert, dass es in der IT letztlich darum geht, etwas zu liefern, Geschäftslösungen bereitzustellen. Es zeigt auch einen schönen Gegensatz zu der Art, wie wir früher langatmige Anforderungskataloge und Design-Dokumente verfasst haben. Diese Dokumente werden ja ohnehin dauernd geändert – warum also nicht einfach die Grundidee nehmen und gleich umsetzen, so dass man etwas vorzuweisen hat. Man hat etwas, das man abliefern kann, und wenn später eine Änderung nötig wird, dann können wir es ja umschreiben.

Sollten Unternehmen also Techniken zur Datenmodellierung mit agiler Entwicklung kombiniert werden?

Das ist ein weites Feld, gerade wenn es um die Datenmodellierung geht. Bei einigen Methoden der agilen Softwareentwicklung ist überhaupt keine Rede von irgendeiner Modellierung. In anderen Fällen sind solche Schritte vorgesehen, mit entsprechend schneller Umsetzung. Der Grund dafür, dass man in einer agilen Umgebung mit Modellen arbeiten muss, ist der gleiche wie überall bisher. Ein Datenmodell ist eine großartige Möglichkeit, um auf schnellem Wege zu konkreten Ergebnissen zu kommen, und man kann wohl sagen, dass das oft gefordert wird. Andererseits, wenn man keine richtige Vorstellung von den Daten hat, wenn man Systeme mit einer unsoliden Infrastruktur entwickelt, dann kann dies zwei Dinge zur Folge haben: Es könnte einerseits bedeuten, dass man ein mangelhaftes Design erhält. Zum Beispiel würde das Design keinen Raum für zukünftige Erfordernisse lassen, und damit würde die Pflege der Software zu einem großen Problem werden. Auf der anderen Seite könnte es bedeuten, dass man sich ein noch größeres Problem einhandelt, nämlich bei der Integration betrifft. Unter den heutigen Verhältnissen ist Integration wirklich ein riesiges Thema.

Wie kann fehlende Modellierung in der agilen Software-Entwicklung den Grad der Integration beeinträchtigen?

In einem Projekt der agilen Entwicklung herrscht die Einstellung vor, dass es sich um ein Team handelt, das in enger Kooperation und in unmittelbarem Kontakt miteinander arbeitet, so dass man sich gegenseitig unterstützen kann. Das soll schon ausreichen. Was dabei aber meiner Meinung nach fehlt, ist die Verbindung zur Integration. In einigen Umgebungen für agile Entwicklung findet man sie durchaus, aber wenn man nach der Lehrbuchmeinung geht, dann spielt sie oft gar keine Rolle.

Wie reagieren Sie auf Behauptungen, Spalten-orientierte und NoSQL-Datenbanken seien so schnell, dass sie Datenmodellierung in vielen Fällen überflüssig machen?

Das ist ein weiteres heiß diskutiertes Thema. Vor ein paar Wochen war ich auf dem TDWI Executive Summit, und ich habe mich dort an einigen Ständen umgeschaut und mit einigen Anbietern gesprochen. Diese Leute sagten mir: „Wissen Sie, mit unseren Datenbanken, da muss man eigentlich nichts mehr modellieren.“ Ich muss sagen, ich kann dem nicht ganz folgen. Es ist doch eine Tatsache, dass es bei vielen dieser Datenbanken in Verbindung mit agiler Entwicklung in gewisser Weise noch wichtiger wird, eine Datenmodellierung vorzunehmen, weil alles viel schneller vor sich geht. Um nicht ein großes Durcheinander anzurichten, muss man einen Begriff davon haben, wie alles zusammenpassen soll. Man muss nicht nur das übergreifende Datenmodell verstehen, sondern auch die spezifischen Anforderungen, die spezifischen Datenstrukturen. Dieses Argument, dass kein Bedarf mehr an einem Datenmodell bestehen würde – ich glaube nicht, dass es zutreffend ist.

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchDataCenter.de

Close