40
Organización y acceso a los datos Bases de Datos 2 - Tecnologo de Informatica BD2 - Programación

Organización y acceso a los datos - fing.edu.uy

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Organización y acceso a los datosBases de Datos 2 - Tecnologo de Informatica

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Jerarquía de almacenamento

La colección de datos que constituye una BD debealmacenarse físicamente en un medio dealmacenamiento.Luego el DBMS puede recuperar, actualizar y procesarestos datos.Los medios de almacenamiento forman una jerarquía dealmacenamento.

1 Almacenamiento principal o primario2 Almacenamiento secundario3 Almacenamiento terciario

BD2 - Programación

Almacenamiento principal o primario

Medios utilizados directamente por el CPU.El principal es la memoria que es subdividida en unajerarquía.Memoria caché, es una RAM estática. La utiliza el CPUpara acelerar la ejecución de los programas. Es muy cara.Memoria principal, es una DRAM (RAM dinámica). Áreade 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 totalmenteen la memoria principal. Son útiles en aplicaciones detiempo real.

BD2 - Programación

Almacenamiento secundario y terciario

La principal opción para almacenamiento de BD online sonlos discos magnéticos.Otra opción para almacenar información persistente sonlas memorias flash.SSD (solid-state-drive).Los discos ópticos y las cintas son utilizados ensistemas de almacenamiento offline. Son categorizadoscomo almacenamiento tercieario.Estos dispositivos tienen gran capacidad, cuestan poco yproporcionan un acceso más lento que los dispositivos dealmacenamiento primarios.Los datos no pueden ser procesados directamente por elCPU; primero deben copiarse en el almacenamientoprincipal.

BD2 - Programación

Almacenamiento de bases de datos

Las BD normalmente almacenan grandes cantidades dedatos.La mayoría se almacenan de forma permanente (opersistentemente) en almacenamiento secundario dedisco magnético debido a:

Son demasiado grandes para entrar en memoria.Perdida de datos almacenados y almacenamiento novolátil.Costo de almacenamiento.Son dispositivos online.

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Dispostivos de discoDiscos magnéticos

Disco Duro (HDD por hard disk drive) es un dispositivo quecontiene discos magnéticos.Su unidad básica es el bit. La información es codificada enbytes, comunmente de a 8 bits c/byte.La información se almacena en bloques de disco (opáginas). Un bloque es una secuencia de sectores de unamisma pista/track del disco. Las pistas de varios discosforman un cilindro (ver imagen).La dirección de hardware de un bloque es unacombinación de número de cilindro, número de pista ynúmero de bloque.

BD2 - Programación

Dispostivos de disco

Figura : Elmasri edición 7, fig. 16.1BD2 - Programación

Bloques de disco

La transferencia de datos entre la memoria principal y eldisco tiene lugar en unidades de bloques de disco.El rango de tamaños varia de 512 bytes a varios kilobytespor bloque.Se puede indicar la cantidad de bloques por pista alformatear 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.

BD2 - Programación

Buffer y Buffer Manager

Los sistemas de BD buscan minimizar el número debloques o páginas tranferidos entre el disco y la memoria.Podemos reducir el número de accesos a discomanteniendo en memoria principal tantos bloques comosea posible.Buffer es una porción de la memoria principal disponiblepara almacenar copias de bloques de disco.Se llama Buffer manager al subsistema del DBMSresponsable de la asignación de espacio del buffer.El buffer manager ve la memoria principal disponible comoun buffer pool. El tamaño del buffer pool es tipicamente unparámetro del DBMS controlado por el DBA.

BD2 - Programación

Buffer Manager

Los programas llaman al buffer manager cuando necesitanun bloque de disco.

1 Si el bloque está en el buffer, el buffer manager retorna ladirecció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 hacerlugar al nuevo bloque utilizando una política de reemplazo.

2 Un bloque reemplazado es escrito a disco si fue modificadodesde 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 enmemoria principal del bloque a quien lo solicitó.

BD2 - Programación

Buffer ManagerPolíticas de reemplazo

Least recently used (LRU). Se elige para reemplazo lapágina que no ha sido utilizada por el período más largo.Clock policy. Se marca cada buffer con un 0 o 1dependiendo de su uso. Se busca en recorrida round-robinel primer buffer que tenga valor 0 para su reemplazo.First-in-first-out (FIFO). Se elige el buffer que ha estadoocupado más tiempo por una página. Requiere menosmantenimiento que LRU.Pinned block. Bloques de memoria que no está permitidobajarlos a disco.

BD2 - Programación

Buffer ManagerPolíticas de reemplazo

Las políticas LRU y Clock no son las mejores paraaplicaciones de BD que requieren recorridas secuencialesde datos y el archivo no entra completamente en el buffer.Políticas como FIFO pueden modificarse para asegurarque bloques marcados/pinned, como bloques raiz de uníndice, permanezcan en el buffer.En algunas situaciones puede forzarse la escritura a discoincluso cuando no es necesario el espacio ocupado. Ej.registros de log.Hay mas estrategías de reemplazo. Ej MRU (most recentlyused).

BD2 - Programación

Subsistema de discoInterfacing Disk Drives to Computer Systems

Múltiples discos están conectados al sistema computadora través del controlador 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.

BD2 - Programación

Subsistema de disco

Comunmente el controlador está incluido en el disco(DAS, Direct Attached Storage).En un Storage Area Networks (SAN), un gran número dediscos (LUN, Logical Unit Number) están conectados poruna red de alta velocidad a un números de servidores.En un Network Attached Storage (NAS) el storageconectado en red provee una interfaz de sistema dearchivos (file system) utilizando un protocolo de red desistema de archivos (NFS), en lugar de proveer un sistemade interfaz de disco.

BD2 - Programación

Dispositivos de cinta magnética

Acceso a los bloques de datos en orden secuencial.Los discos son almacenamiento de acceso aleatorioporque cualquier bloque puede ser accedido de formaaleatoria conocida su dirección.En una cinta para acceder al n-ésimo bloque debenrecorrerse los n-1 bloques anteriores.

Utilizados principalmente para la copia de seguridad de labase de datos, para archivar información y como mediopara transferencia de informacón de un sistema a otro.Tape jukeboxes son sistemas que almacenan de cientosde terabytes hasta varios petabytes.Ejemplos:

LTO-6, 2.5-TB , dtr 160 MB/s. 80 segundos de promedio debusqueda.T10000D de Oracle/StorageTek, 8.5 TB, dtr 252 MB/s.

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Organización de Archivos

La base de datos es almacenada como una colección dearchivos. Cada archivo es una secuencia de registros. Unregistro 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 diferentesrelaciones.

Este caso es fácil de implementar. Luego vemos otroscasos.

BD2 - Programación

Registros de largo fijo

Enfoque simple:El registro almacenado i empieza en el byte n*(n-1), donden es el tamaño de cada registro.Acceder al registro es simple pero los registros puedencruzar bloques.

Hay varias alternativas al borrar un registro i :Mover los registros i+1,...,n ai,...,n-1.

Mover el registro n a i.

No mover registros peromantener links a todos losregistros libres (free list).

BD2 - Programación

Registros de largo fijoBorro registro 3 y compacto

BD2 - Programación

Registros de tamaño fijoBorro registro 3 y muevo el último

BD2 - Programación

Registros de largo fijoFree List

Almaceno la dirección del primer registro borrado en elcabezal del archivo.Uso el dicho registro para almacenar la dirección delseegundo registro borrado y así sucesivamente.

BD2 - Programación

Registros de largo variable

Un sistema de BD puede utilizar registros de largovariable por varias razones:

Alamacena varios tipos de registro en un archivo.Los tipos de registro permiten largos variables para uno omás campos (ej. varchar).Los registros de un archivo son del mismo tipo, pero uno omás campos son opcionales; es decir, pueden incluirvalores para algunos registros pero no todos (camposopcionales).

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 parafinalizar los campos de largo variable o podemosalmacenar el largo del campo (offset y largo).

BD2 - Programación

Registros de largo variableFormatos de registros

BD2 - Programación

Outline

1 Almacenamiento en discoMedios de almacenamientoDispositivos de almacenamiento secundario

2 Estructuras básicas de archivoOrganización de ArchivosOrganización de Registros en Archivos

BD2 - Programación

Organización de Registros en Archivos

Organizaciones principales de ficheros que determinan lacolocación física (organización) de los registros del ficheroen el disco y cómo se puede acceder a ellos (métodos deacceso).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 cabolas operaciones que esperan aplicarse frecuentementesobre le archivo de la manera más eficiente posible.Un archivo puede almacenarse una sola vez utilizando unaorganización particular. El DBA puede tomar decisiones dediseño

BD2 - Programación

Organización de Registros en Archivos

Fichero Heap (fichero desordenado). Un registro puedeubicarse en el archivo en donde haya espacio. Sin ordenparticular.Fichero Secuencial (fichero ordenado). Registrosalmacenados en orden secuencial basado en el valor deun campo particular de cada registro.Fichero Disperso (Hashing). Una función de hashaplicada sobre algún atriuto de cada registro; el resultadoespecifica en cual bloque del archivo debe ubicarse elregistro.Registros de cada relación pueden almacenarse enarchivos separados. En una multitable clustering fileorganization registros de diferentes relaciones puedenalmacenarse en el mismo archivo.

Motivación: almacenar registros relacionados en el mismobloque para minimizar I/O.

BD2 - Programación

Organización de Registros en ArchivosBlocking factor

Los tamaños de un registro puede ser más grande opequeño que el tamaño del bloque. Para registros de largofijo 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 el blockin factor para un archivo.Notar que la división de los bloques en registros no esexacta.

BD2 - Programación

Organización Expandidad y No expandida

Para aprovechar el espacio no utilizado podemosalmacenar parte de un registro en un bloque y el resto enotro.Un puntero en el final del primer bloque apunta al bloqueque contiene el resto del registro.Esta organización es dice que es expandida (spanned).Cuando R>B, debemos utilizar una organizaciónexpandida.Si no está permitido que los registro crucen bloques, laorganización se dice que es no expandida (unspanned).

BD2 - Programación

Organización Expandidad y No expandida

Figura : Elmasri edición 7, fig. 16.6

BD2 - Programación

Fichero HeapFichero desordenado

Es el tipo de organización más simple y básico.Los registros son ubicados en el archivo en el orden enque son insertados. Nuevos registros son insertados alfinal del archivo.También es conocido como fichero de pila.Insertar un nuevo registro es muy eficiente. El últimobloque de disco del archivo es copiado en el buffer, seagrega el registro y el bloque es reescrito en disco.La búsqueda por condición requiere llevar a cabo unabúsqueda lineal del archivo bloque por bloque.

BD2 - Programación

Fichero HeapFichero desordenado

Para borrar un registro se debe encontrar el bloque,copiarlo en el buffer, borrar el registro del buffer y reescribirel bloque en disco.Esto deja espacio no utilizado en los bloques de disco.Borrar muchos registros resulta en un desperdicio deespacio almacenamiento.Se requiere un reorganización periodica del archivo parareclamar el espacio no utilizado.Otra posibilidad es utilizar el espacio de registros borradospara almacenar nuevos registros.

BD2 - Programación

Fichero SecuencialOrganización Secuencial

Es útil para aplicaciones que requieren procesamientosecuencial de los archivos completos.Los registros en el archivo son ordenados por la clave deordenación/búsqueda (campo particular).Los ficheros secuenciales se pueden agrupar y almacenaren cilindros continuos para minizar tiempos de búsquedaen disco.

BD2 - Programación

Fichero Secuencial

Insertar y borrar registros son operaciones costosasporque el archivo debe permanecer ordenado.Borrado. Utiliza cadenas de punteros.Inserción. Ubica la posición donde debe insertarse elregistro.

Si hay espacio libre es insertado ahí.Si no hay espacio libre, es insertado en un bloqueoverflow.En cualquier caso, la cadena de puntero debe seractualizada.

Se requiere reorganizar elarchivo de vez en cuandopara restaurar el ordensecuencial.

BD2 - Programación

Multitable Clustering File Organization

Almacena varias relaciones en un mismo archivoutilizando multitable clustering File organization

Departamento

Instructor

Multitable clustering deDepartamento y Instructor

BD2 - Programación

Multitable Clustering File Organization

Es una buena organización para consultas que involucrenoperaciones Join entre departamento e instructor, y paraconsultas que involucren un departamento y susinstructores.Es mala para consultas que involucren solodepartamentosSe puede argegar cadenas de punteros para linkearregistros de una relación particular.

BD2 - Programación