1.Facile
Un INNER JOIN restituisce:
- ATutte le righe della tabella di sinistra, con NULL dove non c'è corrispondenza
- BTutte le righe di entrambe le tabelle
- CLe righe che non corrispondono
- DSolo le righe con valori corrispondenti in entrambe le tabelle
2.Facile
In che cosa UNION ALL differisce da UNION?
- AUNION ALL funziona solo su una tabella
- BUNION ALL ordina il risultato
- CUNION ALL mantiene le righe duplicate
- DUNION ALL rimuove le righe duplicate
3.Facile
Che cos'è una chiave primaria (primary key)?
- ALa prima colonna di ogni tabella
- BUna password per il database
- CUna colonna o un insieme di colonne che identifica in modo univoco ogni riga
- DUna colonna che può contenere valori duplicati ma non deve mai contenere NULL
4.Media
Gli studenti possono seguire molti corsi e i corsi hanno molti studenti. Come si modella questa situazione con le tabelle?
- AFondendo studenti e corsi in un'unica tabella
- BCon una tabella di associazione che contiene chiavi esterne verso studenti e corsi
- CCon un elenco di id dei corsi memorizzato in una sola colonna
- DCon una colonna di chiave esterna course_id nella tabella degli studenti che punta a courses
5.Media
La seconda forma normale (2NF) elimina:
- ALe chiavi esterne
- BTutti i valori NULL
- CLe dipendenze parziali delle colonne non chiave da una parte di una chiave composta
- DLe dipendenze transitive tra colonne non chiave attraverso un'altra colonna non chiave
6.Media
Una tabella employees ha una colonna manager_id che fa riferimento a un altro dipendente. Come si elenca ogni dipendente accanto al nome del suo responsabile?
- ACombinare la tabella con se stessa usando UNION ALL e un filtro WHERE
- BCreando una seconda copia della tabella su disco
- CUsando soltanto GROUP BY manager_id
- DUnendo la tabella employees con se stessa usando due alias
7.Difficile
La transazione T1 blocca la riga A e attende la riga B, mentre T2 blocca la riga B e attende la riga A. Che cosa fa un tipico DBMS?
- AFonde le due transazioni in una sola
- BRileva il deadlock e interrompe una transazione scelta come vittima
- CLascia entrambe le transazioni in attesa finché una delle due non esegue il commit normalmente
- DConferma entrambe le transazioni contemporaneamente
8.Difficile
Perché molti DBMS usano il locking a due fasi stretto (strict 2PL), mantenendo i lock esclusivi fino al commit?
- AImpedisce gli abort a cascata, perché nessuno può leggere scritture non confermate
- BRende impossibili i deadlock
- CPermette alle transazioni di leggere dati sporchi in sicurezza
- DElimina la necessità di un log delle transazioni
Soluzioni
- 1. D · Solo le righe con valori corrispondenti in entrambe le tabelle
- 2. C · UNION ALL mantiene le righe duplicate
- 3. C · Una colonna o un insieme di colonne che identifica in modo univoco ogni riga
- 4. B · Con una tabella di associazione che contiene chiavi esterne verso studenti e corsi
- 5. C · Le dipendenze parziali delle colonne non chiave da una parte di una chiave composta
- 6. D · Unendo la tabella employees con se stessa usando due alias
- 7. B · Rileva il deadlock e interrompe una transazione scelta come vittima
- 8. A · Impedisce gli abort a cascata, perché nessuno può leggere scritture non confermate
Soluzioni complete passo passo: esercitati su questo argomento su examproblems.com.