Domande Aperte Basi Di Dati
Domande Aperte Basi Di Dati
DOMANDE LEZIONE 3
QUESITO 4-DESCRIVERE BREVEMENTE I CONCETTI BASE DEI METODI DI
APPROCCIO ALLA GESTIONE DEI DATI DI TIPO CONVENZIONALE.
L’approccio alla gestione dei dati basato su file funziona bene nel caso di sistemi di piccole
dimensioni, prevalentemente single-user, o con scarsa necessità di condivisione dei dati. Non sono
in grado di gestire una grande mole di dati (non sono scalabili), non permettono l’accesso
simultaneo di più utenti ed applicazioni (non sono concorrenti)
1
QUESITO 6- DESCRIVERE BREVEMENTE I METODI DI APPROCCIO ALLA
GESTIONE DEI DATI:
I metodi di approccio di gestione possono essere: I metodi convenzionali, sono basati sui files, non
si può fare una distinzione tra dati ed applicazioni. Queste contengono la logica di gestione e
memorizzazione dei dati. Il sistema operativo offre le basi per l’accesso ai files ed i meccanismi di
sicurezza del file-system, possono avere limitazioni e sono l’accesso ai file condivisi avviene
attraverso le politiche di accesso del file-system che utilizzano Lock a livello di file che generano
prestazioni limitate.
I metodi strutturati sono basati su software di gestione dei dati (DBMS). L’approccio alla
gestione dei dati basato su file funziona bene nel caso di sistemi di piccole dimensioni. Non sono in
grado di gestire molti dati, quindi non sono scalabili, mentre, se non permettono l’accesso di più
utenti ed applicazioni non sono concorrenti
DOMANDE LEZIONE 4
QUESITO 5-DESCRIVERE I VANTAGGI E LIMITI DEI DBMS:
I vantaggi sono molti: accesso ai dati indipendente dalla loro rappresentazione e memorizzazione,
tecniche di accesso ai dati ottimizzate (anche attraverso l’uso di strutture aggiuntive, come gli
indici), per migliorare le performance delle interrogazioni, possibilità di controllo dell’integrità e
della completezza dei dati, possibilità di controllo dell’accesso ai dati e modalità di accesso multi-
utente.
Svantaggi: non permettono visualizzazioni grafiche dei dati o delle strutture dati; implementano
funzionalità matematiche e statistiche elementari di base,
2
DOMANDE LEZIONE 5
QUESITO 6-DESCRIVERE IL CONCETTO DI DATA BASE DISTRIBUITO E
SCALABILITÀ DI UN DBMS.
Il concetto di Scalabilità Orizzontale (Horizzontal Scaling) si applica ai DBMS quando nasce
l’esigenza di gestire grandi quantità di dati aumentando il numero di nodi usati per lo storage
(database distribuito)
2)Affidabilità: alcune operazioni sui dati (es:trasferimento elettronico di denaro) sono delicate,
devono essere gestite inmodo deterministico, secondo la regola del tutto o niente. Bisogna essere
sicuri che la transazione monetaria avvenga o non avvenga. I DBMS utilizzano il meccanismo di
Roll-Back, in caso di anomalie l’operazione corrente viene annullata e lo stato del sistema viene
ripristinato prima dell’operazione non riuscita senza alcuna perdita di informazione (es: denaro).
DOMANDE LEZIONE 6
QUESITO 5-DESCRIVERE L’ARCHITETTURA A LIVELLI DEI DBMS
Un DBMS può essere descritto con un’architettura software caratterizzata da almeno tre livelli detti
anche schemi:
o Schema Esterno: si occupa dell’interfacciamento del Data Base con l’utente
o Schema Logico: descrive cosa rappresenta il DB
o Schema Fisico: si occupa della memorizzazione dei dati
3
QUESITO 7-DESCRIVERE BREVEMENTE LA STORIA DEI DATA BASE
Negli anni’60, Charles Bachman (General Electric) progettò il primo DBMS basato sul modello
reticolare. Successivamente sviluppò l’Information Management System (IMS), basato sul
modello gerarchico di gestione dei dati, usato ancora oggi. L’IMS venne utilizzato come supporto
alle missioni Apollo per la gestione dei dati tecnici ed amministrativi e per la gestione delle
forniture di materiali. Negli anni 70’, Edgar Codd propone per la prima volta il modello relazionale,
basato sul concetto di relazione tra insiemi.
DOMANDE LEZIONE 7
QUESITO 5-DESCRIVERE BREVEMENTE IL CONCETTO DI CONOSCENZA
CONCRETA.
La conoscenza concreta, detta anche stato dell’universo del discorso, si evolve nel tempo, in quanto
le collezioni, le entità, i valori delle loro proprietà e le associazioni cambiano nel tempo per effetto
di processi continui (dipendenti dal trascorrere del tempo), o di processi discreti (dipendenti dal
verificarsi di eventi in certi istanti).
DOMANDE LEZIONE 8
QUESITO 5-DESCRIVERE LA DIFFERENZA TRA CONOSCENZA ASTRATTA E
CONOSCENZA PROCEDURALE.
La conoscenza astratta riguarda la struttura dell’universo del discorso, la conoscenza procedurale
riguarda le operazioni a cui può essere soggetta la conoscenza concreta, ed in particolare l’effetto di
tali operazioni ed il modo in cui esse si svolgono.
4
DOMANDE LEZIONE 9
QUESITO 5-FORNIRE UNA BREVE DESCRIZIONE DEL MODELLO DEI DATI AD
OGGETTI.
Si “definisce” il modello, ovvero si rappresenta la struttura della conoscenza concreta, le altre parti
della conoscenza astratta, la conoscenza procedurale, i tipi di comunicazione (definizione di schema
e applicazioni).
DOMANDE LEZIONE 10
QUESITO 5-QUANDO SI DEFINISCONO PIÙ SOTTOCLASSI DI UNA STESSA
CLASSE, SULL'INSIEME DI SOTTOCLASSI QUALI VINCOLI POSSONO ESSERE
DEFINITI?
Due vincoli: il vincolo di disgiunzione, se ogni coppia di sottoclassi in questo insieme è disgiunta,
ovvero è priva di elementi comuni (sottoclassi disgiunte) e il vincolo di copertura, se l’unione
degli elementi delle sottoclassi coincide con l’insieme degli elementi della superclasse (sottoclassi
copertura).
5
QUESITO 6-QUANDO UN'INTERFACCIA È DEFINITA PER EREDITÀ?
Si dice che la definizione dell’interfaccia di un tipo oggetto è data per ereditarietà a partire da un
tipo T quando questa definizione è fornita specificando cosa va aggiunto o modificato per ottenere
il nuovo tipo a partire da T. Un’interfaccia è definita per ereditarietà da un’interfaccia I specificando
quali attributi aggiungere ad I e come, eventualmente, modificare (overriding) il tipo degli attributi
ereditati, ovvero degli attributi già presenti in I. In genere si impone che, nel definire un’interfaccia
per ereditarietà, se si modifica il tipo di un attributo, il nuovo tipo sia un sottotipo del tipo
precedente (vincolo di ereditarietà stretta).
DOMANDE LEZIONE 11
QUESITO 5-IN COSA DIFFERISCE IL MODELLO ENTITÀ-RELAZIONE DA QUELLO
AD OGGETTI?
Rispetto al modello a oggetti, il modello entità-relazione: non tratta aspetti procedurali (metodi) né
gerarchie di inclusione tra collezioni; non distingue collezioni e tipi; non supporta alcun
meccanismo di ereditarietà. Definisce un meccanismo per modellare direttamente le associazioni, e
le associazioni non binarie o con proprietà
DOMANDE LEZIONE 12
QUESITO 5-QUALI SONO LE FASI DELLA METODOLOGIA DI PROGETTAZIONE
PER LA COSTRUZIONE DI SISTEMI COMPLESSI? FORNIRE UNA DESCRIZIONE
SINTETICA.
La costruzione di un sistema complesso, e di un qualunque sistema informatico, è un processo che
si articola in tre fasi: analisi dei requisiti: in questa fase si stabilisce che cosa il committente si
aspetta dal sistema; progetto del sistema: in questa fase si progetta un sistema che soddisfi le
esigenze del committente; realizzazione del sistema progettato. Le fasi di analisi dei requisiti e
progetto del sistema sono chiamate collettivamente progettazione poiché il loro scopo è la
produzione di un progetto del sistema realizzare
6
dovrebbero permettere di sostituire, in ogni momento, uno o più progettisti, senza che
pregiudichi l’andamento del progetto;
• Sovraccarico limitato: le attività di documentazione, incontri e revisione previste da ogni
metodologia tolgono tempo alla progettazione. Queste attività devono essere calibrate in
modo che i benefici ottenuti superino il costo. È fondamentale l’utilizzo di strumenti di
supporto informatici per la metodologia (strumenti CASE) che permettano di automatizzare
tutti i compiti ripetitivi e che facilitino la produzione e gestione della documentazione.
DOMANDE LEZIONE 13
QUESITO 5-FORNIRE UNA DESCRIZIONE DEL METODO DI PROTOTIPAZIONE
RAPIDA DELLE BASI DI DATI
Un prototipo è una versione preliminare e funzionante di ciò che va realizzato, che esibisca le
caratteristiche funzionali essenziali, ignorando i requisiti sulle prestazioni. Affinché un impegno di
prototipazione risulti economicamente vantaggioso, il costo della realizzazione dei prototipi deve
essere una piccola frazione del costo di una prima realizzazione delle applicazioni sul DBMS
prescelto. Questo è possibile usando strumenti specializzati per la produzione rapida di prototipi.
7
QUESITO 7-DESCRIVERE GLI STRUMENTI FORMALI CHE SI ADOPERANO PER
LA PROGETTAZIONE DELLE BADI SI DATI.
Le metodologie adottano meccanismi di astrazione e formalismi diversi durante le varie fasi del
processo di progettazione che ricadono in queste categorie:
❖ Diagrammi per la descrizione dei dati: descrivono la struttura dei dati. Ad esempio quelli
entità-relazioni e la rappresentazione grafica del modello a oggetti,
❖ Diagrammi di flusso dati: descrivono le operazioni, mostrando come ognuna possa essere
divisa in sotto operazioni e qual è il flusso dei dati tra queste operazioni;
❖ Diagrammi di stato: descrivono in che modo lo stato del sistema, o di una componente del
sistema, evolve in corrispondenza di un evento. Servono a specificare sistemi che reagiscono ad
eventi, quindi la parte di un’applicazione che gestisce il dialogo con l’utente.
DOMANDE LEZIONE 14
QUESITO 5-DESCRIVERE IL CONCETTO DI ANALISI DEI REQUISITI NEL
CONTESTO DELLA PROGETTAZIONE DELLE BASI DI DATI.
Le caratteristiche principali delle fasi di analisi dei requisiti e di progettazione concettuale, per
dare suggerimenti su come procedere nella definizione dello schema concettuale di una base di
dati. L’analisi dei requisiti presuppone lo studio dell’organizzazione, e delle sue finalità, con la
valutazione di questi aspetti: gli obiettivi del sistema informatico da realizzare, le attività
dell’organizzazione che devono essere supportate dal sistema informatico, le unità organizzative
(settori o aree funzionali) che utilizzeranno il sistema informatico; il piano di sviluppo del sistema
informatico, ed uno studio di fattibilità con la stima di costi e tempi del piano di sviluppo, per
verificarne la convenienza.
L’analisi dei requisiti raffina i risultati di questo studio specificando ciò che l’organizzazione, ed i
vari settori che la compongono, si aspetta dal sistema informatico in corso di progettazione,
arrivando a rappresentare la struttura delle informazioni da trattare e le procedure che dovranno
essere realizzate. Il risultato della fase di analisi dei requisiti può essere dato in modi diversi, che
possono anche coesistere: informalmente, con linguaggio naturale ristretto, con tabelle integrate da
rappresentazioni diagrammatiche; con un linguaggio formale non eseguibile.
8
DOMANDE LEZIONE 15
QUESITO 5-LA SCRITTURA DI FRASI NELLA SPECIFICA DEI REQUISITI CHE
TIPO DI CARATTERISTICHE DEVE AVERE? ELENCARE ALMENO DUE ESEMPI.
È bene che la specifica dei requisiti sia scritta utilizzando frasi con una struttura il più possibile
elementare ed omogenea, come nell’esempio che segue. Frasi di carattere generale: si vogliono
gestire informazioni relative a domande di trasferimento ed alla corrispondenza tra corsi esterni e
corsi interni. Frasi relative ai corsi interni Di un corso interno interessano: il nome e il numero di
crediti.
DOMANDE LEZIONE 16
QUESITO 5-QUALI PASSI PREVEDE LA PROGETTAZIONE PER LA PRODUZIONE
DEL PROGETTO CONCETTUALE NELL’APPROCCIO PER INTEGRAZIONE?
La progettazione per la produzione del progetto concettuale nell’approccio per integrazione richiede
i seguenti passi: definisci gli schemi di settore; integra gli schemi di settore; ristruttura
eventualmente lo schema finale; definisci l’architettura delle operazioni degli utenti e i metodi degli
oggetti; controlla la completezza delle operazioni degli utenti e di base.
9
QUESITO 7-QUAL È LO SCOPO DELLA PROGETTAZIONE CONCETTUALE DI UNA
BASE DI DATI?
Lo scopo della progettazione concettuale è tradurre il risultato dell’analisi dei requisiti settoriali in
una descrizione formale ed integrata degli aspetti strutturali e dinamici del sistema informatico.
DOMANDE LEZIONE 17
QUESITO 5-QUALI SONO LE FAMIGLIE DEI LINGUAGGI PER INTERROGARE
UNA BASE DI DATI RELAZIONALE?
I linguaggi per interrogare una base di dati relazionale permettono di definire la relazione
risultato a partire dalle relazioni che compongono la base di dati. Sono riconducibili a tre famiglie:
❖ Linguaggi algebrici: un’interrogazione è definita da un’espressione con operatori su relazioni
che producono come risultato altre relazioni;
❖ Linguaggi basati sul calcolo dei predicati: un’interrogazione è definita da una formula del
calcolo dei predicati del primo ordine;
❖ Linguaggi logici: sono linguaggi ispirati dal linguaggio logico Prolog, in cui un’interrogazione
è definita da un insieme di formule del calcolo dei predicati del primo ordine, ricorsive ma con
una struttura molto rigida (formule Horn)
10
DOMANDE LEZIONE 18
QUESITO 5-QUALI SONO I PASSI DA SEGUIRE PER LA TRASFORMAZIONE DI
UNO SCHEMA AD OGGETTI IN UNO SCHEMA RELAZIONALE?
La trasformazione di uno schema ad oggetti in uno schema relazionale avviene eseguendo questi
passi:
▪ PASSO 1: Rappresentazione delle associazioni uno a molti e uno ad uno;
▪ PASSO 2: Rappresentazione delle associazioni molti a molti;
▪ PASSO 3: Rappresentazione delle gerarchie fra classi;
▪ PASSO 4: Definizione delle chiavi primarie,
▪ PASSO 5: Rappresentazione degli attributi multivalore;
▪ PASSO 6: Appiattimento degli attributi composti.
DOMANDE LEZIONE 19
QUESITO 5-FORNIRE UNA DESCRIZIONE DEGLI OPERATORI DERIVATI
DALL’ALGEBRA RELAZIONALE
Alcune definizioni di operatori che sono un’abbreviazione di espressioni dell’algebra usate
frequentemente: intersezione; divisione; giunzione (join); giunzione naturale (natural join); semi-
giunzione (semi join).
DOMANDE LEZIONE 20
QUESITO 5-DESCRIVERE LE PROPRIETÀ DI ASSOCIATIVITÀ DEGLI OPERATORI
INSIEMISTICI DELL’ALGEBRA RELAZIONALE.
Le proprietà di associatività degli operatori insiemistici dell’algebra relazionale sono:
(𝐸1 ∪ 𝐸2 ) ∪ 𝐸3 = 𝐸1 ∪ (𝐸2 ∪ 𝐸3 )
(𝐸1 ∩ 𝐸2 ) ∩ 𝐸3 = 𝐸1 ∩ (𝐸2 ∩ 𝐸3 )
DOMANDE LEZIONE 22
QUESITO 5- QUAL È LO SCOPO PRINCIPALE DELLA TEORIA DELLA
NORMALIZZAZIONE?
Lo scopo principale della teoria della normalizzazione è quello di fornire strumenti formali per la
progettazione di basi di dati che non presentino anomalie, senza prendere in considerazione il costo
delle operazioni.
12
DOMANDE LEZIONE 23
QUESITO 5- DEFINIRE IL CONCETTO DI DERIVAZIONE DI UNA DIPENDENZA.
Una derivazione di f da F è una sequenza finita f1, …, fm di dipendenze, dove fm = f e ogni fi è un
elemento di F oppure è ottenuta dalle precedenti dipendenze f1, …, fi-1 della derivazione usando
una regola di inferenza. Una sottosequenza f1, …, fk di una derivazione f1, …, fm è anche una
derivazione, quindi F ͱ fk per ogni k = 1. …, m.
DOMANDE LEZIONE 24
QUESITO 05-COME SI PRESERVANO LE DIPENDENZE NELLA DECOMCOSA SONO
LE FORME NORMALI?
Dato uno schema R(T), ρ = {R1 (T1), … ,Rk (Tk)} è una decomposizione di R se e solo se ∪iTi=T.
La definizione non richiede che gli schemi Ri siano disgiunti. L’equivalenza tra lo schema
originario e la sua decomposizione, deve soddisfare due condizioni, indipendenti fra di loro:
preservi i dati (decomposizione senza perdite o lossless join) e preservi le dipendenze.
13
DOMANDE LEZIONE 25
QUESITO 05-DESCRIVERE IL CONCETTO DI NORMALIZZAZIONE DI SCHEMI IN 3NF
La terza forma normale (3NF) `e un criterio per valutare la qualità di uno schema meno restrittivo
della BCNF, con queste proprietà: ogni schema R<T,F> ammette una decomposizione che preserva
i dati, le dipendenze, ed è in 3NF. Questa decomposizione può essere ottenuta in tempo
polinomiale. Lo svantaggio della 3NF sta nel fatto che, essendo meno restrittiva della BCNF,
accetta anche schemi che presentano delle anomalie. Questo schema è in 3NF se e solo se, per ogni
dipendenza funzionale non banale X→A € 𝐹 +, allora X è una superchiave oppure A è primo
DOMANDE LEZIONE 26
QUESITO 4- ESPRIMERE IL CONCETTO DI DENOMARLIZZAZIONE
La denormalizzazione consiste nel memorizzare ad esempio le informazioni sugli studenti ed
esami in un’unica relazione, evitando così di effettuare giunzioni, anche se con un maggior costo
delle operazioni di modifica, e occupazione di memoria. È molto comune quando i dati sono gestiti
usando non un DBMS ma un sistema di archiviazione oppure un foglio elettronico (spreadsheet).
Si utilizza non solo per ragioni di efficienza, ma anche per velocizzare la produzione delle
applicazioni, evitando la codifica di algoritmi di giunzione
14
DOMANDE LEZIONE 27
QUESITO 05-IN CHE MODO PUÒ AVVENIRE L'INTEGRAZIONE TRA IL
LINGUAGGIO OSPITE AD ALTO LIVELLO E SQL?
L'integrazione tra questo e il linguaggio ospite ad alto livello può avvenire in due modi:
a) SQL Embedded: Questo metodo prevede di introdurre direttamente nel programma sorgente
scritto in linguaggio ad alto livello le istruzioni SQL distinguendole con un separatore. Prima
della compilazione del codice un precompilatore traduce le istruzioni in quelle de linguaggio
ospiing
b) Call Level Interface: Questa soluzione consiste nel mettere a disposizione una libreria di
procedure scritte nel linguaggio ad alto livello per realizzare il dialogo con la base di dati. Due
esempi di interfacce per la connettività sono:
o ODBC (Open Database Connectivity), sviluppato originariamente da Microsoft e
diventato in seguito uno standard;
o JDBC (Java Database Connectivity), ideato dalla Sun Microsystems per gestire la
connettività di Java verso le basi di dati relazionali.
15
DOMANDE LEZIONE 028
QUESITO 05-NELLA PROGETTAZIONE DI BASI DI DATI RELAZIONALI DESCRIVERE LE
REGOLE GENERALI DA SEGUIRE PER OTTENERE UNA SPECIFICA PRECISA E PRIVA DI
AMBIGUITÀ:
Alcune regole sulla specifica precisa e priva di ambiguità:
• Evitare termini troppo generici o troppo precisi. Mantenere un livello di astrazione costante;
• Evitare l'uso di sinonimi e omonimi. Riferirsi allo stesso concetto sempre nello stesso modo;
• Usare frasi brevi e semplici uniformandone la struttura;
• Dividere il testo in paragrafi: dedicare ogni paragrafo alla descrizione di una specifica entità
della realtà modellata; ed evidenziare l'entità descritta in ogni paragrafo
16
QUESITO 06-DEFINIRE IL CONCETTO DI CARDINALITÀ DI UNA RELAZIONE
FORNENDO ANCHE UN ESEMPIO
una cardinalità di relazione, ovvero, una coppia di numeri naturali che specifica il numero minimo e
massimo di istanze di relazione a cui una istanza dell'entità può partecipare. Si indica con la
costante N, un numero generico maggiore di uno, quando la cardinalità non è nota con precisione.
Nel diagramma ER, la cardinalità di relazione di una entità etichetta l'arco che lega l'entità alla
relazione.
DOMANDE LEZIONE 31
QUESITO 05-IN CHE MODO È POSSIBILE DESCRIVERE UNO SCHEMA CONCETTUALE
BASATO IN XML?
Una soluzione per descrivere uno schema concettuale si può basare su XML (eXtensible Markup
Language). Particolari applicazioni (linguaggi) XML possono essere definite nel linguaggio
Document Type Definition (DTD). Il Document Type Definition (definizione del tipo di
documento) è uno strumento utilizzato dai programmatori il cui scopo è quello di definire le
componenti ammesse nella costruzione di un documento XML
QUESITO 06-COSA DEVE CONTENERE LA DOCUMENTAZIONE DEL DIAGRAMMA
ER?
la documentazione del diagramma ER deve contenere:
▪ per ogni entità: il nome, una descrizione, la lista degli attributi, la chiave, il tipo (normale o
debole) e eventuali specializzazioni;
▪ per ogni relazione: il nome, una descrizione, le entità partecipanti e le relative cardinalità, gli
eventuali attributi e il tipo (normale o identificante);
▪ Per ogni attributo: il nome, una descrizione, il tipo (semplice, multivalore, composto, calcolato)
e il fatto che sia obbligatorio o opzionale;
▪ Le regole aziendali.
17
DOMANDE LEZIONE 032
QUESITO 05-NELLA PROGETTAZIONE LOGICA DELLA BASE DI DATI
RELAZIONALE CHE DIFFERENZA C'È TRA I VINCOLI DI DOMINIO E VINCOLI DI
CHIAVE?
Vincoli di dominio: specificano che un attributo associato ad un certo dominio deve assumere
valori in quel dominio. Vincoli di chiave: specificano che una chiave deve avere valori univoci e
una chiave primaria deve avere valori univoci e non nulli.
18
QUESITO 07-COME SI TRADUCE IL MODELLO ER NEL MODELLO RELAZIONALE
Uno schema ER può essere tradotto in uno schema relazionale equivalente con opportune regole,
permettendo di passare da un concetto astratto ad uno concreto. Il risultato della traduzione è più
lontano dal livello concettuale e più vicino al livello fisico dei dati. Il risultato è organizzato
secondo il modello dei dati che è stato scelto (modello relazionale).
DOMANDE LEZIONE 34
QUESITO 04-NEL CONTESTO DELLA TRADUZIONE DEL MODELLO ER NEL
MODELLO RELAZIONALE COME SI TRADUCONO LE RELAZIONI UNO AD UNO?
Nel caso della relazione uno a uno esistono quattro casi a seconda delle cardinalità minime (0 o 1)
delle due entità partecipanti. Ad esempio se la partecipazione delle entità alla relazione sia
obbligatoria: potremmo avere una relazione biunivoca, e una possibile soluzione potrebbe essere
quella di usare una unica relazione che raggruppa tutti e tre i concetti del frammento ER. Questa
soluzione è tecnicamente giusta ma metodologicamente sbagliata.
19
QUESITO 06-QUALI SONO IN SQL GLI ELEMENTI DI DIFFERENZIAZIONE
RISPETTO ALL’ALGEBRA/CALCOLO RELAZIONALE?
In SQL esistono due elementi importanti di differenziazione rispetto all’algebra/calcolo relazionale:
o I risultati delle proiezioni sono multi-insiemi anziché insiemi (di default i duplicati non
vengono rimossi);
o Valori vs. relazioni il risultato dell’applicazione di una funzione aggregata può, essere trattato
come un valore e non come una relazione.
20
DOMANDE LEZIONE 037
QUESITO 05-COSA S’INTENDE IN SQL PER CONDIZIONE DI JOIN?
Una visione operazionale alternativa del join, è quella che prevede una condizione detta di join.
Supponiamo di dover fare un join tra due tabelle R e S con condizione di join theta. Se dovessimo
programmare questa operazione, dovremmo scrivere due cicli for annidati secondo questo
algoritmo:
▪ Il ciclo esterno scandisce le righe di R;
▪ Il ciclo interno per ogni riga r di R, scandisce le righe s di S e verifica se la riga congiunta rs
soddisfa theta. In tal caso la riga viene selezionata.
21
QUESITO 06-DESCRIVERE GLI OPERATORI AGGREGATI DI SQL FORNENDO UN
SEMPLICE ESEMPIO PER CIASCUNO DI ESSI.
Un operatore aggregato è una funzione che si applica ad un insieme di tuple di una tabella e ha
come risultato un valore atomico.
❖ count; questo operatore serve per contare le tuple di una tabella e può essere usato nei seguenti
tre modi:
select count(*)
from dipendente
Il risultato è il numero di tuple della tabella dipendente.
❖ min e max; restituiscono rispettivamente il minimo e il massimo di una espressione valutata
sulle tuple di una tabella. L'espressione deve restituire valori su cui è definito un ordinamento
(numeri, stringhe, istanti temporali). Ad esempio, la seguente interrogazione restituisce lo
stipendio massimo di un dipendente:
select max(stipendio) from dipendente
❖ sum e avg: restituiscono la somma e la media di una espressione valutata sulle tuple di una
tabella. L'espressione deve restituire valori su cui è definita la somma (numeri). Ad esempio,
questa interrogazione restituisce la somma degli stipendi dei dipendenti:
select sum(stipendio)
from dipendente
22
DOMANDE LEZIONE 040
QUESITO 05-DESCRIVERE IL CONCETTO DI DOMINIO ATOMICO IN SQL
FORNENDO ANCHE UN ESEMPIO.
Un dominio atomico corrisponde sostanzialmente ad un tipo di dato semplice dei linguaggi di
programmazione. I principali domini atomici presenti in SQL sono:
a) Stringhe: per definire una stringa di n caratteri si scrive char(n), per una stringa di al massino n
caratteri si scrive varchar(n); char è una abbreviazione di char(1)
b) Numeri; per i numeri interi si usa il dominio integer oppure smallint; per i numeri frazionari
in virgola fissa si usa decimal(p,s), dove p è la precisione (numero di cifre decimali utilizzate
per il numero) e s è la scala (il numero di cifre decimali della parte frazionaria). Ad esempio:
decimal(4,2) rappresenta tutti i numeri da -99,99 a +99,99 con incrementi pari a un centesimo.
Per i numeri frazionari in virgola mobile si possono usare i domini float, real e double
precision.
c) Istanti temporali: è possibile usare il dominio:
▪ date per le date (YYYY-MM-DD);
▪ time per le ore (HH:MM:SS);
▪ timestamp per gli istanti temporali composti da una data e un'ora (YYYY-MM-DD
HH:MM:SS). Il tipo time(n) specifica una precisione di n cifre dopo la virgola per i secondi.
Ad esempio: 13:24:50,25 appartiene a time(2)
23
QUESITO 07-COME SI DEFINISCONO LE STRUTTURE E I VINCOLI SUI DATI IN
SQL?
In SQL è possibile di definire le strutture e i vincoli sui dati:
1) La definizione della struttura delle tabelle: in cui bisogna specificare il nome della tabella e, per
ogni attributo, il nome, il dominio e un valore predefinito;
2) La definizione dei vincoli di integrità: si distinguono in vincoli tipici del modello relazionale
(chiavi e obbligatorietà degli attributi) e vincoli di integrità generici (regole aziendali);
3) La definizione delle viste sui dati.
24
QUESITO 07-COME SI SPECIFICANO I VINCOLI D’INTEGRITÀ IN SQL?
In SQL è possibile specificare dei vincoli di integrità sui dati, sia quelli propri del modello
relazionale che quelli che specificano le regole aziendali. Vincoli di dominio: sono specificati
implicitamente quando un attributo viene associato al corrispondente dominio: i valori dell'attributo
devono appartenere al relativo dominio. Obbligatorietà degli attributi: in SQL, per default, un
attributo (non chiave primaria) è opzionale, cioè può assumere valori nulli. Per rendere
obbligatorio un attributo, cioè per fare in modo che il suo valore sia sempre diverso da NULL, si
usa il vincolo not null
26
DOMANDE LEZIONE 044
QUESITO 05-SPIEGARE IN CHE MODO L'ALGEBRA RELAZIONALE PUÒ ESSERE
INTESA COME UNA CONTROPARTE PROCEDURALE (O OPERAZIONALE) DEL
LINGUAGGIO SQL
L'algebra relazionale è un linguaggio procedurale: un programma (espressione) dell'algebra
specifica come calcolare il risultato, e non quale risultato si vuole raggiungere, come accade per i
linguaggi dichiarativi (ad esempio SQL). Quindi: L'algebra relazionale può essere intesa come una
controparte procedurale (o operazionale) del linguaggio SQL.
27
QUESITO 07-PERCHÉ SQL OFFRE LE FUNZIONALITÀ DESCRITTE E NON ALTRE?
La scelta delle operazioni fondamentali dell'algebra relazionale trova giustificazione nelle tre
proprietà:
▪ Espressività: ha l'espressività del calcolo dei predicati al prim'ordine. Questo risultato, fissa
l'espressività dell'algebra relazionale: le operazioni fondamentali su cui l'algebra è definita e
che sono alla base di SQL permettono di specificare tutte le formule del calcolo dei predicati al
prim'ordine. Questo risultato fissa anche i limiti dell'algebra relazionale (e di SQL). Ad
esempio, l'operazione di chiusura transitiva di una relazione non è definibile al prim'ordine.
Questa operazione non sarà definibile né in algebra relazionale né in SQL.
▪ Complessità: il problema della valutazione (del calcolo del risultato), di una espressione
dell'algebra relazionale rispetto ad una base di dati è completo nella classe di complessità
PSPACE, definita come classe dei problemi risolubili in spazio polinomiale. In realtà la
complessità della valutazione di una espressione è esponenziale nella dimensione della
espressione e polinomiale nella dimensione della base di dati.
28
QUESITO 06-DESCRIVERE LA STRUTTURA DATI DEFINITA COL TERMINE
INDICE DEFINENDONE LE TIPOLOGIE
Una struttura ausiliaria di accesso, detta indice, è una struttura di dati che velocizza l'accesso ai
record in risposta alle interrogazioni. Gli indici sono strutture ausiliarie e opzionali rispetto alle
strutture di memorizzazione dei file e non influiscono sull'organizzazione primaria dei record nei
file. Un indice è definito su uno o più attributi di una tabella e, le interrogazioni che coinvolgono
gli attributi indice beneficiano di una maggiore efficienza. Per trovare un record del valore del
campo indice, è possibile cercare nel file indice, l'indirizzo del blocco che contiene il record.
L'accesso tramite l'indice è più veloce per almeno due ragioni: l'indice contiene meno informazioni
del testo; i termini nell'indice sono ordinati, è possibile usando una ricerca dicotomica (binaria).
Perché il fattore critico dell'accesso alle basi di dati è il numero di accessi a blocchi del disco. Un
indice, essendo più ‘leggero’ del file, può essere memorizzato in meno blocchi di disco. L'accesso
ai record tramite indice riduce il numero letture su disco.
31