13.08.2013 Views

Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ...

Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ...

Funcionalidad 4: Almacenes de Datos y Bases de Datos XML ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UNIVERSIDAD DE CASTILLA-LA MANCHA<br />

ESCUELA SUPERIOR DE INFORMÁTICA<br />

<strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

Eduardo Fernán<strong>de</strong>z Almodóvar<br />

Miguel Gómez Ortiz<br />

Quiteria López López<br />

Alberto Morillo Balcázar<br />

Nicolás Novalvos Novalvos<br />

Javier Rosado Quintanilla<br />

Asignatura: Mo<strong>de</strong>los Avanzados <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong><br />

Titulación: Ingeniería Informática<br />

Fecha:


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

Índice<br />

ALMACENES DE DATOS ............................................................................................. 3<br />

2<br />

Introducción ............................................................................................................................ 3<br />

Conceptos Básicos................................................................................................................... 3<br />

Diseño y Construcciones......................................................................................................... 4<br />

1. Diseño en Estrella......................................................................................................................4<br />

1.1. Tablas Factuales y Dimensionales........................................................................................5<br />

2. Mo<strong>de</strong>lo Conceptual <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong>.............................................................................5<br />

2.1. Metodología para el Diseño <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> <strong>de</strong> Golfarelli y rizzi ...........................5<br />

2.2. Perfil UML para el Mo<strong>de</strong>lado <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> <strong>de</strong> Trujillo ......................................6<br />

Componentes ........................................................................................................................... 7<br />

1. Metadatos ..................................................................................................................................7<br />

2. Middleware................................................................................................................................7<br />

3. Mecanismos <strong>de</strong> Extracción........................................................................................................8<br />

4. Mecanismos <strong>de</strong> Carga ...............................................................................................................8<br />

Importancia en las Empresas................................................................................................. 8<br />

Ejemplo <strong>de</strong> Almacén <strong>de</strong> <strong>Datos</strong> ............................................................................................... 9<br />

BASES DE DATOS <strong>XML</strong> ............................................................................................. 10<br />

Introducción .......................................................................................................................... 10<br />

Documentos <strong>XML</strong>................................................................................................................. 10<br />

Lenguajes <strong>de</strong> navegación...................................................................................................... 11<br />

Almacenamiento en <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong> .......................................................................... 14<br />

1. <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong> Nativas..................................................................................................14<br />

2. Almacenamiento en bases <strong>de</strong> datos <strong>XML</strong> construidas a partir <strong>de</strong> tecnologías existentes........15<br />

Extensión <strong>de</strong>l estándar SQL................................................................................................. 15<br />

Ejemplo <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong> ........................................................................................ 16<br />

COMPARACIÓN DE AMBOS MODELOS ................................................................ 17<br />

BIBLIOGRAFÍA ........................................................................................................... 18


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

Introducción<br />

3<br />

ALMACENES DE DATOS<br />

Los almacenes <strong>de</strong> datos son el centro <strong>de</strong> atención para las gran<strong>de</strong>s empresas <strong>de</strong> hoy en<br />

día, ya que constituyen uno <strong>de</strong> los soportes fundamentales para el proceso <strong>de</strong> toma <strong>de</strong> <strong>de</strong>cisiones<br />

gerenciales; <strong>de</strong> ahí la importancia <strong>de</strong> que la información guardada en ellos sea confiable y con<br />

calidad. Uno <strong>de</strong> los procesos en la construcción <strong>de</strong> estos y que contribuye a lograr este objetivo<br />

es la limpieza <strong>de</strong> datos, y junto con ella la estandarización.<br />

Conceptos Básicos<br />

Un Almacén <strong>de</strong> <strong>Datos</strong> o Data Warehouse (DW) es un almacén <strong>de</strong> información temática<br />

orientado a cubrir las necesida<strong>de</strong>s <strong>de</strong> aplicaciones <strong>de</strong> los sistemas <strong>de</strong> Soporte <strong>de</strong> Decisiones<br />

(DSS) y e la Información <strong>de</strong> Ejecutivos (EIS), que permite acce<strong>de</strong>r a la información corporativa<br />

para la gestión, control y apoyo a la toma <strong>de</strong> <strong>de</strong>cisiones. Dicha información es construida a<br />

partir <strong>de</strong> bases <strong>de</strong> datos que registran las transacciones <strong>de</strong> los negocios <strong>de</strong> las organizaciones<br />

(bases <strong>de</strong> datos operacionales), y su importancia resi<strong>de</strong> en elementos como los siguientes:<br />

características:<br />

Contribuye a la toma <strong>de</strong> <strong>de</strong>cisiones tácticas y estratégicas proporcionando un<br />

sentido automatizado para i<strong>de</strong>ntificar información clave <strong>de</strong>s<strong>de</strong> volúmenes <strong>de</strong> datos<br />

generados por procesos tradicionales o elementos <strong>de</strong> software.<br />

Posibilita medir las acciones y los resultados <strong>de</strong> una mejor forma.<br />

Los procesos empresariales pue<strong>de</strong>n ser optimizados. El tiempo perdido esperando<br />

por información que finalmente es incorrecta o no encontrada, es eliminada.<br />

Permite a los usuarios dar prioridad a <strong>de</strong>cisiones y acciones, por ejemplo, a qué<br />

segmentos <strong>de</strong> clientes <strong>de</strong>ben ir dirigidas las siguientes acciones <strong>de</strong> marketing.<br />

En general un almacén <strong>de</strong> datos es un conjunto <strong>de</strong> datos con las siguientes<br />

Temático: Los datos están almacenados por materias o temas (clientes, campañas,<br />

productos). Estos se organizan <strong>de</strong>s<strong>de</strong> la perspectiva <strong>de</strong>l usuario final, mientras que<br />

en las <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> operacionales se organizan <strong>de</strong>s<strong>de</strong> la perspectiva <strong>de</strong> la<br />

aplicación con vistas a lograr una mayor eficiencia en el acceso a los datos.<br />

Integrado: Todos los datos almacenados en el DW están integrados. Las bases <strong>de</strong><br />

datos operacionales orientadas hacia las aplicaciones fueron creadas sin pensar en<br />

su integración, por lo que un mismo tipo <strong>de</strong> datos pue<strong>de</strong> ser expresado <strong>de</strong> diferente<br />

forma en dos bases <strong>de</strong> datos operacionales distintas. Por ejemplo, para representar el<br />

sexo: ‘Femenino’ y ‘Masculino’ o ‘F’ y ‘M’.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

4<br />

No volátil: Únicamente hay dos tipos <strong>de</strong> operaciones en el DW: la carga <strong>de</strong> los<br />

datos proce<strong>de</strong>ntes <strong>de</strong> los entornos operacionales (carga inicial y carga periódica) y<br />

la consulta <strong>de</strong> los mismos. La actualización <strong>de</strong> datos no forma parte <strong>de</strong> la operativa<br />

normal <strong>de</strong> un DW.<br />

Histórico: El tiempo <strong>de</strong>be estar presente en todos los registros contenidos en un<br />

DW. Las bases <strong>de</strong> datos operacionales contienen los valores actuales <strong>de</strong> los datos,<br />

mientras que los DW contienen información actual y resúmenes <strong>de</strong> esta en el<br />

tiempo.<br />

Diseño y Construcciones<br />

Existen actualmente 2 ten<strong>de</strong>ncias en cuanto al diseño <strong>de</strong> almacenes <strong>de</strong> datos:<br />

Diseño directo (“en estrella”) <strong>de</strong> estructuras lógicas <strong>de</strong> datos (sobre el mo<strong>de</strong>lo<br />

relacional).<br />

Utilización <strong>de</strong> una etapa previa basada en un mo<strong>de</strong>lo conceptual, <strong>de</strong> forma análoga<br />

al diseño <strong>de</strong> bases <strong>de</strong> datos.<br />

1. Diseño en Estrella<br />

Este método se basa en el “esquema en estrella”, que consiste en un mo<strong>de</strong>lo asimétrico con<br />

una tabla gran<strong>de</strong> dominante en el centro <strong>de</strong>l esquema, que se encarga <strong>de</strong> conectar las otras<br />

tablas.<br />

Figura 1. Ejemplo <strong>de</strong> diseño en estrella.<br />

El esquema en estrella básico tiene 4 componentes: hechos, dimensiones, atributos y<br />

jerarquías <strong>de</strong> atributo. Cada uno <strong>de</strong> estos componentes se <strong>de</strong>scribe a continuación:<br />

Los hechos son mediciones numéricas que representan un aspecto o actividad <strong>de</strong><br />

negocio específica. Por ejemplo, las cifras <strong>de</strong> ventas.<br />

Las dimensiones son características calificadoras que proporcionan perspectivas<br />

adicionales <strong>de</strong> un hecho dado. Por ejemplo, las ventas podrían compararse por<br />

producto <strong>de</strong> una región a otra.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

5<br />

Cada tabla <strong>de</strong> dimensiones contiene atributos. Con frecuencia se utilizan los<br />

atributos para buscar, filtrar o clasificar hechos. Por consiguiente, el diseñador <strong>de</strong>l<br />

almacén <strong>de</strong> datos <strong>de</strong>be <strong>de</strong>finir atributos <strong>de</strong> negocio comunes que serán utilizados<br />

por el analista <strong>de</strong> datos para limitar una búsqueda, agrupar información o <strong>de</strong>scribir<br />

dimensiones. Si seguimos utilizando un ejemplo <strong>de</strong> ventas tendríamos:<br />

o Dimensión producto: ID <strong>de</strong>l producto, <strong>de</strong>scripción, tipo <strong>de</strong> producto, etc.<br />

o Dimensión ubicación: región, estado, ciudad y número <strong>de</strong> tienda.<br />

o Dimensión tiempo: año, trimestre, mes, semana, etc.<br />

Los atributos <strong>de</strong>ntro <strong>de</strong> las dimensiones pue<strong>de</strong>n or<strong>de</strong>narse en una jerarquía bien<br />

<strong>de</strong>finida. La jerarquía <strong>de</strong> atributos proporciona una organización <strong>de</strong>scen<strong>de</strong>nte que<br />

se utiliza para dos propósitos principales: agregación, análisis <strong>de</strong> datos con mayores<br />

y menores niveles <strong>de</strong> agregación.<br />

1.1. Tablas Factuales y Dimensionales<br />

Tabla Factual: Es la tabla central que contiene los datos (hechos) sobre las diferentes<br />

combinaciones <strong>de</strong> las dimensiones. Su clave primaria se crea combinando las claves primarias<br />

<strong>de</strong> sus dimensiones relacionadas. Pue<strong>de</strong> suce<strong>de</strong>r que la tabla factual no tenga hechos y que se<br />

utilice simplemente para registrar las relaciones entre las diferentes dimensiones.<br />

Dimensiones: Para cada una <strong>de</strong> las dimensiones se crea una tabla, almacenado así las<br />

<strong>de</strong>scripciones <strong>de</strong> las dimensiones. Los atributos <strong>de</strong> las tablas dimensionales son textuales,<br />

discretas y se utilizan para restricciones y cabeceras <strong>de</strong> filas en el conjunto <strong>de</strong> respuesta <strong>de</strong>l<br />

usuario.<br />

2. Mo<strong>de</strong>lo Conceptual <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong><br />

2.1. Metodología para el Diseño <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> <strong>de</strong> Golfarelli y rizzi<br />

Consta <strong>de</strong> siete fases:<br />

1. Análisis y reconciliación <strong>de</strong> las fuentes <strong>de</strong> datos. En esta fase se analizan los<br />

esquemas locales y se normalizan para posteriormente integrase.<br />

2. Análisis <strong>de</strong> requisitos, mediante entrevistas y reuniones coordinadas con los<br />

usuarios <strong>de</strong> datamart.<br />

3. Mo<strong>de</strong>lado conceptual, para el que proponen el mo<strong>de</strong>lo factual dimensional. Este<br />

está compuesto por varios esquemas <strong>de</strong> hechos.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

6<br />

Figura 2. Esquema <strong>de</strong> hechos.<br />

Para cada hecho se construye un “árbol <strong>de</strong> atributos”, para posteriormente “podar e<br />

injertar” este árbol <strong>de</strong>finiendo las dimensiones y las medias correspondientes.<br />

4. Refinamiento <strong>de</strong> la carga <strong>de</strong> trabajo y validación <strong>de</strong>l esquema conceptual. La<br />

carga <strong>de</strong> trabajo es un conjunto <strong>de</strong> pares formados por consultas y su<br />

correspondiente frecuencia o importancia para el usuario.<br />

5. Diseño lógico, en esta fase se pasa <strong>de</strong> los esquemas <strong>de</strong> hecho a los esquemas en<br />

estrella, <strong>de</strong> forma casi directa.<br />

6. Diseño <strong>de</strong> alimentación. Consiste en <strong>de</strong>finir los procedimientos necesarios para<br />

cargar el datamart a partir <strong>de</strong> los datos provenientes <strong>de</strong> las fuentes operacionales.<br />

7. Diseño físico, consistente en la elección <strong>de</strong> los índices y en la ubicación <strong>de</strong> los datos<br />

en los soportes físicos.<br />

2.2. Perfil UML para el Mo<strong>de</strong>lado <strong>de</strong> <strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> <strong>de</strong> Trujillo<br />

El perfil <strong>de</strong> UML contiene estereotipos necesarios para acometer con éxito el mo<strong>de</strong>lado<br />

conceptual <strong>de</strong> almacenes <strong>de</strong> datos.<br />

NOMBRE DESCRIPCIÓN ICONO<br />

Fact Las clases <strong>de</strong> este estereotipo representan hechos<br />

Dimension Las clases <strong>de</strong> este estereotipo representan dimensiones<br />

Base<br />

Las clases <strong>de</strong> este estereotipo representan niveles <strong>de</strong> una<br />

jerarquía dimensional<br />

Tabla 1. Estereotipos <strong>de</strong> clases.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

7<br />

NOMBRE DESCRIPCIÓN ICONO<br />

OID<br />

FactAttribute<br />

Descriptor<br />

DimensiónAttribute<br />

Los atributos con este estereotipo representan los<br />

OID <strong>de</strong> clases factuales, dimensionales o base<br />

Los atributos con este estereotipo representan<br />

atributos <strong>de</strong> clases factuales<br />

Los atributos con este estereotipo representan<br />

atributos <strong>de</strong>scriptores <strong>de</strong> clases dimensionales o base<br />

Los atributos con este estereotipo representan<br />

atributos <strong>de</strong> clases dimensionales<br />

Tabla 2. Estereotipos para atributos.<br />

Las clases <strong>de</strong> hechos se <strong>de</strong>finen como clases compuestas en una relación <strong>de</strong> agregación<br />

<strong>de</strong> n clases <strong>de</strong> dimensión. La cardinalidad mínima en el rol <strong>de</strong> las clases <strong>de</strong> dimensión es 1 para<br />

indicar que todo hecho ha <strong>de</strong> estar siempre relacionado con todas las dimensiones.<br />

Componentes<br />

1. Metadatos<br />

Uno <strong>de</strong> los componentes más importantes <strong>de</strong> la arquitectura <strong>de</strong> un DW es el Metadato.<br />

Es <strong>de</strong>finido comúnmente como "datos acerca <strong>de</strong> los datos", en el sentido <strong>de</strong> que se trata <strong>de</strong> datos<br />

que <strong>de</strong>scriben cuál es la estructura <strong>de</strong> los datos y cómo se relacionan.<br />

El Metadato documenta exactamente, entre otras cosas, qué tablas existen para esa<br />

aplicación, qué columnas posee cada una <strong>de</strong> las tablas y qué tipo <strong>de</strong> datos se pue<strong>de</strong>n almacenar.<br />

Los datos son <strong>de</strong> interés para el usuario final, el Metadato es <strong>de</strong> interés para los programas que<br />

tienen que manejar estos datos. Sin embargo, el rol que cumple el Metadato en un ambiente <strong>de</strong><br />

DW es muy diferente al rol que cumple en los ambientes operacionales. En un ambiente <strong>de</strong> DW<br />

el Metadato juega un papel fundamental.<br />

El papel <strong>de</strong>l Metadato es recoger todas las <strong>de</strong>finiciones <strong>de</strong> la organización y concepto<br />

<strong>de</strong> los datos en un "almacén <strong>de</strong> datos", <strong>de</strong>be contener toda la información concerniente a:<br />

Tablas, Columnas <strong>de</strong> tablas, Relaciones entre tablas, Jerarquías y Dimensiones <strong>de</strong> datos,<br />

Entida<strong>de</strong>s y Relaciones.<br />

2. Middleware<br />

El Middleware es un software <strong>de</strong> conectividad que ofrece un conjunto <strong>de</strong> servicios que<br />

hacen posible el funcionamiento <strong>de</strong> aplicaciones distribuidas sobre plataformas heterogéneas.<br />

La función <strong>de</strong>l Middleware es la <strong>de</strong> asegurar la conectividad entre todos los componentes <strong>de</strong> la<br />

arquitectura <strong>de</strong> un DW. El Middleware pue<strong>de</strong> verse como una capa Application Programming<br />

Interface (API), con base a la cual los programadores pue<strong>de</strong>n <strong>de</strong>sarrollar aplicaciones que


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

trabajen en diferentes ambientes sin preocuparse <strong>de</strong> los protocolos <strong>de</strong> red y comunicaciones en<br />

que se correrán. De esta manera se ofrece una mejor relación costo/rendimiento que pasa por el<br />

<strong>de</strong>sarrollo <strong>de</strong> aplicaciones más complejas, en menos tiempo.<br />

8<br />

3. Mecanismos <strong>de</strong> Extracción<br />

Otro <strong>de</strong> los componentes <strong>de</strong> la arquitectura <strong>de</strong> un DW son los sistemas OLAP. Los<br />

sistemas OLAP se enmarcan en lo que podríamos llamar las bases <strong>de</strong> datos corporativas. Los<br />

objetivos fundamentales en este entorno son el análisis <strong>de</strong> la información, es <strong>de</strong>cir, el sistema en<br />

que almacenemos la información ha <strong>de</strong> proveer <strong>de</strong> funciones <strong>de</strong> consulta analítica y <strong>de</strong> apoyo a<br />

la toma <strong>de</strong> <strong>de</strong>cisiones. Este tipo <strong>de</strong> consultas en Sistemas Gestores <strong>de</strong> bases <strong>de</strong> datos (SGBD)<br />

relacionales son complejas e involucran cruzar información <strong>de</strong> varias tablas, lo que se traduce<br />

en un pobre rendimiento.<br />

En los sistemas OLAP la información ya no se almacena en tablas, sino en cubos <strong>de</strong> n<br />

dimensiones. Se construye a partir <strong>de</strong> una tabla principal, llamada tabla <strong>de</strong> hechos, que enumera<br />

los hechos ciertos en el sistema. A ella se va añadiendo una dimensión por relación cuya<br />

información que se quiera almacenar, <strong>de</strong> manera que todas están precalculadas en el sistema.<br />

4. Mecanismos <strong>de</strong> Carga<br />

Existen dos formas básicas <strong>de</strong> <strong>de</strong>sarrollar esta tarea:<br />

Acumulación simple. La acumulación simple es, sin duda, la más sencilla y común,<br />

y consiste en realizar una sumarización o resumen <strong>de</strong> todas las transacciones<br />

comprendidas en el período <strong>de</strong> tiempo seleccionado y transportar el resultado como<br />

una única transacción hacia el DW.<br />

Rolling. El proceso <strong>de</strong> Rolling por su parte, se aplica en los casos en que se opta por<br />

mantener varios niveles <strong>de</strong> granularidad. Para ello se almacena información<br />

resumida a distintos niveles, correspondientes a distintas agrupaciones <strong>de</strong> la unidad<br />

<strong>de</strong> tiempo.<br />

Importancia en las Empresas<br />

Los almacenes <strong>de</strong> datos son el centro <strong>de</strong> atención para las gran<strong>de</strong>s empresas <strong>de</strong> hoy en<br />

día, ya que constituyen uno <strong>de</strong> los soportes fundamentales para el proceso <strong>de</strong> toma <strong>de</strong> <strong>de</strong>cisiones<br />

gerenciales; <strong>de</strong> ahí la importancia <strong>de</strong> que la información guardada en ellos sea confiable y con<br />

calidad. Uno <strong>de</strong> los procesos en la construcción <strong>de</strong> estos y que contribuye a lograr este objetivo<br />

es la limpieza <strong>de</strong> datos, y junto con ella la estandarización <strong>de</strong> direcciones. Para comunicarse<br />

efectivamente con sus clientes, por teléfono o por correo, una empresa <strong>de</strong>be mantener una lista<br />

<strong>de</strong> sus clientes extraordinariamente limpia y con sus direcciones normalizadas. Esto evita<br />

problemas como el <strong>de</strong> la pérdida <strong>de</strong> credibilidad o <strong>de</strong> imagen <strong>de</strong> la organización, al hacer envíos<br />

precisos y al brindarle al cliente un servicio más rápido y profesional.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

¿QUE ES ESTANDARIZACION? IMPORTANCIA DE LA ESTANDARIZACION DE<br />

DIRECCIONES PARA LAS EMPRESAS DE HOY EN DIA<br />

9<br />

La estandarización forma parte <strong>de</strong> los seis pasos necesarios para llevar a cabo la<br />

limpieza <strong>de</strong> datos. Esta consiste en separar la información en diferentes campos, así como<br />

unificar ciertos criterios para un mejor manejo y manipulación <strong>de</strong> los datos.<br />

Hay muchos ejemplos <strong>de</strong> aplicaciones basadas en la información <strong>de</strong>l cliente que<br />

necesitan que sus datos, y principalmente sus direcciones tengan integridad, algunos <strong>de</strong> ellos<br />

son: Sistemas CRM (Customer Relationship Management, Gestión <strong>de</strong> las Relaciones con el<br />

Cliente), E-Business (Negocios electrónicos), Call Centers (Oficina o compañía centralizada<br />

que respon<strong>de</strong> llamadas telefónicas <strong>de</strong> clientes o que hacen llamadas a clientes (Telemarketing)),<br />

Sistemas <strong>de</strong> Marketing.<br />

Del mismo modo, po<strong>de</strong>mos mencionar algunas <strong>de</strong> las organizaciones que mayormente<br />

son beneficiadas por la limpieza <strong>de</strong> los datos <strong>de</strong> sus clientes: Bancos y Finanzas, Gobierno,<br />

Salud, Telecomunicaciones.<br />

Ejemplo <strong>de</strong> Almacén <strong>de</strong> <strong>Datos</strong><br />

Figura 3. Ventas Figura 4. Esquema <strong>de</strong> hechos <strong>de</strong> ventas


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

10<br />

BASES DE DATOS <strong>XML</strong><br />

Introducción<br />

El Lenguaje <strong>de</strong> marcas extensible (<strong>XML</strong>) no se concibió como una tecnología para<br />

bases <strong>de</strong> datos inicialmente. Al igual que el lenguaje HTML, <strong>XML</strong> tiene sus raíces en la gestión<br />

<strong>de</strong> documentos y está <strong>de</strong>rivado <strong>de</strong> un lenguaje para estructurar documentos gran<strong>de</strong>s. Sin<br />

embargo, <strong>XML</strong> pue<strong>de</strong> representar datos <strong>de</strong> bases <strong>de</strong> datos, así como muchas clases <strong>de</strong> datos<br />

estructurados. Resulta <strong>de</strong> gran utilidad como formato <strong>de</strong> datos cuando las aplicaciones se <strong>de</strong>ben<br />

comunicar con otra aplicación o integrar información <strong>de</strong> varias aplicaciones.<br />

Los principales motivos <strong>de</strong> la aparición <strong>de</strong> las bases <strong>de</strong> datos <strong>XML</strong> son la proliferación<br />

<strong>de</strong> la Web y la necesidad creciente <strong>de</strong> compartir información estructurada <strong>de</strong>ntro <strong>de</strong> las<br />

empresas ó con otras empresas. Por lo tanto se <strong>de</strong>duce la necesidad <strong>de</strong> crear un nuevo tipo <strong>de</strong><br />

base <strong>de</strong> datos que resuelva estos problemas.<br />

Para compren<strong>de</strong>r las bases <strong>de</strong> datos <strong>XML</strong> es importante conocer sus raíces como un<br />

lenguaje <strong>de</strong> marcas <strong>de</strong> documentos. Por el concepto <strong>de</strong> marca enten<strong>de</strong>mos cualquier elemento en<br />

un documento <strong>de</strong>l que no se tiene intención que sea parte <strong>de</strong> la salida impresa. Las bases <strong>de</strong><br />

datos <strong>XML</strong> permiten presentar información estructurada, ya que esta viene <strong>de</strong>finida por las<br />

marcas <strong>de</strong> los distintos archivos.<br />

Documentos <strong>XML</strong><br />

El constructor en un documento <strong>XML</strong> es el elemento. Los documentos <strong>XML</strong> <strong>de</strong>ben <strong>de</strong><br />

tener un único elemento raíz que abarque al resto <strong>de</strong> elementos don<strong>de</strong> los elementos hijos <strong>de</strong>l<br />

elemento raíz se <strong>de</strong>ben anidar a<strong>de</strong>cuadamente. Las representaciones anidadas se usan<br />

ampliamente en las aplicaciones <strong>de</strong> intercambio <strong>de</strong> datos <strong>XML</strong>. Por tanto, la estructura <strong>de</strong><br />

etiquetas anidadas <strong>de</strong>ntro <strong>de</strong> un archivo <strong>XML</strong> hace que se disponga <strong>de</strong> una estructura <strong>de</strong> árbol.<br />

Características <strong>de</strong> los documentos <strong>XML</strong>:<br />

Posee mensajes auto-documentados: no se tiene que consultar un esquema para<br />

compren<strong>de</strong>r el significado <strong>de</strong>l texto.<br />

El formato <strong>de</strong>l documento no es rígido: se pue<strong>de</strong> agregar información adicional tal<br />

como etiquetas<br />

<strong>XML</strong> permite estructuras anidadas: En un mo<strong>de</strong>lo relacional el anidamiento lo<br />

tendríamos que incluir en una tabla aparte, por lo que en bases <strong>de</strong> datos relacionales<br />

esto no era posible<br />

Gran variedad <strong>de</strong> herramientas disponibles para ayudar a su procesamiento


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

11<br />

Esquema <strong>de</strong> los documentos <strong>XML</strong>:<br />

Definición <strong>de</strong> tipos <strong>de</strong> documentos (DTD): Es una parte opcional <strong>de</strong> un documento<br />

<strong>XML</strong>. Su propósito es restringir el tipo <strong>de</strong> información presente en el documento, <strong>de</strong><br />

forma que restringe el aspecto <strong>de</strong> los subelementos y atributos <strong>de</strong> un elemento.<br />

<strong>XML</strong> Schema: Se trata <strong>de</strong> un intento <strong>de</strong> reparar las <strong>de</strong>ficiencias <strong>de</strong>l mecanismo<br />

DTD, ampliando el sistema <strong>de</strong> tipos. <strong>XML</strong> Schema <strong>de</strong>fine varios tipos pre<strong>de</strong>finidos<br />

como string, integer, bolean, etc y también permite tipos <strong>de</strong>finidos por el usuario.<br />

Lenguajes <strong>de</strong> navegación<br />

Los lenguajes utilizados para transformar y consultar los datos son esenciales para la<br />

extracción <strong>de</strong> información <strong>de</strong> datos <strong>XML</strong> así como para convertir los datos entre distintas<br />

representaciones en <strong>XML</strong>. Dado que <strong>XML</strong> representa datos semiestructurados, es importante la<br />

existencia <strong>de</strong> lenguajes <strong>de</strong> consulta que combinen las características <strong>de</strong> los lenguajes<br />

tradicionales <strong>de</strong> consulta <strong>de</strong> datos con los lenguajes <strong>de</strong> recuperación <strong>de</strong> información.<br />

En todos los lenguajes se usa un mo<strong>de</strong>lo <strong>de</strong> árbol <strong>de</strong> datos <strong>XML</strong> a la hora <strong>de</strong> realizar las<br />

consultas. Cada documento es por tanto un árbol con nodos siendo los nodos elementos o<br />

atributos con las siguientes propieda<strong>de</strong>s:<br />

Tan solo en el caso <strong>de</strong> que el nodo sea un elemento pue<strong>de</strong> tener nodos hijos. (Cada<br />

nodo distinto <strong>de</strong>l nodo raíz tiene un nodo padre que es un elemento).<br />

El or<strong>de</strong>n <strong>de</strong> elementos y atributos en el documento <strong>XML</strong> se mo<strong>de</strong>la or<strong>de</strong>nando los<br />

nodos hijos <strong>de</strong>l árbol.<br />

El nodo raíz tiene un único hijo, que es el elemento raíz <strong>de</strong>l documento.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

Los lenguajes que proporcionan más capacida<strong>de</strong>s <strong>de</strong> consulta y transformación son:<br />

12<br />

XPath: Trata partes <strong>de</strong> los documentos <strong>XML</strong> mediante expresiones <strong>de</strong> rutas <strong>de</strong> acceso,<br />

recorriendo documentos <strong>XML</strong> a partir <strong>de</strong> dichas rutas. Cada expresión <strong>de</strong> ruta XPath es<br />

una secuencia <strong>de</strong> pasos <strong>de</strong> ubicación separados por el carácter“/” (que indica la raíz <strong>de</strong>l<br />

documento). Como resultado <strong>de</strong> la expresión se obtiene una lista <strong>de</strong> nodos. Se pue<strong>de</strong><br />

acce<strong>de</strong>r a los valores <strong>de</strong> los atributos usando el símbolo @.<br />

Ejemplo: /banco-2/cuenta/@numero_cuenta <strong>de</strong>vuelve un conjunto <strong>de</strong> nodos con todos<br />

los valores <strong>de</strong>l atributo numero_cuenta <strong>de</strong> los elementos <strong>de</strong> cuenta.<br />

XPath permite incluir restricciones para <strong>de</strong>volver una lista <strong>de</strong> nodos según las<br />

condiciones <strong>de</strong>seadas.<br />

Ejemplo: /banco-2/cuenta[saldo>400] <strong>de</strong>vuelve los elementos <strong>de</strong> cuenta con un valor <strong>de</strong><br />

saldo mayor que 400.<br />

Otras funciones disponibles para XPath son:<br />

o Comprobación <strong>de</strong> la posición <strong>de</strong> un nodo en el or<strong>de</strong>n <strong>de</strong> los hermanos<br />

o Función <strong>de</strong> agregación Count() que cuenta el número <strong>de</strong> nodos coinci<strong>de</strong>ntes con<br />

la expresión a la que se aplica.<br />

o El operador “|” permite unir resultados <strong>de</strong> expresiones<br />

o Las expresiones XPath pue<strong>de</strong>n saltar varios niveles <strong>de</strong> nodos mediante el uso <strong>de</strong><br />

“//”. Resulta <strong>de</strong> gran utilidad para po<strong>de</strong>r buscar los datos necesarios sin un<br />

conocimiento completo <strong>de</strong> un esquema.<br />

o La función pre<strong>de</strong>terminada doc(nombre) <strong>de</strong>vuelve la raíz <strong>de</strong> un documento con<br />

nombre, siendo el nombre el <strong>de</strong> un archivo o una URL.<br />

XQuery: Se trata <strong>de</strong>l lenguaje <strong>de</strong> consulta estandarizado <strong>de</strong> <strong>XML</strong>. XQuery proce<strong>de</strong> <strong>de</strong><br />

un lenguaje <strong>de</strong> consulta <strong>de</strong>nominado Quilt, el cual incluye características <strong>de</strong> lenguajes<br />

como XPath o SQL.<br />

Las consultas tienen una sintaxis similar a la <strong>de</strong> SQL. Cada consulta se escribe mediante<br />

una expresión <strong>de</strong>nominada FLWOR. Una expresión <strong>de</strong> éste tipo consta <strong>de</strong> las siguientes<br />

cláusulas:<br />

o For: Es como la cláusula from <strong>de</strong> SQL y proporciona una serie <strong>de</strong> variables<br />

cuyos valores son los resultados <strong>de</strong> expresiones XPath<br />

o Let: Permite asignar el resultado <strong>de</strong> expresiones Xpath al nombre <strong>de</strong> las<br />

variables. No tiene equivalente en SQL.<br />

o Where: Es igual que la cláusula where <strong>de</strong> SQL<br />

o Or<strong>de</strong>r by: Permite la or<strong>de</strong>nación <strong>de</strong> las tuplas <strong>de</strong> salida.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

13<br />

o Return: Permite la construcción <strong>de</strong> resultados en <strong>XML</strong> <strong>de</strong> la expresión <strong>de</strong>vuelta.<br />

Cuando en la cláusula return se encuentra un elemento como <br />

que inicia una expresión, trata su contenido como texto <strong>XML</strong> normal, excepto<br />

partes encerradas entre llaves, que se evalúan como expresiones.<br />

XQuery proporciona otra forma <strong>de</strong> construir elementos usando constructores element y<br />

attribute <strong>de</strong>ntro <strong>de</strong> la cláusula return. A<strong>de</strong>más, las expresiones FLWOR <strong>de</strong> XQuery se<br />

pue<strong>de</strong>n anidar en la cláusula return con el fin <strong>de</strong> generar anidamientos <strong>de</strong> elementos que<br />

no aparecen en el documento origen. Son similares a las subconsultas anidadas en la<br />

cláusula from <strong>de</strong> las consultas SQL<br />

XQuery no proporciona un constructor group by, las consultas <strong>de</strong> agregación se pue<strong>de</strong>n<br />

escribir usando funciones <strong>de</strong> agregado sobre expresiones <strong>de</strong> ruta anidadas <strong>de</strong>ntro <strong>de</strong> la<br />

cláusula return. En cambio los resultados se pue<strong>de</strong>n or<strong>de</strong>nar si se incluye una cláusula<br />

or<strong>de</strong>r by. XQuery también soporta funciones <strong>de</strong>finidas por el usuario<br />

Otras propieda<strong>de</strong>s relevantes son:<br />

o El resultado <strong>de</strong> una consulta XQuery es un conjunto <strong>de</strong> nodos en el que pue<strong>de</strong>n<br />

existir nodos repetidos. Para eliminar duplicados se utiliza la funcion distinct()<br />

o Se permiten funciones <strong>de</strong>finidas por el usuario.<br />

o Posibilidad <strong>de</strong> incluir cuantificadores some y any.<br />

XSLT: XSL, que se trata <strong>de</strong> un lenguaje <strong>de</strong> hojas <strong>de</strong>l estilo <strong>de</strong> <strong>XML</strong>, incluye un<br />

lenguaje <strong>de</strong> transformación <strong>de</strong> propósito general <strong>de</strong>nominado XSLT. Éste lenguaje<br />

permite convertir documentos <strong>XML</strong> <strong>de</strong> una sintaxis a otra (por ejemplo, <strong>de</strong> un <strong>XML</strong> a<br />

otro o a un documento HTML).<br />

En XSLT las transformaciones se expresan utilizando reglas recursivas <strong>de</strong>nominadas<br />

plantillas. Las plantillas permiten seleccionar contenido <strong>de</strong> los documentos <strong>XML</strong><br />

mediante la utilización <strong>de</strong> expresiones Xpath.<br />

Existe un mecanismo importante <strong>de</strong>nominado recursividad estructural que permite que<br />

cuando una plantilla coinci<strong>de</strong> con un elemento en la estructura <strong>de</strong>l árbol, las reglas <strong>de</strong><br />

esa plantilla se aplican a los subelementos <strong>de</strong>l árbol.<br />

<br />

<br />

<br />

<br />


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

14<br />

Produce como salida los títulos que existan en la referencia bibliográfica.<br />

XPointer: Es una extensión <strong>de</strong> XPath. Proporciona una forma <strong>de</strong> i<strong>de</strong>ntificar <strong>de</strong> forma<br />

única fragmentos <strong>de</strong> un documento <strong>XML</strong> con el objeto <strong>de</strong> realizar vínculos.<br />

La extensión XPointer permite a XPath:<br />

o Seleccionar puntos, intervalos y nodos.<br />

o Utilizar coinci<strong>de</strong>ncias <strong>de</strong> ca<strong>de</strong>nas para buscar información.<br />

o Utilizar expresiones <strong>de</strong> direccionamiento en referencias <strong>de</strong> URI como<br />

Ejemplo:<br />

i<strong>de</strong>ntificadores <strong>de</strong> fragmentos.<br />

documento.xml#xpointer(/libro/capitulo[@public])xpointer(/libro/capitulo[@num="1"])<br />

Almacenamiento en <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

La aparición <strong>de</strong> las BD <strong>XML</strong> proporcionan una alternativa directa para almacenar y<br />

gestionar los documentos <strong>XML</strong>. Existen diferentes soluciones para el almacenamiento <strong>de</strong><br />

documentos <strong>XML</strong><br />

1. <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong> Nativas<br />

Surgen por la necesidad <strong>de</strong> almacenar documentos <strong>XML</strong> y por los problemas que<br />

existen para almacenarlos en un sistema relacional. Las bases <strong>de</strong> datos <strong>XML</strong> nativas soportan<br />

transacciones, acceso multi-usuario, lenguajes <strong>de</strong> consulta, etc., diseñadas especialmente para<br />

almacenar documentos <strong>XML</strong>. Algunos ejemplos son eXcelon Xis, Tamino, db<strong>XML</strong> o Go<strong>XML</strong>.<br />

Las bases <strong>de</strong> datos nativas están centradas en el almacenamiento y en la gestión <strong>de</strong><br />

documentos <strong>XML</strong>. Estos gestores tienen las siguientes características:<br />

Se <strong>de</strong>fine un mo<strong>de</strong>lo para la estructura <strong>de</strong> los documentos <strong>XML</strong> (DTD, <strong>XML</strong><br />

Schema, etc.).<br />

Almacena y recupera documentos <strong>de</strong> acuerdo a ese mo<strong>de</strong>lo.<br />

Como mínimo el mo<strong>de</strong>lo <strong>de</strong>be incluir elementos, atributos, manejo <strong>de</strong><br />

PCDATA y el or<strong>de</strong>n <strong>de</strong>l documento.<br />

No existe una restricción para el mo<strong>de</strong>lo <strong>de</strong> almacenamiento físico.<br />

A<strong>de</strong>más el SGBD <strong>XML</strong> Nativo <strong>de</strong>be soportar concurrencia, recuperación <strong>de</strong> los<br />

documentos, seguridad, etc. También, <strong>de</strong>bería soportar tecnologías relacionadas con <strong>XML</strong><br />

como XPath o XQuery.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

15<br />

Clasificación:<br />

Almacenamiento basado en texto. Almacena el documento <strong>XML</strong> entero en<br />

forma <strong>de</strong> texto y proporciona alguna funcionalidad <strong>de</strong> base <strong>de</strong> datos para<br />

acce<strong>de</strong>r a él.<br />

o Aplican técnicas <strong>de</strong> compresión para reducir el tamaño.<br />

o Se mantiene índices para aumentar la eficiencia en el acceso.<br />

o Se pue<strong>de</strong>n construir sobre un sistema <strong>de</strong> bases <strong>de</strong> datos relacional o<br />

sobre un sistema <strong>de</strong> archivos <strong>de</strong> texto.<br />

Almacenamiento basado en el mo<strong>de</strong>lo. Se <strong>de</strong>fine un mo<strong>de</strong>lo <strong>de</strong> datos lógico<br />

para la estructura <strong>de</strong> un documento <strong>XML</strong>, como por ejemplo DOM, y se utiliza<br />

este mo<strong>de</strong>lo para realizar el almacenamiento.<br />

2. Almacenamiento en bases <strong>de</strong> datos <strong>XML</strong> construidas a partir <strong>de</strong> tecnologías<br />

existentes<br />

Permiten el almacenamiento y la gestión <strong>de</strong> documentos <strong>XML</strong> en SGBD<br />

convencionales. Ejemplos <strong>de</strong> estas bases <strong>de</strong> datos son Oracle XMl DB, IBM DB2 <strong>XML</strong><br />

Exten<strong>de</strong>r o Microsoft SQL<strong>XML</strong>. Existen dos aproximaciones para el almacenamiento:<br />

Almacenamiento no estructurado.<br />

o Los documentos <strong>XML</strong> se almacenan directamente en formato <strong>de</strong> texto<br />

como atributo <strong>de</strong> tipo fichero.<br />

o El SGBD proporciona funciones para po<strong>de</strong>r acce<strong>de</strong>r a la información<br />

<strong>de</strong>ntro <strong>de</strong> los documentos <strong>XML</strong>.<br />

Almacenamiento estructurado.<br />

o La estructura <strong>de</strong> un documento <strong>XML</strong> se convierte a un esquema <strong>de</strong> la<br />

base <strong>de</strong> datos.<br />

o Para acce<strong>de</strong>r al contenido <strong>de</strong> los documentos <strong>XML</strong> el SGBD<br />

proporciona funciones.<br />

Extensión <strong>de</strong>l estándar SQL<br />

El estándar SQL:2003 ha <strong>de</strong>finido una serie <strong>de</strong> extensiones para soportar <strong>XML</strong>.<br />

En estas se extensiones se <strong>de</strong>fine:<br />

Un tipo <strong>de</strong> dato <strong>XML</strong> nativo llamado <strong>XML</strong><br />

Un conjunto <strong>de</strong> operadores para dicho tipo <strong>de</strong> datos.<br />

Un conjunto implícito <strong>de</strong> mapeos <strong>de</strong> los datos relacionales a <strong>XML</strong>


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

viceversa.<br />

16<br />

El tipo <strong>de</strong> dato <strong>XML</strong> permite tratar los documentos <strong>XML</strong> como:<br />

Valores relacionales <strong>de</strong>ntro <strong>de</strong> las columnas <strong>de</strong> las tablas.<br />

Atributos <strong>de</strong>finidos por el usuario.<br />

Variables.<br />

Parámetros <strong>de</strong> funciones.<br />

Algunas <strong>de</strong> las operaciones <strong>de</strong>finidas son:<br />

<strong>XML</strong>ELEMENT para generar un valor xml .<br />

<strong>XML</strong>CONCAT para concatenar una lista <strong>de</strong> valores xml.<br />

<strong>XML</strong>PARSE para realizar un análisis sintáctico <strong>de</strong> una ca<strong>de</strong>na <strong>de</strong><br />

caracteres para generar un documento xml.<br />

<strong>XML</strong>SERIALIZE para generar una ca<strong>de</strong>na <strong>de</strong> caracteres a partir <strong>de</strong> un<br />

documento xml.<br />

El conjunto <strong>de</strong> mapeos que se <strong>de</strong>finen es el siguiente:<br />

Mapeo <strong>de</strong> los i<strong>de</strong>ntificadores SQL a nombres <strong>XML</strong>.<br />

Mapeo <strong>de</strong> tipo <strong>de</strong> datos SQL a tipos <strong>de</strong> datos <strong>XML</strong> Schema.<br />

Mapeo <strong>de</strong> tablas a documentos <strong>XML</strong>.<br />

Generación <strong>de</strong> un esquema <strong>XML</strong>.<br />

Estos mapeos se usan para convertir bases <strong>de</strong> datos relacionales a documentos <strong>XML</strong> y<br />

El problema es que si el documento <strong>XML</strong> no proviene <strong>de</strong> una bases <strong>de</strong> datos o se pue<strong>de</strong><br />

convertir a un esquema relacional.<br />

Ejemplo <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

La siguiente consulta <strong>de</strong>vuelve los títulos <strong>de</strong> los libros <strong>de</strong>l año 2.000. Como “año” es un<br />

atributo y no una etiqueta se le antece<strong>de</strong> con un carácter “@”.<br />

for $b in doc("libros.xml")//libro<br />

where $b/@año = "2000"<br />

return $b/titulo


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

17<br />

COMPARACIÓN DE AMBOS MODELOS<br />

Mientras los almacenes <strong>de</strong> datos están enfocados a facilitar las consultas sobre gran<strong>de</strong>s<br />

cantida<strong>de</strong>s <strong>de</strong> datos con un tiempo <strong>de</strong> respuesta relativamente pequeño, las bases <strong>de</strong> datos <strong>XML</strong><br />

tienen el objetivo <strong>de</strong> almacenar documentos <strong>XML</strong>, siendo los tiempos <strong>de</strong> respuesta mayores y<br />

las consultas más complejas. En ambos mo<strong>de</strong>los, el estándar SQL se ha extendido para darles<br />

soporte.<br />

En principio ambos mo<strong>de</strong>los no están normalizados, aunque existen algunas iniciativas<br />

<strong>de</strong> normalización para <strong>XML</strong> y bases <strong>de</strong> datos <strong>XML</strong>.<br />

La implantación <strong>de</strong> las bases <strong>de</strong> datos <strong>XML</strong> es elevada en el caso <strong>de</strong> las bases <strong>de</strong> datos<br />

que se han ampliado para dar soporte al almacenamiento <strong>de</strong> datos <strong>XML</strong> y baja en el caso <strong>de</strong> las<br />

bases <strong>de</strong> datos <strong>XML</strong> nativas.<br />

Los almacenes <strong>de</strong> datos están implantados en empresas con gran<strong>de</strong>s volúmenes <strong>de</strong><br />

información, ya que estos surgen como la solución para obtener un sistema capaz <strong>de</strong> dar soporte<br />

a la toma <strong>de</strong> <strong>de</strong>cisiones estratégicas y tácticas, recibiendo datos <strong>de</strong> múltiples bases <strong>de</strong> datos<br />

operacionales.


MMAABBDD <strong>Funcionalidad</strong> 4:<br />

<strong>Almacenes</strong> <strong>de</strong> <strong>Datos</strong> y <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong> <strong>XML</strong><br />

18<br />

BIBLIOGRAFÍA<br />

Piattini, M., Marcos, E., Calero, C. y Vela, B. Tecnología y Diseño <strong>de</strong> <strong>Bases</strong> <strong>de</strong><br />

<strong>Datos</strong>. RA_MA<br />

Connolly, Thomas M.. Sistemas <strong>de</strong> bases <strong>de</strong> datos: un enfoque práctico para diseño,<br />

implementación y gestión. Pearson, D.L. 2005<br />

Silberschatz, A., Korth, H.F. y Sudarshan, S. Fundamentos <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong>.<br />

McGraw-Hill<br />

Rob, Peter y Coronel, Carlos. Sistemas <strong>de</strong> <strong>Bases</strong> <strong>de</strong> <strong>Datos</strong>: Diseño, implementación y<br />

administración.<br />

http://150.185.75.30/atiwiki/in<strong>de</strong>x.php/BASES_DE_DATOS_<strong>XML</strong><br />

http://es.wikipedia.org/wiki/<strong>Bases</strong>_<strong>de</strong>_datos_nativas_<strong>XML</strong><br />

http://es.wikipedia.org/wiki/Almac%C3%A9n_<strong>de</strong>_datos<br />

http://www.monografias.com/trabajos31/almacenes-datos/almacenes-datos.shtml<br />

http://www.error500.net/garbagecollector/archives/categorias/bases_<strong>de</strong>_datos/<br />

sistemas_olap.php<br />

http://kybele.escet.urjc.es/docencia/AplicBD/2007-2008/Material/%5BAplicBD-2007-<br />

08%5DDW_Parte2.pdf

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!