Dire cosa si intende per componente intensionale e componente estensionale di una base di dati.
Lo schema di una Base di Dati è considerata la componente intensionale e costituisce la struttura che descrive i dati e le loro relazioni; l'istanza di una Base di Dati è la componente estensionale e costituisce ilo valore dei dati contenuti nella Base di Dati in un determinato momento.
Nell’ambito del modello relazionale, elencare e descrivere le politiche di relazione che possono essere associate al vincolo di integrità referenziale in SQL.
- Vincolo INTRARELAZIONALE (soddisfatto da singole relazioni)
- Vincolo di Tupla (valutato su ciascuna tupla indipendentemente dalle altre)
- Vincolo di Dominio (deve rientrare in un range di valori)
- Vincolo Interrelazionale (se coinvolge più relazioni)
Nell’ambito del modello E-R, definire il concetto di identificatore esterno spiegando quando questo è necessario.
L'identificatore esterno è utilizzato quando si vuole identificare una certa entità attraverso un'altra entità esterna: ad
esempio se vogliamo identificare uno studente tramite l'attributo Matricola e l'entità UNIVERSITA dobbiamo utilizzare
un identificatore esterno; in questo modo quello studente potrà anche avere la stessa matricola registrata in più
università.
Dire se la rappresentazione ER è sufficiente per rappresentare tutti i vincoli di una Base di Dati. In caso di risposta negativa, illustrare un esempio di vincolo non rappresentabile.
Lo schema ER non è sufficente perchè alcuni vincoli non possono essere espressi tramite lo schema: solitamente si
ricorre ad una descrizione letterale allegata come documentazione aggiuntiva allo schema. Un esempio potrebbe
essere l'attributo stipendio sull'entità OPERAIO che deve essere minore di quello dell'entità CAPO REPARTO:
inesprimibile con un grafico ER.
Spiegare il concetto di integrità referenziale e fornire un esempio.
Per Integrità referenziale si intende che X attributi di una relazione R1 siano chiave primaria nella relazione R2, ovvero le due relazioni siano collegate tramite questi attributi in maniera univoca.
Un esempio potrebbe essere “Anagrafica Cittadino” con “Città italiane” collegate ad esempio tramite il campo CAP della città .
Definire i concetti di chiave, superchiave e chiave primaria (formalizzazione e spiegazione concisa).
La chiave è un attributo di una entità ( un campo sul database ) che identifica una determinata entità in base al suo
valore. Se l'entità viene identificata solo tramite un campo si parla di chiave primaria e il valore di quel campo è
assoluto ed unico solo per quella entità: nessun altro avrà lo stesso valore su quel campo.
Una superchiave è un insieme di K attributi che identificano quell'oggetto e come insieme di valori sono unici per
identificare univocamente quellì'oggetto. Potremmo anche parlare di Superchiave Minimale se la superchiave non
contiene sottoinsieme di chiavi primarie, ovvero se gli attributi della superchiave non rappresentano già una chiave
primaria.
Cosa è l'occorrenza di una entità?
È un oggetto della classe che l'Entità rappresenta, ad esempio Milano, Roma, Palermo sono occorrenze della entità
Città; non bisogna fare l'errore di considerarlo come un valore che identifica l'oggetto, ma è l'oggetto stesso.
L'occorrenza Milano avrà un campo ID='Milano' che identifica l'istanza dell'occorrenza.
Illustrare l’architettura ANSI/SPARC indicando il significato dei diversi livelli.
Architettura standardizzata (ANSI/SPARC) per DBMS fa riferimento a tre livelli (ognuno con un proprio schema):
- Schema esterno: descrizione, per mezzo del modello logico, di una porzione della base di dati di interesse (riflette la vista sui dati di un particolare utente o gruppo di utenti)
- Schema logico: descrizione dell’intera base di dati per mezzo del modello logico
- Schema interno: rappresentazione dello schema logico per mezzo di strutture fisiche di memorizzazione
Nell’ambito del modello Entità-Relazione, definire il concetto di entità debole.
Un’entità debole è una entità la cui chiave include riferimenti ad altre entità tramite relazioni.
Esempio:
la voce di fattura è identificata dalla fattura che la contiene e dalla posizione della voce stessa nella fattura.
Illustrare e commentare brevemente le diverse fasi del ciclo di vita di una base di dati, specificando cosa ogni singola fase prende in ingresso e cosa produce. Nella descrizione, discutere anche i diversi passi della progettazione.
Durante la prgettazione di una base di dati è importante tener conto del ciclo di vita di un sistema informativo, composto da:
- Studio di fattibilità: si prendono in considerazione tutte le possibili implementazioni realizzabili, si calcolano i relativi costi implementativi e si danno priorità alle varie fasi di sviluppo;
- Raccolta e analisi dei dati: si prendono in considerazione tutti i dati che dovranno essere gestiti e come e quali utenti dovranno accedere agli stessi; in questa fase si produce anche uno schema astratto della base di dati. Vengono inoltre stabiliti i requisiti HW e SW del sistema informativo.
- Progettazione: in prima analisi dei dati, ovvero si progetta la componente intensionale della base di dati; in seconda analisi si progettano i programmi applicativi che andranno ad interagire con i dati.
- Implementazione: viene creato il database su un server di Database e viene scritto il codice dei programmi applicativi.
- Validazione e Collaudo: viene testato il funzionamento del sistema informativo ed in caso di bug vengono subito cercate delle soluzioni.
- Funzionamento: il sistema informativo viene utilizzato per il suo scopo originale ed in caso di corretto funzionamento necessita solo di azioni di gestione e mantenimento.
Spiegare i concetti di Indipendenza dei dati fisica e logica.
- Indipendenza fisica: il livello esterno e logico sono indipendenti dal livello fisico del database; modifiche fisiche di allocazione e memorizzazione non influiscono sulle applicazioni che fanno riferimento al modello logico ( grazie al DBMS ). Modifiche alle strutture dei dati non influiscono gli utenti del database.
- Indipendenza Logica: permetter di aggiungere o modificare gli schemi esterni senza modificare lo schema logico; permette inoltre di modificare lo schema logico mantenendo inalterati gli schemi esterni visibili agli utenti.
Descrivere le varie Strategie di progetto (Concettuale)
Lo sviluppo di uno schema concettuale:
- Strategia Top-Down: lo schema concettuale viene prodotto raffinando nel corso del tempo uno schema iniziale con pochi concetti e molto astratti; le trasformazioni da una fase all'altra avvengono tramite le cosiddette primitive di trasformazione top-down; casi in cui potrebbe avvenire è quando da un concetto generale se ne formano 2 specifici. VANTAGGIO: permette di evitare la descrizione dei dettagli nella fase iniziale.
- Strategia Botton-Up: le specifiche iniziali vengono via via suddivise in componenti sempre più frammentati e piccoli, sino ad arrivare a singoli concetti. VANTAGGIO: si adatta ad una decomposizione del problema in problemi più semplici.
- Strategia Inside-Out: è una particolare estensione del metodo botton-up, perchè partendo da solo alcuni concetti iniziali ci si estende a macchia d'olio su tutti i problemi che riguardano il progetto tenendosi comunque in relazione con i concetti iniziali. VANTAGGIO: permette di decomporre il problema esaminando di volta in volta le specifiche progettuali.
- Strategia Mista: è una strategia di incrocio fra la Botton-Up e la Top-Down (e in parte anche della Inside-Out). VANTAGGIO: è molto flessibile perchè permette di astrarre i componenti principali ma allo stesso tempo di averne uno scheletro descrittivo.
Descrivere i punti per giudicare la qualità di uno schema concettuale.
Vanno garantite alcune proprietà e le più importanti sono:
- Correttezza: quando usa in modo corretto i costrutti messi a disposizione dal modello concettuale utilizzato per la progettazione concettuale (ad esempio del modello E-R).
- Completezza: quando descrive tutti i dati e tutte le azioni che devono essere eseguite.
- Leggibilità: quando rappresenta i requisiti in maniera naturale e facilmente comprensibile; lo schema dovrebbe essere autoesplicativo.
- Minimalità: quando tutte le specifiche sono rappresentate una sola volta nello schema ( non vi è quindi nessuna ripetizione inutile di informazione – assenza di ridondanza ).
Descrivere una metodologia generale di Progettazione Concettuale.
- Analisi dei requisiti:
- Costruzione di un glossario dei termini
- Analisi dei requisiti ed eliminazione delle ambiguità
- Raggruppamento dei requisiti in gruppi omogenei
- Passo base:
- Individuazione dei concetti più rilevanti e rappresentazione del loro scheletro
- Passo di decomposizione:
- Decomposizione dei requisiti con riferimento allo scheletro
- Passo iterativo:
- Raffina i concetti ed aggiunge nuovi concetti per tutti i sotto-schemi
- Passo di integrazione:
- Integrazione di tutti i sotto-schemi in uno schema generale
- Analisi di qualità:
- Si verifica Correttezza, Completezza, Leggibilità e Minimalità dello schema concettuale
Cosa sono gli strumenti CASE? Descriverli.
Sono dei SW applicativi ( Computer Aided Software Engineering) di ausilio alla ingegnerizzazione del software e
forniscono un supporto a tutte le fasi principali dello sviluppo di una base di dati ( Progettazione Concettuale, Logica e
Fisica ). Forniscono:
- Interfaccia grafica: modellazione dello schema in formato UML.
- Dizionario dei dati: memorizza informazioni dello schema.
- Strumenti integrati: eseguono automaticamente alcune fasi della progettazione.
ER-Win è un buon SW per fare queste cose. (Piattaforma Windows).
Taylor MDA e fabForce DBDesigner sono programmi equivalenti. (Piattaforma Linux).
Descrivi la progettazione logica.
La progettazione logica costituisce l'effettiva realizzazione della progettazione concettuale: durante questa fase si
devono tener conto delle prestazioni dell'applicazione e quindi sono molto frequenti dei cambiamenti nella struttura e
nello schema concettuale della applicazione:
- Ristrutturazione dello schema E-R: si basa sulla ottimizzazione e sulla semplificazione.
- Traduzione verso il modello logico: fa riferimento ad un modello logico (ad esempio il modello relazionale) e può incidere ancora sulla ottimizzazione in base la modello scelto. Si esegue anche la Normalizzazione.
Descrivere l'Analisi delle prestazioni su schemi E-R
Abbiamo alcuni parametri da controllare per verificare le prestazioni di uno schema:
Costo di una operazione: numero medio delle occorrenze visitate per eseguire una operazione sul db. (Descritto nella Tavola delle Operazioni)
- Occupazione di memoria: numero di byte necessario per memorizzare i dati descritti dallo schema.
- Volume dei dati: numero di occorrenze di ogni entità ed associazione dello schema e dimensione di ciascun
attributo. (Descritto nella Tavola dei Volumi)
- Caratteristiche delle operazioni: tipo di operazione, frequenza di richiesta, dati coinvolti. (Ognuna descritta opzionalmente negli Schemi di Operazione)
Cosa è la regola “ottantaventi”?
È una regola convenzionale utilizzata per verificare l'efficenza di una base di dati, dove l'80% del carico è generato dal
20% delle richieste. Se la base di dati rispetta questa regola ha delle prestazioni adeguate.
Descrivere la ristrutturazione di uno schema E-R.
La fasi di ristrutturazione sono:
- Analisi delle ridondanze: si decide se mantenere o eliminare eventuali ridondanze nello schema.
- Eliminazione delle generalizzazioni: tutte le generalizzazioni vengono sostituite da altri costrutti.
- Partizionamento / accorpamento di entità ed associazioni: si accorpano o dividono alcuni concetti dello schema se necessario.
- Scelta degli identificatori primari: si seleziona un identificatore per quelle entità che ne hanno più di uno.
Descrivere la progettazione fisica della base di dati.
Utilizzando lo schema logico prodotto, le caratteristiche del sistema scelto e le previsioni sul carico applicativo viene
prodotto lo schema fisico della base di dati (usando ad esempio le Create Table SQL su un server di Database).
Perché la Normalizzazione è necessaria su una base di dati?
Perché decentralizza le informazioni aumentando anche inutilmente la ridondanza dei dati: ciò potrebbe causare delle
incompatibilità sui dati, incoerenze, durante le fasi di aggiornamento dei dati o di cancellazione dei dati. Lo scopo della
normalizzazione è quello di avere un dato in una sola locazione a cui eventuali altre entità sono collegate tramite delle
relazioni.
Spiegare il concetto di dipendenza funzionale e fornire un esempio.
È un particolare vincolo di integrità per il modello relazionale che descrive i legami funzionali fra gli attributi di una
relazione, come ad esempio lo Stipendio sull'entità Impiegato e si indica con: Impiegato -> Stipendio
Descrivi la forma normale di Boyce e Codd
La forma normale permette di eliminare i dati duplicati che sono contenuti in tabelle in cui non sono identificati con una
chiave: solitamente l'utilizzo di chiavi aiuta nell'eliminare la ridondanza dei dati e a creare relazioni fra le varie tabelle.
Queste relazioni sono in forma normale Boyce e Codd se per ogni dipendenza funzionale X -> A definita su di essa,
X contiene e una chiave K di r, cioè X è superchiave per r. Anomalie e ridondanze vengono eliminate.
Su quale concetto si basa la decomposizione nella normalizzazione?
Si basa sul concetto che se una relazione rappresenta più concetti indipendenti, la relazione deve essere decomposta
in relazioni più piccole, una per ogni concetto ( una per ogni dipendenza funzionale ).
Descrivere le proprietà della decomposizione nella normalizzazione.
- Decomposizione senza perdita: quando dopo la decomposizione di una relazione r in 2, facendo il join fra le due si riottiene perfettamente la relazione r iniziale.
- Conservazione delle dipendenze: quando nella decomposizione ciascuna delle dipendenze funzionali dello schema originario coinvolge attributi che compaiono tutti insieme in uno degli schemi decomposti. Dire che una decomposizione che soddisfa questa proprietà vuol dire che conserva le dipendenze dello schema originario.
- Qualità delle decomposizioni: sono di qualità sufficiente quelle decomposizioni che soddisfano le precedenti 2 proprietà.
Parla della Terza Forma Normale.
Avendo la Forma Normale di Boyce e Codd la limitazione di non poter essere sempre utilizzata: si può allora utilizzare la
Terza Forma Normale che può sempre essere applicata, permettendo sempre una Decomposizione senza Perdita e la
Conservazione delle dipendenze ma non elimina completamente la ridondanza dei dati; la qualità della Terza Forma
Normale è quindi inferiore a quella della Forma Normale di Boyce e Codd ma può essere sempre applicata.
Spesso in una decomposizione intesa ad ottenere una Terza Forma Normale si ottiene una Normalizzazione Boyce e
Codd: ciò sta ad indicare come le due forme normali siamo simili.
Descrivere altre forme normali.
- Prima Forma Normale: stabilisce una condizione che sta alla base del modello relazionale stesso: gli attributi delle relazioni sono definiti su valori atomici e non su valori complessi quali insiemi o relazioni.
- Seconda Forma Normale: è una variazione debole della Terza Forma Normale in cui non sono definite dipendenze parziali cioè dipendenze fra un sottoinsieme proprio della chiave e altri attributi.
- Ne esistono anche altre ma quelle finora studiate danno una grande possibilità di giocare sulla Qualità e sulla Semplicità del sistema informativo.