Esercizio seconda prova di verifica

Nell'esercizio 2 del secondo compitino chiede di dire se il risultato (dato un albero logico) è senza duplicati. Premetto che non ho seguito il corso, qualcuno sa dirmi se ci sono spiegazioni su questa tipologia di esercizi sulle slide? O in alternativa un modo per svolgerlo?
La prova è questa: compitino
esercizio 2, punto a. La questione è: c'è un metodo di svolgimento generale? (al di là della soluzione a questo esercizio)

Comments

  • La proiezione in quell'albero ammette duplicati, e inoltre, dato che raggruppi su chiave primaria IdCorso e NomeCorso, sei sicuro che avrai come risultato della group-by solo ennuple con coppie (IdCorso,NomeCorso) distinte. Se però proietti solo su NomeCorso, che oltretutto non è chiave e può comparire più volte con lo stesso valore nelle ennuple, direi che può avere duplicati. Questo te lo dico conoscendo l'algebra e il suo significato.

    Se vuoi parlare di dipendenze funzionali, come nella soluzione, il prof ha detto che per vedere se una distinct è inutile o no quando è presente una groupby (qualcuno mi corregga se sbaglio), bisogna controllare che gli attributi della Select determinino quelli della groupby. Se così non è, allora è possibile che accada ciò che ho scritto sopra. Se vuoi convincertene, sfrutta la definizione di Dipendenza Funzionale e Applicala a NomeCorso --> IdCorso, NomeCorso e vedi che effettivamente non ci sarebbero duplicati se valesse.
  • edited January 2015
    diningphil wrote: »
    La proiezione in quell'albero ammette duplicati, e inoltre, dato che raggruppi su chiave primaria IdCorso e NomeCorso, sei sicuro che avrai come risultato della group-by solo ennuple con coppie (IdCorso,NomeCorso) distinte. Se però proietti solo su NomeCorso, che oltretutto non è chiave e può comparire più volte con lo stesso valore nelle ennuple, direi che può avere duplicati. Questo te lo dico conoscendo l'algebra e il suo significato.

    Se vuoi parlare di dipendenze funzionali, come nella soluzione, il prof ha detto che per vedere se una distinct è inutile o no quando è presente una groupby (qualcuno mi corregga se sbaglio), bisogna controllare che gli attributi della Select determinino quelli della groupby. Se così non è, allora è possibile che accada ciò che ho scritto sopra. Se vuoi convincertene, sfrutta la definizione di Dipendenza Funzionale e Applicala a NomeCorso --> IdCorso, NomeCorso e vedi che effettivamente non ci sarebbero duplicati se valesse.

    Allora, la prima parte del tuo discorso mi torna: senza la group-by avrei detto anche io che la distinct sarebbe stata necessaria.
    La seconda parte è esattamente ciò che volevo sapere :D

    Quindi grazie!

Sign In or Register to comment.