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 del 01/10/2014
Autor Mensaje
GustavoPerrotta Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 179
Agradecimientos dados: 85
Agradecimientos: 446 en 81 posts
Registro en: May 2011
Mensaje: #1
[APORTE] Final del 01/10/2014 Finales Gestión de Datos
V o F:

1a-> Si una palabras es capicua, su código en Huffman tambien lo es.

1b-> La siguientes consultas devuelven lo mismo sin importar el set de datos: select count(campo1) from tabla = select count(*) from tabla, la "tabla" sólo tiene la columna campo1

Teórico:

2a-> Explique el significado de JOIN y sus variantes

2b-> Mencione y explique una forma de representar un grafo irrestricto

Práctico:

3a-> Daban una tabla que tenía las siguientes columnas:
codigo_materia
detalle_materia
nombre_alumno
legajo_alumno
fecha
nota

Te decían que en esa tabla estaban todas veces que los alumnos rindieron alguna materia. Pedían un listado con:
nombre de alumno 1
nombre de alumno 2
fecha
detalle de materia

De todas las parejas de alumnos que dieron algún final juntos y lo aprobaron. No podíamos repertir la pareja en orden inverso. No dejaban usar subquieries en el FROM.

3b-> Había 2 transacciones con isolation level SERIALIZABLE. Ambas transacciones en el tiempo 4 hacian un Select de la tabla1 donde id = 1. Luego ambas en el tiempo 5 hacían un update de la tabla where id = 1. La transacción A quería ponerle el valor X y la transacción B quería ponerle el valor Y.
Preguntaban que pasaba. Las opciones eran:

a- El campo id termina con el valor X
b- El campo id termina con el valor Y
c- No se sabe el valor del campo id, pero la transacción A termina primero
d- No se sabe el valor del campo id, pero la transacción B termina primero
e- se produce un deadlock
f- ninguna de las anteriores



RESPUESTAS:

V o F
1a-> Falso
1b-> Falso

Práctico:
3b-> puse F

3a->

Select a.nombre_alumno, b.nombre_alumno, a.detalle_materia, a.fecha
from tabla1 a, tabla1 b
where a.codigo_materia = b.codigo_materia
and a.fecha = b.fecha
and a.nota >= 4 and b.nota >= 4
and a.legajo_alumno > b.legajo_alumno



Saqué 7 y no contesté el segundo VoF. Así que algún error debo tener en algún lado. Si lo ven, por favor aporten así queda corregido.
(Este mensaje fue modificado por última vez en: 26-02-2015 15:55 por gonnza.)
02-10-2014 17:03
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] GustavoPerrotta recibio 7 Gracias por este post
proyectomaru (03-10-2014), reLlene (03-11-2014), Danlco (24-11-2014), nanjiro (10-12-2014), Fizios (15-12-2014), gonnza (26-02-2015), DarkCrazy (14-12-2015)
nanjiro Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 127
Agradecimientos dados: 149
Agradecimientos: 50 en 16 posts
Registro en: Mar 2010
Mensaje: #2
RE: [APORTE] Final del 01/10/2014
gracias! thumbup3
03-10-2014 01:16
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Lucho88 Sin conexión
Campeon del cubo Rubik
podrido de cursar
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 169
Agradecimientos dados: 8
Agradecimientos: 29 en 25 posts
Registro en: Jul 2008
Mensaje: #3
RE: [APORTE] Final del 01/10/2014
No entiendo el criterio de correccion de la gente de GDD la verdad... Con un compañero, alguno de los 2 no cumplia la condicion de minimo 2 puntos de la practica (ya que no teniamos la query del todo bien, y habiamos elegido opciones distintas en el choise)... y ambos 4... Igual, no me quejo, chochos ambos... simplemente no entiendo...
03-10-2014 14:47
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Fia Sin conexión
Empleado del buffet
Sin estado :(
*

-----
-----

Mensajes: 12
Agradecimientos dados: 1
Agradecimientos: 2 en 1 posts
Registro en: Nov 2011
Mensaje: #4
RE: [APORTE] Final del 01/10/2014
En el 3b- la opción correcta era la "e- se produce un deadlock"
Saludos
08-10-2014 17:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Danlco Sin conexión
Empleado de Fotocopiadora
Ingeniero hasta la muerte
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 37
Agradecimientos dados: 152
Agradecimientos: 7 en 1 posts
Registro en: Jun 2008
Mensaje: #5
RE: [APORTE] Final del 01/10/2014
Hola

En el 3b, la opcion correcta entonces es la f ?? y podria justificarce como que el motor ante 2 operaciones concurrentes de escritura y con un nivel serializable resuelve sin deadlock pero no se sabe cual sera el resultado?? o entendi mal ?

Desde ya gracias!

Saludos
24-11-2014 16:40
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
GustavoPerrotta Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 179
Agradecimientos dados: 85
Agradecimientos: 446 en 81 posts
Registro en: May 2011
Mensaje: #6
RE: [APORTE] Final del 01/10/2014
(08-10-2014 17:36)Fia escribió:  En el 3b- la opción correcta era la "e- se produce un deadlock"
Saludos

Si nos atenemos a la definición de deadlock que nos dan en Sistemas Operativos, eso no es un deadlock, a lo sumo es un conflicto de pedidos.
03-12-2014 15:13
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Fia Sin conexión
Empleado del buffet
Sin estado :(
*

-----
-----

Mensajes: 12
Agradecimientos dados: 1
Agradecimientos: 2 en 1 posts
Registro en: Nov 2011
Mensaje: #7
RE: [APORTE] Final del 01/10/2014
Es un deadlock porque las dos transacciones pueden leer el dato, pero como es serializable lo bloquean ambas hasta que termina la transacción, entonces ninguna puede hacer el update hasta que la otra termine. Lo que produce un deadlock. Se puede probar en una base de datos haciendo "set transaction isolation level".
Saludos
05-12-2014 11:01
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
NaiaraAcosta Sin conexión
Militante
Sueña...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 99
Agradecimientos dados: 83
Agradecimientos: 39 en 18 posts
Registro en: May 2012
Mensaje: #8
RE: [APORTE] Final del 01/10/2014
Que tal,

Tengo una consulta respecto al 1.b, porque es Falso?
14-12-2014 20:51
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
nanjiro Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 127
Agradecimientos dados: 149
Agradecimientos: 50 en 16 posts
Registro en: Mar 2010
Mensaje: #9
RE: [APORTE] Final del 01/10/2014
select count(*) te devuelve la cantidad de todos los registros de la tabla, y select count(campo_1) te devuelve todos los registros para los que campo_1 tenga valor distinto de null. Si campo_1 permite nulls, count(*) y count(campo_1) te pueden dar cantidades distintas

probé esto recien en mysql:


create table tab1 (campo1 int);

insert into tab1 values (null);
insert into tab1 values (1);
insert into tab1 values (null);
insert into tab1 values (2);

select count(*) from tab1;
-- devuelve 4
select count(campo1) from tab1;
-- devuelve 2


(14-12-2014 20:51)NaiaraAcosta escribió:  Que tal,

Tengo una consulta respecto al 1.b, porque es Falso?
(Este mensaje fue modificado por última vez en: 26-02-2015 15:54 por gonnza.)
14-12-2014 21:11
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
NaiaraAcosta Sin conexión
Militante
Sueña...
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 99
Agradecimientos dados: 83
Agradecimientos: 39 en 18 posts
Registro en: May 2012
Mensaje: #10
RE: [APORTE] Final del 01/10/2014
(14-12-2014 21:11)nanjiro escribió:  select count(*) te devuelve la cantidad de todos los registros de la tabla, y select count(campo_1) te devuelve todos los registros para los que campo_1 tenga valor distinto de null. Si campo_1 permite nulls, count(*) y count(campo_1) te pueden dar cantidades distintas

probé esto recien en mysql:


create table tab1 (campo1 int);

insert into tab1 values (null);
insert into tab1 values (1);
insert into tab1 values (null);
insert into tab1 values (2);

select count(*) from tab1;
-- devuelve 4
select count(campo1) from tab1;
-- devuelve 2


(14-12-2014 20:51)NaiaraAcosta escribió:  Que tal,

Tengo una consulta respecto al 1.b, porque es Falso?

Gracias!!!
(Este mensaje fue modificado por última vez en: 26-02-2015 15:54 por gonnza.)
14-12-2014 23:04
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: #11
RE: [APORTE] Final del 01/10/2014
Alguno podría justificar porque los VoF son falsos los dos? Sobre todo el segundo


No dije nada, ya encontre la justificación del segundo, es porque si alguno de los registros esta cargado con NULL cuando realiza el count(*) lo cuenta pero si se realizar count(campo1) no toma en cuenta las filas que esten en null. Por lo tanto es FALSA

Alguno me justifica la primera.
(Este mensaje fue modificado por última vez en: 25-02-2015 14:35 por Nacho14.)
25-02-2015 14:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
GustavoPerrotta Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 179
Agradecimientos dados: 85
Agradecimientos: 446 en 81 posts
Registro en: May 2011
Mensaje: #12
RE: [APORTE] Final del 01/10/2014
(25-02-2015 14:29)Nacho14 escribió:  Alguno me justifica la primera.

Supongamos que una palabra se escribe:

a...a
y su código es
110...110) al darla vuelta ya te das cuenta que no va a ser capicúa porque la 1er y última letra no lo son cuando están codificadas.
26-02-2015 15:49
Envíale un email 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.248
Agradecimientos dados: 780
Agradecimientos: 782 en 327 posts
Registro en: Mar 2010
BlogSpot Google+ YouTube
Mensaje: #13
RE: [APORTE] Final del 01/10/2014

Off-topic:
chicos les edité los mensajes que tenian código sql para poner el resaltador de sintaxis
no se olviden de usarlo asi es mucho mas facil de leerlo en un foro !!!
está para usar aca en donde estan escribiendo, ahi donde dice "código" =)

[Imagen: v34BEFt.gif]
26-02-2015 15:55
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: #14
RE: [APORTE] Final del 01/10/2014
(08-10-2014 17:36)Fia escribió:  En el 3b- la opción correcta era la "e- se produce un deadlock"
Saludos

Perdon pero creo que no seria deadlock. Las 2 lecturas se mandan al mismo tiempo, y las 2 van a bloquear el registro leido. La que entre primero por ende, va a bloquear el registro y va a dejar a la otra esperando. Cuando termine la transaccion, ese registro va a tener un valor X o Y, no se sabe cual. Ahi la otra transacccion va a intentar hacer un select que no va a devolver nada (porque el id ya no es 1, sino X o Y), y va a terminar exitosamente. Por ende, no se puede saber cual va a ser el valor, puesto que depende de que lectura entre primero (y dice q se mandan las 2 al mismo tiempo). Coincido en que es la opcion f.

Saludosthumbup3
28-02-2015 16:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
hiderocks Sin conexión
Empleado de Fotocopiadora
.....
**

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 26
Agradecimientos dados: 7
Agradecimientos: 11 en 4 posts
Registro en: Feb 2009
Mensaje: #15
RE: [APORTE] Final del 01/10/2014
Veo que nadie respondió la 3a, así que dejo una resolución:



SELECT t1.detalle_materia, t1.nombre_alumno as 'alumno 1', t2.nombre_alumno as 'alumno 2', t1.fecha
FROM tabla t1
JOIN tabla t2
ON (t1.codigo_materia = t2.codigo_materia
AND t1.fecha = t2.fecha)
WHERE t1.legajo_alumno > t2.legajo_alumno
AND t1.nota >= 4
AND t2.nota >= 4



Recuerden limitar los duplicados en los self-join filtrando por condición de ordenamiento (en este caso, > sobre legajo_alumno).

Saludos.
01-03-2015 11:29
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] hiderocks recibio 2 Gracias por este post
agusbrand (03-03-2015), H3rnst (30-11-2015)
Buscar en el tema
Enviar respuesta 




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



    This forum uses Lukasz Tkacz MyBB addons.