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
[APORTE]Final Gestión de Datos 14/07/2015
Autor Mensaje
Chiaopi Sin conexión
Empleado del buffet
The Dog
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 15
Agradecimientos dados: 3
Agradecimientos: 21 en 4 posts
Registro en: Jul 2010
Mensaje: #1
[APORTE]Final Gestión de Datos 14/07/2015 Finales Gestión de Datos
Hola, les paso el final de gestión de datos del día 14/07/2015

Para aprobar se deberá sumar una cantidad de 6 puntos y tener un ejercicio práctico bien hecho, en caso de tener que escribir código T-SQL/PL-SQL deberá especificar qué motor está usando.
Puntajes:
-1.a) y 1.b) Un punto si esta bien y resta un punto si está mal
-Todos los demás valen dos puntos

Verdadero o Falso:
1.a) Un ABB siempre está completo
1.b) El algoritmo Heapsort siempre tiene la misma complejidad computacional para cualquier orden en el que ingresan los datos

Teoría (contestar en no más de 15 renglones):
2.a) Explicar qué objetos de base de datos utilizaría para la seguridad de la misma
2.b) Explicar las reglas de la integridad relacional

Práctica:
3) Dada la siguiente tabla de N registros y con N > 10:

Table Secuencia (
int clave Primary Key,
varchar(10) valor not null
)

3.a) Se quiere ejecutar la siguiente consulta:



select top 1 clave + 1 as queEs
from Secuencia S1
where clave < (select max(S2.clave) from Secuencia S2) and
not exists (select 1 from Secuencia S2 where S1.clave + 1 = S2.clave)
order by 1



Decir si la consulta posee errores, en caso de poseerlos indicar cuáles son, en caso de no tener errores informar que es lo que retorna y bajo qué condiciones no devolvería filas.

3.b) Definir una sentencia DML que elimine los resultados duplicados de la segunda columna de la tabla Secuancia y luego agregar las restriciones necesarias para que no puedan volver a introducirse resultados duplicados en esa columna.


Ese fue el final, espero les ayude.
Saludos.
(Este mensaje fue modificado por última vez en: 24-08-2015 20:28 por Chiaopi.)
15-07-2015 00:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Chiaopi recibio 9 Gracias por este post
Knofm (15-07-2015), rod77 (15-07-2015), aguZion (16-07-2015), NYKO_ (20-07-2015), mariano0 (27-07-2015), H3rnst (27-07-2015), aleixen (27-07-2015), gonnza (27-07-2015), takuma1985 (18-02-2017)
roman1981 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 260
Agradecimientos dados: 0
Agradecimientos: 15 en 8 posts
Registro en: Nov 2010
Mensaje: #2
RE: [APORTE]Final Gestión de Datos 14/07/2015
te hago una consulta: respecto al ejercicio de SQL , no habras copiado mal en la parte done dice "not exists (..............)" lo que esta dentro de este parentesis pusiste S1.valor+1=S2.valor y valor es un varchar pero me dijeron que ahi decia S1.clave+1= S2.clave puede ser ?
21-07-2015 14:17
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] roman1981 recibio 1 Gracias por este post
Chiaopi (24-08-2015)
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.079
Agradecimientos dados: 130
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #3
RE: [APORTE]Final Gestión de Datos 14/07/2015
Respondo el 3a (tal cual esta ahi con S1.valor + 1 = S2.valor)
Da error, ya que no se le puede sumar un Int a un Varchar. Solo existe una excepción, de que el Varchar solo tenga valores numericos.

Respondo el 3a (con S1.clave+1= S2.clave)
Devuelve la primer primary key que falta.
Es decir, si tenemos los siguientes pk cargadas:
1,2,5,6,9 . Devuelve el 3. Sin el TOP 1 devolveria el 3 y 7

Si lo quieren probar:



create table #Secuencia
(
clave int Primary Key,
valor varchar(10) not null
)

insert into #Secuencia
values
(1,'1'),
(2,'2'),
(5,'3'),
(6,'4'),
(9,'5')

select clave + 1 as queEs
from #Secuencia S1
where clave < (select max(S2.clave) from #Secuencia S2) and
not exists (select 1 from #Secuencia S2 where S1.clave + 1 = S2.clave)
order by 1


(Este mensaje fue modificado por última vez en: 21-07-2015 15:15 por rod77.)
21-07-2015 15:14
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rod77 recibio 2 Gracias por este post
aleixen (27-07-2015), LeandroG (12-07-2016)
Chocolito Sin conexión
Empleado de Fotocopiadora
de sitio.
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 41
Agradecimientos dados: 26
Agradecimientos: 8 en 5 posts
Registro en: Apr 2010
Mensaje: #4
RE: [APORTE]Final Gestión de Datos 14/07/2015
La sentencia del not exists era con el campo clave.
23-07-2015 20:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Chocolito recibio 1 Gracias por este post
Chiaopi (24-08-2015)
mariano0 Sin conexión
Empleado de Fotocopiadora
Sin Estado :(
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 41
Agradecimientos dados: 8
Agradecimientos: 34 en 9 posts
Registro en: Dec 2012
Mensaje: #5
RE: [APORTE]Final Gestión de Datos 14/07/2015
(15-07-2015 00:27)Chiaopi escribió:  luego agregar las restriciones necesarias para que no puedan volver a introducirse resultados duplicados en esa columna.

En el 3.b puedo poner un add constraint a la tabla o sí o sí tengo que hacer un trigger? Si tengo que hacer sí o sí el trigger, tengo que ponerle un cursor adentro?
27-07-2015 01:56
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
DarkCrazy Sin conexión
Profesor del Modulo A
Howdy ho!
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 396
Agradecimientos dados: 461
Agradecimientos: 204 en 73 posts
Registro en: Mar 2011
Mensaje: #6
RE: [APORTE]Final Gestión de Datos 14/07/2015
Muchas gracias por el aporte!
Consulta, dieron la opción de ver el final unos minutos y si no querías quedarte, irte con la libreta sana y salva?
27-07-2015 04:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.079
Agradecimientos dados: 130
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #7
RE: [APORTE]Final Gestión de Datos 14/07/2015
(27-07-2015 01:56)mariano0 escribió:  
(15-07-2015 00:27)Chiaopi escribió:  luego agregar las restriciones necesarias para que no puedan volver a introducirse resultados duplicados en esa columna.

En el 3.b puedo poner un add constraint a la tabla o sí o sí tengo que hacer un trigger? Si tengo que hacer sí o sí el trigger, tengo que ponerle un cursor adentro?

En el parcial de Reinosa hizo algo parecido, y dijo que si modificabamos la estructura estaba mal. Asi que seguramente en el 3b se debia crear un trigger.
27-07-2015 09:36
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
H3rnst Sin conexión
Secretario de la SAE
Overlord
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 590
Agradecimientos dados: 178
Agradecimientos: 58 en 26 posts
Registro en: Sep 2010
Mensaje: #8
RE: [APORTE]Final Gestión de Datos 14/07/2015
(27-07-2015 04:15)DarkCrazy escribió:  Muchas gracias por el aporte!
Consulta, dieron la opción de ver el final unos minutos y si no querías quedarte, irte con la libreta sana y salva?

Me sumo a esa consulta!
27-07-2015 10:20
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] H3rnst recibio 1 Gracias por este post
DarkCrazy (27-07-2015)
aleixen Sin conexión
Empleado de Fotocopiadora
It begins
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 49
Agradecimientos dados: 112
Agradecimientos: 2 en 2 posts
Registro en: May 2011
Mensaje: #9
RE: [APORTE]Final Gestión de Datos 14/07/2015
(27-07-2015 10:20)H3rnst escribió:  
(27-07-2015 04:15)DarkCrazy escribió:  Muchas gracias por el aporte!
Consulta, dieron la opción de ver el final unos minutos y si no querías quedarte, irte con la libreta sana y salva?

Me sumo a esa consulta!

Yo fui 2 veces y en ambas me dejaban retirarme, que yo sepa no se cambió esa modalidad.

If you're afraid to fall, you fall because you're afraid, everything is choice . . .
27-07-2015 17:45
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] aleixen recibio 1 Gracias por este post
H3rnst (29-07-2015)
Chiaopi Sin conexión
Empleado del buffet
The Dog
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 15
Agradecimientos dados: 3
Agradecimientos: 21 en 4 posts
Registro en: Jul 2010
Mensaje: #10
RE: [APORTE]Final Gestión de Datos 14/07/2015
(27-07-2015 10:20)H3rnst escribió:  
(27-07-2015 04:15)DarkCrazy escribió:  Muchas gracias por el aporte!
Consulta, dieron la opción de ver el final unos minutos y si no querías quedarte, irte con la libreta sana y salva?

Me sumo a esa consulta!

Si, dieron 5 minutos para ver el final y retirarse.

(21-07-2015 14:17)roman1981 escribió:  te hago una consulta: respecto al ejercicio de SQL , no habras copiado mal en la parte done dice "not exists (..............)" lo que esta dentro de este parentesis pusiste S1.valor+1=S2.valor y valor es un varchar pero me dijeron que ahi decia S1.clave+1= S2.clave puede ser ?

Si, tenés razón, me equivoqué, ya lo corregí.

(23-07-2015 20:34)Chocolito escribió:  La sentencia del not exists era con el campo clave.

Si, tenés razón, ya lo corregí.

(27-07-2015 09:36)rod77 escribió:  
(27-07-2015 01:56)mariano0 escribió:  
(15-07-2015 00:27)Chiaopi escribió:  luego agregar las restriciones necesarias para que no puedan volver a introducirse resultados duplicados en esa columna.

En el 3.b puedo poner un add constraint a la tabla o sí o sí tengo que hacer un trigger? Si tengo que hacer sí o sí el trigger, tengo que ponerle un cursor adentro?

En el parcial de Reinosa hizo algo parecido, y dijo que si modificabamos la estructura estaba mal. Asi que seguramente en el 3b se debia crear un trigger.

No, fíjense que el enunciado dice "una sentencia DML" o sea que se tiene que resolver haciendo un update de la tabla, y sí, hay que agregar una restricción del tipo Unique en el campo valor.


Off-topic:

Si hicieras un trigger no sería necesario ponerle un cursor adentro, sólo tenés que verificar si ya existe un registro con el valor del campo valor en la tabla, la consulta se haría con "exists".
(Este mensaje fue modificado por última vez en: 24-08-2015 20:40 por Chiaopi.)
24-08-2015 20:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 524
Agradecimientos dados: 140
Agradecimientos: 286 en 42 posts
Registro en: Sep 2008
Mensaje: #11
RE: [APORTE]Final Gestión de Datos 14/07/2015
(24-08-2015 20:33)Chiaopi escribió:  
(27-07-2015 10:20)H3rnst escribió:  
(27-07-2015 04:15)DarkCrazy escribió:  Muchas gracias por el aporte!
Consulta, dieron la opción de ver el final unos minutos y si no querías quedarte, irte con la libreta sana y salva?

Me sumo a esa consulta!

Si, dieron 5 minutos para ver el final y retirarse.

(21-07-2015 14:17)roman1981 escribió:  te hago una consulta: respecto al ejercicio de SQL , no habras copiado mal en la parte done dice "not exists (..............)" lo que esta dentro de este parentesis pusiste S1.valor+1=S2.valor y valor es un varchar pero me dijeron que ahi decia S1.clave+1= S2.clave puede ser ?

Si, tenés razón, me equivoqué, ya lo corregí.

(23-07-2015 20:34)Chocolito escribió:  La sentencia del not exists era con el campo clave.

Si, tenés razón, ya lo corregí.

(27-07-2015 09:36)rod77 escribió:  
(27-07-2015 01:56)mariano0 escribió:  
(15-07-2015 00:27)Chiaopi escribió:  luego agregar las restriciones necesarias para que no puedan volver a introducirse resultados duplicados en esa columna.

En el 3.b puedo poner un add constraint a la tabla o sí o sí tengo que hacer un trigger? Si tengo que hacer sí o sí el trigger, tengo que ponerle un cursor adentro?

En el parcial de Reinosa hizo algo parecido, y dijo que si modificabamos la estructura estaba mal. Asi que seguramente en el 3b se debia crear un trigger.

No, fíjense que el enunciado dice "una sentencia DML" o sea que se tiene que resolver haciendo un update de la tabla, y sí, hay que agregar una restricción del tipo Unique en el campo valor.


Off-topic:

Si hicieras un trigger no sería necesario ponerle un cursor adentro, sólo tenés que verificar si ya existe un registro con el valor del campo valor en la tabla, la consulta se haría con "exists".

Cómo agrego una constraint unique a una tabla ya creada?

alter table A add constraint B unique

Me tira error.
21-12-2015 19:11
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
holautn Sin conexión
Secretario de la SAE
IngMaster y Campeon del Cubo d...
******

Otra
Facultad Regional Buenos Aires

Mensajes: 680
Agradecimientos dados: 791
Agradecimientos: 102 en 78 posts
Registro en: Apr 2009
Mensaje: #12
RE: [APORTE]Final Gestión de Datos 14/07/2015
Bu.. Yo hice:

DELETE FROM Secuencia
WHERE s.valor=(SELECT Top 1 valor FROM Secuencia WHERE s.valor=valor AND count(valor)>1)

Que evidentemente está mal.. Confused

Como hago de una forma limpia borrar los duplicados (No en el select, sino en la tabla original)?
26-02-2016 18:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
ramacal89 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8
Agradecimientos dados: 0
Agradecimientos: 2 en 1 posts
Registro en: Sep 2008
Mensaje: #13
RE: [APORTE]Final Gestión de Datos 14/07/2015
Pongo el codigo para eliminar duplicados:


DELETE Secuencia
WHERE Clave not in (SELECT MAX (Clave) FROM Secuencia GROUP BY Valor)


Saludos.
24-05-2016 13:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
rodrigo Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 219
Agradecimientos dados: 55
Agradecimientos: 14 en 14 posts
Registro en: Jul 2008
Mensaje: #14
RE: [APORTE]Final Gestión de Datos 14/07/2015
(24-05-2016 13:23)ramacal89 escribió:  Pongo el codigo para eliminar duplicados:


DELETE Secuencia
WHERE Clave not in (SELECT MAX (Clave) FROM Secuencia GROUP BY Valor)


Saludos.

Ahi no te estas asegurando que no haya duplicados, tendria que ser algo asi:



DELETE FROM Secuencia WHERE clave IN (SELECT clave FROM Secuencia GROUP BY valor HAVING COUNT(*) > 1)



EDIT: entendi que pide de los duplicados eliminar uno de los dos valores, pero releyendo tambien se puede entender como que pide eliminar los dos valores en cuyo caso tu DELETE esta ok

EDIT de nuevo (estoy estudiando para el final de hoy y estoy medio a full jaja): mas alla de la interpretacion del enunciado, tu delete tambien borra no duplicados ese es el problema principal
(Este mensaje fue modificado por última vez en: 24-05-2016 15:34 por rodrigo.)
24-05-2016 15:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] rodrigo recibio 1 Gracias por este post
LeandroG (12-07-2016)
ramacal89 Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 8
Agradecimientos dados: 0
Agradecimientos: 2 en 1 posts
Registro en: Sep 2008
Mensaje: #15
RE: [APORTE]Final Gestión de Datos 14/07/2015
Que haces idolo! yo tmb estoy para el final vamos a ver que onda,
fijate que le clavo el not in, enotnces te aseguras que borra todos los otros salvo la clave maxima.
En caso de que tengas uno solo, el maximo va a ser ese por ende no te lo borra.
Saludos.
24-05-2016 15:42
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.