SlideShare una empresa de Scribd logo
1 de 26
Universidad Nacional de Misiones
    Facultad de Ciencias Exactas, Químicas y Naturales

   Tesis de grado Licenciatura en Sistemas de Información

Diseño de una interfaz de consulta a db4o basada en 
                      XQuery



                           Autor:
                     Sergio Fabián Vier

                          Tutores:
                    Mg. Javier Bazzocco
                   Ing. Ruben M. Castaño

                          Año 2009
Temario de la presentación
1. Alcance del trabajo
2. Revisión de la Literatura
3. Instrucciones de XQuery
4. API de Consultas SODA
5. Convirtiendo desde Java a XML
6. Diseño de la nueva API de consulta
7. Funcionalidades de la nueva API de consulta
8. Elementos Finales
                       Sergio Fabián Vier    2 de 26
Alcance del trabajo
Descripción del problema
➔   ¿Por qué XML?
    ●   Demanda creciente de tecnologías estandarizadas que
        permitan el intercambio de información entre Sistemas
        heterogéneos.
    ●   Es capaz de contener información que provenga de diversas
        fuentes de datos: documentos estructurados, bases de
        datos relacionales y bases de objetos.
    ●   Posee el XQuery, un lenguaje de consulta estándar,
        inteligente y robusto, optimizado para consultar todos los
        tipos de datos XML.


                             Sergio Fabián Vier               3 de 26
Alcance del trabajo                        continuación


Descripción del problema
➔   La Base de Objetos db4o
    ●   Las Bases de Objetos han logrado establecerse como un
        complemento (no como un reemplazo) a las Bases de Datos
        Relacionales para la resolución eficiente del desfasaje
        Objeto-Relacional.
    ●   Solución de persistencia embebida enfocada en dispositivos
        móviles, paquetes de software, sistemas de control de tiempo
        real, y sistemas con un elevado tráfico de información.


    No se ha integrado dentro de db4o una interfaz de consulta
    estandarizada como XQuery.

                              Sergio Fabián Vier                 4 de 26
Alcance del trabajo                       continuación


Objetivo General

  Diseñar una interfaz o API (Application Programming Interface)
  de consulta nativa a la base de objetos db4o, capaz de
  procesar el lenguaje XQuery. Debe permitir recuperar objetos
  persistentes en formato de documento XML y adaptarse a los
  requerimientos impuestos por esta Base de Objetos y la
  plataforma Java.




                          Sergio Fabián Vier                 5 de 26
Alcance del trabajo                                    continuación


Objetivos Específicos
  1.Establecer el “estado del arte” mediante una extensa revisión y evaluación
    bibliográfica.
  2.Determinar el subconjunto de instrucciones y funciones del lenguaje XQuery
    que serán utilizadas para poder realizar consultas sobre Documentos XML.
  3.Analizar la arquitectura del motor db4o, en especial determinar el
    comportamiento del contenedor de consultas (ObjectContainer).
  4.Definir reglas de correspondencia que permita determinar el mapeo de tipos
    de datos, así como las estructuras existentes, entre objetos de Java y XML.
  5.Plantear una estrategia clara para la conversión de las instrucciones XQuery a
    las construcciones existentes que brinda la API de consulta S.O.D.A.
  6.Mediante el análisis de características y restricciones de la API de consulta
    S.O.D.A, modelar la API que implemente el subconjunto de instrucciones
    XQuery.


                                 Sergio Fabián Vier                          6 de 26
Revisión de la Literatura
XML
 Es un lenguaje de marcas o etiquetas flexible el cual
 permite crear formatos de intercambio de información
 y compartir tanto el formato como los datos.
 ➔    Es posible almacenar y organizar una gran
      cantidad de información en forma personalizada.
 ➔    Ofrece muchas maneras de chequear la calidad del
      contenido de un documento.
 ➔    Es un estándar de la W3C, abierto y evolutivo.


                        Sergio Fabián Vier             7 de 26
Revisión de la Literatura              continuación


XQuery
 El XML Query es un lenguaje funcional estandarizado
 por el W3C, que permite realizar consultas sobre
 colecciones de datos expresadas en XML.
  ➔   Permite seleccionar elementos XML, transformarlos,
      realizar cálculos, y retornar los resultados en una
      estructura a elección.
  ➔   Es flexible ya que está basado en expresiones
      combinables entre si.
  ➔   La expresiones FLWOR, nucleo de XQuery, son
      similares a lo que ofrece el SQL.
                        Sergio Fabián Vier            8 de 26
Revisión de la Literatura                          continuación


db4o
 La librería db4o que significa databases for objects, es una Base de
 Objetos basada completamente en el modelo orientado a objetos
 de la programación.
 ➔   Diseñada para ser simple, posibilita la persistencia transparente.
 ➔   Provee un entorno de cero-administración.
 ➔   Posee tamaño reducido, bajo consumo de memoria y un alto
     desempeño.
 ➔   Facilita la tarea de refactorización aplicaciones orientadas a
     objetos.
 ➔   Posee varios lenguajes de consultas: SODA, QBE, Native Query.



                              Sergio Fabián Vier                    9 de 26
Instrucciones de XQuery
Entre las instrucciones disponibles encontramos
➔   Expresiones XPath
      doc(“un.xml”) – “//” y “/” [@attr = “dat”] 
➔   Agregando atributos y elementos a resultados
      element – attribute – “{}”
➔   Expresiones FLWOR
      for – let – where – order by – return
➔   Funciones build-in
      sum – min – max – avg 

                         Sergio Fabián Vier    10 de 26
Instrucciones de XQuery
Expresiones FLWOR
➔   Tienen una funcionalidad similar a las distintas cláusulas de
    una sentencia SQL (select, from, where, order by).
➔   Es la estructura central (pero no la única) que dispone XQuery
    para realizar consultas.
➔   Permite manipular colecciones de datos XML en forma iterativa.


    En este trabajo, el procesamiento de instrucciones XQuery
    toma estas expresiones como base de la técnica de
    conversión.



                            Sergio Fabián Vier               11 de 26
API de Consultas S.O.D.A.
Provee clases para ejecutar consultas complejas en una
base de objetos. La idea básica de SODA es construir un
grafo, el cual es usado para expresar una consulta
dinámica y crearla en tiempo de ejecución.
➔   Mínimo número de llamadas a la API necesarias para
    crear una consulta.
➔   No requiere un analizador de consultas.
➔   Basada en Nodos, de fácil recorrido y manipulación.




                         Sergio Fabián Vier          12 de 26
API de Consultas S.O.D.A. continuación




Algunas equivalencias entre instrucciones XQuery – SODA

                       Sergio Fabián Vier           13 de 26
Convirtiendo desde
                Java a XML
El data binding o mapeo de componentes XML
desde y hacia el modelo de objetos de Java.




Esta trabajo está centrado en la técnica de marshalling.
                        Sergio Fabián Vier           14 de 26
Convirtiendo desde
                Java a XML                    continuación


➔   Esta técnica tiene que ser no intrusiva respecto
    al modelo de objetos.
➔   Se consideran solo tipos de datos primitivos en
    Java que tienen equivalentes en XML.


    La técnica de marshalling propuesta hace uso
    de la característica de reflexión del lenguaje
    Java.


                       Sergio Fabián Vier         15 de 26
Diseño de la nueva
               API de consulta
Restricciones de Diseño
➔   Impuestas por el entorno de ejecución
    1.Tamaño reducido y de bajo consumo de recursos.
    2.Autonomía y cero administración.
➔   Impuestas por la base de objetos
    1.Alto desempeño y confiabilidad.
    2.Portabilidad entre plataformas.
    3.Facilidad de uso e implementación.
    4.No se realizan modificaciones a los objetos.
                         Sergio Fabián Vier          16 de 26
Diseño de la nueva
            API de consulta              continuación


Integración dentro de db4o




                    Sergio Fabián Vier       17 de 26
Diseño de la nueva
           API de consulta              continuación


Modelo propuesto




                   Sergio Fabián Vier       18 de 26
Diseño de la nueva
                     API de consulta                        continuación


Flujo del proceso de ejecución de consultas

1. Iniciación de la API.
2. Generar el plan de ejecución.
3. Ejecución del plan.
4. Enlazar los resultados                               ´
y generar XML.




                                                        ´


                                   Sergio Fabián Vier           19 de 26
Funcionalidades de la nueva
            API de consulta
De cara al usuario
➔   El uso de una fachada simplifica el uso de la API.
➔   Las referencias múltiples encontradas en el modelo de
    objetos son mantenidas.
➔   Los objetos son serializados a XML sin la necesidad
    de especificar cómo.
Internamente
➔   Flujo de ejecución guiado por un planificador,
    encargado de generar el plan de ejecución.


                          Sergio Fabián Vier             20 de 26
Funcionalidades de la nueva
           API de consulta      continuación


Plan de ejecución, el proceso de transformación de XQuery




                         Sergio Fabián Vier            21 de 26
Funcionalidades de la nueva
              API de consulta      continuación


Utilización de la API de consulta
➔     Tres interfases: XQuery, XSet y ExtObjectContainer.
Ejemplo de uso con una consulta XQuery
   
   String xquery = “for $prod in doc('catalogo.xml')//producto“ +
                   “let $prodDept := $prod/@departamento“ +
                    “where $prodDept='ACC' or $prodDept='FEM'“ +
                    “return $prod/nombre”;
   ... 
   ExtObjectContainer db = Db4o.openFile(ruta); // conectar la db
   XQuery xq = db.xquery();                // crear una instancia
   xq.setXQuery(xquery);                 // asignar la consulta
   XSet result = xq.execute();          // ejecutar la consulta
   System.out.println(result.getXml());   // procesar el resultado

                            Sergio Fabián Vier               22 de 26
Elementos Finales
Discusión de los Resultados
A favor:
 ➔ Diseño de API nativo y unificado a db4o.


 ➔ Bajo consumo de recursos.


 ➔ Proceso de conversión de instrucciones equivalente.


 ➔ No condiciona el entorno de ejecución de db4o.


En contra:
 ➔ El proceso de data binding diseñado, deja de lado el soporte de

   ciertas instrucciones Java.
 ➔ Las consultas complejas pueden estar limitadas por el soporte

   de la API.


                            Sergio Fabián Vier               23 de 26
Elementos Finales                  continuación


Conclusiones
➔   La API propuesta es viable de implementar en
    entornos con estrictos requerimientos en consumo de
    recursos computacionales, pero no así en los que se
    dispone de mayores márgenes de los mismos.
➔   En entornos de altas prestaciones, igualmente puede
    pesar más el buen comportamiento que tendría la API
    sobre grandes colecciones de objetos bajo la base de
    objetos db4o.



                        Sergio Fabián Vier           24 de 26
Elementos Finales                continuación


Trabajo Futuro
➔   Implementación de la API diseñada.
➔   Soporte de XML Schema, generarlo en base al
    modelo y operar con él.
➔   Soporte de nuevas instrucciones XQuery propuestas:
    actualización de XML vía XQuery Update.




                        Sergio Fabián Vier         25 de 26
Muchas gracias

Más contenido relacionado

Similar a Tesis Licenciatura

Similar a Tesis Licenciatura (20)

Laravel
LaravelLaravel
Laravel
 
Visualfoxpro3
Visualfoxpro3Visualfoxpro3
Visualfoxpro3
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Trabajo de case grupal
Trabajo de case grupalTrabajo de case grupal
Trabajo de case grupal
 
Trabajo de case grupal
Trabajo de case grupalTrabajo de case grupal
Trabajo de case grupal
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptx
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
ORMphp Beta v1.0 - Presentación
ORMphp Beta v1.0 - PresentaciónORMphp Beta v1.0 - Presentación
ORMphp Beta v1.0 - Presentación
 
Para Flor :P
Para Flor :PPara Flor :P
Para Flor :P
 
Persistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_softwarePersistencia de datos_hibernate_arquitecturas_de_software
Persistencia de datos_hibernate_arquitecturas_de_software
 
Balotario resuelto
Balotario resueltoBalotario resuelto
Balotario resuelto
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Manual hibernate
Manual hibernateManual hibernate
Manual hibernate
 
FHIR HL7
FHIR  HL7FHIR  HL7
FHIR HL7
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Programación del curso inf212 - POO
Programación del curso inf212 - POOProgramación del curso inf212 - POO
Programación del curso inf212 - POO
 
Linq
LinqLinq
Linq
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 

Último

DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024AndreRiva2
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 

Último (20)

Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024UNIDAD DPCC. 2DO. DE  SECUNDARIA DEL 2024
UNIDAD DPCC. 2DO. DE SECUNDARIA DEL 2024
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 

Tesis Licenciatura

  • 1. Universidad Nacional de Misiones Facultad de Ciencias Exactas, Químicas y Naturales Tesis de grado Licenciatura en Sistemas de Información Diseño de una interfaz de consulta a db4o basada en  XQuery Autor: Sergio Fabián Vier Tutores: Mg. Javier Bazzocco Ing. Ruben M. Castaño Año 2009
  • 2. Temario de la presentación 1. Alcance del trabajo 2. Revisión de la Literatura 3. Instrucciones de XQuery 4. API de Consultas SODA 5. Convirtiendo desde Java a XML 6. Diseño de la nueva API de consulta 7. Funcionalidades de la nueva API de consulta 8. Elementos Finales Sergio Fabián Vier 2 de 26
  • 3. Alcance del trabajo Descripción del problema ➔ ¿Por qué XML? ● Demanda creciente de tecnologías estandarizadas que permitan el intercambio de información entre Sistemas heterogéneos. ● Es capaz de contener información que provenga de diversas fuentes de datos: documentos estructurados, bases de datos relacionales y bases de objetos. ● Posee el XQuery, un lenguaje de consulta estándar, inteligente y robusto, optimizado para consultar todos los tipos de datos XML. Sergio Fabián Vier 3 de 26
  • 4. Alcance del trabajo continuación Descripción del problema ➔ La Base de Objetos db4o ● Las Bases de Objetos han logrado establecerse como un complemento (no como un reemplazo) a las Bases de Datos Relacionales para la resolución eficiente del desfasaje Objeto-Relacional. ● Solución de persistencia embebida enfocada en dispositivos móviles, paquetes de software, sistemas de control de tiempo real, y sistemas con un elevado tráfico de información. No se ha integrado dentro de db4o una interfaz de consulta estandarizada como XQuery. Sergio Fabián Vier 4 de 26
  • 5. Alcance del trabajo continuación Objetivo General Diseñar una interfaz o API (Application Programming Interface) de consulta nativa a la base de objetos db4o, capaz de procesar el lenguaje XQuery. Debe permitir recuperar objetos persistentes en formato de documento XML y adaptarse a los requerimientos impuestos por esta Base de Objetos y la plataforma Java. Sergio Fabián Vier 5 de 26
  • 6. Alcance del trabajo continuación Objetivos Específicos 1.Establecer el “estado del arte” mediante una extensa revisión y evaluación bibliográfica. 2.Determinar el subconjunto de instrucciones y funciones del lenguaje XQuery que serán utilizadas para poder realizar consultas sobre Documentos XML. 3.Analizar la arquitectura del motor db4o, en especial determinar el comportamiento del contenedor de consultas (ObjectContainer). 4.Definir reglas de correspondencia que permita determinar el mapeo de tipos de datos, así como las estructuras existentes, entre objetos de Java y XML. 5.Plantear una estrategia clara para la conversión de las instrucciones XQuery a las construcciones existentes que brinda la API de consulta S.O.D.A. 6.Mediante el análisis de características y restricciones de la API de consulta S.O.D.A, modelar la API que implemente el subconjunto de instrucciones XQuery. Sergio Fabián Vier 6 de 26
  • 7. Revisión de la Literatura XML Es un lenguaje de marcas o etiquetas flexible el cual permite crear formatos de intercambio de información y compartir tanto el formato como los datos. ➔ Es posible almacenar y organizar una gran cantidad de información en forma personalizada. ➔ Ofrece muchas maneras de chequear la calidad del contenido de un documento. ➔ Es un estándar de la W3C, abierto y evolutivo. Sergio Fabián Vier 7 de 26
  • 8. Revisión de la Literatura continuación XQuery El XML Query es un lenguaje funcional estandarizado por el W3C, que permite realizar consultas sobre colecciones de datos expresadas en XML. ➔ Permite seleccionar elementos XML, transformarlos, realizar cálculos, y retornar los resultados en una estructura a elección. ➔ Es flexible ya que está basado en expresiones combinables entre si. ➔ La expresiones FLWOR, nucleo de XQuery, son similares a lo que ofrece el SQL. Sergio Fabián Vier 8 de 26
  • 9. Revisión de la Literatura continuación db4o La librería db4o que significa databases for objects, es una Base de Objetos basada completamente en el modelo orientado a objetos de la programación. ➔ Diseñada para ser simple, posibilita la persistencia transparente. ➔ Provee un entorno de cero-administración. ➔ Posee tamaño reducido, bajo consumo de memoria y un alto desempeño. ➔ Facilita la tarea de refactorización aplicaciones orientadas a objetos. ➔ Posee varios lenguajes de consultas: SODA, QBE, Native Query. Sergio Fabián Vier 9 de 26
  • 10. Instrucciones de XQuery Entre las instrucciones disponibles encontramos ➔ Expresiones XPath doc(“un.xml”) – “//” y “/” [@attr = “dat”]  ➔ Agregando atributos y elementos a resultados element – attribute – “{}” ➔ Expresiones FLWOR for – let – where – order by – return ➔ Funciones build-in sum – min – max – avg  Sergio Fabián Vier 10 de 26
  • 11. Instrucciones de XQuery Expresiones FLWOR ➔ Tienen una funcionalidad similar a las distintas cláusulas de una sentencia SQL (select, from, where, order by). ➔ Es la estructura central (pero no la única) que dispone XQuery para realizar consultas. ➔ Permite manipular colecciones de datos XML en forma iterativa. En este trabajo, el procesamiento de instrucciones XQuery toma estas expresiones como base de la técnica de conversión. Sergio Fabián Vier 11 de 26
  • 12. API de Consultas S.O.D.A. Provee clases para ejecutar consultas complejas en una base de objetos. La idea básica de SODA es construir un grafo, el cual es usado para expresar una consulta dinámica y crearla en tiempo de ejecución. ➔ Mínimo número de llamadas a la API necesarias para crear una consulta. ➔ No requiere un analizador de consultas. ➔ Basada en Nodos, de fácil recorrido y manipulación. Sergio Fabián Vier 12 de 26
  • 13. API de Consultas S.O.D.A. continuación Algunas equivalencias entre instrucciones XQuery – SODA Sergio Fabián Vier 13 de 26
  • 14. Convirtiendo desde Java a XML El data binding o mapeo de componentes XML desde y hacia el modelo de objetos de Java. Esta trabajo está centrado en la técnica de marshalling. Sergio Fabián Vier 14 de 26
  • 15. Convirtiendo desde Java a XML continuación ➔ Esta técnica tiene que ser no intrusiva respecto al modelo de objetos. ➔ Se consideran solo tipos de datos primitivos en Java que tienen equivalentes en XML. La técnica de marshalling propuesta hace uso de la característica de reflexión del lenguaje Java. Sergio Fabián Vier 15 de 26
  • 16. Diseño de la nueva API de consulta Restricciones de Diseño ➔ Impuestas por el entorno de ejecución 1.Tamaño reducido y de bajo consumo de recursos. 2.Autonomía y cero administración. ➔ Impuestas por la base de objetos 1.Alto desempeño y confiabilidad. 2.Portabilidad entre plataformas. 3.Facilidad de uso e implementación. 4.No se realizan modificaciones a los objetos. Sergio Fabián Vier 16 de 26
  • 17. Diseño de la nueva API de consulta continuación Integración dentro de db4o Sergio Fabián Vier 17 de 26
  • 18. Diseño de la nueva API de consulta continuación Modelo propuesto Sergio Fabián Vier 18 de 26
  • 19. Diseño de la nueva API de consulta continuación Flujo del proceso de ejecución de consultas 1. Iniciación de la API. 2. Generar el plan de ejecución. 3. Ejecución del plan. 4. Enlazar los resultados ´ y generar XML. ´ Sergio Fabián Vier 19 de 26
  • 20. Funcionalidades de la nueva API de consulta De cara al usuario ➔ El uso de una fachada simplifica el uso de la API. ➔ Las referencias múltiples encontradas en el modelo de objetos son mantenidas. ➔ Los objetos son serializados a XML sin la necesidad de especificar cómo. Internamente ➔ Flujo de ejecución guiado por un planificador, encargado de generar el plan de ejecución. Sergio Fabián Vier 20 de 26
  • 21. Funcionalidades de la nueva API de consulta continuación Plan de ejecución, el proceso de transformación de XQuery Sergio Fabián Vier 21 de 26
  • 22. Funcionalidades de la nueva API de consulta continuación Utilización de la API de consulta ➔ Tres interfases: XQuery, XSet y ExtObjectContainer. Ejemplo de uso con una consulta XQuery     String xquery = “for $prod in doc('catalogo.xml')//producto“ + “let $prodDept := $prod/@departamento“ + “where $prodDept='ACC' or $prodDept='FEM'“ + “return $prod/nombre”;    ...  ExtObjectContainer db = Db4o.openFile(ruta); // conectar la db XQuery xq = db.xquery();    // crear una instancia xq.setXQuery(xquery);      // asignar la consulta XSet result = xq.execute();          // ejecutar la consulta System.out.println(result.getXml());   // procesar el resultado Sergio Fabián Vier 22 de 26
  • 23. Elementos Finales Discusión de los Resultados A favor: ➔ Diseño de API nativo y unificado a db4o. ➔ Bajo consumo de recursos. ➔ Proceso de conversión de instrucciones equivalente. ➔ No condiciona el entorno de ejecución de db4o. En contra: ➔ El proceso de data binding diseñado, deja de lado el soporte de ciertas instrucciones Java. ➔ Las consultas complejas pueden estar limitadas por el soporte de la API. Sergio Fabián Vier 23 de 26
  • 24. Elementos Finales continuación Conclusiones ➔ La API propuesta es viable de implementar en entornos con estrictos requerimientos en consumo de recursos computacionales, pero no así en los que se dispone de mayores márgenes de los mismos. ➔ En entornos de altas prestaciones, igualmente puede pesar más el buen comportamiento que tendría la API sobre grandes colecciones de objetos bajo la base de objetos db4o. Sergio Fabián Vier 24 de 26
  • 25. Elementos Finales continuación Trabajo Futuro ➔ Implementación de la API diseñada. ➔ Soporte de XML Schema, generarlo en base al modelo y operar con él. ➔ Soporte de nuevas instrucciones XQuery propuestas: actualización de XML vía XQuery Update. Sergio Fabián Vier 25 de 26