REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL, “UNEFA”
Excelencia Educativa Abierta al Pueblo
NÚCLEO MIRANDA, EXTENSIÓN SANTA TERESA COORDINACIÓN DE INGENIERIA UNIDAD CURRICULAR BASE DE DATOS.
SMBDs.
Autor: Henríquez Yutcelinis C.I.: 20.065.592 Aular Wiljac C.I.: 19.960.100 Tutora: Serrano Franlia 7MO Semestre ISD1
Santa Teresa del Tuy, 04 de abril de 2012
Estructura Interna de los SMBD Manejo de Memoria El nivel interno de un sistema de bases de datos es el que se ocupa de la forma como están almacenados los datos. Físicamente, las bases de datos casi siempre se almacenan en medios de acceso directo, por lo regular en discos magnéticos de cabeza móvil, aunque en algunos sistemas pueden utilizarse otros medios (por ejemplo tambores, discos ópticos, etc.) en vez de esos discos o además de ellos. Daremos por sentado que se conocen los aspectos básicos de la arquitectura de los discos y se conocen términos tales como tiempo de búsqueda, retardo rotacional, cilindro, pista, cabeza de lectura / grabación, etc. Lo fundamental en un ambiente de base de datos es que los tiempos de acceso a disco son mucho más largos que los tiempos de acceso a memoria principal. Los tiempos de acceso a disco representativos van de cerca de 400 milisegundos o más para un disco flexible en un micro hasta unos 30 milisegundos o menos para un disco rápido en un mainframe; el acceso a memoria principal será con toda probabilidad por lo menos cuatro o cinco órdenes de magnitud más rápido que el acceso a disco en un sistema dado. Por todo esto, un objetivo prioritario de desempeño en sistemas de bases de datos es reducir al mínimo el número de accesos a disco. Para esto se utilizan técnicas para organizar los datos almacenados en disco de manera tal que un elemento de información requerido se pueda localizar con un mínimo de operaciones de E/S. Cualquier organización de los datos en el disco se denomina estructura de almacenamiento. Es posible desarrollar (y así se ha hecho) un gran número de estructuras de almacenamiento diferentes, y desde luego, tienen distintas características de desempeño que son adecuadas para ciertas aplicaciones y no lo son para otras. No existe una sola estructura óptima para todas las aplicaciones por lo que un buen sistema debe poder utilizar varias estructuras
distintas, a fin de almacenar diversas porciones de la base de datos en diversas formas y deberá ser posible cambiar la estructura de almacenamiento de una porción determinada cuando varíen o se comprendan mejor los requerimientos de desempeño. Organización de Archivos La organización de archivos se refiere a la estructura física de un archivo sobre el disco. Los tres métodos de organización de archivos disponibles son: secuencial, directo e indexado. Cada una de estas organizaciones es usada por el SMBD en alguna forma. La organización secuencial es usada para archivos journal; para copias de backup de la BD; para ciertos archivos que sirven como entrada a aplicaciones batch; para archivos de transacciones batch, etc. Las organizaciones directas e indexadas son técnicas usadas por el SMBD para el almacenamiento de data dentro de la base de datos. Una organización de archivos, junto con las posibles técnicas de acceso para esa organización constituye un método de acceso. Una técnica de acceso define los pasos involucrados en el almacenamiento y la recuperación de registros específicos a través de acceso secuencial o aleatorio a dicho registro. Organización Secuencial En este tipo de organización, los registros son almacenados en la secuencia física en la que ellos van a ser procesados. Existen dos tipos posibles de organización secuencial. Si los registros son almacenados sin ningún orden específico sino sólo por su orden cronológico de llegada el archivo correspondiente es una pila. Los archivos journal, los backups, los archivos de transacciones batch son del tipo pila. El segundo tipo de organización secuencial es aplicable en un ambiente de procesamiento de archivos, donde un gran porcentaje de los registros necesitan ser accesados frecuentemente. Un archivo con este tipo de organización secuencial tiene todos sus registros almacenados según el valor de una clave que es normalmente la clave primaria.
Con un archivo organizado secuencialmente sólo se puede usar acceso secuencial. El acceso aleatorio no es posible. Si un registro específico va a ser consultado desde el archivo, todos los registros que lo preceden físicamente deben ser recuperados antes de obtenerlo a él. Por esto, la organización secuencial no es recomendable para un ambiente en línea donde se requiere un acceso rápido. En un archivo con este tipo de organización, los registros pueden ser añadidos sólo al final del archivo. Cuando se actualiza la información de un registro existente, puede ser actualizado y reescrito en el mismo lugar físico en el que se encontraba. Pero si se debe insertar un nuevo registro que va en la mitad del archivo, el archivo completo debe ser recopiado a una nueva localización física donde se coloca adecuadamente el nuevo registro. El borrado físico de un registro existente también requiere que el archivo sea recopiado a una nueva localización física donde no se encuentra el registro borrado Organización Directa La organización directa da un performance excepcional en un ambiente on-line, donde se requiere acceso aleatorio. En la organización directa, cada registro es almacenado y recuperado en una dirección de disco sobre la base de una fórmula que es aplicada a un valor de un campo del registro. Son posibles dos tipos de organización directa, una usando técnicas de direccionamiento en base a una clave y la otra usando técnicas hashing. Técnicas Hashing Son similares a las de direccionamiento por clave en que la fórmula es aplicada a un campo del registro (usualmente la clave primaria) teniendo como resultado un valor usado como la dirección en disco para almacenar ese registro. La diferencia es que las técnicas hashing no garantizan una dirección de almacenamiento única. La fórmula puede producir dos o más registros con el mismo valor resultante.
Esta técnica permite utilizar el disco eficientemente mientras intenta retener la rapidez del acceso aleatorio (no más de un acceso a disco para obtener un registro específico) si se pueden minimizar los efectos de los resultados duplicados de la fórmula. La función hashing es seleccionada de manera tal que los registros sean esparcidos lo más uniformemente posible a lo 9largo de todo el archivo, pero no quedan almacenados en una secuencia en particular. Cuando para dos o más registros se obtiene como resultado el mismo valor de la función hashing se dice que se produce una colisión y los dos registros son llamados sinónimos. Organización aleatoria indexada En este tipo de organización los registros en el archivo de datos están almacenados de manera aleatoria y en el archivo índice existe una entrada por cada registro lógico existente en el archivo de datos (este tipo de archivo índice se conoce como archivo denso) almacenados según el orden de la clave primaria. Los nueve registros del archivo empleado están almacenados en el archivo de datos y el archivo índice tiene una entrada por cada una de las entradas en el archivo de datos. Cada registro en el archivo índice contiene un NUM-EMP, que es la clave primaria del registro Empleado, y un número de página, que indica donde está almacenado ese registro en el archivo de datos. El tener un archivo índice implica requerimientos de espacio adicionales para poder almacenar un registro. ¿Por qué es necesario este overhead? Una razón es para permitir el acceso secuencial de los registros lógicos. Los registros lógicos en el archivo de datos no están almacenados según el orden de la clave primaria, pero los registros del archivo índice si lo están. Entonces, al buscar los registros Empleado según el orden del archivo índice, se están accediendo los registros Empleado según el orden de la clave primaria.
Organización indexada secuencial En este tipo de organización los registros en el archivo de datos están almacenados según la secuencia de la clave primaria. Siendo así a nivel del archivo índice sólo se necesita una entrada o un registro por cada página del archivo de datos (índice no denso) correspondiente al registro que tenga el mayor o el menor valor de clave primaria en la página del archivo de datos. Transacciones Una transacción en un Sistema de Gestión de Bases de Datos se puede decir que es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir en forma indivisible o atómica. Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción. Recuperabilidad La recuperabilidad significa que, si se da algún error en los datos, hay un bug (Error o un defecto en el software o hardware que hace que un programa funcione incorrectamente. A menudo los bugs son causados por conflictos del software cuando las aplicaciones intentan funcionar en tándem) de programa ó de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer
respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperación es una de las tareas más importantes de los DBA's. La recuperaabilidad tiene dos formas primarias:
La recuperación de las bases de datos consisten en información y estampas de tiempo junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un momento y fecha en particular. Es posible hacer respaldos de la base de datos que no incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA debe sacar de línea la base de datos en caso de llevar a cabo una recuperación. Las pruebas de recuperación consisten en la restauración de los datos, después se aplican las bitácoras a esos datos para restaurar la base de datos y llevarla a un estado consistente en un tiempo y momento determinados. Alternativamente se puede restaurar una base de datos que se encuentra fuera de línea sustituyendo con una copia de la base de datos.
Recuperación de base de datos en diferentes supuestos Podemos recuperar desde:
Los ficheros de backup de la base de datos (MS,SQL Server, MySQL, MS Access). Las cintas de backup Los ficheros nativos de la Base de datos (.mdf, .ndf, .ldf, .db, .dbf, .dbx, .data, .mdb, .frm, .myd, .myi).
Recuperación de Base de Datos con diversos daños Entre la información que podemos perder y que podemos recuperar son:
Ficheros de bacckup no reconocibles por la base de datos o la aplicación de Backup. Bases de datos bloqueadas inaccesibles.
marcadas como “Suspect” que sean
Bases de datos corruptadas por apagón no ordenado de sistema
Tablas borradas. Tablas corruptas.
Ficheros corruptos y daños. Índices dañados
Imposibilidad o problemas de acceso a algunas tablas
BBDD con problemas de cabeceras sobrescritas o inconsistentes.
Meta dispositivos de la base de datos borrados
Páginas de datos dañados.
Ficheros sobrescritos accidentalmente