experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
DB1 Unidad 7: Desnormalizacion
1. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 1
04/03/2022
Desnormalización
Unidad 7
Material docente compilado por el profesor Ph.D. Franklin Parrales Bravo
para uso de los cursos de Bases de datos
2. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 2
04/03/2022
Objetivo general de la Unidad 7
Capacitar al estudiante para que sepa diferenciar y describir
las diferentes circunstancias en las que la desnormalización
es apropiada.
3. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 3
04/03/2022
Preliminares
▪ Propósito del tema
▪ Mostrar los tipos más comunes de desnormalización
con ejemplos.
▪ Objetivos
▪ Al final de este tema, ud. debería poder hacer lo
siguiente:
▪ Definir la desnormalización y explicar sus beneficios.
▪ Diferenciar y describir las diferentes circunstancias en las
que la desnormalización es apropiada.
4. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 4
04/03/2022
Relación de las formas normales
5. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 5
04/03/2022
Algunas consecuencias de la
normalización
▪ Se reduce o elimina la redundancia de datos.
▪ Las relaciones se dividen en tablas relacionadas
más pequeñas.
▪ El uso de todos los atributos de la relación
original requiere unir estas tablas más
pequeñas.
6. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 6
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
7. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 7
04/03/2022
Desnormalización
8. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 8
04/03/2022
Desnormalización
Reintroducir deliberadamente algo de
redundancia, para que podamos acceder a los
datos más rápido.
DENORMALIZED
DATA AHEAD
9. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 9
04/03/2022
Desnormalización
▪ La desnormalización ayuda al proceso de agregar
sistemáticamente redundancia a la base de datos para
mejorar el rendimiento después de que otras
posibilidades, como la indexación, hayan fallado.
▪ La desnormalización puede mejorar drásticamente ciertos
tipos de acceso a datos, pero no se garantiza el éxito y
siempre hay un costo.
▪ El modelo de datos se vuelve menos robusto y siempre
ralentizará DML.
▪ Complica el procesamiento e introduce la posibilidad de
problemas de integridad de los datos.
▪ Siempre requiere programación adicional para mantener los
datos desnormalizados.
10. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 10
04/03/2022
«Desnormalizar, es decir, violar la normalización, sólo tiene una excusa:
rendimiento ... y sólo en algunas situaciones » [Shasha-92]
• La normalización hasta la 3FN, FNBC o superior, facilita la comprensión de...
– los datos y
– relaciones entre los datos, que deben protegerse y mantenerse al crear las
aplicaciones
• En aplicaciones importantes o muy sencillas,
cuyas tareas no se adaptan a tablas normalizadas,
una vez terminado el análisis, puede ser necesario desnormalizar algunas tablas,
para conseguir una aplicación que se adapte a...
• las tareas de los usuarios
• los requerimientos de tiempo
Acelerar la operación de equirreunión y/o de
reunión natural: DESNORMALIZACIÓN
11. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 11
04/03/2022
Desnormalización real
▪ DESNORMALIZACIÓN REAL
• Consultas o Transacciones frecuentes que necesitan reunión de
• demasiadas tablas (tres o más), o
• dos tablas con muchas tuplas
• se ejecutarán muy lentamente
• Solución: Romper la 3FN (FNBC o superior)
• Almacenar atributos de una tabla en otra tabla
• REPETICIÓN, DUPLICACIÓN o REDUNDANCIA de atributos
• Importante: las transacciones que actualizan el atributo deben MANTENER
LA CONSISTENCIA entre los duplicados (evitar anomalías)
• Procedimientos almacenados, Disparadores (Triggers), Afirmaciones
• Redundancia controlada
▪ DESNORMALIZACIÓN EXTREMA
• Almacenar un FICHERO con la REUNIÓN de las tablas
• Resolver explícitamente las ANOMALÍAS DE ACTUALIZACIÓN
12. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 12
04/03/2022
Desnormalización real
▪ Esquema de base de datos no normalizado
o El análisis de requerimientos indica que siempre que se necesita el perfil
de un trabajador, se requiere el nombre del responsable de
donde esté alojado el trabajador.
EMPLEADO(nombre, edad, alojamiento, responsable)
OFICIO_EMPLEADO(nombre, oficio, calificacion)
OFICIO(oficio, descripcion)
ALOJAMIENTO(alojamiento, nombre-completo, direccion,
responsable)
▪ Este esquema...
o INSERCIÓN NO DIRECTA en la tabla EMPLEADO: al insertar un empleado el
nombre del responsable debe venir desde la tabla ALOJAMIENTO, según el valor
de “alojamiento” para el nuevo empleado
o MODIFICACIÓN del nombre de un responsable en la tabla ALOJAMIENTO, o
cambio de responsable para un alojamiento modificación de tuplas EMPLEADO
13. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 13
04/03/2022
Diseños desnormalizados
▪ Cuando un diseño normalizado no es natural, incómodo
o da como resultado un rendimiento inaceptable, se
prefiere un diseño desnormalizado
▪ Ejemplo
▪ Relación normalizada
▪ CUSTOMER (CustNumber, CustName, Zip)
▪ CODES (Zip, City, State)
▪ Relación desnormalizada
▪ CUSTOMER (CustNumber, CustName, City, State, Zip)
14. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 14
04/03/2022
Ejemplo
Técnica:
Agregar campos duplicados
Técnica:
Agregar campos calculados
15. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 15
04/03/2022
Ejemplo
Técnica:
Unir tablas
16. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 16
04/03/2022
Técnicas de desnormalización
menos comunes
▪ Duplicar un subconjunto de campos de tabla de uso
común
▪ Dividir algunas filas de la tabla en diferentes tablas
▪ Datos que se utilizan con frecuencia vs aquellos que se
utilizan raramente
▪ Datos para diferentes regiones
▪ Subclases comunes de datos
17. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 17
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
18. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 18
04/03/2022
Beneficios
▪ Se aumenta la redundancia de datos.
▪ Los siguientes beneficios dependerán de la técnica
aplicada:
▪ No es necesario realizar el cálculo durante una consulta
o informe.
▪ No es necesario buscar los valores de origen cada vez
que se requiere el valor derivado.
▪ Se pueden evitar las uniones (joins) que consumen
mucho tiempo.
▪ Etc, etc
19. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 19
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
20. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 20
04/03/2022
Pasos de la desnormalización
▪ Pasos:
▪ Comenzar con un modelo "normalizado“
▪ Agregar "redundancia" al diseño
▪ Reducir la "integridad" del diseño
▪ Agregar código de aplicación para compensar
(mantener consistencia de datos)
21. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 21
04/03/2022
Consejos para la desnormalización
▪ Cree siempre un modelo de datos conceptual que esté
completamente normalizado.
▪ Considere la desnormalización como la última opción para
mejorar el rendimiento.
▪ Nunca suponga que será necesaria la desnormalización.
▪ La desnormalización debe realizarse durante el diseño de la base
de datos.
▪ Una vez que se hayan cumplido los objetivos de desempeño,
no implemente más desnormalización.
▪ Documente completamente toda la desnormalización,
indicando lo que se hizo en las tablas y qué código de
aplicación se agregó para compensar la desnormalización.
22. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 22
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
23. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 23
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
24. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 24
04/03/2022
Almacenando valores derivables
▪ Cuando un cálculo se ejecuta con frecuencia durante las
consultas, puede ser útil almacenar los resultados del
cálculo.
▪ Si el cálculo incluye registros detallados, almacene el cálculo
derivado en la tabla maestra.
▪ Asegúrese de escribir el código de la aplicación para volver a
calcular el valor, cada vez que se ejecuta DML contra los
registros de detalles.
▪ En todas las situaciones de almacenamiento de valores
derivables, asegúrese de que los valores
desnormalizados no se puedan actualizar directamente.
▪ Los valores derivables siempre deben ser recalculados por
el sistema.
25. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 25
04/03/2022
Almacenando valores derivables
Agregar una columna para almacenar valores derivables en el
extremo "referenciado" de la clave externa.
Antes
Después
B
pk,fk
pk
*
*
*
A_id
Sequence_No
Quantity
A
pk *
*
Id
X
A
pk *
*
*
Id
X
Total_quantity
26. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 26
04/03/2022
Sistema E-mail como ejemplo de
almacenar valores derivables
Almacene la columna derivable en el extremo "referenciado" de la clave externa.
REC_MESSAGES (RME)
pk,fk
pk,fk
*
*
Usr_Id
Mse_Id
MESSAGES (MSE)
pk *
*
*
Id
Subject
Text
MESSAGES (MSE)
pk *
*
*
*
Id
Subject
Text
Number_of_times_received
USERS (USR)
pk *
*
Id
Per_name
Antes
Después
27. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 27
04/03/2022
▪ Apropiado:
▪ Cuando los valores de origen se encuentran en varios registros
o tablas
▪ Cuando se necesitan con frecuencia valores derivables y
cuando los valores fuente no son derivables
▪ Cuando los valores de origen se cambian con poca frecuencia
▪ Ventajas:
▪ No es necesario buscar los valores de origen cada vez que se
requiere el valor derivable
▪ No es necesario realizar el cálculo durante una consulta o
informe
▪ Desventajas:
▪ Cualquier DML contra los datos de origen requerirá un nuevo
cálculo o ajuste de los datos derivables
▪ La duplicación de datos introduce la posibilidad de
inconsistencias en los datos.
28. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 28
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
29. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 29
04/03/2022
Unión previa de tablas
▪ Puede preunir tablas al incluir una columna sin
clave en una tabla, cuando el valor real de la clave
principal y, en consecuencia, la clave externa, no
tiene significado comercial.
▪ Al incluir una columna que no sea clave y que tenga
un significado comercial, puede evitar unir tablas,
acelerando así consultas específicas.
▪ Debe incluir un código de aplicación que actualice la
columna desnormalizada, cada vez que el valor de
la columna "maestra" cambie en el registro
referenciado.
30. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 30
04/03/2022
Unión previa de tablas
A
pk *
*
Id
Col_a
B
pk
fk
*
*
Id
A_id
B
pk
fk
*
*
*
Id
A_id
A_col_a
Antes
Después
Agregue la columna que no es pk (non_key) a la tabla con la clave externa.
31. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 31
04/03/2022
Sistema E-mail como ejemplo de
unión previa de tablas
Cree una tabla con todas las columnas consultadas con frecuencia.
RECEIVED_MESSAGES (RME)
pk,fk
pk,fk
*
*
*
*
Mse_id
Flr_id
Date_received
Fdr_Name
FOLDERS (FDR)
pk *
*
Id
Name
RECEIVED_MESSAGES (RME)
pk,fk
pk,fk
*
*
*
Mse_id
Flr_id
Date_received
Antes
Después
32. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 32
04/03/2022
▪ Apropiado:
▪ Cuando se requieren consultas frecuentes en muchas
tablas
▪ Cuando se aceptan datos un poco obsoletos
▪ Ventajas:
▪ Se pueden evitar las uniones que consumen mucho
tiempo
▪ Las actualizaciones pueden posponerse cuando se
aceptan datos obsoletos
▪ Desventajas:
▪ Se necesita DML adicional para actualizar la columna
original no desnormalizada
▪ La columna adicional y los índices posiblemente más
grandes requieren más espacio de trabajo y espacio en
disco
33. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 33
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
34. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 34
04/03/2022
Valores codificados de forma
rígida (hard-coded values)
▪ Si una tabla de referencia contiene registros que permanecen
constantes, entonces puede considerar codificar esos valores
en el código de la aplicación.
▪ Esto significará que no necesitará unir tablas para recuperar la lista
de valores de referencia. Este es un tipo especial de
desnormalización, cuando los valores se mantienen fuera de una
tabla en la base de datos.
▪ En el ejemplo, debería considerar la posibilidad de crear una
restricción de verificación para la tabla B en la base de datos
que validará los valores frente a los valores de referencia
permitidos.
▪ Tenga en cuenta que una restricción de comprobación, aunque
reside en la base de datos, sigue siendo una forma de codificación.
Siempre que se necesite un nuevo valor de A, la restricción debe
reescribirse.
35. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 35
04/03/2022
Valores codificados de forma rígida
(hard-coded values)
Elimine la clave externa y codifique los valores permitidos y validación en la
aplicación.
A
pk *
*
Id
Type
B
pk
fk
*
*
Id
A_id
pk *
*
Id
A_Type
B
Antes
Después
36. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 36
04/03/2022
Sistema E-mail como ejemplo de
valores codificados de forma rígida
Codifique los valores permitidos y la validación en la aplicación.
BUSINESS_TYPES (BTE)
pk * Id
Name
USERS (USR)
pk
fk
*
*
*
Id
Bte_id
Per_name
USERS (USR)
pk *
*
*
Id
Business_type
Per_name
Antes
Después
37. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 37
04/03/2022
▪ Apropiado:
▪ Cuando el conjunto de valores permitidos puede
considerarse razonablemente estático durante el ciclo
de vida del sistema.
▪ Cuando el conjunto de valores posibles es pequeño,
digamos, menos de 30
▪ Ventajas:
▪ Evita implementar una tabla de búsqueda.
▪ Evita las uniones a una tabla de búsqueda.
▪ Desventajas:
▪ Cambiar los valores de búsqueda requiere volver a
codificar y volver a probar
38. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 38
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
39. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 39
04/03/2022
Manteniendo detalles en tabla
maestra
▪ En una situación en la que el número de registros de detalle
por maestro es un valor fijo (o tiene un máximo fijo) y donde
generalmente todos los registros de detalle se consultan con
el maestro, puede considerar agregar las columnas de
detalles a la tabla maestra.
▪ Esta desnormalización funciona mejor cuando el número de
registros de la tabla de detalles es pequeño. De esta forma,
reducirá el número de uniones durante las consultas.
▪ Un ejemplo es un sistema de planificación donde hay un
registro por persona por día. Esto podría reemplazarse por un
registro por persona por mes, la tabla que contiene una
columna para cada día del mes.
40. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 40
04/03/2022
Manteniendo detalles en tabla
maestra
Repita las columnas de detalles en la tabla maestra.
A
pk * Id
B
pk,fk
pk
*
*
*
A_id
Type
Amount
A
pk *
*
*
*
*
*
*
Id
Amount_1
Amount_2
Amount_3
Amount_4
Amount_5
Amount_6
Antes
Después
41. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 41
04/03/2022
Sistema E-mail como ejemplo de
mantener detalles en tabla maestra
Repita las columnas de detalles en la tabla maestra.
USERS (USR)
pk *
*
Id
Name
STORAGE_QUOTAS (SQA)
pk,fk
pk
*
*
*
*
Usr_Id
Storage_type
Allocated
Available
USERS (USR)
pk *
*
*
*
*
*
Id
Name
Message_Quota_Allocated
Message_Quota_Available
File_Quota_Allocated
File_Quota_Available
Antes
Después
42. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 42
04/03/2022
▪ Apropiado:
▪ Cuando el número de registros de detalle para todos
los maestros es fijo y estático.
▪ Cuando el número de registros de detalle multiplicado
por el número de columnas del detalle es pequeño,
digamos menos de 30.
▪ Ventajas:
▪ No se requieren uniones.
▪ Ahorra espacio, ya que las claves no se propagan.
43. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 43
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
44. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 44
04/03/2022
Repetición de detalle actual en
tabla maestra
▪ A menudo, cuando es necesario el almacenamiento
de datos históricos, muchas consultas solo
requieren el registro más actual.
▪ Puede agregar una nueva columna de clave externa
para almacenar este único detalle con su maestro.
▪ Asegúrese de agregar código para cambiar la columna
desnormalizada cada vez que se agrega un nuevo
registro a la tabla del historial.
▪ Se debe escribir código adicional para mantener el valor
de detalle único duplicado en el registro maestro.
45. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 45
04/03/2022
Repetición de detalle actual en
tabla maestra
Agregue una columna a la tabla maestra para almacenar los detalles más
actuales.
A
pk * Id
B
pk,fk
pk
*
*
*
A_Id
Start_date
Price
A
pk *
*
Id
Current_price
Antes
Después
46. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 46
04/03/2022
Sistema E-mail como ejemplo de repetición
de detalle actual en tabla maestra
Agregue una columna a la tabla maestra para almacenar los detalles más
actuales.
MESSAGES (MSE)
pk *
*
*
Id
Subject
Text
ATTACHMENTS (ATT)
pk
pk,fk
*
*
*
Id
Mse_id
Name
MESSAGES (MSE)
pk *
*
*
*
Id
First_attachment_name
Subject
Text
Antes
Viernes
47. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 47
04/03/2022
▪ Apropiado:
▪ Cuando los registros detallados por maestro tienen una
propiedad tal que un registro puede considerarse "actual"
y otros "históricos“
▪ Cuando las consultas necesitan con frecuencia este
detalle único específico y solo ocasionalmente necesitan
los otros detalles
▪ Cuando el maestro a menudo tiene un solo registro de
detalle
▪ Ventajas:
▪ No se requiere unión para consultas que solo necesitan un
detalle único en específico
▪ Desventajas:
▪ El valor del detalle debe repetirse, con la posibilidad de
inconsistencias en los datos.
48. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 48
04/03/2022
Técnicas de desnormalización
▪ Almacenando valores derivables
▪ Unión previa de tablas
▪ Valores codificados de forma rígida
▪ Manteniendo detalles en tabla maestra
▪ Repetición de detalle actual en tabla maestra
▪ Circuito corto entre claves
49. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 49
04/03/2022
Circuito corto entre claves
▪ Para diseños de base de datos que contienen tres
(o más) niveles de detalle, y es necesario consultar
únicamente los registros de nivel más bajo y más
alto, considere la posibilidad de crear claves de
circuito corto.
▪ Estas nuevas definiciones de claves foráneas
vinculan directamente los registros de detalle de
nivel más bajo con los registros de abuelos de nivel
superior.
▪ El resultado puede producir menos combinaciones
de tablas cuando se ejecutan las consultas.
50. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 50
04/03/2022
Circuito corto entre claves
Cree una nueva clave externa desde el detalle más bajo hasta la tabla maestra
superior.
B
pk
fk
*
*
Id
A_id
A
pk * Id
pk
fk
*
*
Id
B_id
C
A
pk * Id pk
fk
fk
*
*
*
Id
B_id
A_id
C
B
pk
fk
*
*
Id
A_id
Antes
Después
51. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 51
04/03/2022
Sistema E-mail como ejemplo de
circuito corto entre claves
Cree una nueva clave externa desde el detalle más bajo hasta la tabla maestra superior.
FOLDERS (FDR)
pk
fk
*
*
Name
Usr_id
RECEIVED_
MESSAGES (RME)
pk
fk
*
*
Id
Fdr_name
USERS (USR)
pk *
*
Id
Name
FOLDERS (FDR)
pk
fk
*
*
Name
Usr_id
RECEIVED_
MESSAGES (RME)
pk
fk
fk
*
*
*
Id
Fdr_name
Usr_name
USERS (USR)
pk
uk
*
*
Id
Name
Antes
Después
52. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 52
04/03/2022
▪ Apropiado:
▪ Cuando las consultas requieren con frecuencia
valores de un abuelo y un nieto, pero no del padre
▪ Ventajas:
▪ Las consultas unen menos tablas juntas
▪ Desventajas:
▪ Se requieren claves externas adicionales
▪ Se requiere código adicional para asegurarse de que
el valor de la columna desnormalizada A_id sea
consistente con el valor que encontraría después de
una combinación con la tabla B.
53. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 53
04/03/2022
Denormalization Techniques
▪ Storing Derivable Values
▪ End Date Column
▪ Current Indicator
▪ Hierarchy Level Indicator
▪ Pre-joining Tables
▪ Hard-Coded Values
▪ Keeping Details with Master
▪ Repeating Single Detail with Master
▪ Short-Circuit Keys
54. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 54
04/03/2022
End Date Column
Add an end date column to speed up queries so that they can use a between
operator.
B
pk,fk
pk
*
*
o
A_Id
Start_date
End_date
B
pk,fk
pk
*
*
A_id
Start_date
A
pk * Id
Before
After
55. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 55
04/03/2022
Example of End Date Column
Create an extra column derivable End_date column.
PRODUCTS (PDT)
pk *
*
Id
Name
PRICES (PCE)
pk,fk
pk
*
*
*
Pdt_id
Start_date
Price
PRICES (PCE)
pk,fk
pk
*
*
*
o
Pdt_id
Start_date
Price
End_date
Before
After
56. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 56
04/03/2022
Denormalization Techniques
▪ Storing Derivable Values
▪ End Date Column
▪ Current Indicator
▪ Hierarchy Level Indicator
▪ Pre-joining Tables
▪ Hard-Coded Values
▪ Keeping Details with Master
▪ Repeating Single Detail with Master
▪ Short-Circuit Keys
57. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 57
04/03/2022
Current Indicator Column
Add a column to represent the most current record in a
long list of records.
B
pk,fk
pk
*
*
o
A_Id
Start_date
Current_indicator
B
pk,fk
pk
*
*
A_id
Start_date
A
pk * Id
Before
After
58. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 58
04/03/2022
Example of Current Indicator
Column
PRODUCT (PDT)
pk *
*
Id
Name
PRICES (PCE)
pk,fk
pk
*
*
*
Pdt_id
Start_date
Price
PRICES (PCE)
pk,fk
pk
*
*
*
o
Pdt_id
Start_date
Price
Current_indicator
Add a column to represent the most current record, in a long
list of records.
Before
After
59. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 59
04/03/2022
Denormalization Techniques
▪ Storing Derivable Values
▪ End Date Column
▪ Current Indicator
▪ Hierarchy Level Indicator
▪ Pre-joining Tables
▪ Hard-Coded Values
▪ Keeping Details with Master
▪ Repeating Single Detail with Master
▪ Short-Circuit Keys
60. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 60
04/03/2022
Hierarchy Level Indicator
A
pk
fk
*
*
Id
A_id
A
Pk
fk
*
*
*
Id
A_id
Level_no
Create a column to represent the hierarchy level of a record.
Before
After
61. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 61
04/03/2022
Example of Hierarchy Level
Indicator
FOLDERS (FDR)
pk
fk
*
*
*
Id
Fdr_id
Name
FOLDERS (FDR)
Pk
fk
*
*
*
*
Id
Fdr_id
Name
Level_no
Create a column to represent the hierarchy level of a record.
Before
After
62. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 62
04/03/2022
Denormalization Summary
▪ Denormalization Techniques
▪ Storing Derivable Information
▪ End Date Column
▪ Current Indicator
▪ Hierarchy Level Indicator
▪ Pre-Joining Tables
▪ Hard-Coded Values
▪ Keeping Detail with Master
▪ Repeating Single Detail with Master
▪ Short-Circuit Keys
La desnormalización es un proceso estructurado y no
debe hacerse a la ligera. Cada paso de desnormalización
requerirá un código de aplicación adicional. Tenga la
seguridad de que desea introducir estos datos
redundantes.
63. Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 63
04/03/2022
Desnormalización
Unidad 7
Final de la unidad
Y del curso…. !Muchas gracias
a todos!