• Non ci sono risultati.

Compito di Basi di dati 11 settembre 2020 Esercizio 1:

N/A
N/A
Protected

Academic year: 2021

Condividi "Compito di Basi di dati 11 settembre 2020 Esercizio 1:"

Copied!
2
0
0

Testo completo

(1)

Compito di Basi di dati

11 settembre 2020

Esercizio 1:

Sia dato il seguente schema relazionale relativo a reparti e medici:

REP ART O(N ome, Edif icio, P iano, P rimario);

M EDICO(M edicoId, N ome, Cognome, Specializzazione, Genere, AnnoN ascita, Reparto, Citt`aResidenza).

Si assuma che ogni reparto sia identificato univocamente dal suo nome e sia caratterizzato dalla sua collocazione (edificio e piano) e dal capo reparto (primario). Si assuma, inoltre, che un medico possa essere il primario di al pi`u un reparto (quello al quale afferisce). Si assuma, infine, che ogni piano disponibile di ogni edificio sia assegnato ad un unico reparto e che ad un reparto sia assegnato un solo piano di un solo edificio.

Si assuma che ogni medico sia identificato da un codice, che lo individua univocamente fra tutti i medici dell’ospedale, e sia caratterizzato da un nome, un cognome, una specializzazione (per semplicit`a, assumiamo di registrare una e una sola specializzazione per ogni medico), un genere (maschio o femmina), un anno di nascita, un reparto di afferenza (ogni medico sia assegnato ad uno e un solo reparto) e una citt`a di residenza.

Definire preliminarmente le chiavi primarie, le eventuali altre chiavi candidate e, se ve ne sono, le chiavi esterne delle relazioni date. Successivamente, formulare opportune interrogazioni in SQL che permettano di determinare quanto richiesto (senza usare l’operatore CONTAINS e usando solo se e quando necessario le funzioni aggregate):

(a) i reparti privi di medici di sesso maschile, con almeno due medici che risiedono nella citt`a di Trieste;

(b) fra i reparti con almeno un medico di sesso femminile, quelli col minor numero di medici di sesso femminile.

Esercizio 2:

Con riferimento all’Esercizio 1, formulare un’interrogazione in algebra relazionale che permetta di determinare quanto richiesto (senza usare l’operatore di divisione e usando solo se necessario le funzioni aggregate):

(a) i reparti in cui vi `e almeno un medico che risiede in una citt`a in cui non risiede alcun altro medico del reparto.

Esercizio 3:

Si vuole realizzare una base di dati per la gestione delle attivit`a di vendita e di riparazione di un’azienda sulla base del seguente insieme di requisiti.

• L’azienda produce articoli. Ogni articolo `e caratterizzato da un codice, che lo identifica univocamente, una categoria e un prezzo. Gli articoli sono suddivisi in consumabili e sistemi. Ogni sistema `e caratterizzato da un numero di serie.

• Gli acquirenti (i clienti che hanno acquistato gli articoli) sono identificati univocamente da un codice cliente e sono caratterizzati da un indirizzo postale (via, numero civico, codice di avviamento postale e citt`a), uno o pi`u recapiti telefonici e una email. Essi possono stipulare un contratto per l’eventuale riparazione dei sistemi acquistati (ogni contratto riguarda uno e un solo sistema).

• Se un sistema malfunzionante viene portato in azienda da un cliente per la riparazione, viene creato un ordine di riparazione, con un codice univoco, che viene associato al numero di serie del sistema. Un ordine di riparazione fa riferimento ad un unico sistema. L’azienda ha un certo numero di centri di riparazione ai quali fanno riferimento gli ordini di riparazione. Si assuma che ogni ordine di riparazione venga trasmesso ad un solo centro di riparazione.

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 con attributi ragionevoli per ciascuna entit`a (iden- tificando le possibili chiavi) e relazione. Vanno specificati accuratamente i vincoli di cardinalit`a e partecipazione

1

(2)

di ciascuna relazione. Si definiscano anche eventuali regole di gestione (regole di derivazione e vincoli di integrit`a) necessarie per codificare alcuni dei requisiti attesi del sistema.

Esercizio 4:

Nell’ambito delle transazioni concorrenti SQL, si descriva l’anomalia dell’inserimento fantasma e si spieghi quali metodi possono essere impiegati per evitarla. Successivamente, scrivere uno schedule di due transazioni concorrenti SQL che illustri tale anomalia.

Si consideri lo standard SQL:1999. Indicare quali dei quattro livelli di isolamento di tale standard impediscono l’anomalia dell’inserimento fantasma, motivando la risposta.

Riferimenti

Documenti correlati

Si assuma, infine, che il fornitore possa fornire pi` u prodotti ad uno stesso cliente e che uno stesso prodotto possa essere fornito a pi` u clienti.. Non si escluda la possibilit`

Si assuma che ogni insegnamento sia identificato univocamente da un codice e sia caratterizzato dal codice del docente che lo tiene, dall’area disciplinare in cui si colloca

Si assuma che ogni filiale sia identificata univocamente dal suo codice e sia caratterizzata dalla citt` a in cui si trova, dal codice fiscale del direttore e dall’ammontare

(c) gli atleti che hanno partecipato ad un soprainsieme proprio delle edizioni della maratona di New York alle quali ha partecipato l’atleta MLNSBS86H14L666H (si assuma

(fc Si determinino dimensione e struttura di un B-albero, con campo di ricerca il campo chiave primaria V , puntatore ai dati di dimensione pari a 7 byte e puntatore ausiliario

• ogni proiezione di un film sia caratterizzata univocamente dalla data, dall’ora e dalla sala (di un dato cinema) in cui ha luogo (si assuma che nella stessa data e nella stessa

Si assuma che ogni studente sia identificato univocamente dal suo codice fiscale e sia caratterizzato da nome, cognome, anno di nascita e classe (ogni classe sia identificata da

• Ogni albergo ` e identificato univocamente dal suo nome ed ` e caratterizzato da una via, un numero civico, un proprietario (che pu` o essere una persona fisica o un’azienda),