Sei sulla pagina 1di 7

Domande esame scritto Base di Dati

1. Domanda numero 1:
Selezionare quale tra le seguenti affermazioni definisce correttamente un'associazione nel modello E/R:
1. una proprietà o descrizione di un attributo
2. nessuna delle precedenti
3. un legame tra due o più entità
4. Un insieme di attributi tra esse correlati

NB:
1) L’affermazione 1 si riferisce agli attributi dell’entità
2) L’affermazione 2 è troppo generica e non fornisce informazioni
3) L’affermazione 3 è giusta perché nel modello Entità-Relazione (E/R), un'associazione rappresenta
una connessione logica tra due o più entità. Le associazioni vengono utilizzate per descrivere le
relazioni tra le entità del modello E/R e per mostrare come le entità sono correlate tra loro. Ad
esempio, un'associazione può essere utilizzata per rappresentare una relazione tra un'entità
"Studente" e un'entità "Corso", dove ogni studente può iscriversi a uno o più corsi e ogni corso può
avere uno o più studenti iscritti.
4) L’affermazione 4 si riferisce agli insiemi di attributi dell’entità

2. considera lo schema seguente:


Fornitori ( fid.integer, fornitore.String, indirizzo.String)
Prezzi (pid.Integer, pnome.String, colore.String)
CATALOGO (fid.integer, pid.integer, costo.real)
Dove:

 PID di fornitori è uguale a pid di catalogo


 Pid di prezzi è uguale a pid di catalogo
I campi chiave sono sottolineati e il dominio e il dominio di ciascun campo è indicato dopo il nome del
campo selezionare quale tra le seguenti è la giusta interrogazione scritta in algebra relazionale per trovare i
nomi dei fornitori(fnome) che forniscono PEZZI Rossi
PROJ nome(PROJ sd (PROJ pid SEL codice =’rosso’ PEZZI) JOIN CATALOGO) JOIN
FORNITORI)

3. Indicare quale tra le seguenti affermazioni è sempre vera


a. gli utenti casuali utilizzano transazioni PREDEFINITE
b. I terminalisti progettano la base di dati
c. i progettisti delle applicazioni utilizzano…
d. nessuna delle precedenti

4. Dato lo schema di base di dati:


a. Film (CodFilm, Tit, Regista, Anno, CostoNoleggio)
b. Artista (Cod, Cogno, Nome, Sesso, DataNasc, nazionalità)
c. Interpretazione (CodFilm, CodAttore, Personaggio)
Con i seguenti vincoli di integrità referenziale:
Film.regista -> Artista.Cod
Interpretazione.CodFilm -> Film.CodFilm
Interpretazione.CodAttore -> Artista.Cod
Quali interrogazioni di calcolo relazionale su tuple con dichiarazioni di range permette di trovare i titoli
dei film nei quali il regista è stato anche interprete?

{t.Tit | t(Film) | Ǝ i(interpretazione) (t.CodFilm=i.CodFilm ∧ t.regista=i.CodAttore)}

Oppure una soluzione ancora più coretta sarebbe:


{ t.Tit | t(Film) | ∃ a(Artista), i(Interpretazione) (t.Regista=a.Cod ∧ t.CodFilm=i.CodFilm ∧
i.CodAttore=a.Cod) }

Questa espressione seleziona le tuple dalla tabella Film dove il regista corrisponde al codice dell'attore
nella tabella Artista, e dove esiste una corrispondenza tra il codice del film nella tabella Film e nella
tabella Interpretazione, e il codice dell'attore nella tabella Artista e nella tabella Interpretazione. Infine,
viene restituito solo il titolo del film come risultato della proiezione

5. Nella fase di traduzione dal modello E/R al modello relazionale di una entità con identificatore esterno,
la chiave della relazione solitamente è sempre composta solamente dalla chiave della relazione
identificante
a. Vero
b. Falso
NB:
Nella fase di traduzione dal modello E/R al modello relazionale, quando si ha un'entità con identificatore
esterno, la chiave della relazione può essere composta da due parti: la chiave della relazione identificante
(che diventa una chiave esterna nella tabella dell'entità con identificatore esterno) e l'identificatore esterno
stesso, che diventa una chiave primaria nella tabella dell'entità. In questo modo, si garantisce l'unicità delle
tuple nella tabella dell'entità con identificatore esterno e si mantiene la relazione con l'entità che identifica
la chiave esterna.
6. Dato il seguente schema relazionale:
Prodotto (barcode varchar(10), nome varchar(50) UNIQUE, marca varchar(30), prezzo float(8,2))
Telefono (numero varchar(20), utente varchar(50))
Fornitore (regionesociale varchar(50), via varchar(50), civico varchar(5), citta varchar(20), email
varchar(50))
Ordine (barcode varchar(10), data date, fornitore varchar(50), quantità int, costo float(8,2))

Nota: Primary key di ordine -> (barcode, data, fornitore)


Con i seguenti vincoli integrità Referenziale tra:

 Ordine.fornitore e Fornitgore.ragionesociale;
 Ordine.barcode e Prodotto.barcode;
 Telefono.utente e Fornitore.ragionesociale;
Scrivere la query per:
Estrarre la ragione sociale dei fornitori che hanno sede nella città di Ancona, i risultati devono essere
ordinato per ragione sociale crescente
a. select fornitore.ragionesociale, fornitore.città
from fornitore
where fornitore.citta=’Ancona’
order by fornitore.ragionesociale

7. Individua la risposta corretta:


a. Si parla di anomalia di aggiornamento quando non è possibile inserire una nuova n-plua in una
relazione senza aggiornare i valori di alcune n-ple già esistenti
b. Se una relazione presenta ridondanza allora
c. Nessuna delle altre risposte
d. Una relazione in forma normale di Boyce-Code

8. La frase:
L’esame sostenuto da uno studente deve essere previsto nel proprio piano di studi.
Esprime un vincolo:
a. Inter-relazionale
b. Intra-relazionale
c. Di tupla
d. Di dominio
9. Le tuple di una relazione, nel modello relazionale dei dati:
a. Devono essere ordinate in base ad un attributo
b. Sono ordinate casualmente
c. ?
d. ?
NB: Il modello relazionale è basato sul concetto di relazione matematica, ovvero il sotto insieme del
prodotto cartesiano. Essendo un insieme, non esiste il concetto di ordinamento; quindi, non deve esserci un
ordine per definire il significato delle tuple. Le relazioni in un modello relazionale sono definite da un
insieme di attributi o campi, che rappresentano le colonne della tabella, e un insieme di tuple, che
rappresentano le righe. Ogni tupla corrisponde ad un record della base di dati e contiene i valori degli
attributi per quel record.

10. Il costo di una operazione su una base di dati dipende da:


a. Accessi e frequenza
b. Velocità di lettura su disco
c. Numero di accessi e frequenza dell’operazione

11. Siano:

Risposta:
(m1,M1)=(1,N) & (m2,M2) = (1,N)

12. Indicare quale dominio SQL utilizzare per rappresentare il valore:


“2004-11-25”
Risposta:
DATE
13. Mettere in ordine, con un livello di astrazione crescente i seguenti schemi ottenuti nella progettazione di
una base di dati:
a. 1° Schema concettuale
b. 2° Schema logico
c. 3° Schema fisico
d. 4° Schema interno
1. Schema concettuale: è il primo schema che viene creato durante la progettazione di una base di dati
e descrive le entità e le relazioni tra di esse in modo indipendente dalla tecnologia di
implementazione del database. Questo schema è realizzato mediante l'utilizzo di un diagramma ER
(Entity-Relationship) e rappresenta la struttura concettuale della base di dati.
2. Schema logico: è il secondo schema della progettazione di una base di dati, che traduce lo schema
concettuale in una struttura di dati compatibile con il modello di dati utilizzato dal DBMS
(Database Management System) selezionato. Lo schema logico descrive come le entità e le relazioni
del modello concettuale sono rappresentate in tabelle all'interno del database.
3. Schema fisico: è il terzo schema della progettazione di una base di dati, che rappresenta la struttura
fisica della base di dati sul disco, cioè come le tabelle sono fisicamente organizzate e memorizzate.
Questo schema tiene conto delle specifiche del DBMS utilizzato e delle prestazioni che si desidera
ottenere dalla base di dati.
4. Schema interno: è il quarto schema della progettazione di una base di dati, che rappresenta la
struttura fisica dei dati sul supporto di memorizzazione. Questo schema descrive i dettagli di come i
dati vengono effettivamente memorizzati, come gli accessi ai dati sono gestiti dal sistema operativo,
come i dati sono indicizzati e organizzati nei file di dati, ecc.
14. Date le tabelle prodotto e StabilimentoProduzione, scegliere il risultato corretto per l'interrogazione:
Select a.codice
From prodotto as a
Join StabilimentoProduzione as b on a.stabilimento= b.numero
Where b.citta in (select citta
from StabilimentoProduzione
where numero>5) or b.citta in (select citta
from StabilimentoProduzione
group by citta)

Risposte:
a. Nessuno
b. (C01)
c. Nessuna delle altre
d. (A01,), (B05), (A06), (B03), (C01)

NB: nella query della domanda è presente un “or”, in SQL è un operatore logico che viene utilizzato per
combinare due o più condizioni nella clausola WHERE di una query. L'operatore "OR" restituisce un
risultato vero se almeno una delle condizioni specificate nella clausola WHERE è vera

Ad esempio, supponiamo di avere una tabella "Prodotti" con le colonne "Nome", "Prezzo" e "Disponibilità".
Per selezionare tutti i prodotti che hanno un prezzo inferiore a 50€ o sono disponibili in magazzino,
possiamo utilizzare la seguente query:
SELECT *
FROM Prodotti
WHERE Prezzo < 50 OR Disponibilità = 'Sì';
Questa query seleziona tutte le righe dalla tabella "Prodotti" dove il prezzo è inferiore a 50€ oppure il
prodotto è disponibile in magazzino. L'operatore "OR" ci consente di selezionare le righe che soddisfano
almeno una delle due condizioni specificate nella clausola WHERE.

15. Dato lo schema ER e la tavola dei volumi, valutare se conviene mantenere la ridondanza TOT ORDINE
sulle entità ordini per l'operazione di inserimento di un nuovo ordine
Risposte:
a. SÌ se la frequenza dell'operazione è maggiore di 10
b. SÌ sempre
c. NO indipendentemente dalla frequenza
d. NO se la frequenza dell'operazione è maggiore di 10

Potrebbero piacerti anche