Databases
Databases
[Link]@[Link] v 1.0.2
Gabriele Dragotto 1 of 37
[Link]@[Link]
Basi di dati
Introduzione
INFORMAZIONE Interpretazione dei simboli grezzi o dati che vengono associati ad una
semantica.
BASE DATI Collezione di dati che rappresenta informazioni d’interesse per un
determinato sistema IT,. E’ gestito da un software DBMS
• CONDIVISE
tra utenti e applicazioni diverse, in modo integrato.
ACCESSO CONCORRENTE + RIDONDANZA + CONSISTENZA
• PERSISTENTI
il tempo di vita della basi dati non è condizionato da quello
dell’applicazione che la interroga.
Assicurando:
• AFFIDABILITA’
meccanismi di backup & recovery e duplicazione.
• PRIVATEZZA
autorizzazione e privilege separation
• EFFICIENZA ED EFFICACIA
risolvere il problema con il minor ammontare di risorse
RISPETTO AI FS
Vi è un accesso semplificato, e soprattutto condivisione.
[Link]@[Link] v 1.0.2 2 of 37
MODELLI DI DATI Insieme di concetti utili per organizzare dati d’interesse e descriverne la loro
struttura all’interno dell’elaboratore.
• SCHEMA
descrive la struttura dei dati. è invariato nel tempo
• ISTANZA
contenuto della tabella, ovvero il contenuto di dati. varia rapidamente
• LOGICO
descrive la struttura dei dati nel DBMS, tramite le relazioni tra le tabelle
stesse.
• ESTERNO
viste di dati per utenti utilizzatori finali
INDIPENDENZA I livello di gestione dei dati prescinde dal livello fisico di gestione di questi
DEI DATI ultimi.
• DML
Il data manipulation language serve per interagire con i dati
[Link]@[Link] v 1.0.2 3 of 37
TIPI DI UTENTE • DBA ADMINISTRATOR
Master della base dati: garantisce PRESTAZIONI AFFIDABILITA’ E
AUTORIZZAZIONI.
• PROGETTISTI
Definiscono e realizzano nuove basi dati, e definiscono le applicazioni di
interpolazione.
• UTENTI
Utenti finali che interagiscono tramite transazioni strutturate e
applicazioni.
Utenti casuali che interagiscono con interrogazioni customizzate e poco
strutturate.
• COSTI LICENZE
• COSTI RISORSE
• CONVERSIONE APPLICAZIONI
• FORMAZIONE PERSONALE
[Link]@[Link] v 1.0.2 4 of 37
Modello relazionale
DEFINIZIONE Nel 1970 E.F. Codd propose di elevare il livello di astrazione rispetto ai
modelli precedenti, implementando l’indipendenza dei dati.
1981 IBM implementa DB2, mentre Oracle presenta SQL Server
RELAZIONE = TABELLA
ATTRIBUTO = COLONNA
NUPLE = RECORD o RIGA = TUPLA
DOMINIO
Insieme dei valori ammissibili per un dato attributo.
CARDINALITA’
Numero di tuple della relazione
GRADO
Numero di attributi della relazione
RIFERIMENTO DEI Posso costruire legami tra tabelle diversi basandomi su valori di attributi, e
VALORI non tramite puntatori.
• INDIPENDENZA LINK
• DIREZIONAMENTO LINK
Con una chiave primaria posso aggirare il problema.
• PORTABILITA’ DATI
EX
Riordinando le tuple di una relazione i link sono compromessi. Tramite un
valore metto in relazione le tabelle, e posso modificare liberamente le tabelle.
Foreign KEYS
DATI INCOMPLETI • VALORI SPECIALI
valori fuori dal dominio che indicano l’incompletezza del dato.
Non sempre esiste un valore poco significativo —> invento null
• VALORE NULL
fuori da qualsiasi dominio. rappresenta un valore ignoto o non definito.
non tutti gli attributi possono avere il valore NULL
• VINCOLI INTER-RELAZIONALI
definiti su più relazioni contemporaneamente.
[Link]@[Link] v 1.0.2 5 of 37
CHIAVE PRIMARIA Insieme di attributi che consente di indentificare in maniera univoca le tuple.
Gode di 3 proprietà fondamentali
VINCOLI DI Esprime le condizioni sul valore assunto da un singolo attributo di una tupla.
DOMINIO
VINCOLI DI TUPLA Esprime le condizioni sul valore assunto da un singolo attributo di una tupla
basandosi su altri attributi
[Link]@[Link] v 1.0.2 6 of 37
Algebra Relazionale
• PROPRIETA’ DI CHIUSURA
il risultato di qualunque operazione algebrica su relazioni è a sua volta una
relazione.
• UNARI
• BINARI
• INSIEMISTICI
• RELAZIONALI
• UNIONE
• INTERSEZIONE
• DIFFERENZA
• PRODOTTO CARTESIANO
• SELEZIONE
• PROIEZIONE
• JOIN
• DIVISIONE
• IL PREDICATO P
E’ un’espressione booleana di confronto tra attributi e costanti.
AND OR NOT
[Link]@[Link] v 1.0.2 7 of 37
PROIEZIONE L’operatore di selezione estrae un sottoinsieme di colonne, o verticale, da
una relazione. Elimina le tuple duplicati, per mantenere la relazione.
• IL PREDICATO L
E’ un’espressione booleana di confronto tra attributi e costanti.
AND OR NOT
PRODOTTO L’operatore di prodotto cartesiano genera delle coppie formate dal tuple di
CARTESIANO due relazioni A,B,
• ASSOCIATIVA E COMMUTATIVA
• NATURAL JOIN
• THETA-JOIN
• SEMI-JOIN
[Link]@[Link] v 1.0.2 8 of 37
NATURAL JOIN Il natural join di due relazioni A,B si basa su specifiche relazioni di legame,
generando un risultato R tale che. Richiede che la condizione di legame sia
implicita.
• COMMUTATIVO E ASSOCIATIVO
THETA-JOIN Il tetha join specifica una generica condizione di legame (non solo
JOIN uguaglianza) con attributi con nomi diversi.
• CONDIZIONE DI LEGAME
Rispetto al naturale posso specificare l’operatore che lega gli attributi e i
nomi di questi.
-Unione degli schemi di A e B
-Contiene tutte le coppie contenute nelle tuple di A,B per cui è vero il
predicato p.
• IL PREDICATO E’ UN OPERATORE LOGICO
• POSSO EFFETTUARE CONTI
• COMMUTATIVO ED ASSOCIATIVO
[Link]@[Link] v 1.0.2 9 of 37
EX Selezionare tutti i docenti che hanno almeno 2 corsi.
Effettuo un theta-join, creando una tupla con i duplicati degli attributi.
CONTARE CON IL
JOIN
• RISULTATO
Il risultato ha unicamente lo schema di A
-Contiene tutte tuple di A per cui è vero il predicato che lo lega con le
tuple di B.
• IL PREDICATO E’ UN OPERATORE LOGICO
• NON E’ COMMUTATIVO
[Link]@[Link] v 1.0.2 10 of 37
OUTER JOIN L’outer join permette di conservare le informazioni relative alle tuple non
legate senticamente al predicato del JOIN.
• COMPLETA LE TUPLE
Con valori null, se prive di legame semantico
• TIPI DI OUTER JOIN
Left: Tuple del primo operando
Right: Tuple del secondo operando
Full: entrambe le tuple
FULL OUTER JOIN Unione degli attributi di A,B, completati col null. E’ commutativo
[Link]@[Link] v 1.0.2 11 of 37
UNIONE L’operatore genera una relazione finale avente lo stesso schema di A,B,
contenente tutte le tuple appartenenti ad A e tutte quelle di B.
• CONDIZIONE DI COMPATIBILITA’
Le relazioni A,B devono avere lo stesso schema, numero e nome di
attributi.
• COMMUTATIVA ED ASSOCIATIVA
INTERSEZIONE L’operatore genera una relazione finale avente lo stesso schema di A,B,
contenente tutte le tuple appartenenti sia ad A che a B.
• CONDIZIONE DI COMPATIBILITA’
Le relazioni A,B devono avere lo stesso schema, numero e nome di
attributi.
• COMMUTATIVA ED ASSOCIATIVA
DIFFERENZA
• CONDIZIONE DI COMPATIBILITA’
Le relazioni A,B devono avere lo stesso schema
• NON E’ COMMUTATIVA
[Link]@[Link] v 1.0.2 12 of 37
EX
DIFFERENZA
EX
ANTIJOIN
[Link]@[Link] v 1.0.2 13 of 37
SQL
• LINGUAGGIO DI SET
Gli operatori operano e restituiscono unicamente relazioni al massimo
dengeneri.
• LINGUAGGIO DICHIARATIVO
Non si deve prestare attenzione al come l’operazione viene eseguita.
• DML
SELECT, UPDATE, REMOVE, INSERT
• DDL
CREATE, ALTER, DROP TABLE or VIEW or INDEX
GRANT, REVOKE
COMMIT, ROLLBACK
GRAMMATICA • PARENTESI < >
Isolano un termine della sintassi
• PARENTESI [ ]
Il termine è opzionale
• PARENTESI { }
Il termine può non comparire o essere ripetuto
• PARENTESI |
Indica l’OR
DB EXEMP
[Link]@[Link] v 1.0.2 14 of 37
SELECT Istruzione di selezione dati. (include selezione e proiezione)
• CONGRUENZA ALGEBRA
Non coincide sempre con gli operatori di algebra relazionale
• DISTINCT
Applica la rimozione dei duplicati sul risultato della selezione
EX: SELECT DISTINCT CodP FROM FP;
• AS
Rinomina temporaneamente (in ram) un attributo in rename
EX: SELECT DISTINCT CodP as Codicione FROM FP;
• HAVING
Condizione di selezione sui gruppi, associata alla group by definita sui
valori aggregati.
EX: SELECT CodP, SUM(Qta) FROM FP GROUP BY CodP HAVING
SUM(Qta)>=600;
• WHERE
Permette di definire il predicato di selezione.
Puo’ essere costituito da: espressioni algebriche, booleane, LIKE (_ e %).
Può essere multiplo tramite la concatenazione con OR, AND.
Sono ammessi IS, NOT, LIKE
EX: SELECT DISTINCT CodP FROM FP WHERE Sede='Milano' OR
Sede=‘Torino' AND NSoci>2;
• GROUP BY
Crea delle partizioni per l’attributo. Le funzioni aggregate sono calcolate
sulle partizioni.
Se nel group by ho la chiave primaria della tabella, posso aggiungere altri
attributi della tabella senza cambiare il risultato.
Nella clausola select possono apparire solo attributi di Group by o
funzioni aggregate.
EX: SELECT CodP, SUM(Qta) FROM FP GROUP BY CodP;
• ORDER BY
Permette di ordinare i risultati in maniera ASC o DESC in base alle colonne
di order. Le colonne di order devono comparire nella
lista_elementi_selezione.
EX: SELECT DISTINCT CodP FROM FP ORDER by CodP DESC;
• lista_elementi_selezione
Campi, separati da virgola, selezionati. Puo’ essere una wildcard *
• lista_riferimenti_tabella
l'elenco delle tabelle da cui estrarre i dati
• numeroris
[Link]@[Link] v 1.0.2 15 of 37
JOIN Istruzione di selezione dati da più tabelle
• CONGRUENZA ALGEBRA
Non coincide sempre con gli operatori di algebra relazionale
• WHERE
Devono esserci almeno (N-1) clausole con N tabelle di JOIN
EX: SELECT [Link], [Link] FROM F AS FX, F AS FY WHERE
[Link]=[Link];
• lista_riferimenti_tabella
l'elenco delle tabelle deve essere maggiore di 2 per essere un JOIN
JOIN 2 Istruzione di selezione dati. (include selezione e proiezione)
• INNER JOIN
Una inner join crea una nuova tabella combinando i valori delle due
tabelle di partenza (A and B) basandosi su una certa regola di confronto.
La query compara ogni riga della tabella A con ciascuna riga della tabella B
cercando di soddisfare la regola di confronto definita.
• EQUI JOIN
E’ unicamente ammesso l’operatore =
• NATURAL JOIN
I campi delle tabelle devono avere nome uguale.
• OUTER JOIN
Una outer join non richiede che ci sia corrispondenza esatta tra le righe
di due tabelle. La tabella risultante da una outer join trattiene tutti quei
record che non hanno alcuna corrispondenza tra le tabelle.
LEFT Trattiene le righe della tabella di SX
RIGHT Trattiene le righe della tabella di DC
FULL Trattiene le righe di entrambe le tabelle
• lista_elementi_selezione
Nella query select può contenere le funzioni aggregate.
• Valutate dopo la clausola where
———COUNT
COUNT (<*| [DISTINCT | ALL] ListaAttributi >)
EX: SELECT COUNT(DISTINCT CodF) FROM FP;
[Link]@[Link] v 1.0.2 16 of 37
INTERROGAZIONI Un'interrogazione nidificata è un'istruzione SELECT contenuta all'interno di
NIDIFICATE un'altra interrogazione. La nidificazione di interrogazioni permette di
suddividere un problema complesso in sottoproblemi più semplici.
• UTILIZZO UGUALE
EX: SELECT CodF FROM F WHERE Sede = (SELECT Sede FROM F WHERE
CodF=‘F1');
**È possibile utilizzare '=' esclusivamente se è noto a priori che il risultato
della SELECT nidificata è sempre unico
• EQUIVALENZA JOIN
EX: SELECT [Link] FROM F AS FX, F AS FY WHERE [Link]=[Link]
[Link]='F1';
Molto spesso le selezioni nidificate equivalgono a delle query di JOIN.
In ogni caso questo non è sempre possibile.
• NOT IN
Concetto di esclusione. Da ricordare che diverso e negativo sono diversi!
NomeAttributo NOT IN (InterrogazioneNidificata)
EX: SELECT NomeF FROM F WHERE CodF NOT IN (SELECT CodF FROM
FP WHERE CodP='P2');
Trovare il nome dei fornitori che forniscono solo il prodotto P2 =Trovare il nome
dei fornitori di P2 che non hanno mai fornito prodotti diversi da P2
Insieme escluso: fornitori di prodotti diversi da P2
[Link]@[Link] v 1.0.2 17 of 37
COSTRUTTORE DI Permette di definire la struttura temporanea di una tupla tramite
TUPLA l’elencazione degli attributi necessari.
[Link]@[Link] v 1.0.2 18 of 37
TABLE FUNCTION
Permette di:
• CALCOLARE AGGREGATI A DUE LIVELLI
• IMPLEMENTARE LA CORRELAZIONE
Fornisce le sedi che sono anche magazzini, con equivalenza con una query
di JOIN.
[Link]@[Link] v 1.0.2 19 of 37
EXCEPT Definisce un risultato sottraendo B al risultato di A.
• elenco_colonne
E’ opzionale. se non messo, l’istruzione rischia di non funzionare a seguito
di un cambio di schema.
[Link]@[Link] v 1.0.2 20 of 37
CREATE Istruzione di creazione della tabella
• DOMINIO
• VALORI DI DEFAULT
< GenericoValore | USER | CURRENT_USER |SESSION_USER |
SYSTEM_USER | NULL>
• CREAZIONE DI DOMINIO
EX: CREATE DOMAIN Voto AS SMALLINT DEFAULT NULLCHECK (Voto >=
18 and Voto <=30)
•
• VINCOLI INTEGRITA’ REFERENZIALE
Devono essere rispettati per la coerenza della base dati.
• DOMINIO
• RESTRICT
Non rimuove l’elemento se è utilizzato in altre definizioni
• CASCADE
Tutti gli elementi dipendenti dall’elemento in eliminazione vengono rimossi.
• RESTRICT
Non rimuove l’elemento se è utilizzato in altre definizioni
• CASCADE
Tutti gli elementi dipendenti dall’elemento in eliminazione vengono rimossi.
METADATI Informazioni sui dati, memorizzati all’interno del dizionario dei dati.
• TABELLA
Nome e struttura fisica della tabella
Nome e struttura degli attributi
Nome degli indici
Vincoli di integrità
[Link]@[Link] v 1.0.2 22 of 37
Integrità dei dati
• 3 TIPI DI REGOLE
Procedure applicative, vincoli di integrità, trigger.
VINCOLI DI
INTEGRITA’ Il controllo sui dati è a livello del DBMS
TRIGGER Il trigger, nelle basi di dati, è una procedura che viene eseguita in maniera
automatica in coincidenza di un determinato evento
[Link]@[Link] v 1.0.2 23 of 37
SQL92 Vincoli definiti su una o più colonne della tabella.
VINCOLI I
TABELLA Tipologie di vincolo:
• CHIAVE PRIMARIA
• VALORE NULLO
• UNICITA’
• GENERALI DI TUPLA
CHIAVE PRIMARIA
Posso specificare una solo chiave primaria per tabella.
PRIMARY KEY (ElencoAttributi )
VALORE NULLO
Indica l’ammissibilità o meno del valore nullo (default: ammesso)
NomeAttributo Dominio NOT NULL
UNICITA’
Un attributo o un insieme di attributo deve essere nullo
UNIQUE (ElencoAttributi )
CHIAVE CANDIDATA
Alcuni attributi possono essere chiavi candidate, uniche e non nulle
NomeAttributo Dominio UNIQUE NOT NULL
[Link]@[Link] v 1.0.2 24 of 37
SQL92 Vincoli definiti con legami tra tabelle della base dati
VINCOLI
REFERENZIALI Tipologie di vincolo:
• FOREIGN KEY
FOREIGN KEY
Permette di relazionare le chiavi di tabelle distinte.
[Link]@[Link] v 1.0.2 25 of 37
Gestione delle transazioni
Tipologia di ritorno.
• SUCCESSO
Consolido l’aggiornamento
COMMIT[WORK]
• INSUCCESSO
Rollbackdella base dati.
START TRANSACTION
[…]
COMMIT [WORK] OR ROLLBACK [WORK]
A. ATOMICITA’
La transazione è indivisibile: devono essere eseguite tutte le
sottoperazioni. NO STATO INTERMEDIO
B. CONSISTENZA
Lo stato iniziale e finale devono essere consistenti.
VINCOLI DI INTEGRITA’
C. ISOLAZIONE
Gli stati intermedi non sono visibili e accessibili.
D. DURABILITA’
Lo stato finale persistente.
[Link]@[Link] v 1.0.2 26 of 37
Modello ER
FASI DELLA La progettazione di una base di dati è una delle attività del processo di
PROGETTAZIONE sviluppo di un sistema informativo
• STUDIO DI FATTIBILITA’
• PROTOTIPAZIONE
• IMPLEMENTAZIONE
• VALIDAZIONE E TESTING
• FUNZIONAMENTO
• FORMALE
• INDIPENDETE DAL DBMS
• MODELLO GRAFICO
[Link]@[Link] v 1.0.2 27 of 37
ENTITA’ Rappresentano classi di oggetti (fatti, cose, persone, ...) che hanno proprietà
comuni ed esistenza autonoma ai fini dell'applicazione di interesse.
• PROPRIETA’ COMUNI
• ESISTENZA AUTONOMA
Un'interessante conseguenza di questo fatto è che un'occorrenza di entità
ha un'esistenza indipendente dalle proprietà ad essa associate.
• PUO’ ESSERE GENERALIZZATA
Persona - DONNA e UOMO (SituazioneMilitare)
RELAZIONE Le relazioni (dette anche associazioni) rappresentano un legame tra due o
più entità.
OCCORRENZA
Un’occorrenza di una relazione è una n-upla (coppia nel caso di relazione
binaria) costituita da occorrenze di entità, una per ciascuna delle entità
coinvolte
CARDINALITA’
Vengono specificate per ciascuna entità che partecipa a una relazione e
dicono quante volte, in una relazione tra entità, un'occorrenza di una di
queste entità può essere legata ad occorrenze delle altre entità coinvolte
nella relazione
(MIN,MAX)
ATTENZIONE:
[Link]@[Link] v 1.0.2 28 of 37
ATRRIBUTI Le entità e le relazioni possono essere descritte usando una serie di
attributi. Tutti gli oggetti della stessa classe entità (associazione) hanno gli
stessi attributi
DOMINIO
Insieme di valori ammissibili per l’attributo.
ATTRIBUTO COMPOSTO
Attributo composto da sotto-attributi
CARDINALITA’
Vincoli di cardinalità per il singolo attributo:
• INDICARE OPZIONALITA’ (0,1)
• INDICARE ATTRIBUTI MULTIVALORE (0,N)
[Link]@[Link] v 1.0.2 29 of 37
IDENTIFICATORI Costituiscono un sottoinsieme degli attributi di un'entità che identificano in
maniera univoca ogni occorrenza della stessa entità.
SEMPLICE O COMPOSTO
Può essere costituito da uno o più attributi
ENTITA’ DEBOLE
Entità che non possiede internamente attributi identificatori sufficienti.
L’entità debole deve partecipare con cardinalità (1,1) in ognuna delle
relazioni che forniscono parte dell’identificatore
GENERALIZZAZIO Rappresentano dei legami logici esistenti tra due o più entità. Tra le entità
NI coinvolte si distinguono:
[Link]@[Link] v 1.0.2 30 of 37
DOCS Il modello ER viene arricchito con dizionario e schema dei vincoli di
integrità.
GESTIONE DEL
TEMPO
[Link]@[Link] v 1.0.2 31 of 37
Gestione delle viste
DEFINIZIONE Una vista è rappresentata da una query (SELECT), il cui risultato può essere
utilizzato come se fosse una tabella.
• RISULTATO RICALCOLATO
Ad ogni apertura della vista
• OGGETTO INTERROGABILE
Come se fosse una tabella
• DECOMPOSIZIONE PROBLEMA
Problemi complessi vengono scomposti tramite l’utilizzo delle viste.
• DEFINIZIONE ATTRIBUTI
• AGGIORNABILITA’ VISTE
sono aggiornabili le viste in cui una sola riga di ciascuna tabella di base
corrisponde a una sola riga della vista CORRISPONDENZA UNIVOCA
• CHECK OPTION
Vieta operazioni di inserimento e aggiornamento per le quali una tupla
possa diventare non visibile.
• CASCADED | LOCAL
Se la vista è definita tramite altre viste, il controllo check-option può venire
effettuato sulla vista più esterna LOCAL o su tutte con CASCADED
[Link]@[Link] v 1.0.2 32 of 37
DEFINIZIONE “We make datas faster” ®
• LOCAZIONE FISICA
Permette di accedere ad un dato direttamente, conoscendo il suo
indirizzo!
• STRUTTURE FISICHE
Le strutture fisiche di accesso descrivono il modo in cui i dati sono
organizzati in memoria secondaria per garantire operazioni di ricerca e
modifica dei dati efficienti
[Link]@[Link] v 1.0.2 33 of 37
STRUTTURA AD Disposizione TREE o BTREE+
ALBERO
STRUTTURA AD I record sono inseriti nel file nell'ordine determinato applicando una funzione
ACCESSO di hash ai valori di un campo, detto campo di hash
CALCOLATO HASH TABLE - HASH MAP
• HASH FUNCTION
Che riceve come parametro la chiave di ordinamento
• CHIAVE DI ORDINAMENTO
Composta da uno o più attributi
DEFINIZIONE SQL • STRUTTURA FISICA
Ordinata o meno
• ATTRIBUTI INDICIZZATI
• DEFINIZIONE TIPO INDICE
• VARIAZIONI DELLO SCHEMA
[Link]@[Link] v 1.0.2 34 of 37
Normalizzazione
ESEMPIO
Una relazione r soddisfa la dipendenza funzionale X ->Y se, per ogni coppia
t1, t2 di tuple di r, aventi gli stessi valori per gli attributi in X, t1 e t2 hanno
gli stessi valori anche per gli attributi in Y
FORMA BOYCE- “Una relazione r è in BCNF se, per ogni dipendenza funzionale (non banale)
CODD X -> Y definita su di essa, X contiene una chiave di r (X è superchiave di r) “
NORMALIZZAZIO “Processo di sostituzione di una relazione non normalizzata con due o più
NE relazioni in BCNF“
CRITERIO
una relazione che rappresenta più concetti indipendenti è decomposta in
relazioni più piccole, una per ogni concetto, per mezzo delle dipendenze
funzionali
[Link]@[Link] v 1.0.2 35 of 37
DECOMPOSIZIZ. DECOMPOSIZIONE SENZA PERDITA
SENZA PERDITA La decomposizione di una relazione r su due insiemi di attributi X1 e X2 è
senza perdita di informazione se il join delle proiezioni di r su X1 e X2 è
uguale a r stessa
[Link]@[Link] v 1.0.2 36 of 37
Note finali
Alcuni dei contenuti presenti nelle seguenti dispense sono stati liberamente tratti dai
materiali didattici disponibili al Politecnico di Torino.
Le dispense sono state elaborate dal sottoscritto come complemento allo studio e non
intendono in alcun modo sostituire la completezza dei libri di testo e delle lezioni dalle quali
sono state liberamente tratte.
Le dispense sono state scritte per l’esame di Basi di Dati dell’A.A. 2016-2017, docente Elena
Baralis, corso di laurea in Ingegneria Gestionale L8.
E’ doveroso quindi citare alcuni delle fonti da cui sono stati liberamente tratti alcune parti di
esercizi e/o metodologie di soluzione:
• Elena Maria Baralis, Luca Cagliero, Whiteboard e appunti del corso di Basi di Dati, A.A.
2016-2017.
• [Link]
[Link]@[Link] v 1.0.2 37 of 37