Domande ricorrenti BD
1. Si illustrino le motivazioni e la struttura dell’architettura ANSI-SPARC per DBMS in
particolare per quanto riguarda l’indipendenza dei dati.
L’architettura ANSI-SPARC è usata principalmente per garantire l’indipendenza dei dati
dalla loro rappresentazione fisica. Essa si suddivide in 3 livelli:
Schema esterno: descrizione di una parte della base di dati (utilizzo di viste) in un
modello logico
Schema logico: descrizione della base di dati nel modello logico principale del DBMS
Schema fisico: rappresentazione dello schema logico per mezzo di strutture fisiche di
memorizzazione.
Questa architettura permette indipendenza:
Fisica: il livello logico ed esterno sono indipendenti da quello fisico, dunque posso
modificare le strutture fisiche di memorizzazione senza modificare quelle logiche.
Logica: il livello esterno è indipendente da quello logico perché le modifiche allo
schema logico che lascino inalterato lo schema esterno sono trasparenti ed
aggiunte/modifiche di schemi esterni non richiedono modifiche del livello logico.
2. Si definisca il concetto di vista, la relazione tra vista e modello ANSI SPARC e infine si
spieghi come le viste possono essere impiegate utilmente nel gestire autorizzazioni sui
dati nei database.
Una vista offre la consultazione di tabelle virtuali, ossia tabelle che non hanno una
corrispondenza con le tabelle vere e proprie del DB; possono essere create a partire da una
singola tabella (viste semplici) o da più tabelle (viste complesse) e possono proiettarne solo
alcuni campi.
Le viste possono contenere altre viste, basta che non ci sia mutua dipendenza (ricorsione);
inoltre sono indispensabili per esprimere query con operatori aggregati nidificati.
Possiamo collocare le viste in corrispondenza del livello esterno dell’architettura ANSI-
SPARC: forniscono una visione parziale di tutto lo schema logico del DB.
Le viste possono essere utilizziate per gestire i permessi sui dati; ad esempio, se non voglio
far visualizzare a tutti gli utenti del DB tutti i campi di una data tabella, posso creare una
vista dei soli campi di interesse e dare a specifici utenti i permessi per accedere alla vista
creata e non a tutta la tabella.
3. Definire cosa si intende per transazione e cosa sono le proprietà ACID.
Una transazione è un’unità logica di elaborazione su una base di dati che comprende una o più
operazioni di read/write.
È bene che una transazione soddisfi le proprietà ACID:
Atomicità: le operazioni di una singola transazione o vengono eseguite tutte o nessuna.
In caso di successo viene eseguito il commit della transazione, altrimenti si ripristina lo
stato precedente attraverso un rollback.
Consistenza: ogni transazione porta il DB da uno stato consistente ad un altro stato
consistente, preservando i vincoli di integrità. È possibile verificare la consistenza a
seguito di ogni singola operazione della transazione o soltanto in corrispondenza del
commit finale.
Isolamento: le transazioni non si influenzano reciprocamente, ossia una transazione
non può leggere dati intermedi di altre.
1
Durability (persistenza): i dati prodotti da una transazione devono essere resi
disponibili persistentemente nel DB nonostante possibili malfunzionamenti di sistema.
4. Fornire almeno un esempio di anomalia indotta dall’esecuzione concorrente di
transazioni e spiegare la relazione tra anomalie e
-
Domande Ingegneria del software e base di dati
-
Geologia (Domande)
-
Domande Macroeconomia
-
Domande esame Informatica