SlideShare una empresa de Scribd logo
1 de 45
Transformaciones de Modelos en
       gvMétrica:UML2DB
      Mónica Gómez Gallego
        (gomez_mon@gva.es)
¿Donde Usarlo?
Desarrollo          Gestión de Proyectos       Desarrollo    Gestión de Proyectos




             Al inicio            Al inicio    Proceso      Seguimiento
 Fase                                                           del
               del                  del           de
 Inicial                                                      Proyecto
             proyecto             proyecto    Desarrollo
¿Donde Usarlo?
Elementos que
              intervienen
Modelo entrada
  Diagrama de Clases. (fichero.uml)

Modelo salida
  Diagrama de Base de Datos.
  (fichero.sqlschema)

Modelo de Configuración
  Modelo de configuración de la
  transformación(fichero.transformationconfiguration)
Cómo ejecutar la
       transformación                     (1/2)

 1. Desde la vista de transformaciones
 2. Sobre el modelo con menú contextual


Desde la vista de transformaciones



                           Window/Show View/MOSKittTransformation
Cómo ejecutar la
 transformación(2/2)
Desde el MOSKitt Resource Explorer utilizando el
menú contextual del modelo del diagrama de clases.
Cómo ejecutar la
    transformación(2/3)

• Lanzar la transformación
 • Introducir los parámetros
 • Validar parámetros
• Configurar la transformación
• Ejecutar la transformación
Lanzar la
         transformación
• Con el gestor de transformaciones (Asistente)
• Tiene una primera ventana donde se definen el
  modelo de entrada y de salida:




                                    Diagrama de Clases




                                   Diagrama de Base de Datos
La siguiente pantalla del asistente nos muestra las
posibles configuraciones de la transformación:
 1. Configuración por defecto.




 2. Seleccionando una configuración dada.




                                 Fichero de configuración
                                 de la transformación
3. Nueva Configuración




                                         Directorio destino para el fichero
                                         de configuración a crear

   Nombre del fichero de configuración




La siguiente pantalla es de validación de los
modelos de entrada y configuración.
¿QUE SE VALIDA?


Diagrama clases           ●

                          ●
                              extensión .uml
                              contiene al menos 1 elemento raiz

Modelo de configuración

                   ●
                     extensión .transformationconfiguration
                   ● contiene al menos un elemento raíz




En la última pantalla del asistente se muestra un
campo donde se indica el resultado de la
transformación. Si ha sido o no correcta.
Modelo configuración
                transformación                                     Regla
                                                                  (Rules)
                                                        1..*
                   1..*              1..*    Patron
          Modelo          Elemento          (Pattern)

                                                                Parametro
                                                        0..*




                                                               Regla por defecto

Elemento                                                       Regla a aplicar




 Patrón                                                        Parámetros
Regla
                                                               (Rules)
                                                       1..*
                1..*               1..*    Patron
Modelo                 Elemento           (Pattern)

                                                              Parametro
                                                       0..*




 • Todos los elementos tienen el patrón
     PersistentNomElemento
     Ejemplo: (PersistentProperty, PersistentClass.....)
     Con las reglas:
         - Persistent → el elemento va a ser transformado.
         - NotPersistent → el elemento no se va a transformar.
Parámetros:

 • Dependiendo del patrón seleccionado podrán
   aparecer parámetros para completar la
   configuración:

   • ¿un atributo es clave primaria?
   • ¿cuales serán las claves alternativas en una
     tabla? etc...)
Correspondencias de la
         transformación
       UML                  BD            Correspondencia
      Model              Database             Siempre
     Package              Schema              Siempre
      Class                Table              Siempre
     Property             Column             Depende
   Association         Reference (FK)        Depende
 Class Association    Reference+Table        Depende
   Composition       Columna +Reference      Depende
  Generalization       Reference (FK)         Siempre
     Datatype        Column/Column+FK        Depende
   Enumeration       Column/Column+FK        Depende
Property (Atributo) = Field (Campo)

Caso1: Si multiplicidad max=1 → se transforma en
           una columna dentro de la tabla.

Caso2: Si multiplicidad max>1 → se transforma
            en una nueva clase con la que se relaciona.




isUnique:

Si la propiedad isUnique=True, la propiedad se convertirá en
clave primaria de la tabla
Association (Asociación)
     ¡Ojo hablamos de los dos extremos de la asociación!
Caso1: Si multiplicidades máximas =1 ->Foreign Key



                                              ¡Ojo con la
                                          navegabilidad de la
                                              asociación!



Caso2: Si multiplicidades máximas >1 ->Tabla + Foreign Key
Caso3: En el resto de los casos el usuario elige si
 quiere que se transforme en una tabla o en una Clave
 Ajena añadiendo el patrón:
    Patrón: AssociationInto

    Reglas: Reference → Clave Ajena (por defecto)

            Table      → Tabla




Reference
Table
Composition (Composición)
Caso1: Si multiplicidades máximas =1 → Se transforma
en una clave ajena, que puede ser además primaria o
no.
    Patrón: CompositionConstraint
    Reglas: IdentityConstraint → (por defecto),clave ajena+
                                  clave primaria
            NoIdentityConstraint → clave ajena


Caso2: Si multiplicidades máximas >1

   Patron1: Composition Constraint
   Reglas: IdentityConstraint → (por defecto),clave ajena+
                                  clave primaria

            NoIdentityConstraint → clave ajena
IdentityConstraint




NoIdentityConstraint




 codigo esta definida como isUnique
Patron2: CompositionAs
Reglas: Reference → (por defecto) Clave ajena
        Table    → Tabla

                   REFERENCE




                   TABLE
Generalization (Generalización)
Para las generalizaciones se incluye un patrón en la
clase padre.
   Patron1: GeneralizationInto

   Reglas:   AllTables → (por defecto) transforma todas las
                         Clases

             OnlyChildTable → únicamente son transformadas
                              las clases hijas

             OnlyParentTable → sólo se transforma la clase
                             padre
AllTables




OnlyChildTable




OnlyParentTable
Generalization Set (Conjunto de
Generalización)
La transformación es la misma que en el caso de las
generalizaciones.

AssociationClass (Clase Asociación)
Crea una tabla por clase y en la tabla correspondiente a
la clase asociación dos claves ajenas a las tablas que
une.
Datatype
A un tipo de datos (Datatype) se le puede hacer
referencia, bien por el tipo de datos del atributo
(Property) o como una asociación entre la clase
origen   y    la  propia    clase  del  tipo    de
datos(Association).

      Property                Association
Patrón: PropertyToDataTypeAs
Reglas: Property → Columna
        ExclusiveTable → 1 tabla por atributo + Clave ajena
        Shared Table → 1! tabla + Clave ajena

Property y Association
Caso1. Si multiplicidad max. =1
      Reglas: Property → (por defecto) los atributos del
                          “Datatype” se incluyen en la clase




 Property       Association
Caso2. Si multiplicidad max. >1

              Regla: ExclusiveTable (por defecto)




Property




Association
Tanto para Caso1,Caso2

              Regla: Shared Table




Property




Association
Enumeration
Al igual que el elemento “Datatype” el enumerado se
puede definir como tipo de datos de un atributo
(Property) o como una asociacion (Association) entre la
clase y el enumerado.
     Patrón: PropertyToEnumerationAs
     Reglas: Property → Columna
             ExclusiveTable → 1 tabla por atributo + Clave
                              ajena
             Shared Table → 1! tabla + Clave ajena
Property y Association
 Caso1. Si multiplicidad max. =1
       Reglas: Property → (por defecto) los atributos del
                           “Datatype” se incluyen en la clase


 Property




Association
Caso2. Si multiplicidad max. >1
       Regla -> ExclusiveTable (por defecto),se crea
                   unatabla por cada atributo cuyo tipo de
                   datos sea el enumerado, además de una
 Property          referencia a dicha clase.




Association
Tanto para Caso1,Caso2

Regla: Shared Table
Sincronización de la
          transformación
 •   La sincronización es en el sentido UML2 a BD.
 •   La sincronización afecta a la           inserción,
     actualización y borrado de elementos.



Inserción de elementos
Cualquier elemento insertado en el modelo de clases,
se transformará en el modelo de base de datos.
Actualización de elementos
 Los elementos se actualizan según la siguiente
 tabla:

                 UML                                              BD
Package                                         Schema
  ­ modificar la propiedad name                   ­ se actualiza la propiedad name

Class (isAbstract = false)                      PersistentTable
  ­ modificar la propiedad name                   ­ se actualiza la propiedad name
  ­ modificar  isAbstract= true                   ­ eliminar PersistentTable
Class (isAbstract = true)                         ­ transformar el elemento Class
  ­ modificar la propiedad isAbstract = false     ­ genera los elementos
                                                     PersistentTable y PrimaryKey
UML                                          BD
DataType                                    PersistentTable
  ­ modificar la propiedad name             se actualiza la propiedad name
Enumeration                                 PersistentTable
  ­ modificar la propiedad name             se actualiza la propiedad name
Property (upperBound = 1)                   PersistentTable
  1.modificar la propiedad name               1.se actualiza la propiedad name
  2.modificar la propiedad upperBound > 1     2.eliminar los elementos
                                                 PersistentTable, PrimaryKey, 
                                                 ForeignKey y Column
                                                 Transformar el elemento Property
                                                  genera el elemento Column
Association (src upperBound = 1 dst         Column, ForeignKey
upperBound = 1) que relaciona dos 
elementos Class
  ­ modificar la propiedad name               ­ se actualiza la propiedad name

Association (src upperBound > 1 dst         PersistentTable, PrimaryKey
upperBound > 1) que relaciona dos 
elementos Class
  ­ modificar la propiedad name               ­ se actualiza la propiedad name
UML                                       BD
Association que relaciona dos elementos      ­ Eliminar los elementos generados a
Class                                          partir del elemento Association
  ­ modificar la cardinalidad                ­ Transformar el elemento Association
                                               siguiendo el apartado anterior
Property que referencia a un elemento        ­ Eliminar los elementos generados a
DataType                                       partir de los elementos Property y
  ­ modificar la cardinalidad                  DataType
                                             ­ Transformar los elementos Association
                                               y DataType siguiendo el apartado
                                               anterior
Property que referencia a un elemento        ­ Eliminar los elementos generados a
Enumeration                                    partir del los elementos Property y
                                               Enumeration
  ­ Modificar la cardinalidad                ­ Transformar los elementos Association
                                                y Enumeration siguiendo el apartado
                                                anterior
Association que relaciona un elemento        ­ Eliminar los elementos generados a
Class y un elemento DataType                   partir de los elementos Association y
                                               DataType
  ­ Modificar la cardinalidad                ­ Transformar los elementos Association
                                                y DataType siguiendo el apartado  
                                                anterior
UML                                     BD
Association que relaciona un elemento      ­ Eliminar los elementos generados a
Class y un elemento Enumeration              partir de los elementos Association y
                                             Enumeration
  ­ Modificar la cardinalidad            transformar los elementos Association y 
                                         Enumeration siguiendo el apartado 
                                         anterior
AssociationClass                         PersistentTable, PrimaryKey

modificar la propiedad name              actualizar la propiedad name
Borrado de elementos

                 UML                                     BD
Package                                  ­ Eliminar el elemento Schema
Class (isAbstract = false)               ­ Eliminar el elemento PersistentTable
Property (upperBound = 1)                ­ Eliminar (Column)
Property (upperBound > 1)                ­ Eliminar los elementos PersistentTable,
                                           PrimaryKey, ForeignKey y Column
Association (src upperBound = 1 dst      ­ Eliminar los elementos Column y
upperBound = 1) que relaciona dos          ForeignKey
elementos Class
Association (src upperBound > 1 dst      ­ Eliminar los elementos PersistentTable,
upperBound > 1) que relaciona dos          PrimaryKey, ForeignKey y Column
elementos Class
AssociationClass                         ­ Eliminar el elemento PersistentTable
Generalization                           ­ Eliminar los elementos Column y
                                           ForeignKey
Generalization Set
• Cuando     tenemos herencia múltiple, en
  ocasiones se pueden producir confiltos de
  colisiones de nombres y de precedencia.

• Los conflictos se minimizan haciendo grupos
  de generalizaciones, que comparten una
  misma superclase en base a un mismo criterio
  de especialización.

• Notacion:{<cobertura>,<solapamiento>}
Ejm.




             Por situación laboral
  Por sexo
Un grupo de generalización tiene dos propiedades:

 •   Cobertura(IsCovering)
       ➢ complete, cada instancia de la
         superclase es obligatoriamente
         instancia de alguna(o varias) subclases

       ➢   Incomplete, puede haber instancias de
           la superclase que no sean instancias en
           ninguna subclase

 • Solapamiento(IsDisjoint)
       ➢   Disjoint, las subclases no pueden tener
           instancias comunes
       ➢   Overlapping, las subclases pueden
           tener instancias comunes
Valor por defecto {<incomplete>,<disjoint>}
Pestaña
         Configuración
Para cada elemento del diagrama de clases, en la
pestaña de propiedades tenemos una sección de
configuración, donde se podrá seleccionar un
modelo de configuración, y donde aparecerán los
patrones asociados a dicho elemento.




                                                                  Nueva Configuración

  Botón de selección de un modelo de configuración ya existente
Si pulsamos el botón New aparece la
siguiente pantalla:

                                           Posibles transformaciones para el modelo




                                     Crea una nueva configuración.




Crea una configuración por defecto
Transformaciones de Modelos en
       gvMétrica:UML2DB
      Mónica Gómez Gallego
        (gomez_mon@gva.es)

Más contenido relacionado

Destacado

Experiencias Con Moskitt
Experiencias Con MoskittExperiencias Con Moskitt
Experiencias Con MoskittBegoña Bonet
 
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...Begoña Bonet
 
Soporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittSoporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittBegoña Bonet
 
Taller MOSKitt: Aplicación de DSDM con MOSKitt.
Taller MOSKitt: Aplicación de DSDM con MOSKitt.Taller MOSKitt: Aplicación de DSDM con MOSKitt.
Taller MOSKitt: Aplicación de DSDM con MOSKitt.Begoña Bonet
 
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...Begoña Bonet
 
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...Begoña Bonet
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareJavier Muñoz
 

Destacado (7)

Experiencias Con Moskitt
Experiencias Con MoskittExperiencias Con Moskitt
Experiencias Con Moskitt
 
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...
MOSKitt: Soporte a una Metodología de Desarrollo Dirigido por Modelos, Basada...
 
Soporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKittSoporte al Proceso de Desarrollo con MOSKitt
Soporte al Proceso de Desarrollo con MOSKitt
 
Taller MOSKitt: Aplicación de DSDM con MOSKitt.
Taller MOSKitt: Aplicación de DSDM con MOSKitt.Taller MOSKitt: Aplicación de DSDM con MOSKitt.
Taller MOSKitt: Aplicación de DSDM con MOSKitt.
 
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...
Taller MOSKitt: Cómo aplicar una Metodología de Desarrollo Dirigido por Model...
 
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
Taller MOSKitt: Ejemplo de uso del Editor de Dashboard para definir un Proces...
 
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del SoftwareMOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
MOSKitt: Herramienta de Modelado UML y Soporte a la Ingeniería del Software
 

Similar a Transformación UML a BD

Lenguajes de Transformación
Lenguajes de TransformaciónLenguajes de Transformación
Lenguajes de Transformaciónjesus.sanchez
 
Zope Page Templates
Zope Page TemplatesZope Page Templates
Zope Page TemplatesCodeSyntax
 
Actividad3 2 david a. condori tantani
Actividad3 2  david a. condori tantaniActividad3 2  david a. condori tantani
Actividad3 2 david a. condori tantaniAntonio Condori
 
Lenguajes para definir transformaciones
Lenguajes para definir transformacionesLenguajes para definir transformaciones
Lenguajes para definir transformacionesLuis Alberto Perdomo
 
Presentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosPresentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosBryanSotalin1
 
01. Creación de parámetros.pdf
01. Creación de parámetros.pdf01. Creación de parámetros.pdf
01. Creación de parámetros.pdfMaylinAlvaro
 
Transformar en spss
Transformar en spssTransformar en spss
Transformar en spssYle Quintana
 
Curso SAP BI - ADM2 Administrador de Infoobjetos.ppt
Curso SAP BI - ADM2 Administrador de Infoobjetos.pptCurso SAP BI - ADM2 Administrador de Infoobjetos.ppt
Curso SAP BI - ADM2 Administrador de Infoobjetos.pptssuser9f191a
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02kevinwm17
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfcarlosquiza2
 

Similar a Transformación UML a BD (20)

Lenguajes de Transformación
Lenguajes de TransformaciónLenguajes de Transformación
Lenguajes de Transformación
 
Visual basic.net
Visual basic.netVisual basic.net
Visual basic.net
 
Zope Page Templates
Zope Page TemplatesZope Page Templates
Zope Page Templates
 
Introducción A C# (VersióN Charla)
Introducción A C# (VersióN Charla)Introducción A C# (VersióN Charla)
Introducción A C# (VersióN Charla)
 
Actividad3 2 david a. condori tantani
Actividad3 2  david a. condori tantaniActividad3 2  david a. condori tantani
Actividad3 2 david a. condori tantani
 
Lenguajes para definir transformaciones
Lenguajes para definir transformacionesLenguajes para definir transformaciones
Lenguajes para definir transformaciones
 
Presentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosPresentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datos
 
01. Creación de parámetros.pdf
01. Creación de parámetros.pdf01. Creación de parámetros.pdf
01. Creación de parámetros.pdf
 
Transformar en spss
Transformar en spssTransformar en spss
Transformar en spss
 
Curso SAP BI - ADM2 Administrador de Infoobjetos.ppt
Curso SAP BI - ADM2 Administrador de Infoobjetos.pptCurso SAP BI - ADM2 Administrador de Infoobjetos.ppt
Curso SAP BI - ADM2 Administrador de Infoobjetos.ppt
 
05. normalización
05. normalización05. normalización
05. normalización
 
Ambiente
 Ambiente Ambiente
Ambiente
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambiente de programacin en pascal
Ambiente de programacin en pascalAmbiente de programacin en pascal
Ambiente de programacin en pascal
 
Ambiente de programación en pascal
Ambiente de programación en pascalAmbiente de programación en pascal
Ambiente de programación en pascal
 
Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02Ambientedeprogramacinenpascal 111015091809-phpapp02
Ambientedeprogramacinenpascal 111015091809-phpapp02
 
clases de herramientas lorenita
clases de herramientas lorenitaclases de herramientas lorenita
clases de herramientas lorenita
 
conceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdfconceptos basicos lenguajes de programacion.pdf
conceptos basicos lenguajes de programacion.pdf
 
ATL
ATLATL
ATL
 
MER-MR Reglas e.pdf
MER-MR Reglas e.pdfMER-MR Reglas e.pdf
MER-MR Reglas e.pdf
 

Último

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Último (20)

La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Transformación UML a BD

  • 1. Transformaciones de Modelos en gvMétrica:UML2DB Mónica Gómez Gallego (gomez_mon@gva.es)
  • 2. ¿Donde Usarlo? Desarrollo Gestión de Proyectos Desarrollo Gestión de Proyectos Al inicio Al inicio Proceso Seguimiento Fase del del del de Inicial Proyecto proyecto proyecto Desarrollo
  • 4. Elementos que intervienen Modelo entrada Diagrama de Clases. (fichero.uml) Modelo salida Diagrama de Base de Datos. (fichero.sqlschema) Modelo de Configuración Modelo de configuración de la transformación(fichero.transformationconfiguration)
  • 5. Cómo ejecutar la transformación (1/2) 1. Desde la vista de transformaciones 2. Sobre el modelo con menú contextual Desde la vista de transformaciones Window/Show View/MOSKittTransformation
  • 6. Cómo ejecutar la transformación(2/2) Desde el MOSKitt Resource Explorer utilizando el menú contextual del modelo del diagrama de clases.
  • 7. Cómo ejecutar la transformación(2/3) • Lanzar la transformación • Introducir los parámetros • Validar parámetros • Configurar la transformación • Ejecutar la transformación
  • 8. Lanzar la transformación • Con el gestor de transformaciones (Asistente) • Tiene una primera ventana donde se definen el modelo de entrada y de salida: Diagrama de Clases Diagrama de Base de Datos
  • 9. La siguiente pantalla del asistente nos muestra las posibles configuraciones de la transformación: 1. Configuración por defecto. 2. Seleccionando una configuración dada. Fichero de configuración de la transformación
  • 10. 3. Nueva Configuración Directorio destino para el fichero de configuración a crear Nombre del fichero de configuración La siguiente pantalla es de validación de los modelos de entrada y configuración.
  • 11. ¿QUE SE VALIDA? Diagrama clases ● ● extensión .uml contiene al menos 1 elemento raiz Modelo de configuración ● extensión .transformationconfiguration ● contiene al menos un elemento raíz En la última pantalla del asistente se muestra un campo donde se indica el resultado de la transformación. Si ha sido o no correcta.
  • 12. Modelo configuración transformación Regla (Rules) 1..* 1..* 1..* Patron Modelo Elemento (Pattern) Parametro 0..* Regla por defecto Elemento Regla a aplicar Patrón Parámetros
  • 13. Regla (Rules) 1..* 1..* 1..* Patron Modelo Elemento (Pattern) Parametro 0..* • Todos los elementos tienen el patrón PersistentNomElemento Ejemplo: (PersistentProperty, PersistentClass.....) Con las reglas: - Persistent → el elemento va a ser transformado. - NotPersistent → el elemento no se va a transformar.
  • 14. Parámetros: • Dependiendo del patrón seleccionado podrán aparecer parámetros para completar la configuración: • ¿un atributo es clave primaria? • ¿cuales serán las claves alternativas en una tabla? etc...)
  • 15. Correspondencias de la transformación UML BD Correspondencia Model Database Siempre Package Schema Siempre Class Table Siempre Property Column Depende Association Reference (FK) Depende Class Association Reference+Table Depende Composition Columna +Reference Depende Generalization Reference (FK) Siempre Datatype Column/Column+FK Depende Enumeration Column/Column+FK Depende
  • 16. Property (Atributo) = Field (Campo) Caso1: Si multiplicidad max=1 → se transforma en una columna dentro de la tabla. Caso2: Si multiplicidad max>1 → se transforma en una nueva clase con la que se relaciona. isUnique: Si la propiedad isUnique=True, la propiedad se convertirá en clave primaria de la tabla
  • 17. Association (Asociación) ¡Ojo hablamos de los dos extremos de la asociación! Caso1: Si multiplicidades máximas =1 ->Foreign Key ¡Ojo con la navegabilidad de la asociación! Caso2: Si multiplicidades máximas >1 ->Tabla + Foreign Key
  • 18. Caso3: En el resto de los casos el usuario elige si quiere que se transforme en una tabla o en una Clave Ajena añadiendo el patrón: Patrón: AssociationInto Reglas: Reference → Clave Ajena (por defecto) Table → Tabla Reference
  • 19. Table
  • 20. Composition (Composición) Caso1: Si multiplicidades máximas =1 → Se transforma en una clave ajena, que puede ser además primaria o no. Patrón: CompositionConstraint Reglas: IdentityConstraint → (por defecto),clave ajena+ clave primaria NoIdentityConstraint → clave ajena Caso2: Si multiplicidades máximas >1 Patron1: Composition Constraint Reglas: IdentityConstraint → (por defecto),clave ajena+ clave primaria NoIdentityConstraint → clave ajena
  • 22. Patron2: CompositionAs Reglas: Reference → (por defecto) Clave ajena Table → Tabla REFERENCE TABLE
  • 23. Generalization (Generalización) Para las generalizaciones se incluye un patrón en la clase padre. Patron1: GeneralizationInto Reglas: AllTables → (por defecto) transforma todas las Clases OnlyChildTable → únicamente son transformadas las clases hijas OnlyParentTable → sólo se transforma la clase padre
  • 25. Generalization Set (Conjunto de Generalización) La transformación es la misma que en el caso de las generalizaciones. AssociationClass (Clase Asociación) Crea una tabla por clase y en la tabla correspondiente a la clase asociación dos claves ajenas a las tablas que une.
  • 26. Datatype A un tipo de datos (Datatype) se le puede hacer referencia, bien por el tipo de datos del atributo (Property) o como una asociación entre la clase origen y la propia clase del tipo de datos(Association). Property Association
  • 27. Patrón: PropertyToDataTypeAs Reglas: Property → Columna ExclusiveTable → 1 tabla por atributo + Clave ajena Shared Table → 1! tabla + Clave ajena Property y Association Caso1. Si multiplicidad max. =1 Reglas: Property → (por defecto) los atributos del “Datatype” se incluyen en la clase Property Association
  • 28. Caso2. Si multiplicidad max. >1 Regla: ExclusiveTable (por defecto) Property Association
  • 29. Tanto para Caso1,Caso2 Regla: Shared Table Property Association
  • 30. Enumeration Al igual que el elemento “Datatype” el enumerado se puede definir como tipo de datos de un atributo (Property) o como una asociacion (Association) entre la clase y el enumerado. Patrón: PropertyToEnumerationAs Reglas: Property → Columna ExclusiveTable → 1 tabla por atributo + Clave ajena Shared Table → 1! tabla + Clave ajena
  • 31. Property y Association Caso1. Si multiplicidad max. =1 Reglas: Property → (por defecto) los atributos del “Datatype” se incluyen en la clase Property Association
  • 32. Caso2. Si multiplicidad max. >1 Regla -> ExclusiveTable (por defecto),se crea unatabla por cada atributo cuyo tipo de datos sea el enumerado, además de una Property referencia a dicha clase. Association
  • 34. Sincronización de la transformación • La sincronización es en el sentido UML2 a BD. • La sincronización afecta a la inserción, actualización y borrado de elementos. Inserción de elementos Cualquier elemento insertado en el modelo de clases, se transformará en el modelo de base de datos.
  • 35. Actualización de elementos Los elementos se actualizan según la siguiente tabla: UML BD Package Schema   ­ modificar la propiedad name   ­ se actualiza la propiedad name Class (isAbstract = false) PersistentTable   ­ modificar la propiedad name   ­ se actualiza la propiedad name   ­ modificar  isAbstract= true   ­ eliminar PersistentTable Class (isAbstract = true)   ­ transformar el elemento Class   ­ modificar la propiedad isAbstract = false   ­ genera los elementos      PersistentTable y PrimaryKey
  • 36. UML BD DataType PersistentTable   ­ modificar la propiedad name se actualiza la propiedad name Enumeration PersistentTable   ­ modificar la propiedad name se actualiza la propiedad name Property (upperBound = 1) PersistentTable   1.modificar la propiedad name   1.se actualiza la propiedad name   2.modificar la propiedad upperBound > 1   2.eliminar los elementos      PersistentTable, PrimaryKey,       ForeignKey y Column      Transformar el elemento Property       genera el elemento Column Association (src upperBound = 1 dst  Column, ForeignKey upperBound = 1) que relaciona dos  elementos Class   ­ modificar la propiedad name   ­ se actualiza la propiedad name Association (src upperBound > 1 dst  PersistentTable, PrimaryKey upperBound > 1) que relaciona dos  elementos Class   ­ modificar la propiedad name   ­ se actualiza la propiedad name
  • 37. UML BD Association que relaciona dos elementos    ­ Eliminar los elementos generados a Class     partir del elemento Association   ­ modificar la cardinalidad   ­ Transformar el elemento Association     siguiendo el apartado anterior Property que referencia a un elemento    ­ Eliminar los elementos generados a DataType     partir de los elementos Property y   ­ modificar la cardinalidad     DataType   ­ Transformar los elementos Association     y DataType siguiendo el apartado     anterior Property que referencia a un elemento    ­ Eliminar los elementos generados a Enumeration     partir del los elementos Property y     Enumeration   ­ Modificar la cardinalidad   ­ Transformar los elementos Association      y Enumeration siguiendo el apartado      anterior Association que relaciona un elemento    ­ Eliminar los elementos generados a Class y un elemento DataType     partir de los elementos Association y     DataType   ­ Modificar la cardinalidad   ­ Transformar los elementos Association      y DataType siguiendo el apartado        anterior
  • 38. UML BD Association que relaciona un elemento    ­ Eliminar los elementos generados a Class y un elemento Enumeration     partir de los elementos Association y     Enumeration   ­ Modificar la cardinalidad transformar los elementos Association y  Enumeration siguiendo el apartado  anterior AssociationClass PersistentTable, PrimaryKey modificar la propiedad name actualizar la propiedad name
  • 39. Borrado de elementos UML BD Package   ­ Eliminar el elemento Schema Class (isAbstract = false)   ­ Eliminar el elemento PersistentTable Property (upperBound = 1)   ­ Eliminar (Column) Property (upperBound > 1)   ­ Eliminar los elementos PersistentTable,     PrimaryKey, ForeignKey y Column Association (src upperBound = 1 dst    ­ Eliminar los elementos Column y upperBound = 1) que relaciona dos      ForeignKey elementos Class Association (src upperBound > 1 dst    ­ Eliminar los elementos PersistentTable, upperBound > 1) que relaciona dos      PrimaryKey, ForeignKey y Column elementos Class AssociationClass   ­ Eliminar el elemento PersistentTable Generalization   ­ Eliminar los elementos Column y     ForeignKey
  • 40. Generalization Set • Cuando tenemos herencia múltiple, en ocasiones se pueden producir confiltos de colisiones de nombres y de precedencia. • Los conflictos se minimizan haciendo grupos de generalizaciones, que comparten una misma superclase en base a un mismo criterio de especialización. • Notacion:{<cobertura>,<solapamiento>}
  • 41. Ejm. Por situación laboral Por sexo
  • 42. Un grupo de generalización tiene dos propiedades: • Cobertura(IsCovering) ➢ complete, cada instancia de la superclase es obligatoriamente instancia de alguna(o varias) subclases ➢ Incomplete, puede haber instancias de la superclase que no sean instancias en ninguna subclase • Solapamiento(IsDisjoint) ➢ Disjoint, las subclases no pueden tener instancias comunes ➢ Overlapping, las subclases pueden tener instancias comunes Valor por defecto {<incomplete>,<disjoint>}
  • 43. Pestaña Configuración Para cada elemento del diagrama de clases, en la pestaña de propiedades tenemos una sección de configuración, donde se podrá seleccionar un modelo de configuración, y donde aparecerán los patrones asociados a dicho elemento. Nueva Configuración Botón de selección de un modelo de configuración ya existente
  • 44. Si pulsamos el botón New aparece la siguiente pantalla: Posibles transformaciones para el modelo Crea una nueva configuración. Crea una configuración por defecto
  • 45. Transformaciones de Modelos en gvMétrica:UML2DB Mónica Gómez Gallego (gomez_mon@gva.es)