Configurar la ingeniería de ida y vuelta para bases de datos
Siempre que importe una base de datos en UModel, como se muestra en el apartado Importar bases de datos SQL en UModel, su proyecto queda vinculado a esa BD y usted puede sincronizar elementos desde la BD al modelo y viceversa.
Si quiere sincronizar solo desde la BD al modelo, no necesita configurar nada, ya que UModel se encarga de realizar en segundo plano las asignaciones necesarias. Por ejemplo, con cada sincronización las nuevas tablas se convierten en nuevas clases en el modelo, las definiciones de columnas de BD modificadas se actualizan en el modelo, etc. Todos los diagramas de su base de datos también se actualizarán para reflejar esos cambios.
Sin embargo, si realiza cambios en el modelo y quiere sincronizarlos con la BD, entonces sí deberá aplicar la configuración correspondiente al proyecto de UModel. Es posible que también necesite aplicar esta configuración si quiere evitar que el proyecto (o unas tablas en concreto) se sincronicen con la base de datos.
Cada vez que se lleva a cabo una sincronización, los datos pueden combinarse o sobrescribir a los que ya existen; puede configurar una opción u otra con el comando de menú Proyecto | Configurar sincronización. |
Nota: | algunos tipos de BD no permiten cambiar la estructura de la base de datos debido a su diseño. Por ejemplo, las bases de datos de Microsoft Access no permiten que se modifiquen los nombres de las tablas o las columnas. Asimismo, SQLite no permite renombrar columnas. Por lo tanto, si realiza dichos cambios en el modelo, eso no conllevará una actualización de la BD y UModel probablemente mostrará advertencias en la ventana Mensajes. |
La ingeniería de ida y vuelta para bases de datos es similar a la que se aplica al código de programación y gira en torno a un componente del paquete "Component View" que vincula el proyecto con la BD real. En concreto, siempre que importe una BD por primera vez se genera automáticamente un componente de ingeniería de código bajo el paquete "Component View". Por ejemplo, si siguió todos los pasos del apartado Importar bases de datos SQL en UModel, entonces se generó un componente llamado tutorial_database:
Como hemos explicado antes, cada clase del modelo se corresponde con una tabla de BD. Para que sea posible la ingeniería de código, el componente de ingeniería de código debe comprender todas las clases (tablas) del modelo (observe todas las realizacionesDeComponente de la imagen anterior). Las clases que no estén comprendidas en este componente no formarán parte de la ingeniería de código. Si no va a querer actualizar nunca la BD desde el modelo no necesita hacer nada. UModel creará de forma automática todas las asociaciones siempre que sincronice desde la BD al modelo.
Sin embargo, si sí va a querer sincronizar desde el modelo a la BD, cada nueva clase (tabla) que añada debe tener una relación realizaciónDeComponente con el componente de la ingeniería de código. De lo contrario, cuando intente actualizar la BD desde el modelo, UModel muestra una advertencia parecida a esta: Tabla1 no tiene una RealizaciónDeComponente para un componente. No se generará código..
La forma más sencilla de crear una realizaciónDeComponente con un componente a partir de una clase es arrastrar la clase hasta el componente de ingeniería de código. Así, por ejemplo, si ha creado una nueva clase (tabla), arrastre la clase (en la ventana Estructura del modelo) hasta el componente tutorial_database para crear la relación. También puede añadir o eliminar esas relaciones desde un diagrama de componentes (véase el apartado Diagramas de componentes).
Para ver un ejemplo completo, consulte el apartado Ejemplo: actualizar una BD desde el modelo.