logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

Operaciones DML

Selecciona el idioma :

Este video solo está disponible para los alumnos que han adquirido el curso

Operaciones DML


Los datos en una BD relacional se manejan con.

Operaciones DML:

  • INSERT: Sirve para insertar datos.
  • UPDATE: Sirve para actualizar datos.
  • DELETE: Sirve para eliminar datos.
  • MERGE: Es una combinación de INSERT, UPDATE Y DELETE. Une dos tablas.

Operaciones de control:

  • COMMIT: Hace permanente los cambios realizados.
  • ROLLBACK: Deshace los cambios realizados.
  • SAVEPOINT: Crea un punto de salvado en una transacción.

Aunque estos comandos proporcionan un gran poder de gestión de los datos, no son suficientes para tener un pleno control, por lo que Oracle ha creado PL/SQL que añade más funcionalidad:

  • Iteración.
  • Condiciones.
  • Variables.

ACID: Todas las transacciónes tienen que cumplir con los siguientes propiedades:

  • Atomicidad (A): Cuando se ejecuta una transacción todas sus operativas tienen que realizarse o ninguna. Con esta propiedad se impide que solo se ejecute una parte de la operativa de una transacción.
  • Consistencia (C): Es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de Integridad de la base de datos.
  • Aislamiento (Isolation): Los resultados de todas las sentencias incluidas en una transacción tienen que ser invisibles para el resto de la Base de Datos. Sólo serán visibles para otros cuando se ejecute su COMMIT.
  • Durabilidad (D): Esta propiedad asegura que una vez realizada la operación, esta persistirá y no se podrá deshacer aunque falle el sistema y que de esta forma los datos sobrevivan de alguna manera.

Pasos de sentencias SQL

Oracle cuando va a recuperar o enviar información, la unidad mínima con la que trabaja son los bloques, por lo tanto, aunque un bloque no esté lleno, pero contiene parte de la información requerida, trabajará con todo el bloque completo.

Cuando se necesita buscar los bloques que tienen la información necesaria, Oracle no va a buscarlos directamente a la Base de datos (proceso que tarda más tiempo), primero va a buscarlos al DB Buffer Cache, si no los encuentra va a la Base de datos y una vez localizados los copia a la DB Buffer Cache, para que estos bloques estén disponibles para una posterior consulta.

Todas las operaciones DML requieren manejar:

  • Bloques de datos.
  • Bloques Undo.
  • Y genera Redo, pasa la información tratada a ficheros físicos por si en un futuro es necesario volver a un estado anterior.

SELECT: Estos son los pasos que se sigue cuando se realiza una sentencia Select:

  • Se transfiere la sentencia Select desde el proceso usuario hasta el proceso servidor.
  • Antes de ir a buscar los bloques (que contienen la información) en la BD va a buscarlos en la DB Caché por si los bloques ya están en esta memoria. Si la DB Caché no tuviese los bloques se ejecuta el siguiente paso y si los tuviese se ejecuta el 5º paso.
  • Localizar los bloques que contienen la información en los Datafiles (fichero de datos).
  • Copiar los bloques que contiene la información dentro de la DB Caché.
  • Transferir los datos al proceso servidor donde se ejecutará un post-procesado si fuese necesario.
  • Se devuelve el resultado de la consulta al proceso usuario.

UPDATE: Estos son los pasos que se sigue cuando se realiza una sentencia Update:

  • Se busca los bloques de datos en la DB Caché o en los Datafiles.
  • Se utiliza un bloque vacio de un segmento Undo.
  • Se bloquea todos los registros que puedan verse afectado por la operación.
  • Se genera Redo.
  • Se realiza las actualizaciones sobre DB Caché:
  • 1 Antes de actualizar los bloques con la nueva información, se pasa esta información a bloques de segmentos Undo.
  • 2 Se actualiza datos de los bloques del DB Buffer Cache con la nueva información.

Si durante esta operación existiese otra consulta que solicitase los datos que se han actualizado


datos operaciones dml

Publicaciones Recientes de oracle dba

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?