Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[Aporte] Final gestion de datos 28-07-2015
Autor Mensaje
roman1981 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 261
Agradecimientos dados: 0
Agradecimientos: 15 en 8 posts
Registro en: Nov 2010
Mensaje: #1
[Aporte] Final gestion de datos 28-07-2015 Finales Gestión de Datos
Bueno gente ahi subo el final que tomaron ayer. Jodida la parte práctica y por eso se llevaron puesto a varios. Si alguien puede resolverla y explicarla se agradece.


Archivo(s) adjuntos Imagen(es)
   
29-07-2015 09:08
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] roman1981 recibio 5 Gracias por este post
Alhasar (29-07-2015), holautn (30-07-2015), proyectomaru (30-07-2015), H3rnst (29-11-2015), Fackus (02-12-2016)
rod77 Sin conexión
Presidente del CEIT
:o
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.079
Agradecimientos dados: 131
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #2
RE: [Aporte] Final gestion de datos 28-07-2015
Respondo lo que me acuerdo:

1.b Falsa. Para rangos es mejor el ARBOL-B+

3.a el E: C1=C2 y C2>=C3 . Ya que se hace un join por las claves C1 y C2 por lo tanto van a ser iguales. Y si C3 tiene null va a ser menor, si no tiene null va a ser igual.
29-07-2015 09:34
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
taper Sin conexión
Militante

***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 54
Agradecimientos dados: 16
Agradecimientos: 117 en 23 posts
Registro en: Feb 2013
Mensaje: #3
RE: [Aporte] Final gestion de datos 28-07-2015
1.a FALSO-->Claves alternas son posibles claves PRIMARIAS
1.b FALSO-->Hashing no soporta busqueda por rangos.

2.a Aca hay que contar que es la tecnica de modelo star del ROLAP, contar que tiene Tablas de dimensiones y de hechos
2.b Explicar niveles (serializable, read commited, read uncommited, repetable reads) y explicar en cada caso la relacion con cada tipo de lecturas

3.a Opcion E

3.b (Me rompieron el orto con esta, ni puta idea.)


Aprobe de todas formas.
abz
29-07-2015 10:02
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: 131
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #4
RE: [Aporte] Final gestion de datos 28-07-2015
la 3b era algo asi:


SELECT c.cliente,
(select top 1 i.ite_codproducto
from facturas f1, item i
where f1.clie_codigo = c.clie_codigo
and f1.fac_numero = i.fac_numero
group by i.ite_codproducto
order by sum(i.ite_cantidad) ) as ['Producto mas comprado'],
(select count(*)
from facturas f2
where f2.clie_codigo = c.clie_codigo
and f2.fac_importe > 1500) as ['Total Facturas con importe > 1500']
FROM cliente C
where c.clie_codigo exists (select f4.clie_codigo from facturas f4)
order by (select count(*) from facturas f5 where f5.clie_codigo = c.clie_codigo)

29-07-2015 10:37
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
roman1981 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 261
Agradecimientos dados: 0
Agradecimientos: 15 en 8 posts
Registro en: Nov 2010
Mensaje: #5
RE: [Aporte] Final gestion de datos 28-07-2015
y el 3a dijeron que la respuesta correcta era la E pero por que tengo que suponer que el campo estado puede tener valor null ?
(Este mensaje fue modificado por última vez en: 29-07-2015 10:46 por roman1981.)
29-07-2015 10:44
Envíale un email 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: 131
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #6
RE: [Aporte] Final gestion de datos 28-07-2015
Puede tener valores NULL como puede no tenerlos.

Como no te dice nada acerca del campo "Fac_estado" vos no podes suponer que todos los campos van a tener valores

Ejemplo (le saco las columnas que no sirven) :

Tabla Clientes (clie_codigo):
A
B
C

Tabla Factura (clie_codigo,fac_estado)
A - "Pagado"
A - "Pendiente
A - null
B- "Pagado"

Si haces el select sin los COUNT
te daria el siguiente producto:

A - A - "Pagado"
A - A - "Pendiente"
A - A - Null
B - B - "Pagado"

Si haces el select con los count() te va a dar:
C1: 4, C2: 4 y C3: 3

El tema de fac_estado es que no te dicen si es un campo not null, asi que vos podes suponer que tiene. Por eso C2 >= C3. Si no tiene null va a ser siempre IGUAL, si tiene NULL va a ser menor.
(Este mensaje fue modificado por última vez en: 29-07-2015 11:13 por rod77.)
29-07-2015 11:12
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
roman1981 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 261
Agradecimientos dados: 0
Agradecimientos: 15 en 8 posts
Registro en: Nov 2010
Mensaje: #7
RE: [Aporte] Final gestion de datos 28-07-2015
ok...gracias...una consulta: cuando te dicen que la consulta tiene que ser en ANSI SQL se puede hacer en MYSQL ? nunca me quedo en claro que sentencias se pueden hacer con ANSI SQL y cuales no .
29-07-2015 11:42
Envíale un email 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: 131
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #8
RE: [Aporte] Final gestion de datos 28-07-2015
A lo que se refiere con ANSI-SQL es que no uses una función propia del motor, que no se encuentre en los demás. Un ejemplo seria que a una columna le pongas el tipo "table" cuando dicho tipo solo es de Oracle.
Pero por ejemplo el TOP 1 creo que es propio SQL SERVER, ya que en Oracle tenes el LIMIT (o algo asi). O sea tenes que usar si o si uno de los 2. De ultima aclara que desarrollas en mysql y listo, pero te vuelvo a repetir, no uses cosas propias del motor que no se encuentran en otros motores.
(Este mensaje fue modificado por última vez en: 29-07-2015 11:48 por rod77.)
29-07-2015 11:48
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
roman1981 Sin conexión
Profesor del Modulo A
Sin estado :(
*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 261
Agradecimientos dados: 0
Agradecimientos: 15 en 8 posts
Registro en: Nov 2010
Mensaje: #9
RE: [Aporte] Final gestion de datos 28-07-2015
ok gracias,,,por la ayuda.... en los apuntes se habla de clave alterna ?? que es este tipo de clave.?
29-07-2015 12:13
Envíale un email 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: 131
Agradecimientos: 399 en 176 posts
Registro en: Mar 2011
Mensaje: #10
RE: [Aporte] Final gestion de datos 28-07-2015
Esta en el apunte de Zaffaroni "Modelo_Relacional v2.doc"

Clave Alterna o Alternativa:
Son aquellas claves, pertenecientes al conjunto de claves candidatas, que no se eligieron como primaria.
29-07-2015 12:52
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Alhasar Sin conexión
Campeon del cubo Rubik
Analista
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 120
Agradecimientos dados: 27
Agradecimientos: 38 en 23 posts
Registro en: Jun 2012
Mensaje: #11
RE: [Aporte] Final gestion de datos 28-07-2015
Pregunta desde el desconocimiento total...
Como viene la dificultad de los finales, o sea, que temas hay que darles mas bola como para darles mas enfasis?
29-07-2015 14:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
pugna23 Sin conexión
Campeon del cubo Rubik
.
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 122
Agradecimientos dados: 68
Agradecimientos: 15 en 12 posts
Registro en: Oct 2011
Facebook
Mensaje: #12
RE: [Aporte] Final gestion de datos 28-07-2015
(29-07-2015 14:41)Alhasar escribió:  Pregunta desde el desconocimiento total...
Como viene la dificultad de los finales, o sea, que temas hay que darles mas bola como para darles mas enfasis?

En cuanto a la práctica... Bueno, SQL... Si hiciste el tp lo tenes fresco, pero sino triggers por ejemplo, vi que tomaron en algunos (aca tuvimos suerte y solo era una consulta) y tenes que acordarte la sintaxis (create trigger, como declarar/setear las variables, if, case). Es basico, es facil, pero bueno... Tambien las funciones basicas del motor... Hay que saberlo.

Lo que me parece haber visto en todos los finales fue Niveles de Aislamiento... Tanto en práctica, como en teoria (en este final).
Los demas puntos teoricos me parece que van variando... Siempre con conceptos de los apuntes.

Pugna curse
29-07-2015 16:06
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: 591
Agradecimientos dados: 181
Agradecimientos: 58 en 26 posts
Registro en: Sep 2010
Mensaje: #13
RE: [Aporte] Final gestion de datos 28-07-2015
Disculpen por revivir un tema tan viejo, pero ya estoy quemadísimo y no sé si le estoy pifiando feo (lo más probable es que si) o están todos equivocados menos yo =P (más abajo hay un TL;DR)

Hablando del 3.a, tenemos que C1 es COUNT(f.clie_codigo), o sea que sería la cantidad de valores no NULL de la FK f.clie_codigo. Podríamos decir que C1 es la cantidad total de facturas asociadas a algún cliente. Y ya que estamos, también es lógico asumir que la relación entre Cliente y Factura es de uno a muchos: un cliente puede tener muchas facturas.

(si ya le erré, avisen porfa)

Después viene C2, que es COUNT(c.clie_codigo). El código del cliente es la PK de la tabla Cliente, por lo que C2 es la cantidad de clientes que existen en la tabla. Un cliente puede tener 0, 1 o muchas facturas asociadas (esto lo asumo yo)

Acá viene la parte que tengo más dudas. Tengo entendido que

FROM Cliente c, Factura f
WHERE c.clie_codigo = f.clie_codigo



es equivalente a



FROM Cliente f
INNER JOIN Factura f ON c.clie_codigo = f.clie_codigo



y si eso es así, ¿por qué asumen que la relación entre clientes y facturas es 1 a 1? ¿Fué algo que se dijo en el final de forma oral? Porque si la relación entre Cliente y Factura es de uno-a-muchos, entonces C1 >= C2 (es decir, la cantidad de facturas puede ser mayor a la de clientes), por lo que la respuesta correcta sería la G

TL;DR ¿Por qué la respuesta correcta no es la G?

Gracias desde ya por el tiempo
29-11-2015 12:19
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: 208 en 74 posts
Registro en: Mar 2011
Mensaje: #14
RE: [Aporte] Final gestion de datos 28-07-2015
H3rnst probablemente ya sea tarde pero te respondo, quizá le sirva a algún compañero.

Lo que decis está casi todo bien PERO nadie está asumiendo que la relación entre clientes y facturas es 1 a 1, al contrario, por sentido común y porque se ve en clase y en muchos ejercicios, la relación entre Clientes y Facturas es como vos decis, 1 a muchos (pudiendo incluso un cliente no tener facturas asociadas! o tener 1,2,3...) De cualquier modo, esta aclaración no hace falta porque no es necesario considerar esto para responder la pregunta.
Creo que tu confusión está en que estás viendo los count como si fueran count(distinct columna) pero NO tienen el distinct. Ojo con eso!
Como vos dijiste, acá hay un INNER JOIN implícito, se "matchean" las tablas Clientes y Facturas por el clie_código (código de cliente). Si un cliente no tiene facturas, no va a parecer en el join (porque es inner, si fuera left join sí aparecería).
Vamos a un ejemplo fácil y corto para redondear la idea. Imaginate la tabla cliente con un solo cliente que tenga código 1 y la tabla factura con 3 facturas, todas del cliente con código 1.
Si hago un select * de ambas tablas con inner join como se habló mi resultado va a ser:
c.clie_codigo f.fac_numero f.clie_codigo
1 1 1
1 2 1
1 3 1
Ahora pensa eso con la lógica de COUNT. Count me va a contar en base a ESE resultado que te mostré ahí (no en base a las tablas orginales). Si contas la cantidad de veces que aparece c.clie_codigo (count c.clie_codigo) te da 3, y si contas la cantidad de veces que aparece f.clie_codigo count(f.clie_codigo) también te da 3 ! También te da 3 count(f.fac_numero) y cualquier otro count sobre campos que esten en ese "resultado parcial" (por llamarlo de algún modo) con valores distintos de NULL te van a dar 3 !
Ahora si fuera con distinct --> count(distinct clie_codigo) daría 1.

No es la mejor explicación pero espero que se haya entendido. Sino preguntame!

Respecto al 3b) dejo acá mi script que si bien no lo probé, asumo que anda bien y cumple con lo pedido.



SELECT (select TOP 1 ite_codproducto FROM factura ff, Item i WHERE i.fac_numero=ff.fac_numero AND ff.clie_codigo=c.clie_codigo GROUP BY ite_codproducto ORDER BY SUM(ite_cantidad) DESC) 'Producto favorito',
COUNT(f.fac_numero) 'Cantidad Facturas de Gran Importe' FROM Cliente c INNER JOIN Factura f ON f.clie_codigo = c.clie_codigo WHERE fac_importe>1500 GROUP BY c.clie_codigo ORDER BY 2



Espero que les sirva y que esté bien!
Saludos!
(Este mensaje fue modificado por última vez en: 15-12-2015 03:36 por DarkCrazy.)
15-12-2015 03:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] DarkCrazy recibio 1 Gracias por este post
H3rnst (15-12-2015)
leandrong Sin conexión
Secretario de la SAE
...
******

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 527
Agradecimientos dados: 140
Agradecimientos: 286 en 42 posts
Registro en: Sep 2008
Mensaje: #15
RE: [Aporte] Final gestion de datos 28-07-2015
(15-12-2015 03:34)DarkCrazy escribió:  


SELECT (select TOP 1 ite_codproducto FROM factura ff, Item i WHERE i.fac_numero=ff.fac_numero AND ff.clie_codigo=c.clie_codigo GROUP BY ite_codproducto ORDER BY SUM(ite_cantidad) DESC) 'Producto favorito',
COUNT(f.fac_numero) 'Cantidad Facturas de Gran Importe' FROM Cliente c INNER JOIN Factura f ON f.clie_codigo = c.clie_codigo WHERE fac_importe>1500 GROUP BY c.clie_codigo ORDER BY 2



No está ordenando por el cliente facturas compradas sino por facturas con mayor a 1500, ya que hiciste order by 2.

(29-07-2015 10:37)rod77 escribió:  

SELECT c.cliente,
(select top 1 i.ite_codproducto
from facturas f1, item i
where f1.clie_codigo = c.clie_codigo
and f1.fac_numero = i.fac_numero
group by i.ite_codproducto
order by sum(i.ite_cantidad) ) as ['Producto mas comprado'],
(select count(*)
from facturas f2
where f2.clie_codigo = c.clie_codigo
and f2.fac_importe > 1500) as ['Total Facturas con importe > 1500']
FROM cliente C
where c.clie_codigo exists (select f4.clie_codigo from facturas f4)
order by (select count(*) from facturas f5 where f5.clie_codigo = c.clie_codigo)


Lo hice igual, pero en vez del exists usé el in, con exists me tira error.

Con el exists tendría que ser así

where exists (select * from from Factura where clie_codigo = C.clie_codigo)
(Este mensaje fue modificado por última vez en: 21-12-2015 18:45 por leandrong.)
21-12-2015 18:30
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.