Semana 7 Entrega 3 Persistencia y Datos Transaccionales
Semana 7 Entrega 3 Persistencia y Datos Transaccionales
Semana 7 Entrega 3 Persistencia y Datos Transaccionales
INTRODUCCIÓN
MARCO DE REFERENCIA
Marco Teórico Fundamentos de Sockets los sockets son un mecanismo que nos permite
establecer un enlace entre dos programas que se ejecutan independientes el uno del otro
(generalmente un programa cliente y un programa servidor) Java por medio de la
librería java.net nos provee dos clases:Socket Para implementar la conexión desde el
lado del cliente y ServerSocket que nos permitirá manipular la conexión desde el lado del
servidor.El servidor estará a la espera de una conexión, en cuanto el cliente inicie enviará un
mensaje de petición al servidor, éste le responderá afirmativamente y una vez
recibida la confirmación, el cliente enviará un par de mensajes y la conexión finalizará.
Sumar 5000Bs a la cuenta de B, con lo que los saldos quedan A=15000Bs y B=5000Bs
Ahora bien, si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas
quedarían como A=15000 y B=0 con lo cual… Se han volatilizado 5000Bs y
presumiblemente ni A ni B estarán contentos, y hubiesen preferido que la transacción nunca
hubiese sido iniciada.
Este ejemplo ilustra porqué las transacciones tienen un comportamiento deseado de Todo o
nada, o se realiza completamente o no debe tener ningún efecto.
Transacciones. Un suceso externo que involucra el traslado de algo de valor entre dos o más
entidades. Las transacciones pueden ser:
a. Recíprocas. Intercambios en los que cada participante recibe y sacrifica un valor. Por
ejemplo, adquisiciones o ventas de bienes o servicios.
Captura
Validación
Actualización/consulta
Salida
● Transacciones complementarias.
● Transacciones no complementarias.
2. Transacciones complementarias. Son cuando los estados del ego del emisor y receptor
durante la transacción inicial simplemente se invierten en la respuesta. También podemos
decir que cuando el patrón entre los estados se describe en forma gráfica las líneas son
paralelas, en el cual el supervisor habla el empleado.
En bases de datos se denomina ACID a la propiedad de una base de datos para realizar
transacciones seguras. Así pues ACID compliant define a un sistema de gestión de bases de
datos que puede realizar transacciones seguras. En concreto ACID es un acrónimo de
Atomicity, Consistency, Isolation and Durability: Durabilidad, Aislamiento, Consistencia e
Indivisibilidad en español.
En cuanto a las limitaciones de las transacciones éstas vienen por el lado de la característica
de todo o nada de las mismas, considerando que hay situaciones de la vida real en las cuales
se requiere una mayor flexibilidad. Es el caso en que alguna de las acciones realizadas por
una transacción sería deseable que se hiciesen persistentes aún cuando una de ellas no halla
tenido éxito, pero dada la filosofía de que una mezcla de éxito y fracaso no es posible, esto no
puede ser llevado a cabo. Pero esto se resuelve mediante la utilización de múltiples
transacciones simples para simular una transacción compuesta (transacciones anidadas o
encadenadas), lo que se traduce por supuesto en una mayor carga de trabajo en la etapa de
programación.
Relacionado al punto anterior (ya se dijo que los sistemas transaccionales no están orientados
a trabajos por lotes) se debe considerar el hecho de que una transacción voluminosa,
entendiendo como tal a una transacción que requiere actualizar una gran cantidad de
registros; o bien puede monopolizar por mucho tiempo algún recurso crítico del sistema, lo
que no es deseable para el resto de los procesos clientes (usuarios impacientes), o bien
después de procesar por un largo periodo de tiempo se deben abortar (rollback) todas las
acciones realizadas durante ese periodo, lo que implica la necesidad de repetir todo el proceso
nuevamente, porque solo una de las actualizaciones falló.
Para llevar a cabo de mejor forma su función es deseable que una transacción tenga las
siguientes características:
1. Atomicidad. Una transacción debe ser atómica. A pesar de que una transacción está
compuesta por un número cualquiera de eventos, el sistema las debe considerar como una
única operación, la cual puede tener éxito; en tal caso se hacen permanentes los cambios
generados por cada evento componente de la transacción; o fracaso, en este caso el sistema
queda en el mismo estado, como si la transacción nunca hubiera ocurrido.
2. Consistencia. Todos los cambios provocados por la transacción deben dejar al sistema en
un estado correcto. El sistema es llevado desde un estado válido a otro estado válido,
producto de la acción de una transacción.
3. Aislamiento. Las transacciones que se ejecutan concurrentemente no se ven afectadas unas
con otras. Si una transacción A cambia un sistema de un estado E1 a un estado E2, una
transacción B siempre verá al sistema en un estado E1 o E2, pero nunca en un estado
intermedio.
4. Durabilidad. Si una transacción es terminada en forma exitosa los efectos serán
permanentes.
En Java, crear una conexión socket TCP/IP se realiza directamente con el paquete java.net. A
continuación, mostramos un diagrama de lo que ocurre en el lado del cliente y del
servidor:El modelo de sockets más simple es:•El servidor establece un puerto y espera
durante un cierto tiempo (timeout segundos), a que el cliente establezca la conexión.
Cuando el cliente solicite una conexión, el servidor abrirá la conexión socket con el método
accept().
•El cliente establece una conexión con la máquina hasta través del puerto que se
designe en puerto
•El cliente y el servidor se comunican con manejadores InputStream y OutputStream
Modelo entidad relación
modelo lógico
Mo
del
o
físi
co
CREATE DATABASE DATOS;
USE DATOS;
CREATE TABLE CARGOS
(
cargoID INT NOT NULL AUTO_INCREMENT,
cargoNombre VARCHAR(100) NOT NULL,
cargoSueldoMinimo VARCHAR(20) NOT NULL,
cargoSueldoMaximo VARCHAR(30) NOT NULL,
PRIMARY KEY (cargoID)
);
● Case 3 salida
● Código conexión
Esta clase establece una sesión de cliente para que sea verificada la identidad del mismo y
con ella se mantengan las variables necesarias para filtrar la información que sea relevante
para este cliente y solo para él. Esto es útil tanto para verificar la identidad del cliente como
para reducir la cantidad de información que se va a transmitir. Código Principal Así mismo el
cliente tiene una clase principal de manera que controla las interacciones tanto con el servidor
como otras que pueden existir de manera local.
● Código principal
Registro de un empleado
Visualizamos todos lo datos en la tabla de empleados:
Ingresamos los datos para crear un nuevo empleado y clicamos en el botón “Registrar”:
Por último, realizamos la búsqueda de todos los registros de la tabla para comprobar el
resultado:
Actualización en la base de datos:
Buscamos el empleado al que le queremos realizar las modificaciones.
Y por último buscamos todos los registros de la base datos para comprobar que se realizó el
cambio:
Enlace del video: https://www.youtube.com/watch?v=7v_cgRuJ33E