Xml en oracle

Solo disponible en BuenasTareas
  • Páginas : 10 (2337 palabras )
  • Descarga(s) : 0
  • Publicado : 17 de febrero de 2012
Leer documento completo
Vista previa del texto
Oracle XML DB
Historia Almacenamiento Generación de XML a partir de SQL Consulta de datos XML

Marta Zorrilla Universidad de Cantabria

1

Historia
Oracle 8 (1997) / 8i (1999):
› › Carga de librerías Java para el entorno XDK de Oracle JServer Creación de paquetes PL/SQL para XML sobre procedimientos almacenados en Java XMLType Tipo nativo para XML. Permite almacenar y consultar datosXML. Almacenamiento de datos a partir del XMLType basados en un XML Schema Repositorio XML DB: para gestión de documentos (enfoque documentcentric) Nuevas funciones para manejar XMLType, SQL/XML y paquetes basados en C para procesamiento de XML mediante PL/SQL Soporta evolución del XML Schema Más funcionalidad XML nativa Oracle XDK permite conectar BD a través de ODBC para la creación deaplicaciones de capa intermedia
2

Oracle 9i – Release 1 (2002):
› › › ›

Oracle 9i – Release 2 (2003):

Oracle 10g (2005):
› › ›

Almacenamiento
Dos opciones: › Repositorio de datos (Oracle XML DB Repository):
Organizado jerárquicamente, consultable Almacenamiento y visualización de contenido XML como un directorio jerárquico de carpetas Acceso a los documentos y representación de lasrelaciones entre documentos con:
XPath URLs HTTP/FTP SQL y PL/SQL

› Tipo de dato nativo (XMLType)
Permite definir tablas, columnas, parámetros, valores devueltos por funciones o variables en procedimientos PL/SQL Dispone de Funciones predefinidas para crear instancias XMLType, validar contenidos XML contra XML Schemas, aplicar hojas de estilos XSLT, etc.

3

Oracle XML DB Architecture: XMLTypeStorage and Repository

4

Oracle XML DB Architecture: XMLType Storage

5

Oracle XML DB Storage

6

¿Tablas relacionales o XMLType?
Decisión basada en el formato de los items XML y en la necesidad de conservar fidelidad a nivel DOM para su contenido FIDELIDAD DOM:
› En general, cualquier técnica que involucre dividir un documento XML para almacenarlo en una BDR pierde la fidelidaddel documento:
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 soporta la fidelidad del documento con respecto a su DOM (Document Object Model).

7

¿Tablas relacionales o XMLType? (y 2)
Formato de los items XML
› Data-Centric: tablasrelacionales
Estructura regular de los datos Poco contenido o no mezclado Fidelidad DOM no requerida

› Document-Centric: XMLType
Estructura de datos poco regular o irregular Contenido mezclado Muchas consultas sobre el contenido XML

8

¿XMLType estructurado (esquema) o no estructurado?
XMLType no estructurado: › Almacenado en CLOBS (opción por defecto) › Óptimo para documentos XML basados enDTD o en XML Schemas que varían frecuentemente XMLType basado en esquema (estructurado): › Los documentos XML se “dividen” y se almacenan como un conjunto de objetos SQL (tablas, columnas, tipos, etc.) › Mayor rendimiento en consultas y actualizaciones (índices, vistas indexadas,…) › Reduce el espacio de memoria y almacenamiento, auque tiene mayor overhead la recuperación o actualización de undocumento completo › Óptimo para consultas sobre partes del documento XML › Puede validarse el contenido XML con un XML Schema
9

XMLType: ¿Columna o Tabla?
En Oracle se puede almacenar datos XML en › Columnas de tipo XMLType
CREATE TABLE MiTabla ( id int primary key,…, xmlCol xmlType)

› Tablas de objetos a partir del tipo XMLType
Crear las tablas utilizando sentencias SQL:
CREATE TABLEMiTablaXML OF XMLType

Crear las tablas cuando se registra un Schema XML registrado en el repositorio de Oracle XML DB
DBMS_XMLSCHEMA.registerSchema( SCHEMAURL => 'http://xmlns.oracle.com/xdb/MiSchema.xsd', SCHEMADOC => bfilename('XMLDIR','MiSchema.xsd'), CSID => nls_charset_id('AL32UTF8'));

10

Columna XMLType
CREATE TABLE Person ( id int primary key, nombre varchar2(20) not null,...
tracking img