Organización y acceso a los datos
Bases de Datos 2 - Tecnologo de Informatica
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Jerarquía de almacenamento
La colección de datos que constituye una BD debe almacenarse físicamente en unmedio de
almacenamiento.
Luego el DBMS puede recuperar, actualizar y procesar estos datos.
Los medios de almacenamiento forman una jerarquía de almacenamento.
1 Almacenamiento principal o primario
2 Almacenamiento secundario
3 Almacenamiento terciario
Almacenamiento principal o primario
Medios utilizados directamente por el CPU.
El principal es la memoria que es subdividida en una jerarquía.
Memoria caché, es una RAM estática. La utiliza el CPU para acelerar la ejecución de los programas. Es muy cara.
Memoria principal, es una DRAM (RAM dinámica). Área de trabajo de la CPU para almacenar programas y datos.
Tiene menor costo y es más lenta que la RAM estática.
En algunos casos, una BD pueden mantenerse totalmente en la memoria principal. Son útiles en aplicaciones de tiempo real.
Almacenamiento secundario y terciario
La principal opción para almacenamiento de BD online son losdiscos magnéticos.
Otra opción para almacenar información persistente son lasmemorias flash.
SSD (solid-state-drive).
Losdiscos ópticos y las cintas son utilizados en sistemas de almacenamiento offline. Son categorizados como almacenamiento tercieario.
Estos dispositivos tienen gran capacidad, cuestan poco y proporcionan un acceso más lento que los dispositivos de almacenamiento primarios.
Los datos no pueden ser procesados directamente por el CPU; primero deben copiarse en el almacenamiento principal.
Almacenamiento de bases de datos
Las BD normalmente almacenan grandes cantidades de datos.
La mayoría se almacenan de forma permanente (o persistentemente) en almacenamiento secundario de disco magnético debido a:
Son demasiado grandes para entrar en memoria.
Perdida de datos almacenados y almacenamiento no volátil.
Costo de almacenamiento.
Son dispositivos online.
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Dispostivos de disco
Discos magnéticos
Disco Duro (HDD por hard disk drive) es un dispositivo que contiene discos magnéticos.
Su unidad básica es el bit. La información es codificada en bytes, comunmente de a 8 bits c/byte.
La información se almacena enbloques de disco (o páginas). Un bloque es una secuencia de sectores de una misma pista/track del disco. Las pistas de varios discos forman un cilindro (ver imagen).
La dirección de hardware de un bloque es una
combinación de número de cilindro, número de pista y número de bloque.
Dispostivos de disco
Figura :Elmasri edición 7, fig. 16.1
Bloques de disco
La transferencia de datos entre la memoria principal y el disco tiene lugar en unidades de bloques de disco.
El rango de tamaños varia de 512 bytes a varios kilobytes por bloque.
Se puede indicar la cantidad de bloques por pista al formatear el disco.
Bloques pequeños: más transferencias desde el disco.
Bloques más grandes: más espacio desperdiciado.
Tamaño típico oscila entre 4 y 16 KB.
Buffer y Buffer Manager
Los sistemas de BD buscan minimizar el número de bloques o páginas tranferidos entre el disco y la memoria.
Podemos reducir el número de accesos a disco
manteniendo en memoria principal tantos bloques como sea posible.
Buffer es una porción de la memoria principal disponible para almacenar copias de bloques de disco.
Se llamaBuffer manager al subsistema del DBMS responsable de la asignación de espacio del buffer.
El buffer manager ve la memoria principal disponible como un buffer pool. El tamaño del buffer pool es tipicamente un parámetro del DBMS controlado por el DBA.
Buffer Manager
Los programas llaman al buffer manager cuando necesitan un bloque de disco.
1 Si el bloque está en el buffer, el buffer manager retorna la dirección en memoria principal del bloque.
2 Si el bloque no está en el buffer, el buffer manager:
1 Asigna espacio en el buffer para el bloque.
1 Reemplaza algún otro bloque, de ser necesario, para hacer lugar al nuevo bloque utilizando una política de reemplazo.
2 Un bloque reemplazado es escrito a disco si fue modificado desde la última vez que fue escrito o recuperado del disco (dirty bit on).
2 Lee el bloque del disco al buffer y retorna la dirección en memoria principal del bloque a quien lo solicitó.
Buffer Manager
Políticas de reemplazo
Least recently used (LRU). Se elige para reemplazo la página que no ha sido utilizada por el período más largo.
Clock policy. Se marca cada buffer con un 0 o 1
dependiendo de su uso. Se busca en recorrida round-robin el primer buffer que tenga valor 0 para su reemplazo.
First-in-first-out (FIFO). Se elige el buffer que ha estado ocupado más tiempo por una página. Requiere menos mantenimiento que LRU.
Pinned block. Bloques de memoria que no está permitido bajarlos a disco.
Buffer Manager
Políticas de reemplazo
Las políticas LRU y Clock no son las mejores para
aplicaciones de BD que requieren recorridas secuenciales de datos y el archivo no entra completamente en el buffer.
Políticas como FIFO pueden modificarse para asegurar que bloques marcados/pinned, como bloques raiz de un índice, permanezcan en el buffer.
En algunas situaciones puede forzarse la escritura a disco incluso cuando no es necesario el espacio ocupado. Ej.
registros de log.
Hay mas estrategías de reemplazo. EjMRU (most recently used).
Subsistema de disco
Interfacing Disk Drives to Computer Systems
Múltiples discos están conectados al sistema computador a través delcontrolador de disco.
Familias de estandar de interfaces de disco:
SATA (Serial ATA); dtr 150 MB/s.
SCSI (Small Computer System Interconnect) SAS (Serial Attached SCSI); dtr 3 a 6 Gb/s.
Otras variantes de cada standard.
Subsistema de disco
Comunmente el controlador está incluido en el disco (DAS, Direct Attached Storage).
En unStorage Area Networks (SAN), un gran número de discos (LUN, Logical Unit Number) están conectados por una red de alta velocidad a un números de servidores.
En unNetwork Attached Storage (NAS) el storage conectado en red provee una interfaz de sistema de archivos (file system) utilizando un protocolo de red de sistema de archivos (NFS), en lugar de proveer un sistema de interfaz de disco.
Dispositivos de cinta magnética
Acceso a los bloques de datos enorden secuencial.
Los discos son almacenamiento deacceso aleatorio porque cualquier bloque puede ser accedido de forma aleatoria conocida su dirección.
En una cinta para acceder al n-ésimo bloque deben recorrerse los n-1 bloques anteriores.
Utilizados principalmente para la copia de seguridad de la base de datos, para archivar información y como medio para transferencia de informacón de un sistema a otro.
Tape jukeboxes son sistemas que almacenan de cientos de terabytes hasta varios petabytes.
Ejemplos:
LTO-6, 2.5-TB , dtr 160 MB/s. 80 segundos de promedio de busqueda.
T10000D de Oracle/StorageTek, 8.5 TB, dtr 252 MB/s.
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Organización de Archivos
La base de datos es almacenada como una colección de archivos. Cada archivo es una secuencia de registros. Un registro es una secuencia de campos.
Un enfoque:
Asumir que el tamaño/largo del registro es fijo.
Cada archivo tiene registros solo de un tipo.
Diferentes archivos son utilizados para diferentes relaciones.
Este caso es fácil de implementar. Luego vemos otros casos.
Registros de largo fijo
Enfoque simple:
El registro almacenado i empieza en el byte n*(n-1), donde n es el tamaño de cada registro.
Acceder al registro es simple pero los registros pueden cruzar bloques.
Hay varias alternativas al borrar un registro i:
Mover los registros i+1,...,n a i,...,n-1.
Mover el registro n a i.
No mover registros pero mantener links a todos los registros libres (free list).
Registros de largo fijo
Borro registro 3 y compacto
Registros de tamaño fijo
Borro registro 3 y muevo el último
Registros de largo fijo
Free List
Almaceno la dirección del primer registro borrado en el cabezal del archivo.
Uso el dicho registro para almacenar la dirección del seegundo registro borrado y así sucesivamente.
Registros de largo variable
Un sistema de BD puede utilizarregistros de largo variable por varias razones:
Alamacena varios tipos de registro en un archivo.
Los tipos de registro permiten largos variables para uno o más campos (ej. varchar).
Los registros de un archivo son del mismo tipo, pero uno o más campos son opcionales; es decir, pueden incluir valores para algunos registros pero no todos (campos opcionales).
Los atributos son almacenados en orden.
Cada registro tiene un valor para cada campo.
Valores Null son representados con null-value bitmap.
Pueden utilizarse caracteres separadores especiales para finalizar los campos de largo variable o podemos
almacenar el largo del campo (offset y largo).
Registros de largo variable
Formatos de registros
Outline
1 Almacenamiento en disco Medios de almacenamiento
Dispositivos de almacenamiento secundario
2 Estructuras básicas de archivo Organización de Archivos
Organización de Registros en Archivos
Organización de Registros en Archivos
Organizaciones principales de ficheros que determinan la colocación física (organización) de los registros del fichero en el disco y cómo se puede acceder a ellos (métodos de acceso).
Típicas operaciones sobre archivos: open, reset, find (locate), read (get), findnext, delete, modify, insert, close.
Una organización de archivos exitosa debe llevar a cabo las operaciones que esperan aplicarse frecuentemente sobre le archivo de la manera más eficiente posible.
Un archivo puede almacenarse una sola vez utilizando una organización particular. El DBA puede tomar decisiones de diseño
Organización de Registros en Archivos
Fichero Heap (fichero desordenado). Un registro puede ubicarse en el archivo en donde haya espacio. Sin orden particular.
Fichero Secuencial (fichero ordenado). Registros almacenados en orden secuencial basado en el valor de un campo particular de cada registro.
Fichero Disperso (Hashing). Una función de hash aplicada sobre algún atriuto de cada registro; el resultado especifica en cual bloque del archivo debe ubicarse el registro.
Registros de cada relación pueden almacenarse en archivos separados. En unamultitable clustering file organization registros de diferentes relaciones pueden almacenarse en el mismo archivo.
Motivación: almacenar registros relacionados en el mismo bloque para minimizar I/O.
Organización de Registros en Archivos
Blocking factor
Los tamaños de un registro puede ser más grande o pequeño que el tamaño del bloque. Para registros de largo fijo con tamaño R bytes y siendo B el tamaño del bloque, con B>=R, pueden entrar bfr = [B/R]) registros.
bfr es llamado elblockin factor para un archivo.
Notar que la división de los bloques en registros no es exacta.
Organización Expandidad y No expandida
Para aprovechar el espacio no utilizado podemos
almacenar parte de un registro en un bloque y el resto en otro.
Un puntero en el final del primer bloque apunta al bloque que contiene el resto del registro.
Esta organización es dice que esexpandida (spanned).
Cuando R>B, debemos utilizar una organización expandida.
Si no está permitido que los registro crucen bloques, la organización se dice que esno expandida (unspanned).
Organización Expandidad y No expandida
Figura :Elmasri edición 7, fig. 16.6
Fichero Heap
Fichero desordenado
Es el tipo de organización más simple y básico.
Los registros son ubicados en el archivo en el orden en que son insertados. Nuevos registros son insertados al final del archivo.
También es conocido como fichero de pila.
Insertar un nuevo registro es muy eficiente. El último bloque de disco del archivo es copiado en el buffer, se agrega el registro y el bloque es reescrito en disco.
Labúsqueda por condición requiere llevar a cabo una búsqueda lineal del archivo bloque por bloque.
Fichero Heap
Fichero desordenado
Paraborrar un registro se debe encontrar el bloque, copiarlo en el buffer, borrar el registro del buffer y reescribir el bloque en disco.
Esto deja espacio no utilizado en los bloques de disco.
Borrar muchos registros resulta en un desperdicio de espacio almacenamiento.
Se requiere un reorganización periodica del archivo para reclamar el espacio no utilizado.
Otra posibilidad es utilizar el espacio de registros borrados para almacenar nuevos registros.
Fichero Secuencial
Organización Secuencial
Es útil para aplicaciones que requieren procesamiento secuencial de los archivos completos.
Los registros en el archivo son ordenados por la clave de ordenación/búsqueda (campo particular).
Los ficheros secuenciales se pueden agrupar y almacenar en cilindros continuos para minizar tiempos de búsqueda en disco.
Fichero Secuencial
Insertar y borrar registros son operaciones costosas porque el archivo debe permanecer ordenado.
Borrado. Utiliza cadenas de punteros.
Inserción. Ubica la posición donde debe insertarse el registro.
Si hay espacio libre es insertado ahí.
Si no hay espacio libre, es insertado en unbloque overflow.
En cualquier caso, la cadena de puntero debe ser actualizada.
Se requiere reorganizar el archivo de vez en cuando para restaurar el orden secuencial.
Multitable Clustering File Organization
Almacena varias relaciones en un mismo archivo utilizando multitable clustering File organization Departamento
Instructor
Multitable clustering de Departamento y Instructor
Multitable Clustering File Organization
Es una buena organización para consultas que involucren operaciones Join entre departamento e instructor, y para consultas que involucren un departamento y sus
instructores.
Es mala para consultas que involucren solo departamentos
Se puede argegar cadenas de punteros para linkear registros de una relación particular.