modellierung
Für uns steht die Datenmodellierung am Anfang des Design- und Entwicklungsprozesses. Das Datenmodell sollte nicht als letzter Schritt eines Datenbankprojektes - z.B. durch Reverse Engineering - gewonnen werden und alleine Dokumentationszwecken dienen. Zum einen ist ein solches Datenmodell nach kurzer Zeit überholt, zum anderen bleiben dadurch mächtige Instrumente des Computer Aided Software Engineerings unbenutzt.

Vielmehr sollte das Datenmodell im ersten Schritt aufgebaut und als Grundlage der weiteren Entwicklung verwendet werden. Dies ermöglicht einerseits eine vereinfachte Darstellung und ein verbessertes Verständnis komplexer Sachverhalte und Zusammenhänge. Andererseits werden dadurch die Pflege, Änderbarkeit und Erweiterbarkeit existierender Datenbank-Strukturen wesentlich unterstützt.

Das Datenmodell sollte wenn möglich zur Code-Generierung eingesetzt werden. Dabei kann die Code-Erzeugung neben "klassischen" Objekttypen, wie Tabellen und Views, auch prozedurale Objekte - Prozeduren, Packages oder Trigger - sowie Synonyme, Sequenzen, Typen etc. umfassen. Im Idealfall können die kompletten Datenbankstrukturen aus dem Datenmodell (neu) erzeugt werden.

Da es am Anfang der Entwicklungskette steht, sollte das Datenmodell der Master sein: Jede Änderung und jede Erweiterung wird zuerst ins Datenmodell eingebaut, daraus wird der entsprechende Code generiert und erst dann wird die Datenbank geändert. Ein sauberer Prozeß mit klaren Rollen - Datenmodell ist Master; Datenbank Slave - trägt zur Vereinfachung der Entwicklung sowie zur Vermeidung von Kollisionen und Inkonsistenzen bei.

Das nachfolgende Beispiel zeigt einen Ausschnitt aus einem in CA-ERwin erzeugten Datenmodell. Der daraus generierte Code - einschließlich weiterer, über Makros generierten Objekte - ist ebenfalls angegeben.