Sei sulla pagina 1di 81

Arquitectura de Sistemas

de Informacin
rea de Ingeniera Telemtica
Bloque 1:
Bases de Datos
Arquitectura de Sistemas de
Informacin
Grado en Ingeniera Tcnica de Telecomunicacin (3 Curso)
ARQSI 12-13 Bloque - 1 3
Bloque 1
! Objetivos o competencias
! Dominar los conceptos asociados a la tecnologa de Bases de
datos y herramientas relacionadas: Modelo de Datos Relacional
y Objeto-Relacional, Teora de Diseo de Bases de Datos
Relacionales, la Concurrencia, el Concepto de Transaccin.
! Comprender la arquitectura de los Sistemas de Gestin de
Bases de Datos -SGBD- y el lenguaje SQL, ajustes y
optimizadores de SGBD, control de la concurrencia, gestin de
transacciones y mecanismos de recuperacin frente a fallos.
! Contacto: Marina Aguado marina.aguado@ehu.es
Edificio puente 3 planta 3967
ARQSI 12-13 Bloque - 1 4
Bloque 1 - Contenido
1.1 Conceptos Fundamentales en Bases de Datos
1.2. Modelado Entidad Relacin
1.2.1 Entidades y atributos
1.2.2 Modelo lgico y Modelo fsico
1.2.3 Las restricciones
1.3 Lenguage SQL
1.3.1 Tipos de comandos SQL
1.3.2 Creacin de Objetos en la Base de Datos
1.3.3 Consultas Multitabla
1.4 Control de Concurrencia y Transacciones
ARQSI 12-13 Bloque - 1 5
Bloque 1: Metodologa
Duracin : 4h teoria 6h lab
" Definir una DB (modelar la BD Crear Modelo E/R)
# Definir qu campos hay en cada registro
# El tipo de dato en cada campo
# Restringir los datos: Nota {A,B,C,D,F,I} = crear restricciones
" Construir la DB
# Rellenar las tablas
# Los registros pueden estar relacionados entre s.
(Ejemplo: El alumno Borja con sus notas) ! RELACIN
" Manipular la DB
# Consultar:
Obtener las notas de Borja
Listados de alumnos de 2005 con sus notas
# Actualizar:Pasar Maite a 2 curso
# Crear Vistas con las consultas ms frecuentes
ARQSI 12-13 Bloque - 1 6
Bloque 1: Bases de Datos
! Trabajos relacionados:
! Infojobs, monster
! Search for DBA oracle
! Programa de certificacin ORACLE
ARQSI 12-13 Bloque - 1 7
Bloque 1: Bases de Datos
! Ejemplos de otros aos:
! Taller mecnico
! Casa rural
! rdenes de servicio en una empresa Telecom
! Club de Baloncesto
! Gestin de un Txoko
! Gestin de un Balneario
! Club de Krate
ARQSI 12-13 Bloque - 1 8
Bloque 1: Bases de Datos
! Evaluacin:
! Test la semana siguiente de acabar la prctica
! Semana del 18 al 21 de Febrero
! Realizacin de una prctica: construccin de una
base de datos
! Preguntas tericas cortas en el exmen terico de la
asignatura
ARQSI 12-13 Bloque - 1 9
Bloque 1: Bases de Datos
! Bibliografa y Recursos:
! Sistemas de Bases de Datos. Conceptos Fundamentales. Elmasri/Navathe
! Oracle data base server
! Oracle SQL developer
! Oracle Data Base Modeler
! CD Tutorial Oracle + PDF castellano
! Traer USB
! Leer la prctica antes de venir al laboratorio
! Instalar los softwares y familiarizarse con ellos
Es posible instalar los software en casa y acceder desde alli
al servidor de base de datos utilizando la VPN
ARQSI 12-13 Bloque - 1 10
Tema 1 Contenido
Conceptos Fundamentales de Bases de Datos
$ Uso de las Bases de datos
$ Definiciones bsicas (DB, DBMS, DS)
$ Ejemplo: base de datos de una universidad
$ Ficheros vs. Bases de Datos
$ Caractersticas de la metodologa de Base de Datos
$ Tipos de Usuarios
$ Ventajas de utilizar una metodologa DBMS
ARQSI 12-13 Bloque - 1 11
Uso de las Bases de Datos
! Uso tradicional de las Bases de Datos (informacin textual y
numrica)
! Bancos (depositar/retirar fondos)
! Hoteles o reservas de vuelos
! Bsqueda bibliogrfica
! Peticin de suscripciones en revistas
! Compras en supermercados (actualizacin de inventarios)
! ...
! Nuevos usos de las Bases de Datos
! Multimedia: imgenes, vdeos, audio
! Sistemas de Informacin Geogrfica GIS: mapas, datos meteorolgicos,
imgenes de satlite...
! Almacenes de datos y sistemas de procesamiento analtico on-line
OLAP: extraer y analizar informacin til de BD para tomar decisiones
! Tecnologa de tiempo real y BD activas: controlar procesos industriales
y de fabricacin
ARQSI 12-13 Bloque - 1 12
Definiciones bsicas
! DB (Base de Datos)
! Coleccin de datos relacionados
! Datos: Hechos (datos) conocidos que se pueden grabar y que tienen
un significado implcito (nombres, nmeros de telfono,
direcciones...)
! DBMS (Sistema de administracin de datos)
! Coleccin de programas que permite crear y mantener una base
de datos
! Definir la DB, construirla y manipularla
$ Definir: especificar los distintos datos a almacenar
$ Construir: almacenar los datos
$ Manipular: funciones para consultar, buscar, modificar, compartir,
mantener...
! DBS (sistema DB): DB + software
ARQSI 12-13 Bloque - 1 13
Sistemas de bases de datos
BDS = DB + software
DB
DBS
DBMS
Programas de aplicacin/Consultas
Usuarios / Programadores
Catlogo
ARQSI 12-13 Bloque - 1 14
Sistema de Gestin de Base de
Datos DBMS
ARQSI 12-13 Bloque - 1 15
DB, caractersticas implcitas
! Representa algn aspecto del mundo real (minimundo)
Los cambios introducidos en el minimundo se reflejan en la base de
datos
! Coleccin de datos lgicamente coherente con significado
inherente (no un surtido aleatorio de datos)
! Propsito especfico: Se disean, construyen y rellenan con
datos para un fin conocido. Dispone de un grupo pretendido de
usuarios (y aplicaciones concretas de inters para stos).
ARQSI 12-13 Bloque - 1 16
Ejemplo: DB de una
Universidad
ESTUDIANTE
ASIGNATURA
PROGRAMA
NOTA
PRERREQUISITO
Relaciones
ARQSI 12-13 Bloque - 1 17
Ficheros vs. Bases de Datos
ARQSI 12-13 Bloque - 1 18
Ficheros vs. Bases de Datos
" Usuario o aplicacin nicos
" Una nica vista del mundo
real
" Diseados a medida para las
necesidades de la aplicacin
" La informacin puede estar
repetida
% Diferentes usuarios/aplicaciones
% Cada usuario tiene su propia vista del
mundo
% Rene todas las vistas de los
usuarios en una nica.
DATOS
Certicados
Contabilidad
Ap Profesor
Ficheros
Bases de Datos
ARQSI 12-13 Bloque - 1 19
Caractersticas de las vistas
con ficheros
! Ejemplo
! La secretara de la escuela tiene las notas de los alumnos
! Contabilidad de Leioa gestiona el pago y control de tasas de
matrculas
! Redundancia de Datos
! Con las vistas mediante Ficheros, los datos de los estudiantes
matriculados estn duplicados
! Problemas de la redundancia de datos:
! Espacio de almacenamiento desperdiciado
! Doble trabajo de actualizacin de datos de los alumnos
! Inconsistencia
! Pueden convivir datos contradictorios en distintos ficheros relativos al
mismo alumno
ARQSI 12-13 Bloque - 1 20
Caractersticas de la Metodologa de
Bases de Datos
ARQSI 12-13 Bloque - 1 21
Naturaleza Autodescriptiva
! Los DBS, adems de la DB, almacenan la estructura y las
restricciones de los datos - metadatos
! Los metadatos se almacenan en el catlogo, que consta de:
! Estructura de las Tablas
! El tipo de campos y su formato
! Restricciones sobre los datos
! El catlogo es parte del DBS
! El DBMS y los usuarios acceden al catlogo para conocer la
estructura de la DB
Caractersticas de la Metodologa de
Bases de Datos
ARQSI 12-13 Bloque - 1 22
! Independencia programa-datos
! Si actualizamos una tabla de la DB no tiene por qu ser necesario
actualizar los programas
! Con ficheros: Si modificamos la estructura de los ficheros habr que
actualizar todos los programas que los utilizan
! Independencia programa-operacin
! En DB orientadas a objeto, las operaciones sobre los datos de la DB
(mtodos) se almacenan en la propia DB
! Se puede modificar la implementacin de las operaciones (conservando la
interfaz o firma) sin que esto afecte a las aplicaciones de usuario que las
usan
! Abstraccin de datos
! Caracterstica que permite los dos tipos de independencia
Abstraccin de Datos
Caractersticas de la Metodologa de
Bases de Datos
ARQSI 12-13 Bloque - 1 23
! Soporte de varias vistas de los datos
! Una vista puede ser un subconjunto de la DB
! Tambin puede contener datos virtuales derivados de los archivos de la
DB pero que no estn explcitamente almacenados
! Ejemplo: PRERREQUISITO
Vistas
Caractersticas de la Metodologa de
Bases de Datos
ARQSI 12-13 Bloque - 1 24
! Permiten el control de la concurrencia
! Asegura que varios usuarios que intentan actualizar los mismos datos, lo
hagan de modo controlado para que el resultado sea correcto. Ejemplo.
Varios agentes de viaje intentan reservar el mismo asiento del mismo vuelo
a la vez.
! Este tipo de aplicaciones se denomina OLTP (Procesamiento de
Transacciones on-line)
$ Aislamiento de operaciones y atomicidad, todo/nada.
Transacciones
Caractersticas de la Metodologa de
Bases de Datos
ARQSI 12-13 Bloque - 1 25
Tipos de Usuarios
! Administrador de la Base de datos (DBA)
! Autoriza el acceso a la DB
! Coordina y monitoriza el uso de la DB
! Adquiere los recursos hardware y software necesarios
! Responsable de evitar brechas de seguridad o tiempos de respuesta
pobres
! Diseador de la Base de datos (AD)
! Identifica los datos que se almacenarn y elige las estructuras
apropiadas para representar y almacenarlos
! No es necesario perfil tcnico pero s conocimiento del negocio
! Comunicarse con todos los potenciales usuarios de la DB
! Entender sus necesidades
! Hacer un diseo adecuado
! Crear las vistas que satisfagan dichas necesidades
ARQSI 12-13 Bloque - 1 26
Tipos de Usuarios (2)
! Usuarios finales
! Personas que necesitan acceso a la DB
! Categoras
! Casuales: Utilizan lenguajes de consulta DB sofisticados (administradores de
nivel medio-alto)
! Principiantes o paramtricos: transacciones enlatadas de consulta y
actualizacin constantes (bancos, reservas, paquetera)
! Sofisticados: implementan aplicaciones con requisitos complejos (ingenieros,
cientficos, analistas comerciales)
! Autnomos: mantienen DB personales
! Analista de sistemas
! Determinan los requisitos del usuario final
! Definen las transacciones enlatadas
ARQSI 12-13 Bloque - 1 27
Tipos de Usuarios (3)
! Programador de aplicaciones
! Implementa las transacciones
! Prueba, depura, documenta y mantiene
! Otros usuarios
! Diseadores e implementadores de DBMS
! Desarrolladores de herramientas y paquetes opcionales para DBMS
! Operadores y personal de mantenimiento: Responsables de la
ejecucin y mantenimiento real en el entorno Hw y Sw del DBMS
ARQSI 12-13 Bloque - 1 28
Ventajas del uso de una
metodologa DMS
! Control de la redundancia
! Cada dato se almacena slo en un lugar, o
! Si as se desea, se almacenan datos repetidos de modo controlado para evitar
inconsistencias
! Restriccin de acceso no autorizado
! Subsistema de seguridad y autorizacin
! Crear cuentas de acceso a la DB
! Acceso restringido a determinados datos
! Restriccin de operaciones (ejemplo: slo consultas)
! Software privilegiado: control del software para crear cuentas y permisos (por
ejemplo, slo el administrador DBA)
ARQSI 12-13 Bloque - 1 29
Ventajas del uso de una metodologa
DMS (2)
! Almacenamiento persistente
! Posibilidad de recuperar el valor de una variable con posterioridad a la ejecucin
de un programa (aunque la variable sea de una estructura de datos compleja)
! Son transformadas a un formato intermedio compatible
! De lo contrario, aparece el problema incompatibilidad de inpedantzia
! En sistemas de bases de datos orientadas a objeto existe la compatibilidad entre
programas y bases de datos que permiten que los objetos perduren a la
ejecucin de los programas. Son objetos persistentes.
! Estructuras de almacenamiento
! ndices: estructuras de datos especializadas para acelerar la bsqueda en el
disco de los registros deseados (copias en memoria principal)
! Copias de seguridad y recuperacin
! El DBMS ofrece la posibilidad de recuperarse ante fallos del Hw o Sw
! Posibilidad de retomar una transaccin en el punto en que se interrunpi
ARQSI 12-13 Bloque - 1 30
Ventajas del uso de una metodologa
DBS (3)
! Suministro de varias interfaces de usuario
! Lenguajes de consulta, mens, lenguaje natural, formularios, GUIs...
! Representacin de relaciones complejas entre datos
! Fciles de crear nuevas, modificarlas, actualizarlas
! Implementacin de las restricciones de integridad
! Los DBMS ofrecen servicios para asegurar restricciones
! Ejemplo: cualquier registro de la tabla seccion , debe esta relacionado
con un registro de la tabla curso
! Inferencias y acciones usando reglas
! En sistemas de DB deductivos y activos
ARQSI 12-13 Bloque - 1 31
Implicaciones adicionales de
utilizar DBs
! Potencial para implementar estndares
! Nombres y formatos de los datos, formatos de visualizacin, estructura
de informes, terminologa
! Reduccin del tiempo de desarrollo
! Tras el esfuerzo inicial de construccin de la DB, el esfuerzo de
desarrollo de nuevas aplicaciones es 1/6-1/4 que con ficheros
! Flexibilidad
! Se puede modificar la DB: aadir nuevas tablas, nuevos campos
! Disponibilidad de la informacin actualizada
! Tan pronto como se aplica una actualizacin de un usuario, queda
visible inmediatamente a los dems
! Economas de escala
! Varios departamentos interesados pueden compartir el mismo equipo.
Reduccin de costo
ARQSI 12-13 Bloque - 1 32
Tema 2 Contenido
Modelado Entidad Relacin
Tipos de Bases de Datos
La base de Datos Relacional y sus Componentes
Terminologa Bsica en una Base de Datos
Relacional
El Modelo Entidad Relacin
Entidades y atributos
Modelo lgico y Modelo fsico
Las restricciones
ARQSI 12-13 Bloque - 1 33
Tipos de Bases de Datos
ARQSI 12-13 Bloque - 1 34
La Bases de Datos Relacional
y sus componentes
ARQSI 12-13 Bloque - 1 35
La Bases de Datos Relacional y
sus componentes
ARQSI 12-13 Bloque - 1 36
La Bases de Datos Relacional
y sus componentes
ARQSI 12-13 Bloque - 1 37
Terminologa bsica en una
Base de Datos Relacional
ARQSI 12-13 Bloque - 1 38
Terminologa bsica en una
Base de Datos Relacional
ARQSI 12-13 Bloque - 1 39
Terminologa bsica en una
Base de Datos Relacional
ARQSI 12-13 Bloque - 1 40
El modelo entidad Relacin
ARQSI 12-13 Bloque - 1 41
El modelo entidad Relacin
ARQSI 12-13 Bloque - 1 42
El modelo entidad Relacin:
Grado de una relacin
ARQSI 12-13 Bloque - 1 43
Tema 3 Contenido
El lenguaje SQL
El lenguaje SQL
Clasificacin de comandos SQL
Creacin de objetos en la Base de datos
Consultas multitabla
Comandos DML Manipulacin de la base de datos
ARQSI 12-13 Bloque - 1 44
Comunicacin con el DBMS:
Lenguaje SQL
! El lenguaje SQL (Structure Query Language) es un lenguaje declarativo
! Se indica lo que buscamos pero no decimos cmo lo vamos a hacer
! El DBMS es el responsable de realizar la operacin en el orden
adecuado y optimizar su ejecucin de la mejor manera posible.
! DBMS comerciales ! Evoluciones del SQL
! SQL estandar: SQL-86, SQL-92, SQL:1999 (OO algunos conceptos),
SQL:2003 (comienzo de XML), SQL:2006 (XML, XQuery) y SQL:2008.
ARQSI 12-13 Bloque - 1 45
Lenguaje SQL :
Clasificacin de los comandos
! SQL
! Consultar la informacin de la base de datos.
! Comandos para manipular la informacin en la pase
de datos, Actualizar la informacin (DML- Data
Manipulation Language)
! Lenguaje para definicin y construccin de la base
de datos(DDL- Data Definition Language)
! Comandos para el control de la transaccin
! Comandos para establecer las polticas necesarias
de seguridad y autorizaciones
! Comandos para creacin de views, ndices
para mejorar el rendimiento de la base de
datos...
! Lenguaje para programacin de triggers
procedimientos y subrutinas (C, Java, PL/SLQ)
ARQSI 12-13 Bloque - 1 46
Lenguaje SQL :
Clasificacin de comandos
! Comando para la recuperacin de la informacin: SELECT
No abarcaremos SUBQUERIES o consultas anidadas ni
Clausulas con HAVING o GROUP BY
SELECT columna
FROM tabla
[WHERE condicin]; Los comandos
en mayscula
ARQSI 12-13 Bloque - 1 47
Lenguaje SQL: Clasificacin de
Comandos
" Comandos DML (Manipulacin de Datos)
ARQSI 12-13 Bloque - 1 48
Lenguaje SQL: Clasificacin de
Comandos
" Comandos DDL (Definicin de Objetos)
ARQSI 12-13 Bloque - 1 49
Lenguaje SQL: Clasificacin de
Comandos
" Comandos (Control de Transaccin)
ARQSI 12-13 Bloque - 1 50
Lenguaje SQL: Clasificacin de
Comandos
" Comandos DCL (Comandos para el Control del Acceso)
ARQSI 12-13 Bloque - 1 51
Lenguaje SQL: Creacin de la base de datos
" Comandos DDL (Definicin de Objetos)
ARQSI 12-13 Bloque - 1 52
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 53
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 54
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 55
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 56
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 57
Lenguaje SQL: Creacin de la base de datos
ARQSI 12-13 Bloque - 1 58
! Para visualizar todos los datos de la tabla EMPLEADOS:
SELECT *
FROM EMPLEADOS;
! Para visualizar la fecha de nacimiento y direccin de todos los empleados:
SELECT FechNac, Direccion
FROM EMPLEADOS;
! Para recuperar la informacin de fecha de nacimiento y direccin de Jos
Silva:
SELECT FechNac, Direccion
FROM EMPLEADOS
WHERE NOMBRE=Jos AND APELLIDO=Silva;
SELECT atributo
WHERE condicion
{=, <, >, <=, >=, <>}, AND, OR, NOT
NOMBRE ID APELLIDO INI FechNac DIRECCION SEXO
SALARIO COMISION ..
EMPLADOS
...
...
Lenguaje SQL: Consultas
y consultas Multitabla
El comando SELECT
ARQSI 12-13 Bloque - 1 59
Lenguage SQL : SELECT
y los operadores matemticos +,-,*,/
! +, -,* y / son operadores matemticos
! Se puede incrementar con una sla lnea de comando el sueldo a todos los
empleados de la tabla EMPLEADO
SELECT NOMBRE, SALARIO, SALARIO+300
FROM EMPLEADO;
! Cualquier operacin matemtica sobre un valor NULL retorna en NULL
(Null+2=Null)
! El orden de precedencia es de izquierda a derecha y se pueden utilizar parentesis
! Se pueden utilizar operadores matemticos con atributos de tipo fecha DATE
ARQSI 12-13 Bloque - 1 60
Lenguaje SQL : SELECT
Comando concatenacin || y alias AS
! Se pueden concatenar el campo de cdigo de empleado y el campo
nombre del empleado utilizando el comando || y asociarle un alias
equivalente a Login Name:
SELECT EMPNO||APELLIDO AS Logon Name
FROM EMP;
ARQSI 12-13 Bloque - 1 61
Lenguaje SQL: SELECT
DISTINCT, ALL
Cuando se ejecuta un comando SQL pueden aparecer valores repetidos
Si queremos evitar valores repetidos podemos utilizar el comando DISTINCT
Cuando se utilizan funciones agregadas (i.e. Valor medio) no nos interesa eliminar
registros repetidos
SELECT deptno = SELECT ALL deptno
FROM EMP; FROM EMP;
SELECT DISTINCT deptno
FROM EMP;
SELECT DISTINCT deptno, job
FROM EMP;
ARQSI 12-13 Bloque - 1 62
Lenguaje SQL :
SELECT ORDER BY
! Por defecto el resultado de un SELECT aparece en orden descendente
! Para forzar el orden descendente o ascendente se aade las expresiones
! DESC
! ASC
ARQSI 12-13 Bloque - 1 63
Lenguaje SQL : SELECT
BETWEEN y mltiples valores explcitos
El operador BETWEEN :
Se utiliza el comando BETWEEN para recuperar informacin que se encuentra
dentro de un rango de valores
SELECT *
FROM EMP
WHERE (SAL BETWEEN 30.000 AND 40.000) AND deptno=40
Grupos de valores explcitos IN:
Se utiliza el operador IN dentro de una clausula WHERE para identificar o buscar
valores en una lista de valores no consecutivos. Los valores detrs del operador IN
estn separados por comas.
SELECT *
FROM EMP
WHERE EMPNO IN (7601,7609,7803)
ARQSI 12-13 Bloque - 1 64
Lenguaje SQL: Consultas Multitabla
Para recuperar informacin distribuda a travs de mltiples tablas se utiliza una
variedad de Join conditions. Una condicin de join especifica una relacin que existe
entre la informacin de diferentes columnas en diferentes tablas.
Para establecer la condicin de join se utiliza la clausula WHERE.
Hay cuatro tipos de join el equijoin el non equijoin el outer join y el self join.
ARQSI 12-13 Bloque - 1 65
Lenguaje SQL: Consultas Multitabla
Equijoin
Se puede recuperar informacin de las tablas EMP y
DEPT utilizando un equijoin porque ambas continenen
valores comunes en la tabla DEPTNO. Las tablas tienen
una clave primaria y una relacin de foreign key basada
en esos valores.
ARQSI 12-13 Bloque - 1 66
Lenguaje SQL: Consultas Multitabla
Equijoin (ms de dos tablas)
Para recuperar informacin de ms de dos tablas se tienen
que establecer condiciones de join entre cada una de las
tablas participantes.
ARQSI 12-13 Bloque - 1 67
Lenguaje SQL: Consultas Multitabla
Non Equijoin
Se puede establecer un link entre dos tablas utilizando un
operador diferente al igual en la clasula WHERE.
Este tipo de JOIN se llama non-equijoin.
ARQSI 12-13 Bloque - 1 68
Lenguaje SQL: Consultas Multitabla
Outer Join
ARQSI 12-13 Bloque - 1 69
Lenguaje SQL: Consultas Multitabla
Self Join
ARQSI 12-13 Bloque - 1 70
Lenguaje SQL: Comandos DML
(DATA MANIPULATION LANGUAGE)
INSERT UPDATE DELETE
ARQSI 12-13 Bloque - 1 71
Lenguaje SQL: Comandos DML
ARQSI 12-13 Bloque - 1 72
Lenguaje SQL: Comandos DML
ARQSI 12-13 Bloque - 1 73
Lenguaje SQL: Comandos DML
ARQSI 12-13 Bloque - 1 74
Lenguaje SQL:
Construccin de views
Una view es una estructura lgica basada en otra tabla o en otra view.
La view no contiene datos en si misma
La view opera como si fuese una ventana o un cristal desde donde se
accede a la informacin de otras tablas (tablas base)
Contribuyen a la independencia de datos
Aumentan la flexibilidad
ARQSI 12-13 Bloque - 1 75
Tema 4 Contenido
Control de Concurrencia y Transacciones
Una transaccin es un conjunto de sentencias DML relacionadas
que se ejecutan como una unidad.
Las herramientas o comandos para el control de una transaccin
permiten que ese conjunto de operaciones DML relacionadas se
lleven a trmino satisfactoriamente como una unidad o bien que se
cancelen como una unidad tambin.
Hay diferentes formas de concluir una transaccin: con un commit,
rollback o un comando DDL o con un exit o un crash de sistema.
El lenguaje SQL proporciona un conjunto de comandos con los
que controlar la lgica de las transacciones : COMMIT,
ROLLBACK y SAVEPOINT.
ARQSI 12-13 Bloque - 1 76
Tema 4 Contenido
Control de Concurrencia y Transacciones
Cuando se llevan a cabo operaciones DML el servidor retiene el estado anterior de los datos hasta que se
hace un commit de la transaccin. Si se lleva a cabo un rollback, el servidor automticamente devuelve la
informacin a su estado anterior. La persona que est ejecutando las sentencias DML puede observar el
resultado de sus propios comandos DML
ARQSI 12-13 Bloque - 1 77
Tema 4 Contenido
Control de Concurrencia y Transacciones
En la grfica se muestra dos usuarios separados ejecutando operaciones de SELECT y UPDATE en la misma tabla
El mecanismo anterior es el que permite al servidor oracle mantener la informacin consistente cuando varios usuarios
acceden a la base de datos
ARQSI 12-13 Bloque - 1 78
Tema 4 Contenido
Control de Concurrencia y Transacciones
Hasta que el primer usuario no realiza el commit, los otros usuarios no pueden ver el resultado de las operaciones que
ese primer usuario est realizando.
ARQSI 12-13 Bloque - 1 79
Tema 4 Contenido
Control de Concurrencia y Transacciones
Cuando llevas a cabo operaciones DML el servidor bloquea las filas afectadas. Como resultado, otros usuarios son
incapaces de cambiar la informacin que se ve afectada por esa operacin DML
ARQSI 12-13 Bloque - 1 80
Tema 4 Contenido
Control de Concurrencia y Transacciones
Commit Discards Previous Data
ARQSI 12-13 Bloque - 1 81
Tema 4 Contenido
Control de Concurrencia y Transacciones
Probar en la base de datos en parejas

Potrebbero piacerti anche