1 / 33

Mapeo de Estructuras XML a Bases de Datos Relacionales

Mapeo de Estructuras XML a Bases de Datos Relacionales. Rosa Isela López Aguilar. Septiembre 2008. XML. Estándar para el intercambio de datos entre aplicaciones en Internet independientemente del formato de almacenamiento de los mismos. Bases de Datos Relacionales.

ganesa
Download Presentation

Mapeo de Estructuras XML a Bases de Datos Relacionales

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

  2. XML Estándar para el intercambio de datos entre aplicaciones en Internet independientemente del formato de almacenamiento de los mismos.

  3. Bases de Datos Relacionales Se basan en las relaciones (tablas bidimensionales) como único medio para representar los datos del mundo real

  4. Transferencia de Información XML y BDR • Se han creado complejas teorías y patrones para encajar objetos o estructuras jerarquizadas en bases de datos relacionales. • Existen numerosos middlewares encargados de la transferencia de información entre estructuras XML y bases de datos relacionales. Middleware: es un software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas.

  5. Algunos Middleware Existentes

  6. Mapeo Basado en Tablas (1)‏ Es usado por muchos productos intermedios que transfieren datos entre un documento XML y una base de datos relacional. La estructura de un documento XML debe ser como sigue, donde el elemento <database> y los elementos adicionales <table>.

  7. <database> <table> <row> <column1>...</column1> <column2>...</column2> ... </row> <row> ... </row> ... </table> <table> ... </table> ... </database>

  8. Schemas XML in Oracle XML DB (1)‏ Existen muchos beneficios para almacenar un Schema XML en un sistema de base de datos, incluyendo una mejor forma de hacer las consultas, actualizaciones optimizadas y validaciones más robustas. Sin embargo el problema fundamental es: ¿Cómo pueden los Schemas XML ser mapeados a bases de datos relacionales, sin perder la semántica del schema o la fidelidad de los datos?

  9. Schemas XML in Oracle XML DB (2)‏ Hablando de fidelidad de almacenamiento para XML por ejemplo: El orden de los elementos es relevante en muchas aplicaciones, sin embargo el orden de los elementos en un documento XML quizá no sea restringido por la declaración, usando <all> dentro del esquema permite a los elementos aparecer en distinto orden. En un simple mapeo del XML a una BDR, como muchos de estos elementos serán sumergidos en un solo registro de una tabla, el orden de estos elementos no es rastreado.

  10. Comparación de un Schema XML y SQL99

  11. Schemas XML in Oracle XML DB (3)‏ Un Schema XML con atributos adicionales definidos por Oracle XML DB es usado para describir el almacenamiento mapeado, representaciones en memoria y el lenguaje que vincula los documentos XML que conforman al Schema. El proceso de compilación del Schema XML crea la estructura correspondiente de almacenamiento objeto-relacional. A continuación se presenta un ejemplo del mapeo de un Schema XML:

  12. La siguiente tabla muestra la estructura de almacenamientos creada por default en Oracle:

  13. Schemas XML in Oracle XML DB (4)‏ El objeto de tipo “Item_T”, es creado de acuerdo al “Item” (local) complexType. Un tipo colección (varray) “Item_COLL” es creado porque hay más de una ocurrencia del Item. El tipo de objeto “PurchaseOrderType_T” corresponde al “PurchaseOrder” (local) complexType. Los tipos simples referenciados son mapeados a los tipos de datos apropiados del SQL, por ejemplo: los tipos primitivos del Schema XML string, decimal y date son mapeados a tipos SQL VARCHAR2, NUMBER y DATE respectivamente.

  14. Schemas XML in Oracle XML DB (5)‏ Las restricciones especificadas en el Schema XML, tal como la longitud máxima de un elemento de tipo cadena, son preservadas en la definición de atributos SQL. Por ejemplo: “Company” es definida como un atributo de tipo VARCHAR2 con una longitud máxima de 100 carácteres. Se crea una tabla SQL types para crear las columnas apropiadas de la tabla.

  15. Schemas XML in Oracle XML DB (6)‏

  16. Schemas XML in Oracle XML DB (6)‏ Además una segunda tabla es creada para mantener las colecciones de los “Items”. Un foreing Key es usado para asociar los registros de Items con su correspondiente registro padre en “PurchaseOrder”.

  17. Schemas XML in Oracle XML DB (7)‏ Cuando un documento XML es insertado dentro de una tabla XMLType, éste es cortado y los valores son insertados dentro de las columnas. En el caso de las colecciones se almacenan en tablas separadas, de tal forma que uno o más registros se insertan dentro de las tablas anidadas. La tabla siguiente muestra la instancia de un documento con sus valores en un nivel superior, así como las tablas anidadas.

  18. Validación de Schemas XML (1)‏ • El Schema XML es usado para dos cosas: • Forzar las restricciones del schema. • La fuente que describe como las instancias de los documentos XML serán almacenados en la BD's. Cuando la instancia del documento es insertada dentro de una tabla conforme al Schema, la instancia es validada contra éste. Además el mapeo de la información en el Schema XML es usado para cortar el documento y almacenar este en las tablas apropiadas.

  19. Validación de Schemas XML (2)‏ Cuando un Schema XML es registrado en Oracle, se da un nombre. La instancia del documento se refiere a su Schema XML usando el atributo xsi:SchemaLocation. El valor de este atributo consiste de pares de las URL Namespace y las URL del Schema. La URL del Schema corresponde al namespace del elemento raíz que identifica el Schema XML que es usado para validación y para efectos de cortar el documento.

  20. Almacenamiento de colecciones (1)‏ Cuando el XML es almacenado en un formato estructurado, todos los elementos simples y los atributos aparecen como hijos directos del elemento raíz y son almacenados como columnas en el elemento raíz. Los elementos complejos y atributos anidados que pueden ocurrir una vez (max_Occurs=1) son también almacenados como columnas en el registro raíz.

  21. Almacenamiento de colecciones (2)‏ Una opción de almacenamiento es almacenar la colección entera en una columna. La otra es almacenar colecciones en una tabla separada anidada la cual contenga un registro por Item de la colección. Los registros de la tabla anidada contienen la llave del registro padre. Además los usuarios pueden especificar si necesitan que el orden de los elementos sea preservado. En caso de que sea así se le agrega una columna llamada array_index a la tabla anidada. Esta columna de tipo NUMBER mantiene el orden original de los elementos dentro de la colección.

  22. Almacenamiento de colecciones (1)‏ La primera opción antes mencionada es buena por cuestiones de inserciones. Sin embargo, la segunda da mayores beneficios porque puedes crear indices en las tablas anidadas para satisfacer las consultas de la colección de Items. Además cuando deseas actualizar la colección esta puede ser ejecutada sin tener que reescribir la colección entera con la nueva colección.

  23. Fidelidad en DOM (1)‏ En general, cualquier técnica que involucre cortar un documento XML para almacenarlo en una BDR pierde la fidelidad del documento en: Espacios en blanco entre los elementos y atributos. El orden de los elementos. Comentarios dentro del documento XML. Procesamiento de instrucciones. Declaraciones de Namespaces XML DB de Oracle suporta la fidelidad del documento con respecto a su DOM (Document Object Model).

  24. Fidelidad en DOM (2)‏ Para asegurar la fidelidad en DOM se agrega un atributo binario SYS_XDBPD$, para cada objeto creado. Este atributo almacena (en un formato en código binario) todas las piezas de información que no pueden ser almacenadas en cualquiera de los otros atributos. La información codificada es: El orden de los elementos Comentarios Instrucciones de procesamiento Declaraciones de Namespaces Contenido mixto-nodos texto que son entremezclados con elementos.

  25. Schemas XML Complejos‏ (1)‏ Definiciones Cíclicas: Un tipo complejo puede ser definido directa o indirectamente en términos de si mismo. Tales definiciones cíclicas, donde un elemento puede contener una referencia hacia atrás a si mismo, son soportadas por XML DB, introduciendo un atributo REF (referencia) en el punto donde se completa el circulo. El valor REF apunta a fragmentos XML los cuales son almacenados en el mismo o en diferentes documentos.

  26. Schemas XML Complejos‏ (2)‏ Derivaciones complexType: Extensión y Restricción. Un complexType puede ser declarado como derivación de otro complexType Global. El complexType derivado es mapeado como un subtipo del tipo de objeto correspondiente al complexType padre. En caso de derivación por extensión, el subtipo tiene atributos extra correspondientes a los nuevos elementos y atributos agregados en el complexType derivado. En caso de la derivación por restricción, el subtipo esta vacío y las restricciones son forzadas durante la validación del Schema.

  27. ¡Gracias!

More Related