Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Pedido] Final - Gestión de datos 11/02/2014
Autor Mensaje
Cheppak Sin conexión
Secretario General
-
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 952
Agradecimientos dados: 42
Agradecimientos: 113 en 42 posts
Registro en: May 2009
Mensaje: #1
[Pedido] Final - Gestión de datos 11/02/2014 Finales Gestión de Datos
Hola. Quería pedir el final de la 1er fecha de Febrero o bien si pueden comentar como fue.

Muchas gracias.
Otros adjuntos en este tema
.jpg  Final 1 fechaFebrero 11-02-2014.jpg ( 264,38 KB / 2633) por PaulaValeria
.jpg  2014-02-11 - Final GDD.jpg ( 644,21 KB / 2405) por fedevega
(Este mensaje fue modificado por última vez en: 12-02-2014 11:20 por Cheppak.)
12-02-2014 11:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Cheppak recibio 6 Gracias por este post
ferskvor (13-02-2014), cariddi (18-02-2014), Ale88 (22-02-2014), Fly (28-06-2014), wuitre (29-11-2014), nanjiro (09-12-2014)
PaulaValeria Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 9
Agradecimientos dados: 1
Agradecimientos: 34 en 6 posts
Registro en: Dec 2012
Mensaje: #2
RE: [Pedido] Final - Gestión de datos 11/02/2014
Hola, envio el final que tomaron. No se si las respuestas que escribí son correctas.
Espero que te sirva.
Atte
Paula


Archivo(s) adjuntos Imagen(es)
   
12-02-2014 12:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] PaulaValeria recibio 2 Gracias por este post
Cheppak (12-02-2014), gonnza (19-02-2015)
Cheppak Sin conexión
Secretario General
-
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 952
Agradecimientos dados: 42
Agradecimientos: 113 en 42 posts
Registro en: May 2009
Mensaje: #3
RE: [Pedido] Final - Gestión de datos 11/02/2014
Muchas gracias por el aporte. Aporto mi resolución "on the fly".
1)
a) F. Contraejemplo: select count(*) from tabla
b) F.

2)
a) Performance.
b) Triggers, constraints (podrían ser también vistas y procedimientos pero estos sirven mas que nada para el acceso de datos)

3) Supongo que la respuesta es la A. Si la tabla esta vacía, al querer insertar un dato NULL en una columna que no los admite "rompe". Por lo tanto la transacción 2 no termina de ejecutarse por completo. La transacción 1 se ejecuta sin problemas y el resultado del count seria el mismo para ambas sentencias.

4) Trigger que nos impida un hacer insert/update de un valor que no sea consecutivo a los de la tabla (cuando llego a casa lo desarrollo).
(Este mensaje fue modificado por última vez en: 12-02-2014 13:45 por Cheppak.)
12-02-2014 13:43
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
fedevega Sin conexión
Empleado del buffet
... ! ...
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 9
Agradecimientos dados: 45
Agradecimientos: 126 en 7 posts
Registro en: Feb 2011
Mensaje: #4
RE: [Pedido] Final - Gestión de datos 11/02/2014
Gente, subo el final scaneado por si alguno lo quiere imprimir.
Éxitos para los que vayan a rendir !
   
12-02-2014 21:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ortiba Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 10
Agradecimientos dados: 39
Agradecimientos: 20 en 4 posts
Registro en: Mar 2012
Mensaje: #5
RE: [Pedido] Final - Gestión de datos 11/02/2014
¿La respuesta al ejercicio 3 no sería la D "No hay suficiente información"?
Porque dependiendo del isolation level (que no lo menciona en el ejercicio) el proceso 1 puede o no ver lo que insertó el proceso 2.
13-02-2014 10:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.250
Agradecimientos dados: 780
Agradecimientos: 783 en 328 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #6
RE: [Pedido] Final - Gestión de datos 11/02/2014
podes justificar eso, o podes tomar el default value de isolation level (el cual como hice gdd hace 2 años no recuerdo ahora).

Pasa que el default value depende del motor, y no te dicen que es (uno asumiria que es sql server por la sintaxis y porque se ve en la cursada, pero tecnicamente...)

Recuerdo alguna vez a uno de los profes de gdd diciendo que podian valer cualquiera de las 2 respuestas, si estan bien justificadas

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 13-02-2014 11:00 por gonnza.)
13-02-2014 10:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] gonnza recibio 2 Gracias por este post
ortiba (14-02-2014), DarkCrazy (27-07-2015)
Ale88 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 15
Agradecimientos dados: 24
Agradecimientos: 5 en 2 posts
Registro en: Nov 2009
Mensaje: #7
RE: [Pedido] Final - Gestión de datos 11/02/2014
Hola, alguno tiene la resolución del punto 4??

gracias!!!!
22-02-2014 20:50
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.250
Agradecimientos dados: 780
Agradecimientos: 783 en 328 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #8
RE: [Pedido] Final - Gestión de datos 11/02/2014
yo haría un trigger instead of insert, y que haga un insert de count(*) + 1

algo asi (no me acuerdo bien la sintaxis, puede que algo pifie, es pseudo codigo arre)


create trigger dbo.SoloNaturalesInsert on Tabla
instead of Insert
as
begin
insert into Tabla select count (*) + 1 from tabla


dice que se acceden de distintas maneras

asique se podria borrar un elemento.
Eso significa que deahi en adelante tenes que retrasar todos los elementos en -1
nuevamente, haria un trigger instead of delete


create trigger dbo.SoloNaturalesDelete on Tabla
instead of Delete
as
begin

delete from tabla where col1 in (select col 1 from deleted) -- el in siempre deberia traer un solo elemento
-- actualizamos desde donde borramos en adelante, retrasando 1 siempre
update Tabla set col1 = col1 - 1 where col1 in (select col1 + 1 from deleted)
end


no estoy seguro, me da fiaca =P pero creo que se puede hacer con un "after delete" y solo haciendo el update


y para el update lo mismo.. imagino que habrá que updatear los valores desde ese valor en adelante.. asique es otro trigger

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 22-02-2014 22:23 por gonnza.)
22-02-2014 22:16
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Tizi Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 3
Agradecimientos: 39 en 1 posts
Registro en: Feb 2012
Mensaje: #9
RE: [Pedido] Final - Gestión de datos 11/02/2014
Para el ejercicio 4, un trigger que se comporta de una manera un poco mas copada, si lo que insertas es el siguiente o los siguientes numeros al ultimo que tiene la tabla, te lo inserta, sino no hace nada (se podria mandar un error tambien)... Esta testeado en sql server y anda bien![/code]
Lo unico que tiene es que no contempla el caso de que tengas un conjunto sin huecos pero que no empiece desde cero (ejemplo 456) y quieras agregar desde abajo (por ejemplo 23, para que queden 23456)... Esto ya era demasiado complejo.

Falta el trigger instead of update (que no deberia hacer nada, solo sustituir la operacion update por un mensaje de error)



create trigger trigger_insertnumber on TABLA_FINAL
instead of insert
as
declare @numero int
declare curs cursor for select numero from inserted order by numero asc
open curs
fetch next from curs into @numero
if(((select max(numero) from TABLA_FINAL) is NULL) and (@@FETCH_STATUS = 0))
begin
if (@numero = 0)
begin
insert into TABLA_FINAL(numero) values (@numero)
fetch next from curs into @numero
end
end
while @@FETCH_STATUS = 0
begin
if(@numero = (select max(numero) from TABLA_FINAL) + 1)
begin
insert into TABLA_FINAL(numero) values (@numero)
end
fetch next from curs into @numero
end
close curs
deallocate curs
go


create trigger trigger_deletenumber on TABLA_FINAL
instead of delete
as
declare @numero int
declare curs cursor for select numero from deleted order by numero desc
open curs
fetch next from curs into @numero
while @@FETCH_STATUS = 0
begin
if(@numero = (select max(numero) from TABLA_FINAL))
begin
delete from TABLA_FINAL where numero = @numero
end
fetch next from curs into @numero
end
close curs
deallocate curs
go

(Este mensaje fue modificado por última vez en: 27-09-2014 14:49 por Tizi.)
27-09-2014 14:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.250
Agradecimientos dados: 780
Agradecimientos: 783 en 328 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #10
RE: [Pedido] Final - Gestión de datos 11/02/2014
para que vas a hacer un cursor recorriendolos todos si al estar numerados, sabiendo la cantidad de filas ya sabes cuanto vale el ultimo ?

[Imagen: v34BEFt.gif]
27-09-2014 14:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
eltipito Sin conexión
Profesor del Modulo A
^^
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 387
Agradecimientos dados: 74
Agradecimientos: 33 en 16 posts
Registro en: May 2008
Last.fm
Mensaje: #11
RE: [Pedido] Final - Gestión de datos 11/02/2014
(22-02-2014 22:16)gonnza escribió:  yo haría un trigger instead of insert, y que haga un insert de count(*) + 1

algo asi (no me acuerdo bien la sintaxis, puede que algo pifie, es pseudo codigo arre)


create trigger dbo.SoloNaturalesInsert on Tabla
instead of Insert
as
begin
insert into Tabla select count (*) + 1 from tabla


dice que se acceden de distintas maneras

asique se podria borrar un elemento.
Eso significa que deahi en adelante tenes que retrasar todos los elementos en -1
nuevamente, haria un trigger instead of delete


create trigger dbo.SoloNaturalesDelete on Tabla
instead of Delete
as
begin

delete from tabla where col1 in (select col 1 from deleted) -- el in siempre deberia traer un solo elemento
-- actualizamos desde donde borramos en adelante, retrasando 1 siempre
update Tabla set col1 = col1 - 1 where col1 in (select col1 + 1 from deleted)
end


no estoy seguro, me da fiaca =P pero creo que se puede hacer con un "after delete" y solo haciendo el update


y para el update lo mismo.. imagino que habrá que updatear los valores desde ese valor en adelante.. asique es otro trigger



Me parece buenísimo la resolución con los triggers
pero me agarró una duda en el de delete.
por ejemplo se insertaron ya:

1
2
3
4
5
6

Y alguien hace un delete al 4, ok, el trigger de delete borra el 4 y hace el update al 5 poniendolo en 4, pero me deja el 6 dejando un hueco
1
2
3
4
6

O hay algo que no estoy viendo?

Gracias!
17-02-2015 20:48
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
gonnza Sin conexión
User Verde

*********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 17.250
Agradecimientos dados: 780
Agradecimientos: 783 en 328 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #12
RE: [Pedido] Final - Gestión de datos 11/02/2014
no solo tenes razon, sino que yo no me fío de mi propio comentario que dice "el in siempre deberia traer un solo elemento, actualizamos desde donde borramos en adelante, retrasando 1 siempre"

porque podrían borrarse varios a la vez (where num > x) asique también estaría mal

de cualquier manera, respecto a tu pregunta puntual, se podria hacer un cursor que itere deleted, y haga set col1 = col1- 1 cuando col1 > <numero-iterado-de-deleted>

no me acuerdo la sintaxis de cursor ni a palos


el insert deberia quedar igual

debería hacerse un trigger para update también me parece

[Imagen: v34BEFt.gif]
(Este mensaje fue modificado por última vez en: 19-02-2015 11:25 por gonnza.)
19-02-2015 11:25
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
LeandroG Sin conexión
Militante
Cuarteteando 4to año
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 61
Agradecimientos dados: 45
Agradecimientos: 31 en 8 posts
Registro en: Feb 2011
Mensaje: #13
RE: [Pedido] Final - Gestión de datos 11/02/2014
(13-02-2014 10:51)ortiba escribió:  ¿La respuesta al ejercicio 3 no sería la D "No hay suficiente información"?
Porque dependiendo del isolation level (que no lo menciona en el ejercicio) el proceso 1 puede o no ver lo que insertó el proceso 2.

No puede ser la D. Por mas que especifique el isolation level, no cambiaria nada. Porque el proceso 2 tira error (si se ejecuta el proceso 1 primero o el 2 primero).
Es la A, pq es cierto que a y b siempre son iguales, siempre valen 0.

Pero son procesos que por mas que se ejecuten en paralelo, son independientes.
Porque el proceso 2 falla, pq la tabla no tiene nada, y no puede insertar null en la tabla.
El proceso uno, solo define unas variables, pero no inserta nada en la tabla que pueda llegar a modificar la consulta del proceso 2.

corrijanme si me equivoco

Saludos
19-02-2015 11:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] LeandroG recibio 1 Gracias por este post
DarkCrazy (27-07-2015)
coolerking Sin conexión
Secretario de la SAE
estado' unido'
******

Análisis de Sistemas
Facultad Regional Buenos Aires

Mensajes: 481
Agradecimientos dados: 117
Agradecimientos: 89 en 50 posts
Registro en: Jan 2012
Mensaje: #14
RE: [Pedido] Final - Gestión de datos 11/02/2014
Al punto cuatro tambien habria que hacer algo con el update, porque con un update el usuario romperia todo!

[Imagen: donacion1.jpg]
(Este mensaje fue modificado por última vez en: 24-02-2015 20:14 por coolerking.)
24-02-2015 19:59
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Nacho14 Sin conexión
Profesor del Modulo A
ope
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 296
Agradecimientos dados: 36
Agradecimientos: 41 en 31 posts
Registro en: Aug 2009
Mensaje: #15
RE: [Pedido] Final - Gestión de datos 11/02/2014
Alguno me podría justificar la 2da del VoF

Gracias
25-02-2015 14:49
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.