Il 0% ha trovato utile questo documento (0 voti)
19 visualizzazioni8 pagine

Esame Basi Di Dati Sistemi Informativi 16-06-22 Soluzione

Il documento è un compito di esame per il corso di Basi di dati e sistemi informativi aziendali, contenente esercizi di teoria, algebra relazionale e SQL. Gli studenti devono rispondere a domande e risolvere interrogazioni basate su relazioni di database e progettazione di basi di dati. Include anche la richiesta di un diagramma E-R e uno schema logico relazionale per una base di dati del Politecnico di Torino.

Caricato da

Prajol Martorell
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
19 visualizzazioni8 pagine

Esame Basi Di Dati Sistemi Informativi 16-06-22 Soluzione

Il documento è un compito di esame per il corso di Basi di dati e sistemi informativi aziendali, contenente esercizi di teoria, algebra relazionale e SQL. Gli studenti devono rispondere a domande e risolvere interrogazioni basate su relazioni di database e progettazione di basi di dati. Include anche la richiesta di un diagramma E-R e uno schema logico relazionale per una base di dati del Politecnico di Torino.

Caricato da

Prajol Martorell
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 8

16 Giugno 2022

Appello di
Basi di dati e sistemi informativi aziendali
nota: Consegnare il testo completo di tutti i fogli, ricordandosi di riportare nell’apposito spazio
nome, cognome e numero di matricola.

Nome
Cognome
Matricola
Compito 1

Teoria
Per ogni domanda riportare al più una risposta per ogni esercizio usando LETTERE MAIUSCOLE.
A tutti gli effetti (in caso di ambiguità o di risposte mancanti) saranno conteggiate solo le risposte
riportate in prima pagina nell’apposita tabella. La risposta corretta per ogni domanda è valutata 1
punto.

Esercizio 1 2 3 4 5 6
Risposta

Domanda 1 (1 punto).
...

Domanda 2 (1 punto).
...

Domanda 3 (1 punto).
...

Domanda 4 (1 punto).
...

Domanda 5 (1 punto).
...

Domanda 6 (1 punto).
...

1
Figura 1: Algebra Soluzione

Algebra
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):

CLIENTE(CF, Nome, Cognome, Telefono)


HOTEL(IdHotel, Nome, Indirizzo, Città, NStelle)
SOGGIORNO(CF, IdHotel, Data)

Esprimere la seguente interrogazione in algebra relazionale.

1. Esercizio (4 punti):
Visualizzare il nome e il cognome dei clienti che hanno soggiornato solo in alberghi a 4 stelle.

2
SQL
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):

RICETTA (CodR, Nome, TipoRicetta)


INGREDIENTE (CodI, Nome, TipoIngrediente, KcalPerUnità)
INGREDIENTE RICETTA (CodR, CodI, Quantità)

Esprimere le seguenti interrogazioni in linguaggio SQL.

1. Esercizio (3 punti):
Per ogni ingrediente che è stato utilizzato in almeno una ricetta di tipo “dolce”, ma che non è mai
stato utilizzato nelle ricette di tipo “antipasto” in quantità compresa tra “5” e “10”, mostrare
nome, tipo e Kcal per unità.
SOLUZIONE

SELECT DISTINCT Nome, TipoIngrediente, KcalPerUnità


FROM INGREDIENTE I
WHERE I.CodI IN (SELECT IR.CodI
FROM INGREDIENTE_RICETTA IR, RICETTA R
WHERE IR.CodR = R.CodR
AND R.TipoRicetta = "dolce")
AND I.CodI NOT IN (SELECT IR.CodI
FROM INGREDIENTE_RICETTA IR, RICETTA R
WHERE IR.CodR = R.CodR
AND R.TipoRicetta = "antipasto"
AND Quantità >= 5
AND Quantità < 10);

3
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):

RICETTA (CodR, Nome, TipoRicetta)


INGREDIENTE (CodI, Nome, TipoIngrediente, KcalPerUnità)
INGREDIENTE RICETTA (CodR, CodI, Quantità)

Esprimere le seguenti interrogazioni in linguaggio SQL.

2. Esercizio (3 punti): Visualizzare il nome delle ricette di tipo “antipasto” che sono composte da
almeno 3 ingredienti di tipo “verdura”.
SOLUZIONE

SELECT R.Nome
FROM RICETTA R, INGREDIENTE I, INGREDIENTE_RICETTA IR
WHERE IR.CodR = R.CodR
AND I.CodI = IR.CodI
AND R.TipoRicetta = "antipasto"
AND I.TipoIngrediente = "verdura"
GROUP BY IR.CodR, R.Nome
HAVING COUNT(*) >= 3

4
Sono date le relazioni seguenti (le chiavi primarie sono sottolineate):

RICETTA (CodR, Nome, TipoRicetta)


INGREDIENTE (CodI, Nome, TipoIngrediente, KcalPerUnità)
INGREDIENTE RICETTA (CodR, CodI, Quantità)

Esprimere le seguenti interrogazioni in linguaggio SQL.

3. Esercizio (5 punti): Per ogni ricetta di tipo “dolce” che contiene il maggior numero di ingredienti,
rispetto alle ricette di tipo “dolce”, visualizzare il nome, il tipo della ricetta ed il numero di
ingredienti.
SOLUZIONE

SELECT Nome, TipoRicetta, COUNT(*)


FROM RICETTA R, INGREDIENTE_RICETTA IR
WHERE R.TipoRicetta = "dolce"
AND IR.CodR = R.CodR
GROUP BY R.CodR, Nome, TipoRicetta
HAVING COUNT(*) = (SELECT MAX(conteggio)
FROM (SELECT COUNT(*) conteggio
FROM RICETTA R1, INGREDIENTE_RICETTA IR1
WHERE R1.CodR = IR1.CodR
AND R1.Tipo = "dolce"
GROUP BY R1.CodR) calcolo)

5
Progettazione

Si vuole realizzare la base di dati del Politecnico di Torino.

• La base dati descrive le persone immatricolate presso l’Ateneo. Le persone sono identificate dalla
matricola e se ne conosce il nome, il cognome e la data di nascita. Le persone possono essere
studenti, docenti o altro. Per i docenti si conosce il ruolo, mentre per gli studenti si conosce il
corso di laurea.

• I corsi tenuti presso il Politecnico sono identificati da un codice univoco e sono caratterizzati
dal nome del corso e dal numero di crediti formativi. Un docente può insegnare in più corsi e lo
stesso corso può essere insegnato da più docenti.

• Le aule del Politecnico sono identificate da un codice univoco e se ne conosce il piano e la lista
di dispositivi audiovisivi disponibili (microfono, proiettore, lavagna grafica, etc.).

• Si vuole tenere traccia delle lezioni fatte per ogni corso e l’aula in cui si tengono. Si consideri
che nella stessa aula non si possono svolgere contemporaneamente più lezioni per lo stesso corso
o per corsi diversi.

• Si vuole inoltre tenere traccia degli esami sostenuti dagli studenti e del voto conseguito. Si
consideri che uno studente può effettuare più esami nello stesso giorno per corsi diversi, che può
sostenere più volte l’esame per lo stesso corso in date diverse ma che non può ripetere l’esame
per lo stesso corso nella stessa data.

Figura 2: ER Soluzione

6
1. Esercizio (7 punti). Descrivere con un diagramma E-R lo schema concettuale di una base di dati
per tale applicazione.

7
2. Esercizio (3 punti). Costruire uno schema logico relazionale normalizzato per la stessa base di
dati. Definire i vincoli d’integrità referenziale per 3 relazioni a scelta tra quelle definite nello
schema logico.
Persona(Matricola, Nome, DataN, Tipo, Ruolo*, CorsoLaurea*)
Corso (CodC, Nome, Crediti)
Aula (CodA, Piano)
Dispositivi (CodD)
Dispone (CodA, CodD)
Lezione (CodA, Data, Ora, CodC)
Tempo (Data)
Insegna (Matricola, CodC)
Esame (Matricola, CodC, Data, Voto)
Vincoli:
Insegna (Matricola) reference Persona (Matricola)
Insegna (CodC) reference Corso (CodC)
Dispone (CodA) reference Aula (CodA)
Esame (Matricola) reference Persona (Matricola)
Esame (CodC) reference Corso (CodC)

Potrebbero piacerti anche