Almacenamiento de datos: esquemas

El esquema es una descripción lógica de toda la base de datos. Incluye el nombre y la descripción de los registros de todos los tipos de registros, incluidos todos los elementos de datos asociados y los agregados. Al igual que una base de datos, un almacén de datos también requiere mantener un esquema. Una base de datos usa un modelo relacional, mientras que un almacén de datos usa un esquema de constelación de estrellas, copos de nieve y hechos. En este capítulo, analizaremos los esquemas utilizados en un almacén de datos.

Esquema de estrella

  • Cada dimensión en un esquema en estrella se representa con una sola tabla de una dimensión.

  • Esta tabla de dimensiones contiene el conjunto de atributos.

  • El siguiente diagrama muestra los datos de ventas de una empresa con respecto a las cuatro dimensiones, a saber, tiempo, artículo, sucursal y ubicación.

  • Hay una tabla de hechos en el centro. Contiene las claves de cada una de las cuatro dimensiones.

  • La tabla de hechos también contiene los atributos, a saber, dólares vendidos y unidades vendidas.

Note- Cada dimensión tiene solo una tabla de dimensiones y cada tabla contiene un conjunto de atributos. Por ejemplo, la tabla de dimensiones de ubicación contiene el conjunto de atributos {clave_ubicación, calle, ciudad, provincia_o_estado, país}. Esta restricción puede causar redundancia de datos. Por ejemplo, "Vancouver" y "Victoria", ambas ciudades se encuentran en la provincia canadiense de Columbia Británica. Las entradas para tales ciudades pueden causar redundancia de datos a lo largo de los atributos province_or_state y country.

Esquema de copo de nieve

  • Algunas tablas de dimensiones del esquema Snowflake están normalizadas.

  • La normalización divide los datos en tablas adicionales.

  • A diferencia del esquema de estrella, la tabla de dimensiones en un esquema de copo de nieve está normalizada. Por ejemplo, la tabla de dimensiones de artículos en el esquema de estrella se normaliza y se divide en dos tablas de dimensiones, a saber, tabla de artículos y proveedores.

  • Ahora, la tabla de dimensiones del artículo contiene los atributos item_key, item_name, type, brand y provider-key.

  • La clave del proveedor está vinculada a la tabla de dimensiones del proveedor. La tabla de dimensiones del proveedor contiene los atributos clave_proveedor y tipo_proveedor.

Note - Debido a la normalización en el esquema Snowflake, la redundancia se reduce y, por lo tanto, se vuelve fácil de mantener y se ahorra espacio de almacenamiento.

Esquema de constelación de hechos

  • Una constelación de hechos tiene varias tablas de hechos. También se conoce como esquema de galaxias.

  • El siguiente diagrama muestra dos tablas de hechos, a saber, ventas y envío.

  • La tabla de hechos de ventas es la misma que la del esquema en estrella.

  • La tabla de hechos de envío tiene las cinco dimensiones, a saber, item_key, time_key, shipper_key, from_location, to_location.

  • La tabla de datos de envío también contiene dos medidas, a saber, dólares vendidos y unidades vendidas.

  • También es posible compartir tablas de dimensiones entre tablas de hechos. Por ejemplo, las tablas de dimensiones de tiempo, artículo y ubicación se comparten entre la tabla de hechos de ventas y envío.

Definición de esquema

El esquema multidimensional se define mediante el lenguaje de consulta de minería de datos (DMQL). Las dos primitivas, definición de cubo y definición de dimensión, se pueden utilizar para definir los almacenes de datos y los mercados de datos.

Sintaxis para la definición de cubo

define cube < cube_name > [ < dimension-list > }: < measure_list >

Sintaxis para la definición de dimensión

define dimension < dimension_name > as ( < attribute_or_dimension_list > )

Definición de esquema en estrella

El esquema en estrella que hemos discutido se puede definir usando Data Mining Query Language (DMQL) de la siguiente manera:

define cube sales star [time, item, branch, location]:   
    	   
dollars sold = sum(sales in dollars), units sold = count(*)    	  

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)        	
define dimension branch as (branch key, branch name, branch type)              	
define dimension location as (location key, street, city, province or state, country)

Definición de esquema de copo de nieve

El esquema de copo de nieve se puede definir usando DMQL de la siguiente manera:

define cube sales snowflake [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier (supplier key, supplier type))
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city (city key, city, province or state, country))

Definición de esquema de constelación de hechos

El esquema de constelación de hechos se puede definir usando DMQL de la siguiente manera:

define cube sales [time, item, branch, location]:

dollars sold = sum(sales in dollars), units sold = count(*)

define dimension time as (time key, day, day of week, month, quarter, year)
define dimension item as (item key, item name, brand, type, supplier type)
define dimension branch as (branch key, branch name, branch type)
define dimension location as (location key, street, city, province or state,country)
define cube shipping [time, item, shipper, from location, to location]:

dollars cost = sum(cost in dollars), units shipped = count(*)

define dimension time as time in cube sales
define dimension item as item in cube sales
define dimension shipper as (shipper key, shipper name, location as location in cube sales, shipper type)
define dimension from location as location in cube sales
define dimension to location as location in cube sales