presentacion de armas individuales y colectivas-1.pptx
Estructura de archivos y sistema
1.
2. El rendimiento del sistema depende de la
eficiencia de la estructura de datos que se
utiliza para representar la información en
la base de datos y de la eficiencia del
sistema para operar sobre esa base de
datos
3. El sistema operativo de la computadora puede
proporcionar algunas de las funciones del
sistema de la base de datos. En la mayoría de
los casos, el sistema operativo proporciona
únicamente los servicios mas básicos y el
sistema de base de datos debe construirse
sobre esa base.
4. El sistema de base de datos consta de varios componentes
funcionales , entre los que se encuentran:
• El gestor de archivos, que se encarga de asignar el espacio en
la memoria del disco y la estructura de datos que se usa para
representar información almacenada en el disco.
• El gestor de registros intermedios buffer, que es responsable
de transferir la información entre la memoria del disco y la
memoria principal.
• El analizador sintáctico (parser) de consultas, que traduce
sentencias de un lenguaje de consulta a un lenguaje de nivel más
bajo.
• El selector de estrategias, que intenta transformar la solicitud
del usuario en una forma equivalente pero más eficiente,
encontrando así una estrategia adecuada para ejecutar la
consulta.
5. • El gestor de autorización e integridad, que
prueba la satisfacción de las restricciones de
integridad (como, por ejemplo, restricciones de
clave) y comprueba que el usuario está autorizado
para acceder a los datos.
• El gestor de recuperaciones, que asegura que la
base de datos permanezca en un estado consistente
(correcto) a pesar de que ocurran rallos en el
sistema.
• El controlador de concurrencia, que asegura que
las interacciones concurrentes con la base de datos
se llevan a cabo sin conflictos entre ellas.
6. Además se requieren varias estructuras de datos como parte de
la implementación física, entre las que se encuentran:
• Archivos de datos, que almacenan la base de datos.
• Diccionario de datos, que almacena información acerca de
la estructura de la base de datos, y la información de
autorización, como las restricciones de clave.
• Índices, que permiten tener acceso rápido a datos que
tienen determinados valores.
• Datos estadísticos, que almacenan información acerca de
los datos en la base de datos. Esta. información la utiliza el
selector de estrategias.
7. 7.2. MEDIOS DE ALMACENAMIENTO7.2. MEDIOS DE ALMACENAMIENTO
FISICOFISICO
En la mayoría de los sistemas de computadores existen
varios tipos de almacenamiento de datos. Estos medios
de almacenamiento se clasifican según la velocidad con
que puede tenerse acceso a los datos, según el coste por
unidad de datos para comprar la memoria, y según la
«fiabilidad» que tienen. Entre los medios con que
normalmente se cuenta están:
8. • Próximo (caché). Esta es la forma de almacenamiento más rápida
y más costosa. El tamaño de la memoria caché es muy pequeño y
el sistema operativo gestiona su utilización. No necesitaremos
preocupamos de la gestión de la memoria caché en el sistema de
base de datos.
• Memoria principal. Este es el medio de almacenamiento que se
emplea para los datos disponibles sobre los cuales se va a operar.
Las instrucciones de máquina de propósito general operan sobre la
memoria principal. Aunque la memoria principal puede contener
varios megabytes de datos, casi siempre es demasiado pequeña
para almacenar la base de datos completa. A la memoria principal
muchas veces se le llama memoria central. Normalmente los
contenidos de la memoria principal se pierden si hay un corte de
energía eléctrica o si se «cae» el sistema.
9. • Almacenamiento en disco. Este es el medio principal
para el almacenamiento de datos a largo plazo. Lo común
es que toda la base de datos esté almacenada en disco.
Los datos deben trasladarse del disco a la memoria
principal para poder operar sobre ellos. Después de
realizar las operaciones, los datos deben devolverse al
disco.
• Almacenamiento en cinta. Este tipo de
almacenamiento se usa principalmente para copias de
seguridad y datos de archivo. Aunque la cinta es mucho
más barata que el disco, el acceso a los datos es mucho
más lento, puesto' que la cinta debe leerse
secuencialmente desde el principio. Por esta razón, el
almacenamiento en cinta se denomina almacenamiento
de acceso secuencial y se usa principalmente para recuperarse
de fallos en el disco
10. 7.3. ORGANIZACION DE ARCHIVOS7.3. ORGANIZACION DE ARCHIVOS
Un archivo está organizado lógicamente como
una secuencia de registros. Estos registros se
asignan a bloques del disco. Los archivos se
dan como construcciones básicas en los
sistemas operativos, por lo que supondremos
que existe un sistema de archivos subyacente.
Necesitamos considerar formas de
representar modelos lógicos de datos en
términos de archivos.
11. Aunque los bloques son de tamaño fijo determinado
por las propiedades físicas del disco y por el
sistema operativo, los tamaños de los registros
varían. En una base de datos relacional, las tuplas
de relaciones distintas son, por lo general, de
diferente tamaño. En una base de datos de red es
probable que el tipo de registro propietario sea de
distinto tamaño que el tipo de registro miembro.
12. Una forma de enfocar la asignación de la base de datos
a los archivos es utilizar varios archivos y almacenar
en un archivo dado solamente registros de una
longitud fija. Una alternativa es estructurar los
archivos de una forma tal que podamos acomodar
registros de varias longitudes diferentes. Los
archivos de registros de longitud fija son más fáciles
de implementar que los archivos de registros de
longitud variable. Muchas de las técnicas usadas
pueden aplicarse al caso de longitud variable. Así,
pues, empezamos considerando un archivo de
registros de longitud fija.
13. 7.3.1. Registros de longitud fija7.3.1. Registros de longitud fija
Como ejemplo, consideremos un archivo de registros depósito
para le base de datos bancaria. Cada registro de este archivo
se define como sigue:
type depósito = registro
nombre-sucursal: char (20); número-cuenta: integer; nombre-cliente:
char (20); saldo: real;
end
14. 7.3.2. Registros de longitud variable7.3.2. Registros de longitud variable
Los registros de longitud variable se presentan en los sistemas
de base de datos de varias formas:
• Almacenamiento de varios tipos de registros en un archivo.
• Tipos de registros que permiten uno o más campos de
longitudes variables.
• Tipos de registros que permiten campos repetidos.
Existen varias técnicas para implementar los registros de
longitud variable. El formato del registro es:
15. type lista-depósito = record
nombre-sucursal: char (20);
info-cuenta ; array [1 .. 00] of
record;
número-cuenta: integer;
nombre-cliente: char (20);
saldo; real;
end
end
Definimos info-cuenta como un array con un número arbitrario dc
elementos de manera que el tamaño del registro no tiene límite (¡salvo.
por supuesto, el tamaño del disco!).
16. Representación en cadena de bytesRepresentación en cadena de bytes
Un método sencillo para implementar los registros de
longitud variable es añadir un símbolo especial de
fin de registro (.1) al final de cada registro. Así
podemos almacenar cada registro como una cadena
de bytes consecutivos.
La representación en cadena de bytes tiene varias
desventajas. Las más serias son:
17. • No es fácil volver a utilizar el espacio que ocupaba un registro
que se eliminó. Aunque existen técnicas para gestionar la
inserción y eliminación, resultan en un gran número de
fragmentos pequeños de espacio en disco que se desperdician.
• En general, los registros no disponen de espacio para crecer.
Si un registro de longitud variable se hace más largo debe
moverse y si el registro está sujeto, el movimiento resulta
costoso.
Por tanto, la representación en cadena de bytes normalmente no
se utiliza para implementar registros de longitud variable.
18. Representación de longitud fijaRepresentación de longitud fija
Para implementar los registros de longitud variable de
manera eficiente en un sistema de archivos,
utilizamos uno o más registros de longitud lija para
representar un registro de longitud variable.
Existen dos técnicas de para implementar archivos de
registros de longitud variable empleando registros
de longitud fija .
19. • Espacio reservado. Si hay una longitud máxima de
registro que nunca se excede, podemos utilizar
registros de longitud fija de esa longitud. El espacio
no utilizado (para registros más cortos que el
espacio máximo) se llena con un símbolo especial
nulo o de «fin de registro» .
• Punteros. El registro de longitud variable se
representa por una lista de registros de longitud fija
encadenado por medio de punteros.
20. El método de espacio reservado es útil cuando gran
parte de los registros es de longitud cercana al
máximo. Si no es así, puede desperdiciarse una
cantidad apreciable de espacio. En el ejemplo
bancario puede darse el caso de que algunas
sucursales tengan muchas más cuentas que otras.
Esto nos lleva a considerar el uso del método de
punteros. Para representar el archivo empleando
el método de punteros.
21. 7.4 ORGANIZACIÓN DE REGRISTROS EN BLOQUES
Un archivo puede considerarse como una colección de registros. Sin embargo, como
los datos se transfieren entre el almacenamiento en disco y la memoria principal en
unidades de bloque, vale la pena asignar los registros a los bloques de tal forma que
un simple bloque contenga registros relacionados entre sí. Si asignamos los registros
a los bloques al azar, normalmente se dará el caso de que sea necesario tener acceso a
un bloque diferente para cada registro que se acceda.
Si podemos acceder a varios de los registros deseados con un solo acceso a bloque,
habremos ahorrado algunos accesos a disco.
Anteriormente describimos una estructura de archivos en la que toda la información
relativa a las cuentas de una sucursal aparecía en un registro (de longitud variable).
Las representaciones de esta estructura de archivo con registros de longitud fija
utilizaban varios registros para representar un registro de longitud variable.
Si podemos almacenar varios de esos registros en un bloque reducimos el número de
accesos a bloque requeridos para leer un registro de longitud variable.
22. Es fácil agrupar registros de esta manera si la base de datos nunca
cambia. Sin embargo, supóngase que se abre una nueva cuenta en
la sucursal Perryridge. Si estamos utilizando la estructura que se
muestra en la Figura 7.12 desearíamos añadir el registro que
corresponde a esta cuenta al mismo bloque en que están el resto de
las cuentas de la sucursal Perryridge.
23. • Como alternativa consideremos una estructura que ocupa un espacio un poco mayor
que la estructura de la Figura anterior pero que permite mejorar la eficiencia del acceso a
la información. A cada valor ilc nomhre-aucursal le asignamos una cadena de bloques. Cada
cadena de bloques contiene el registro de longitud variable completo para el
correspondiente valor de nombre-sucursal.
• La Figura 7.13 muestra la estructura apropiada para el archivo depósito. Las cadenas tienen
una estructura ligeramente diferente de las demás estructuras de registros de longitud fija
que hemos utilizado:
• El primer registro de la cadena contiene el valor de nombre-sucursal de la cadena.
• Los siguientes registros contienen los campos que se repiten. No hace falta
repetir el nombre-sucursal, ya que es el mismo para todos los registros de la cadena.
24. • Obsérvese que hay dos longitudes de registro diferentes en cada
cadena. El primer registro contiene un valor de nombre-sucursal.
Todos los demás registros contienen tres campos: número-cuenta,
nombre-oliente, y saldo.
• cada cadena ocupa exactamente un bloque. Si extendemos el
ejemplo a uno más real, en el que una sucursal tiene miles de
cuentas, una cadena puede requerir varios bloques.
• Reservamos un espacio fijo al principio de cada bloque como
encabezamiento de bloque y lo usamos para almacenar los punteros de
la cadena. La Figura 7.14 muestra parte de una estructura de
archivos de una base de datos bancaria extendida.
• Al crecer una cadena por inserción de registros, puede que se
necesite añadirle nuevos bloques.
FIGURA 7.14FIGURA 7.14
BLOQUESBLOQUES
ENCADENADOSENCADENADOS
25. ARCHIVOS SECUENCIALESARCHIVOS SECUENCIALES
• Un archivo secuencial está diseñado para procesar de manera eficiente registros en un
determinado orden basándose en alguna clave de búsqueda. Para permitir una
recuperación rápida de registros en el orden de la clave de búsqueda, los registros se
encadenan por medio de punteros. El puntero de cada registro apunta al siguiente
registro en el orden de la clave de búsqueda.
• La Figura 7.15 muestra un archivo secuencial de registros depósito sacado del ejemplo
bancario. Los registros están almacenados en el orden de la clave de búsqueda,
empleando nombre-sucursal como clave de búsqueda.
Figura 7.15. Archivo secuencial de
registros depósito.
26. • Para la inserción aplicamos las siguientes reglas:
1.1. Localizar el registro en el archivo que precede al registro que se va a insertar en el
orden de la clave de búsqueda.
2.2. Si existe algún registro libre (es decir, un espacio que haya resultado de una
eliminación) dentro del mismo bloque que este registro, se inserta allí el nuevo
registro. Si no, se inserta un nuevo bloque de desbordamiento. En cualquier caso, se
ajustan los punteros para que los registros queden encadenados en el orden de
la clave de búsqueda.
• La Figura 7.16 muestra el archivo de la Figura 7.15 después de la inserción del
registro (North Town, 888, Adams, 800). La estructura de la Figura 7.16
permite insertar rápidamente registros nuevos, pero obliga a las aplicaciones de
procesamiento secuencial de archivos a procesar los registros en un orden que
no corresponde al orden físico de los registros.
27. 7.6.ASIGNACIÓN (MAPPING) DE DATOS7.6.ASIGNACIÓN (MAPPING) DE DATOS
RELACIONALES A ARCHIVOSRELACIONALES A ARCHIVOS
• Muchos sistemas de base de datos relaciónales almacenan cada relación en
un archivo separado. Esto permite al sistema de base de datos aprovechar
al máximo el sistema de archivos que forma parte del sistema operativo.
• Por tanto, las relaciones pueden asignarse a una estructura simple de
archivos. Esta implementación sencilla de un sistema de base de datos
relacional se adapta bien a los sistemas de base de datos diseñados para
computadores personales. En estos sistemas, el tamaño de la base de
datos es pequeño, por lo que no se aprovecharía una estructura de
archivos sofisticada.
• Este enfoque sencillo de la implementación de bases de datos relacionales
se vuelve menos satisfactorio al aumentar el tamaño de la base de datos.
29. Un sistema de base de datos relacional
necesita mantener datos acerca de las
relaciones.
A esta información se le denomina:
Diccionario de Datos o Catalogo de
Sistema.
30. Entre los tipos de información que el
sistema debe almacenar están:
Los nombres de las relaciones.
Los nombres de los archivos.
Los dominios de los atributos.
Los nombres de las vistas definidas en la base
de datos y la definición de esas vistas.
Las restricciones de integridad de cada
relación (ejemplo: las restricciones de clave)
31. Los sistemas que utilizan estructuras muy
sofisticadas para almacenar relaciones,
pueden conservarse datos estadísticos y
descriptivos acerca de las relaciones:
Número de tuplas en cada relación.
Método de almacenamiento utilizado para cada
relación( ejemplo, agrupado ó sin agrupar)
32. Si se utiliza la BD para almacenar datos del
sistema, simplificamos la estructura global
del sistema y permitimos aprovechar toda la
capacidad de aquélla para agilizar el acceso
a los datos del sistema. La elección de
cómo se van a representar los datos por
medio de las relaciones debe hacerla el
diseñador del sistema.
33. GESTION DE REGISTROSGESTION DE REGISTROS
INTERMEDIOS (BUFFER)INTERMEDIOS (BUFFER)
Otra forma de reducir el número de accesos a
disco es mantener tantos bloques como sea
posible en la memoria principal. El objetivo es
incrementar al máximo la posibilidad de que,
cuando se necesite acceder a un bloque, éste
ya éste en la memoria principal y, por lo tanto
no se requiera acceso al disco
34. Los registros intermedios (buffer) son
aquellas apartes de la memoria principal
disponible para almacenar copias de bloques
del disco.
El responsable del subsistema para la
asignación de espacio en el buffer se
denomina Gestor del buffer.
35. El gestor del Buffer intercepta todas las
solicitudes que hace el resto del sistema
pidiendo bloques de la BD. Si el bloque ya
esta en el buffer, se pasa al solicitante la
dirección del bloque en la memoria principal.
36. Si el bloque no está en el Buffer, el gestor
del buffer lee el bloque del disco y lo escribe
en el buffer y pasa la dirección del bloque
en memoria principal al solicitante. Así el
gestor del buffer es transparente para
aquellos programas del sistema que solicitan
bloques del disco.
37. El gestor de buffer debe utilizar técnicas mas
sofisticadas que las que se emplean en los
esquemas comunes de gestión de memoria virtual,
con el fin de servir adecuadamente al sistema de
Bd:
Estrategias de Reemplazo: cuando no queda
espacio libre en el buffer, debe sacarse un bloque
antes de que pueda escribirse uno nuevo.
38. Bloques Sujetos: Para que el sistema de BD
pueda recuperarse de caídas, es necesario
restringir las oportunidades en las que se puede
gravar un bloque en el disco.
Salida forzada de bloques: Existen situaciones
en la que es necesario escribir el bloque en el
disco aunque no se necesite el espacio que ocupa
en el buffer.