Вы находитесь на странице: 1из 8

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

ORGANIZACION FISICA DE LOS SISTEMAS DE BASE DE DATOS La organizacin fsica de una base de datos es un tpico extenso y se aborda en detalle, principalmente en la asignatura Base de Datos, y digo principalmente pues tambin se trata en sistemas operativo y sistemas de software. Sin embargo, el rendimiento general de un sistema de base de datos se determina en gran medida por las estructuras de datos fsicas usadas y por la eficiencia con la cual el sistema trabaja sobre las mismas. Aunque los usuarios no siempre deban tener conocimiento de los detalles del diseo fsico de la base de datos, sin embargo Ud. deberan saber que stos afectan al rendimiento, un factor de gran importancia en la satisfaccin del usuario con el sistema de base de datos. Una pregunta nos asalta, Podra el usuario obtener la informacin deseada en el formato apropiado y en un tiempo conveniente?. Esta ltima frase, "tiempo conveniente", puede expresarse generalmente como tiempo de respuesta aceptable. La "informacin deseada" y el "formato apropiado" no se afectan mucho por la organizacin fsica de la base de datos, pero el tiempo de respuesta s. El tiempo de respuesta es el tiempo transcurrido entre la iniciacin de una operacin sobre la base de datos y la disponibilidad del resultado. Un tiempo de respuesta lento es la queja ms frecuente que expresan los usuarios de los sistemas de bases de datos, posiblemente debido a que es lo que se observa ms fcilmente. Un buen diseo fsico de la base de datos almacenara datos de forma que puedan recuperarse, actualizarse y manipularse en el mnimo tiempo posible. En este segmento me interesa abordar aspectos de la organizacin fsica de la base de datos que soportan la eficiencia de las operaciones en las mismas. ACCESO FSICO A LA BASE DE DATOS

_________________________________________________________________________________ Area de Computacin, Universidad de La Serena

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

En la figura anterior, se muestra el sistema para el acceso fsico a la base de datos. Se puede ver la interaccin del usuario con el sistema de base de datos al iniciar una consulta. El selector de estrategia (usualmente el software que transforma una consulta del usuario en una forma efectiva para su posterior ejecucin) traduce la orden del usuario a su forma ms eficiente para su ejecucin. La orden traducida activa entonces al administrador de buffer, que controla el movimiento de datos entre la memoria principal y el almacenamiento en disco. El administrador de archivos da soporte al administrador de buffer administrando la reserva de localizaciones de almacenamiento en disco y las estructuras de datos asociadas. Adems de los datos del usuario, el disco contiene el diccionario de datos, que define la estructura de los datos del usuario y cmo stos pueden usarse. Los datos del usuario se almacenan como una base de datos fsica o coleccin de registros. FORMAS DE ALMACENAMIENTO FSICO La memoria principal es el almacenamiento intermedio usado por los datos que estn disponibles para las operaciones del usuario. Aqu es donde reside la ejecucin del programa. Como los datos se necesitan por el programa para ejecutar sus funciones, se transmiten estos desde el almacenamiento secundario a la memoria principal. Aunque la memoria principal puede ser capaz de almacenar varios megabytes de datos, es normalmente muy pequea para almacenar la base de datos completa, por lo que es necesario el almacenamiento secundario. El almacenamiento secundario para los sistemas, de base de datos est compuesto generalmente por el almacenamiento en disco y el almacenamiento en cinta magntica. Casi siempre, la base de datos completa se almacena en disco y porciones de sta se transfieren desde el disco a la memoria primaria, a medida que se necesita. El almacenamiento en disco es la forma principal de almacenamiento con acceso directo, por lo que los registros individuales se pueden acceder directamente. Aunque el almacenamiento en cinta magntica es menos costoso que el almacenamiento en disco, los registros pueden ser solamente accedidos secuencialmente (y ms lentamente que en disco). Su funcin en el sistema de base de datos est bsicamente limitada a archivar datos. La unidad fsica en la que est contenido el medio de grabacin del disco se llama controlador de disco (disk driver). El controlador de disco contiene un paquete de disco o volumen. La figura siguiente muestra las componentes principales de un paquete de disco, conformado por pistas.

_________________________________________________________________________________ Area de Computacin, Universidad de La Serena

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

La siguiente figura, muestra las componentes principales de un paquete de disco y el mecanismo de lectura y escritura para la transmisin de datos. El paquete de disco est formado por un conjunto de superficies grabables (discos) montados sobre un eje. En operacin, el eje y los discos rotan a una alta velocidad. Los datos se graban sobre las pistas, que son coronas circulares grabables encontradas sobre cada superficie, tal como se mostro en la figura anterior.

El conjunto de dichas pistas se denomina Cilindro, esto es muy til pues cualquier posicionamiento de un conjunto de cabezas de lectura/escritura puede ser descrito por la localizacin del cilindro, por ejemplo cilindro 199. En general la direccin de un registro del disco normalmente necesita informacin sobre el nmero del cilindro, de la superficie y del bloque.

_________________________________________________________________________________ Area de Computacin, Universidad de La Serena

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

La direccin de un registro del disco normalmente necesita informacin sobre el nmero del cilindro, de la superficie y del bloque. BLOQUES DE ALMACENAMIENTO FSICO El registro fsico o bloque es la unidad de dato ms pequea en un disco que es fsicamente direccionable, vea la figura anterior, en donde cada pista en una superficie est compuesta de un nmero de bloques. Un bloque puede contener uno o ms registros lgicos. Ejemplo: Supongamos que tenemos un factor de compactacin de 3, esto significa que en cada bloque se almacenan tres registros lgicos. Supongamos que deseamos recuperar el registro Juan Perez almacenado en la siguiente direccin: Nmero de cilindro: 5 Nmero de superficie: 2 Nmero de bloque: 1 Para recuperar el registro Juan Prez, las cabezas de lectura/escritura se mueven sobre el cilindro 5 (pista 5 en todas las superficies). Entonces se activan las cabezas de lectura/escritura para la superficie nmero 2 y se leen los nmeros de bloques a la vez que la pista gira sobre las cabezas. Cuando se detecta el bloque 1, el bloque entero de tres registros lgicos se lee en memoria principal, donde se selecciona el registro Juan Prez. En nuestro ejemplo suponemos la estructura ms general de un disco, donde las cabe zas de lectura/escritura estn sujetas a un brazo movible. No todas las unidades de disco estn configuradas de esta forma. En algunas, las cabezas de lectura/escritura son fijas para cada cilindro. Tpicamente estas unidades son ms costosas, pero ms rpidas, debido a que no hay retraso en mover las cabezas de lectura/escritura sobre un nuevo cilindro. Generalmente, el tiempo necesario para ejecutar clculos en un bloque es mucho menor que el necesario para transferir los datos entre el almacenamiento secundario y el primario. Sin embargo, una buena estrategia de diseo es identificar, donde sea posible, los registros lgicos que probablemente se usan en las mismas operaciones y agruparlos en bloques. Ejemplo: Supongamos que una firma almacena tres tipos de alambres, A, B y C, y que se entregan en el mismo cargamento. Si cada bloque contiene tres registros y los registros A, B y C se almacenan en bloques separados, se necesitaran tres operaciones de entrada/salida (E/S) para actualizarlos. Sin embargo, si se agrupan en el mismo bloque, entonces slo es necesaria una operacin de E/S. Debido a que generalmente el acceso a disco es un cuello de botella en las operaciones de acceso a una base de datos, una asignacin cuidadosa de los registros en los bloques puede mejorar significativamente el tiempo de respuesta. FACTORES DE RENDIMIENTO DEL DISCO En general, hay cuatro factores que directamente afectan a la velocidad, con la que los datos se transfieren a y desde el almacenamiento en disco: tiempo de posicionamiento (access motion time), tiempo de activacin de la cabeza, retraso de rotacin y razn de transferencia. Tiempo de posicionamiento (TP), se conoce como tiempo de bsqueda (seek time), es el tiempo necesario para mover las cabezas de lectura/escritura desde su posicin actual a una nueva direccin de cilindro. Obviamente, un movimiento hacia una posicin adyacente no toma la misma cantidad de tiempo que moverse a travs de toda la superficie del disco (desde la pista ms interna hasta la ms externa, y viceversa). Como una aproximacin en los clculos puede usarse el tiempo medio de posicionamiento: aproximadamente el tiempo necesario para moverse a travs de la mitad de los cilindros, por lo que debe usarse un mtodo ms sofisticado. Un acuerdo estndar _________________________________________________________________________________ Area de Computacin, Universidad de La Serena 4

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

consiste en que la probabilidad de acceso para todos los registros sea igual, brindando una distribucin de probabilidad uniforme. El promedio para una distribucin uniforme se encuentra en el medio entre los valores extremos. Para el tiempo de posicionamiento, el valor extremo pudiera ser (1) mantenerse posicionado sobre el cilindro actual, o (2) moverse desde el cilindro ms interno hacia el ms externo (o viceversa). Dado que asumimos la distribucin uniforme, la media sera el tiempo para moverse a travs de la mitad de los cilindros. De doce a veinte milisegundos es el tiempo medio tpico de posicionamiento, de acuerdo con el modelo y la composicin del controlador de disco, hoy en da es factible de encontrar tiempos medios menores. Tiempo de activacin de la cabeza es el tiempo necesario para activar electrnicamente la cabeza que se encuentra sobre la superficie cuando ocurre la transferencia de datos. En comparacin con otros factores de rendimiento, generalmente este tiempo es despreciable. Por esta razn rara vez se usa en los clculos de rendimiento. El Retraso de rotacin o latencia es el tercer factor de tiempo. Representa la cantidad de tiempo que necesita el bloque seleccionado para rotar la cabeza, de forma tal que la transferencia de datos pueda comenzar. El tiempo de rotacin depende de dos factores: a qu rapidez rota el disco y la localizacin del bloque buscado en relacin con el tiempo de activacin de la cabeza de lectura/escritura. Fsicamente este tiempo puede variar desde cero hasta el tiempo necesario para completar una revolucin del disco (R). Ejemplo: Supongamos que desea montar sobre el caballo negro en el carrusel (asumiendo que existe slo un caballo de este tipo). Si compra un ticket y corre a montarse en el carrusel, la probabilidad de que el caballo negro puede estar justo donde se detuvo sera la misma que para cualquiera de los otros caballos. Si fuera un fantico y lo intentara varias veces, puede que alguna vez se detenga frente al caballo negro, pero tambin puede encontrarse con la situacin en que lo pierda y tenga que esperar por una vuelta completa del carrusel. Como media, espera media vuelta para montarse en el caballo negro. La moraleja de esta historia es que los clculos de rendimiento generalmente asumen un retraso de rotacin media de R/2.
TRANSFERENCIA DE DATOS

Razn de transferencia de datos (D) se refiere a la cantidad de tiempo necesario para transferir los datos desde el disco hacia (o desde) la memoria principal. Depende de la velocidad de rotacin y de la cantidad de datos almacenados. El tiempo de transferencia de datos normalmente se expresa en cientos de bytes por segundo. Tiempo de transferencia de datos El tiempo previsto (T) para acceder a una direccin en disco y transferir un bloque de datos se estima como T= P + R/2 + L/D, donde P es el tiempo de posicionamiento, R es el retraso de rotacin, L es el tamao del bloque en bytes y D es la velocidad de transferencia de datos. Ejemplo (registro accedido aleatoriamente). Supongamos que los registros de reclamacin de una compaa de seguros se almacenan en bloques de tres registros en el disco (un factor de compactacin de tres) y que cada registro de reclamacin ocupa 200 bytes. La velocidad de transferencia de datos es de 806.000 bytes por segundo. El tiempo de posicionamiento medio es de 30 milisegundos. La unidad de disco rota a una velocidad de 3.600 vueltas por minuto. Supongamos que un usuario llama para averiguar el estado de una reclamacin. Cul es el tiempo de transferencia de datos para buscar el bloque de datos? Para responder esta pregunta se asignan valores apropiados a las variables anteriores en la forma siguiente. A=0,030 seg. Revoluciones por segundos = 7.200/60=120. _________________________________________________________________________________ Area de Computacin, Universidad de La Serena 5

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

R= 1/120 seg. = 0,0083 seg. R/2 = 0, 0083 * (la media de espera es de media revolucin) = 0, 00415 L/D = 600/806000 = 0,00074, por lo que T = 0,030 + 0, 00415 + 0, 00074 = 0, 03489 seg. Ejemplo (registro accedido secuencialmente). Ahora analizaremos el clculo del tiempo medio de acceso a un registro en un archivo accedido secuencialmente. Supongamos que en vez de responder al acceso aleatorio de un bloque de datos, como en el ejemplo anterior, estamos actualizando el archivo de un usuario de la compaa de seguros con los pagos recibidos a principios de mes. Tiene sentido que estos archivos estn organizados secuencialmente por el nmero de la pliza y que estn localizados en bloques secuenciales por cilindros. Esto significa que primero se rellena el cilindro N con bloques secuenciales, despus el N + 1 y as sucesivamente. De esta forma se minimiza el tiempo de movimiento de la cabeza. En particular, si las cabezas de lectura/escritura se encuentran en el primer cilindro, entonces todos los registros en este cilindro se transfieren sin un tiempo de posicionamiento adicional. Por lo que, en el clculo del tiempo de acceso medio para cada registro de un archivo procesado secuencialmente, el tiempo de posicionamiento es despreciable y se ignora. Pudiera existir un pequeo retraso cada vez que la funcin de lectura/escritura cambia desde una pista de un cilindro hacia otra. Esto es necesario con el objetivo de disminuir pequeas diferencias en la alineacin de las pistas sobre diferentes superficies. Para nuestros propsitos, este retraso puede ser aproximadamente el tiempo necesario para dar una media vuelta del paquete de disco. Una vez se haya encontrado el registro inicial de la nueva pista, se pueden transmitir el resto de los bloques sobre la pista. Por tanto, si el archivo del usuario ocupa ocho pistas sobre el cilindro, el nmero de retraso de medias vueltas sera 8. Supongamos ahora que cada pista contiene 1.000 bloques. Tenemos un total de 8.000 bloques; si los mismos tienen un factor de compactacin de tres, tenemos 24.000 registros de plizas. Asumamos, como antes, que cada registro contiene 200 bytes, entonces nuestros bloques ocupan 600 bytes. Si procesamos secuencialmente un archivo completo, el tiempo medio para acceder a un registro se calcula como sigue Tiempo total para leer todos los bloques = 0,00415 * (8) + 0,00074 * (8000) = 0,0664 + 5,92 = 5,9232. T representa el tiempo de transferencia medio para un registro accedido secuencialmente en el archivo de plizas. Aplicacin: Suponga que tenemos almacenados registros en un dispositivo de disco que posee las siguientes caractersticas: Tiempo de posicionamiento medio: 0,02 seg., velocidad de rotacin del disco: 3.600 revoluciones por minuto, velocidad de transferencia de datos: 312.000 bytes por segundo. Cul es el tiempo de transferencia de datos esperado para un registro fsico accedido aleatoriamente que ocupa 500 bytes?. Organizacin de archivos y mtodos de direccionamiento Hasta ahora se ha aprendido algo acerca de los dispositivos que se usan para almacenar datos y las operaciones de E/S usadas para transmitir datos hacia y desde dichos dispositivos. Ahora consideraremos los mtodos de organizacin y direccionamiento de estos datos sobre dichos dispositivos para facilitar el almacenamiento y las operaciones de E/S. Existen tres formas bsicas de organizacin fsica de archivos sobre los dispositivos de almacenamiento: (1) organizacin secuencial, (2) organizacin secuencial-indexada y (3) organizacin directa. (4) Funcin hash Estas no son un conjunto completo de todas las opciones de organizacin posibles, pero aquellas que se omiten no son ms que modificaciones de estos 3 tipos bsicos. En la presentacin de este tema, los trminos organizacin y acceso se usan a menudo libremente, pero no son intercambiables. La razn es que la forma en que los datos estn almacenados est estrechamente relacionada con el mtodo de acceso.

_________________________________________________________________________________ Area de Computacin, Universidad de La Serena

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

(1) Organizacin secuencial de un archivo La organizacin secuencial de un archivo significa que los registros se almacenan adyacentes unos a otros, de acuerdo con la clave, como son el nmero del empleado, el nmero de cuenta, entre otros. Una implementacin convencional organiza los registros en orden ascendente de los valores de la clave. Este es un mtodo eficiente de organizacin de registros cuando una aplicacin, como el programa de nmina, actualiza un nmero insignificante de los registros ya almacenados. Si un archivo secuencial se encuentra sobre una cinta magntica, sus registros se acceden slo de forma secuencial. Esto significa que, si deseamos acceder al dcimo registro secuencial, generalmente se debern leer los anteriores nueve registros. El acceso directo a un registro en particular no es posible. Como consecuencia, las cintas magnticas no son propias para las operaciones de bases de datos y normalmente se usan para guardar los archivos de diario y almacenar informacin de archivos. (2) Organizacin secuencial-indexada de un archivo Consiste en que los archivos estn organizados secuencialmente; sin embargo, es posible acceder directamente a los registros. La organizacin secuencial-indexada de un archivo brinda facilidades para acceder a los registros de ambas formas, secuencial y directamente. Los registros se almacenan en la secuencia fsica usual por la clave primaria. Adems, se almacena en el disco el ndice de la localizacin del registro. Esto permite el acceso secuencial a los registros para aquellas aplicaciones que realicen una gran cantidad de actualizaciones y, por otra parte, el acceso directo de acuerdo con las solicitudes de los usuarios. En la siguiente figura

se muestra una versin simplificada de cmo opera el acceso secuencial-indexado. Los ndices y registros se almacenan en disco. Hemos limitamos el nmero de cilindros y pistas para los propsitos de nuestro ejemplo. En primer lugar debe observarse que los registros se encuentran organizados secuencialmente en las tres pistas del cilindro 1. El procesamiento secuencial se realiza comenzando por el primer registro del archivo, procediendo entonces a travs del archivo desde el primer registro hasta el ltimo. Tambin se facilita el acceso directo a los registros. Supongamos que deseamos recuperar el registro 31. Al buscar en el ndice del cilindro encontramos que dicho registro se encuentra en el cilindro 1. Ya que la clave del registro de numeracin ms alta en el cilindro 1 es el 52, Y como los registros se ordenaron secuencialmente por la clave, el registro 31 debe estar en el cilindro 1. La bsqueda del ndice de la pista para el cilindro 1 muestra que el registro 31 est en la pista 2. En esta _________________________________________________________________________________ Area de Computacin, Universidad de La Serena 7

Fundamento de Informtica Terica(2003)

Prof. Dr. Eric Jeltsch F.

situacin, la cabeza de lectura/escritura se mueve hacia el cilindro 1 y se activa la cabeza de lectura/escritura de la pista 2. Sobre la pista 2 se realiza una bsqueda secuencial para localizar el registro 31. Aunque la bsqueda secuencial no ha sido completamente eliminada, su alcance se redujo suficientemente como para justificar el trmino acceso directo. Nuestro ejemplo utiliza registros que no son bloques, pero puede extenderse fcilmente a registros que sean bloques. Pensemos entonces que el rea de datos es como un contenedor de, tres registros y consideremos el rea clave como la clave del registro ms alto en el bloque. (3)Organizacin directa de un archivo Hasta aqu se han discutido dos formas de organizacin de archivos: secuencial y secuencial -indexada. Se han destacado simultneamente los dos mtodos de acceso a un archivo:acceso secuencial y acceso directo. Los registros en una simple organizacin secuencial de un archivo se acceden solamente de forma secuencial. Los registros en una organizacin secuencial-indexada de un archivo se acceden directa y secuencialmente. Finalmente consideremos un tercer tipo de organizacin de archivos llamada directa o hash. Solamente los mtodos de acceso directo son aplicables a este tipo de organizacin de archivos. (4)Funciones Hash estticas Una de las desventajas del esquema indexado es que se debe acceder y leer el ndice para localizar los registros. El uso de tcnicas hashing como mtodo de direccionamiento elimina la necesidad del mantenimiento y bsqueda de ndices. La eliminacin del ndice evita la necesidad de hacer dos accesos al almacenamiento secundario para acceder a un registro: uno para leer el ndice y otro para acceder al archivo.

_________________________________________________________________________________ Area de Computacin, Universidad de La Serena

Вам также может понравиться