• Non ci sono risultati.

Compito di Basi di Dati 15 giugno 2007

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di Dati 15 giugno 2007"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di Dati

15 giugno 2007

Esercizio 1:

Sia dato il seguente schema relazionale:

Docente(CodiceF iscale, F ascia, SettoreScientif ico);

F acolt`a(N ome, P reside, Recapito);

Insegna(Docente, F acolt`a, CodiceCorso).

Si assuma che ogni docente sia identificato univocamente dal suo codice fiscale e sia caratterizzato dalla fascia (ordinario, associato o ricercatore) e dal settore scientifico (INF01, MAT05, ..). Si assuma, inoltre, che ogni facolt`a sia identificata univocamente dal suo nome (Scienze, Economia, ..) e sia caratterizzata dal nome del docente che ricopre il ruolo di preside e dal recapito. Infine, si assuma che ogni corso sia identificato univocamente dal suo codice, che ogni corso venga tenuto da un unico docente presso una data facolt`a e che un docente possa tenere pi`u corsi presso la stessa facolt`a o presso facolt`a diverse.

Definire preliminarmente le chiavi primarie e le eventuali chiavi esterne delle relazioni date. Successiva- mente, formulare opportune interrogazioni in SQL che permettano di determinare (utilizzando le funzioni aggregate solo se necessario):

(a) i presidi delle facolt`a presso cui insegnano uno o pi`u docenti della fascia ricercatore;

(b) per ogni facolt`a, il numero di corsi tenuti da docenti di prima fascia (fascia ordinario) o di seconda fascia (fascia associato);

(c) i docenti che tengono corsi presso un’unica facolt`a.

Esercizio 2:

Un’azienda che si occupa della prenotazione dei biglietti per eventi musicali (concerti) organizzati in di- verse citt`a italiane vuole commissionare la realizzazione di una base di dati per la gestione della prevendita dei biglietti attraverso le diverse agenzie pubblicitarie cui `e associata. Le informazioni da memorizzare sono le seguenti.

I concerti sono tenuti da solisti o gruppi musicali in diverse citt`a italiane, in ambienti diversi (teatri, palazzetti, stadi, etc.) e in date diverse. In un dato giorno, uno stesso solista/gruppo svolge al pi`u un concerto. Ogni solista/gruppo pu`o svolgere pi`u concerti nella stessa citt`a, nello stesso ambiente o in ambienti diversi. Il numero di posti disponibili per un dato concerto pu`o ovviamente variare da ambiente ad ambiente, ma anche in uno stesso ambiente pu`o variare da concerto a concerto (se l’evento `e un concerto di musica classica si sistemano delle sedie e i posti diminuiscono, se l’evento `e un concerto rock non vengono utilizzate le sedie e i posti aumentano). Analogamente il prezzo del biglietto varia da concerto a concerto (per semplicit`a, assumiamo che il prezzo del biglietto sia unico per ogni concerto).

Ad ogni agenzia `e associato un codice identificativo e deve essere possibile stabilire quali prenotazioni sono state effettuate da ogni singola agenzia per ogni singolo concerto. Di ogni concerto, deve essere possibile controllare in ogni istante quanti posti sono gi`a stati prenotati e quanti sono ancora liberi. Occorre,

1

(2)

inoltre, poter determinare quanti biglietti ogni agenzia ha venduto per un determinato concerto (per poter dividere tra le varie agenzie i diritti di prevendita). Infine, bisogna poter stabilire per ogni ambiente quanti biglietti sono stati venduti per un determinato concerto di un dato solista/gruppo musicale.

Si definisca uno schema Entit`a-Relazioni che descriva il contenuto informativo del sistema, illustrando con chiarezza le eventuali assunzioni fatte.

Lo schema dovr`a essere completato, qualora necessario, con attributi ragionevoli per ciascuna entit`a (identificando le possibili chiavi) e relazione.

Vanno specificati accuratamente i vincoli di cardinalit`a e partecipazione di ciascuna relazione.

Se necessario, si introducano appropriate regole aziendali (regole di derivazione e vincoli di integrit`a).

Riferimenti

Documenti correlati

CREATE TABLE IMPIEGATI ( CODICE SMALLINT UNIQUE, NOME VARCHAR(30),. COGNOME VARCHAR(30),

referenziale tra i valori di un attributo nella tabella in cui è definito (tabella interna) ed i valori di un attributo in una seconda tabella (tabella esterna). NOTA:

me Tipo Dipartimento Stipendio 124 Michele Micheli Associato Fisica 20000 125 Lucia Di Lucia Ordinario Fisica 30000 129 Michele Bianchi Associato Fisica 20000 Codice Nome Cogno. me

Nel caso precedente, la query interna restituisce solo un valore … Cosa accade se la query interna restuisce più di un valore.. Gli operatori di confronto <,=,> non

123 Marco Marchi Associato Chimica 20000 124 Michele Micheli Associato Fisica 20000 125 Lucia Di Lucia Ordinario Fisica 30000 126 Dario Rossi Ordinario Informatica 35000 127 Mario

Oltre ad i costrutti base di SQL2 visti fin qui, esistono molti costrutti avanzati (i) definiti in SQL3 e/o (ii) dipendenti dallo specifico DBMS.. Ø  Procedure

Record di transizione  tengono traccia delle operazioni svolte da ciascuna transizione sul DBMS. Record di sistema  tengono traccia delle operazioni di

Quali tipi di dato e’ possibile memorizzare in un DB MySQL?..  Tipi di dato numerici supportati da