23-05-2012, 17:27
Buenas gente subo el final de GDD del 19/07/2011 con mi resolucion para aportar/corregir.
Slds
Mi resolución (me saqué 8):
1.a) nunca lo probe pero creo que es VERDADERO
1.b) VERDADERO
---
2.a)
- Una tabla en la que se hagan muchos insert, update, delete y pocos select.
- Si el índice está en una columna de la tabla que nunca se usa en WHERE, ORDER BY, etc.
2.b)
Transacciones: Es un conjunto de sentencias que se ejecutan atomicamente. Permiten mantener de la DB en estado correcto partiendo de un estado correcto. Asegurando que el la operacion se ejecuta completa o falle dejando todo como estaba de un principio.
Las directivas que provee el DBMS son:
Begin Transaction
commit
rollback
Se da comienzo a la transaccion luego de la sentencia Begin transaction, a partir de la misma comienza la ejecucion atomica hasta que se cierre con un rollback (en caso de que alla ocurrido un error para volver al punto de partida antes de q se comience a ejecutar la transaccion) o con un commit (en el caso exitoso para confirmar los cambios efectuados dentro de la transaccion)
---
3)
select p1.nombre,isnull(p2.nombre,'sin hermano')
from persona p1 left outer join persona p2 on (p1.madre=p2.madre )
where p1.id!=p2.id and p1.id<p2.id
no me aparecen los que no tienen hermanos, alguna solucion??
4)
create trigger mf on persona
after insert,update
begin transaction
if exists(select id from persona where sexo='F' and id in (select distinct padre from persona))
begin
rollback transaction
raiserror ("Se encontro una persona que no condice con el genero asignado")
end
if exists(select id from persona where sexo='M' and id in (select distinct madre from persona))
begin
rollback transaction
raiserror ("Se encontro una persona que no condice con el genero asignado")
end
commit transaction
Slds
Mi resolución (me saqué 8):
1.a) nunca lo probe pero creo que es VERDADERO
1.b) VERDADERO
---
2.a)
- Una tabla en la que se hagan muchos insert, update, delete y pocos select.
- Si el índice está en una columna de la tabla que nunca se usa en WHERE, ORDER BY, etc.
2.b)
Transacciones: Es un conjunto de sentencias que se ejecutan atomicamente. Permiten mantener de la DB en estado correcto partiendo de un estado correcto. Asegurando que el la operacion se ejecuta completa o falle dejando todo como estaba de un principio.
Las directivas que provee el DBMS son:
Begin Transaction
commit
rollback
Se da comienzo a la transaccion luego de la sentencia Begin transaction, a partir de la misma comienza la ejecucion atomica hasta que se cierre con un rollback (en caso de que alla ocurrido un error para volver al punto de partida antes de q se comience a ejecutar la transaccion) o con un commit (en el caso exitoso para confirmar los cambios efectuados dentro de la transaccion)
---
3)
select p1.nombre,isnull(p2.nombre,'sin hermano')
from persona p1 left outer join persona p2 on (p1.madre=p2.madre )
where p1.id!=p2.id and p1.id<p2.id
no me aparecen los que no tienen hermanos, alguna solucion??
4)
create trigger mf on persona
after insert,update
begin transaction
if exists(select id from persona where sexo='F' and id in (select distinct padre from persona))
begin
rollback transaction
raiserror ("Se encontro una persona que no condice con el genero asignado")
end
if exists(select id from persona where sexo='M' and id in (select distinct madre from persona))
begin
rollback transaction
raiserror ("Se encontro una persona que no condice con el genero asignado")
end
commit transaction