mapeo de estructuras xml a bases de datos relacionales rosa isela lópez aguilar septiembre 2008

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

Upload: carlos-ramos-ruiz

Post on 02-Feb-2016

225 views

Category:

Documents


0 download

TRANSCRIPT

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

Mapeo de Estructuras XML a Bases de Datos Relacionales

Rosa Isela López Aguilar

Septiembre 2008

Page 2: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

2

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

XML

Page 3: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

3

Bases de Datos Relacionales

Se basan en las relaciones (tablas bidimensionales) como único medio para representar los datos del mundo real

Page 4: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

4

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.

Transferencia de Información XML y BDR

Page 5: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

5

Algunos Middleware Existentes

Page 6: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

6

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>.

Mapeo Basado en Tablas (1)

Page 7: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

7

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

Page 8: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

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?

Page 9: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

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.

Page 10: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

10

Comparación de un Schema XML y SQL99

Page 11: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

11

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:

Schemas XML in Oracle XML DB (3)

Page 12: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

12

Page 13: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

13

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

Page 14: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

14

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.

Schemas XML in Oracle XML DB (4)

Page 15: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

15

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.

Schemas XML in Oracle XML DB (5)

Page 16: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

16

Schemas XML in Oracle XML DB (6)

Page 17: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

17

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”.

Schemas XML in Oracle XML DB (6)

Page 18: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

18

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.

Schemas XML in Oracle XML DB (7)

Page 19: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

19

Page 20: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

20

Page 21: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

21

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.

Validación de Schemas XML (1)

Page 22: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

22

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.

Validación de Schemas XML (2)

Page 23: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

23

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.

Almacenamiento de colecciones (1)

Page 24: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

24

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.

Almacenamiento de colecciones (2)

Page 25: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

25

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.

Almacenamiento de colecciones (1)

Page 26: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

26

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).

Fidelidad en DOM (1)

Page 27: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

27

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 NamespacesContenido mixto-nodos texto que son

entremezclados con elementos.

Fidelidad en DOM (2)

Page 28: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

28

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.

Schemas XML Complejos )1(

Page 29: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

29

Page 30: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

30

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.

Schemas XML Complejos )2(

Page 31: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

31

Page 32: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

32

Page 33: Mapeo de Estructuras XML a Bases de Datos Relacionales Rosa Isela López Aguilar Septiembre 2008

33

¡Gracias!