Guia 08 A
Guia 08 A
Guia 08 A
FA C U LTA D D E I N G E N I E R I A Y A R Q U I T E C T U R A Ciclo
Conceptos Básicos.
Transacciones
Una transacción es un grupo de acciones que hacen transformaciones consistentes en
las tablas preservando la consistencia de la base de datos. Una base de datos está en un
estado consistente si obedece todas las restricciones de integridad definidas sobre ella.
Los cambios de estado ocurren debido a actualizaciones, inserciones, y eliminaciones de
información. Por supuesto, se quiere asegurar que la base de datos nunca entre en un
estado de inconsistencia. Sin embargo, durante la ejecución de una transacción, la base
de datos puede estar temporalmente en un estado inconsistente. El punto importante aquí
es asegurar que la base de datos regresa a un estado consistente al fin de la ejecución de
una transacción.
Una transacción debe tener las propiedades ACID, que son las iniciales en inglés de las
siguientes características: Atomicity, Consistency, Isolation, Durability.
Atomicidad
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
1
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Coherencia
Aislamiento
Durabilidad
Una transacción es una unidad de recuperación. Si una transacción tiene éxito, sus
actualizaciones persisten, aun cuando falle el equipo o se apague. Si una transacción no
tiene éxito, el sistema permanece en el estado anterior antes de la transacción.
Operación de Transacciones
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
2
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Para confirmar los cambios realizados durante una transacción utilizamos la sentencia
commit.
Para cancelar los cambios realizados durante una transacción utilizamos la sentencia
rollback.
Desarrollo.
Las Guías Versión Oracle(de la 8 a la 11) han sido creadas para ejecutarse
con la herramienta SQL Plus que tiene Oracle, si Ud. utiliza otra
herramienta, haga caso omiso de los números de línea en los
comandos.
Caso a Desarrollar
El siguiente modelo trata de una empresa que ofrece cursos de extensión, los
participantes tienen la libertad de matricularse sin ninguna restricción, y pueden tener
facilidades de pago.
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
3
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Modelo Lógico
Modelo Físico
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
4
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Script 8.1
Connected.
2 identified by admin;
User created.
Asignar Privilegios
Asignaremos privilegios al usuario egcc a través del los roles connect y resource, los
cuales le otorgan los privilegios necesarios para que pueda crear sus objetos.
Script 8.2
Grant succeeded.
Ahora ya podemos ingresar como usuario egcc y crear los objetos que corresponden a su
esquema.
Creación de Tablas
Sintaxis
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
5
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
. ..
. ..
);
Tabla Curso
Script 8.3
Connected.
8 );
Table created.
Tabla Alumno
Tabla Matricula
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
6
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Tabla Pago
La restricción Primary Key se utiliza para definir la clave primaria de una tabla, en el siguiente cuadro se
especifica la(s) columna(s) que conforman la PK de cada tabla.
Curso Incurso
Alumno IdAlumno
Tabla Curso
Script 8.4
Table altered.
Tabla Alumno
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
7
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Tabla Matricula
Tabla Pago
IdCurso Curso
Matricula
IdAlumno Alumno
Sintaxis
References TablaReferenciada;
Es necesario que en la tabla referenciada esté definida la PK, por que la relación se crea
entre la PK de la tabla referenciada y las columnas que indicamos en la cláusula Foreign
Key.
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
8
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Tabla Matricula
1ra FK
Script 8.5
4 References Curso;
Table altered.
2da FK
Tabla Pago
Esta tabla solo tiene una FK y esta compuesta por dos columnas: IdCurso e IdAlumno, y
la tabla referenciada es Matricula, escriba usted el script para crear ésta FK.
Sintaxis
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
9
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Ejemplo
El número de vacantes por defecto para cualquier curso debe ser 20.
Script 8. 6
Table altered.
Script 8. 7
Sintaxis
Ejemplo
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
10
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Script 8. 8
Table altered.
Si queremos insertar un alumno tendríamos que ingresar datos para todas las columnas.
Script 8. 9
ERROR at line 1:
El mensaje de error claramente nos indica que no se puede insertar valores nulos en la
columna TELEFONO, de la tabla ALUMNO, que se encuentra en el esquema EGCC.
Sintaxis
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
11
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Ejemplo
Script 8.10
3 Unique (NomAlumno);
Table altered.
Script 8.11
1 row created.
ERROR at line 1:
El mensaje de error del segundo insert nos indica que esta violando el constraint de tipo
unique de nombre U_ALUMNO_NOMALUMNO en el esquema EGCC.
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
12
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Sintaxis
Check ( Condición );
Ejemplo
Script 8.12
Table altered.
Script 8.13
ERROR at line 1:
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
13
Universidad de El Salvador BAD-115 Guía de Laboratorio #8
Al intentar ingresar un curso con precio negativo, inmediatamente nos muestra el mensaje
de error indicándonos que se está violando la regla de validación.
Sintaxis
Ejemplo
Script 8.14
Grant succeeded.
Script 8.15
Connected.
Ing. Elmer Arturo Carballo Ruiz MSc. / Ing. Cesar Augusto González Rodríguez MAF
Ciclo II-2012
14