Swappa : Uni / Domande e Risposte Basi di Dati
Creative Commons License

Torna alla pagina di Basi di Dati


 :: Basi di dati - Domande e Risposte ::

Scarica in PDF

Nell’ambito del controllo dell’accesso in SQL, indicare il significato e l’utilizzo dei references.

Il costrutto references nel controllo dell' accesso in SQL, permette che venga fatto riferimento alla risorsa nell’ ambito della definizione dello schema di una tabella. La sua utilità si manifesta nel momento in cui le politiche di reazione di un vincolo di integrità referenziale vengono messe in atto con la possibilità di un' effetto sulle tabelle esterne.

Con riferimento al modello ER, spiegare il concetto di entità debole e fornirne un esempio.

L' entità debole è quell' entità la cui chiave contiene attributi che non appartengono all' entità stessa ma ad un' altra a cui è legata tramite una relazione.
Esempio:
AZIENDA(NomeAzienda, NrDipendenti)
DIPENDENTE(CodiceDip, NomeAzienda, Nome, Cognome, Mansione)
NomeAzienda compare nella chiave di DIPENDENTE la quale quindi è un' entità debole.

Con riferimento a SQL, spiegare il significato delle funzioni coalesce e nullif e fornire un esempio per ognuna.

Le funzioni coalesce e nullif vengono utilizzate in SQL come funzioni condizionali per eseguire delle selezione su campi che possono assumere il valore NULL. In particolare la funzione coalesce restituisce il valore specificato negli argomenti ogni volta che incontra il valore NULL. la funzione nullif invece, restituisce il valore NULL quando incontra il valore specificato altrimenti restituisce il valore dell' espressione.
Esempio:

select Matr,Cognome,Nome,coalesce(CdL,‘non ins.’)
from Studenti

La funziona restituirà il valore "non ins." ogni volta che incontra il valore NULL.

select Matr,Cod-corso,Data,nullif(Voto,‘ritirato’)
from Esami

Utilizza il valore NULL in caso il campo Voto della tupla valga "ritirato".

Nell’ambito del linguaggio di interrogazione SQL, dire se esistono viste non modificabili, spiegando il perchè fornendo, se esiste, un esempio.

Si esistono perché non è sempre possibile determinare un modo univoco in cui la modifica sulla vista possa essere riportata sulle tabelle di base; infatti si incontrano grossi problemi quando la vista è definita tramite join di due tabelle. Lo standard SQL permette che una vista sia aggiornabile solo quando le sue righe corrispondono alla tabella di base. Per modificare solo la vista, senza intaccare le tabelle di base, si usa il comando check option. Nel caso di viste ottenute da altre viste, esistono le due opzioni [local | cascade]: local effettua un controllo solo sull’ultimo livello delle viste mentre cascade effettua un controllo su tutti i livelli di definizione delle viste.

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.

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):

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:

Spiegare i concetti di Indipendenza dei dati fisica e logica.

Descrivere le varie Strategie di progetto (Concettuale)

Lo sviluppo di uno schema concettuale:

Descrivere i punti per giudicare la qualità di uno schema concettuale.

Vanno garantite alcune proprietà e le più importanti sono:

Descrivere una metodologia generale di Progettazione Concettuale.

  1. Analisi dei requisiti:
    • Costruzione di un glossario dei termini
    • Analisi dei requisiti ed eliminazione delle ambiguità
    • Raggruppamento dei requisiti in gruppi omogenei
  2. Passo base:
    • Individuazione dei concetti più rilevanti e rappresentazione del loro scheletro
  3. Passo di decomposizione:
    • Decomposizione dei requisiti con riferimento allo scheletro
  4. Passo iterativo:
    • Raffina i concetti ed aggiunge nuovi concetti per tutti i sotto-schemi
  5. Passo di integrazione:
    • Integrazione di tutti i sotto-schemi in uno schema generale
  6. 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:

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:

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)

attributo. (Descritto nella Tavola dei Volumi)

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:

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.

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.

Illustrare cosa vuol dire l' espressione: “Il valore Null è polimorfo”, spiegando i significati che può assumere. Descrivere inoltre, il concetto di logica a tre valori, riportando le tabelle di verità dei connettivi logici AND, OR, NOT tenendo conto del valore nullo.

Il valore NULL può essere considerato polimorfo in quanto può assumere diversi significati:

Introdotta in SQL-2 la logica a tre valori, stabilisce che, in caso di confronto con NULL, il valore restituito sarà unknown (e non false come in SQL-89). Le tabelle di verità dei connettivi logici AND, OR, NOT che considerano anche questa eventualità sono:

ANDVUFORVUFNOT
VVUFVVVVVF
UUUFUVUUUU
FFFFFVUFFV

Illustrare la proprietà di distribuzione della selezione e della proiezione rispetto agli operatori insiemistici indicando per quali operatori la proprietà vale fornendo, inoltre, un esempio di quando vale e di quando non vale.

La propreità di distribuzione o distributività, è quella proprietà che permette di stabilire un' equivalenza fra una selezione (o proiezione se si tratta dell' unione) applicata ad un' espressione e la stessa applicata ai singoli termini. Tale proprietà può essere applicata all' unione U e alla differenza (da cui deriva la distributività rispetto alla selezione anche per ∩). Come già detto prima, la distributività rispetto alla proiezione vale solo per l' unione. Un semplice esempio può essere:

σ(Cognome='Verdi')(IMPIEGATI ∪ DIRIGENTI)≡ σ(Cognome='Verdi')IMPIEGATI ∪ σ(Cognome='Verdi') DIRIGENTI

Un' esempio invece, che esprime quando non è possibile applicare tale proprietà è:

(Cognome)(IMPIEGATI ∩ DIRIGENTI)≡ ∏(Cognome)IMPIEGATI ∩ ∏(Cognome) DIRIGENTI

Nell’ambito del modello relazionale, dire cosa si intende per vincolo di integrità referenziale, spiegare quali controlli vengono eseguiti dal DBMS per verificarne la violazione e il soddisfacimento. Infine, elencare e descrivere le politiche di reazione che possono essere associate al vincolo di integrità referenziale in SQL.

Nell' ambito del modello relzionale il vincolo di integrità referenziale stabilisce che, se ho 2 relazioni la cui chiave primaria della prima compare nella seconda, ogni tupla della seconda dovrà avere ua corrispondenza nella prima (o al limite avere tale campo inizializzato a NULL). Il DBMS andrà a controllare tali vincoli verificando che le condizioni espresse da asserzioni e costrutti check siano soddisfatte. Tale controllo avverrà ad ogni operazione o alla fine della transazione a seconda dell' impostazione (immediate o deferred) associata al vincolo. Se tali controlli daranno esito positivo, cioè se i vincoli vengono violati, il DBMS attiverà delle opportune polithce di rezione precedentemente stabilite. Queste politiche possono essere associate a una modifica o a una cancellazione e stabiliscono se:

Con riferimento a SQL, spiegare cosa si intende per variabile, indicando perchè servono e come vengono utilizzate. Fornire, inoltre, un esempio.

In SQL, le variabili vengono utilizzate per poter effettuare delle query altrimenti impossibili come quelle in cui si incorciano tuple di una stessa tabella. Le variabili, consentono infatti di creare un alias per le tabelle da interrogare che si potrà utilizzare anche per svolgere delle query nidificate. Un' esempio di utilizzo di variabili può essere il seguente:

select C1.Nome, C1.Cognome, C2.Nome, C2.Cognome
from CITTADINI as C1 inner join CITTADINI as C2
on C1.CFConiuge=C2.CF
where CFConiuge<>NULL and Sesso=”M”

Con riferimento a SQL, spiegare la differenza fra: inner join, left-outer join e right-outer join, spiegando perch ́ ciascuno di essi serve ed illustrandone un esempio.

L' operazione di inner join si differenzia dalla left outer join e dalla right outer join in quanto non mantiene le tuple senza una corrispondenza. Queste ultime 2 varianti della join infatti, incrociano le tuple dopodichè mantengono anche quelle senza corrispondenza a seconda dell' orientamento della join, ovvero se ad esemipo eseguo una left outer join verranno mantenute le tuple senza corrispondenza della tabella a sinistra della join impostando a NULL i campi pendenti.

Data una interrogazione SQL che includa le clausole SELECT, FROM, WHERE, GROUP BY, HAVING e ORDER BY dire come viene eseguita (specificare come ed in che ordine vengono eseguite le clausole). Illustrare anche un esempio di query e il suo processo di esecuzione da parte del DBMS.

Le clausole presenti nell' interrogazione vengono eseguite nel seguente ordine: FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY. [da completare]

(L'interrogazione SQL per essere eseguita viene passata all'ottimizzatore di interrogazioni (query optimizer), un componente del DBMS il quale analizza l'interrogazione e formula a partire da questa un'interrogazione equivalente nel linguaggio procedurale interno del sistema di gestione di basi di dati.) [Ho trovato solo questo sul libro, cerco e ricerco ma sull'esecuzione di interrogazioni da parte del DBMS niente, ma si può sapere cosa vuole che scriviamo?]


Torna alla pagina di Basi di Dati-Torna in Alto

(Printable View of http://www.swappa.it/wiki/Uni/Domanderisposte)