SlideShare uma empresa Scribd logo
1 de 19
Capítulo 1 Desnormalización (Parte 2)
Tablas Pre-joined Si dos o más tablas necesitan unirse de forma regular por una aplicación, pero el costo del join es prohibitivo, considere la creación de tablas pre-joined. Estas deberían: no contener columnas redundantes  contener sólo las columnas que sean absolutamente necesarias para la aplicación para cumplir con sus necesidades de procesamiento ser creadas periódicamente usando SQL para unir las tablas normalizadas  El costo del join se va a efectuar una sola vez cuando las tablas pre-joined sean creadas. Una tabla pre-joined se puede consultar de manera muy eficiente porque cada nueva consulta no incurre en la sobrecarga del proceso de join de la tabla.
Tablas de Reportes Muchas veces es imposible desarrollar un informe para el usuario final utilizando solo SQL.  Si algunos informes críticos deben ser vistos en un entorno en línea, considere la creación de una tabla que represente el informe.  La tabla de informe debería: Contener una columna para cada columna del informe Tener un índice de agrupamiento en las columnas que proporcionan la secuencia de presentación de informes no subvertir principios relacionales (por ejemplo, 1FN y los elementos atómicos de datos) Este tipo de informes requieren un formato especial o manipulación de datos.  Los reportes de tablas son ideales para llevar a los resultados de los outerjoins u otras sentencias SQL complejas. Si un outerjoin se ejecuta y se carga a continuación en una tabla, una instrucción SELECT simple puede ser utilizada para recuperar los resultados del outerjoin.
MirrorTables Si un sistema de aplicación es muy activo, puede ser necesario dividir el procesamiento en dos (o más) componentes distintos.  Esto requiere la creación de duplicados, o tablas espejo.  Diferentes decisiones de definición de datos tales como indexación y clustering pueden ser usadas para las tablas de espejo. Considere un sistema de aplicación que tiene el tráfico en línea muy pesado durante la mañana y primeras horas de la tarde. Este tráfico se compone tanto de consulta y actualización de datos. Procesamiento de soporte de decisiones también se realiza en las tablas de la misma aplicación durante la tarde. El trabajo de producción de la tarde siempre parece alterar el procesamiento de apoyo a las decisiones que causando time outs y deadlocks.
Repetición de Grupos Considere una aplicación que almacena información de grupos de repetición en la siguiente tabla normalizada: 	CREATE TABLE SALDOS_PERIODICOS 			(ID_CLIENTE		CHAR(11), 			PERIODO_SALDO		INT, 			SALDO			DECIMAL(15,2), 		PRIMARY KEY(ID_CLIENTE, PERIODO_SALDO) ) En esta tabla se puede almacenar un número infinito de los saldos por cliente, sólo limitada por el almacenamiento disponible y los límites de almacenamiento de los RDBMS.
CREATE TABLE SALDOS_PERIODICOS 			(ID_CLIENTE		CHAR(11), 			SALDO_PERIODO1	DECIMAL(15,2), 			SALDO_PERIODO2	DECIMAL(15,2), 			SALDO_PERIODO3	DECIMAL(15,2), 			SALDO_PERIODO4	DECIMAL(15,2), 			SALDO_PERIODO5	DECIMAL(15,2), 			SALDO_PERIODO6	DECIMAL(15,2), 		PRIMARY KEY(ID_CLIENTE) ) Un ejemplo de esto después de desnormalización se muestra. En este ejemplo, sólo seis saldos pueden ser almacenadas por cualquier cliente. El número seis no es importante, pero el concepto de que el número de valores es limitado es importante. Esto reduce la flexibilidad del almacenamiento de datos y debe evitarse a menos que las necesidades de rendimiento disponga lo contrario.
Antes de decidir la implementación de grupos de repetición como columnas en lugar de filas, hay que estar seguros de que se cumplan los siguientes requisitos: los datos son rara vez o nunca agregados, promediados, o comparados dentro de la fila los datos se producen en un patrón estadísticamente de buen comportamiento  los datos tienen un número estable de apariciones los datos suelen ser accesados en conjunto los datos tienen un patrón predecible de inserción y eliminación Si cualquiera de estos criterios no se cumplen, SQL SELECT puede ser difícil de codificar. Esto debe ser evitado porque, en general, los datos sin normalizar es sólo para hacerlos disponibles más fácilmente.
Datos Derivados Si el costo de obtener datos mediante fórmulas complicadas es prohibitivo considere el almacenamiento de los datos obtenidos en una columna en lugar de calcularlo.  Sin embargo, cuando los valores subyacentes que componen el valor calculado cambian, es imperativo que los datos almacenados derivados también cambien para no reportar información inconsistente. Esto repercutirá negativamente en la eficacia y la fiabilidad de la base de datos. A veces no es posible actualizar de inmediato los elementos derivados de datos cuando las columnas de los que dependen cambian.  Esto puede ocurrir cuando las tablas que contienen los elementos derivados están fuera de línea. En esta situación, el tiempo de la actualización de los datos derivados debe producirse inmediatamente cuando la tabla está disponible para su actualización.
Select 	titulo, sum(avance) FromtituloAutorta, titulos t Whereta.idTitulo=t.idTitulo GroupbyidTitulo tituloAutor titulos join Select 	titulo, sum_adv Fromtitulos tituloAutor titulos
Puede crear y mantener una columna de datos derivados en la tabla de títulos, eliminando la unión y el sum en tiempo de ejecución. Esto aumenta las necesidades de almacenamiento, y requiere un mantenimiento de la columna derivada cuando se realizan cambios en la tabla de títulos.
Jerarquías Una jerarquía es una estructura que es fácil de soportar usando una base de datos relacionales, pero es difícil recuperar información de manera eficiente.  Las aplicaciones que se basan en jerarquías muy a menudo presentan tablas desnormalizadas para hacer veloz la recuperación de datos.
Jerarquías de Departamentos Tabla Departamento La tabla que se muestra es la aplicación clásica relacional de una jerarquía. Hay dos columnas departamento, una del padre y otra para el hijo.
A pesar de que la implementación registra efectivamente toda la jerarquía, la creación de una consulta para reportar todos los departamentos a cargo de cualquier otro departamento puede tomar mucho tiempo para codificar e ineficiente para procesar.
	SELECT	NODEPT 	FROM 	DEPARTAMENTO 	WHERE	NODEPTPADRE=‘123456’ 	UNION 	SELECT	NODEPT 	FROM 	DEPARTAMENTO 	WHERE	NODEPTPADRE IN 			(SELECT	NODEPT 			FROM 	DEPARTAMENTO 			WHERE	NODEPTPADRE=‘123456’) 	UNION 	SELECT	NODEPT 	FROM 	DEPARTAMENTO 	WHERE	NODEPTPADRE IN 			(SELECT	NODEPT 			FROM 	DEPARTAMENTO 			WHERE	NODEPTPADRE IN 			(SELECT	NODEPT 			FROM 	DEPARTAMENTO 			WHERE	NODEPTPADRE=‘123456’)) Ejemplo de consulta que devolverá todos los departamentos que informe al nodo empresarial 123456. Sin embargo, esta consulta sólo se puede construir si usted sabe de antemano el número total de posibles niveles que la jerarquía puede lograr. Si hay n niveles en la jerarquía, entonces necesitará n-1 UNIONs.
Una tabla de "velocidad” puede ser construida.  Esta tabla muestra el departamento de los padres y todos los departamentos debajo del mismo, independientemente del nivel.  Contraste esto con la tabla anterior, que sólo se registra los hijos inmediatos para cada padre.  La "velocidad" tabla también comúnmente contiene otra información pertinente que se necesita por el uso dado. La información típica incluye el nivel dentro de la jerarquía para el nodo dado, si el nodo dado de la jerarquía es un nodo de detalle (en la parte inferior del árbol), y, en caso de pedido corresponde a su nivel es importante, la secuencia de los nodos en el nivel determinado.
NODEPTPADRE          NODEPTHIJO            NIVEL                          DETALLE
Luego que la speedtable se ha implementado, consultas rápidas se pueden escribir en contra de esta aplicación de una jerarquía.  La tabla de "velocidad" ​​suele ser construida con un programa escrito en otro lenguaje de alto nivel. SQL solo es por lo general demasiado ineficiente o poco práctico para la creación de una porque el número de niveles en la jerarquía es desconocido o cambiando constantemente.
Se muestran diferentes consultas informativas que pueden ser muy ineficaces a ejecutar en la jerarquía relacional clásica.  	SELECT 	NODEPTHIJO 	FROM	DEPARTAMENTO 	WHERE	NODEPTPADRE=‘123456’; 	SELECT 	NODEPTHIJO 	FROM	DEPARTAMENTO 	WHERE	NODEPTPADRE=‘123456’ 	AND 	DETALLE=‘Y’; 	SELECT 	NODEPTPADRE, NODEPTHIJO, NIVEL 	FROM	DEPARTAMENTO 	WHERE	NODEPTPADRE=‘123456’; 	ORDER BY	NIVEL;
Resumen Tablas Pre-Joined -> usadas cuando el costo del join es muy alto Tablas de Reportes -> Usadas cuando reportes críticos especializados son necesarios Tablas Espejo -> Usadas cuando son requeridas tablas concurrentemente por dos tipos diferentes de ambientes Tablas Divididas -> Usadas cuando grupos distintos usan diferentes partes de una tabla Tablas Combinadas -> Usadas cuando existen relaciones de uno a uno Datos Redundantes -> Usadas para reducir el numero de joins de tablas requeridos Grupos Repetidos -> Usadas para reducir I/O y posiblemente DASD Datos Derivados _> Usadas para eliminar cálculos y algoritmos Tablas de “Velocidad” -> Usadas para soportar jerarquías

Mais conteúdo relacionado

Mais procurados

Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
Luis Jherry
 
Planificacion y modelado para una ferreteria
Planificacion y modelado para una ferreteriaPlanificacion y modelado para una ferreteria
Planificacion y modelado para una ferreteria
Erick Domínguez Canseco
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
omarzon
 
Control de flujo por hardware o software,
Control de flujo  por hardware o software,Control de flujo  por hardware o software,
Control de flujo por hardware o software,
Victor Mijangos
 

Mais procurados (20)

Métodos de ordenación externa
Métodos de ordenación externaMétodos de ordenación externa
Métodos de ordenación externa
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Procesos de negocio
Procesos de negocioProcesos de negocio
Procesos de negocio
 
Arquitecturas de Bases de Datos Distribuidas
Arquitecturas de Bases de Datos DistribuidasArquitecturas de Bases de Datos Distribuidas
Arquitecturas de Bases de Datos Distribuidas
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Planificacion y modelado para una ferreteria
Planificacion y modelado para una ferreteriaPlanificacion y modelado para una ferreteria
Planificacion y modelado para una ferreteria
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Bases De Datos Paralelas
Bases De Datos ParalelasBases De Datos Paralelas
Bases De Datos Paralelas
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Conceptos básicos de base de datos
Conceptos básicos de base de datosConceptos básicos de base de datos
Conceptos básicos de base de datos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Memoria 3
Memoria 3Memoria 3
Memoria 3
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Control de flujo por hardware o software,
Control de flujo  por hardware o software,Control de flujo  por hardware o software,
Control de flujo por hardware o software,
 
Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De Consultas
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Guia normalización
Guia normalizaciónGuia normalización
Guia normalización
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 

Destaque

Ca Erwin Data Modeling - Presentado por SAM sistemas
Ca Erwin Data Modeling - Presentado por SAM sistemasCa Erwin Data Modeling - Presentado por SAM sistemas
Ca Erwin Data Modeling - Presentado por SAM sistemas
CA RMDM Latam
 
Monitorización y optimización del sistema final
Monitorización y optimización del sistema finalMonitorización y optimización del sistema final
Monitorización y optimización del sistema final
paalvarador85
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
cintiap25
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
Luis Jherry
 
Formas normales
Formas normalesFormas normales
Formas normales
didachos1
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
josecuartas
 
Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)
claudiachiri
 

Destaque (18)

Desnormalizacion
DesnormalizacionDesnormalizacion
Desnormalizacion
 
Ca Erwin Data Modeling - Presentado por SAM sistemas
Ca Erwin Data Modeling - Presentado por SAM sistemasCa Erwin Data Modeling - Presentado por SAM sistemas
Ca Erwin Data Modeling - Presentado por SAM sistemas
 
DISEÑO FISICO DE BASE DATOS
DISEÑO FISICO DE BASE DATOSDISEÑO FISICO DE BASE DATOS
DISEÑO FISICO DE BASE DATOS
 
Monitorización y optimización del sistema final
Monitorización y optimización del sistema finalMonitorización y optimización del sistema final
Monitorización y optimización del sistema final
 
Cuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normalCuarta forma normal y quinta forma normal
Cuarta forma normal y quinta forma normal
 
Tercera forma normal
Tercera forma normalTercera forma normal
Tercera forma normal
 
Modelador de base de datos ERwin
Modelador de base de datos ERwinModelador de base de datos ERwin
Modelador de base de datos ERwin
 
Manual de Erwin
Manual de ErwinManual de Erwin
Manual de Erwin
 
Diagrama entidad-relacion normalización
Diagrama entidad-relacion normalizaciónDiagrama entidad-relacion normalización
Diagrama entidad-relacion normalización
 
MÉTODO PARA LA EXTRACCIÓN DE REGLAS DE NEGOCIO APLICADOS A CASOS DE USO EN PR...
MÉTODO PARA LA EXTRACCIÓN DE REGLAS DE NEGOCIO APLICADOS A CASOS DE USO EN PR...MÉTODO PARA LA EXTRACCIÓN DE REGLAS DE NEGOCIO APLICADOS A CASOS DE USO EN PR...
MÉTODO PARA LA EXTRACCIÓN DE REGLAS DE NEGOCIO APLICADOS A CASOS DE USO EN PR...
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
 
Ejercicios normalización
Ejercicios normalizaciónEjercicios normalización
Ejercicios normalización
 
Reglas Negocio
Reglas NegocioReglas Negocio
Reglas Negocio
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Formas normales
Formas normalesFormas normales
Formas normales
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 
Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)Base de datos (diseño conceptual,logico y fisico)
Base de datos (diseño conceptual,logico y fisico)
 

Semelhante a Desnormalizacion bases datos 2

Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
UTN
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
josecuartas
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
JOSE AHIAS LOPEZ PORTILLO
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
Young Hyun
 

Semelhante a Desnormalizacion bases datos 2 (20)

Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Sql dinamico14042011
Sql dinamico14042011Sql dinamico14042011
Sql dinamico14042011
 
SQL avanzado
SQL avanzadoSQL avanzado
SQL avanzado
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Data werehousing
Data werehousingData werehousing
Data werehousing
 
ADO.NET
ADO.NETADO.NET
ADO.NET
 
Data warehouse
Data warehouseData warehouse
Data warehouse
 
Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014Técnicas avanzadas de consultas con sql server 2014
Técnicas avanzadas de consultas con sql server 2014
 
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
 
Taller2
Taller2Taller2
Taller2
 
Ventajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molapVentajas y desventajas de los sistemas rolap y molap
Ventajas y desventajas de los sistemas rolap y molap
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
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
 
Data Warehouse en las empresas y negocios.pdf
Data Warehouse en las empresas y negocios.pdfData Warehouse en las empresas y negocios.pdf
Data Warehouse en las empresas y negocios.pdf
 
Lenguaje Transact sql
Lenguaje Transact sqlLenguaje Transact sql
Lenguaje Transact sql
 
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
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
 
Expo
ExpoExpo
Expo
 
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
 

Mais de Velmuz Buzz

Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura Organizacional
Velmuz Buzz
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema experto
Velmuz Buzz
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistores
Velmuz Buzz
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadores
Velmuz Buzz
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacion
Velmuz Buzz
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo h
Velmuz Buzz
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repaso
Velmuz Buzz
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferencia
Velmuz Buzz
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejercicios
Velmuz Buzz
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodos
Velmuz Buzz
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
Velmuz Buzz
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolares
Velmuz Buzz
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
Velmuz Buzz
 

Mais de Velmuz Buzz (20)

Ecuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er OrdenEcuaciones Diferenciales de 1er Orden
Ecuaciones Diferenciales de 1er Orden
 
Ruby
Ruby Ruby
Ruby
 
Lenguajes de Programacion
Lenguajes de ProgramacionLenguajes de Programacion
Lenguajes de Programacion
 
Capa de Aplicacion
Capa de AplicacionCapa de Aplicacion
Capa de Aplicacion
 
Capa de Transporte
Capa de TransporteCapa de Transporte
Capa de Transporte
 
Capa Red
Capa RedCapa Red
Capa Red
 
Capa Enlace
Capa Enlace Capa Enlace
Capa Enlace
 
Estructura Organizacional
Estructura OrganizacionalEstructura Organizacional
Estructura Organizacional
 
Inteligencia artificial sistema experto
Inteligencia artificial sistema expertoInteligencia artificial sistema experto
Inteligencia artificial sistema experto
 
Electronica transistores
Electronica transistoresElectronica transistores
Electronica transistores
 
Electronica rectificadores
Electronica rectificadoresElectronica rectificadores
Electronica rectificadores
 
Electronica polarizacion
Electronica polarizacionElectronica polarizacion
Electronica polarizacion
 
Electronica polarizacion tipo h
Electronica polarizacion tipo hElectronica polarizacion tipo h
Electronica polarizacion tipo h
 
Electronica introduccion y repaso
Electronica introduccion y repasoElectronica introduccion y repaso
Electronica introduccion y repaso
 
Electronica funcion de transferencia
Electronica funcion de transferenciaElectronica funcion de transferencia
Electronica funcion de transferencia
 
Electronica ejercicios
Electronica ejerciciosElectronica ejercicios
Electronica ejercicios
 
Electronica aplicaciones de diodos
Electronica aplicaciones de diodosElectronica aplicaciones de diodos
Electronica aplicaciones de diodos
 
Electronica polarizacion del fet
Electronica  polarizacion del fetElectronica  polarizacion del fet
Electronica polarizacion del fet
 
Electronica modelaje de transitores bipolares
Electronica  modelaje de transitores bipolaresElectronica  modelaje de transitores bipolares
Electronica modelaje de transitores bipolares
 
Electronica analisis a pequeña señal fet
Electronica  analisis a pequeña señal fetElectronica  analisis a pequeña señal fet
Electronica analisis a pequeña señal fet
 

Desnormalizacion bases datos 2

  • 2. Tablas Pre-joined Si dos o más tablas necesitan unirse de forma regular por una aplicación, pero el costo del join es prohibitivo, considere la creación de tablas pre-joined. Estas deberían: no contener columnas redundantes contener sólo las columnas que sean absolutamente necesarias para la aplicación para cumplir con sus necesidades de procesamiento ser creadas periódicamente usando SQL para unir las tablas normalizadas El costo del join se va a efectuar una sola vez cuando las tablas pre-joined sean creadas. Una tabla pre-joined se puede consultar de manera muy eficiente porque cada nueva consulta no incurre en la sobrecarga del proceso de join de la tabla.
  • 3. Tablas de Reportes Muchas veces es imposible desarrollar un informe para el usuario final utilizando solo SQL. Si algunos informes críticos deben ser vistos en un entorno en línea, considere la creación de una tabla que represente el informe. La tabla de informe debería: Contener una columna para cada columna del informe Tener un índice de agrupamiento en las columnas que proporcionan la secuencia de presentación de informes no subvertir principios relacionales (por ejemplo, 1FN y los elementos atómicos de datos) Este tipo de informes requieren un formato especial o manipulación de datos. Los reportes de tablas son ideales para llevar a los resultados de los outerjoins u otras sentencias SQL complejas. Si un outerjoin se ejecuta y se carga a continuación en una tabla, una instrucción SELECT simple puede ser utilizada para recuperar los resultados del outerjoin.
  • 4. MirrorTables Si un sistema de aplicación es muy activo, puede ser necesario dividir el procesamiento en dos (o más) componentes distintos. Esto requiere la creación de duplicados, o tablas espejo. Diferentes decisiones de definición de datos tales como indexación y clustering pueden ser usadas para las tablas de espejo. Considere un sistema de aplicación que tiene el tráfico en línea muy pesado durante la mañana y primeras horas de la tarde. Este tráfico se compone tanto de consulta y actualización de datos. Procesamiento de soporte de decisiones también se realiza en las tablas de la misma aplicación durante la tarde. El trabajo de producción de la tarde siempre parece alterar el procesamiento de apoyo a las decisiones que causando time outs y deadlocks.
  • 5. Repetición de Grupos Considere una aplicación que almacena información de grupos de repetición en la siguiente tabla normalizada: CREATE TABLE SALDOS_PERIODICOS (ID_CLIENTE CHAR(11), PERIODO_SALDO INT, SALDO DECIMAL(15,2), PRIMARY KEY(ID_CLIENTE, PERIODO_SALDO) ) En esta tabla se puede almacenar un número infinito de los saldos por cliente, sólo limitada por el almacenamiento disponible y los límites de almacenamiento de los RDBMS.
  • 6. CREATE TABLE SALDOS_PERIODICOS (ID_CLIENTE CHAR(11), SALDO_PERIODO1 DECIMAL(15,2), SALDO_PERIODO2 DECIMAL(15,2), SALDO_PERIODO3 DECIMAL(15,2), SALDO_PERIODO4 DECIMAL(15,2), SALDO_PERIODO5 DECIMAL(15,2), SALDO_PERIODO6 DECIMAL(15,2), PRIMARY KEY(ID_CLIENTE) ) Un ejemplo de esto después de desnormalización se muestra. En este ejemplo, sólo seis saldos pueden ser almacenadas por cualquier cliente. El número seis no es importante, pero el concepto de que el número de valores es limitado es importante. Esto reduce la flexibilidad del almacenamiento de datos y debe evitarse a menos que las necesidades de rendimiento disponga lo contrario.
  • 7. Antes de decidir la implementación de grupos de repetición como columnas en lugar de filas, hay que estar seguros de que se cumplan los siguientes requisitos: los datos son rara vez o nunca agregados, promediados, o comparados dentro de la fila los datos se producen en un patrón estadísticamente de buen comportamiento los datos tienen un número estable de apariciones los datos suelen ser accesados en conjunto los datos tienen un patrón predecible de inserción y eliminación Si cualquiera de estos criterios no se cumplen, SQL SELECT puede ser difícil de codificar. Esto debe ser evitado porque, en general, los datos sin normalizar es sólo para hacerlos disponibles más fácilmente.
  • 8. Datos Derivados Si el costo de obtener datos mediante fórmulas complicadas es prohibitivo considere el almacenamiento de los datos obtenidos en una columna en lugar de calcularlo. Sin embargo, cuando los valores subyacentes que componen el valor calculado cambian, es imperativo que los datos almacenados derivados también cambien para no reportar información inconsistente. Esto repercutirá negativamente en la eficacia y la fiabilidad de la base de datos. A veces no es posible actualizar de inmediato los elementos derivados de datos cuando las columnas de los que dependen cambian. Esto puede ocurrir cuando las tablas que contienen los elementos derivados están fuera de línea. En esta situación, el tiempo de la actualización de los datos derivados debe producirse inmediatamente cuando la tabla está disponible para su actualización.
  • 9. Select titulo, sum(avance) FromtituloAutorta, titulos t Whereta.idTitulo=t.idTitulo GroupbyidTitulo tituloAutor titulos join Select titulo, sum_adv Fromtitulos tituloAutor titulos
  • 10. Puede crear y mantener una columna de datos derivados en la tabla de títulos, eliminando la unión y el sum en tiempo de ejecución. Esto aumenta las necesidades de almacenamiento, y requiere un mantenimiento de la columna derivada cuando se realizan cambios en la tabla de títulos.
  • 11. Jerarquías Una jerarquía es una estructura que es fácil de soportar usando una base de datos relacionales, pero es difícil recuperar información de manera eficiente. Las aplicaciones que se basan en jerarquías muy a menudo presentan tablas desnormalizadas para hacer veloz la recuperación de datos.
  • 12. Jerarquías de Departamentos Tabla Departamento La tabla que se muestra es la aplicación clásica relacional de una jerarquía. Hay dos columnas departamento, una del padre y otra para el hijo.
  • 13. A pesar de que la implementación registra efectivamente toda la jerarquía, la creación de una consulta para reportar todos los departamentos a cargo de cualquier otro departamento puede tomar mucho tiempo para codificar e ineficiente para procesar.
  • 14. SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’ UNION SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE IN (SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’) UNION SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE IN (SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE IN (SELECT NODEPT FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’)) Ejemplo de consulta que devolverá todos los departamentos que informe al nodo empresarial 123456. Sin embargo, esta consulta sólo se puede construir si usted sabe de antemano el número total de posibles niveles que la jerarquía puede lograr. Si hay n niveles en la jerarquía, entonces necesitará n-1 UNIONs.
  • 15. Una tabla de "velocidad” puede ser construida. Esta tabla muestra el departamento de los padres y todos los departamentos debajo del mismo, independientemente del nivel. Contraste esto con la tabla anterior, que sólo se registra los hijos inmediatos para cada padre. La "velocidad" tabla también comúnmente contiene otra información pertinente que se necesita por el uso dado. La información típica incluye el nivel dentro de la jerarquía para el nodo dado, si el nodo dado de la jerarquía es un nodo de detalle (en la parte inferior del árbol), y, en caso de pedido corresponde a su nivel es importante, la secuencia de los nodos en el nivel determinado.
  • 16. NODEPTPADRE NODEPTHIJO NIVEL DETALLE
  • 17. Luego que la speedtable se ha implementado, consultas rápidas se pueden escribir en contra de esta aplicación de una jerarquía. La tabla de "velocidad" ​​suele ser construida con un programa escrito en otro lenguaje de alto nivel. SQL solo es por lo general demasiado ineficiente o poco práctico para la creación de una porque el número de niveles en la jerarquía es desconocido o cambiando constantemente.
  • 18. Se muestran diferentes consultas informativas que pueden ser muy ineficaces a ejecutar en la jerarquía relacional clásica. SELECT NODEPTHIJO FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’; SELECT NODEPTHIJO FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’ AND DETALLE=‘Y’; SELECT NODEPTPADRE, NODEPTHIJO, NIVEL FROM DEPARTAMENTO WHERE NODEPTPADRE=‘123456’; ORDER BY NIVEL;
  • 19. Resumen Tablas Pre-Joined -> usadas cuando el costo del join es muy alto Tablas de Reportes -> Usadas cuando reportes críticos especializados son necesarios Tablas Espejo -> Usadas cuando son requeridas tablas concurrentemente por dos tipos diferentes de ambientes Tablas Divididas -> Usadas cuando grupos distintos usan diferentes partes de una tabla Tablas Combinadas -> Usadas cuando existen relaciones de uno a uno Datos Redundantes -> Usadas para reducir el numero de joins de tablas requeridos Grupos Repetidos -> Usadas para reducir I/O y posiblemente DASD Datos Derivados _> Usadas para eliminar cálculos y algoritmos Tablas de “Velocidad” -> Usadas para soportar jerarquías