.dsy:it. Pages (5): « 1 [2] 3 4 5 »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Basi di dati ~ informatica triennale (http://www.dsy.it/forum/forumdisplay.php?forumid=211)
-- Appello 20/01/2009 (http://www.dsy.it/forum/showthread.php?threadid=37280)


Posted by cinghio on 21-01-2009 12:36:

punti di vista e il tuo è rispettabilissimo! :)

ciao, cinghio


Posted by valeriam. on 21-01-2009 17:02:

le domande a crocette mi sembrava valessero 3 pnt ognuna e gli esercizi 5 punti


Posted by Pennywise on 21-01-2009 17:26:

Vi ricordate le risposte alle prime domande?
Io mi ricordo di aver messo C-A-C-C-B
E l'ultimo mi pare di aver messo 5 relazioni. una solo per l'attributo di E1 con cardinalità (0,N)

Voi vi ricordate?

MA PERCHE' NON RILASCIANO PIU I TESTI D'ESAME? HANNO PAURA CHE SE UNO SI ESERCITA UN PO POI PASSA ANCHE GLI ESAMI?


Posted by Counter65 on 22-01-2009 08:58:

la prima l'ho messa anche io a C ma non sono sicuro... c'è qualcuno che l'ha fatta giusta sicuramente? le altre non ricordo...ma erano simili forse l'ultima diversa


Posted by R1cky` on 22-01-2009 09:02:

Originally posted by Counter65
la prima l'ho messa anche io a C ma non sono sicuro... c'è qualcuno che l'ha fatta giusta sicuramente? le altre non ricordo...ma erano simili forse l'ultima diversa


A quanto pare quasi tutti hanno messo la C :)
Io nelle altre domande ho messo:

Quella che chiedeva dei cookie ho messo la risposta che diceva "solo lato client", quella che diceva dei livelli ho messo la risposta che conteneva "livello logico" e l'altra con le condizioni in and/or non mi ricordo.

MA PERCHE' NON RILASCIANO PIU I TESTI D'ESAME? HANNO PAURA CHE SE UNO SI ESERCITA UN PO POI PASSA ANCHE GLI ESAMI?


Ah può darsi... :)


Posted by cinghio on 22-01-2009 14:20:

Sono quasi sicuro che la decomposizione senza perdita sia quella con le relazione: Dipartimento-Cognome-Nome, Cognome-Nome-Telefono.
Il livello logico è quello intermedio.
L'altra risposta secondo me giusta era, se non ricordo male: (MEDIA > 25 AND ESAMI > 10) OR ETA < 25
Quella sui cookie credo di averla sbagliata: secondo me erano tutte plausibili. io ho scelto che lato server l'id sessione e' l'unica info immagazzinata.
l'altra domanda sul left join esterno non la ricordo ma secondo me prende tutti i record del lato sinistro, e se ha informazioni sul lato destro le visualizza, altrimenti non scrive niente (cioè NULL).

SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta

UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'

GRANT:
GRANT SELECT ON Fornitore TO a,b,c WITH GRANT OPTION
GRANT INSERT ON Fornitore TO a (per non propagare)

CONSTRAINT:
ALTER TABLE a ALTER COLUMN Prezzo float NOT NULL CHECK (Prezzo > 30) (si poteva omettere il tipo e il not null)
questa si poteva fare anche a livello di contraint di tabella

ALTER TABLE Fornitore ADD CONSTRAINT PK_FID FOREIGN KEY FID REFERENCES Listino(FID) ON UPDATE CASCADE (stessa cosa per la tabella Pezzo sulla chiave PID)

Il quarto esercizio l'ho fatto male perche' non seguendo le lezioni mi sono trovato una schema ER che non sapevo codificare.
AD occhio: 3 relazioni per le tre entità E e una per l'entità Relazione R1 per fare il molti-a-molti (M:N).

Spero di essere passato ma sono fiducioso, solo che la vita mi ha dato tante e tante amarezze! :)

ciao, Marcello


Posted by morte2097 on 22-01-2009 14:32:

una cosa, nella prima query , se non erro, voleva selezionare ogni atleta con il tempo totale di ogni gara?


Posted by cinghio on 22-01-2009 14:34:

giusto, ho omesso. pero' ho raggruppato per atleta! :)


Posted by darkshadow on 22-01-2009 15:33:

Originally posted by cinghio
Sono quasi sicuro che la decomposizione senza perdita sia quella con le relazione: Dipartimento-Cognome-Nome, Cognome-Nome-Telefono.


credo di aver fatto anch'io cosi.


Il livello logico è quello intermedio.


anche questa =


L'altra risposta secondo me giusta era, se non ricordo male: (MEDIA > 25 AND ESAMI > 10) OR ETA < 25



pure questa.


Quella sui cookie credo di averla sbagliata: secondo me erano tutte plausibili. io ho scelto che lato server l'id sessione e' l'unica info immagazzinata.

l'altra domanda sul left join esterno non la ricordo ma secondo me prende tutti i record del lato sinistro, e se ha informazioni sul lato destro le visualizza, altrimenti non scrive niente (cioè NULL).


su queste mi sa che ho sbagliato.


SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta



è giusta cosi ma ci sono delle imprecisioni.
i campi che usi nella clausola group by devono essere presenti nella select.

in realta dovrebbe essere cosi:

SELECT Luogo, Data, Atleta, sum (Tempo)
FROM TEMPOMANCHE
GROUP BY (Luogo, Data, Atleta)



UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'



questa è assolutamente sbagliata perchè l'es ti chiedeva di aggioarnare il valore di TEMPO aggiungendo + 1 pero prima dovevi prendere il valore che c'è nel campo TEMPO dei record che rispettano la clausola WHERE e a questo valore fare + 1.

e questo si poteva fare attraverso non so una funzione nella quale usi un cursore.

non si può fare direttamente TEMPO = TEMPO + 1




GRANT:
GRANT SELECT ON Fornitore TO a,b,c WITH GRANT OPTION
GRANT INSERT ON Fornitore TO a (per non propagare)


qui mancano le altre tabelle cmq il comando è giusto

siccome c'erano + tabelle ho fatto cosi:

GRANT SELECT ON tabella1, tabella2, tabella3 TO u1, u2, u3 WITH GRANT OPTION

sul libro non ho visto se si poteva mettere + tabelle nella parte ON. sapete se si può fare??




CONSTRAINT:
ALTER TABLE a ALTER COLUMN Prezzo float NOT NULL CHECK (Prezzo > 30) (si poteva omettere il tipo e il not null)
questa si poteva fare anche a livello di contraint di tabella

ALTER TABLE Fornitore ADD CONSTRAINT PK_FID FOREIGN KEY FID REFERENCES Listino(FID) ON UPDATE CASCADE (stessa cosa per la tabella Pezzo sulla chiave PID)



questo non l'ho fatto perchè non mi ricordavo la sintassi del comando alter


Il quarto esercizio l'ho fatto male perche' non seguendo le lezioni mi sono trovato una schema ER che non sapevo codificare.
AD occhio: 3 relazioni per le tre entità E e una per l'entità Relazione R1 per fare il molti-a-molti (M:N).



su questa ho un solo dubbio. per quanto riguarda l'attributo multivalore, c'era da fare un'altra relazione oppure rimaneva un semplice attributo??



per quanto riguarda la parte di algebra..

io nella prima ho fatto la differenza e nella seconda invece l'intersezione, voi come avete fatto?.


Spero di essere passato ma sono fiducioso, solo che la vita mi ha dato tante e tante amarezze! :)

ciao, Marcello



già speriamo di avercela fatta pechè non ho voglia di rifarmi l'esame.



ciao.


DS

__________________
by Ð@rk§h@ÐØw


Posted by Counter65 on 22-01-2009 15:41:

Originally posted by darkshadow


UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'



questa è assolutamente sbagliata perchè l'es ti chiedeva di aggioarnare il valore di TEMPO aggiungendo + 1 pero prima dovevi prendere il valore che c'è nel campo TEMPO dei record che rispettano la clausola WHERE e a questo valore fare + 1.

e questo si poteva fare attraverso non so una funzione nella quale usi un cursore.

non si può fare direttamente TEMPO = TEMPO + 1





si puo fare, ti stai confondendo con qualcos'altro probabilmente...
http://en.wikipedia.org/wiki/Update_(SQL)


Posted by cinghio on 22-01-2009 15:50:

dark se i campi sono nel group by non e' detto che devono essere anche nella select. ne sono quasi sicuro: con SQL SERVER e' cosi'.
non vale il contrario. il problema che l'atleta lo vedo più volte per ogni gara.

piuttosto, riguardo l'update, mi viene in mente che forse ho aggiunto un secondo per ogni manche e questo non e' tanto giusto! :(
l'update con la where cosi' in generale credo sia giusto... o forse non ho capito la tua obiezione. di certo e' impreciso.

sulle grant si possono metterep iu' tabelle. mi sorge l'atroce dubbio di averne omessa qualcuan per distrazione... NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO!

sull'algebra ho fatto un'intersezioen di due relazioni praticamente uguali tranne per il valore filtrato (discesa libera e slalom gigante)
per l'altra anche io ho fatto una sottrazioen tra gli atleti TUTTI e quelli che hanno fatto almeno una gara nella loro nazione = risultato!

di certo non e' ottimizzata.

dark, dammi fiducia! secondo te?
a me sembra che i nostri compitini siano andati been, io ho preso anche un +2 nel progetto quindi mi accontento del 16.

Mi sono riscritto all'università dopo tanti anni. a marzo mi scadono gli esami se non ne sostengo almeno uno con esito positivo (sono un po' teso)! :)


Posted by darkshadow on 22-01-2009 16:01:

 
allora ho controllato l'update e in quel modo si può fare. (maledizione non lo sapevo!!! :evil: )

per quanto riguarda il group by... in sql standart tutte le colonne che compaiono nella clausola group by, devono comparire nella select

se in sql server si possono omettere è un conto ma in slq standart no.
i prof penso controllino che sia in sql standart.


cmq non abbiamo fatto un esame brillante ma sembrerebbe che lo abbiamo superato.


pero non sarò tranquilo finchè non vedo i risultati.

__________________
by Ð@rk§h@ÐØw


Posted by cinghio on 22-01-2009 16:03:

a chi lo dici! grazie del supporto morali! :)


Posted by R1cky` on 22-01-2009 17:36:

Originally posted by cinghio

SQL:
SELECT SUM(TEMPO)
FROM TEMPOMANCHE
GROUP BY Luogo, Data, Atleta

UPDATE TempoManche
SET Tempo = Tempo + 1 (ammesso che il campo è un intero)
WHERE Luogo = 'Kitzbuhel' AND Data = '20090120'


Anche io le ho fatte in questo modo :)



Originally posted by darkshadow
su questa ho un solo dubbio. per quanto riguarda l'attributo multivalore, c'era da fare un'altra relazione oppure rimaneva un semplice attributo??


Io ho fatto un'altra relazione, e credo che sicuramente andava fatto in questo modo...


Posted by cinghio on 22-01-2009 20:02:

Dark, ho trovato un esempio sulle slide del corso dove c'era un attributo nella clausola GROUP BY e l'attributo non era presente nella select (ma era nella WHERE).
Cmq sia io non penso sia un errore grave.


All times are GMT. The time now is 20:04. Pages (5): « 1 [2] 3 4 5 »
Show all 70 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.