The UML is a good notation for conceptual data modeling. The representation stands apart from implementation choices, be it a relational database, object oriented database, files, or some other mechanism.
Q2. What are the main weaknesses of UML for database design? And how do you cope with them in practice?
Blaha: First consider object databases. The design of object database code is similar to the design of OO programming code. The UML class model specifies the static data structure. The most difficult implementation issue is the weak support in many object database engines for associations. The workaround depends on object database features and the application architecture.
Now consider relational databases. Relational database tools do not support the UML. There is no technical reason for this, but several cultural reasons. One is that there is a divide between the programming and database communities; each has their own jargon, style, and history and pay little attention to the other.
Also the UML creators focused on unifying programming notation, but spent little time talking to the database community.
The bottom line is that the relational database tools do not support the UML and the UML tools do not support relational databases. In practice, I usually construct a conceptual model with a UML tool (so that I can think deeply and abstractly).
Then I rekey the model into a database tool (so that I can generate schema).
Open ModelSphere permet aux utilisateurs de construire leurs modèles plus facilement, à partir de zéro ou via rétro-ingénierie provenant d'une variété de sources (SGBDR ou autres sources non-relationnelles comme Java). Les utilisateurs peuvent choisir entre plusieurs systèmes cibles SQL, comme Oracle, Informix, SQL Server de Microsoft, Sybase et DB2 UDB. Ensuite, ils peuvent facilement employer le processus de génération pour mettre leurs bases de données à jour. Open ModelSphere propose également une fonction de génération de rapport en format HTML améliorée, permettant une personnalisation du contenu et du format.