SlideShare una empresa de Scribd logo
1 de 30
Base de Datos


Profesor:
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ón del rendimiento
Recomendaciones en Modelo ER
Denominació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 los
atributos (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 por
omisió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.
Diseño físico de la BD
Es el proceso de elegir estructuras de almacenamiento
y caminos de acceso específicos para que los ficheros
de 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ó
Diseño Físico de la BD
- Criterios a considerar -
Tiempo de respuesta: el que transcurre entre la
introducción de una transacción y la obtención de la
respuesta
  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ón
Aprovechamiento del espacio: cantidad de espacio que
ocupan los ficheros y sus estructuras de acceso (índices)
Productividad de las transacciones: número medio de
transacciones que la BD puede procesar por minuto
  Medido en las condiciones pico para el sistema
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.
Análisis de Consultas y
     Transacciones
Para 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 tablas
d.   Los atributos cuyos valores se obtendrá en la consulta

Los atributos de los incisos b y c son candidatos a constituir
                 índices (estructuras de acceso)
Análisis de Consultas y
      Transacciones
Para 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.
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);
Diseño físico de la BD
El rendimiento de la BD depende del tamaño y del
número de registros que contienen los ficheros:
  Estimación de estos valores para cada fichero
  Considerar el crecimiento esperado de cada uno
Se debe estimar los patrones de actualización y
obtención de datos del fichero para todas las
transacciones 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.
Implementación y Ajuste
Creación del esquema de la BD, con los ficheros vacíos
Carga de datos (poblado de tablas)
   Rutinas de conversión para migrar datos desde una versión anterior
Implementación de las transacciones
   Codificación de programas con instrucciones DML incrustadas
   Prueba d
   P b de programas
Monitoreo 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
Optimización del rendimiento
Ajuste 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
Optimización del rendimiento
Ajuste de consultas
Indicadores:
  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.
Ajuste de Consultas
– Eficiencia de operadores -

=
>, <
>=, <=
LIKE
<>
Siempre mejor es operar sobre números que
sobre cadenas.
Ajuste de Consultas - Casos
1. 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’
Ajuste de Consultas - Casos
2. Los índices podrían no usarse en consultas
anidadas que utilizan IN:
SELECT NSS FROM EMPLEADO
WHERE DNO IN      (SELECT DNUMERO
                         FROM DEPARTAMENTO
                         WHERE NSS_JEFE = ‘3334444’)

Puede no utilizar el índice definido sobre DNO en EMPLEADO,
                                                  EMPLEADO
mientras que la utilización de DNO = DNUMERO en la cláusula
WHERE con una consulta de un solo bloque puede ocasionar que el
índice sí se utilice
             utilice.
Ajuste de Consultas - Casos
3. 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
Ajuste de Consultas - Casos
4. 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
Ajuste de Consultas - Casos
5.   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.
Ajuste de Consultas - Casos
Para hacerlo más eficiente puede descomponerse en
dos consultas, la primera de las cuales calcula el salario
máximo de cada departamento:
SELECT MAX(SALARIO) AS SALARIO_MAYOR, DNO INTO TEMP
FROM EMPLEADO
GROUP BY DNO;

SELECT NSS
FROM EMPLEADO, TEMP
WHERE SALARIO = SALARIO_MAYOR AND EMPLEADO.DNO =
TEMP.DNO
Ajuste de Consultas - Casos
6. 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
Ajuste de Consultas - Casos
7. 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
Ajuste de Consultas - Casos
8.   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
Ajuste de Consultas - Casos
a)   Este tipo rara vez presenta problemas, porque la
     consulta interna se evalúa una sola vez
b)   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
Ajuste de Consultas - Casos
9. 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
Ajuste de Consultas - Casos
10. 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 < 5000

Alternativa:
      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
Ajuste de Consultas - Casos
11.    Las condiciones WHERE pueden reescribirse de modo que se
       utilicen índices por varias columnas:

SELECT REGION, TIPO_PROD, MES, VENTAS
FROM ESTADISTICA_VENTAS
WHERE 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_VENTAS
WHERE (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.
Ajuste del Diseño de la BD
1. 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 a
3. 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)
Ajuste del Diseño de la BD
4. 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.
RESUMEN
El diseño conceptual es una descripción estable, muy
expresiva y general del contenido de la BD, que es
independiente del DBMS
i d     di t d l
El 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 gran
medida de las condiciones de implementación propias
de d i
d cada instalación: volúmenes de datos, tiempos,
               l ió    lú        d d        i
carga de trabajo, etc.
El punto de partida para conseguir una BD eficiente es,
                                                     es
siempre, un adecuado diseño conceptual.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (6)

Normalizacion
NormalizacionNormalizacion
Normalizacion
 
Informe de grupo#1
Informe de grupo#1Informe de grupo#1
Informe de grupo#1
 
Prueba Oracle
Prueba OraclePrueba Oracle
Prueba Oracle
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Exposicion ofimatica grupo#1
Exposicion ofimatica grupo#1Exposicion ofimatica grupo#1
Exposicion ofimatica grupo#1
 
Consultas con tablas relacionadas
Consultas con tablas relacionadasConsultas con tablas relacionadas
Consultas con tablas relacionadas
 

Destacado

Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fnLuis Jherry
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwinLuis Jherry
 
Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fnLuis Jherry
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacionalLuis Jherry
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwinLuis Jherry
 

Destacado (8)

Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fn
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
 
Tienda de ropa
Tienda de ropaTienda de ropa
Tienda de ropa
 
Modelo er
Modelo erModelo er
Modelo er
 
Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fn
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
Modelado con erwin
Modelado con erwinModelado con erwin
Modelado con erwin
 
Guía de ejercicios de normalizacion
Guía de ejercicios de normalizacionGuía de ejercicios de normalizacion
Guía de ejercicios de normalizacion
 

Similar a Diseño físico y rendimiento de la bd2

Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De ConsultasOto Tumax
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datosUTN
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseñoYoung Hyun
 
Mejores practicas sql
Mejores practicas sqlMejores practicas sql
Mejores practicas sqlnnakasone
 
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 bdCarlos Arturo
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosJoseph Lopez
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceMarco Tulio Gómez Reyes
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Julián Castiblanco
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesXavier Espinoza
 
92 impl 11_custom_tools_queries_es
92 impl 11_custom_tools_queries_es92 impl 11_custom_tools_queries_es
92 impl 11_custom_tools_queries_esEVOXYS Software S.A.
 

Similar a Diseño físico y rendimiento de la bd2 (20)

Optimizacion De Consultas
Optimizacion De ConsultasOptimizacion De Consultas
Optimizacion De Consultas
 
Creación de base de datos
Creación de base de datosCreación de base de datos
Creación de base de datos
 
Consideraciones de diseño
Consideraciones de diseñoConsideraciones de diseño
Consideraciones de diseño
 
Mejores practicas sql
Mejores practicas sqlMejores practicas sql
Mejores practicas sql
 
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
 
Tips y sugerencias
Tips y sugerenciasTips y sugerencias
Tips y sugerencias
 
Tema4 buenas practicas
Tema4 buenas practicasTema4 buenas practicas
Tema4 buenas practicas
 
Pres17BDII.ppt
Pres17BDII.pptPres17BDII.ppt
Pres17BDII.ppt
 
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datosMS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
MS SQL Server 2014 - In-Memory ColumnStore Index - Haciendo un almacén de datos
 
Tuning fondo-negro-2
Tuning fondo-negro-2Tuning fondo-negro-2
Tuning fondo-negro-2
 
SQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes PerformanceSQLSaturday 322 Guatemala 2014 Cubes Performance
SQLSaturday 322 Guatemala 2014 Cubes Performance
 
Diseño fisico
Diseño fisicoDiseño fisico
Diseño fisico
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
POC SQL 2014
POC SQL 2014POC SQL 2014
POC SQL 2014
 
TUTORIAL SQL
TUTORIAL SQL TUTORIAL SQL
TUTORIAL SQL
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Comparacion smdb
Comparacion smdbComparacion smdb
Comparacion smdb
 
Taller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeriesTaller básico Herramientas Rendimiento DB2 en iSeries
Taller básico Herramientas Rendimiento DB2 en iSeries
 
92 impl 11_custom_tools_queries_es
92 impl 11_custom_tools_queries_es92 impl 11_custom_tools_queries_es
92 impl 11_custom_tools_queries_es
 
Sql
SqlSql
Sql
 

Más de Luis Jherry

Suscripciones de cable
Suscripciones de cableSuscripciones de cable
Suscripciones de cableLuis Jherry
 
Sistema de organización de eventos
Sistema de organización de eventosSistema de organización de eventos
Sistema de organización de eventosLuis Jherry
 
Sistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesSistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesLuis Jherry
 
Selección de personal
Selección de personalSelección de personal
Selección de personalLuis Jherry
 
Planificacion mensual en una industria medico
Planificacion mensual en una industria medicoPlanificacion mensual en una industria medico
Planificacion mensual en una industria medicoLuis Jherry
 
Pedidos en feria
Pedidos en feriaPedidos en feria
Pedidos en feriaLuis Jherry
 
Paquete turístico
Paquete turísticoPaquete turístico
Paquete turísticoLuis Jherry
 
Organización de congresos
Organización de congresosOrganización de congresos
Organización de congresosLuis Jherry
 
Obras de construcción
Obras de construcciónObras de construcción
Obras de construcciónLuis Jherry
 
Instituto de capacitación en ti
Instituto de capacitación en tiInstituto de capacitación en ti
Instituto de capacitación en tiLuis Jherry
 
Explotaciones mineras
Explotaciones minerasExplotaciones mineras
Explotaciones minerasLuis Jherry
 
Eventos científicos
Eventos científicosEventos científicos
Eventos científicosLuis Jherry
 

Más de Luis Jherry (20)

Telefonos
TelefonosTelefonos
Telefonos
 
Suscripciones
SuscripcionesSuscripciones
Suscripciones
 
Suscripciones de cable
Suscripciones de cableSuscripciones de cable
Suscripciones de cable
 
Software s
Software sSoftware s
Software s
 
Sistema escolar
Sistema escolarSistema escolar
Sistema escolar
 
Sistema de organización de eventos
Sistema de organización de eventosSistema de organización de eventos
Sistema de organización de eventos
 
Sistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesSistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renales
 
Selección de personal
Selección de personalSelección de personal
Selección de personal
 
Planificacion mensual en una industria medico
Planificacion mensual en una industria medicoPlanificacion mensual en una industria medico
Planificacion mensual en una industria medico
 
Pedidos en feria
Pedidos en feriaPedidos en feria
Pedidos en feria
 
Paquete turístico
Paquete turísticoPaquete turístico
Paquete turístico
 
Organización de congresos
Organización de congresosOrganización de congresos
Organización de congresos
 
Obras de construcción
Obras de construcciónObras de construcción
Obras de construcción
 
Museo
MuseoMuseo
Museo
 
Instituto de capacitación en ti
Instituto de capacitación en tiInstituto de capacitación en ti
Instituto de capacitación en ti
 
Hostal
HostalHostal
Hostal
 
Hostal ii
Hostal iiHostal ii
Hostal ii
 
Gimnasio
GimnasioGimnasio
Gimnasio
 
Explotaciones mineras
Explotaciones minerasExplotaciones mineras
Explotaciones mineras
 
Eventos científicos
Eventos científicosEventos científicos
Eventos científicos
 

Último

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptAlberto Rubio
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfpatriciaines1993
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 

Último (20)

Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 

Diseño físico y rendimiento de la bd2

  • 1. Base de Datos Profesor: MSC Luis Serna Jherry
  • 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. Recomendaciones en Modelo ER Denominació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 los atributos (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 por omisió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. Diseño físico de la BD Es el proceso de elegir estructuras de almacenamiento y caminos de acceso específicos para que los ficheros de 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. Diseño Físico de la BD - Criterios a considerar - Tiempo de respuesta: el que transcurre entre la introducción de una transacción y la obtención de la respuesta 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ón Aprovechamiento del espacio: cantidad de espacio que ocupan los ficheros y sus estructuras de acceso (índices) Productividad de las transacciones: número medio de transacciones que la BD puede procesar por minuto Medido en las condiciones pico para el sistema
  • 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. Análisis de Consultas y Transacciones Para 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 tablas d. Los atributos cuyos valores se obtendrá en la consulta Los atributos de los incisos b y c son candidatos a constituir índices (estructuras de acceso)
  • 8. Análisis de Consultas y Transacciones Para 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. 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. Diseño físico de la BD El rendimiento de la BD depende del tamaño y del número de registros que contienen los ficheros: Estimación de estos valores para cada fichero Considerar el crecimiento esperado de cada uno Se debe estimar los patrones de actualización y obtención de datos del fichero para todas las transacciones 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. Implementación y Ajuste Creación del esquema de la BD, con los ficheros vacíos Carga de datos (poblado de tablas) Rutinas de conversión para migrar datos desde una versión anterior Implementación de las transacciones Codificación de programas con instrucciones DML incrustadas Prueba d P b de programas Monitoreo 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. Optimización del rendimiento Ajuste 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. Optimización del rendimiento Ajuste de consultas Indicadores: 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. Ajuste de Consultas – Eficiencia de operadores - = >, < >=, <= LIKE <> Siempre mejor es operar sobre números que sobre cadenas.
  • 15. Ajuste de Consultas - Casos 1. 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. Ajuste de Consultas - Casos 2. Los índices podrían no usarse en consultas anidadas que utilizan IN: SELECT NSS FROM EMPLEADO WHERE DNO IN (SELECT DNUMERO FROM DEPARTAMENTO WHERE NSS_JEFE = ‘3334444’) Puede no utilizar el índice definido sobre DNO en EMPLEADO, EMPLEADO mientras que la utilización de DNO = DNUMERO en la cláusula WHERE con una consulta de un solo bloque puede ocasionar que el índice sí se utilice utilice.
  • 17. Ajuste de Consultas - Casos 3. 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. Ajuste de Consultas - Casos 4. 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. Ajuste de Consultas - Casos 5. 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. Ajuste de Consultas - Casos Para hacerlo más eficiente puede descomponerse en dos consultas, la primera de las cuales calcula el salario máximo de cada departamento: SELECT MAX(SALARIO) AS SALARIO_MAYOR, DNO INTO TEMP FROM EMPLEADO GROUP BY DNO; SELECT NSS FROM EMPLEADO, TEMP WHERE SALARIO = SALARIO_MAYOR AND EMPLEADO.DNO = TEMP.DNO
  • 21. Ajuste de Consultas - Casos 6. 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. Ajuste de Consultas - Casos 7. 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. Ajuste de Consultas - Casos 8. 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. Ajuste de Consultas - Casos a) Este tipo rara vez presenta problemas, porque la consulta interna se evalúa una sola vez b) 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. Ajuste de Consultas - Casos 9. 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. Ajuste de Consultas - Casos 10. 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 < 5000 Alternativa: 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. Ajuste de Consultas - Casos 11. Las condiciones WHERE pueden reescribirse de modo que se utilicen índices por varias columnas: SELECT REGION, TIPO_PROD, MES, VENTAS FROM ESTADISTICA_VENTAS WHERE 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_VENTAS WHERE (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. Ajuste del Diseño de la BD 1. 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 a 3. 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. Ajuste del Diseño de la BD 4. 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. RESUMEN El diseño conceptual es una descripción estable, muy expresiva y general del contenido de la BD, que es independiente del DBMS i d di t d l El 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 gran medida de las condiciones de implementación propias de d i d cada instalación: volúmenes de datos, tiempos, l ió lú d d i carga de trabajo, etc. El punto de partida para conseguir una BD eficiente es, es siempre, un adecuado diseño conceptual.