# Base de datos multidimensional

Las bases de datos multidimensionales se utilizan principalmente para crear aplicaciones OLAP y pueden verse como bases de datos de una sola tabla, su peculiaridad es que por cada dimensión tienen un campo (o columna), y otro campo por cada métrica o hecho, es decir estas tablas almacenan registros cuyos campos son de la forma:
${(d_{1},d_{2},d_{3},...,f_{1},f_{2},f_{3},...)}$
Donde los campos '${d_{i}}$' hacen referencia a las dimensiones de la tabla, y los campos '${f_{i}}$' a las métricas o hechos que se quiere almacenar, estudiar o analizar.

## Bases de datos multidimensionales vs. Cubos OLAP

Cada una de estas tablas puede asimilarse a un hipercubo o -más concretamente si de herramientas OLAP se trata- a un cubo OLAP, donde las dimensiones del mismo se corresponden los campos de dimensiones de la tabla (campos '${d_{i}...}$'), y el valor almacenado en cada celda del cubo equivale a la métrica o métricas (campos '${f_{i}...}$') almacenadas en la tabla.

## Implementación

Lo más importante a tener en cuenta para implementar esta estructura de datos es que la tabla contiene todas las n-tuplas, con los valores de las dimensiones, o índice del cubo, y los valores de las métricas previamente calculados para el cruce de valores del índice en cuestión.

## Ejemplo

Dada la siguiente especificación para una tabla (o hipercubo) en una base de datos multidimensional:
la tabla resultante podría tener la forma siguiente:

## Base de datos Multivaluada

Las bases de datos Multivaluadas (multivalue database) son un tipo especial de base de datos multidimensionales, también llamadas bases de datos PICK por el primer desarrollo que se realizó de este tipo, la aplicación "Pick operating system".

### Historia

El modelo de datos multivaluado fue definido por Don Nelson a mediados de los 60, y en 1968 se realizó la primera implementación de un sistema de bases de datos multidimensional, este desarrollo se atribuye a Dick Pick (de ahí que también se utilice el término Base de datos para este tipo de bases de datos).

### Concepto

El modelo de datos más extendido es el modelo relacional, este modelo se basa en las leyes de la normalización de bases de datos; según estás normas, y concretamente, según la primera forma normal, un campo de una base de datos no puede contener valores múltiples. En una base de datos multivaluada no se aplica la regla de la primera forma normal, es decir, se permite que un campo pueda tener más de un valor almacenado.

### Ejemplo

Supongamos una base de datos en la que queremos almacenar información de clientes; se supone que cada cliente puede tener más de un teléfono. En el modelo relacional habría que crear dos tablas o relaciones como estas:
Tabla 'Cliente' :
| ID Cliente | Nombre | Apellido |
| 123 | Rachel | Ingram |
| 456 | James | Wright |
| 789 | Maria | Fernández |
Tabla 'Teléfono cliente' :
| ID Cliente | Teléfono |
| 123 | 555-861-2025 |
| 456 | 555-403-1659 |
| 456 | 555-776-4100 |
| 789 | 555-808-9633 |
En el modelo multivaluado la siguiente tabla (que no cumple la primera forma normal) es perfectamente válida:
Tabla 'Cliente' :
| ID Cliente | Nombre | Apellido | Teléfono |
| 123 | Rachel | Ingram | 555-862-2025 |
| 456 | James | Wright | 555-403-1659 555-776-4100 |
| 789 | Maria | Fernández | 555-808-9633 |