ER Design Werkzeuge
Der Erfolg eines Projektes kann von der Wahl des Tools abhängen. Hier geht es um das DB-Design, genauer: Um Entity-Relationship-Diagramme und Datenbank-Design. Allerdings übersteigt das aktuelle Tool-Angebot diesen engen Fokus. E/R-Design ist oft in das Applikationsdesign eingebunden und kann auch je nach Werkzeugangebot in diesem breiteren Kontext gesehen werden.
Ein ERD visualisiert die Zusammenhänge der Daten, die logische Tabellenverknüfungen in einem RDBMS abbildet, und generiert die entsprechenden Datebank-Strukturen. Meist ist mit diesen Verknüpfungen die Implementierung durch Foreign-Key-Constraints oder durch Trigger gemeint, aber dies ist für die logische Verknüpfung nicht zwingend erforderlich.
Natürlich geht es auch ohne ER-Diagramm, aber diese haben sich oft im Design und in der Implementierung als äußerst hilfreich erwiesen. Nicht zu verwechseln sind ER-Diagramme mit Datenfluss-Diagrammen, denn hier wird eine statische (persistente) Abhängigkeit ausgedrückt.
In jüngerer Zeit geht der Trend zur Abbildung in UML-Klassendiagrammen. Man identifiziert eine Klasse als Pendant zu einer Entität. Immerhin haben beide ja auch Attribute, und die Methoden kann man mit Triggern und Stored Procedures abbilden. Aber das OO-Paradigma hat Abbildungsgrenzen auf relationale DB's. Und Themen wie Generieren der DB-Scripte (Foreward-Engineering), Abgleich und Analyse bestehender DB-Strukturen (Reverse Engineering) lassen auch heute noch den Einsatz spezialisierter Werkzeuge oft noch angezeigt sein.
Letztlich gilt es das passende Tool für den Bedarf zu finden. In großen Projekten kann der Einsatz teurer Tool-Suiten äußerst wirschaftlich sein, wenn dadurch 10 % und mehr des Projektaufwandes, bzw. des Risiokos gesenkt werden können. Wnn allerdings die Bearbeitung mit einem Tool zum Selbstzweck wird, oder aber das Werkzeug sich als so unhandlich erweist, dass viel Energie zur Nutzung des Tools aufgewandt wird, dann ist es eindutig das unangemessene Werkzeug.
Im Folgenden werden einige Konzepte und deren beispielhafte Implementierung in einigen Produkten diskutiert.
Klassische ERD-Tools und Applikationsdesigner
In dieser Gruppe hat man die möglichst exakte Unterstützung der dezidierten Aufgabe DB-Design im Auge, weniger der allgemeine Ansatz zur Software-Entwicklung insgesamt. Mittelerwweile stellen einige Hersteller ihre Produkte auf komplette Suiten mit Unterstützung von OO und Applikationsgenerierung ein, so dass eine Abgrenzung nicht leicht möglich ist. Einige Bespiele mögen dies erläutern.
CA ERwin® Data Modeler
Eines der ehemaligen Marktführer ist das hochpreisige ERwin. Es ist in die Jahre gekommen und hat durch mehrfachen Eigentümer- und Namens-Wechsel viel von seinem Glanz eingebüßt. Der Charme dieses Produktes bestand in der kompromisslosen, schnellen und vollständigen Unterstützung der Aufgaben. Das Produkt wurde zum Maßstab und Vorbild vieler andere Produkte, hat aber seine Eigenheiten, die die Usability einschränkten.
Besondere Merkmale sind:
- Kompakte Modellabbildung: Logisches und Physisches Modell sind Sichten der gleichen Basis.
- Gute Reverse Engineering Features, z.B. Infer Relationships.
- Repository wird im Modell gespeichert, jedoch Erweiterung als ModelMart möglich.
- Unterschiedliche Optionen (Stored Views, Subject Areas) machen die Übersicht schwierig.
Mangels starkem Support, Weiterentwicklung und wegen hoher Preise ist das Werkzeug in der Tool-Liga häufig nur noch zweite Wahl.
PowerDesigner
Ebenfalls ein altes Tool mit wechselhafter Geschichte, dass allerdings stärker versucht, die Entwicklung der Objektorientierung durch Ergaänzugsmodule zu integrieren.
Besondere Merkmale sind:
- Ausgefeiltere Modellabbildung: Logisches und Physisches Modell sind unterschiedliche Dateien, die ineinander transformiert werden können.
- Application Modeling: UML-Objektorientierte Module verfügbar
- Business Process Modeling Modul: BPEL4WS und ebXML unterstützt
- Auch hier kein separates Repository
Insgesamt: Ein starkes, aber hochpreisiges Toolset, dass einige Beschäftigung mit der Methodik erfordert. Eine gute Wahl bei ausgeprägtem Model Driven Development, zu der es jedoch Alternativen gibt. Wegen der Historie und des separat erhältlichen ERD-Modules gehört Power-Desigener noch in die Gruppe der klassischen ERD-Werkzeuge, als Produkt-Familie ist es eher den Appplikations-Designern zuzuordnen.
Embarcadero ER/Studio
Das Angebot von Embarcadero positioniert sich mit anderen spezialisierten DB-Werkzeugen vor allem gegen PowerDesigner. Eine groß angelegte Vergleichsstudie vom Usability Sciences Corporation ist sicher nicht gleich als Auftragsarbeit abzutun, denn sie enthält eine detaillierte Beurteilung zu den unterschiedlichen Kriterien. Ergebnis:
Zusatznutzen verspricht ER/Studio durch Modellierung für XML-Schema, mehrschichtigen Designebenen, Dimensionale Modellierung / CWM-Support, Datenherkunftsdokumentation, Kapazitätsplanung und Datenklassifizierung nach Sicherheitsebenen.
Damit empfiehlt sich ER/Studio im Besonderen für High-End DB-Design.
DeZign for Databases
Ein Low-Cost-Produkt, dass sich auf das wesentliche konzentriert. Neben einer gewissen Ähnlichkeit zu ERwin sind einige kleine hilfreiche Features wie Attribute-Packages eingeführt worden. Eine separate Schicht der logischen Modellierung wird nicht unterstützt. Man kann lediglich bei den Diagramm-Optionen die Detailebene wählen.
Insgesamt sehr einfach und schnell zu bedienen ist DeZign vor allem für die Interessant, die KIS (Keep it Simpel) für eine hohe Tugend halten. Auf alle überladene Funktionen wurde verzichtet. Lediglich die echten Notwendigkeiten und Produktivitätsbringer sind fast vollständig vorhanden. Merkmale wie bei vielen Produkten seiner Klasse:
- Generierung und Reverse Engineering von vielen aktuellen RDBMS
- Migration der Modelle auf unterschiedliche RDBMS
- Sub-Diagramme und viele Darstellungsoptionen
- Versionsvergleiche und Objekteditoren
- Integriertes Repository mit Navigator, Search and Replace
Beispiel der Visualisierung mit optionalem IDEF1X und Einsatz von einem kleinen Attribut Package mittels Inheritance.
Insgesamt sehr hilfreich und zu empfehlen, wenn kein anderes umfassenderes Toolset bereits im Einsatz ist. Nicht zuletzt auch wegen des akzeptablen Preises. Allerdings erfordert der Bedarf nach Reverse Engineering bereits die Professional Edition. Und das Arbeiten mit Versionen und Delta-Skripts benötigt die Expert Edition - dazu ist allerdings der Preis mit dem Dreifachen der Standard-Edition weit weniger attraktiv und muss sich leistungsfähigen Alternativen stellen.
Toad® Data Modeler
Quest ist ein Tool-Company, die vor allem in der Oracle Community sehr verbreitet genutzt wird. Mit dem eher preisgünstigen Toad® Data Modeler wird an den guten Namen des beliebten TOAD als DB-Verwaltungsoberfläche für Oracle angeknüpft, wobei der Data Modeler allerdings ein separates Produkt ist, dass die ganze Palette der verbreiteten RDBMS unterstützt wird.
Insgesamt erscheint dieses Tool vergleichbar mit DeZing. 20 RDBMS-Systeme werden Unterstützt, aber DB-Model Changes werden nur bei Oracle-DBs generiert. Zusätzlich ist eine Unterstützung von Datenflussplänen dabei.
Altova DatabaseSpy® 2008
DatabaseSpy ist ein universelles DB-Werkzeug eines Wiener Software-Hauses, dass sich ähnlich wie TOAD, SQL Navigator, SQL Server Management Studio oder andere DB-Frontends für unterschiedliche Aufgaben empfiehlt. Unterstützt werden die DBMS
- IBM® DB2® 8.x & 9 (including pureXML)
- Oracle® 9i & 10g
- Microsoft® SQL Server 2000 & 2005
- Microsoft® Access 2003
- MySQL® 4.x & 5.x
- Sybase® 11
Das Besondere an DatabaseSpy ist die integrierte ER-Design-Funktionalität und sein niedriger Preis - € 99 -.
Allerdings scheint die Funktionalität nur das Wesentliche mitzubringen und nicht die Tiefe der spezialisierten Werkzeuge.
DB Visual ARCHITECT
Visual Paradigm hat mit Visual Paradigm Suite eine enorm umfassenden Ansatz vorgelegt. Nicht nur, dass es sich dabei um einen umfassenden UML und OO-Ansatz verfolgen, der Hersteller scheint auch ein volles Commitment zu den Problemen des DB-Designs zu bringen und all die Punkte vorweg zu beantworten, die ein DB-Designer hat. Um so erstaunlicher wirkt dann das Pricing: Hier wird ein High-End-Tool zum Preis eines Entry Level Produkt angeboten.
Bei Visual Paradigm geht es von Anfang an nicht nur um Dokumentation (Paperware), oder reines DB-Design als Generator für ein RDBMS, sondern um die Integrierte Entwicklung in fast allen modernen Entwicklungsplattformen (Java, .NET, PHP ...). Es liefert einen eigenen O/R-Mapper und nimmt somit wesentliche Arbeiten des Systementwicklung ab.
Die Basis stellt hier, wie bei den anderen Produkten des Software-Hauses aus Hongkong das UML - Klassendiagramm dar. Die Notation ist für den technischen DB-Designer ungewohnt, wenn er sich noch nicht mit UML beschäftigt hat. Allerdings kann man dies durchaus positiv darstellen: Durch eine gemeinsame UML-Basis kann die Kommunikation im Development-Team einfacher Stattfinden. UML Klassendiagramme können ER-Modelle nach IE abbilden und es ist nur Sache der Gewöhnung.
Aus diesen können aber mit einfachen Mitteln klassische ER-Diagramme nach IE-Notation gewonnen werden, die auch die besonderen Eigegenschaften der DB-Objekte besser abbilden. Oder eben anders herum: Class Diagrams aus ERD.
Reverse Engineering heißt bei DB-VA nicht nur support nahezu aller Datenbank-Systeme, es werden nben den üblichen Objekten auch Stored Procedures eingelesen.
Foreward Engineering ist ebenso selbstverständlich. Bei alle dem werden moderne Bedienkonzepte wie Mouse-Gesten unterstützt.
Mit den ORM Diagrammen wird das Mapping von DB-Tabellen auf Anwendungsklassen dargestellt. Hier ist der Hauptnutzen gegenüber den meisten anderen Tools anzusehen: Es wird daraus auch der Code generiert, der ansonsten recht zeitraubend ist. Dies zur Verdeutlichung:
Das Besondere ist, das nicht nur alle Elemente abgebildet werden und der Code bidirektional generiert wird, sondern dass DB-VA auch den ORM Layer bereitstellt:
- DB-VA generates not only Java and .NET persistent code, but also a cost-effective, reliable, scalable and high-performance object to relational mapping layer. The generated mapping layer includes the support of transaction, cache and other optimized feature. DB-VA increases the productivity and significantly reduces the risk of developing the mapping layer manually.
Übrigens zur Sprache und Dokumentation: DB Visual ARCHITECT fragt selbstständig bei der Installation, ob das User-Interface in Deutsch sein soll. Die Dokumentation ist allerdings in English.
Mit kostenlosen Viewern ermöglicht es auch anderen Team-Membern, die weniger mit Design- als mit Implementierungsaufgaben beschäftigt sind, einen effizienten Zugriff auf Modell-Informationen.
Application Designer
Einige Werkzeuge, die als Teil einer umfassenden Design Suite dezidiert DB-Design und ERD unterstützen, wurden oben bereits aufgeführt. Hier gruppiere ich die Tools, die vor allem einen umfassenden Ansatz bringen, aber in inkludierten Funktionen auch ERD-Funktionen mitbringen.
Visual Paradigm SDE
Visual Paradigm hat gleich mehrere Produktfamilien im Einsatz, die mit erstaunlichen Merkmalen beeindrucken und dabei preislich sehr attraktiv bleiben. Herausragend einige Konfigurationsbeispiele
Smart Devevelopment Environment - SDE gibt es als Integrationsprodukt gleich für mehrer Plattformen in den Editionen: Community, Personal, Modeler, Standard, Professional und Enterprise.
Am interessantesten:
- SDE-VS - for Visual Studio
- SDE-EC - for Eclipse
Allen Editionen gemein ist die Ausrichtung auf den UML-Design-Prozess. Ab der Professional-Edition stellt er eine Obermenge über den oben besprochenen DB Visual ARCHITECT dar. SDE integriert sich nahtlos in das Visual Studio ab Standard-Edition und liefert mehr Design-Funktionalität als die teuren Enterprise Editions von VS. Ähnliche Integrative Erweiterungen gibt es auch für Eclipse, Borland JBuilder®, NetBeans/Sun™ ONE, IntelliJ IDEA™, Oracle JDeveloper, BEA WebLogic Workshop™. Sowohl die Erstellung von folgenden Diagramm-Typen (Auszug) wird in der jeweiligen Ziel IDE unterstützt:
- Class Diagrams
- Use case diagrams
- Sequence diagrams
- Communication diagrams
- State machine diagrams
- Activity diagrams
- Component diagrams
- Deployment diagrams
- Package diagrams
- Requirement diagrams
- Textual analysis
- CRC card diagrams (Bekannt aus den agilen Methoden)
Aus den CRC-Cards können Klassen generiert werden, die in der DB als Tabellen abgebildet werden ...
- Identify candidate activity and action by textual analysis
Auch dieser harmlos wirkende Punkt ist eine Produktivitätshilfe: Aus einer textlichen Beschreibung können mit einfachen Mitteln Modellelemente extrahiert werden.
Aber nicht nur Forward Engineering mit Code-Generierung wird geliefert, ebenfalls wird Reverse Engineering für Code-Fragmente geleistet und Modelle z.B. im Rational Rose Format importiert - um nur wenige Highlights zu nennen.
Die Feature-Liste macht es anderen Herstellern schwer, mit diesen Leistungsmerkmalen überhaupt mitzuhalten. Und das aggressive Pricing setzt die Firma aus Hongkong auf eine Spitzenposition der Tool-Lieferanten. Die Firma ist in Deutschland vertreten unter [[www.visual-paradigm.eu| Visual Paradigm Team Europe - BCS - Dr. Juergen Pitschke, 01287 Dresden. Immerhin, das Motto von Visual Paradigm ist Build Quality Applications Faster, Better and Cheaper
case/4/0
Mit case/4/0 hat microtool eine umfassende Methodensammlung unter einen Hut gebracht, lange bevor Model Driven Design in den Focus geriet. Aus den Merkmalen:
- Generierung von Code für Verarbeitungs- und Zugriffsmodulen in COBOL, C/C++, PL/1, Visual Basic und Java.
- Generierung von Modulen für Datenbankzugriffe.
- Generierung von Datenbankschemata für ORACLE, DB2, SQL-Server, Informix, MS Access, Sybase, Sesam.
- Generierung von Code für Oberflächen/Modulen für Micro Focus Dialog System, Java-Applets, Windows Resource Files, Message Format Service Basic Mapping Support und Visual Basic Forms.
- Reverse Engineering von Datenbanken und Source-Code für SQL und COBOL.
Daran wird der Ansatz, aber auch die Grenzen deutlich: case/4/0 ist ausgereift, unterstützt aber nicht mehr die aktuellen Umgebungen. Bei Oracle wird kein Release benannt, bei SQL-Server 6.0 fest vorgegeben.
Ohne eine Massive Runderneuerung ist dieser ehemals glänzende Produktansatz sicher wenig attraktiv, schon gar nicht bei der noch aktuellen Hochpreis-Politik.
objectiF
Microtool verfolgt mit objectiF einen völlig anderen, moderenren Ansatz, der auf UML und OO basiert, Hier wird die Ergänzung zu .NET und Java/Eclipse gesucht. Leider fehlen hier die Unterstützung für ER-Design.
In der .NET Umgebung wird auf das Objekt-Relationale Mapping-Framework Gentle.NET gebaut. Dieses hat aber mit dem letzten Release für .NET 2.0 (aktuell 3.5) die Einstellung der Weiterentwicklung angekündigt.
In der Java-Welt wird als ORM Hibernate vorausgesetzt. Dieses ist noch aktuell und könnte auch in aktuellen Projekten zum Einsatz kommen.
IBM Rational Rose Data Modeler
Rational Rose galt lange Zeit als das Referenzprodukt für UML Modeling, nicht zuletzt weil die drei Amigos Rational Mitarbeiter sind. Aktuell wirt Rose in mehreren hochpreisigen Editionen vertrieben.
Die eher spärliche Information, die über die aktuellen Editionen - vor allem den Data Modeler - verfügbar sind, wecken das Interesse nicht.
Borland Together
Together gehörte ebenfalls zu den UML-Design-Tools der ersten Stunde. Transparente Vorgehensweisen und intelligente nachgeschaltete Post-Prozessoren, wie z.B. iQgen von innoQ (Verarbeitung der XMI-Files), ermöglichen sehr effizientes Arbeiten von einer modellgetriebenen Architektur heraus.
Aus dem Klassendiagramm heraus kann DDL generiert werden.
In der neuen Version Borland® Together® 2007 wird bezüglich Data Modeling unterstützt:
- Logical data modeling using UML 2.0 Profile for Data Modeling
- Physical data modeling using ER and IDEF1x diagrams
- Forward and reverse engineering for leading DBMS (Oracle®, DB2®, Sybase®, MS SQL Server)
- Logical-to-physical data model transformation
Together läuft nun auf der Eclipse Plattform. Als Hochpreis-Produkt ist allerdings die Unterstützung für nur die Haupt-DBMS etwas mager.
ArgoUML und andere Open Source Tools
In der Open Source Szene sind ebenfalls Modeling Tools verfügbar. Eine qualifizierte Beurteilung von ArgoUML hinsichtlich der Eigenschaften zum DB-Design habe ich jedoch keine Tests durchgeführt. Auch sind neben den beeindruckenden allgemeinen Modellierungsmerkmalen nur süärliche Informationen verfügbar:
Unterstützt werden an DBMS lediglich:
- PostgresSQL – org.dbuml.base.factory.PGSFactory;
- MySQL - org.dbuml.base.factory.MySQLFactory;
- Oracle - org.dbuml.base.factory.OraFactory;
- Generic - org.dbuml.base.factory.GenericFactory;
If a database specific factory is not available you can use the generic factory.
Sorry ... aber wer sich nicht selber mit der Toolentwicklung beschäftigt, oder gerade die unterstützten Plattformen bearbeitet, wird sich mit einer rudimentäten Funktionalität nicht zufrieden geben.
Weitere Open Source Tools:
- Azzuri Clay Database Modeling in Eclipse für Open Scource DBMS.
- fabforce - DBdesigner4 Speziell für MySQL, aber mit Reverse Engineering von MySQL, Oracle, MS-SQL und jeder ODBC Database. Wer nur mit MySQL arbeitet, kann sich das gerne mal genauer ansehen.
Oracle Designer/2000
Oracle Designer ist als Teil der Oracle Developer Suite ein herstellerspezifisches Design-Tool, welches ein Top-Down Approach unterstützt. Auf der Anwendungsseite stehen Oracle Forms und Oracle Reports (auch VB, habe diese aber nie benutzt), DB-seitig wird logische Entity-Diagrams mit physischen Server-Diagrams (Data Schema) angeboten. Zwischen diesen sind Transformationswerkzeuge - Wizards genannt - im Einsatz.
Der gemeinsame Name täuscht aber. Die Tools erscheinen als bunte Mischung, in denen die aufwendig zu konfigurierenden Transformatoren die Abbildung nicht verlustfrei aufeinander beziehen können.
In der praktischen Arbeit kostete der Oracle Designer trotz teils recht intimer Kenntnisse sehr viel Aufwand, so dass ich diesen nicht empfehlen kann. Gerade für Model Updates während der Projekt-Entwicklung und fehlender Merkmale zum Generieren von Update-Skripts macht das Tool wenig hilfreich.
Zugegeben: Meine Erfahrungen beziehen sich auf Version 6. Allerdings wäre ich erstaunt, wenn eine wesentliche Änderung eingetreten wäre.
Oracle unterstützt noch die aktuelle Produktlinie, hat aber angekündigt, dass es keine funktionale Weiterentwicklung geben wird.
Weitere Tool-Ansätze
Zum Abschluss gehe ich noch auf Ansätze ein, die nicht so recht in das Schema der Tool-Gruppierung passen.
Visio DB-Design
Visio kommt vor allem aus der Diagramm Visualisierung. DB - ER-Erweiterungen erlaben aber hier nicht nur das flache Zeichnen von ERDs, sondern unterstützen mit ihrer Generierungsfunktion sowohl Forward Engineering als auch Reverse Engineering.
Damit ragt Visio in die Gruppe der klassischen ERD-Tools. Allerdings, bei Visio ist vieles anders. Reverse Engineering wird über ODBC-Treiber unterstützt, aber Foreward Engineering geht nur mit der Version, die in Visual Studio Enterprise Architect integriert ist.
Darum eignet sich Viso zur reinen Dokumentation und Analyse, wenn das Generieren kein Thema ist und Visio ansonsten gesetztes Tool ist.
Microsoft SQL Server Management Studio
Im MS SQL Server Management Studio, einem integrierten Teil vom MS SQL Server 2005, ist die Bildung von multiplen ER-Diagrammen und Visualisierungen möglich.
Auch wenn diese Option kostenlos in den Verwaltungswerkzeugen integriert ist, und somit eng an das DBMS gekoppelt ist, eröffnet es doch Möglichkeiten, die gegenüber dem klassischen DB-Design-Ansatz verschlossen sind. So ist es kein Reverse Enginieering, wenn aus dem regulären Katalog der DB die Tabellen visualisiert werden, funktional entspricht dies jedoch einem Reverse Engineering. Auch Forward Engineering und der visuelle Aufbau von Relationships / Foreign Key Constraints und Primary Keys ist möglich. Das Design wird sogleich implementiert. Die enge Kopplung von Modell und Implementierung mag man Begrüßen als Garant der Aktualität des Modells, oder aber ablehen, da DB-Administration vom Design nicht getrennt sind.
Der Vorwurf, es handle sich um eine proprietätre Modellierung und auch die Optionen der Gestaltung seien eher bescheiden, wiegen mitunter die Eleganz nicht auf, mit der ein mächtiges Verwaltungstool alle Aspekte der DB-Verwaltung, einschließlich Skript-Erstellung und Abfragen liefert.
Einzig der Rechte-Kontext, der hier eine weitgehende Freiheit des möglichen Entwicklers erfordert, könnte ein K.O.-Kriterium sein. Allerdings sind diese auf Entwicklungs-Datenbanken meist nicht sehr restriktiv gesetzt, dass auch dem Entwickler hier ein Zugriff auf dieses mächtige Werkzeug ohnehin zu gewähren ist.
In SQL Server 2000 war dieses durchaus brauchbare Feature im Enterprise Manager untergebracht und fand wahrscheinlich nur darum so wenig Beachtung, weil man es nicht als DB-Design-Tool positionierte.
Fazit
Der Einsatz von ERD Werkzeugen muss nicht teuer sein, kann aber erheblichen Nutzen bringen. Die Auswahl sollte den entsprechenden Anforderungen gemäß sein, nicht eine willkürliche Entscheidung mangels besseren Wissens. Bei einigen Tools ist die Entscheidung dennoch schwer, da sie vergleichbare Leistungen zu vergleichbaren Preisen bringen.
Je nach Anforderung und Umgebung gibt es beeindruckende Werkzeuge unterschiedlichster Couleur. Als moderne integrierte Umgebung zur objektorientierten Anwendungsentwicklung für ein breites Spektrum der Anforderungen hat mich vor allem die Tool-Suite von Visual Paradigm beeindruckt. Meine Begeisterung für diesen Hersteller hatte ich noch nicht bei beginn der Recherche für ein Projekt, sondern ist erst - nachdem ich einige gute Tools kannte und mir auch andere starke Werkzeuge neu kennenlernte - mit der Testinstallation gewachsen.