Base de DatosProfesor:MSC Luis Serna Jherry
Diseño Físico   Recomendaciones en el modelo ER        Diseño físico de la BD       Implementación y Ajuste     Optimizaci...
Recomendaciones en Modelo ERDenominación adecuada y definición de todas las entidades(tablas) como singulares y no plurale...
Diseño físico de la BDEs el proceso de elegir estructuras de almacenamientoy caminos de acceso específicos para que los fi...
Diseño Físico de la BD- Criterios a considerar -Tiempo de respuesta: el que transcurre entre laintroducción de una transac...
Diseño Físico de la BD  - Criterios a considerar -Análisis de consultas y transacciones Para elaborar el diseño físico de ...
Análisis de Consultas y     TransaccionesPara cada consulta establecer:a.   Las tablas a las que accederáb.   Los atributo...
Análisis de Consultas y      TransaccionesPara cada transacción de actualización establecer:a. Las tablas que actualizaráb...
Create Index CREATE UNIQUE INDEX index_name ON table_name (column_name) CREATE INDEX index_name                   _ ON tab...
Diseño físico de la BDEl rendimiento de la BD depende del tamaño y delnúmero de registros que contienen los ficheros:  Est...
Implementación y AjusteCreación del esquema de la BD, con los ficheros vacíosCarga de datos (poblado de tablas)   Rutinas ...
Optimización del rendimientoAjuste de índices  Evaluar dinámicamente los requerimientos, que pueden                       ...
Optimización del rendimientoAjuste de consultasIndicadores:  Demasiados accesos al disco (por ejemplo  una consulta de emp...
Ajuste de Consultas– Eficiencia de operadores -=>, <>=, <=LIKE<>Siempre mejor es operar sobre números quesobre cadenas.
Ajuste de Consultas - Casos1. Muchos optimizadores no usan índices en   presencia de:     Expresiones aritméticas        S...
Ajuste de Consultas - Casos2. Los índices podrían no usarse en consultasanidadas que utilizan IN:SELECT NSS FROM EMPLEADOW...
Ajuste de Consultas - Casos3. Algunos DISTINCT pueden ser redundantes   y podrían evitarse sin modificar el resultado.   U...
Ajuste de Consultas - Casos4. El uso innecesario de tablas temporales   puede evitarse juntando varias consultas en   una ...
Ajuste de Consultas - Casos5.   En algunas situaciones en las que se usa consultas     correlacionadas son útiles las tabl...
Ajuste de Consultas - CasosPara hacerlo más eficiente puede descomponerse endos consultas, la primera de las cuales calcul...
Ajuste de Consultas - Casos6. De haber varias opciones posibles para la condición   de reunión, elegir una que use un índi...
Ajuste de Consultas - Casos7. En algunos optimizadores de consultas el   orden en el que aparecen las tablas en el   FROM ...
Ajuste de Consultas - Casos8.   Algunos optimizadores dan peores tiempos con     consultas anidadas que con sus equivalent...
Ajuste de Consultas - Casosa)   Este tipo rara vez presenta problemas, porque la     consulta interna se evalúa una sola v...
Ajuste de Consultas - Casos9. Muchas aplicaciones se basan en vistas que   definen los datos de interés para las   aplicac...
Ajuste de Consultas - Casos10. Una consulta con varias condiciones OR puede hacer que no se    empleen los índices que exi...
Ajuste de Consultas - Casos11.    Las condiciones WHERE pueden reescribirse de modo que se       utilicen índices por vari...
Ajuste del Diseño de la BD1. Reunir tablas existentes, porque ciertos campos de dos   o más tablas se necesitan juntos con...
Ajuste del Diseño de la BD4. Fragmentación horizontal: almacenar fragmentos   horizontales de una tabla en tablas diferent...
RESUMENEl diseño conceptual es una descripción estable, muyexpresiva y general del contenido de la BD, que esindependiente...
Próxima SlideShare
Cargando en…5
×

Diseño físico y rendimiento de la bd

1.072 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.072
En SlideShare
0
De insertados
0
Número de insertados
4
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Diseño físico y rendimiento de la bd

  1. 1. Base de DatosProfesor:MSC Luis Serna Jherry
  2. 2. Diseño Físico Recomendaciones en el modelo ER Diseño físico de la BD Implementación y Ajuste Optimización del rendimiento
  3. 3. Recomendaciones en Modelo ERDenominación adecuada y definición de todas las entidades(tablas) como singulares y no plurales.El nombre de la entidad (tabla) debe ser descriptible por si solo.Denominación única de acuerdo al estándar de todos losatributos (campos) y definición apropiada de los principales,dentro de cada entidad.Frase verbal (única) que denomine cada relación.Asignación adecuada de dominios (validaciones, valores poromisión).Establecimiento de soporte para nulos en campos no PK.Asignación adecuada de integridad referencial. óCreación de índices únicos (AK) y no únicos (IE) necesarios.Solución del problema por lo menos en 3FN.
  4. 4. Diseño físico de la BDEs el proceso de elegir estructuras de almacenamientoy caminos de acceso específicos para que los ficherosde la BD tengan buen rendimiento con las aplicaciones: Organización de ficheros y caminos de acceso Diversos tipos de indexación Agrupación de registros relacionados en bloques de disco Enlace de registros relacionados mediante apuntadores Técnicas de dispersión Té i d di ió
  5. 5. Diseño Físico de la BD- Criterios a considerar -Tiempo de respuesta: el que transcurre entre laintroducción de una transacción y la obtención de larespuesta Tiempo de acceso a la BD para obtener los elementos de información (bajo el control del DBMS) Carga del sistema, tareas del SO y comunicaciónAprovechamiento del espacio: cantidad de espacio queocupan los ficheros y sus estructuras de acceso (índices)Productividad de las transacciones: número medio detransacciones que la BD puede procesar por minuto Medido en las condiciones pico para el sistema
  6. 6. Diseño Físico de la BD - Criterios a considerar -Análisis de consultas y transacciones Para elaborar el diseño físico de la base de datos debemos tener una idea clara del uso que se le va a dar, definiendo a alto nivel las transacciones y consultas que se espera ejecutar en ella.
  7. 7. Análisis de Consultas y TransaccionesPara cada consulta establecer:a. Las tablas a las que accederáb. Los atributos sobre los que se especificarán condiciones de selección (WHERE)c. Los t ib t L atributos sobre l que se especificarán condiciones b los ifi á di i de reunión o de enlace de tablasd. Los atributos cuyos valores se obtendrá en la consultaLos atributos de los incisos b y c son candidatos a constituir índices (estructuras de acceso)
  8. 8. Análisis de Consultas y TransaccionesPara cada transacción de actualización establecer:a. Las tablas que actualizaráb. El tipo de operación en cada tabla (insertar, modificar o eliminar)c. Los campos sobre los que se especificarán condiciones de selección para operaciones de eliminación o modificación ó ó ód. Los campos cuyos valores alterará una operación de modificación Los campos del inciso c son candidatos para índices Los campos del inciso d son candidatos a evitar en los índices, ya que su modificación requerirá la actualización de estas estructuras de acceso.
  9. 9. Create Index CREATE UNIQUE INDEX index_name ON table_name (column_name) CREATE INDEX index_name _ ON table_name (column_name1, column_name 2…) CREATE INDEX idx_address_district ON Address (district);
  10. 10. Diseño físico de la BDEl rendimiento de la BD depende del tamaño y delnúmero de registros que contienen los ficheros: Estimación de estos valores para cada fichero Considerar el crecimiento esperado de cada unoSe debe estimar los patrones de actualización yobtención de datos del fichero para todas lastransacciones en conjunto. Considerar la construcción de caminos de acceso primarios e C id l t ió d i d i i índices secundarios para los atributos con los que se suelen seleccionar los registros.
  11. 11. Implementación y AjusteCreación del esquema de la BD, con los ficheros vacíosCarga de datos (poblado de tablas) Rutinas de conversión para migrar datos desde una versión anteriorImplementación de las transacciones Codificación de programas con instrucciones DML incrustadas Prueba d P b de programasMonitoreo del rendimiento en producción: Estadísticas sobre el número de invocaciones a las transacciones o consultas predefinidas lt d fi id Actividades de entrada / salida sobre ficheros Conteo de páginas de ficheros o registros de índices Frecuencia d utilización de los índices F i de ili ió d l í di
  12. 12. Optimización del rendimientoAjuste de índices Evaluar dinámicamente los requerimientos, que pueden q ,q p cambiar según época del año, día del mes o de la semana Reorganizar los índices para obtener mejor rendimiento Ciertas consultas pueden tardar mucho en ejecutarse por falta de p j p un índice apropiado Puede haber índices que no se utilicen Puede haber índices que originen trabajo adicional por estar definidos sobre atributos que sufren continuos cambios
  13. 13. Optimización del rendimientoAjuste de consultasIndicadores: Demasiados accesos al disco (por ejemplo una consulta de emparejamiento exacto que recorre una tabla completa) El plan de ejecución de consulta muestra que no se están usando los índices relevantes.
  14. 14. Ajuste de Consultas– Eficiencia de operadores -=>, <>=, <=LIKE<>Siempre mejor es operar sobre números quesobre cadenas.
  15. 15. Ajuste de Consultas - Casos1. Muchos optimizadores no usan índices en presencia de: Expresiones aritméticas SALARIO/365 > 10.50 Comparaciones numéricas de campos de diferente tamaño y precisión ACANT = BCANT donde ACANT es de tipo Integer y BCANT es Smallinteger Comparaciones con NULL FECHA IS NULL Comparaciones de subcadenas APELLIDO LIKE ‘%EZ’
  16. 16. Ajuste de Consultas - Casos2. Los índices podrían no usarse en consultasanidadas que utilizan IN:SELECT NSS FROM EMPLEADOWHERE DNO IN (SELECT DNUMERO FROM DEPARTAMENTO WHERE NSS_JEFE = ‘3334444’)Puede no utilizar el índice definido sobre DNO en EMPLEADO, EMPLEADOmientras que la utilización de DNO = DNUMERO en la cláusulaWHERE con una consulta de un solo bloque puede ocasionar que elíndice sí se utilice utilice.
  17. 17. Ajuste de Consultas - Casos3. Algunos DISTINCT pueden ser redundantes y podrían evitarse sin modificar el resultado. Un DISTINCT generalmente provoca una operación de clasificación y debe evitarse siempre que sea posible
  18. 18. Ajuste de Consultas - Casos4. El uso innecesario de tablas temporales puede evitarse juntando varias consultas en una sola, a menos que la relación temporal sea necesaria para algún resultado intermedio
  19. 19. Ajuste de Consultas - Casos5. En algunas situaciones en las que se usa consultas correlacionadas son útiles las tablas temporales p SELECT NSS FROM EMPLEADO E WHERE SALARIO = SELECT MAX(SALARIO) FROM EMPLEADO AS M WHERE M.DNO = E.DNO) Esto tiene el peligro potencial de buscar en toda la tabla M EMPLEADO interna para cada tupla de E EMPLEADO externa.
  20. 20. Ajuste de Consultas - CasosPara hacerlo más eficiente puede descomponerse endos consultas, la primera de las cuales calcula el salariomáximo de cada departamento:SELECT MAX(SALARIO) AS SALARIO_MAYOR, DNO INTO TEMPFROM EMPLEADOGROUP BY DNO;SELECT NSSFROM EMPLEADO, TEMPWHERE SALARIO = SALARIO_MAYOR AND EMPLEADO.DNO =TEMP.DNO
  21. 21. Ajuste de Consultas - Casos6. De haber varias opciones posibles para la condición de reunión, elegir una que use un índice de agrupación (CLUSTER), y evitar aquellas que contengan comparaciones de cadenas: Aún si el campo NOMBRE fuera una clave candidata tanto en EMPLEADO como en ALUMNO, es mejor usar EMPLEADO.NSS = ALUMNO.NSS como condición de reunión en lugar de reunión, EMPLEADO.NOMBRE = ALUMNO.NOMBRE si NSS tiene un índice de agrupación en una o en ambas tablas. t bl
  22. 22. Ajuste de Consultas - Casos7. En algunos optimizadores de consultas el orden en el que aparecen las tablas en el FROM puede afectar el procesamiento de la reunión. En esos casos debe cambiarse el orden para que procese primero la tabla con menos data, y la más grande se use con el índice correspondiente
  23. 23. Ajuste de Consultas - Casos8. Algunos optimizadores dan peores tiempos con consultas anidadas que con sus equivalentes no anidadas. Hay 4 tipos de consultas anidadas: a) Subconsultas no correlacionadas con agregados en la consulta interna b) Subconsultas no correlacionadas sin agregados c) Subconsultas correlacionadas con agregados en la consulta interna d) Subconsultas correlacionadas sin agregados
  24. 24. Ajuste de Consultas - Casosa) Este tipo rara vez presenta problemas, porque la consulta interna se evalúa una sola vezb) En este tipo se puede presentar el problema mostrado en el caso # 2, en el que no se usa el índice sobre DNO en EMPLEADO SELECT NSS FROM EMPLEADO WHERE DNO IN (SELECT DNUMERO FROM DEPARTAMENTO WHERE NSS_JEFE = ‘3334444’) La transformación de subconsultas correlacionadas puede llevar a que se creen tablas temporales. ll bl l
  25. 25. Ajuste de Consultas - Casos9. Muchas aplicaciones se basan en vistas que definen los datos de interés para las aplicaciones. A veces estas vistas pueden ser excesivas cuando la consulta puede realizarse directamente sobre la tabla base, en lugar de usar una vista que se ha definido sobre una reunión
  26. 26. Ajuste de Consultas - Casos10. Una consulta con varias condiciones OR puede hacer que no se empleen los índices que existen: SELECT NOMBRE, APELLIDO, SALARIO, EDAD FROM EMPLEADO WHERE EDAD > 45 OR SALARIO < 5000Alternativa: SELECT NOMBRE, APELLIDO, SALARIO, EDAD FROM EMPLEADO WHERE EDAD > 45 UNION SELECT NOMBRE, APELLIDO, SALARIO, EDAD FROM EMPLEADO WHERE SALARIO < 5000 Puede usar los índices definidos sobre SALARIO y sobre EDAD
  27. 27. Ajuste de Consultas - Casos11. Las condiciones WHERE pueden reescribirse de modo que se utilicen índices por varias columnas:SELECT REGION, TIPO_PROD, MES, VENTASFROM ESTADISTICA_VENTASWHERE REGION = 3 AND ((TIPO_PROD BETWEEN 1 AND 3) OR (TIPO_PROD BETWEEN 8 AND 10))Puede usar un índice únicamente sobre REGION y debe buscar a través de todas las páginas hoja del índice un emparejamiento con TIPO_PROD.En cambio:SELECT REGION TIPO PROD MES VENTAS REGION, TIPO_PROD, MES,FROM ESTADISTICA_VENTASWHERE (REGION = 3 AND (TIPO_PROD BETWEEN 1 AND 3)) OR (REGION = 3 AND (TIPO_PROD BETWEEN 8 AND 10))Puede usar un índice compuesto sobre (REGION, TIPO_PROD) y trabajará mucho más p ( , ) j eficientemente.
  28. 28. Ajuste del Diseño de la BD1. Reunir tablas existentes, porque ciertos campos de dos o más tablas se necesitan juntos con frecuencia: pasar de FNBC a 3FN, 2FN ó 1FN (¡¡¡¡¡¡¡)2. Para un cierto conjunto de tablas, elegir uno de entre varios diseños alternativos en la misma forma normal a o d o a a o a a o a o a3. Fragmentación vertical: una tabla de la forma R(k, a, b, c, d, …) puede reemplazarse por varias tablas como d l bl R1(k, a, b), R2(k, c, d) y R3(k, …) (Según la necesidad de acceso conjunto a los campos)
  29. 29. Ajuste del Diseño de la BD4. Fragmentación horizontal: almacenar fragmentos horizontales de una tabla en tablas diferentes. Si se diferentes desea acceder a todos los datos la consulta debe combinarlas nuevamente.5. Repetir uno o más campos de una tabla en otra, aún creando redundancia y anomalías potenciales. En este caso debe haber siempre una tabla principal donde el campo esté correctamente actualizado con absoluta seguridad.
  30. 30. RESUMENEl diseño conceptual es una descripción estable, muyexpresiva y general del contenido de la BD, que esindependiente del DBMSi d di t d lEl diseño físico empieza por la elección del DBMS y estáfuertemente marcado por éste.El adecuado rendimiento de la BD depende en granmedida de las condiciones de implementación propiasde d id cada instalación: volúmenes de datos, tiempos, l ió lú d d icarga de trabajo, etc.El punto de partida para conseguir una BD eficiente es, essiempre, un adecuado diseño conceptual.

×