Universidad del Cauca – FIET – Departamento de Sistemas

Slides:



Advertisements
Presentaciones similares
Transacciones y Concurrencia en Oracle
Advertisements

SQL Sigla del nombre “Structured Query Language”.
integridad referencial
LICENCIATURA EN SISTEMAS COMPUTACIONALES EN ADMINISTRACION
VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Rocío Contreras Águila Primer Semestre 2010
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
Base de Datos Orientada a Objetos (OODBMS)
Administración de transacciones y bloqueos
Modificación de datos.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
Teórico: Modelo Relacional
CAPITULO 9 Creando y Manejando Tablas
Controlando el Acceso a los Usuarios
Mejoras a la Cláusula GROUP BY
RESPALDO.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 2 Restringiendo y Ordenando Datos.
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
CAPITULO 1 Escribiendo Sentencias SELECT Básicas
Lenguaje SQL (Structured Query Language)
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
Bases de Datos Relacionales
PL/SQL Francisco Moreno Universidad Nacional.
Subconsultas Avanzadas
Ing. Ricardo Carlos Inquilla Quispe
6 Copyright © 2010, Oracle y/o sus filiales. Todos los derechos reservados. Visualización de Datos de Varias Tablas Utilizando Uniones.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 7 Produciendo Salidas Más Legibles con iSQL*Plus.
UNITA - IBARRA TRIGGERS
BASES DE DATOS Con Access.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 6 Subconsultas.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
PostgreSQL: Parte 1 Integrantes: Álvaro Marciales Claudio Torrez.
CAPITULO 10 Manejando Restricciones
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
Elaborado por: Guillermo Baquerizo I Término
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
Triggers(Disparadores)
CAPITULO 4 Despliegue de Datos Desde Múltiples Tablas
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Data Manipulation Language (DML) Lenguaje de Manipulación de Datos
INSTRUCCIONES Elaboración de la Presentación:
LENGUAJE SQL.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 0 Introducción.
Vista Externa de Una Base de Datos John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
INSTRUCCIONES Elaboración de la Presentación:
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
Diseña y administra base de datos avanzadas
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
JOIN EN MYSQL Bueno en esta presentación mostrare cosas acerca de los usos de la sentencia JOIN en mysql , mediante esta presentación planeo mostrar los.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I PL/SQL.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Copyright  Oracle Corporation, All rights reserved. 8 Manipulación de Datos.
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Copyright  Oracle Corporation, All rights reserved. 11 Creación de Vistas.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Transcripción de la presentación:

Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 8 Manipulando Datos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Objetivos Después de este capítulo, usted estará en capacidad de: Describir cada sentencia DML Insertar filas en una tabla Modificar filas en una tabla Borrar filas de una tabla Fusionar (merge) filas en una tabla Controlar transacciones Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Examen previo Desarrollar un corto examen de cinco (5) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria. Realizar una corta realimentación de cada una de las preguntas. Tema: Manipulating Data Universidad del Cauca – FIET – Departamento de Sistemas

Lenguaje de Manipulación de datos (DML) Una sentencia DML se ejecuta cuando: Se adicionan nuevas filas a una tabla (INSERT) Se modifican filas en una tabla (UPDATE) Se eliminan filas existentes de una tabla (DELETE) Una transacción es una colección de sentencias DML que se comportan como una unidad lógica (se hacen todas en la base de datos o no se hace ninguna). Las sentencias asociadas son: COMMIT, SAVEPOINT y ROLLBACK Universidad del Cauca – FIET – Departamento de Sistemas

Adicionando una fila a una tabla Nueva fila Departamentos (antes) Departamentos (después) Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis de la sentencia INSERT INSERT INTO Tabla [ (Columna1 [, Columna2 …] )] VALUES (Valor1 [, Valor2 …]); Con esta sintaxis sólo se puede insertar una fila a la vez Si no se detallan las columnas, la lista de valores debe estar en el mismo orden de las columnas de la tabla Si se detallan las columnas, pueden ser todas las columnas de la tabla o sólo las que son requeridas. En ambos casos debe existir una concordancia entre columna1 y valor1, y así sucesivamente Los valores carácter y fecha deben encerrarse entre comillas sencillas Universidad del Cauca – FIET – Departamento de Sistemas

Insertando valores NULL Método explícito Método implícito, a las columnas que no están en la lista se les asigna NULL Universidad del Cauca – FIET – Departamento de Sistemas

Errores comunes al insertar Olvidar colocar un valor a una columna que es obligatoria (NOT NULL) Repetir un valor que no permite valores duplicados Colocar un valor que depende de otra tabla y en ella no exista (No encontrar una correspondencia con una llave foránea) Colocar un valor que no cumple con una restricción de entidad (CHECK) Colocar un valor que no corresponde con el tipo de dato de la columna Colocar un valor más grande del que se puede almacenar en la columna Universidad del Cauca – FIET – Departamento de Sistemas

Insertando valores especiales Universidad del Cauca – FIET – Departamento de Sistemas

Insertando fechas con TO_DATE Universidad del Cauca – FIET – Departamento de Sistemas

Variables de sustitución en inserciones Cualquier sentencia SQL (SELECT, DML, ..) puede almacenarse en un guión (script) y ejecutarse interactivamente con variables de sustitución Universidad del Cauca – FIET – Departamento de Sistemas

Insertado filas de otras tablas No se usa la cláusula VALUES Se usa una subconsulta Debe existir correspondencia explicita o implícita entre las columnas y los valores que se proyectan de la cláusula SELECT Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Modificando datos Modificar el departamento de los empleados recientemente ingresados, pasándolos del 10 (Contabilidad) al 30 (Ventas) Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis de la sentencia UPDATE UPDATE Tabla SET Columna1 = Valor1 [, Columna2 = Valor2, …] [WHERE Condición]; La sentencia UPDATE permite modificar el valor de las filas en una tabla Con una sola sentencia se pueden modificar cero, uno o más filas de la tabla, esto depende de la condición que se establezca en la cláusula WHERE. Cuidado: si no se coloca ninguna condición se modifican todas las filas de la tabla Antes de aplicar la sentencia UPDATE, se recomienda usar la sentencia SELECT con la condición que involucra las filas que se van a modificar Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia UPDATE Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia UPDATE Universidad del Cauca – FIET – Departamento de Sistemas

UPDATE y las subconsultas Universidad del Cauca – FIET – Departamento de Sistemas

Error de integridad referencial El departamento con código 90 no existe Universidad del Cauca – FIET – Departamento de Sistemas

Eliminar filas de una tabla Eliminar el departamento de COMPRAS Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis de la sentencia DELETE DELETE FROM Tabla [WHERE Condición]; La sentencia DELETE permite eliminar filas de una tabla Con una sola sentencia se pueden eliminar cero, uno o más filas de la tabla, esto depende de la condición que se establezca en la cláusula WHERE. Si ninguna fila coincide con la condición, se recibe el mensaje “0 filas borradas” Cuidado: si no se coloca ninguna condición se eliminan todas las filas de la tabla Antes de aplicar la sentencia DELETE, se recomienda usar la sentencia SELECT con la condición que involucra las filas que se van a eliminar Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia DELETE Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia DELETE Borrar todas las filas de la tabla Bonificaciones Universidad del Cauca – FIET – Departamento de Sistemas

DELETE y las subconsultas Universidad del Cauca – FIET – Departamento de Sistemas

Error de integridad referencial El departamento con código 20 tiene registros relacionados en la tabla de Empleados y no se puede eliminar porque existe la restricción de integridad referencial Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas INSERT y subconsultas Se relaciona con el concepto de vistas. La consulta se comporta como una vista en línea Universidad del Cauca – FIET – Departamento de Sistemas

INSERT y subconsultas con la cláusula WITH CHECK OPTION La cláusula WITH CHECK OPTION obliga que la fila a insertar haga parte de los posibles resultados de la subconsulta Universidad del Cauca – FIET – Departamento de Sistemas

La palabra clave DEFAULT Al definir una tabla se puede definir un valor por defecto para una columna. Si no se establece, se asume NULL Cuando se inserta (INSERT) o se modifica (UPDATE) una fila se puede usar la palabra clave DEFAULT para asignar el valor definido para una columna en el momento de creación de la tabla Esta característica se adiciono a Oracle para cumplir con el estándar SQL99 Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la palabra clave DEFAULT Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la palabra clave DEFAULT Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas La sentencia MERGE Permite que en una sola sentencia se decida insertar o modificar datos (filas o registros) en una tabla de la base de datos, la lógica que aplica es: Si las filas existen en la tabla de destino entonces realiza un UPDATE De lo contrario se realiza un INSERT Es útil: Porque evita realizar sentencias UPDATE por separado Porque incrementa el rendimiento (evita programación PL/SQL con bucles) y es fácil de usar En aplicaciones de bodegas de datos Se necesitan permisos de INSERT Y UPDATE sobre la tabla de destino En una sola sentencia MERGE no se puede modificar múltiples veces la misma fila Universidad del Cauca – FIET – Departamento de Sistemas

Sintaxis de la sentencia MERGE MERGE INTO Tabla AS AliasTablaDestino USING (Tabla | Vista | Subconsulta) AS AliasOrigen ON (CondiciónDeJoin) WHEN MATCHED THEN UPDATE SET Columna1 = ColumnaValor1 [, Columna2 = ColumnaValor2, …] WHEN NOT MATCHED THEN INSERT (ListaDeColumnas) VALUES (ListaDeColumnasValores); INTO Tabla: Define la tabla de destino, la tabla que va a recibir los INSERTs o los UPDATEs USING: Define la tabla, vista o subconsulta que tiene los datos de origen, los datos que se van a insertar o modificar ON: Define la condición de join, en la que se puede presentar hasta un FULL OUTER JOIN, pero no es necesario explicitarlo Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia MERGE Empleados con 17 filas Bonificaciones antes Universidad del Cauca – FIET – Departamento de Sistemas

Uso de la sentencia MERGE Bonificaciones después Como resultado se modificó una fila y se insertaron 17 Universidad del Cauca – FIET – Departamento de Sistemas

Transacciones en la base de datos Una transacción en una base de datos es: Un conjunto de sentencias DML (lenguaje de manejo de datos) que se constituyen en una sola sentencia, que se ejecuta en su totalidad o no Una sola sentencia DDL (lenguaje de definición de datos) Una sola sentencia DCL (Lenguaje de control de datos) Universidad del Cauca – FIET – Departamento de Sistemas

Transacciones en la base de datos Inicia cuando se ejecuta una primer sentencia DML Finaliza cuando Una sentencia COMMIT o ROLLBACK se ejecuta Una sentencia DDL o DCL se ejecuta (en forma oculta se genera un commit automático) El usuario sale de iSQL*Plus (commit automático) iSQL*Plus termina mal (rollback automático) El sistema se cae, por un fallo de luz, daño en el disco u otro (rollback automático) Cuando una transacción finaliza la siguiente sentencia DML inicia automáticamente Universidad del Cauca – FIET – Departamento de Sistemas

Ventajas de la sentencia COMMIT y ROLLBACK Ayudan a: Asegurar la consistencia de los datos Pre-visualizar los cambios en los datos antes de que se hagan efectivos en la base de datos y los vean los otros usuarios Agrupar lógicamente sentencias DML relacionadas Universidad del Cauca – FIET – Departamento de Sistemas

Control de transacciones ROLLBACK ROLLBACK TO SAVEPOINT P1 ROLLBACK TO SAVEPOINT P2 COMMIT ROLLBACK TO SAVEPOINT P3 Tiempo DELETE INSERT UPDATE INSERT SAVEPOINT P1 SAVEPOINT P2 SAVEPOINT P3 COMMIT Transacción Universidad del Cauca – FIET – Departamento de Sistemas

Control de transacciones SAVEPOINT marca un punto dentro de la transacción actual ROLLBACK puede devolver la transacción en su totalidad o hasta un punto marcado con SAVEPOINT (ROLLBACK TO SAVEPOINT). Universidad del Cauca – FIET – Departamento de Sistemas

Estado de los datos antes del COMMIT y ROLLBACK El estado anterior de los datos se puede recuperar (los datos se modifican primero en el buffer o se crean bloques de undo) El usuario que ejecuta la transacción puede ver como están quedando los datos usando el SELECT Los otros usuarios ven los datos originales (lectura consistente), NO los que el usuario ha modificado Las filas que se han modificado quedan bloqueadas (con candados) y no pueden ser modificadas por otros usuarios Universidad del Cauca – FIET – Departamento de Sistemas

Estado de los datos después del COMMIT Los cambios en los datos se hacen permanentes en la base de datos El estado original de los datos se pierde (se pueden consultar sólo si el tiempo de permanencia de los segmentos de undo es el apropiado) Todos los usuarios pueden ver los cambios Los candados sobre las filas se liberan y los usuarios pueden modificar los datos Todas las marcas de salvación (savepoint) se borran Universidad del Cauca – FIET – Departamento de Sistemas

Estado de los datos después del ROLLBACK Los cambios en los datos se pierden en su totalidad El estado original de los datos se restaura en su totalidad Los candados sobre las filas se liberan y los usuarios pueden modificar los datos Todas las marcas de salvación (savepoint) se borran Universidad del Cauca – FIET – Departamento de Sistemas

ROLLBACK a nivel de sentencia Si se van a ejecutar varias sentencias DML y una de ellas falla: Solamente esa sentencia se echa para atrás (ROLLBACK), esto se logra porque Oracle implementa una marca de salvación (savepoint) implícita para cada sentencia Todos los cambios realizados por las sentencias anteriores al error se mantienen El usuario debe terminar la transacción explícitamente o aplicando las reglas anteriormente explicadas Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Lectura consistente Garantiza que los usuarios tengan una vista consistente de los datos en todo momento Los usuarios ven los datos que ya están comprometidos en la base de datos, los que esta cambiando un usuario NO. Permite que los cambios hechos por un usuario NO entren en conflicto con los cambios hechos por otro usuario Cuando varios usuarios actúan sobre los mismos datos: Los lectores (SELECT) no esperan a causa de los escritores (DML) Los escritores no esperan a causa de los lectores Universidad del Cauca – FIET – Departamento de Sistemas

Implementación de la lectura consistente Usuario A Datos modificados de Empleados UPDATE Empleados SET Emp_Salario = Emp_Salario *1.5 WHERE Dep_Id = 20 Segmentos de UNDO de Empleados Usuario B Lectura consistente Otros datos no cambiados de Empleados SELECT * FROM Empleados Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Los candados Los candados de Oracle: Previenen que dos o más usuarios realicen operaciones “destructivas” en forma concurrente sobre los mismos datos No requieren ninguna interacción de los usuarios Usan el más bajo nivel de restricciones Sólo duran mientras la transacción existe Son de dos tipos: Explícitos Implícitos Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Los candados Nivel de aislamiento Lecturas sucias Lecturas no repetibles Lectura fantasma Lectura NO comprometida Posible Lectura comprometida (default) No Posible Lectura repetible Serializable SET TRANSACTION ISOLATION LEVEL READ COMMITTED; SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; SET TRANSACTION ISOLATION LEVEL READ ONLY; ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE; ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED; Universidad del Cauca – FIET – Departamento de Sistemas

Uso de candados implícitos Modos de bloqueo: Exclusivos (Exclusive): No permite que otros usuarios adquieran un candado sobre el recurso Compartidos (Share): Permite a otros usuarios adquirir candados compartidos sobre el recurso Tipos de consulta: DML: Protegen los datos, por ejemplo un candado sobre toda una tabla o sobre unas filas seleccionadas DDL: Protegen la definición de los objetos (esquemas), por ejemplo la definición de tablas y vistas Internos y Latches: Protegen estructuras internas de la base de datos, por ejemplo los archivos de datos Consultas: No requieren candados Universidad del Cauca – FIET – Departamento de Sistemas

Resumen de candados DML Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Resumen En esta lección usted debió aprender: A insertar filas de datos con la sentencia INSERT A modificar filas de datos con la sentencia UPDATE A borrar filas de datos con la sentencia DELETE A insertar o modificar filas en forma condicional con la sentencia MERGE A usar sentencias de control de transacciones con las sentencias COMMIT, ROLLBACK y SAVEPOINT Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Practica 8 Realizar una práctica de veintitrés (23) puntos que permite practicar: La inserción de filas La modificación de filas El borrado de filas El control de transacciones Universidad del Cauca – FIET – Departamento de Sistemas

Universidad del Cauca – FIET – Departamento de Sistemas Examen posterior Desarrollar un examen de quince (15) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria. Realizar una corta realimentación de cada una de las preguntas. Tema: Manipulating Data Universidad del Cauca – FIET – Departamento de Sistemas