790 likes | 1.01k Views
XML. Nociones básicas para entender el “mundo XML”. Índice. Índice. Introducción a XML XML aplicado a bases de datos dbXML Exist dbXML vs. Exist Conclusiones. 1. Introducción a XML. ¿Qué es XML?. 1. Introducción a XML. Definición:
E N D
XML Nociones básicas para entender el “mundo XML”.
Índice Índice • Introducción a XML • XML aplicado a bases de datos • dbXML • Exist • dbXML vs. Exist • Conclusiones Mikel Alonso & Cynthia Fresno
¿Qué es XML? 1. Introducción a XML • Definición: Lenguaje de metamarcado para documentos que contienen información estructurada Mikel Alonso & Cynthia Fresno
1. Introducción a XML Lenguaje de metamarcado: • Mecanismo para identificar estructuras en un documento. Información estructurada: • Consta de un contenido (palabras, imágenes…) y de el papel que “interpreta” este contenido. • Casi todos los documentos tienen una estructura. Mikel Alonso & Cynthia Fresno
1. Introducción a XML ¿Qué es un documento? • Para XML un documento no es sólo un “documento de texto propiamente dicho”. • Pueden tener: gráficos vectoriales, transacciones e-comerciales, meta-datas de objetos, etc. Mikel Alonso & Cynthia Fresno
¿Para que se creó XML? 1. Introducción a XML • Para que documentos ricamente estructurados se pudieran utilizar en Internet. • Las únicas alternativas viables (SGML y HTML) no son adecuadas para este propósito: - HTML: Limitado por un grupo de semanticos, no proporciona información estructurada. - SGML: Proporciona una estructura arbitraria, pero dificil implementarlo sólo para una aplicación web. Mikel Alonso & Cynthia Fresno
Objetivos de desarrollo de XML 1. Introducción a XML • Debe ser sencillo utilizar XML en Internet: Los usuarios deben ser capaces de ver documentos XML como HTML. • Debe admitir una gran variedad de aplicaciones. • Debe ser compatible con SGML. • Debe ser fácil escribir programas que procesen documentos XML. • El número de características opcionales en XML debe mantenerse absolutamente mínimo, idealmente cero. Mikel Alonso & Cynthia Fresno
1. Introducción a XML • Los documentos XML deben ser humanamente legibles y razonablemente claros. • El diseño de XML debe de hacerse rápidamente. • El diseño de XML debe ser formal y conciso. (XML debe ser expresado en “EBNF”) • Los documentos XML deben de ser fáciles de crear. • Ser conciso es de mínima importancia en el marcaje de XML. Mikel Alonso & Cynthia Fresno
¿Cómo está definido XML? 1. Introducción a XML XML está definido por un número de especificaciones relacionadas: • Extensible markup language (XML): Define la sintaxis de XML. • XML Pointer Language (XPointer) y XML Linking Language (XLink): Define una manera estándar de representar uniones entre recursos. • Extensible Style Language (XSL): Define el lenguaje estándar de hojas de estilo para XML. Mikel Alonso & Cynthia Fresno
Estructura de un documento XML 1. Introducción a XML • Un documento XML tiene dos estructuras: Una lógica y otra física. • Físicamente: el documento está compuesto por entidades. - Una entidad puede hacer referencia a otra entidad. - Cada documento comienza con una entidad documento (raiz). Mikel Alonso & Cynthia Fresno
Logicamente: Documento compuesto por declaraciones, elementos, comentarios, referencias a caracteres e instrucciones de procesamiento. Mikel Alonso & Cynthia Fresno
Especificaciones de XML 1. Introducción a XML DTD: Definición de tipo documento • Archivo(s) que lleva una definición formal de un tipo de documento y especifica la estructura lógica de cada uno. • Define los elementos de una pagina y sus atributos. • DTD de XML opcional XSL: Define o implementa el lenguaje de estilo de los documentos escritos para XML. • Permite modificar el aspecto de un documento. Mikel Alonso & Cynthia Fresno
1. Introducción a XML XXL: Define el modo de enlace entre los diferentes enlaces. • Se considera subconjunto de HyTime. • Sige algunas especificaciones de TEI. • Este lenguaje tiene dos importantes componentes: XLink y XPointer. XUA: Estandarización de navegadores XML. • En proceso de creación. • Se aplicará a los navegadores, para que todos compartan las especificaciones XML. Mikel Alonso & Cynthia Fresno
XML vs. HTML 1. Introducción a XML • HTML: - Semántica de etiquetas y sistema de etiquetas fijos. - Cambios limitados por: • Vendedores del navegador. • Compatibilidad con antiguas versiones. • XML: - No especifica el sistema de etiquetas, así que no puede haber una semántica predefinida. - Semanticos XML: serán definidos por las aplicaciones que los procesan o por las hojas de estilo. Mikel Alonso & Cynthia Fresno
XML vs. SGML 1. Introducción a XML SGML: • Lenguaje generalizado estádar de etiquetas. • Forma estándar e independiente de los vendedores, para mantener los depositos de la información estructurada. • No funciona bien sirviendo documentos en internet. XML: • Perfil de aplicación de SGML. Mikel Alonso & Cynthia Fresno
1. Introducción a XML • Los sistemas totalmente ajustados a SGML deben poder leer documentos XML. • Aun así, utilizar y leer documentos XML no requiere un sistema que entienda la totalidad de SGML. Mikel Alonso & Cynthia Fresno
¿Cómo son los documentos XML? 1. Introducción a XML Ejemplo: <?xml version="1.0"?> <oldjoke> <burns>Say<quote>goodnight</quote>, Gracie.</burns> <allen><quote>Goodnight, Gracie.</quote></allen> <applause/> </oldjoke> Mikel Alonso & Cynthia Fresno
Introducción 2. Relacional vs. XML • La diferencia principal entre las bases de datos relacionales y las XML: - Relacional: centrada en datos (almacena en sus campos datos atómicos). - XML: almacenan documentos XML (ni tiene campos, ni almacena datos atómicos.). • Asi, vemos que las diferencias principales se darán en cuanto al ALMACENAMIENTO, la BÚSQUEDA, y el PROCESAMIENTO de dicha información. Mikel Alonso & Cynthia Fresno
Almacenamiento 2. Relacional vs. XML RELACIONAL: • Una BD relacional consiste en una colección de tablas que guardan sistemas particulares de datos. • Las tablas pueden relacionarse entre si de diferentes maneras: - Dependencias funcionales: se crean cuando un atributo de una tabla se relaciona con el atributo de otras tablas. - Relación más simple: 1:1 - 1:n, n:1, n:n. Mikel Alonso & Cynthia Fresno
2. Relacional vs. XML • Esta información almacenada en tablas está organizada lógicamente para poder cumplir los siguientes propósitos: - minimizar la duplicación. - reducir las anomalías en lo datos. - reforzar la integridad de los datos. • Proceso de organización lógica: normalización (simplifica la manera en la que los datos están definidos y su organización). - Existen 5 formas de normalización: 1NF – 5NF. Mikel Alonso & Cynthia Fresno
2. Relacional vs. XML XML: • Supuestamente una base de datos nativa de XML debería almacenar la información en formato XML. • Pero en realidad lo que hace es que una base de datos de este tipo tiene repositorios “tipo XML”, en los que se almacenan los indices generados por cada documento XML almacenado. Mikel Alonso & Cynthia Fresno
Búsqueda 2. Relacional vs. XML RELACIONAL: • La mayoría de bases de datos relacionales utilizan SQL. XML: • Utiliza XPath y XQuery. • Algunas bases de datos permiten seleccionar los elementos que deben tener índice, otras indexan todo el documento. • Problema: No permite realizar búsquedas muy complicadas (ej: ordenamiento y cross join). Mikel Alonso & Cynthia Fresno
XQuery y XPath 2. Relacional vs. XML • XQuery: Lenguaje diseñado para procesar datos XML. - No sólo ficheros en XML, también otro tipo de datos (incluidas las bases de datos), cuya estructura sea similar a XML. • XQuery como “generalización” de XPath: pues XQuery utiliza las “expresiones path” de XPath. - Exceptuando algunas expresiones más ambiguas, todas las expresiones XPath lo son también de XQuery. Mikel Alonso & Cynthia Fresno
Procesamiento 2. Relacional vs. XML RELACIONAL: • Al igual que la búsqueda se hace con SQL. XML: • No funciona muy bien debido a su estructura jerárquica. - Muchas bases de datos necesitan que el usuario recupere en documento XML entero, lo actualice con algún API y luego lo vuelva a almacenar todo el documento. Mikel Alonso & Cynthia Fresno
- Esto pasa porque no existe un lenguaje oficial para la actualización, inserción o eliminación de elementos en un documento XML. (hay un lenguaje de actualizaciones pero hay muchos gestores de bases de datos que no lo damiten, se llama XUpdate). Mikel Alonso & Cynthia Fresno
Resumen de diferencias 2. Relacional vs. XML Mikel Alonso & Cynthia Fresno
¿Qué ofrece? • Nuevas necesidades frente a la web • Intercambio de datos • Soluciones para la estandarización de XML 1. Fuentes de datos no XML 2. Fuentes de datos XML • Problemas de integracion Mikel Alonso & Cynthia Fresno
Nuevas necesidades frente a la web • Con la entrada y generalización del uso de Internet un basto abanico de posibilidades de comunicación se ha abierto ante nosotros • Internet se ha convertido en una herramienta de intercambio de información usada tanto en el ámbito personal como empresarial (muy especialmente por empresas) Mikel Alonso & Cynthia Fresno
Pero el intercambio de información no es tan fácil: • diferentes formatos de representación de información • la conversión de todos los formatos de representación a uno • único es inviable • la transformación de uno a otro es costosa Mikel Alonso & Cynthia Fresno
Intercambio de datos • El uso de la Web para el intercambio de datos es fundamental para las empresas hoy por hoy • El máximo exponente de este problema son las bases de datos - bastas fuentes de información - diferentes formatos según empresa proveedora - su cambio es costoso • Para solucionar este problema grave nació XML. Mikel Alonso & Cynthia Fresno
XML se ha convertido en el estándar para la presentación de información en la Web y también para el intercambio de información Inter. o intr. empresas • La generación de XML a partir de la información que tienen almacenada bases de datos se hace cada vez mas necesario para facilitar la comunicación a través de la Web • Los sistemas de gestión de bases de datos (DBMS) empleados siguen siendo en su mayoría relacionales aunque poco a poco se instauran otras soluciones Mikel Alonso & Cynthia Fresno
Para resolver estos problemas de conversión (a XML) distinguimos varias soluciones Mikel Alonso & Cynthia Fresno
Soluciones para la estandarización de XML • FUENTES DE DATOS NO XML: • La principal fuente de datos no XML con que cuentan las empresas son los RDBMS. • El numero de estas es muy elevado por lo que su conversión a otro SGBD es inviable • La solución pasa por un nivel intermedio entre la capa cliente y la base de datos que transforme las soluciones a un documento XML Mikel Alonso & Cynthia Fresno
Estas herramientas las podemos clasificar en dos grupos: - las que transforman el modelo relacional a una representación XML: • Crean una vista virtual XML con información de la base de datos. • El usuario es lo que ve y hace las consultas sobre ello • La consulta es interpretada y ejecutada en la RDBMS • Finalmente se devuelve la solución en XML Mikel Alonso & Cynthia Fresno
Alguna de las herramientas que siguen este modelo son: • XTABLES (también conocido como XPERANTO) • SilkRoute • XBD - las que transforman el resultado de consultas SQL a la RDBMS: • Estas usan SQL como lenguaje de consulta del cliente • La RDBMS devuelve la solución y esta es transformada a XML Mikel Alonso & Cynthia Fresno
2. FUENTES DE DATOS XML: • Dentro de estas distinguimos dos familias: - 2.1 RDBMS habilitados para XML: • son bases de datos tradicionales que definen un nuevo tipo de dato que permite el almacenamiento de información en formato XML. • Esta información sufre una transformación a la hora de su almacenado en tablas relacionales. Mikel Alonso & Cynthia Fresno
Esta forma de almacenado tiene dos planteamientos diferentes: - El planteamiento de DB2 y ORACLE: Donde el dato XML tiene una tabla adjunta en la que se almacena la información contenida en este. - El planteamiento de SQLSERVER2005: Este sistema almacena el documento en formato binario en el que los elementos se identifican mediante un numero que actúa como índice; esta información debe ser previamente convertida al correspondiente tipo de dato Mikel Alonso & Cynthia Fresno
En esta tabla podemos ver un breve esbozo de sus caracteristicas Mikel Alonso & Cynthia Fresno
2.2 Bases de datos nativas XML: • Permiten el almacenamiento, consulta y actualización de información XML • Su principal diferencia es el lenguaje de acceso que usan ( XPath, Xquery o ambos) • Por el contrario el lenguaje de actualizacion en general es el mismo XUpdate Mikel Alonso & Cynthia Fresno
¿Qué es dbXML? 4. dbXML • Idea principal: proporcionar una manera simple de almacenar y administrar grandes cantidades de documentos XML. Mikel Alonso & Cynthia Fresno
¿Qué ofrece dbXML? 4. dbXML Cumple la mayoría de los requisitos de las bases de datos XML nativas, entre ellos: • Almacenamiento de colecciones de documentos XML. • un motor de base de datos “multi-threaded” optimizado para datos XML. • Almacenamiento de datos semiestructurados y carentes de esquema. • Almacenamiento de documentos pre-analizados y comprimidos. Mikel Alonso & Cynthia Fresno
4. dbXML • Maquina XPath de búsqueda. • Una colección de indices para mejorar el funcionamiento de la búsqueda. • La implementación XUpdate de XML:DB para las actualizaciones. • La implementación de Java API para de XML: DB para construir aplicaciones. • Una completa variedad de herramientas de linea de comandos. Mikel Alonso & Cynthia Fresno
Almacenamiento 4. dbXML • Documentos almacenados en colecciones, donde cada documento individual está almacenado en una forma pre-analizada comprimida → Significativamente aumenta la velocidad cuando trabajamos con datos XML. • La máquina dbXML está optimizada para el almacenaje de documentos que tengan como mucho 50K. • Almacenaje en colecciones → herramienta sencilla para manipular y buscar documentos en forma de sistema. Mikel Alonso & Cynthia Fresno
4. dbXML RDBMS vs. dbXML: • Diferencia principal: En dbXML el esquema de lo que se puede encontrar en no está fijo. - Se pueden mezclar documentos de esquemas completamente diferentes en la misma colección. Ejemplo: - Un catalogo de productos, donde cada producto necesita datos especializados. Mikel Alonso & Cynthia Fresno
Seguridad en dbXML 4. dbXML • dbXML tiene tres formas de encargarse la seguridad. - Sin seguridad. - Seguridad simple: nombre de usuario y “password” (definido en system.xml) - Seguridad por defecto defecto: Basado en usuarios y roles. Mikel Alonso & Cynthia Fresno