Questionario di Basi di Dati e Sistemi Informativi



Scaricare 15.75 Kb.
22.05.2018
Dimensione del file15.75 Kb.



Questionario di Basi di Dati e Sistemi Informativi

Parziale 22 Dicembre 2007


(Prof.ssa S. Costantini)

COGNOME....................…...........NOME........……...…………......MATR..………...


CRITERI DI VALUTAZIONE DELLA PROVA

Ogni parte del questionario del Corso di Basi di Dati è composto nel modo seguente:




  • 6 domande chiuse, da 2 punti l’una (totale 12 punti), 0 punti quelle senza risposta;

  • 2 domanda aperte, obbligatorie, da 4 punti (totale 8 punti), -2 punti per ogni domanda non svolta o gravemente insufficiente o incongruente;

  • 2 esercizi, obbligatori, da 5 punti l’uno (totale 10 punti), -3 punti per ogni esercizio non svolto o gravemente insufficiente;

Nella domanda aperta, indicata con A, vengono valutati sia il contenuto che la forma della risposta, con riferimento alla precisione terminologica ed alla completezza. Non sono ammesse risposte generiche: si richiede una risposta precisa e se necessario formale.

Ogni esercizio, indicato con E, deve essere corredato dallo svolgimento e corrisponde ad un punteggio che dipende della correttezza e completezza dello svolgimento. Gli esercizi dove venga fornito soltanto il risultato saranno considerati non svolti.
E’ obbligatorio riportare le soluzioni negli appositi spazi dei fogli allegati (utilizzando eventualmente anche il retro dei fogli). Non si accettano compiti consegnati in brutta copia. Si correggono solo compiti svolti in calligrafia comprensibile.


  1. Supponiamo che l’espressione Y (B<0 ( Z (A>20 (R)) sia corretta. Essa non è equivalente a Y (A>20 AND B<0 Z(R)) se:


  1. se l’attributo B non fa parte dell’insieme Z;

  2. se l’attributo A non fa parte dell’insieme Z;

  3. se l’attributo A o l’attributo B non fanno parte dell’insieme Z.




  1. Una vista non materializzata può essere aggiornata, nel senso di modificare/aggiungere tuple?

  1. in generale sì;

  2. in generale no;

  3. dipende da quale tipo di vista si tratta.




  1. Se applichiamo nella progettazione concettuale una trasformazione che suddivide un’entità E in due entità legate da una correlazione, stiamo applicando: (a)

  1. una stategia top-down;

  2. una strategia bottom-up;

  3. una strategia inside-out.




  1. Se applichiamo nella progettazione concettuale una trasformazione che comporta un’aggregazione di attributi su entità, stiamo applicando: (b)

  1. una stategia top-down;

  2. una strategia bottom-up;

  3. una strategia inside-out.




  1. Il calcolo relazionale su domini è un linguaggio:

a) procedurale perché bisogna descrivere i passi per arrivare alla risposta;

b) dichiarativo perché si definisce logicamente l’insieme di tuple appartenenti alla risposta;

c) procedurale perché si devono utilizzare molte variabili.


  1. Nel calcolo relazionale su domini il join si effettua:

a) utilizzando un opportuno operatore;

b) definendo la condizione di join negli attributi delle tuple di interesse;

c) usando variabili condivise o mettendo in corrispondenza le variabili opportune.


  1. A Che cosa è una vista, o schema esterno? (in breve):

Una vista è l’astrazione di una parte della base di dati che coinvolge e rielabora i dati reali della limitatamente alla porzione interessata. Le viste vengono chiamate “schemi esterni” in quanto spesso vengono create in base alle esigenze di utenti che non possono/non devono avere accesso all’intero database. Le viste sono in generale non materializzate, ossia i dati da presentare all’utente vengono di volta in volta ottenuti mediante una opportuna interrogazione che definisce la vista stessa.


  1. A Si discutano in breve i vantaggi e svantaggi relativi alla presenza di ridondanza in uno schema E-R nella forma di dati derivati, ossia attributi o associazioni il cui valore potrebbe essere ottenuto mediante operazioni su componenti già presenti nello schema (ad es. il numero di abitanti di una città, che potrebbe essere ottenuto contando le istanze dell’associazione residenza, assumendo che essa sia presente). Come si decide se mantenere o eliminare una ridondanza?

Vantaggi: riduzione del numero di accessi necessari ad ottenere il dato derivato. Svantaggi: maggior utilizzo di memoria, e necessità di operazioni addizionali per mantenere aggiornato il valore dei dati derivati. La decisione sul mantenere o eliminare una ridondanza viene presa: calcolando nei due casi (con/senza ridondanza) il costo i memoria ed in accessi relativi alle operazioni coinvolte; scegliendo la soluzione più favorevole (specie in termini di accessi, visto che il costo in termini di memoria è spesso trascurabile).


  1. E Si definisca uno schema E-R dove le persone possono essere lavoratori o studenti, dove gli studenti devono seguire almeno un Corso. Si utilizzi una opportuna gerarchia di generalizzazione. Si ricordi di definire gli identificatori e di attribuire l’opportuna cardinalità per la/le associazioni. Si definisca lo schema ristrutturato in modo tale da preservare la cardinalità dell’associazione studenti-corsi.


Si può accorpare la “figlia” relativa ai lavoratori nelle persone, ma occorre mantenere quella relativa agli studenti introducendo un’associazione fittizia.


  1. E Si consideri una Base di Dati contenente le tabelle definite dal seguente schema: ATLETA(Nome,Matricola,Specialità)
    GARA(Codice,Nome)

PARTECIPAZIONE(MatrA,CodG,Data,Tempo)

dove vi sono atleti contrassegnati da una Matricola e gare di velocità contrassegnate da un Codice. Un atleta può partecipare ad una gara in una certa data riportando un Tempo. Si risponda a propria scelta ad una delle seguenti interrogazioni:

* restituire il nome degli atleti che non hanno gareggiato in alcuna gara in data DD1;

* restituire il nome dell’atleta che nella gara con codice Gxy in data DD2 ha riportato il miglior tempo


Per la prima, si trovano in S1 le matricole degli atleti che hanno gareggiato, si calcola S2=PARTECIPAZIONE-S1 e infine mediante un join con ATLETA si ricavano i nomi. Pel la seconda, si effettua in S1 un join di PARTECIPAZIONE con se stessa (rinominata in PARTECIPAZIONE1) selezionando le tuple con atleti diversi e Tempo>Tempo1, si trova S2=PARTECIPAZIONE-S1 e infine mediante un join con ATLETA si ricava il nome.




©astratto.info 2017
invia messaggio

    Pagina principale