UTNianos

Versión completa: [APORTE]Final Gestión de Datos 24/05/2016
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas noches,

Les dejo lo que recuerdo del final de hoy:
V/F
1.a. Un arbol Binario de busqueda es completo
1.b. Un trigger de update tiene la misma cantidad de filas en la tabla inserted y en la deleted

Preguntas
2.a. Diferencia entre hashing y arbol b en acceso a datos
2.b Definicion de etl y stageing

Practicos:

3.a.Buscar errores en el siguiente sql sabiendo que solo 1 campo esta repetido y tiene 100 registros, si hay errores ponerlos y si no hay errores definir que hace

select clave from secuencia where clave in (select top 5 clave from secuencia order by 1)
union all
select clave from secuencia where clave in (select top 5 clave from secuencia order by 1 desc)
order by 1

3.b ejecutar una instruccion dml que elimine los duplicados en la tabla claves y explicar que sucedere si se ejecuta la sentencia del 3a en caso de que ya no existan duplicados (o sea si la consulta iba a devolver la misma cantidad de datos)

Saludos!
Les dejo mi resolución, si alguno me puede dar una mano con las cosas que faltan, se agradece!

V/F
1.a. Falso.

1.b. Esto no lo entiendo. No siempre un update va a hacer delete. Se puede armar un trigger en la tabla empleados que al agregar un empleado nuevo, agregue un registro en una tabla de logs con la fecha y hora del registro (aca no se haria ningun delete).



Preguntas
2.a. Hashing acceso directo a datos mas rapido que Arbol B.
Hashing no utiliza espacio extra para su implementación, a diferencia que Arbol B que almacena la estructura en memoria.
Hashing busca establecer relacion entre valor de los datos y valor de la clave con una función hash, en cambio arbol B trabajo con el concepto de arboles n-arios de busquedad, guarda en memoria la estructura y es mas lento para la creación de indices



2.b Alguno tiene estas definiciones?



Practicos:

3.a. Trae las 5 claves de la tabla secuencia que coinciden con las 5 primeras claves ordenadas de manera ascendente.
unidas con las 5 claves de la tabla secuencia que coinciden con las 5 primeras claves ordenadas de manera descendente
ordena todo ascendente.

NOTA: La consulta va a traer claves duplicadas, triplicadas, etc en caso de que haya, ya que el union all no elimina duplicados.



3.b DELETE clave, count(*)
FROM SECUENCIA
Group by clave
HAVING Count(*)>1;

No se si esto esta ok!
La 1B es verdadera.
El Motor de DB, al menos en MSSQL los triggers de updates los maneja como eliminacion e inserción.
Es decir... si vos generas un trigger update, lo que hace es Eliminar el registro y luego insertarlo con la/las columnas modificadas. Por lo que la instrucción es Verdadera.


El 3B sería:


DELETE FROM SECUENCIA
WHERE CLAVE IN (SELECT CLAVE FROM SECUENCIA GROUP BY CLAVE HAVING COUNT(1) > 1)


Con esa instruccion eliminas las claves que figuran mas de una vez. Ahora si solo hubiese que eliminar el registro duplicado la instrucción seria un poco mas compleja.
(20-09-2016 11:00)Martin. escribió: [ -> ]La 1B es verdadera.
El Motor de DB, al menos en MSSQL los triggers de updates los maneja como eliminacion e inserción.
Es decir... si vos generas un trigger update, lo que hace es Eliminar el registro y luego insertarlo con la/las columnas modificadas. Por lo que la instrucción es Verdadera.

Gracias!!

(20-09-2016 11:00)Martin. escribió: [ -> ]El 3B sería:

DELETE FROM SECUENCIA
WHERE CLAVE IN (SELECT CLAVE FROM SECUENCIA GROUP BY CLAVE HAVING COUNT(1) > 1)

Con esa instruccion eliminas las claves que figuran mas de una vez. Ahora si solo hubiese que eliminar el registro duplicado la instrucción seria un poco mas compleja.

Lo pense como decis vos, pero eso no sería lo que ellos dicen como "subselects"?
Podria ser... pero incluso en el final ellos lo están usando. Por ende, porque no podríamos nosotros?.
Hola! Usando el razonamiento de martin, no deberia ser:



DELETE FROM SECUENCIA
WHERE valor IN (SELECT valor FROM SECUENCIA GROUP BY valor HAVING COUNT(1) > 1)


Genial Caro,
Gracias por mandar de manera correcta la instrucción!.

Saludos,
Utnianos! Les subo el final de GDD del 24-05-18.

[Imagen: ARWKm2z.png]

No se olviden de agradecer! thumbup3
URLs de referencia