Você está na página 1de 7

Cuestionario

transacción: Colección de operaciones que forman una unidad lógica de trabajo

Propiedad de una transacción: ACID (Atomicidad, consistencia, Aislamiento y Durabilidad

Atomicidad: Requiere que cada transacción sea “ todo” o nada si una parte de la transacción falla,
todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios.

Consistencia: se asegura que cualquier transacción llevara a la base de datos de un estado valido a
otro estado valido. Cualquier dato que se escriba en la base de datos tiene que ser valido de
acuerdo a todas las reglas definidas, incluyendo los constraints, los cascades , los triggers y
cualquier combinación de estos.

Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que


para cada par de transacciones, no se entrelazaran en su ejecución, sino que se realizaran de
forma independiente.

Durabilidad: Tras la finalización con éxito de una transacción, los cambios realizados en la base de
datos permanecen, incuso si hay fallos en el sistema.

Acceso a la base de datos mediante dos operaciones

 Leer(x): Transfierre de Bd a memoria intermedia de la T(x)


 Escribir(x): Transfiere de memoria intermedia a la base de datos.

Modelos de almacenamiento

Almacenamiento Primario:

Volatil: Falta de energía eléctrica se pierde la información

Ram

Almacenamiento secundario

No volátil:

 Falta de energía no se pierde la información


 Discos ductos CDs, etc

Permanente:

 No importa lo que pase siempre se dispondrá de la información


 Múltiples copias

Procesamiento Concurrente: Es aquel que se da cuando varios procesos corren al mismo tiempo.

Procesamiento Paralelo: Sistema Operativo maneja recursos de un sistema y guarda la


información en bloques(sectores).

Bloque: Es la unidad de almacenamiento secundario


Buffer: Es la unidad de transferencia de información entre el almacenamiento primario y
secundario. -------Es la unidad de almacenamiento primario. ------

(Por lo regular si el DBMS pide un registro trae todo el bloque)

(El cual puede contener varios registros)

Modelo de transacción:

 Una transacción que termina su ejecución con éxito se dice que está comprometida
 Una Transaccion comprometida que haya hecho modificaciones transforma la base de
datos llevándola a un nuevo estado consistente , que permanece incluso si hay fallo en el
sistema.
 En ausencia de fallos, todas las transacciones se completan con éxito
 Una transacción que no termina su ejecución con éxito se dice que esta abortada
 Para asegurar la atomicidad , las transacciones abortadas no deben tener efecto sobre el
estado de la base de datos , cualquier cambio que haya hecho la transacción abortada
debe deshacerse
 Una vez deshecha los cambios de una transacción abortada se dice que la transaccoin se
ha retrocedido.

Una transacción debe estar en uno de los siguientes estados:

 Activa (estado inicial): la transacción permanece en este estado durante su ejecución.


 Parcialmente comprometida: La transacción pasa a este estado cuando acaba de realizar
la última instrucción.
 Fallida: la transacción pasa a este estado tras descubrir que no puede continuar la
ejecución normal.
 Abortada: La transacción pasa a este estado después de haber restablecido la base de
datos a su estado anterior.
 Comprometida: La transacción pasa a este estado tras completarse con éxito.
Para iniciar una transacción se pone: Begin /start transaction

Para terminar una transacción se utilizar

Commit work (compromete la transacción actual)

Rollback work (provoca que la transacción aborte.

//////

Para que el sistema se pueda recuperar ante fallos se necesita grabar cada operación con la BD en
un fichero LOG (bitácora). Checkpoints.

 Se escribe en el fichero LOG debe estar en memoria estable


 El fichero LOG debe estar en memoria estable

BItacora(LOG):Archivo especial que no conviene tenerlo en el mismo disco o directorio donde esta
la base de datos.

La ejecución concurrente de transacciones puede dar lugar a problemas:

 Problemas de la actualización perdida


 Problema de leer una actualización temporal (lectura sucia)
 Problema del resumen incorrecto
 Problema de la lectura no repetible

Tecnicas de bloqueo:

Operación lock_exclusivo(x): deja bloqueado al que lo pide si otro ya tiene cualquier lock sobre x

Operación lock compartido (x): deja bloqueado al que lo pide si otro ya tiene un lock exclusivo
sobre x

Operación Unlock(x): libera su lock sobre x


Deadlock ( o abrazo mortal o interbloqueo): Cuando una transacción T1 esta bloqueada
esperando a que otra T2 libere una lock, la cual también esta bloqueada esperando a que T1 libere
uno de sus lock. Se puede generalizar para N transacciones.

Prevencion de Deadlocks:

 Los elementos de la BD están ordenados de alguna manera y los lock hay que obtenerlos
en dicho orden. Los programadores deben controlarlo.

PL/SQL :Es el lenguaje de progrmacion que proporciona Oracle para extender el SQL estándar con
otro tipo de instrucciones y elementos propios de los lenguajes de programación.

PL/SQL: no diferencia mayúsculas de minúsculas

Una línea en PL/SQL contiene grupos de caracteres conocidos como unidades léxicas, que pueden
ser clasificadas como :

 Delimitadores: Es un símbolo simple o compuesto que tiene una función especial en


PL/SQL (operadores aritméticos, operadores lógicos, operadores relacionales)
 Identificadores:Son empleados para nombrar objetos de programas en PL/SQL asi como a
unidades dentro del mismo, estas unidades y objetos incluyen: (constantes,
cursores,variables, subprogramas, excepciones, paquetes)
 Literales:Es un valor de tipo numérico, carácter, cadena o lógico no reprensentado por un
identificador (es un valor Explicito)
 Comentarios: Es una aclaración que el programador incluye en el codigo. Son soportados
2 estilos de comentarios, el de línea simple y el de multilinea.
 Expresiones
////////////////////////////////////////////////////////////////////////////

Procedimientos Almacenados

Procedimiento almacenado: Objeto perteneciente a una base de datos, que contiene un conjunto
de instrucciones SQL, tanto de consulta, como de manipulación de datos, como de control de la
secuencia del programa, asociados a un nombre, y que son ejecutados en conjunto.

Ventajas:

 Diseño modular.
 Aplicaciones que acceden la misma Base de Datos pueden compartir los procedimientos
almacenados, eliminando el código doble y reduciendo el tamaño de las aplicaciones.
 El fácil mantenimiento.
 Cuando un procedimiento se actualiza, los cambios se reflejan automáticamente en todas
las aplicaciones, sin la necesidad de recompilar y relinkear.
 Las aplicaciones son compiladas sólo una vezpara cada cliente.
 Los procedimientos almacenados son ejecutados por el servidor, no por el cliente lo que
reduce el tráfico en la red y mejora el performance o desempeño, especialmente para el
acceso del cliente remoto.
 Están almacenados en los servidores y asegurados por las medidas tomadas en la
instalación, lo que impide que los usuarios normales puedan modificarlos e incluso
desconocen su existencia. Este es un elemento degran valor en lo que a seguridad
respecta.

Tunnig:
 El objetivo de Tunning es la optimización tanto de las sentencias SQL como de mejoras en
la configuración del servidor de Bases de Datos, desde el punto de vista del tiempo de
ejecución y consumo de recursos.
 Mejorar el desempeño de SQL es generalmente la forma más efectiva de mejorar el
desempeño de las aplicaciones

Beneficios de Hacer Tunnig

 Mejorar el tiempo de respuesta de las aplicaciones online


 Mejorar el tiempo de las aplicaciones batch
 Garantizar la escalabilidad de la aplicación
 Reducir la carga del sistema  liberar recursos para otros propósitos
 Evitar actualizaciones innecesarias (e inútiles muchas veces) de hardware

Donde hacer tunning

- Tuning de Configuración de Memoria,CPU


– Distribución de I/O en particiones.
– Tuning de objetos.
– Tuning de procesos y aplicaciones.
– Tuning de Networking Database.
– Tuning procedimientos de respaldos

Condiciones para hacer tunnig

• Documentación de los modelos disponibles

• Los requerimientos del sistema han sido expuestos

• ¡Si el diseño está mal, el tuning puede ser inútil!

• Aunque el SQL esté afinado, si el servidor no lo está, esto podría impedir el logro de las
expectativas… Afinar el servidor de la BD

Triggers

¿Qué es un Triggers?

Los triggers son bloques PL/SQL que se ejecutan de manera implícita cuando se ejecutan
operaciones INSERT, DELETE, UPDATE a una tabla* Se usan principalmente para establecer
reglas complejas de seguridad y labores de auditoria.

También existen triggers que se disparan ante otros eventos y objetos de la base de datos
(LOGON, LOGOFF, STARTUP,BEFORE DDL, entre otros
Se utilizan para

 mantener la integridad referencial,

 asegurar reglas de negocio complejas y auditar cambios en los datos.

Para definir un trigger se debe:

 Especificar las condiciones bajo las que el trigger será ejecutado.

Especificar las acciones que se realizarán cuando el trigger se ejecute

Se especifica el comando DML de


Definición de los triggers

SQL que dispara el triggers con


Delet, Insert o Update.
Comando
Se indica cuando se debe de
disparar el triggers (AFTER,
BEFORE)

Restricción

Acción

Nombre disparador: Siguen las mismas normas de nomenclatura que otros identificadores en
la BD
Replace: Se utiliza para sobreescribir un disparador existente
Before/After/Instead of: Instante de ejecución del disparador con respecto al evento que lo
desencadena
Evento: Tipo de orden DML sobre una tabla que provoca la activación del disparador
INSERT | DELETE | UPDATE [OF <lista de columnas>]
Nivel:
FOR EACH ROW: disparadores a nivel de fila. Se activan una vez por cada fila afectada por el
evento
FOR EACH STATEMENT: disparadores a nivel de orden. Se activan sólo una vez (antes o
después de la orden).
When: Sólo tiene sentido a nivel de fila. La condición se evalúa (true o false).

Você também pode gostar