Apuntes de CI-5313 Base de Datos III (USB-VE)/Estructuras de Almacenamiento Secundario
Manejadores de Bases de Datos
[editar]- Manejo de integridad: módulo que se encarga de garantizar que los datos almacenados en la BD satisfagan las propiedades estructurales y dinámicas que los describen.
- Máquina de ejecución: módulo encargado de evaluar las consultas en un lenguaje declarativo. Está constituido por:
- Parser: encargado de hacer el chequeo semántico y traducir a las estructuras internas del MBD.
- Optimizador de consultas: en base a estadísticas sobre los datos y propiedades de los operadores usados en la consulta se encarga de identificar planes de ejecución eficientes.
- Evaluador de consultas: encargado de evaluar el plan identificado por el optimizador.
- Manejo de concurrencia: encargado de garantizar el acceso concurrente a los datos sea equivalente al acceso secuencial de los mismos.
- Manejador de recuperación:
- Manejador de seguridad:
Niveles de abstracción
[editar]Externo (vistas) → Lógico (Esquemas relacionales, objeto-relacionales < Esquema Físico)
Jerarquía de Memorias
[editar]- MEMORIA PRINCIPAL (RAM, DRAM) → costosa, volátil y limitada
- MEMORIA SECUNDARIA (DISCOS MAGNÉTICOS Y ÓPTICOS) → económica, no-volátil/persistente, no limitada
- MEMORIA TERCIARIA (CINTAS) → backup
Dispositivos de memoria secundaria
[editar]Definiciones:
[editar]- Boque: colección de datos. Está identificado por plato, la pista y la posición dentro de la pista.
- Registros: conjunto de campos que representan un ente almacenado. Los registros tienen identificadores que permiten al manejador de archivos determinar el bloque (bloques) donde se encuentra almacenado el mismo.
- Factor de bloqueo: número de registros que pueden ser almacenados en un bloque.
- Discos magnéticos: pista → sector → bloque Costo para leer/escribir.
- Seek time: tiempo requerido para que la cabeza lectora se posicione sobre la pista.
- Rotation time: tiempos requerido para que el plato de vuelta y se coloque debajo de la cabeza lectora. En promedio se considera que es la mitad del tiempo requerido para dar una vuelta completa.
- Transfer time: tiempo para transferir (leer o escribir) el bloque.
Tipos de bloques
[editar]- Spaned (extensibles): para economizar el espacio de almacenamiento, un registro en diversos en diversos bloques. Enlazados por medio de apuntadores.
- Unspanned (no extensibles): todos los registros almacenados en un bloque deben estar completos.
¿Cómo determinar el factor de bloqueo? Depende del tipo de bloque y el tipo de registro.
- Bloques no extensibles y registro de longitud fija:
- B: tamaño del bloque en bytes
- R: tamaño del registro en bytes
- Bloque extensible y registro de tamaño fijo:
- B: tamaño del bloque en bytes
- R: tamaño del registro en bytes
- Bolques no extensibles y registros de tamaño variable: no se puede calcular el tamaño de cada bloque, se calcula el FB promedio (FBp)...
- R': tamaño promedio de los registros.
Tipos de Archivos
[editar]Se estudiará la eficiencia en operaciones como scan (recorrido del archivo), búsqueda por igualdad, búsqueda por rango, inserción, eliminación, actualización de algunos tipos de archivos:
- Archivos Heap
- Archivos Ordenados
- Indexados (B+ Tree)
- Hash
Leyenda de símbolos usados en los costos
- B → número de bloques del archivo.
- D → tiempo promedio para procesar un bloque.
- R → número de registros por bloque.
- C → tiempo para procesar un registro que no está en memoria principal.
Heap
[editar]Los registros están almacenados en la forma en que almacenados en la forma en que fueron almacenados en el sistema.
Inserción
[editar]Se recupera el último bloque del archivo y si hay espacio se inserta el registro en dicho bloque. En caso de que no exista espacio, se solicita un nuevo bloque el cual pasa a ser el último bloque del archivo.
- Bloques no extensibles:
- Mejor caso: 2*D + C
- Peor caso: 3*D
- Bloques extensibles: (K = 1 ó 2, K*B es el número de bloques necesarios para almacenar el registro)
- Mejor caso: 2*D + C
- Peor caso: 3*D + K*B * D
Inserción
[editar]Costo único: B(C+R*D)
Búsqueda por igualdad
[editar]- Peor Caso: B(D + R*C)
- Promedio: 0.5 * B * (D + R*C) → Atributos clave
Búsqueda por Rango
[editar]Costo: B (D + R*C)
Eliminación y Actualizaciòn
[editar]Son iguales debido a que se puede considerar que una eliminación es una actualización en la que se busca el bloque donde se encuentra el registro a eliminar y se marca como eliminado. Costo: Costo(Búsqueda) + R * (D+C)