Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 1 votos - 5 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Gestion de Datos] 5 FINALES (2018-2019) ¡RESUELTOS!
Autor Mensaje
manurocck Sin conexión
Empleado de Fotocopiadora
Preparado para la batalla
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 28
Agradecimientos: 52 en 10 posts
Registro en: Sep 2015
Facebook
Mensaje: #1
Star [Gestion de Datos] 5 FINALES (2018-2019) ¡RESUELTOS! Finales Gestión de Datos
¡ Qué tal UTNianos !

Estoy empezando a armar un post con finales resueltos.
Acabo de tener una mala experiencia rindiendo el final de GDD así que voy a empezar con los del 2019 para abajo.

(Comentá si tenés alguna recomendación/corrección)


Acá los FINALES RESUELTOS :



- Si crees que algún final tiene un error dejá un comentario y lo modificamos
- Si tienen algún final que no esté incluido en algún pueden publicarlo o mandarlo por m.d así lo incluyo en el post

Espero que les sirva!

Saludos!
Otros adjuntos en este tema
.jpg  3a.jpg ( 467,52 KB / 198) por pablit
.jpg  3b.jpg ( 1,08 MB / 193) por pablit
.jpg  IMG_20191204_234650_50p.jpg ( 1,34 MB / 20) por pablit
.jpg  SQL1.jpg ( 145,42 KB / 301) por Diesel
(Este mensaje fue modificado por última vez en: 03-12-2019 16:52 por manurocck.)
25-09-2019 23:52
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] manurocck recibio 4 Gracias por este post
Mauro_bilo (07-10-2019), Diesel (16-10-2019), pablit (18-11-2019), DrWily (01-12-2019)
Diesel Sin conexión
Campeon del cubo Rubik
5to año loading
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 145
Agradecimientos dados: 116
Agradecimientos: 292 en 32 posts
Registro en: Sep 2012
Mensaje: #2
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019 ¡RESUELTOS!
Buenas !
Con respecto al final de 25 de septiembre de 2019
Me animé a hacer el 3a de otra forma SIN QUE SEA CONSULTA aclaro... mas o menos parecida a la resolución.
Algun crack en SQL me lo verifica?? gracias!




Declare @MenorMonto int
Set @MenorMonto =(select top 1 sum (b.totalApostado)
from caballo b, carreras s where s.idCarrera=b.idCarrera group by b.numeroCaballo order by 1 asc)
-- aca saque la menor cantidad de guita que recibio un caballo en todas las carreras en todas las apuestas.


select a.nombreCaballo
from caballos a , carreras c
where
c.idCarrera=a.idCarrera and
a.puesto=1 and -- aca me doy cuenta que estoy filtrando puesto 1 y en el sum del total de dinero tmb se va a aplicar asi que ¿esta mal?
c.fecha=GETDATE()
group by a.nombreCaballo
Having SUM(a.totalApostado)=@MenorMonto

(Este mensaje fue modificado por última vez en: 16-10-2019 16:02 por Diesel.)
16-10-2019 15:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
manurocck Sin conexión
Empleado de Fotocopiadora
Preparado para la batalla
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 28
Agradecimientos: 52 en 10 posts
Registro en: Sep 2015
Facebook
Mensaje: #3
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019 ¡RESUELTOS!
(16-10-2019 15:47)Diesel escribió:  Buenas !
Con respecto al final de 25 de septiembre de 2019
Me animé a hacer el 3a de otra forma SIN QUE SEA CONSULTA aclaro... mas o menos parecida a la resolución.
Algun crack en SQL me lo verifica?? gracias!

Cómo te va Diesel, calculo que funciona también. Comparando las diferencias entre las consultas me di cuenta de que lo que hiciste fue aislar la subquery del HAVING para asignarle el valor a una variable.

Lo que sí, muchas veces te piden que lo hagas todo en solo una consulta, sin funciones auxiliares ni otras cosas. No se si te dirían algo por hacer eso o no.. Yo entre las dos me arriesgaría por la primera por las dudas (aunque den el mismo resultado)

Saludos!
16-10-2019 19:33
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] manurocck recibio 1 Gracias por este post
Diesel (17-10-2019)
Diesel Sin conexión
Campeon del cubo Rubik
5to año loading
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 145
Agradecimientos dados: 116
Agradecimientos: 292 en 32 posts
Registro en: Sep 2012
Mensaje: #4
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019 ¡RESUELTOS!
(16-10-2019 19:33)manurocck escribió:  
(16-10-2019 15:47)Diesel escribió:  Buenas !
Con respecto al final de 25 de septiembre de 2019
Me animé a hacer el 3a de otra forma SIN QUE SEA CONSULTA aclaro... mas o menos parecida a la resolución.
Algun crack en SQL me lo verifica?? gracias!

Cómo te va Diesel, calculo que funciona también. Comparando las diferencias entre las consultas me di cuenta de que lo que hiciste fue aislar la subquery del HAVING para asignarle el valor a una variable.

Lo que sí, muchas veces te piden que lo hagas todo en solo una consulta, sin funciones auxiliares ni otras cosas. No se si te dirían algo por hacer eso o no.. Yo entre las dos me arriesgaría por la primera por las dudas (aunque den el mismo resultado)

Saludos!


Asi es manu ! Tenes razon aislé el having de la query. También entregaría la query en lugar del procedure.

Ya que te metiste a pensarlo nuevamente conmigo te hago una consulta.
Ves la nota que puse en le filtro "where"?? Filtramos por puesto 1. Y luego hacemos el SUM... pero al hacer el SUM estamos haciendo el SUM de las carreras que obtuvo el primer puesto ese caballo... o sea la cantidad de guita que recibió en apuestas solamente para la fecha y para el primer puesto... eso no esta medio mal ?? porque en el ejercicio te pedía la cantidad de guita q haya sacado el caballo en apuestas sin importar q haya sido en primeros puestos digamos y que esa guita sea la menor que se apostó ever... o sea como que habria que anidar todo el resultado y LUEGO hacer el filtro del primer puesto y la fecha... o no?
Si no se entiende reformulo xD
Gracias de nuevo!
17-10-2019 08:35
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Diesel recibio 1 Gracias por este post
manurocck (17-10-2019)
manurocck Sin conexión
Empleado de Fotocopiadora
Preparado para la batalla
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 31
Agradecimientos dados: 28
Agradecimientos: 52 en 10 posts
Registro en: Sep 2015
Facebook
Mensaje: #5
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019 ¡RESUELTOS!
(17-10-2019 08:35)Diesel escribió:  Ya que te metiste a pensarlo nuevamente conmigo te hago una consulta.
Ves la nota que puse en le filtro "where"?? Filtramos por puesto 1. Y luego hacemos el SUM... pero al hacer el SUM estamos haciendo el SUM de las carreras que obtuvo el primer puesto ese caballo... o sea la cantidad de guita que recibió en apuestas solamente para la fecha y para el primer puesto... eso no esta medio mal ?? porque en el ejercicio te pedía la cantidad de guita q haya sacado el caballo en apuestas sin importar q haya sido en primeros puestos digamos y que esa guita sea la menor que se apostó ever... o sea como que habria que anidar todo el resultado y LUEGO hacer el filtro del primer puesto y la fecha... o no?
Si no se entiende reformulo xD
Gracias de nuevo!

Creo que tenés razón .. Tal vez se podría solucionar reemplazando el SUM por otra subquery que calcule el total de apuestas del caballo sin importar el puesto en el que salió



SELECT cb.nombreCaballo
FROM Caballos cb JOIN Carreras cr ON (cb.idCarrera = cr.idCarrera)
WHERE cb.puesto = 1 AND DAY (cr.fecha) = DAY ( GETDATE() )
GROUP BY cb.nombreCaballo
HAVING (SELECT SUM(cb3.totalApostado
FROM Caballos cb3
WHERE cb3.nombreCaballo = cb.nombreCaballo
GROUP BY cb3.nombreCaballo ) =
(SELECT TOP 1 SUM(cb2.totalApostado)
FROM Caballos cb2
GROUP BY cb2.nombreCaballo
ORDER BY SUM(cb2.totalApostado) asc)
ORDER BY SUM (cb.totalApostado) asc


Qué te parece?
17-10-2019 14:35
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] manurocck recibio 1 Gracias por este post
Diesel (17-10-2019)
Diesel Sin conexión
Campeon del cubo Rubik
5to año loading
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 145
Agradecimientos dados: 116
Agradecimientos: 292 en 32 posts
Registro en: Sep 2012
Mensaje: #6
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019, 12/02/2019 ¡RESUELTOS!
(17-10-2019 14:35)manurocck escribió:  
(17-10-2019 08:35)Diesel escribió:  Ya que te metiste a pensarlo nuevamente conmigo te hago una consulta.
Ves la nota que puse en le filtro "where"?? Filtramos por puesto 1. Y luego hacemos el SUM... pero al hacer el SUM estamos haciendo el SUM de las carreras que obtuvo el primer puesto ese caballo... o sea la cantidad de guita que recibió en apuestas solamente para la fecha y para el primer puesto... eso no esta medio mal ?? porque en el ejercicio te pedía la cantidad de guita q haya sacado el caballo en apuestas sin importar q haya sido en primeros puestos digamos y que esa guita sea la menor que se apostó ever... o sea como que habria que anidar todo el resultado y LUEGO hacer el filtro del primer puesto y la fecha... o no?
Si no se entiende reformulo xD
Gracias de nuevo!

Creo que tenés razón .. Tal vez se podría solucionar reemplazando el SUM por otra subquery que calcule el total de apuestas del caballo sin importar el puesto en el que salió



SELECT cb.nombreCaballo
FROM Caballos cb JOIN Carreras cr ON (cb.idCarrera = cr.idCarrera)
WHERE cb.puesto = 1 AND DAY (cr.fecha) = DAY ( GETDATE() )
GROUP BY cb.nombreCaballo
HAVING (SELECT SUM(cb3.totalApostado
FROM Caballos cb3
WHERE cb3.nombreCaballo = cb.nombreCaballo
GROUP BY cb3.nombreCaballo ) =
(SELECT TOP 1 SUM(cb2.totalApostado)
FROM Caballos cb2
GROUP BY cb2.nombreCaballo
ORDER BY SUM(cb2.totalApostado) asc)
ORDER BY SUM (cb.totalApostado) asc


Qué te parece?


Testeado y funciona! muy bien.



CREATE TABLE CABALLOS (
idCarrera int,
numeroCaballo int not null,
NombreCaballo varchar(20) not null,
Puesto int,
totalApostado int not null,
CONSTRAINT FK_idCarrera FOREIGN KEY (idCarrera) REFERENCES CARRERAS (idCarrera)
);

CREATE TABLE CARRERAS (
idCarrera int ,
fecha date not null,
numeroCarrera int not null,
CONSTRAINT PK_User_SL PRIMARY KEY(idCarrera)
);

select * from CARRERAS

INSERT INTO CARRERAS (idCarrera,fecha,numeroCarrera) VALUES (2,'15/10/2019',243)
INSERT INTO CARRERAS (idCarrera,fecha,numeroCarrera) VALUES (3,'14/10/2019',246)

INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,99,'ROCKY',1,50)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (3,99,'ROCKY',10,50)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,88,'RYAN',2,300)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (3,88,'RYAN',5,500)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,77,'PEPE',3,800)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,66,'COCO',4,700)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,55,'BLUE',5,7000)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,40,'MIRKO',6,9000)

INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (2,44,'POBRETON',99,20)
INSERT INTO CABALLOS (idCarrera,numeroCaballo,NombreCaballo,Puesto,totalApostado) VALUES (3,44,'POBRETON',99,400)




En el Having no tiene sentido poner MENOR IGUAL dado que siempre va a tener que ser igual.
Si yo agrego un caballo que se llama "pobreton" al cual le apostamos menos que a "ROCKY" (el cual salio primero) y le apostaron "POCO" entonces la query no va a traer nada... porque POBRETON tendria le menor apuesta y lo que le apostaorn a rocky es mayor.
Si le agregamos 400 a pobreton entonces ahi sobrepasa a rocky, teniendo asi rocky lo menor apostado y devolviendo ESE valor en el having.. es como que el having dice "este caballo que salio primero posee lo menor que se le aposto en la vida del sistema?" y si la respuesta es "si" entonces lo devuelve en la consulta.
Le borré el filtor del dia asi funcionaba =D
abrazo.


Archivo(s) adjuntos Imagen(es)
   
17-10-2019 15:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Diesel recibio 1 Gracias por este post
manurocck (17-10-2019)
pablit Sin conexión
Secretario General
Divide et impera
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 982
Agradecimientos dados: 247
Agradecimientos: 981 en 106 posts
Registro en: Apr 2010
Mensaje: #7
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019, 12/02/2019 ¡RESUELTOS!
Hola gente, yo lo rendí en Septiembre y no llegué a los 6 puntos (4,5 sumé).


Respecto del 3a, lo había hecho así:
   

Corrigiendo errores, entiendo que el código debería haber sido algo así:

SELECT cab.NombreCaballo
FROM carreras car JOIN caballos cab ON (car.IdCarrera = cab.IdCarrera)
WHERE car.Fecha = GETDATE()
AND cab.Puesto = 1
AND cab.TotalApostado = (SELECT MIN(cab2.TotalApostado)
FROM caballos cab2
GROUP BY cab2.IdCarrera, cab2.NumeroCaballo)



Creo que estaría bien... ¿cómo lo ven ustedes?

Ya que estoy, dejo el 3b donde me calificaron con 0,5 puntos (de 2)...

   

Hay 2 cosas que no entiendo sobre las correcciones...

1. El INSERT está tachado, dando a antender que el trigger actuará solament ante un UPDATE.
¿Por qué el INSERT estaría mal?

2. Dentro del WHILE, en la parte del UPDATE, en un IF me indicaron que "era validación".
¿A qué se refieren con eso?

ANÁLISIS MATEMÁTICO I: Finales.
ÁLGEBRA Y GEOMETRÍA ANALÍTICA: Finales.
FÍSICA I: Ejercicios resueltos.
ECONOMÍA: Finales + Ejercicios de Final resueltos.
LEGISLACIÓN: Resumen.

ARQUITECTURA DE COMPUTADORES: Resumen con Apuntes.
ANÁLISIS DE SISTEMAS: Resumen.
(Este mensaje fue modificado por última vez en: 18-11-2019 15:19 por pablit.)
18-11-2019 15:03
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
xavi82 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 274
Agradecimientos dados: 390
Agradecimientos: 121 en 63 posts
Registro en: Feb 2012
Mensaje: #8
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019, 12/02/2019 ¡RESUELTOS!
Hola pablit,

para mi el tema es que el enunciado dice que la ejecucion del objeto a desarrollar depende del valor NO NULO del campo Puesto, por lo que si es no nulo el registro ya existe y tiene un valor asignado, entonces que Puesto sea no nulo es una precondicion (por eso lo de validacion entiendo) y te tachan el insert porque seria en el caso de un UPDATE que deberias ejecutarlo.

Saludos!
18-11-2019 16:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] xavi82 recibio 1 Gracias por este post
pablit (21-11-2019)
pablit Sin conexión
Secretario General
Divide et impera
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 982
Agradecimientos dados: 247
Agradecimientos: 981 en 106 posts
Registro en: Apr 2010
Mensaje: #9
RE: [Gestion de Datos] Final 25/09/2019, 26/02/2019, 12/02/2019 ¡RESUELTOS!
(18-11-2019 16:17)xavi82 escribió:  Hola pablit,

para mi el tema es que el enunciado dice que la ejecucion del objeto a desarrollar depende del valor NO NULO del campo Puesto, por lo que si es no nulo el registro ya existe y tiene un valor asignado, entonces que Puesto sea no nulo es una precondicion (por eso lo de validacion entiendo) y te tachan el insert porque seria en el caso de un UPDATE que deberias ejecutarlo.

Saludos!

(Siempre hablando del 3b...)

Entiendo lo que decís y creo que sí, está bien, tiene sentido que así sea.


Ahora bien, no me cierra por qué está mal pensar en un INSERT y bien en un UPDATE =(
El enunciado indica que "en la actualidad dicha regla se cumple y que la BD es accedida por n aplicaciones de diferentes tipos y tecnologías".
¿Cómo te das cuenta si es un INSERT o un UPDATE en ese caso? Hay casos donde me doy cuenta enseguida, porque me parecen claros, pero acá no...

ANÁLISIS MATEMÁTICO I: Finales.
ÁLGEBRA Y GEOMETRÍA ANALÍTICA: Finales.
FÍSICA I: Ejercicios resueltos.
ECONOMÍA: Finales + Ejercicios de Final resueltos.
LEGISLACIÓN: Resumen.

ARQUITECTURA DE COMPUTADORES: Resumen con Apuntes.
ANÁLISIS DE SISTEMAS: Resumen.
(Este mensaje fue modificado por última vez en: 21-11-2019 20:37 por pablit.)
21-11-2019 20:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pablit Sin conexión
Secretario General
Divide et impera
*******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 982
Agradecimientos dados: 247
Agradecimientos: 981 en 106 posts
Registro en: Apr 2010
Mensaje: #10
RE: [Gestion de Datos] 5 FINALES (2018-2019) ¡RESUELTOS!
Subo el final que tomaron hoy, 4/12:

   


Y ya que estoy acerco las respuestas, que creo que están bien:

1.
- a. FALSO. Si bien es cierto que no puede almacenar valores repetidos, UNIQUE sí puede almacenar un NULL (uno solo, más no).
- b. VERDADERO. Hashing es más performante que el árbol-B para búsquedas directas o accesos directos.

2.
Tanto para el a. como para el b. recomiendo [autobombo]mi resumen teórico[/autobombo], donde está desarrollado lo que piden acá:
- a. Objetos de BD que garanticen la integridad: triggers, vistas, índices... con desarrollar 2 de esos ya estaría (está todo en el resumen).
- b. Sobre los niveles de aislamiento, bueno, marcar las diferencias entre el Uncommitted Read, el Committed Read, el Repeatable Read y el Serializable Read... contando el asunto de las lecturas sucias, las lecturas no repetibles y las lecturas fantasmas (está todo en el resumen).

3.
- a. OPCIÓN 3: Devuelve un conjunto vacío de datos porque como no hay datos en al tabla DEPOSITO es imposible que esa tabla tenga algún dato en común con la tabla PRODUCTOS.
- b. La solución brindada es incorrecta. Para hacer cambios en la BD, no puedo usar funciones (las funciones no pueden hacer cambios en la base de datos!). Debería haber usado un stored procedure. Los cambios a hacer serían los siguientes: (1) cambiar el function por el procedure; (2) eliminar el returns bit; y, si no me olvido de nada más (3) eliminar el RETURN 1 que aparece abajo.

Gracias a manurocck por el dato del 3.b.

ANÁLISIS MATEMÁTICO I: Finales.
ÁLGEBRA Y GEOMETRÍA ANALÍTICA: Finales.
FÍSICA I: Ejercicios resueltos.
ECONOMÍA: Finales + Ejercicios de Final resueltos.
LEGISLACIÓN: Resumen.

ARQUITECTURA DE COMPUTADORES: Resumen con Apuntes.
ANÁLISIS DE SISTEMAS: Resumen.
(Este mensaje fue modificado por última vez en: Hoy 00:24 por pablit.)
Hoy 00:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] pablit recibio 1 Gracias por este post
Diesel (Hoy)
Buscar en el tema
Enviar respuesta 




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



    This forum uses Lukasz Tkacz MyBB addons.