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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!