Please enable JavaScript.
Coggle requires JavaScript to display documents.
Resumen Unidad 1 - Coggle Diagram
Resumen Unidad 1
Diseño de Bases de Datos Optimizada
Ejecución de una consulta
Consulta en SQL
Construcción de la consulta
Plan de Ejecución
Código para ejecutar la consulta
Resultado de la consulta
Consulta SQL
Operadores
Proyección
Sencillo si los atributos incluyen una clave
Eliminar repetidos puede ser costoso
Ordenar y eliminar
Usar una función de dispersión (hash)
Join
Bucle anidado
Fuerza bruta N x M
Bucle simple
Índice hash
Ordenación-Mezcla
Registros ordenados
Dispersión
Ambas tablas comparten el fichero de dispersión
Selección
Búsqueda binaria (Fichero ordenado)
Búsqueda Lineal (Fuerza bruta)
Uso de indice primario (hash)
Uso de indice agrupado
Uso de índice secundario (B+)
Operaciones de conjuntos
Producto cartesiano
Costoso (Tiempo y Espacio)
Union
Intersection
Except
Optimización basada en Heurísticas
Arbol de consulta
Puede tener múltiples árboles de consulta equivalentes
Permite estudiar y definir métodos de optimización de consultas SQL
Reglas Heurísticas básicas
1) Aplicar primero operaciones que reducen el tamaño de los resultados intermedios
2) Reordenar los nodos hojas del árbol
Selección y join se ejecuten antes que otras operaciones
3) Usar JOIN en lugar de producto cartesiano combinado co una selección
Reglas generales de transformación
Cascada de selecciones
Las selecciones anidadas se pueden agrupar en paréntesis para evitar los AND.
Conmutatividad de la selección
Es lo mismo seleccionar algo de R con una condición a1 a una subsección de R con condición b1 que seleccionar de R una condición b1 de una subsección de R con condición a1.
Cascada de proyecciones
En vez de proyectar varias veces la tabla R con subsecciones de R, se puede solo proyectar la columna que se necesita de R.
Conmutación de selección por proyección
Una proyección de columnas de una selección de R se puede cambiar a una selección de R de una proyección de columnas de R.
Conmutatividad de JOIN y producto cartesiano
Un JOIN de R y S es igual a un JOIN de S y R
Pasa lo mismo con el producto cartesiano
Conmutación de selección con JOIN
Es lo mismo hacer una selección de un JOIN entre R y S que hacer una selección en R y hacer JOIN con S.
Conmutación de proyección con JOIN
Es lo mismo hacer una proyección de un JOIN entre R y S que hacer proyecciones de R, proyecciones de S y luego hacer JOIN.
Conmutatividad de las operaciones de unión e intersección
Asociatividad de JOIN, Producto cartesiano, union e intersección
Conmutación de selección con Operador de conjunto
Conmutación de proyección con union
Conversión de selección + producto cartesiano en join
Algoritmo básico de optimización
Descomponer selecciones conjuntivas en una cascada de operaciones y moverlas lo más abajo del árbol.
Reordenar las relaciones de los nodos hoja
Las relaciones con selecciones más restrictivas deben ejecutarse primero
Asegurarse que la ordenación no genere productos cartesianos
Transformar selección + Producto cartesiano a JOINS
Descomponer las operaciones de proyección y desplazarlos lo más abajo posible
Identificar sub-arboles que representan grupos de operaciones que se pueden ejecutar mediante un único algoritmo
Almacenamiento e Indexación de datos
Metodos de almacenamiento
Primaria
Secundaria
Terciaria
Ficheros y Registros
Tipos de Registro
Longitud Fija
Longitud Variable
Organización de registros en disco
Organización no extendida
Organización extendida (Puntero)
Tipos de Fichero
Heap
Datos desordenados
Inserción eficaz al final
Ordenado o Secuencial
Datos ordenados
Lectura eficaz
Disperso (Hash)
Un campo actua como clave 'k' de dispersión
Métodos de indexación de datos
Indices
Tipos
Agrupado
Ordenados por un campo no clave
Se debe crear un bloque nuevo si se llena
Agrupado II
Contiene un puntero de bloque al final
Se evita crear otro bloque para almacenar un dato nuevo
Secundario
Independiente del tipo de dato almacenado
Utilizados para ser usado en campos alternos.
Busqueda mas pesada
Secundario II
Indice que apunta a un bloque y el bloque apunta a un dato de la base de datos.
Multinivel
Se realiza un indice que apuntan a mas indices (2 niveles).
Ya se conoce las consultas que se van a realizar.
Primario
Primary Key
Usado cuando el atributo es clave
Es una estructura de datos auxiliar
Arboles de busqueda
Arboles B
Siempre debe estar equilibrado. Tiempo de busqueda menores pero el armado es mas complejo.
Arboles B+
Usado en consultas de rango (18 < edad <25)
Indice Hash
Usado cuando hay consultas de igualdad o para tributos usados en JOINS
Un atributo que es la llave (Nombre de persona) que apunta a un "puntero" ("Departamento"). Puede ser un reemplazo de un indice multinuvel, secundario. Lo bueno es que no se utiliza un puntero en si, solo utiliza un larga cadena string.
Desnormalización
No existe un conjunto de reglas
Componentes de una regla de desnormalización:
Precondiciones: esquema + consulta frecuente.
Acción
Postcondición
Tablas de extracción
No sirve para un sistema que necesite mostrar información en "tiempo real".
Particionamiento
Vertical
Agrupar datos por sus columnas. (Una tabla que tenga un PK y una columna de interés)
Horizontal
Agrupar datos por algun atributo. (Una tabla con tuplas con atributo edad iguales.)