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
 
Soluzione esercizi appelli
Clicca QUI per vedere il messaggio nel forum
bog86
Esercizio 1. Si consideri lo schema relazionale seguente, relativo ad una base di dati di gestione corsi (le chiavi primarie delle relazioni sono sottolineate):
CORSO((NomeC,Sezione,) Professore)
ORARIO((NomeC,Sezione,Ora,Giorno))
DISPONIBILITA'((Professore,Giorno,Ora))

Si richiede di formulare in SQL quanto segue:
• trovare i professori che sono disponibili in almeno due giorni diversi.
SELECT professore
FROM disponibilità AS disp
WHERE giorno <> ALL (SELECT giorno FROM disponibilità WHERE disp.professore = disponibilità.professore) ;

• trovare per ogni corso il numero complessivo di ore in cui si tiene.
SELECT nomeC, COUNT(ora) AS NumOre
FROM orario
GROUP BY NomeC

Posson esser corretti? nn fidatevi troppo xchè sn parecchio indietro cn lo studio d basi....
Le chiavi primarie sn fra le parentesi interne!

CaboM.BNA
potresti "RI"sottolineare le chiavi primarie?

cmq la prima non so, ma la secono mi pare sbagliata, poiché ti restituisce il conteggio su Ora del numero di tuple...
[sarebbe corretta se tutte le disponibilita fossero solamente della durata di 1h; poiché avresti n° tuple del ricevimento = n° ore del ricevimento]

P.S. le chiavi esterne suppongo siano quelle che hanno i nomi in comune...

bog86
Ma quindi il secondo come potrei risolverlo? non mi sembra ci sia modo di capire quante ore dura una lezione

CaboM.BNA
ritratto quando detto precedentemente.

Probabilmente per ora ci si riferisce ad un orario.
L'oraio è inteso della durata di un ora: percio per un corso che dura ad es due ore, vi staranno DUE tuple (con STESSO NomeC,Sezione,Giorno) nella tabella.

in questo caso la tua query è corretta. [raggruppango per corso e contando le tuple, ottengo il numero complessivo di ore di quel corso).

per la prima query invece ti proporrei:
code:
SELECT Professore FROM DISPONIBILITA' GROUP BY Professore HAVING COUNT(Giorno) >= 2 ;

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