VAN - Septiembre 19 de 2009 - Introducción ORM 

 

Formato

          Reunión virtual

 

Duración:

          Vídeo Completo: 2:30 horas

          Introducción: 00:00:00 a 00:02:33

          Encuesta: 00:02:34 a 00:06:45

          Desconferencia: 00:06:46 a 01:38:00

          Preguntas y debate: 01:38:01 a 02:29:38

          Nota: La presentación del tema a cargo de Fabio Maulo comprende 1:37 horas y a partir de ahí continua la sección de preguntas y una discusión interesante respecto a la relación entre desarrolladores y DBAs vista a través de ORM.

 

Síntesis:

          ORM es el acronimo de Object Relational Mapping y es la técnica de programación/diseño para convertir datos entre el sistema de tipos utilizado en lenguajes Object Oriented y el utilizado en un DB relacional.

 

Introducción a ORM
La situación:
          OOP y RDBMS
          Los modelos de datos son parciales
          Necesitamos una capa de persistencia
Definición de ORM
El problema:
Trasformación de OOP a RDBMS
Identificación de objetos
Consideraciones sobre Keys
          Keys involucradas con el negocio
          Composite keys
          Persistent Object Identifier POID
          Estrategias de asignación de POIDs
                    MAX
                    Table Key-Values
                    GUIDs/UUIDs
                    Mecanismos propietarios
                    High/Low HILO
Mapping Propiedades a Campos
Mapping Clases a Tablas
Mapping de herencia
          Table per class hierarchy
          Table per concrete class
          Table per class
          Ejemplo comparativo de las tres técnicas
          Impacto de modificaciones en las tres técnicas
                    Agregar propiedad
                    Agregar clase
                    Agregar propiedad en superclase
                    Comparación del impacto entre las tres técnicas
          Comparación respecto de su utilización
                    Reporting
                    Implementación
                    Acceso a datos
                    Acoplamiento
                    Velocidad de acceso a datos
                    Soporte polimorfismo
Mapping, más clases en una tabla
Mapping de Relaciones
          Asociación y Agregación
          Implementando relaciones:
                    One-to-One,
                    Many-to-One y
                    Many-to-Many
                    Many-to-Many con POID
          Mismas clases, diferentes relaciones
Concurrencia
          Locking Pesimista
          Locking Optimista
                    Implementando Locking Optimista
                              Where All
                              Timestamp
                              Versión incremental
Stored Procedures
          Cuando usarlas en un proceso de mapping
Triggers, Cuando usarlos
Capa de persistencia
          Qué podemos esperar de un buen persistence layer
                    Soporte a varios RDBMS
                    Varios sistemas de generación de POIDs
                    Varias estrategias de herencia
                    Manejo de asociaciones y agregaciones
                    Gestión de concurrencia
                    Permita crear nuevas aplicaciones sobre un DB existente
                    Usar Stored Procedures
                    Usar valores generados por medio de Triggers
                    Implementación del patrón Unit-of-Work
                    Acceso inteligente a DB
                    Uso de Cahe con CachingInvalidation Policies
                    Soporte a Queries orientadas a objetos y SQL
                    Limite al Round-Trip, Statement Batching
                    Dirty Checking
                    Lazy Loading
                    Flexible Eager Fetch
                    Cascading Updates/Deletes
                    Acceder a datos sin acceder a todo el grafo de la una entidad
                    Multithreading
                    CRUD refiriéndose a entidades
                    Eventos para controlar el ciclo de vida de una entidad
                    De fácil integración con frameworks de IoC
                    Undo capability
                    Dependency ordering
                    Paging support
                    Aggregation suppot
Soluciones para ORM
          Bases de datos orientadas a objetos
          Frameworks de ORM
          Data Mappers
          Solución propia
Frameworks de ORM
          Hibernate
          MS Entity Framework
          NHibernate
          Castle Active Record
          Otros .NET

Enlaces:

http://www.agiledata.org/ 

 

Video

Si lo prefieren, pueden observar el vídeo en http://www.screencast.com/t/cEUiM975 o descargar el archivo desde este enlace, el cual tiene un tamaño de 358.72 MB.

Unable to display content. Adobe Flash is required.