3.5 Implementación física de bases de datos relacionales. Motivación: independencia de datos Aunque la arquitectura de niveles de un SGBD permite manipular una base de datos sin conocer los detalles de implementación, estos últimos pueden ser determinantes para el buen funcionamiento de un sistema de bases de datos. 3.5 Implementación física de bases de datos relacionales. Ciclista (dorsal,... ) Equipo (nomeq,... ) Etapa (netapa,.... ) Maillot (codigo,... ) .............. Ciclista Arquitectura de niveles SELECT dorsal, nombre FROM Ciclista Esquemas externos Esquema lógico (especificación) Esquema físico (implementación) ORACLE INDEX (dorsal) DATAFILE Disco1:F1 Equipo HEAP ........ F1 Disco1 Implementación de la BD en disco SO 3.5 Implementación física de bases de datos relacionales. Técnicas de bases de datos: 9gran volumen de datos 9persistencia en el tiempo tecnología actual almacenamiento de la BD en memoria secundaria (discos) acceso a memoria secundaria mas lento que a memoria principal elegir una implementación de las relaciones que reduzca el número de accesos a disco estudio 9 características de las estructuras de datos para memoria secundaria (ficheros) 3.5 Implementación física de bases de datos relacionales. ¿Estructuras de datos utilizadas para organizar los datos en memoria secundaria? tipo de datos “fichero” 3.5 Implementación física de bases de datos relacionales. fichero ≡ colección de registros Ficheros ordenados: los registros se guardan en orden del valor en uno o más campos. Ficheros desordenados: los registros se guardan sin orden Ficheros dispersos: organización de acceso directo. 9 acceso a la localización exacta de un registro por el valor de un campo (o campos), basada en el uso de funciones de dispersión (hashing). 5 3.5 Implementación física de bases de datos relacionales. Fichero ordenado: 2 5 8 12 Ventajas (operaciones eficientes): 9 lectura de los registros en orden del campo de ordenación. 15 21 Inconvenientes (operaciones costosas): 24 29 9 búsqueda de un registro basada en un campo distinto al campo de ordenación. 35 36 9 inserción y borrado de registros. 39 41 (bloques del fichero: 2 registros/bloque) 3.5 Implementación física de bases de datos relacionales. Fichero desordenado: 5 2 15 8 12 41 21 39 Ventajas (operaciones eficientes): 9 inserción de registros. Inconvenientes (operaciones costosas): 24 29 36 35 (bloques del fichero: 2 registros/bloque) 9 búsqueda de un registro basada en una condición de búsqueda. 3.5 Implementación física de bases de datos relacionales. Fichero disperso (hashing): Una función p llamada función de dispersión o de aleatorización se aplica al valor de un campo(s) del registro (campo de dispersión) K y devuelve la dirección del “bloque” de disco en el que se almacena el registro. Dominio del campo de dispersión K: D Espacio de direcciones (cubos): Un cubo es o un bloque del disco o un grupo de bloques contiguos p : D → 0..N-1 (N cubos) 3.5 Implementación física de bases de datos relacionales. Cubos principales cubo 0 360 360 450 210 360 MOD 3 puntero cubo 1 322 52 211 59 nulo cubo 2 362 59 311 59 MOD 3 puntero Función de dispersión típica: p (K) = K mod N 3.5 Implementación física de bases de datos relacionales. Fichero disperso (hashing): Ventajas (operaciones eficientes): 9búsqueda de un registro por el campo de dispersión. Inconvenientes (operaciones costosas): 9lectura secuencial de los registros por el valor del campo de dispersión. 9colisiones: al valor del campo de dispersión de un registro nuevo le corresponde una dirección llena 9crecimiento del fichero. 3.5 Implementación física de bases de datos relacionales. Índices: estructuras auxiliares de acceso a los registros de un fichero. Índice: estructura de datos que permite el acceso a los registros de un fichero por el valor de un campo (campo de indización) Elementos de un índice (entradas del índice): valor del campo de + indización de un registro “dirección” del registro Los índices permiten el acceso directo y el acceso ordenado a los registros del fichero por el campo de indización. 3.5 Implementación física de bases de datos relacionales. Fichero de datos Índice 123 • 123 Estructura auxiliar para acceder directamente a los registros del fichero. Fichero de datos con una organización secuencial o dispersa. 3.5 Implementación física de bases de datos relacionales. • Opciones proporcionadas por los SGBD para la implementación de BD: – Distintos tipos de organizaciones básicas: ordenada, desordenada, dispersa. – Distintos tipos de dispersión: funciones de dispersión, tratamiento del desborde, ... – Varios tipos de indización: tipos de índices. – Agrupación de tablas relacionadas – Enlaces a través de punteros de registros relacionados 3.5 Implementación física de bases de datos relacionales. relación del esquema relacional organización de fichero + [índices] 3.5 Implementación física de bases de datos relacionales. • Factores a tener en cuenta en la implementación de BD: – Espacio físico utilizados por los ficheros y sus estructuras de acceso (índices). – Tiempo de respuesta esperado. – Tipo y frecuencia de ejecución de las operaciones de manipulación del fichero. 3.5 Implementación física de bases de datos relacionales. Implementación estándar: – Utilizar un fichero desordenado para almacenar las tuplas de la relación. – Crear tantos índices como sean necesarios. – Si la información va a sufrir muchas inserciones y borrados hay que intentar minimizar el número de índices. – El fichero que tiene un índice para cada uno de sus campos se llama fichero invertido completamente – Si la recuperación por orden de un campo es muy frecuente, puede plantearse usar una organización ordenada para el fichero. – Si no es frecuente la recuperación ordenada se puede usar una organización dispersa para el fichero. 3.5 Implementación física de bases de datos relacionales. Consultas sobre más de una relación: Agrupación – Dos relaciones tiene sendos atributos que habitualmente se usan para su concatenación. – Es deseable guardar físicamente en el mismo bloque las tuplas relacionadas de ambas relaciones. 3.5 Implementación física de bases de datos relacionales. Ventajas de la agrupación: • Se reduce el tiempo de acceso en las concatenaciones, ya que el número de bloques accedido es menor. • La clave de agrupación sólo se almacena una vez. Desventajas de la agrupación • Obliga a mantener juntas las tuplas con el mismo valor en la clave de agrupación. • Inserciones y modificaciones de la clave de agrupación son costosas.