You are on page 1of 7

Área personal / Mis cursos / [2-2020] INF322-SB / Examen Parcial 2 / Examen Parcial 2

Comenzado el Wednesday, 10 de March de 2021, 11:09


Estado Finalizado
Finalizado en Wednesday, 10 de March de 2021, 11:38
Tiempo empleado 29 minutos 11 segundos
Calificación 88,00 de 100,00

Pregunta 1

Correcta

Puntúa 20,00
sobre 20,00

Las transacciones T2 y T1 se ejecutan mediante un PLAN NO SERIE, después de ejecutar las dos transacciones se deben
responder a la siguiente pregunta:

 ¿Cuál es el valor de X  después de ejecutar el PLAN?: 7 


Pregunta 2   Esquema e Instancia de la Base de Datos “Bancos”
Correcta
-- Tabla de Cuentas de Ahorro
Puntúa 15,00
create table Cuentas
sobre 15,00
(
ncta char(1) not null primary key,       -- Numero de Cuenta
dcta char(15) not null,                       -- Descripcion de la Cuenta
propietario char(40) not null,              -- Nombre del propietario
fecha date not null                            -- Fecha de inicio
)
-- Tabla de Movimientos de la Cuenta de Ahorros
create table MovCuentas
(
ntran integer  not null,             --Nro Movimiento
ncta char(1) not null,              -- Nro de Cuenta          
fecha date not null,                -- Fecha del Mvimiento
impt decimal,                        -- si impt>0 es abono, si impt<0 es retiro
check (impt<>0),
foreign key(ncta) references Cuentas(ncta),
primary key(ntra,ncta)
)

 Figura 1. Instancia de la Base de Datos Bancos

Dada la  siguiente Transacción T, que transfiere  fondos entre dos cuentas, retira 50 bs de la cuenta A y los abona a la
cuenta B.

DECLARE @monto DECIMAL


DECLARE @saldo DECIMAL
SET @monto=50
BEGIN TRY
     BEGIN TRAN
            SELECT @saldo=SUM(impt) FROM MovCuentas WHERE ncta='A'
            IF  @saldo>=@monto
                  BEGIN
                        INSERT INTO MovCuentas VALUES(3,'A',GETDATE(),-@monto)
                        INSERT INTO MovCuentas VALUES(3,'B',GETDATE(),@monto)
                        ROLLBACK TRAN
                END
    END TRY
    BEGIN CATCH
                COMMIT TRAN
    END CATCH
Después de ejecutar  la transacción T usando la instancia de la BD de la Figura 1, responda las siguientes preguntas.

1. ¿Cuál propiedad ACID viola la transaccion T?: ninguna   (escriba ninguna=si no se viola alguna

propiedad, si se viola mas de una propiedad, separe con coma EJ. seguridad,portabilidad,...)

2. ¿Cual es el Saldo de la cuenta A?: 300 

3. ¿Cual es el Saldo de la cuenta B?: 50 


Pregunta 3 Dado el siguiente esquema e instancia de la Base de Datos "Airport" 
Correcta

Puntúa 15,00
sobre 15,00

Dadas las siguientes transacciones T1 y T2

Las transacciones T1 y T2 se ejecutan mediante un PLAN NO SERIE, después de ejecutar las dos transacciones se deben
responder a las siguientes preguntas:

1. ¿Cuál es el valor de X  después de ejecutar T1?: 8   

2. ¿Cuál es el valor de X  después de ejecutar T2?: 6 

3. ¿Cuál es el valor de X  después de ejecutar el PLAN?: 6 

4. ¿Es correcto el valor de X  después de ejecutar el PLAN SI/NO?: SI 


Pregunta 4 Dado el siguiente esquema e instancia de la Base de Datos "Airport" 
Parcialmente
correcta

Puntúa 3,00
sobre 15,00

Dadas las siguientes transacciones T1 y T2

Las transacciones T1 y T2 se ejecutan mediante un PLAN NO SERIE, después de ejecutar las dos transacciones se deben
responder a las siguientes preguntas:

1. ¿Cuál es el valor de X  después de ejecutar T1?: 4   

2. ¿Cuál es el valor de X  después de ejecutar T2?: 2 

3. ¿Cuál es el valor de X  después de ejecutar el PLAN?: 2 

4. ¿Es correcto el valor de X  después de ejecutar el PLAN SI/NO?: SI 


Pregunta 5

Correcta

Puntúa 20,00
sobre 20,00

Las transacciones T1 y T2 se ejecutan mediante un PLAN NO SERIE, después de ejecutar las dos transacciones se deben
responder a la siguiente pregunta:

 ¿Cuál es el valor de X  después de ejecutar el PLAN?: 6 


Pregunta 6  Esquema e Instancia de la Base de Datos “Bancos”
Correcta
-- Tabla de Cuentas de Ahorro
Puntúa 15,00
create table Cuentas
sobre 15,00
(
ncta char(1) not null primary key,       -- Numero de Cuenta
dcta char(15) not null,                       -- Descripcion de la Cuenta
propietario char(40) not null,              -- Nombre del propietario
fecha date not null                            -- Fecha de inicio
)
-- Tabla de Movimientos de la Cuenta de Ahorros
create table MovCuentas
(
ntran integer  not null,             --Nro Movimiento
ncta char(1) not null,              -- Nro de Cuenta          
fecha date not null,                -- Fecha del Mvimiento
impt decimal,                        -- si impt>0 es abono, si impt<0 es retiro
check (impt<>0),
foreign key(ncta) references Cuentas(ncta),
primary key(ntra,ncta)
)

 Figura 1. Instancia de la Base de Datos Bancos

Dada la  siguiente Transacción T, que transfiere  fondos entre dos cuentas, retira 50 bs de la cuenta B y los abona a la
cuenta A.

DECLARE @monto DECIMAL


DECLARE @saldo DECIMAL
SET @monto=50
BEGIN TRAN 
SELECT @saldo=SUM(impt) FROM MovCuentas WHERE ncta='B'
INSERT INTO MovCuentas VALUES(3,'A','01/01/2012',@monto)
INSERT INTO MovCuentas VALUES(3,'B','01/01/212',-@monto)
IF @saldo>=@monto
      BEGIN
           COMMIT TRAN
     END
ELSE
        ROLLBACK TRAN
Después de ejecutar  la transacción T usando la instancia de la BD de la Figura 1, responda las siguientes preguntas.

1. ¿Cual es el Saldo de la cuenta A?: 350 

2. ¿Cual es el Saldo de la cuenta B?: 50 

← Lab1-T4 (Control de Concurrencia enla


Ir a...
BD Airport)
Resumen de retención de datos
Descargar la app para dispositivos móviles
Cambiar al tema recomendado para su dispositivo

You might also like