Resumen Base de Datos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

Base de datos I:

Unidad Nro°1:
Sistema de Base de Datos: un sistema de base de datos es básicamente un sistema computarizado para guardar registros; es
decir, es un sistema computarizado cuya finalidad general es almacenar información y permitir a los usuarios recuperar y
actualizar esa información con base en peticiones.
Dato: entrada.
Información: dato procesado.
Componentes de una base de datos
1- Dato: es una de las entradas de un sistema de información. Pueden ser:
- Integrados: significa que podemos imaginar a la base de datos como una unificación de varios archivos con
redundancia mínima.
- Compartidos: significa que las piezas individuales de la base de datos son utilizadas por varios usuarios de
manera concurrente (“Acceso Concurrente”). Nota: si la base de datos no es compartida se la conoce como
“personal” o “específica de la aplicación”.
Estas dos características son una importante ventaja en la base de datos.
2- Hardware: los volúmenes de almacenamiento secundario que se emplean para contener los datos almacenados, junto a
los dispositivos de E/S, los controladores de dispositivos, los canales de E/S, entre otras cosas conforman el Hardware.
Es decir, se refiere al servidor de base de datos, el cual abarca las unidades de procesamiento, almacenamiento
principal y almacenamiento secundario.
3- Software: abarca tanto al S.O. como así también al motor de base de datos. El motor de base de datos (DBMS – Data
Base Management System) es una pieza de software ubicada entre el sistema operativo y los programas de aplicación
que utilizan los usuarios. Todas las peticiones son procesadas por el DMBS (agregar, eliminar, modificar y leer datos)
ocultando a las aplicaciones y usuarios los detalles de implementación. Es importante aclarar que el DBMS es, sin
dudas, el componente de software más importante de la base de datos.
4- Usuarios:
- Programadores: son los responsables de escribir los programas de aplicación, en algún lenguaje, y estos
programas acceden a la base de datos emitiendo las solicitudes adecuadas al DBMS por o general es una
instrucción SQL.
- Usuario final: utilizan las aplicaciones desarrolladas por el programador (estas aplicaciones son las que acceden
de manera concurrente a la base de datos.) Interactúan con los sistemas desde terminales en línea.
5- Administrador de base de datos (DBA - Database Administrator): personal técnico responsable del funcionamiento y
disponibilidad del sistema de base de datos. Garantiza que estos datos siempre estén en línea.

6- Administrador de datos (DA): personal no técnico responsable de la necesidad de información del sistema de base de
datos (es quien dice qué datos se deben almacenar en el sistema y de establecer políticas para mantener y manejar
esos datos una vez almacenados).

Beneficios de una base de datos


El beneficio fundamental al trabajar con una base de datos (comparado con archivos convencionales) es que al recuperar
información, la base de datos devuelve no solo los datos (tal como lo hacen los archivos) sino también su estructura (esto marcó
un gran salto en términos de productividad).

o Compactación: No hay necesidad de papel voluminoso.


o Velocidad: las bases de datos son más rápidas para obtener la información de negocio requerida.
o Menos trabajo laborioso: los programadores se concentran únicamente en la información de negocio requerida y no en
los detalles técnicos que se requieren para obtenerla. El DBMS se encarga del “cómo” y el programador del “qué”.
o Información actualizada: los cambios realizados sobre una base de datos se hacen visibles al instante para el usuario
que lo requiere.
o Seguridad: las bases de datos son más potentes que los sistemas de archivos ya que permiten una mayor granularidad
en la regla de seguridad sobre los datos, es decir, permite aplicar reglas de seguridad a registros o datos individuales,
aumentado así la minuciosidad.
o Manejo centralizado de la información: los modelos de datos se crean y administran en forma centralizada. Esto a su
vez brinda la posibilidad de:

Bases de datos I Página 1


 Compartir los datos: no solo que puede compartir la información entre distintos usuarios, sino que también es
posible satisfacer los requerimientos de datos de aplicaciones nuevas sin tener que agregar información a la
base de datos.
 Reducir la redundancia: se pueden integrar varios archivos iguales en uno solo y eliminar así la redundancia, en
tanto el DA y el DBA estén conscientes de los requerimientos de datos de cada aplicación.
 Evitar la inconsistencia: en el caso de que no se elimine completamente la redundancia pero se controla
(haciéndola del conocimiento del DBMS), entonces el DBMS puede garantizar que la base de datos nunca será
inconsistente a los ojos del usuario, asegurando que todo cambio realizado a cualquiera de las apariciones de
una entidad será aplicado también a sus otros ejemplares. A este proceso se lo conoce como “propagación de
actualizaciones”.
 Brindar un manejo de transacciones concurrentes.
 Mantener la integridad: aquí surge la cuestión de asegurar que los datos sean correctos. El control centralizado
puede ayudar a evitar estos problemas permitiendo que el administrador de datos defina y el DBA implemente
las “restricciones de integridad” (también conocidas como “reglas del negocio”) que serán verificadas siempre
que se realice una operación de actualización o inserción.
 Hacer cumplir la seguridad: al tener la completa jurisdicción sobre la base de datos, el DBA puede asegurar que
el único medio de acceso a la base de datos sea a través de los canales adecuados y por lo tanto puede definir
las “restricciones de seguridad” que serán verificadas siempre que se intente acceder a datos sensibles. Es
posible establecer diferentes restricciones para cada tipo de acceso (recuperación, inserción, eliminación
etcétera).
Nota: la naturaleza centralizada de una base de datos requiere, en cierto sentido, que también sea establecido
un buen sistema de seguridad (sin estas restricciones, la información está más en riesgo que en un sistema de
archivos tradicionales).
 Equilibrar los requerimientos en conflicto: el DBA puede estructurar los sistemas de manera que ofrezcan un
servicio general que sea “el mejor para la empresa”.
 Hacer cumplir estándares: el DBA puede asegurar que todos los estándares aplicables en la representación de
los datos sean observados.
o Integridad: grado de corrección de los datos. Las bases de datos aseguran que los datos sean correctos según el tipo
definido y según la lógica del mundo real.
o Transaccionabilidad: implica manejar transacciones (unidad de trabajo lógica, que por lo regular comprende varias
operaciones de la base de datos) como unidades atómicas. Es decir, o se hace todo o no se hace nada.

o Recuperación ante fallos: los sistemas de base de datos están preparados para recuperarse automáticamente ante
cualquier falla de un sistema computarizado.

Tareas del DBA y DA


En el caso del DBA, se encarga de:
o Garantizar el respaldo: asegurarse que la base de datos tenga un mecanismo y política de respaldo (backup).
o Integridad: determina las reglas de integridad.
o Seguridad: define e implementa el “control” para el acceso de los datos.
o Disponibilidad: cumplir con los contratos de servicio (es imposible tener la base de datos disponible todo el tiempo).
o Desempeño: la base de datos debe funcionar lo más rápido posible.
o Soporte: brindar asesoramiento en materia de base de datos.

En el caso del DA: Estas personas entienden de las necesidades de la empresa, respecto a los datos, en un nivel de
administración superior. Decide que datos serán almacenados en a base de datos y establecen políticas para mantener y
manejar esos satos una vez almacenados.

Modelo de datos
Forma en la que se estructuran los datos en un sistema de información. Hay tres aspectos:
o Aspecto estructural: la estructura de os datos de alto nivel utilizada en el modelo. Define la estructura que voy a usar.
Ejemplo: arboles, redes, tablas, cubos, objetos, es decir, define la base de datos.
o Aspecto de integridad: buscan que los datos sean correctos en relación con lo que representan en el mundo real.
Sinónimo de permanencia, responsabilidad de los DBA.

Bases de datos I Página 2


o Aspecto de manipulación: técnicas de procesamiento de los datos para mantener información.

Base de Datos Relacional (RDBMS)


- Son aquellas bases de datos en el que, en el aspecto estructural, los datos se almacenan en tablas y nada más que
tablas. Vale la pena mencionar que las tablas representan una abstracción de la forma en que los datos están
almacenados físicamente, es decir, las tablas son la estructura lógica de la base de datos, no la estructura física (puede
almacenarse en archivos convencionales, por ejemplo).
- Donde en el aspecto de integridad, los datos se almacenan en tablas sujetas a restricciones (claves primarias).
- Y en donde el aspecto de manipulación, establecen las operaciones cuyos operandos son tablas y sus resultados
también. Esto permite encadenar operaciones, y así obtener información.

Características que diferencian al modelo relacional con otros

En un modelo relacional, las bases de datos relacionales están basadas en un modelo/teoría matemática y todo está
demostrado, fundamentado en teoremas y axiomas. La pregunta ahora es, ¿Por qué se denomina base de datos relacional?
“Relación” es sólo un término matemático para una tabla. Su teoría se denomina, justamente, teoría relacional.

Relación = Tabla Clientes

RClientes ={ (1 , Juan , A ) ; ( 2 , Pedro , B ) … }


Clave primaria: El o los campos que identifican de forma univoca los registros.

Clave extrajera (exporanea): Clave por la cual tengo que buscar en otra tabla.
Estas dos claves mantienen la consistencia en os datos, ya que no podemos duplicar ni borrar datos relacionados. Entre ambas
claves existe una relación.

Álgebra relacional
Conjunto de operadores que toman tablas (o relaciones) como operando y regresan una tabla como resultado.
Operaciones (soportadas por SQL 92)

- Proyección: operación unaria que tiene como operando una tabla y produce como resultado la misma tabla, pero con
menos campos. Adicionalmente la operación requiere un parámetro que es una lista de campos. Elimina registros
duplicados.
π a−c =

- Selección: operación unaria que tiene un solo operando y produce como resultado la misma tabla, pero con menos
registros. Adicionalmente posee un parámetro que es una condición.
δ a>5 =

Bases de datos I Página 3


- Producto Cartesiano: es una operación binaria que posee dos operandos y el resultado es una tabla con la suma de
campos de los operandos (contiene todas las combinaciones posibles entre los registros de los operandos).

x =

SQL (Standard Query Language)


Es el lenguaje estándar para trabajar con bases de datos relacionales y es soportado prácticamente por todos los productos en el
mercado. Surge en los 70’ como una propuesta de lenguaje para manipular bases de datos relacionales. Está basado en el
álgebra relacional. Se estandarizó generando un ANSI – SQL en el año 1992 y se creó SQL 92 (Estándar Internacional de Lenguaje
de Base de Datos SQL 1992), el cual permitió programa para cualquier motor de base de datos.
Las operaciones de SQL son set at time (trabaja sobre conjuntos sin recorrer nada) vs row at time (trabaja sobre cada
registro).
SQL es un lenguaje host: está embebido (dentro) en un lenguaje de programación cualquiera y general del sistema.

Sentencias
1- DDL (Data Definition Language): definen y crean el modelo de datos. CREATE TABLE – ALTER TABLE (altera la estructura)
– DROP TABLE (elimina).
2- DML (Data Manipulation Language): manipula los registros (no cambia la estructura). INSERT – UPDATE (actualiza) –
DELETE – SELECT (leo o consulto una tabla).

Subconsulta
Es una sentencia SELECT completa embebida en la cláusula WHERE de otra sentencia SELECT completa, utilizando conectores de
inclusión.
Hay 2 tipos de subconsultas
- Anidadas: son aquellas que no hacen referencia a ningún objeto (tablas o alias) de la consulta exterior. El orden de
procesamiento lógico es: 1º subconsulta una vez 2º consulta exterior una vez.
Este tipo de subconsulta tiene la particularidad de que si tomo la porción de código correspondiente únicamente a la
subconsulta y la ejecuto, funciona. Dicho de otro modo, las subconsultas anidadas son independientes.
Desde el punto de vista de desempeño, son más eficientes que las subconsultas correlacionadas ya que se ejecutan una
sola vez. Por último, cabe aclarar que las tablas generadas por las subconsultas se almacenan temporalmente en
memoria y, una vez utilizadas, se desechan.
- Correlacionadas: son aquellas que hacen referencia a objetos de la consulta externa. El orden de procesamiento lógico
es: 1º consulta externa una vez y por cada registro a validar en su cláusula WHERE se ejecuta la subconsulta. Este tipo
de subconsulta no es independiente y no es tan eficiente desde el punto de vista del desempeño ya que debe
ejecutarse n veces, siendo n la cantidad de registros de la tabla de la consulta externa.

Bases de datos I Página 4


Base de Datos I:
Unidad Nro°2:

Arquitectura ANSI – SPARC


Divide la base de datos en tres niveles:
3- Nivel Externo (también conocido como nivel lógico de la comunidad): es el que está más próximo al usuario. Administra las
diferentes visiones o vistas que tienen los diferentes usuarios, o roles que usan las aplicaciones. Se refiere a la forma en que un
usuario ve los datos. Pueden existir varias visiones o vistas y cada una abarca solamente una porción del modelo lógico que
corresponde al perfil del usuario interesado brindándole al mismo una representación abstracta de la base de datos aplicada a
sus necesidades.
Mapping externo/conceptual (transformación externa/conceptual):
Administra la relación entre el modelo de datos conceptual y las diferentes vistas de nivel externo. Garantiza la
independencia lógica de datos.
En una base de datos relacional, el nivel externo será relacional.
2- Nivel Conceptual (también conocido como nivel lógico del usuario): administra la estructura lógica de los datos (en este nivel
está el modelo de datos lógico), es decir que administra el modelo de datos completos de la base de datos utilizando estructuras
de alto nivel, restricciones y seguridad, manipulación e integridad.
Mapping interno/conceptual (transformación interna/conceptual):
Administra la relación entre el nivel conceptual y el interno, o sea, como se distribuyen los registros de las tablas del
nivel conceptual en los diferentes archivos físicos de nivel interno. Garantiza la independencia física de datos.
En una base de datos relacional, el nivel conceptual será relacional en el sentido de que los objetos visibles en ese nivel serán
tablas relacionales y los operadores serán del tipo relacional.
1- Nivel Interno (también conocido como nivel físico): es el de mayor relación con el Sistemas Operativo y administra el
almacenamiento físico de los datos en archivos convencionales, en memoria secundaria. Administrando, en sus archivos físicos,
la estructura interna de los archivos, la organización interna, los índices y los métodos de acceso.
En una base de datos relacional, el nivel interno no será relacional ya que los objetos visibles en ese nivel no serán tablas
relacionales (son registros, punteros, índices, etcétera).
Para concluir podemos decir que el modelo relacional tiene que ver con la forma en que la base de datos se presenta ante el
usuario, no tiene nada en absoluto que decir acerca del nivel interno.

Bases de datos I Página 5


Independencia de datos
Dar independencia a los datos es un objetivo principal de los sistemas de base datos. Se define como la inmunidad de las
aplicaciones para soportar cambios en la presentación y acceso a los datos.
1. Independencia de dispositivo: capacidad de soportar cambios en las direcciones físicas de memoria secundaria. Lo
brinda el SO.
2. Independencia física: las aplicaciones deben soportar cambios en los archivos convencionales/tradicionales. Esta
independencia la otorga el mapping conceptual/interno.
3. Independencia lógica: las aplicaciones deben soportar cambios en el modelo/nivel de datos (cambios de tablas, por
ejemplo). Lo garantiza el mapping externo/conceptual lo garantiza.

Catalogo
Es la ubicación en donde el DMS almacena los metadatos en sus bases de datos.
Los metadatos, dato de los datos, se guardan en los catálogos en la base de datos. Estos metadatos son ubicaciones físicas de los
archivos de la base de datos, tablas, índices, campos, tipos de datos de los campos y estadísticas de distribución de datos
(valores más comunes, densidad de los datos más repetitivos) que estos últimos se utilizan para optimizar.

Sistema de administración de base de datos

El DBMS (sistema de administración de base de datos) es el software que maneja todo acceso a la base de datos. De manera
conceptual, lo que sucede es lo siguiente:
1. Un usuario emite una petición de acceso, utilizando algún sublenguaje de datos específico (por lo regular SQL).
2. El DBMS intercepta esa petición y la analiza.
3. El DBMS inspecciona, en su momento, (las versiones objeto de) el esquema externo para ese usuario, el Mapping
externo/conceptual correspondiente, el esquema conceptual, el Mapping interno/conceptual y la definición de la
estructura de almacenamiento.
4. El DBMS ejecuta las operaciones necesarias sobre la base de datos almacenada.
A manera de ejemplo, considere lo que implica la recuperación de una ocurrencia de un registro externo en particular: el DBMS
debe primero recuperar todas las ocurrencias solicitadas de los registros almacenados, luego construir las ocurrencias solicitadas
de los registros conceptuales y después construir las ocurrencias solicitadas de los registros externos. En cada etapa, podrían ser
necesarias conversiones de tipos de datos u otras.

Funciones del DBMS:


 Definición de datos: el DBMS debe ser capaz de aceptar definiciones de datos en la forma fuente y convertirlas a la
forma objeto correspondiente. En otras palabras, el DBMS debe incluir entre sus componentes un procesador DDL, o
compilador DDL, para cada uno de los diversos DDLs (lenguajes de definición de datos).

 Manipulación de datos: el DBMS debe ser capaz de manejar peticiones para recuperar, actualizar o eliminar datos
existentes en la base de datos o agregar nuevos datos a ésta. En otras palabras, el DBMS debe incluir un componente
procesador DML o compilador DML para tratar con el DML (lenguaje de manipulación de datos).
Las peticiones DML pueden ser "planeadas" o "no planeadas":
a) Una petición planeada es aquella cuya necesidad fue prevista antes del momento de ejecutar la petición.
Probablemente el DBA habrá “preparado” el diseño físico de la base de datos de tal forma que garantice un buen
desempeño para las peticiones planeadas (se sabía de antemano cuáles eran).
b) Una petición no planeada es una consulta ad hoc; es decir, una petición para la que no se previó por adelantado su
necesidad, sino que en vez de ello, surgió sin pensarlo. El diseño físico de la base de datos podría o no ser el
adecuado para la petición específica en consideración.
Las peticiones planeadas son características de las aplicaciones "operacionales" o de "producción", mientras que las
peticiones no planeadas son características de las aplicaciones de "apoyo a la toma de decisiones". Además, peticiones

Bases de datos I Página 6


planeadas serán emitidas generalmente desde programas de aplicación prescritos, mientras que las no planeadas, por
definición, serán emitidas en forma interactiva mediante algún procesador del lenguaje de consulta.

 Optimización y ejecución: las peticiones DML, planeadas o no planeadas, deben ser procesadas por el componente
optimizador de la base de datos, cuya finalidad es determinar una forma eficiente de implementar la petición. Las
peticiones optimizadas se ejecutan entonces bajo el control del administrador en tiempo de ejecución.
 Seguridad e integridad de los datos: el DBMS debe vigilar las peticiones del usuario y rechazar todo intento de violar las
restricciones de seguridad y de integridad definidas por el DBA.
 Recuperación de datos y concurrencia: el DBMS —o más probablemente, algún otro componente de software
relacionado, denominado comúnmente administrador de transacciones o monitor de procesamiento de transacciones
(monitor PT) — debe imponer ciertos controles de recuperación y concurrencia.
 Diccionario de datos: el DBMS debe proporcionar una función de diccionario de datos (contiene datos acerca de los
datos, es decir, metadatos).
 Rendimiento: el DBMS debe realizar todas las tareas antes identificadas de la manera más eficiente posible.

Podemos resumir todo lo anterior diciendo que la finalidad general del DBMS consiste en proporcionar una interfaz de usuario
para el sistema de base de datos.

Optimización
Se dice a menudo que los lenguajes relacionales no son de procedimientos, en el sentido de que los usuarios especifican el qué,
no el cómo; es decir, dicen lo que desean sin especificar un procedimiento para obtenerlo. El proceso de "navegar" por los datos
a fin de satisfacer la petición del usuario es realizado automáticamente por el sistema, en vez de ser realizado en forma manual
por el usuario. Por esta razón, en ocasiones se dice que los sistemas relacionales realizan una navegación automática.
Decidir cómo realizar la navegación es responsabilidad de un componente muy importante del DBMS denominado optimizador.
En otras palabras, para cada petición relacional del usuario, es trabajo del optimizador seleccionar una forma eficiente de
implementar esa petición (un ejemplo visto en los ejercicios resueltos es determinar qué producto cartesiano conviene hacer
primero).
Por lo tanto, para repetir: Los usuarios sólo especifican qué datos desean, no cómo obtenerlos; la estrategia de acceso para
obtener los datos es seleccionada por el optimizador ("navegación automática"). Los usuarios y los programas de usuario son
independientes de dichas estrategias de acceso, lo que desde luego es esencial si se pretende lograr la independencia de los
datos.

Tablas:
o Tablas base: Son tablas existentes, es decir, que existen físicamente en el modelo conceptual.
o Tablas derivadas: Son tablas que no existen físicamente, sino que es o que pueden ser obtenidas a partir de tablas base
por medio de alguna operación relacional.
El tiempo de vida de las tablas de una base es corto y no va mas allá del procesamiento de una sentencia SQL o una
conexión al DBMS.
o Vistas: Por lo regular los sistemas relacionales también manejan otro tipo de tablas, denominada vista. Son tablas
virtuales que se utilizan en las diferentes visiones del nivel interno. La definición de la tabla virtual es permanente, pero
los datos no existen físicamente, sino que se generan al momento de la utilización de la misma.

La diferenciación entre variables de relación base y vistas se caracteriza con frecuencia de la siguiente manera:
 Las variables de relación base “existen realmente”, en el sentido de que representan datos que en realidad están
almacenados en la base de datos.
 En contraste, las vistas “no existen realmente”, sino que sólo proporcionan diferentes formas de ver a “los datos reales”
en un instante dado.

Transacción
Es una unidad de trabajo lógica que comprende varias sentencias SQL que transforman un estado consistente de la base de
datos en otro estado consistente. Es una unidad de trabajo porque todas las operaciones dentro de la transacción se toman
como un todo (no está permitido que se ejecute una sentencia y la otra no). También es una unidad de recuperación porque si
alguna de las operaciones falla se vuelve toda la transacción atrás (se hace todo o no se hace nada).
Propiedades de la transacción - Propiedades ACID (La sigla viene de cada propiedad inglés):

Bases de datos I Página 7


 Atomicidad: las transacciones son atómicas, es decir, se ejecuta de forma completa o no se ejecuta nada.
 Consistencia: las transacciones dejan siempre la base de datos en un estado consistente. Cuando inicia una transacción,
la base de datos está en un estado consistente. Cuando finaliza, la consistencia debe seguir estando garantizada. No se
garantiza consistencia en los datos intermedios de la transacción.
 Aislamiento: las transacciones están aisladas entre sí, es decir, una transacción no interfiere en el procesamiento de
otra y ambas mantienen la consistencia de la base de datos. La consistencia de una transacción no pone en peligro la
consistencia de la otra.
 Durabilidad: una vez que una transacción es confirmada (COMMIT), las modificaciones que realizó en la base de datos
son permanentes, más allá de que ocurra una caída posterior. Una vez que se ejecutó el COMMIT, la modificación ya se
realizó y es permanente, por más que se rompa el motor de base de datos posteriormente.

Las transacciones comienzan con un BEGIN TRANSACTION y pueden finalizar con un COMMIT si la transacción terminó
correctamente o, con un ROLLBACK si la transacción debe volverse atrás o deshacerse.
 La operación COMMIT indica la finalización de una transacción satisfactoria: que la base de datos está o debería
estar nuevamente en un estado consistente y que todas las actualizaciones efectuadas por esa unidad de
trabajo ahora pueden ser "confirmadas" o definitivas.
 Por el contrario, la operación ROLLBACK indica la finalización de una transacción no satisfactoria: que la base de
datos puede estar en un estado inconsistente y que todas las actualizaciones realizadas hasta este momento
por la unidad de trabajo lógica deben ser "revertidas" o deshechas. Esta sentencia puede ejecutarse
automáticamente por el DMS ante cualquier error o ser ejecutado por el programador luego de capturar o
reconocer algún error.

Cabe aclarar que una sentencia SQL por sí sola, es también una transacción.

Ejemplo (rollback explicito):

BEGIN TRANSACTION
UPDATE Cuenta1
IF OK
COMMIT
ELSE
ROLLBACK
INSERT Cuenta2
IF OK
COMMIT
ELSE
ROLLBACK

---------ES LO MISMO---------

BEGIN TRY
BEGIN TRANSACTION
UPDATE Cuenta1
INSERT Cuenta2
COMMIT
END TRY
BEGIN CATCH
ROLLBACK
END CATCH

Ejemplo (rollback automativo):

BEGIN TRANSACTION
UPDATE Cuenta1
COMMIT

Recuperación del sistema


El sistema debe estar preparado para recuperarse, a la hora de recuperarse se debe evaluar la gravedad de la falla existente:

Bases de datos I Página 8


o Falla Local: se ejecuta cuando afecta una única transacción. La recuperación consiste en volver atrás los cambios que
esa transacción individual realizo. Para ello, debe retroceder en el T-log a partir de la ejecución del Rollback e ir
revirtiendo todos los comandos ejecutados por esa transacción hasta el comienzo de la misma.
o Fallas Globales: Son fallos que afectan todas las transacciones ejecutándose en el sistema. Es decir, afectan al motor de
base de datos completo. Una clásica caída de sistema. Puede hacer dos tipos:
- Soft Crash (caída leve o fallas del sistema): son caídas que involucran a todas las transacciones, pero no
comprometen los medios de almacenamiento secundario y únicamente se pierde el contenido de la memora
RAM. (No se rompen los discos).
- Hard Crash (caída fuerte o fallas del medio): son caídas en donde hay compromiso en los medios de
almacenamiento secundario y parte de la base de datos se destruye físicamente (ejemplo: se rompieron los
discos, falla del controlador del disco, roce de cabezales, etc.).

¿Cómo se recupera el servidor de base de datos? Todo lo que va haciendo lo guarda en otro lado, transation log:

Log de transacciones (T-Log - Transaction Log)


El DBMS, para cada base de datos, mantiene en disco un log de transacciones en donde va almacenando secuencialmente todas
las operaciones que se realizan sobre los datos, como así también la información necesaria para revertirlas. Se utiliza el
protocolo de escritura adelantada que dice que antes de realizar cualquier modificación en la base de datos, se debe registrar la
operación y la información necesaria para recuperarla en el T-log, (“primero escribo en el log qué voy a hacer y después lo
hago”). Éste registro se realiza siempre en memoria secundaria. La unidad donde se almacenan estos datos utiliza una unidad
más rápida, debido a que está en constante uso.
La lectura y escritura se hacen en discos físicos diferentes para que se hagan en paralelo.
D:/
Datos F:/ T-Log H:/
C:/
Primero se de decir que se hizo (insert, update, delete) al DBMS, después se coloca en el T-log, en disco, y luego lo coloca en
memoria RAM.

Hay dos tipos de T-Log:

 Activa (o en línea): Formado por las posiciones del T-log que contiene las transacciones viejas en la base de datos
 Pasiva (archivada o fuera de línea): Posición del T-log que contiene las transacciones históricas en la base de datos.
Puede limpiarse sola, pero por lo general uno tiene que limpiarla, si no se limpia el T-log pasivo crece y puede llegar un
punto en que sea mas grande que la base de datos.

Marcas:

o “COMMIT POINT” (punto de confirmación): Es una marca que se produce cuando una transacción es confirmada
(ejecuta el commit), corresponde al final de una unidad lógica de trabajo y a un estado de consistencia de la base de
datos. En este punto, la transacción en el T-log pasa de activa a pasiva y los cambios se hacen durables en la base de
datos.
o “CHECK POINT”: Son marcas que se producen a intervalos regulares en el tiempo. En ese punto, se produce la bajada de
los buffers de la memoria principal a memoria secundaria.

Bases de datos I Página 9


A continuación, analizaremos como recuperarse luego de fallos:

o Fallas suaves o locales: escribe la recuperación, se realiza a través de la utilización de archivos especiales que
conforman el denominado transation log (t-log).
o Fallos globales: Cuando se produce una falla global el DBMS ejecuta un proceso de recovery para restablecer la
consistencia del motor de la base de datos, ya que algunas transacciones que finalizaron ok pudieron haber bajado
completamente en memoria secundaria.
El proceso de recovey consta de los siguientes pasos:
1. Posicionarse en el T-log en el último check point previo a la falla y genera dos listas:
 Deshacer: Una con las transacciones que debe deshacer, inicialmente cuenta con las transacciones
activas en ese momento.
 Rehacer: Contienen las
2. Comienza a procesar el T-log hacia delante; si encuentra un inicio de una transacción (BEGIN TRANSACTION), la
carga en la lista de deshacer. En cambio, si encuentra la finalización de una transacción (COMMIT), la mueve a
la lista tanto de deshacer como de rehacer.
3. Elimina de la lista de deshacer las transacciones que comenzaron a posteriori y nunca terminaron.
4. Deshace las transacciones que quedaron en la lista de deshacer. Y rehace completamente las transacciones
que quedaron en la lista de rehacer.
5. Se habilita el sistema para la realización. Ya que una vez terminada toda la actividad de recuperación, es
entonces (y sólo entonces) que el sistema está listo para aceptar más trabajo.

→ (Explicar con el siguiente ejemplo)

٠ En el tiempo tf sucede una falla de sistema.


٠ El punto de verificación más reciente anterior al tiempo tf , se tomó en el tiempo tc .
٠ Las transacciones de tipo T 1 terminaron (satisfactoriamente) antes del tiempo tc .
٠ Las transacciones de tipo T 2 se iniciaron antes del tiempo tc , y terminaron (satisfactoria mente) después del
tiempo tc y antes del tiempo tf .
٠ Las transacciones de tipo T 3 también se iniciaron antes del tiempo te , pero no habían terminado en el tiempo
tf .
٠ Las transacciones de tipo T 4 se iniciaron después del tiempo te y terminaron (satisfactoriamente) antes del
tiempo tf .
٠ Por último, las transacciones de tipo T 5 también se iniciaron después del tiempo tc , pero no habían
terminado en el tiempo tf .

 Hard Crash (caída fuerte o fallas del medio): son caídas en donde hay compromiso en los medios de almacenamiento
secundario y parte de la base de datos se destruye físicamente (ejemplo: se rompieron los discos, falla del controlador
del disco, roce de cabezales, etc.).
Para recuperarse de un Hard Crash implica restaurar las copias de seguridad que se han realizado en otro soporte. Una
vez restaurada, si el medio de almacenamiento en donde estaba el T-Log no fue comprometido se lo utiliza para
ejecutar el proceso de Recovery normal con la salvedad de que se inicie en el último Check Point anterior de la copia de
seguridad.
No hay necesidad de deshacer transacciones que estaban en progreso al momento de la falla, ya que por definición
todas las actualizaciones de esas transacciones ya han sido "deshechas" (de hecho, se perdieron).

Bases de datos I Página 10


De esta forma no hay pérdida de datos (se recupera parte activa y pasiva, aunque deba volverse atrás una vez
restauradas).
Si el almacenamiento del T-Log si se vio comprometido, los datos cargados en horarios sin copia de seguridad
simplemente se perdieron.
La forma de prevención es trabajar con arreglos de discos RAID, que permiten prevenir el Hard Crash cuando se rompe
una unidad. Otra forma es el respaldo, es decir, copiar e otro soporte la base de datos entera para restaurar la
información ante perdidas (a través de un back up o restore).

Bases de datos I Página 11

También podría gustarte