061 Modelos Universales De Datos Permatron

901 views

Published on

Published in: Travel, Business
  • Be the first to comment

  • Be the first to like this

061 Modelos Universales De Datos Permatron

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

×