Professional Documents
Culture Documents
Diseo Fisico
D.Fsico - 1
DISEO FSICO
Especificacin de estructuras de almacenamiento internas y caminos
de acceso especficos para que las diversas aplicaciones que accedan
a la BD tengan un buen rendimiento
Cada SGBD ofrece varias opciones:
Diferentes tipos de NDICES
Agrupamiento de registros (de distinto tipo) relacionados en los mismos bloques de
disco (CLUSTER de ficheros)
Distintos tipos de tcnicas de dispersin (HASHING)
Diferentes valores para los parmetros fsicos (tamao de bloque, de buffers, ...)
...
El diseo fsico es muy dependiente del SGBD comercial seleccionado
Una vez elegido el SGBD, el Diseo Fsico consiste en la eleccin e
implementacin de las estructuras ms apropiadas para los archivos de la BD,
entre las opciones que ofrece el SGBD
Disear e implementar los mecanismos de seguridad : vistas de usuario y
reglas de acceso (privilegios/roles)
D.Fsico - 2
D.FSICO: OBJETIVOS
CRITERIOS PARA ELEGIR OPCIONES DE DISEO FSICO (~OBJETIVOS)
TIEMPO DE RESPUESTA (debe minimizarse)
Tiempo entre la introduccin de una transaccin de BD y la obtencin de respuesta
Depende de...
TIEMPO DE ACCESO A LA BASE DE DATOS (bajo el control del SGBD) para obtener los
datos que T necesita
CARGA DEL SISTEMA, PLANIFICACIN DE TAREAS DEL SO, RETRASOS DE
COMUNICACIN (fuera del control del SGBD)
D.Fsico - 4
D.FSICO: OBJETIVOS
DISEO FSICO
ESTRUCTURAS DE
ALMACENAMIENTO
Y CAMINOS DE IMPLEMENTACIN
inicial
ACCESO
BD
D.Fsico - 5
Diseo FSICO
Muchos sistemas incluyen UTILERAS DE SUPERVISIN que obtiene
ESTADSTICAS DE RENDIMIENTO
N de INVOCACIONES de TRANSACCIONES y/o CONSULTAS PREDEFINIDAS,
Actividades de Entrada/Salida para cada fichero, N de bloques (pginas) por
fichero, N de entradas por ndice, Frecuencias de UTILIZACIN de ndices, ...
Cambios en Requerimientos del Sistema de BD (Nuevas Consultas o
Transacciones, ...) Reorganizar la BD:
Creacin de nuevos ndices, o Modificacin de mtodos de acceso, ...
D.Fsico - 6
FACTORES A CONSIDERAR EN EL D.FSICO
D.Fsico - 7
FACTORES A CONSIDERAR EN EL D.FSICO
1. ANLISIS DE CONSULTAS Y TRANSACCIONES
Definir (alto nivel) transacciones y consultas que se espera ejecutar en la BD
PARA CADA CONSULTA...
TABLAS (FICHEROS) a los que accede
CAMPOS sobre los que se especifica alguna CONDICIN DE SELECCIN
CAMPOS sobre los que se especifica alguna CONDICIN DE REUNIN o de ENLACE
de REGISTROS de diferente tipo
CAMPOS cuyos valores obtiene la consulta
PARA CADA TRANSACCIN y operacin de ACTUALIZACIN...
TABLAS (FICHEROS) que actualiza
Operacin que realiza en cada fichero (INSERCIN, MODIFICACIN, ELIMINACIN)
CAMPOS sobre los que se especifica alguna CONDICIN DE SELECCIN para las
modificaciones y borrados
CAMPOS actualizados (por una operacin de modificacin)
() Candidatos para definir ESTRUCTURAS DE ACCESO sobre ellos
() Candidatos para EVITAR definir ESTRUCTURAS DE ACCESO sobre ellos
D.Fsico - 8
FACTORES A CONSIDERAR EN EL D.FSICO
DECISIONES DE
DISEO FSICO PAUTAS DE DISEO FSICO
ESTRUCTURAS DE
ALMACENAMIENTO AFINAMIENTO (TUNING)
Y CAMINOS DE
ACCESO
* BAJO RENDIMIENTO
IMPLEMENTACIN * NO CUMPLIMIENTO DE
NUEVAS CONSULTAS Y REQUERIMIENTOS DEL
TRANSACCIONES SISTEMA
BD SUPERVISIN DEL
RENDIMIENTO
D.Fsico - 11
PAUTAS DE DISEO FSICO DE BDs RELACIONALES
D.Fsico - 12
EXPLORACIN
Mecanismo de acceso por defecto (tabla desordenada).
Ineficiente si:
Se inspeccionan muchas tuplas y se selecciona un pequeo porcentaje.
Eficiente:
Sobre tablas pequeas e inspeccionadas mediante pocas E/S (factor de bloqueo).
Alto porcentaje de seleccionadas 20%.
Otros mecanismos de acceso son demasiado costosos.
Como incrementar el porcentaje de tuplas recuperadas: limitando el
alcance del examen a un conjunto de tuplas que contengan todas las especificadas
(seleccin) y pocas no seleccionadas (rango de valores).
Tabla de agrupacin (clustered table): tuplas almacenadas en la secuencia de
valores para un conjunto especfico de columnas (Tabla ordenada). Supone
mecanismo de acceso complementario que proporcione acceso directo a la primera
tupla que satisfaga la condicin de bsqueda (p.e. ndice o hashing).
Particionamiento horizontal de acuerdo a algn criterio de seleccin.
Afinamiento (tuning):
Utilizar dispositivos de alta velocidad para tablas frecuentemente examinadas.
Especificar nmero y tamao apropiado de buffers. D.Fsico - 13
AGRUPAMIENTO (Cluster)
Almacenamiento de tuplas en una secuencia predeterminada basada en
los valores de una o ms columnas (cluster key)
Agrupar: tablas medio-grandes ( 6 bloques fsicos) que son frecuentemente
(a) ordenadas sobre esa secuencia,
(b) accedidas sobre criterios de seleccin que involucran un rango de valores
sobre una columna o conjuntos de columnas,
(c) procesadas de forma secuencial en esa secuencia,
(d) y que no son frecuentemente actualizadas (d1) mediante inserciones o
borrados de tuplas (d2) modificaciones de los valores que determinan el
agrupamiento (cluster).
Sobre qu columnas?:
Que participen en ORDER BY, GROUP BY, UNION, DISTINCT y otras
operaciones que impliquen ordenacin.
Columnas de reunin (JOINS de clave primaria + clave ajena).
Seleccin sobre rango de valores.
D.Fsico - 14
NDICES
Son el mecanismo de acceso ms dinmico: se pueden aadir, suprimir,
redefinir ndices de forma ms fcil que cambiar una secuencia de cluster,
redefinir una clave de dispersin o cambiar cualquier otro parmetro que
afecte al almacenamiento fsico de la BD.
se puede posponer la especificacin de ndices para el final del proceso de
diseo e incluso despus de la implementacin inicial de la BD.
Estructura comn a muchos SGBD: B-trees soporta bien diferentes tipos de
consultas (por rango, valores extremos MIN-MAX, ...), inserciones frecuentes,
...
Pueden ser usados para:
Evitar el examen de tabla completa (Full table scan) (se utiliza el ndice para
realizar el examen) para ser til: suma de E/S a ndice + E/S a tabla < E/S a
tabla.
Limitar el alcance del examen a tabla: cluster index, ordenacin.
Evitar una ordenacin.
Evitar el acceso a las tablas para determinadas consultas.
D.Fsico - 15
NDICES
Conviene UTILIZAR ndices...
sobre tablas medianas/grandes (ocupan gran cantidad de espacio)
para facilitar el acceso a pequeos porcentajes del total de tuplas (20%)
seleccionadas
y para evitar...
el recorrido de la tabla completa
el acceso a tablas para consultas que incluyen un pequeo subconjunto de
columnas (gracias a los ndices compuestos)
PERSONA(ssnum, apellido, nombre, edad, telef)
CREATE INDEX idx_perso ON PERSONA(apellido, nombre)
la ordenacin de las tuplas de la tabla (ORDER BY, GROUP BY, UNION,
DISTINCT, JOIN, ...)
el acceso a ficheros para determinadas consultas (EXISTS, IN, ...)
D.Fsico - 18
Tcnicas de dispersin (Hashing)
Las tuplas son fsicamente almacenadas y recuperadas de acuerdo con los resultados de una
funcin de dispersin (hash function): genera a distribucin de valores numricos (hash values),
basada en valores especficos de la clave de dispersin (hash key values).
Alternativa a tablas indexada / agrupada: las tuplas son localizadas usando los valores de clave
que estn almacenados en un ndice separado mnimo de 2 operaciones de E/S. Una funcin
de dispersin no necesita E/S mnimo una E/S para leer o escribir una tupla en la tabla.
No todos los SGBD soportan hashing (no universal)
Extremadamente eficiente para acceso directo.
Solo se puede definir un hashing por tabla (determina la posicin fsica).
D.Fsico - 20
Acelerar la operacin de equirreunin y/o de reunin natural:
Tcnicas de agrupamiento
Almacenar DOS RELACIONES (intererrelacin 1:N clave primaria / clave
ajena) en un NICO FICHERO segn la clave del cluster: Cada registro del
lado 1 (clave primaria) est SEGUIDO de los registros del lado N (ajena)
Consultas MUY EFICIENTES sobre la clave del cluster ...
REUNIONES entre ambas tablas
Agrupamiento de registros del lado N por el valor de la clave externa
(los registros relacionados estn en el mismo bloque menos accesos a bloque)
Mayor aprovechamiento del espacio
D.Fsico - 23
Acelerar la operacin de equirreunin y/o de reunin
natural: DESNORMALIZACIN
Desnormalizar, es decir, violar la normalizacin, slo tiene una excusa:
rendimiento ... y slo en algunas situaciones [Shasha-92]
D.Fsico - 24
DESNORMALIZACIN REAL
DESNORMALIZACIN REAL
Consultas o Transacciones frecuentes que necesitan reunin de
demasiadas tablas (tres o ms), o
dos tablas con muchas tuplas
se ejecutarn muy lentamente
Solucin: Romper la 3FN (FNBC o superior)
Almacenar atributos de una tabla en otra tabla
REPETICIN, DUPLICACIN o REDUNDANCIA de atributos
Importante: las transacciones que actualizan el atributo deben MANTENER LA
CONSISTENCIA entre los duplicados (evitar anomalas)
Procedimientos almacenados, Disparadores (Triggers), Afirmaciones
Redundancia controlada
DESNORMALIZACIN EXTREMA
Almacenar un FICHERO con la REUNIN de las tablas
Resolver explcitamente las ANOMALAS DE ACTUALIZACIN
D.Fsico - 25
DESNORMALIZACIN REAL
Este esquema...
INSERCIN NO DIRECTA en la tabla EMPLEADO: al insertar un empleado el
nombre del responsable debe venir desde la tabla ALOJAMIENTO, segn el valor
de alojamiento para el nuevo empleado
MODIFICACIN del nombre de un responsable en la tabla ALOJAMIENTO, o
cambio de responsable para un alojamiento modificacin de tuplas EMPLEADO
D.Fsico - 26
Estructura lgica de una BD Oracle
D.Fsico - 27
Estructuras lgicas de almacenamiento
Segmento datos
Segmento de ndices
Segmento de rollback
Segmento temporal
SELECT ... ORDER BY...
CREATE INDEX.
SELECT ... GROUP BY...
SELECT ... UNION ...
SELECT DISTINCT ...
SELECT INSERSEC ...
SELECT ... MINUS ...
D.Fsico - 28
Estructura fsica de Oracle
Ficheros de datos
Ficheros redo log
Ficheros de
control
D.Fsico - 29