Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi A - F > Basi di dati ~ informatica triennale
 
[COMPITINO] Primo compitino
Clicca QUI per vedere il messaggio nel forum
edwin85
ciao a tutti.. visti i tempi d'attesa x il risultato del primo compitino della castano che oscillano tra il mese e l'anno (nel senso ke potremmo dover aspettare il 2007) :D direi di provare a corregerceli da soli per farci 1 idea:

c sono 2 possibilità di valutazione sulle 5 domande di teoria e i 2 esercizi:

- 3 punti alle prime e 7,5 ai secondi
- 4 punti alle prime e 5 ai secondi

(amenoche il tetto max d voto nn sia 30 ma 28, in tal caso siamo focchiuti)

io avevo il tema B (mi pare) ma cmq i temi erano pressoche identici; le domande chiuse erano le stesse ma in ordine differente e i 2 esercizi variavano nel nome della relazione ma avevano identico svolgimento.

a sto punto cerco di ricordarmi le domande (una mano è gradita se mi sbaglio):

1) esercizio col left join
2) domanda sulla divisione (grado e cardinalità)
3) esercizio sull'atleta (quello con gli AND e gli OR)
4) domanda sulla chiave esterna (references)
5) domanda sul livello intermedio

gli esercizi del tema 2 erano questi(piu o meno):

6) algebra: c'erano 3 relazioni sul cinema (attore, film e 1 altra che univa queste 2 mi sembra)
fattosta che la risoluzione andava fatta con l'operatore meno (e sono abbastanza certo xke il sondaggio di fine compitino la dava vincente)

7) e qui c'è da divertirsi :razz:
la richiesta era di trovare tutti i prodotti di una relazione prodotto (codice , prezzo, tipologia) con la medesima tipologia.
io l'ho risolto in maniera molto semplice ma sarebbero graditi pareri diversi xke credo ke questo fosse l'esercizio più ostico.

grazie a tutti ! ! ! :-D

PaU
io l'ho risolto con una group by ma non ho messo tutti gli attributi che c'eranno nella select...piccola imprecisioni :(

Simeon
Originally posted by edwin85
c sono 2 possibilità di valutazione sulle 5 domande di teoria e i 2 esercizi:

- 3 punti alle prime e 7,5 ai secondi
- 4 punti alle prime e 5 ai secondi


Secondo me la prima.


gli esercizi del tema 2 erano questi(piu o meno):

6) algebra: c'erano 3 relazioni sul cinema (attore, film e 1 altra che univa queste 2 mi sembra)
fattosta che la risoluzione andava fatta con l'operatore meno (e sono abbastanza certo xke il sondaggio di fine compitino la dava vincente)


Si si faceva al 100% con la differenza, inoltre probabilmente non era nemmeno richiesta un'operazione di join.


7) e qui c'è da divertirsi :razz:
la richiesta era di trovare tutti i prodotti di una relazione prodotto (codice , prezzo, tipologia) con la medesima tipologia.
io l'ho risolto in maniera molto semplice ma sarebbero graditi pareri diversi xke credo ke questo fosse l'esercizio più ostico.
[/B]


io ho fatto

select p1.codice, p1.prezzo, p1.tipologia
from prodotto as p1, prodotto as p2
where p1.codice <> p2.codice AND p1.tipologia = p2.tipologia

che DOVREBBE essere giusto :look:

zonker
Mi spiace rendere questo dispiacere a chi ha fatto l'esercizio con la join come Simeon...ma è sbagliato.
Nel senso che restituisce tutte le righe che servono ma ne restituisce in eccesso duplicate.
La join sarebbe corretta se si facessa una SELECT DISTINCT p1.codice, p1.prezzo, p1.tipologia etc etc.
Altimenti una soluzione valida è con EXISTS:
SELECT a.* FROM prodotto a WHERE EXISTS (SELECT * FROM prodotto b WHERE a.codice <> b.codice AND a.tipologia = b.tipologia);

edwin85
ho fatto anke io come simeon.. quindi voto x lui.. :-D
ho pensato anke io al fatto ke potrebbero esserci duplicati ma selezionando solo codice, tipo e prezzo da prodotto 1 si gestisce questo problema secondo me..
ps: probabilmente si poteva fare anke col group by ma.. ke casino!!!

zonker
Putroppo non è sufficente fare una selezione solo su una tabella.
In questo modo elimini il problema delle colonne duplicate ma senza DISTINC ti resta il problema sulle righe.
Con la JOIN fai una selezione sul carestesiano, quindi se hai al massimo due prodotti per tipologia il risultato è giusto ma se ne hai tre nella stessa la righe ti si duplicano.
Puoi facilmente verificarlo facendo la query su una tabella che contenga
codice1, 100, 'A'
codice2, 200, 'A'
codice3, 300, 'B'
codice4, 400, 'A'

vedrai che giustamente la riga codice3 non comparirà, ma le altre saranno duplicate.

Simeon
Credo sia una formalita', in classe abbiamo fatto un esercizio che si svolgeva nello stesso identico modo.

Diuzza
Originally posted by edwin85
ho fatto anke io come simeon.. quindi voto x lui.. :-D
ho pensato anke io al fatto ke potrebbero esserci duplicati ma selezionando solo codice, tipo e prezzo da prodotto 1 si gestisce questo problema secondo me..
ps: probabilmente si poteva fare anke col group by ma.. ke casino!!!


Questo esercizio era un macello. Non si capiva bene quel che chiedeva. Per questo ho chiamato circa 3000000 di volte il prof per avere delucidazioni.
E a quanto mi ha detto lui non è così che andava svolto.
Come avete fatto voi seleziona i prodotti di un tipologia che contiene almeno 2 prodotti con codice diverso. Nel senso che se di una tipologia c'è un solo prodotto non lo seleziona.
E così poteva sembrare dal testo.
Invece chiedendo al prof (quello delle esercitazioni) mi ha detto che per ogni tipologia bisognava selezionare tutti i suoi prodotti, e se di 1 tipologia ce n'era solo 1 bisognava selezionarlo ugualmente.
Quindi c'era da fare un semplice raggruppamento:

select *
from prodotti
group by tipologia, codice, nome, prezzo;

Stop.
O almeno lui mi ha fatto intendere così!!

GiKappa
chi ha già fatto compitini sa più o meno in quanto tempo li corregge e come fa sapere i risultati?

zonker
Perdonami ma:

select *
from prodotti
group by tipologia, codice, nome, prezzo;

con codice chiave primaria non raggruppa proprio niente...
questa scrittura è identia a:

select * from prodotti

Diuzza
No. Prima li raggruppa per tipologia, poi i gruppi di tipologia li raggruppa per codice, che restituiscono le singole ennuple, poi le raggruppa x nome ecc.

zonker
Si è vero, il raggruppamento come indicato raggruppa per tipologia, a parità di tipologia per codice, a parità di codice per nome, a parità di nome per prezzo....quindi in effetti è più corretto dire che sia equivalente a SELECT DISTINCT * FROM PRODOTTI.
Ma essendo per definizione di modello relazionale impossibile (sebbene lo sia poi in pratica) che esistano tuple con tutti i campi uguali si torna alla mia SELECT * FROM PRODOTTI.
Provare per credere....

davene
ha ragione zonker..senza dubbio..

zonker
Ok, appurato l'esercizio sul SQL che ne dite di quello dell'algebra?
La soluzione dovrebbe essere questa:
PROIEZIONE[CodiceV](SELEZIONE[Città='Milano'](PRO
IEZIONE[CodiceV, Città](Venditori)))
-
PROIEZIONE[CodiceV](SELEZIONE[DATA BETWEEN 01/01/2006 AND 31/12/2006](Vendite))

ossia tutti gli agenti di milano meno tutti quelli che hanno fatto almeno una vendita nel 2006.

bledar
qualcuno sa qualcosa riguardo i voti di questo compitino(quando?) e per quanto riguardo il secondo compitino si sa qualcosa?

Simeon
Originally posted by zonker
Ok, appurato l'esercizio sul SQL che ne dite di quello dell'algebra?
La soluzione dovrebbe essere questa:
PROIEZIONE[CodiceV](SELEZIONE[Città='Milano'](PRO
IEZIONE[CodiceV, Città](Venditori)))
-
PROIEZIONE[CodiceV](SELEZIONE[DATA BETWEEN 01/01/2006 AND 31/12/2006](Vendite))

ossia tutti gli agenti di milano meno tutti quelli che hanno fatto almeno una vendita nel 2006.


Io l'ho fatto come te, pero' li dentro ci vedo una proiezione di troppo, cioe', riguardo al primo membro della sottrazione, bastava selezionare quelli con citta'=milano e poi proiettare il codiceV, perche' proiettare all'interno codicev e citta' dai venditori ?

zonker
E' solo una anticipazione della proiezione in più, teoricamente scritta così riduci la memoria necessaria all'esecuzione ma è corretta anche senza.

Diuzza
A lezione hanno detto che la cosa più interna deve essere sempre una selezione, non 1 proiezione. Quindi ha ragione Simeon.

Cmq tornando all'esercizio di sql infatti bisognava selezionare tutte le tuple.
Un'altra variante ugualmente giusta è:
select *
from prodotti
order by tipologia;

Cmq era meglio il group by xchè un prof mi ha detto di fare un semplice raggruppamento

zonker
"Quindi ha ragione..." è un confronto o un tribunale??? ;-PP
In ogni caso anche io ho detto che è corretta la soluzione di Simeon e ho spiegato per quale motivo lo sia anche la mia.
Se a te sembra sbagliata per un motivo che non sia "A lezione hanno detto che la cosa più interna deve essere sempre una selezione" (cosa assolutamente falsa nell'algebra relazionale) sono felice di confrontarmi.
Tornando all'esercizio di SQL purtroppo non era chiara la richiesta nel testo e ho sentito dire che l'assistente abbia detto che si richiedesse di selezionare TUTTE le tuple, in tal caso la tua soluzione sarebbe corretta così come tutte le soluzioni equivalenti a SELECT * FROM PRODOTTI.
Converrai con me però che sarebbe troppo semplice come esercizio su SQL in un compito d'esame.
La richiesta era da interpretare come:
"Selezionare tutti gli attibuti dei prodotti che hanno almeno un altro prodotto della stessa tipologia".
I'm sorry for that.

PaU
mah non penso che avrebbero lasciato spazio a 200 interpretazioni altrimenti ognuno dava la sua soluzione e ce ne sarebbero state 250 diverse...

Diuzza
Non vedo xchè attacchi così.
Cmq ti ripeto che ho chiesto al professore durante l'esame se di una tipologia esiste 1 solo prodotto, non lo devo includere? E la sua risposta è stata: Devono essere messi tutti prodotti. Se di una tipologia esiste un solo prodotto lo si mette comunque, è un raggruppamento.
E non sono l'unica ad averlo chiesto e a tutti ha risp la stessa cosa.
Cmq non mi sembra così banale dato che l'hanno sbagliato in tanti.

zonker
Non ti stavo attaccando, e mi spiace se lo hai pensato.
Credevo che le emoticons (;-PPP) rendessero l'ironia della mia frase.
Ad ogni modo sono assolutamente d'accordo sul fatto che non fosse affatto banale e che la richiesta fosse espressa in modo contorto.
Resta il fatto che il raggruppamento non poteva raggruppare niente visto che le righe sono tutte diverse, quindi mi viene da pensare che non fosse l'interpretazione corretta. Non trovi?

Diuzza
Sarà, cmq sarebbe un semplice raggruppamento per tipologia, solo che tutto ciò che sta nella select deve essere nel group by quindi li ho dovuti mettere x forza.
Cmq io credo sia giusta. Mi han detto che alla prof era stata posta la stessa domanda e lei ha detto che il ragionamento sul fatto che o ci sono 2 prod di 1 tipologia o non lo inserisco era sbagliato.
Ha detto che bisognava prendere la cosa com'era, senza guardare quanti prodotti c'erano x tipologia.
Sxo che il prof di laboratorio non abbia detto la cosa sbagliata!
Mah... resta 1 mistero

Joliet Jake
ma perchè siete tutti così ansiosi di sapere il risultato? :)
io lo do per perso anche se mi sembra di averlo fatto giusto, se invece è andato abbastanza bene (vedi sufficiente) salto di gioia.
semplice no?
:p

Simeon
Originally posted by Joliet Jake

semplice no?
:p


Evidentemente no.

:p

Joliet Jake
questo perchè vi piace farvi del male :P

zonker
O forse perchè non sono al sesto anno ;-PPP
PS. Consentitemi l'autoironia...io sono al quinto.

Misterday
io sono solo ansioso di natura...

Simeon
Oddio quando escono i risultati

Bombardini10
ma questi risultati quando escono???

Misterday
domani!

mark
sono usciti i risultati del 1° compitino del 2° turno

tandrea85
esito:insufficiente

bello

zonker
Qualcuno ha preso 30?
Quale erano i criteri di valutazione?

Misterday
Io ho preso 20 e sinceramente mi aspettavo qualcosa di più.. quiz a parte, algebra e sql ero sicuro di averli fatti bene. boh!

GiaXVI
io 17 e anche io mi aspettavo qualcosa di piu, pero amen...cmq personalmente, ci sono 2 cose che mi rodono...una è che sql è un linguaggio semplice, e quella simpaticona della prof per rendere difficile il tutto ha messo un esercizio in cui nn era ben chiaro quello che si doveva fare, anche io ho messo solo la group by, ma sapevo gia che nn poteva essere cosi banale..
la seconda cosa che mi rode è che vorrei vedere i voti di tutti per fare una media....

Misterday
Ma per poter fare il secondo quanto si deve aver preso minimo?

Simeon
Originally posted by Misterday
Io ho preso 20 e sinceramente mi aspettavo qualcosa di più.. quiz a parte, algebra e sql ero sicuro di averli fatti bene. boh!


Sono nella tua identica situazione.

Dite che nell'orario di ricevimento ce li fa vedere sti benedetti compitini?

EDIT: oggi c'era lezione e non e' passato un autobus manco a pagare :|

GiaXVI
per poter fare il secondo compitino bisogna aver preso piu di 14, o da 14 in su nn ricordo...cmq se nn puoi farlo ti viene scritto nell'islab

Misterday
Ho mandato una mail alla Castano e mi ha risposto dicendo che per visionare i compitini si dovrà fare riferimento a un avviso che uscirà prossimamente sul suo sito.

Simeon
Originally posted by Misterday
Ho mandato una mail alla Castano e mi ha risposto dicendo che per visionare i compitini si dovrà fare riferimento a un avviso che uscirà prossimamente sul suo sito.


Hm, ho appena mandato una mail al Ferrara per cui appena mi risponde informo tutti quelli del turno 2.

Simeon
Originally posted by GiaXVI
per poter fare il secondo compitino bisogna aver preso piu di 14, o da 14 in su nn ricordo...cmq se nn puoi farlo ti viene scritto nell'islab

Mi son segnato che con voto minore o uguale a 12 salti all'appello successivo, per cui credo basti 13...

zonker
Il voto è in 27esimi

Jericho
per i compitini il minimo è 15, con 14 sei escluso dal secondo.

per gli appelli regolari con voti minori a 12 (incluso) è previsto il salto d'appello! se prendi il minimo (13) devi fare +5 al progetto!

edit: e invece ricordavo male... il minimo per i compitini è 14!

bimbamel
Si avvisano gli studenti che a partire dalle ore 16.30 di giovedi' 14.12.06 e' stata caricata la versione definitiva dei risultati della prima prova in itinere. Gli studenti sono pregati di controllare i risultati con riferimento a questa ultima versione.


Io ho ancora come data 13/12/2006. A qualcuno di voi e' cambiato qc?

Misterday
Anche io come te.

khelidan
idem

Misterday
indecifrabile il senso di questo avviso...

Joliet Jake
ma dove sono sti risultati che il sito islab non va più??

Java
a me hanno aggiornato il voto ma rimane la scritta "aggiornato al 13/12"..

mmm Paura

Simeon
Originally posted by Java
a me hanno aggiornato il voto ma rimane la scritta "aggiornato al 13/12"..

mmm Paura


Ma aggiornato come? Di piu? Di meno?

A me e' uguale :|

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate