Exploración Detallada de LOBs, Triggers, Paquetes, Cursores y Transacciones en Bases de Datos

Clasificado en Informática

Escrito el en español con un tamaño de 4,59 KB

Tipos de LOB (Large Objects)

Los diferentes tipos de LOB son:

  • Blob: Puede contener fotos, MP3, videos, etc. Es información binaria enviada dentro de la tupla, lo que permite ventajas de mantenimiento. Es netamente transaccional, puede usarse en cascada y se puede indexar.
  • Bfile: Es una referencia *nested*. La base de datos hace el sistema de archivo hasta el SO. Al trabajar con orientado a objetos, es un apuntador suave con la referencia, siendo más eficiente en tiempo de respuesta. Permite tener una base de datos más liviana; sin embargo, la referencia a la carpeta o directorio se puede perder, por lo que se debe garantizar la seguridad sobre el directorio.
  • Clob: Información de caracteres. Tanto el Blob como el Clob permiten un máximo de 4 GB por registro.

Triggers

Triggers: Es un tipo especial de procedimiento que se activa cuando ocurre un evento determinado dentro de la base de datos.

Tipos de Triggers

  • Trigger DML: Son triggers que se activan a través de instrucciones de manipulación de datos (INSERT, UPDATE, DELETE). La acción deseada se puede disparar antes o después de la operación y se puede ejecutar por fila o una sola vez.
  • Trigger de Sustitución: Sirven para modificar los valores de la vista, ya que de otra manera tendría que modificar las tablas de origen desde donde se genera la vista. Se aplican triggers de sustitución en lugar de asociar una tabla.
  • Trigger de Sistema: Funciona con DDL (CREATE, DROP, ALTER). Oracle permite definir esquemas de seguridad basados en roles y privilegios. Sirve para tener aún más seguridad, ya que permite ejecutar acciones si ocurre algún evento DDL.

Paquetes

Paquetes: Los paquetes son utilizados para la organización de las funciones y procedimientos agrupados. Un paquete debe tener un cuerpo donde se definen las funciones o procedimientos definidos en el encabezado. Con los paquetes se puede proteger a las funciones y procedimientos ofreciendo más seguridad. Sin embargo, es posible tener funciones y procedimientos llamados igual, pero declarándolos fuera y dentro de los paquetes; los parámetros dentro del encabezado y en la definición del paquete deben tener el mismo orden.

Cursores

Cursores: Los cursores sirven para recorrer secuencialmente resultados de columnas que tengan más de una tupla luego de ser ejecutada la consulta.

Transacciones

Transacciones: Una transacción es una operación o conjunto de ellas que altera el estado de un objeto hacia otro estado. En un manejador de base de datos, dichas operaciones se encuentran entre dos *commits* cuando son operaciones DML.

  • En DML, entre *commit* y *commit*.
  • En DCL, implica cada operación un *commit*.
  • En DDL, implica cada operación un *commit*.

Propiedades de las Transacciones (ACID)

  • Atomicidad: Se ejecuta o no se ejecuta la transacción.
  • Aislamiento: No se debe permitir que una transacción opere sobre las actualizaciones de otra hasta que finalice.
  • Consistencia: La ejecución correcta de la transacción debe llevar de un estado consistente a otro estado de consistencia.
  • Permanencia: Una vez ejecutada la transacción, todas sus actualizaciones deben permanecer asentadas en la BD en el tiempo.

Conflictos de Concurrencia

¿Cuáles son los principales conflictos de concurrencia que existen en un sistema transaccional?

  1. Actualización perdida (lectura sucia).
  2. Resumen Incorrecto.
  3. Lectura no repetida.

Métodos para Mitigar Conflictos

¿Cuáles son los principales métodos para mitigar los conflictos planteados?

  1. Bloqueo: Se define como el método que no permite que mientras una transacción esté operando sobre la máquina, ninguna otra transacción sea capaz de tomar esos recursos. En Oracle, es posible implementar estos bloques; se pueden aplicar distintos tipos de granularidad de la BD y puede bloquear un atributo hasta una tabla entera. El bloqueo permite cumplir con la característica funcional de aislamiento.
  2. Timestamp: Consiste en aplicar un identificador de tiempo a cada transacción de modo que, dependiendo de la configuración, si la marca de tiempo es mayor o menor, se apertura o colocará en permanencia dicha transacción.

Entradas relacionadas: