Will mal verschen den Thread etwas uebersichtlich zu halten.
UML-Tools bieten ja oft auch eine Moeglichkeit zum SQL (DDL) Export.
Mal die Grossen vorneweg
- Rational Rose kann seit 1997 "CREATE TABLE"; weiteres kann man in neueren Versionen zumindest konfigurieren
Aber gehoert jetzt IBM und die Linux-Unterstuetzung scheint im Schwinden begriffen zu sein. Kostet aber AFAIK viele Hekto/KiloEURO.
- ERWin kann wohl auch neuerdings UML, aber
AFAIK nur unter Windows und es kostet AFAIK noch mehr Hekto/KiloEURO.
---
Open Source
- Umbrello kann "Create Table". Mehr nicht - aber die XMI Dateien koennte man weiterverarbeiten.
- ArgoUML versteh ich immer weniger je laenger ich's verwende - das GUI finde ich wehr wenig intuitiv. Kann vonm Haus aus kein SQL - aber die XMI Dateien koennte man weiterverarbeiten.
Genau solche Konvertierungen wird mein eigenes OpenSource-Projekt uebrigens thematisieren.
---
Ein "Knackpunkt" beim UML/SQL(DDL) - Mapping ist imo immer der Umgang mit m:n Kardianlitaeten / Relationen.
- In SQL wird's eine Table mit zwei Femdschluesseln und je nach Bedarf weiteren Atttributen - fertig.
- In OOP sieht das schon ganz anders aus. Gegenseitige Inklusion der Klassen ist zyklisch und tunlichst zu vermeiden.
Also brauch ich vielleicht eine Link-Klasse ? Eine "Link-Klasse" ist aber nach meiner Erfahrung semantisch schwer in den Griff zu kriegen - das generiert meistens nicht so ohne weiteres nicht das was ich gerne haette - naemlich ein Aggregat mit zwei Referenzen wie in SQL.
Also brauch ich eine vielleicht Extra-Aggregatklasse ? Diese benutzt beide Klassen der m:n Relation. Dann krieg ich aber in SQL keine Tabelle mehr so einfach fuer die m:n Relation generiert... - genauer gesagt kann ich dann nicht mehr die Einstellugen fuer SQL-Generierung einfach anwenden lassen sondern muss wieder "rumfummeln", da eine m:nTabelle so ihre Besonderheiten hat ( ggf kein extra PK sondern PK ueber die beiden FK-Felder usw. ).
( Klingt seltsam; war aber AFAIK so unter Rose 1997/2000 und Together )
So "intelligent" zu "sehen" dass beide Varianten sematisch gleichwertig sind war selbst Rose 1997/2000 nicht - da ist die UML imo auch etwas ueberfrachtet.
Aktuellere Versionen kenne ich nicht gut genug.
Will aber nicht behaupten jedes Feature von solch einer Riesen-Suite wie Rose zu kennen - aber hab's halt nie befriedigned loesen koennen.
Mal als Einstieg in das Thema gedacht.
Gruesse
Holger
Aus dem Perl Styleguide:
"Choose mnemonic identifiers. If you can't remember what mnemonic means, you've got a problem."