Seguimos buscando a Arshak. Ayudanos compartiendo!
Encuesta no oficial de docentes
Resultados de la encuesta no oficial de docentes
Probaste el SIGA Helper?

Donar $100 Donar $200 Donar $500 Donar mensualmente


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Aporte] Final Gestion de Datos 25/07/2017
Autor Mensaje
Camper Sin conexión
Campeon del cubo Rubik
Ing, pero a que costo
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 198
Agradecimientos dados: 122
Agradecimientos: 178 en 55 posts
Registro en: May 2014
Mensaje: #1
[Aporte] Final Gestion de Datos 25/07/2017 Finales Gestión de Datos
Buenas, comparto lo que recuerdo del final, si alguien se acuerda del 1A o algo mas lo edito.
Me entregaron casi para el final, y me parece que nadie o casi nadie desaprobo.

1) V o F
A) Algo sobre el nivel de un arbol por transformada de knuth.
B) El nivel de aislamiento Repeteable Read acepta lecturas fantasmas

2) Preguntas a desarrollar
A) Indique y desarrolle dos objetos de la base de datos que aseguren integridad de datos
B) Comparar OLTP Y OLAP

3) Practica
A) Te daban 3 tablas
Pais
idPais
paisDetalle

Provincia
idPcia
idPais
habitantes

Ciudad
idCiudad
idProvincia

Pedia hacer un trigger tal que si se quiere insertar una provincia y esta no tenia ciudades, forzar que la cantidad de habitantes sea 0.

Hice algo asi pero tengo varias dudas:
CREATE TRIGGER in_Provincia ON Provincias INSTEAD OF INSERT
AS BEGIN
declare @idPcia int, @idPais int, @habitantes int

SELECT @idPcia = idPcia, @idPais = idPais, @habitantes = habitantes FROM INSERTED //No estoy seguro de esta sintaxis, ni tampoco si podian venir muchos filas
if(@habitantes > 0 AND select count(1) from ciudad where not exist (select 1 from ciudad where idPcia = @idPcia ) //Tampoco seguro de la sintaxis
begin
SET @habitantes = 0
end

INSERT INTO Provincia VALUES (@IdPcia, @IdPais, @habitantes)
END

B)
Te daban una query y el multiple choice de que sucedia

(Este mensaje fue modificado por última vez en: 27-07-2017 00:09 por Camper.)
26-07-2017 11:12
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Camper recibio 3 Gracias por este post
CarooLina (26-07-2017), diegomsaiz (26-07-2017), Smitten1994 (31-07-2017)
damianvc31 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 50
Agradecimientos dados: 15
Agradecimientos: 23 en 16 posts
Registro en: Mar 2016
Mensaje: #2
RE: [Aporte] Final Gestion de Datos 25/07/2017
Creo que todo el mundo se sacó 6 jaja

A mi me parece que los prácticos eran un poco rebuscados. El 2do era A o B la respuesta? Tenía la duda si los null van arriba o abajo al ordenar ascendente, y terminé poniendo ambas opciones y explicando que dependía de la configuración de la BD (?)
26-07-2017 14:17
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Camper Sin conexión
Campeon del cubo Rubik
Ing, pero a que costo
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 198
Agradecimientos dados: 122
Agradecimientos: 178 en 55 posts
Registro en: May 2014
Mensaje: #3
RE: [Aporte] Final Gestion de Datos 25/07/2017
Yo le puse la A porque cuando ordenas de forma ascendente quedan los null arriba, PERO cuando sali me di cuenta que no habia forma que haya nulos en la consulta porque tenia: isnull(habitantes,1).
A la salida le pregunte que onda al ayudante a ver si era un error de la consigna o si era una trampa (bastante innecesaria, lo importante del ejercicio estaba en otra parte). Me dijo que tenian que verlo porque habia "muchos grises", asi que se ve que no estaban muy de acuerdo con la redacción del final.

26-07-2017 14:40
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
damianvc31 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 50
Agradecimientos dados: 15
Agradecimientos: 23 en 16 posts
Registro en: Mar 2016
Mensaje: #4
RE: [Aporte] Final Gestion de Datos 25/07/2017
(26-07-2017 14:40)Camper escribió:  Yo le puse la A porque cuando ordenas de forma ascendente quedan los null arriba, PERO cuando sali me di cuenta que no habia forma que haya nulos en la consulta porque tenia: isnull(habitantes,1).
A la salida le pregunte que onda al ayudante a ver si era un error de la consigna o si era una trampa (bastante innecesaria, lo importante del ejercicio estaba en otra parte). Me dijo que tenian que verlo porque habia "muchos grises", asi que se ve que no estaban muy de acuerdo con la redacción del final.

El tema es que en el order by estaba ordenado por habitantes no por el isnull. Osea yo entendi como que se referia a donde quedaban las filas con habitantes null, aunque al mostrarse aparezcan como 1.
Asi que supongo que si quedan arriba, era la A.
26-07-2017 15:10
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Martin. Sin conexión
Presidente del CEIT
Enjoy it !
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.380
Agradecimientos dados: 88
Agradecimientos: 296 en 137 posts
Registro en: Oct 2011
Mensaje: #5
RE: [Aporte] Final Gestion de Datos 25/07/2017
Si al isnull(habitantes,1) lo renombran como "habitantes", el order by es sobre la nueva columna.

Habria que ver el final para estar seguros.

[Imagen: jQJfyBGh9SOmZ.png]
26-07-2017 20:42
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
GringoLixo Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7
Agradecimientos dados: 15
Agradecimientos: 4 en 3 posts
Registro en: Feb 2015
Mensaje: #6
RE: [Aporte] Final Gestion de Datos 25/07/2017
Les comento que pude averiguar la respuesta del 3-B por boca del profesor y era la C. La trampita estaba en que como el where es de Max(habitantes) de alguna de las provincias del pais, si todas las provincias tenían habitantes en null (podía pasar) entonces el subselect del where da siempre falso. Por lo tanto, NO va a haber registros de provincias con null
Además, al no haber provincias con null, te aseguras que todas las provincias que se muestran en la consulta tienen al menos una ciudad (por la regla de negocio del punto 3-A)
Con eso dicho, ya descartas la A y la B (no solo por el tema del orden de los nulls sino también porque decían que los registros que traías no hablaban de que tenían que tener mínimo una ciudad)
(Este mensaje fue modificado por última vez en: 26-07-2017 23:13 por GringoLixo.)
26-07-2017 22:46
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] GringoLixo recibio 2 Gracias por este post
CarooLina (26-07-2017), Camper (27-07-2017)
damianvc31 Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 50
Agradecimientos dados: 15
Agradecimientos: 23 en 16 posts
Registro en: Mar 2016
Mensaje: #7
RE: [Aporte] Final Gestion de Datos 25/07/2017
(26-07-2017 22:46)GringoLixo escribió:  Les comento que pude averiguar la respuesta del 3-B por boca del profesor y era la C. La trampita estaba en que como el where es de Max(habitantes) de alguna de las provincias del pais, si todas las provincias tenían habitantes en null (podía pasar) entonces el subselect del where da siempre falso. Por lo tanto, NO va a haber registros de provincias con null
Además, al no haber provincias con null, te aseguras que todas las provincias que se muestran en la consulta tienen al menos una ciudad (por la regla de negocio del punto 3-A)
Con eso dicho, ya descartas la A y la B (no solo por el tema del orden de los nulls sino también porque decían que los registros que traías no hablaban de que tenían que tener mínimo una ciudad)

Mira vos, lo pensé, pero creía que el valor máximo de habitantes devolvía null y terminaban quedando las provincias con null simplemente, mostrando el 1 por el isnull() del select principal. Muy tramposo.

Gracias por la info
27-07-2017 00:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Camper Sin conexión
Campeon del cubo Rubik
Ing, pero a que costo
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 198
Agradecimientos dados: 122
Agradecimientos: 178 en 55 posts
Registro en: May 2014
Mensaje: #8
RE: [Aporte] Final Gestion de Datos 25/07/2017
Ah la re manquie... Y yo poniendo "era simple" jajaja

"WHERE prov.habitantes = (SELECT MAX(p.habitantes) FROM Provincia p WHERE p.idPais=prov.idPais )"

Claro, prov.habitantes = null no existe, bastante tramposo

(Este mensaje fue modificado por última vez en: 27-07-2017 11:23 por Camper.)
27-07-2017 00:24
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Smitten1994 Sin conexión
Campeon del cubo Rubik
La verdad es que no hay una ve...
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 116
Agradecimientos dados: 340
Agradecimientos: 273 en 56 posts
Registro en: Aug 2013
Mensaje: #9
RE: [Aporte] Final Gestion de Datos 25/07/2017
Utnianos! Les subo el final de GDD del 25-07-17.

[Imagen: uHqNJNL.png]

No se olviden de agradecer! thumbup3
(Este mensaje fue modificado por última vez en: 14-12-2018 00:34 por Smitten1994.)
14-12-2018 00:33
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] Smitten1994 recibio 5 Gracias por este post
dbevilacqua (07-01-2019), Soy (05-02-2019), mbaridon (09-07-2019), Diesel (11-12-2019), mpicollo (12-02-2020)
Behringer Sin conexión
Empleado del buffet
#
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 11
Agradecimientos dados: 9
Agradecimientos: 23 en 9 posts
Registro en: Feb 2017
Mensaje: #10
RE: [Aporte] Final Gestion de Datos 25/07/2017
Lo resolví de esta forma:


CREATE TRIGGER trigger_final ON dbo.Provincia AFTER INSERT
AS
BEGIN
DECLARE @id_pcia int
DECLARE CURSOR cursor_final FOR
SELECT id_pcia FROM inserted

OPEN cursor_final
FETCH cursor_final INTO @id_pcia

WHILE @@FETCH_STATUS == 0
BEGIN
IF NOT EXISTS (SELECT id_ciudad FROM dbo.Provincia p
LEFT JOIN dbo.Ciudad c ON c.id_pcia = p.id_pcia
WHERE p.id_pcia = @id_pcia)
BEGIN
UPDATE dbo.Provincia
SET habitantes = 0
WHERE id_pcia = @id_pcia
END
FETCH cursor_final NEXT INTO @id_pcia
END

CLOSE cursor_final
DEALLOCATE cursor_final

(Este mensaje fue modificado por última vez en: 09-02-2020 10:26 por Behringer.)
09-02-2020 10:24
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)