Entity Modelling 2.0

Entity Modellierung ist scheinbar ein alter Hut, aber bis heute hat mich keine Standardlösung bis in die Haarspitzen überzeugt!

Anforderungen

Aus meiner Sicht muss ein Tool folgende Anforderungen erfüllen, um Entity Modellierung perfekt zu unterstützen:

  • Design Produktivität
  • Handhabung von Komplexität
  • Anerkennung der Technologierealität
  • Volle Semantik der Entity Modellierung
  • Plattformunabhängigkeit
  • Ready-to-Go

Design Produktivität

Datenmodellierung muss produktiv von der Hand gehen. Einige Klassen mit primitiven Eigenschaften, Beziehungen und Vererbungen müssen innerhalb von Sekunden erfasst werden können!

Das gilt sowohl für völlig neue Datenmodelle, als auch für die Erweiterung und Umgestaltung vorhandener Datenmodelle.

Textuelle und grafische Repräsentation sind gleichwertig.

Handhabung von Komplexität

Einige Anwendungen werden hunderte oder sogar tausende von Entitäten enthalten. Ich erwarte, dass Tools diese einerseits performant handhaben können, andererseits Mittel zur Verfügung stellen, um diese Komplexität zu beherrschen.

Anerkennung der Technologierealität

Relationale Datenbanken werden mit ausgewachsenen ORMs angesteuert, viele kleinere ORMs der Vergangenheit haben ihre Daseinsberechtigung verloren. Objektdatenbanken sind exotisch und tot.

Der Vietnamkrieg der Informatik ist entschieden, Entity Modelle ignorieren nicht mehr die Datenbank und versuchen ihnen das Paradigma objektorientierter Sprachen vollständig überzustülpen (“idomatic ORM”), dennoch enthalten Entity Modelle eine höherwertigere Semantik als relationale Modelle.

Die Zahl der wichtigen relationalen Datenbanksysteme reduziert sich tendenziell. Im .NET Bereich hat SQL Server eine Dominanz erreicht, die vor 10 Jahren noch nicht absehbar war.

Anwendungen streben seltener eine völlige Unabhängigkeit gegenüber dem Datenbanksystem an.

Volle Semantik der Entity Modellierung

Entity Modellierung enthält eine umfassende Semantik. Einiges ist der Objektorientierung entlehnt, wie z.B. Beziehungen oder Vererbung. Konstrukte des Mappings zur relationalen Datenbank sind kein Aufsatz, sondern integraler Bestandteil der Entity Modellierung. Beispiele sind Strategien zur Abbildung von Vererbung oder Embedded Value Mapping.

Plattformunabhängigkeit

Entity Modellierung darf nicht von einem einzelnen ORM oder einem einzelnen Datenbanksystem abhängig sein. Ein Entity Modell ist ein langlebiges Artefakt, welches mehrere Technologiezyklen überdauern sollte.

Im Entity Modell müssen Metadaten beliebiger Zielplattformen gehalten werden können.

Zur Codegeneration (bzw. auch Model-to-Model Transformation) sollte eine umfassende Unterstützung mittels Standardwerkzeugen existieren.

Ready-to-Go

Ich erwarte für typische Zielplattformen wie z.B. Entity Framework und SQL Server, Hibernate oder auch Ruby On Rails eine direkte Unterstützung ohne weitere Anpassung oder umfassende Konfiguration.

Vorhandene Tools

Mir bekannte Tools sind entweder Irgendwas mit UML, Entity DSLs, GUI Editoren, Technologiespezifische Editoren oder Code-seitige Lösungen.

Mir sind einige Dutzend näher bekannt, wobei es sicher Tausende gibt. Keines erfüllt aber alle von mir formulierten Anforderungen an eine umfassende Entity Modellierung.

Lösungsansätze

Mir schweben einige Lösungsansätze vor, inbesondere zur Komplexitätsreduktion bei großen Datenmodellen. In Bezug auf Bedienkonzepte zur Produktivität kann man sicher irgendwo abkupfern. Ich werde auch noch einmal das Web durchforsten, ob es nicht doch ein Tool gibt, was viele der Anforderungen erfüllt.

Zum Thema

Entity Modelling 2.0
Entity Meta-Programmierung
Aspektorientierte Entity Modellierung
Nahe & Ferne Beziehungen