Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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.
Modelos de almacenamiento
Almacenamiento Primario:
Ram
Almacenamiento secundario
No volátil:
Permanente:
Procesamiento Concurrente: Es aquel que se da cuando varios procesos corren al mismo tiempo.
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.
//////
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.
BItacora(LOG):Archivo especial que no conviene tenerlo en el mismo disco o directorio donde esta
la base de datos.
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
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.
Una línea en PL/SQL contiene grupos de caracteres conocidos como unidades léxicas, que pueden
ser clasificadas como :
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
• 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
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).