¿Por qué usar claves sustitutas y dimensiones que cambian lentamente en Star Schema?

La clave sustituta es un identificador único de una fila/registro en una tabla relacional. Se agrega a cada tabla de dimensiones que no incluye una sola columna única para admitir el modelado de estrellas. Ejemplos de una clave sustituta en la tabla de dimensiones:

Dimension: Customer
Attributes:
Customer_id (Primary key and surrogate key)
Name
Age
Gender
Address
Email
Marital Status
city

Aquí, «Customer_id» es la clave sustituta . No es una pieza de información útil sobre clientes individuales, pero proporciona una identificación única para cada cliente individual cuando se almacena en las bases de datos.

 Uso de claves sustitutas en el Star Schema:

  • Las claves comerciales generalmente tienen un significado comercial en los sistemas OLTP, como el número de seguro social para los empleados. Por lo tanto, estos están vinculados a la configuración y los requisitos comerciales. Si este tipo de clave comercial cambiara, todas las tablas que usan estas claves comerciales también deberán actualizarse. Por lo tanto, evitamos este problema y simplemente agregamos claves sustitutas a cada tabla de dimensiones. Las claves sustitutas son solo números enteros únicos y nunca tendrán que cambiar.
  • En comparación con las claves sustitutas, las claves comerciales suelen tener un tamaño mayor, lo que dará como resultado índices grandes y ralentizará el recorrido del índice y, por lo tanto, aumentará el tiempo de ejecución de la consulta. Por lo tanto, para que sean sistemas eficientes y más rápidos, evitamos las claves comerciales y utilizamos en su lugar claves sustitutas.
  • Las claves comerciales a menudo se reutilizan durante períodos de tiempo más largos. Por lo tanto, la misma clave comercial no identificará de manera única un registro en la tabla.
  • Las claves sustitutas también se pueden utilizar con éxito para tratar con dimensiones que cambian lentamente.

Por lo tanto, no usamos claves comerciales únicas como claves principales. Preferimos claves sustitutas como claves principales en cada tabla de dimensiones.

 Dimensiones que cambian lentamente (SCD):

  • Estos son los atributos de las tablas de dimensiones que cambian lentamente con el tiempo, no con frecuencia ni periódicamente.
  • SCD contiene datos actuales e históricos.
  • Estado civil del cliente, correo electrónico y número de móvil del cliente.

En los sistemas OLTP, se permite sobrescribir registros. Pero en los sistemas de almacenamiento de datos, los datos históricos se almacenan con fines de análisis. Por lo tanto, estos datos no se pueden sobrescribir.

Tipos de SCD:

Tipo-1 SCD: En Tipo-1 SCD Se permite sobrescribir. Aquí, los datos nuevos sobrescriben los datos existentes. Los datos existentes se pierden y no se almacenan en ningún otro lugar. Este es el tipo predeterminado de dimensión que creamos. No es necesario especificar ninguna información adicional para crearlos. Ejemplo: Email y Marital_status de la dimensión del cliente. El estado civil no cambia con frecuencia. Cambia muy lentamente con el tiempo una o dos veces.

Desventaja:

Las dimensiones siempre contendrán los valores actuales de cada atributo y se perderán los datos históricos.

SCD Tipo-2: Crea otro registro de dimensión. Conserva la historia completa de los valores. Cuando cambia el valor de un atributo elegido, el registro actual se cierra. Se crea un nuevo registro con los valores de datos modificados y este nuevo registro se convierte en el registro actual. Cada registro contiene el tiempo efectivo y el tiempo de vencimiento para identificar el período de tiempo entre el cual el registro estuvo activo. Se deben agregar tres columnas adicionales a la tabla de dimensiones: 1. Start_Date. 2. End_Date, 3. Active_Flag. Ejemplo: Salario de la tabla Dimensión Empleados. Si el salario cambia en horas extras, no se sobrescribe, sino que se agrega un período de tiempo activo a la información salarial anterior.

Tipo-3 SCD: creación de un campo de valor actual. Almacena dos versiones de valores para ciertos atributos de nivel seleccionados. Cada registro almacena el valor anterior y el valor actual del atributo seleccionado. Cuando el valor de cualquier atributo seleccionado cambia, el valor actual se almacena en columna_anterior y el nuevo valor se almacena en columna_valor_actual. Ejemplo: Ciudad de la dimensión del cliente. Si un cliente cambia su ciudad con el tiempo, entonces no sobrescribimos el nombre de la ciudad ni mantenemos la bandera activa para eso. Simplemente creamos dos filas indicando cuál era la ciudad vieja y cuál es la ciudad nueva.

Note: 
SCD-1 approach is commonly used for supplementary columns such as email id, 
mobile number of customers.
SCD-2 is not a good approach for Rapidly Changing Dimensions. 
Hence, separate rapidly changing attributes by implementing junk dimensions.

Dimensión basura: la dimensión basura se puede definir como un lugar para almacenar atributos basura. La colección de códigos transaccionales aleatorios, indicadores, etc. que no están relacionados con ninguna dimensión en particular. Los atributos como entregado, enviado, recibido, empacado y devuelto pueden tener banderas indicadoras como Sí/No, S/N, Verdadero/Falso. Reduce el tamaño de la tabla de hechos.

Tabla sin hechos: una tabla de hechos que no contiene ningún hecho o medida. Contiene solo la clave principal de sus tablas dimensionales. Se utiliza para resolver problemas de cardinalidad de muchos a muchos.

 

Publicación traducida automáticamente

Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *