2011-03-04 30 views

Respuesta

3

Un diagrama de clase representa un sistema que utiliza el modelo de objetos. Un diagrama de base de datos relacional representa un sistema de datos que usa el modelo relacional. Existen diferencias significativas entre las formas en que estos dos modelos presentarán el mismo sistema. Y un modelo de datos no modela el comportamiento. Solo modela datos.

Hay, sin embargo, un sistema de modelado que está a medio camino entre un diagrama de clases y un diagrama relacional. Se llama un diagrama E-R, donde E-R es la abreviatura de Entidad-Relación. En el modelo E-R, todo el tema se analiza en "entidades", que pueden ser personas, lugares o cosas que tienen una identidad. Incluso pueden ser cosas intangibles, como una cuenta bancaria. Las relaciones involucran dos o más entidades, y sus afirmaciones sobre las relaciones que componen gran parte de los datos en una base de datos. Los valores de datos son instancias de atributos y los atributos describen entidades o relaciones entre entidades.

La mayoría de los diagramas E-R que verá en SO son realmente diagramas relacionales que se hacen pasar por diagramas ER. En un verdadero diagrama de RE, las claves externas no están presentes, las relaciones de muchos a muchos se pueden diagramar como una sola línea, y las cosas como los patrones de especificación gen se ven de forma muy similar a como lo hacen en los diagramas de clase. De hecho, un diagrama ER puede verse como la proyección de un mundo de objetos en el mundo de los datos solamente.

Si aprende a modelar ER como una actividad distinta del modelado relacional, resultando en un modelo diferente, le resultará bastante fácil transformar diagramas de clases en diagramas ER.

A partir de ahí, la transformación de los diagramas ER en diagramas relacionales es casi mecánica. Cada entidad obtiene una tabla, las relaciones de muchos a muchos obtienen su propia tabla. La herencia y la asociación reciben un tratamiento especial, y así sucesivamente. Las relaciones que fueron tratadas como abstracciones en el mundo del modelado ER se materializan como claves foráneas. La clave principal de cada tabla se vuelve obvia en términos de los atributos clave de las entidades en el modelo ER.

Y lo que se llamó "atributos" en el modelo ER (posiblemente "propiedades" en el modelo de clase) se convierten en "columnas" en el modelo relacional.

hay algunas herramientas sofisticadas que administran modelos de objetos, modelos ER y modelos relacionales, todos en la misma herramienta, y pueden moverse entre estos modelos por usted. Uno de ellos, "Data Architect" fue muy bueno pero muy caro hace unos años.

3

No estoy seguro de lo que quiere decir con un "diagrama de base de datos relacional". Si se refiere a un script SQL con las sentencias DDL para crear el esquema relacional para su modelo, entonces tal vez pueda ver cómo las herramientas hacen esta transformación (por ejemplo, consulte este generador de códigos UML a SQL en línea http://modeling-languages.com/content/uml2db-full-code-generation-sql-scripts-databases)

La mayoría de Las reglas de transformación son simples (clase-> tabla, atributo-> columna, asociación-> clave externa, ...) pero puede jugar con diagramas UML con clases de herencia y asociación y ver cómo se traduce.

2

Otra opción que uso es agregar estereotipos a la base de datos en mi diagrama de clases. Genera una anotación de persistencia de Java en mi código. Finalmente genero mi código de mi código de Java con Hibernate.

¡Funciona muy bien!

1

Usando Enterprise Architect puede generar automáticamente sus modales de Clase en modelos de bases de datos relacionales usando sus Transformaciones MDA (Model Driven Architecture). Esto le ahorra el trabajo de tener que volver a hacer todos los diagramas de nuevo a mano.

Más información sobre MDA Transformations

Cuestiones relacionadas