UTNianos

Versión completa: [Aporte][Gestión de Datos][Final] 21/05/2013
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
Hola! Alguien tiene el final de GDD del día de hoy 21/05/2013 ? Gracias!!!!
fue durisimo


de pedo aprobe un 4

uno de los practicos era un regalo, el otro era imposible !

Todavia lo estoy pensando y nose como mierda hacerlo



era algo asi:


Cita:1)
a- Los indices solo se usan en las base de datos para ganar velocidad
b- Los grafos irrestrictos solo pueden representarse computacionalmente de manera dinamica


2)
a- Defina que es un grafo irrestricto, como se representa computacionalmente y de ejemplos de su uso.
b- Desarrolle el concepto de estrella en datawarehouse

3)
a) Se tiene una tabla Personas
id | nombre| id_padre

que se relaciona consigo misma (id - PK; id_padre FK de la misma tabla Personas).
Realice una consulta Ansi-SQL que devuelva 2 columnas: En la primera el nombre de una persona, y en la segunda el nombre de los primos.
Tenga en cuenta que no deben aparecer duplicadas las relaciones: ej si gonza y jarry son primos, y muestra gonza| jarry, no debe mostrar jarry | gonnza

b) Se quiere llevar una estadistica de las modificaciones de una tabla Personas mediante objetos SQL.
Se desea grabar en la tabla EST_Personas la cantidad de personas que fueron modificadas. Para esto, use la tabla EST_Personas (fecha_mod, cant_modif). Suponga que la misma esta creada y vacia)


ahora adjunto mi pseudo resolucion.

1)

a- NO LA CONTESTE. Pero para mi era falsa; la podes usar tambien para restringir valores
b- NO LA CONTESTE, pero segun el apunte de reinosa puede represetnarse estaticamente con matrices de adyacencia, so Falsa.


2)

a- Solo conteste que era un grafo irrestricto (Que puede modelizar cualquier relacion independientemente de las propiedades que deba cumplir o no), y que pueden modelizarse con listas de adyacencia dinamicamente, o matrices estaticamente

(se, respondi 3 renglones)


b- Este desarrolle todo el concepto, puse un ejemplito, dije que beneficiaba la velocidad y el acceso, a costa de mas espacio. Solo nombre las tablas DIM y FACT

3)

a- Este punto lo odie. Todavia estoy pensando como mierda se hace. Lo de encontrar los primos no es dificil, pero nose como mierda hacer para no repetirlos. Como consultas distintas filas de un select devuelto sin una subquery ?? Es imposible.
Algunos me comentaron que usaron top y devolvieron la mitad del count (todos estan duplicados, devolver la mitad es coherente, si le pones un order by), pero si esa es la respuesta, esta MAL, porque TOP no es ANSI

Lo que yo hice, que traia todo lo que querian, pero no evitaba los duplicados:


select p3.nombre as UnaPersona, p4.nombre as SuPrimo
from personas P1
inner join Personas P2 on P1.idpadre = p2.idpadre and p1.id != p2.id
inner join personas p3 on p1.id = p3.idpadre
inner join personas p4 on p2.id = p4.idpadre



si alguien sabe, digame como mierda evitar los duplicados.


b-
Este era bastante boludo, se podia hacer con 3 triggers, o 2. Por seguridad (?) lo hice con 3



create trigger on personas
after insert
as
begin
select into est_personas select getdate(), count(*) from inserted
end



para el evento delete usabas la tabla deleted, y para update era lo mismo cualquiera de las 2 tablas
para evitar los duplicados pone p1.id < p2.id o p3.id < p4.id en tu caso. Yo tambien lo hice bastante parecido a como hiciste vos. Tambien 4
si, venia a responder eso

ese problema me quemo el bocho banda de horas, la concha de la lora !!!


http://stackoverflow.com/questions/16682...th-itself/

uno de stackoverflow me la respondio, tan pelotudo, como no se me ocurrio !!!
Una duda:

el pto 3b) grabar en la tabla EST_Personas la cantidad de personas que fueron modificadas (fecha_mod, cant_modif)

la tabla tendra un unico registro? con ultima fecha de modificacion y cantidad total de mod ??
o es un registro por cada id que se modifico?

Gracias
non, unico registro de la cantidad de modificadas.

ej, si se hicieron de una 80 inserts, insertas una fila con la fecha y el numerito 80. una pavada
ah listo ! unico registro !

¿pero no lo vas acumulando? ponele q ya tenias 20/05/2012 3 (porque insertaron 3)

luego vienen e insertan (o modifican o borran) 2 registros.... no deberia pisar la fecha pero sumar la cantidad? osea 21/05/2012 5 (los 2 q insertaron ahora mas los 3 que ya habian modif) ??
Para no traer duplicados creo que con poner algo asi serviría: Where p3.id - p4.id > 0

Saludos

Edit: veo que ya pusieron algo parecido
(21-05-2013 23:54)MSC escribió: [ -> ]ah listo ! unico registro !

¿pero no lo vas acumulando? ponele q ya tenias 20/05/2012 3 (porque insertaron 3)

luego vienen e insertan (o modifican o borran) 2 registros.... no deberia pisar la fecha pero sumar la cantidad? osea 21/05/2012 5 (los 2 q insertaron ahora mas los 3 que ya habian modif) ??

es un historial, grabas siempre en uan nueva fila, no pisas.
Buenas.

Final de Gestión de Datos tomado el día 21/05/2013.
No tengo imagen, copio el enunciado.

1. V o F
a) Los índices solo sirven para aumentar la velocidad de consulta en las bases de datos.
b) Un grafo irrestricto solo se puede representar mediante una representación dinámica.

2. Preguntas
a) Definir grafo irrestricto. Representación computacional. Ejemplo de su uso.
b) Definir modelo de estrella de un datawarehouse.

3. Práctica

Dada la tabla

Persona
-------
id
nombre
padre

a) Realizar una consulta ANSI SQL que devuelva dos columnas, la primera el nombre de la persona y la segunda el nombre de su primo. No se deberá repetir resultados, es decir, si devuelve "Luis, José" no deberá devolver "José, Luis". No se permite el uso de subconsultas en ninguna parte de la consulta.

b) Realizar un objeto en la base de datos que permita guardar la estadistica de la cantidad de personas que se modifican en un evento de modificación. Se deberá guardar un registro en la tabla PERSONAS_EST (momento_est, cantidad_personas_modificadas).



La resolución de la teoría la buscan en sus apuntes de confianza.

La práctica la hice así.

3.a)
SELECT HIJO1.nombre AS persona, HIJO2.nombre AS primo
FROM persona HIJO1 INNER JOIN persona PADRE1 ON HIJO1.padre = PADRE1.id
INNER JOIN persona PADRE2 ON PADRE1.padre = PADRE2.padre
INNER JOIN persona HIJO2 ON HIJO2.padre = PADRE2.id
WHERE HIJO1.id <> HIJO2.id AND
PADRE1.id <> PADRE2.id AND
HIJO1.id < HIJO2.id

3.b)
CREATE TRIGGER guardar_estadistica ON persona
AFTER UPDATE
AS
DECLARE
@cant int
BEGIN
SELECT @cant = count(*) FROM inserted
INSERT INTO PERSONAS_EST (momento_est, cantidad_personas_modificadas)
VALUES (GETDATE(), @cant)
END


Acepto consultas, sugerencias, etc.

Salud!
yo me fui . no sabia nada de grafico irrestricto ( 2 preguntas del mismo tema ... teniendo tantos temas..) y el de estrella no me acordaba lo suficiente , tambien no me gusto nada el de los primos y el ultimo parecia facilongo , pero no queria rifar la chance.
Yo lo del grafo irrestricto no me acordaba nada. Empecé a sumar los puntos que podía hacer y me pareció bastante jugado.
Los de práctica por ahi me iban a llevar su tiempo pero quizás salían.
Será la próxima =P
yo me la jugue, tenia 4 seguro, y me confiaba en el de sql de los primos.

ese al final no me salio completo, me falto evitar las repeticiones, pero lo puse igual :Caradura: y puse la mitad de la pregunta de los grafos (en 3 renglones, no especifique) y arañe el 4. No iba a ir hasta lugano al re pedo, es re lejos, me la jugue y por suerte salio =P
merge !
Páginas: 1 2
URLs de referencia