SlideShare a Scribd company logo
1 of 31
Un modelo de datos universal interesante: Permatron Juan Nicolás Jodal Matteo
Escenario: extensibilidad de datos Customer { CustomerId* CustomerName CustomerPhone }
Solución I: Pattern OAV Customer { CustomerId* CustomerName CustomerPhone } CustomerAttribute { CustomerAttributeId* CustomerAttributeName CustomerAttributeType } CustomerAttributeValue { CustomerId* CustomerAttributeId* CustomerAttributeValue }
Solución II: UDM Modelos Universales de Datos (UDM)
UDM Existentes Modelo de David Hay Topics Maps CM Hypergraphs Google BigTable Amazon CoachDB FreeBase ThingDB FluidDB RDF
Modelo de David Hay
Objetivos Almacenar datos no planificados Información no uniforme Versiones de la información
Un enfoque común
Relaciones entre lasentidades Explícitas Orientación a Objetos Implícitas Modelo Relacional
Permatron
Datos Notebook {    Id     = 1234   Marca  = Lenovo   Modelo = T500    Disco    {       Tipo = SSD       Tamaño        {          Unidad = 128          Medida = GB       }    } } Persona {    Id     = 5678   Nombre = Camila   Padre  = Nicolas } Persona {    Id     = 9123    Nombre = Nicolas    Cuadro = Peñarol }
Origen File { FileId* FileName FileContent }
Contenido Abierto Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyName PropertyValue }
Repositorio de Valores Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyName PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
Repositorio de Propiedades Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue } Property { PropertyId* PropertyName }
Una Propiedad es una Entidad! Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId //subtypeEntityId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
Link entre Entidades PropertyValue { PropertyValueId* PropertyValueType PropertyValueCharacter PropertyValueBlob PropertyValueEntityId // SubtypeEntityId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
UDM EntityOriented Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueCharacter PropertyValueBlob PropertyValueEntityId }
UDM AttributeOriented Value { ValueId* ValueType ValueData } ValueProperties { SubjectId*       // subtypeValueId RowId* IndentLevel PropertyId      // subtypeValueId PropertyValueId // subtypeValueId }
Ejemplo  Persona {    Id     = 5678   Nombre = Camila   Padre  = Nicolas }
Versionado Value { ValueId* ValueType ValueData ValueLastVersionId } ValueProperties { SubjectId* SubjectVersionId* RowId* IndentLevel PropertyId PropertyValueId } ValueVersion { SubjectId*       SubjectVersionId* SubjectTimeStamp SubjectLastRowId }
UDM Versionado! Value { ValueId* ValueType ValueData ValueLastVersionId } ValueVersion { SubjectId* SubjectVersionId* SubjectTimeStamp ValueVersionProperties    {  RowId* IndentLevel PropertyId PropertyValueId    }  }
KB Permatron: Arquitectura Web Monitor Prototyper DB API Entity API Persistency Layer
Demo
Escenarios de Uso: Datos existentes
Ventajas
Desventajas
Reflexiones: Modelo Relacional Igual potencia
ConfabulationTheory
Futuro

More Related Content

More from GeneXus

Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in ActionGeneXus
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...GeneXus
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?GeneXus
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroGeneXus
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y PlataformasGeneXus
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosGeneXus
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaGeneXus
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 StudentsGeneXus
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsiveGeneXus
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusGeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosGeneXus
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAPGeneXus
 
Going mobile
Going mobileGoing mobile
Going mobileGeneXus
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusGeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusGeneXus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...GeneXus
 
Laboratorio GXserver (cont)
Laboratorio GXserver (cont)Laboratorio GXserver (cont)
Laboratorio GXserver (cont)GeneXus
 
Laboratorio GXserver
Laboratorio GXserverLaboratorio GXserver
Laboratorio GXserverGeneXus
 

More from GeneXus (20)

Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in Action
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuro
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y Plataformas
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivos
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industria
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsive
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAP
 
Going mobile
Going mobileGoing mobile
Going mobile
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
 
Laboratorio GXserver (cont)
Laboratorio GXserver (cont)Laboratorio GXserver (cont)
Laboratorio GXserver (cont)
 
Laboratorio GXserver
Laboratorio GXserverLaboratorio GXserver
Laboratorio GXserver
 

061 Modelos Universales De Datos Permatron

  • 1. Un modelo de datos universal interesante: Permatron Juan Nicolás Jodal Matteo
  • 2. Escenario: extensibilidad de datos Customer { CustomerId* CustomerName CustomerPhone }
  • 3. Solución I: Pattern OAV Customer { CustomerId* CustomerName CustomerPhone } CustomerAttribute { CustomerAttributeId* CustomerAttributeName CustomerAttributeType } CustomerAttributeValue { CustomerId* CustomerAttributeId* CustomerAttributeValue }
  • 4. Solución II: UDM Modelos Universales de Datos (UDM)
  • 5. UDM Existentes Modelo de David Hay Topics Maps CM Hypergraphs Google BigTable Amazon CoachDB FreeBase ThingDB FluidDB RDF
  • 7. Objetivos Almacenar datos no planificados Información no uniforme Versiones de la información
  • 9. Relaciones entre lasentidades Explícitas Orientación a Objetos Implícitas Modelo Relacional
  • 11. Datos Notebook { Id = 1234 Marca = Lenovo Modelo = T500 Disco { Tipo = SSD Tamaño { Unidad = 128 Medida = GB } } } Persona { Id = 5678 Nombre = Camila Padre = Nicolas } Persona { Id = 9123 Nombre = Nicolas Cuadro = Peñarol }
  • 12. Origen File { FileId* FileName FileContent }
  • 13. Contenido Abierto Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyName PropertyValue }
  • 14. Repositorio de Valores Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyName PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
  • 15. Repositorio de Propiedades Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue } Property { PropertyId* PropertyName }
  • 16. Una Propiedad es una Entidad! Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId //subtypeEntityId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
  • 17. Link entre Entidades PropertyValue { PropertyValueId* PropertyValueType PropertyValueCharacter PropertyValueBlob PropertyValueEntityId // SubtypeEntityId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueValue }
  • 18. UDM EntityOriented Entity { EntityId* EntityName } EntityProperties { EntityId* RowId* IndentLevel PropertyId PropertyValueId } PropertyValue { PropertyValueId* PropertyValueType PropertyValueCharacter PropertyValueBlob PropertyValueEntityId }
  • 19. UDM AttributeOriented Value { ValueId* ValueType ValueData } ValueProperties { SubjectId* // subtypeValueId RowId* IndentLevel PropertyId // subtypeValueId PropertyValueId // subtypeValueId }
  • 20. Ejemplo Persona { Id = 5678 Nombre = Camila Padre = Nicolas }
  • 21.
  • 22. Versionado Value { ValueId* ValueType ValueData ValueLastVersionId } ValueProperties { SubjectId* SubjectVersionId* RowId* IndentLevel PropertyId PropertyValueId } ValueVersion { SubjectId* SubjectVersionId* SubjectTimeStamp SubjectLastRowId }
  • 23. UDM Versionado! Value { ValueId* ValueType ValueData ValueLastVersionId } ValueVersion { SubjectId* SubjectVersionId* SubjectTimeStamp ValueVersionProperties { RowId* IndentLevel PropertyId PropertyValueId } }
  • 24. KB Permatron: Arquitectura Web Monitor Prototyper DB API Entity API Persistency Layer
  • 25. Demo
  • 26. Escenarios de Uso: Datos existentes

Editor's Notes

  1. Estos distintos modelos en donde mas se diferencian es en como tratan las relaciones entre las entidades. En los dos extremos tenemos: el Modelo Relacional por un lado, que define los siguientes criterios: No hay diferencia entre las Entidades y las Relaciones entre entidades, todo se representa como tablas. La relación entre las entidades se representa de forma implícita, por los atributos que tienen en común. Así, por ejemplo, la forma de definir que la Factura tiene una relación n-1 con el Cliente es poner la PK de Cliente en la tabla de Factura. en el otro extremo, en el Modelo de Datos Orientado a Objetos los criterios son: Cada objeto de una Entidad tiene un identificador único (normalmente llamado Object Id). Las relaciones entre los objetos se realiza explícitamente mediante los Object Id. De esta manera, una Factura debe tener el Object Id del Cliente correspondiente y el Cliente debe mantener una lista de sus Facturas.
  2. Supongamos que se quiere almacenar en una base de datos relacional archivos XML. La solución más simple consiste en tener una sola tabla del tipo:File { FileId* FileNameFileContent // aquí se almacena el contenido del archivo XML (normalmente como un string) }Si bien este modelo es extremadamente sencillo, tiene una serie de problemas. Algunos de ellos: Se está asumiendo que el contenido de cada File no tiene links a otros Files pero, si lo que se quiere es poder registrar las relaciones entre los datos, este modelo lo hace casi imposible. Los mecanismos de búsqueda por algunos valores particulares solo se pueden hacer vía algún mecanismo de full textsearch. Esto dificulta la implementación de criterios de integridad (no borrar un elemento si está siendo referenciado en otro lugar, etc.).
  3. http://www.amazon.com/gp/product/3540496033?ie=UTF8&tag=scholarpedia-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=3540496033