¿La asignación de clave sustituta para una tabla de hechos requiere que los datos de origen tengan claves naturales?

dba.stackexchange https://dba.stackexchange.com/questions/23365

Pregunta

Digamos que tengo una base de datos OLTP simple con pedidos, productos y clientes:

enter image description here

Y a partir de él, estoy construyendo un Data Mart con una tabla de hechos de pedidos, dimensión del producto, dimensión del cliente y dimensión de fecha:

enter image description here

Al cargar la tabla de pedidos en Fact_orders (digamos que estaba usando una transformación de búsqueda SSIS para asignar las claves sustitutas), ¿eso significa que la fuente de datos para los pedidos también necesitaría tener los valores naturales de "clave externa" que se asociaron? ¿Con el pedido en el sistema OLTP?

En otras palabras, ¿los datos que se están cargando provienen de una consulta como esta?

SELECT 
  order_date,                   -- needed to get date surrogate key
  customer_name,                -- needed to get customer surrogate key
  product_name,                 -- needed to get product surrogate key
  order_number,                 -- denegenerate dimension,
  qty_ordered AS order_qty,     -- measure
  total_amount AS order_amount  -- measure
FROM orders o 
  INNER JOIN customers c 
    ON o.customer_id = c.customer_id
  INNER JOIN products p 
    ON o.product_id = p.product_id 

No hay solución correcta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top