SlideShare una empresa de Scribd logo
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
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.
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.
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 4
04/03/2022
Relación de las formas normales
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.
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 6
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 7
04/03/2022
Desnormalización
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
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.
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
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
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
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)
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
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 15
04/03/2022
Ejemplo
Técnica:
Unir tablas
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
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 17
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
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
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 19
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
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)
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.
Bases de Datos Carrera de Software
Ph.D. Franklin Parrales 22
04/03/2022
Contenido
▪ Desnormalización
▪ Beneficios
▪ Pasos
▪ Técnicas de desnormalización
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
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.
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
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
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.
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
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.
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.
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
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
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
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.
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
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
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
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
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.
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
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
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.
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
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.
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
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
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.
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
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.
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
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
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.
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
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
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
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
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
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
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
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
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
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.
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!

Más contenido relacionado

La actualidad más candente

Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
Ronald Rivas
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
josecuartas
 

La actualidad más candente (20)

Funciones y procedimientos en SQL
Funciones y procedimientos en SQLFunciones y procedimientos en SQL
Funciones y procedimientos en SQL
 
HISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOSHISTORIA DE LAS BASES DE DATOS
HISTORIA DE LAS BASES DE DATOS
 
ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)ED Unidad 4: Estructuras de datos no lineales (árboles)
ED Unidad 4: Estructuras de datos no lineales (árboles)
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Desnormalización de Base de Datos
Desnormalización de Base de DatosDesnormalización de Base de Datos
Desnormalización de Base de Datos
 
Constructores en Java
Constructores en JavaConstructores en Java
Constructores en Java
 
Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos1.3 uso de tipos de datos abstractos
1.3 uso de tipos de datos abstractos
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Programación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivosProgramación Orientada a Objetos -Unidad 6 archivos
Programación Orientada a Objetos -Unidad 6 archivos
 
modelo entidad-relacion
modelo entidad-relacionmodelo entidad-relacion
modelo entidad-relacion
 
POO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivosPOO Unidad 4: Persistencia de objetos y manejo de archivos
POO Unidad 4: Persistencia de objetos y manejo de archivos
 
DB1 Unidad 8: Replicación
DB1 Unidad 8: ReplicaciónDB1 Unidad 8: Replicación
DB1 Unidad 8: Replicación
 
Integridad de base de datos
Integridad de base de datosIntegridad de base de datos
Integridad de base de datos
 
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓNINTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
INTERACCIÓN ENTRE CLASES, GENERALIZACIÓN
 

Similar a DB1 Unidad 7: Desnormalizacion

Check list para el diseño de bd
Check list para el diseño de bdCheck list para el diseño de bd
Check list para el diseño de bd
Carlos Arturo
 
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
SpanishPASSVC
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
Young Hyun
 
Presentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosPresentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datos
BryanSotalin1
 
Abf leccion 01
Abf leccion 01Abf leccion 01
Abf leccion 01
victdiazm
 

Similar a DB1 Unidad 7: Desnormalizacion (20)

DB1 Unidad 3: Diseño físico relacional
DB1 Unidad 3: Diseño físico relacionalDB1 Unidad 3: Diseño físico relacional
DB1 Unidad 3: Diseño físico relacional
 
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetosED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
ED Unidad 1: Introducción a las estructuras de datos (TDA) con objetos
 
Trtabajo informatica
Trtabajo informaticaTrtabajo informatica
Trtabajo informatica
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
Diseño de una base de datos
Diseño de una base de datosDiseño de una base de datos
Diseño de una base de datos
 
Check list para el diseño de bd
Check list para el diseño de bdCheck list para el diseño de bd
Check list para el diseño de bd
 
4º Webinar - 3ª Ed. EXIN en Castellano: Profesionalización de los Data Center...
4º Webinar - 3ª Ed. EXIN en Castellano: Profesionalización de los Data Center...4º Webinar - 3ª Ed. EXIN en Castellano: Profesionalización de los Data Center...
4º Webinar - 3ª Ed. EXIN en Castellano: Profesionalización de los Data Center...
 
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
24 HOP edición Español - Ssas multidimensional mejores practicas - Ahias Port...
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
 
diseño de base de datos
diseño de base de datosdiseño de base de datos
diseño de base de datos
 
U3 foro semana 14
U3 foro   semana 14U3 foro   semana 14
U3 foro semana 14
 
Diapositiva d
Diapositiva dDiapositiva d
Diapositiva d
 
Diapositiva 1
Diapositiva 1Diapositiva 1
Diapositiva 1
 
archivodiapositiva_202291923918.pdf
archivodiapositiva_202291923918.pdfarchivodiapositiva_202291923918.pdf
archivodiapositiva_202291923918.pdf
 
Presentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosPresentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datos
 
Abf leccion 01
Abf leccion 01Abf leccion 01
Abf leccion 01
 
Base datos f08
Base datos f08Base datos f08
Base datos f08
 
Normas
Normas Normas
Normas
 
Diapositiva 1
Diapositiva 1Diapositiva 1
Diapositiva 1
 
ilovepdf_merged (10).pdf
ilovepdf_merged (10).pdfilovepdf_merged (10).pdf
ilovepdf_merged (10).pdf
 

Más de Franklin Parrales Bravo

Más de Franklin Parrales Bravo (20)

Presentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en CuencaPresentacion del congreso ETCM del 2021 en Cuenca
Presentacion del congreso ETCM del 2021 en Cuenca
 
IW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería WebIW Unidad 1: Introducción a la Ingeniería Web
IW Unidad 1: Introducción a la Ingeniería Web
 
IW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicuaIW Unidad 4: Web accesible, semántica y ubicua
IW Unidad 4: Web accesible, semántica y ubicua
 
IW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelosIW Unidad 3: Ingeniería Web dirigida por modelos
IW Unidad 3: Ingeniería Web dirigida por modelos
 
MOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modeladoMOD Unidad 2: Tipos de modelado
MOD Unidad 2: Tipos de modelado
 
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería WebIW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
IW Unidad 2: Metodologías y Técnicas de la Ingeniería Web
 
AD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuidaAD Unidad4: Programación paralela y distribuida
AD Unidad4: Programación paralela y distribuida
 
AD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidasAD Unidad3: Tecnologías de aplicaciones distribuidas
AD Unidad3: Tecnologías de aplicaciones distribuidas
 
EP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgosEP Unidad03: Planificación financiera y análisis de riesgos
EP Unidad03: Planificación financiera y análisis de riesgos
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidosAD Unidad1: Fundamentos de sistemas paralelos y distribuidos
AD Unidad1: Fundamentos de sistemas paralelos y distribuidos
 
EP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectosEP Unidad01: Principios básicos de la metodología de proyectos
EP Unidad01: Principios básicos de la metodología de proyectos
 
EP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestraEP Unidad02: Conceptos para el alcance, tiempo y muestra
EP Unidad02: Conceptos para el alcance, tiempo y muestra
 
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del SoftwareGCSW Unidad1: Objetos de la Gestión de Configuración del Software
GCSW Unidad1: Objetos de la Gestión de Configuración del Software
 
GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software GCSW Unidad2: Actividades de la gestión de configuración del software
GCSW Unidad2: Actividades de la gestión de configuración del software
 
POO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilosPOO Unidad 3: Interfaz gráfica de usuario e hilos
POO Unidad 3: Interfaz gráfica de usuario e hilos
 
POO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a ObjetosPOO Unidad 2: Programación Orientada a Objetos
POO Unidad 2: Programación Orientada a Objetos
 
POO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a ObjetosPOO Unidad 1: Introducción a la Programación Orientada a Objetos
POO Unidad 1: Introducción a la Programación Orientada a Objetos
 
RD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y EnrutamientoRD Unidad 3: IPv6, Routers y Enrutamiento
RD Unidad 3: IPv6, Routers y Enrutamiento
 
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
RD Unidad 2: Transmisión de datos. El mundo del TCP/IP y direccionamiento iPv4
 

Último

Último (10)

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdfDocumento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
Documento colaborativo. Solución del caso GA1-240201526-AA6-EV01.pdf
 
Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)Virus informático (tipos y opciones para prevenir)
Virus informático (tipos y opciones para prevenir)
 
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.MODULO BASICO DE WORD - I CICLO.DOC.DOC.
MODULO BASICO DE WORD - I CICLO.DOC.DOC.
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
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!