También rendí en esta fecha así que sumo las preguntas que me hicieron:
CAMPUS
V/F
Un grafo es biunívoco cuando tiene un solo predecesor y un solo sucesor. (
VERDADERA: Es la definición de unicidad doble.)
Si una columna posee la constraint 'UNIQUE' entonces una sola fila como máximo puede contener NULL en dicha columna. (
VERDADERA)
Multiple Choice
Práctica
Mi resolución incompleta por falta de tiempo (me pusieron 3/5 puntos)
CREATE PROCEDURE actualizar_prod_precio AS
BEGIN
DECLARE @updated INT = 0, @no_updated INT = 0
DECLARE @prod_cod CHAR(10), @prod_deta CHAR(150), @precio_new DECIMAL(12,2)
DECLARE mi_cursor CURSOR FOR
SELECT prod_codigo, prod_detalle FROM Producto FOR UPDATE OF prod_precio
OPEN mi_cursor
FETCH mi_cursor INTO @prod_cod, @prod_deta
WHILE (@@FETCH_STATUS = 0 )
BEGIN
IF ( @prod_cod IN (SELECT item_prod_codigo FROM Item_Factura JOIN Factura ON item_fact_id = fact_id WHERE MONTH(fact_fecha) = MONTH(GETDATE())
BEGIN
-- tomar el nuevo precio = precio del item en su ultima venta del mes
@precio_new = SELECT item_precio FROM
UPDATE Producto SET prod_precio = @precio_new WHERE CURRENT OF mi_cursor
@updated = @updated + 1
END
ELSE
BEGIN
INSERT INTO LOG_PRECIOS (log_prod_codigo, log_prod_detalle) VALUES (@prod_cod, @prod_deta)
@no_updated = @no_updated + 1
END
FETCH mi_cursor INTO @prod_cod, @prod_deta
END
CLOSE mi_cursor
DEALLOCATE mi_cursor
PRINT 'Cantidad de productos actualizados: ' + CAST(@updated AS VARCHAR) + ' Cantidad de productos no actualizados: ' + CAST(@no_updated AS VARCHAR)
END
-- Dejo comentado lo que no llego a terminar
ORAL
El profe miró que había respondido bien y qué mal, y me preguntó por los niveles de aislamiento en transacciones.
Después me dio un ejemplo de un caso de uso en un sistema, me pidió elegir el nivel que creía conveniente y explicar por qué lo elegí.
Espero que les sirva!