![Page 1: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/1.jpg)
Agent and Object Technology LabDipartimento di Ingegneria dell’Informazione
Università degli Studi di Parma
AOTAOTLABLAB
Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica Fondamenti di Informatica
Basi di dati
Michele Tomaiuolo
![Page 2: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/2.jpg)
2
AOTAOTLABLAB Sistema informativoSistema informativoSistema informativoSistema informativo
� Un sistema informativo è composto da un insieme di programmi concorrenti:
� Ogni programma opera su un certo insieme di dati
� Dei dati possono essere condivisi da alcuni programmi
� La più semplice soluzione è che ogni programma del sistema gestisca separatamente i suoi dati
� Un’altra soluzione è interporre tra i programmi e i dati un programma chiamato Data Base Management System (DBMS) dedicato alla gestione dei dati
![Page 3: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/3.jpg)
3
AOTAOTLABLAB Gestione distinta dei datiGestione distinta dei datiGestione distinta dei datiGestione distinta dei dati
dati1 Dati2
Prog1
Prog2
Prog3
Dati4Dati5
Dati6
Dati3
![Page 4: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/4.jpg)
4
AOTAOTLABLAB
� Problemi di ridondanza dei dati� Esistono più copie di un dato
� Problemi di inconsistenza� Copie dello stesso dato sono modificate diversamente
� Problemi di privatezza� Dati riservati sono accessibili a persone non autorizzate
� Problemi di integrità� Il valore di un dato è modificato a causa di una operazione
incompleta o sbagliata
� Problemi di concorrenza� L’accesso e l’aggiornamento ai dati da parte di programmi differenti
non è sincronizzato
Limiti della gestione distintaLimiti della gestione distintaLimiti della gestione distintaLimiti della gestione distinta
![Page 5: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/5.jpg)
5
AOTAOTLABLAB Gestione condivisa dei datiGestione condivisa dei datiGestione condivisa dei datiGestione condivisa dei dati
Prog1 Prog2
Prog3
DBMS
Base di Dati
![Page 6: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/6.jpg)
6
AOTAOTLABLAB
� L’introduzione del DBMS comporta dei costi aggiuntivi in termini di investimento:
� Necessità di hardware aggiuntivo
� Necessità del DBMS
� L’introduzione del DBMS comporta dei costi aggiuntivi in termini di tempi di elaborazione:
� Uso di metodi di descrizione e manipolazione non specializzati per un particolare insieme di dati
� Gestione della sicurezza, integrità, concorrenza, back up e ripristino dei dati
Limiti della gestione condivisaLimiti della gestione condivisaLimiti della gestione condivisaLimiti della gestione condivisa
![Page 7: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/7.jpg)
7
AOTAOTLABLAB Vantaggi dellVantaggi dellVantaggi dellVantaggi dell’’’’uso di un DBMSuso di un DBMSuso di un DBMSuso di un DBMS
� Tutte le azioni sui dati vengono svolte dal DBMS:
� Si controlla la ridondanza sui dati
� Si controlla l’inconsistenza dei dati
� Si controlla l’integrità dei dati
� Si permette la condivisione dei dati
� Si gestisce l’accesso concorrente ai dati
![Page 8: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/8.jpg)
8
AOTAOTLABLAB Vantaggi dellVantaggi dellVantaggi dellVantaggi dell’’’’uso di un DBMSuso di un DBMSuso di un DBMSuso di un DBMS
� Inoltre un DBMS permette di:
� Imporre degli standard sul formato dei dati
� Gestire il back up e il ripristino dei dati
� Restringere l’accesso ai dati
� Fornire un insieme di interfacce utente
� Aumentare la flessibilità del sistema
� Ottimizzare l’uso delle risorse
![Page 9: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/9.jpg)
9
AOTAOTLABLAB Quando non usare un DBMSQuando non usare un DBMSQuando non usare un DBMSQuando non usare un DBMS
� Quando un programma usa un insieme di dati:
� Piccolo e ben definito
� Non cambia col passare del tempo
� Non è condiviso con altri programmi
� Quando un programma richiede delle prestazioni in tempo reale
![Page 10: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/10.jpg)
10
AOTAOTLABLAB Gestione dei Gestione dei Gestione dei Gestione dei clienticlienticlienticlienti di una di una di una di una bancabancabancabanca
� Si consideri una banca che deve gestire le informazioni relative ai suoi dipendenti, ai suoi clienti e a i servizi offerti� Gestire i conti esistenti (aggiungere/togliere denaro)� Creare i nuovi conti� Avere informazioni su un certo conto� Generare estratti conto mensili
� Man mano che si manifestano nuove esigenze, può essere necessario modificare le applicazioni esistenti o disporre di nuovi programmi
� Ad esempio, se intervengono nuove disposizioni in materia bancaria, allora bisogna aggiornare il sistema informativo
![Page 11: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/11.jpg)
11
AOTAOTLABLAB Gestione di Gestione di Gestione di Gestione di una universituna universituna universituna universitàààà
� Si consideri un’università che deve gestire le informazioni relative ai suoi dipendenti, ai suoi studenti e a i servizi offerti� Gestire il pagamento delle tasse di iscrizione� Gestire i piani di studio degli studenti� Generare documenti di attestazione
� Man mano che si manifestano nuove esigenze, può essere necessario modificare le applicazioni esistenti o disporre di nuovi programmi
� Ad esempio, se intervengono nuove disposizioni sul modo di conseguire una laurea, allora bisogna aggiornare il sistema informativo
![Page 12: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/12.jpg)
12
AOTAOTLABLAB Cosa Cosa Cosa Cosa èèèè una base di datiuna base di datiuna base di datiuna base di dati
� Una base di dati è una collezione di dati logicamente coerenti con preciso significato
� Un assortimento casuale di dati non può essere indicato come una base di dati
� Una base di dati è disegnata, costruita ed utilizzata per gestire dati condivisi da un certo numero di utenti e/o applicazioni
� Una base di dati rappresenta degli aspetti del mondo reale� I cambiamenti del mondo reale hanno riflesso sulla
base di dati
![Page 13: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/13.jpg)
13
AOTAOTLABLAB Cosa Cosa Cosa Cosa èèèè un DBMSun DBMSun DBMSun DBMS
� Un Data Base Management System (DBMS) è un sistema software che:
� Si interpone fra le applicazioni e la memoria di massa dove si trovano le collezioni di dati
� Consente la gestione dei dati, in modo indipendente dalle applicazioni stesse
� I dati non appartengono ad una specifica applicazione, ma le diverse applicazioni vi accedono attraverso il DBMS
![Page 14: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/14.jpg)
14
AOTAOTLABLAB Cosa Cosa Cosa Cosa èèèè un DBMSun DBMSun DBMSun DBMS
� Le basi di dati gestite dai DBMS sono in generale strutture dati, organizzate secondo modelli ben definiti e specificati a priori, aventi le seguenti caratteristiche:
� Grandi: possono avere notevoli dimensioni (fino a migliaia di Gbyte) e devono quindi risiedere nella memoria secondaria
� Condivise: applicazioni ed utenti diversi devono potere accedere ai dati
� Persistenti: il tempo di vita dei dati va oltre la durata dell’esecuzione delle singole applicazioni
![Page 15: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/15.jpg)
15
AOTAOTLABLAB Cosa Cosa Cosa Cosa èèèè un DBMSun DBMSun DBMSun DBMS
� Un DBMS è un sistema di "facilities" per effettuare le tre operazioni fondamentali sui dati:
� Ricerca
� Aggiornamento
� Cancellazione
![Page 16: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/16.jpg)
16
AOTAOTLABLAB Cosa Cosa Cosa Cosa èèèè un DBMSun DBMSun DBMSun DBMS
� Un DBMS è caratterizzato da:
� Controllo centralizzato dei dati
� Riduzione della ridondanza dei dati
� Eliminazione delle inconsistenze nei dati
� Condivisione dei dati tra gli utenti
� Uso di standard di rappresentazione
� Uso di restrizioni d’accesso ai dati
� Mantenimento dell'integrità dei dati per mezzo di procedure di validazione
� Realizzazione della indipendenza dei dati
![Page 17: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/17.jpg)
17
AOTAOTLABLAB Architettura di un DBMSArchitettura di un DBMSArchitettura di un DBMSArchitettura di un DBMS
� Ogni DBMS é basato su:
� Un modello dei dati
� Un linguaggio di manipolazione
� I DBMS sono classificati:
� Per tipo di modello di dati
� Per numero di utenti che può servire in parallelo
� Per numero di nodi di calcolo coinvolti
![Page 18: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/18.jpg)
18
AOTAOTLABLAB Architettura di un DBMSArchitettura di un DBMSArchitettura di un DBMSArchitettura di un DBMS
utente Programmi applicativi / interrogazioni
Software per processare i programmi
e le interrogazioni
Software per accedere
ai dati memorizzati
Meta
DatiDati
DBMS Software
![Page 19: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/19.jpg)
19
AOTAOTLABLAB Livelli di astrazioneLivelli di astrazioneLivelli di astrazioneLivelli di astrazione
� Un DBMS dovrebbe fornire una visione astratta della base di dati:
� Livello (schema) fisico: descrive la base di dati come un insieme di record in memoria di massa
� Livello (schema) logico: descrive la struttura di ciascun dato e i collegamenti tra dati diversi
� Livello (schema) esterno: presenta i dati così come vengono visti da un particolare utente o da una classe di utenti
![Page 20: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/20.jpg)
20
AOTAOTLABLAB Livelli di astrazioneLivelli di astrazioneLivelli di astrazioneLivelli di astrazione
� Un DBMS dovrebbe fornire indipendenza fisica e logica
� L’Indipendenza fisica garantisce che il livello logico non dipende:� Dall’implementazione del DBMS� Dal calcolatore su cui è installato il DBMS� Dal modo in cui in cui i dati sono distribuiti su più macchine
� Questo permette di ridefinire il livello fisico senza modificare il livello logico
� L’indipendenza logica garantisce che il livello esterno non dipende dal livello logico
� Questo permette di definire nuovi schemi esterni senza modifica la struttura logica
![Page 21: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/21.jpg)
21
AOTAOTLABLAB Architettura a tre livelliArchitettura a tre livelliArchitettura a tre livelliArchitettura a tre livelli
Utenti finali
Linguaggio Host
+ DSL
Linguaggio Host
+ DSL
Linguaggio Host
+ DSL
Vista esterna A Vista esterna B
Vista Concettuale
Data Base Fisico
DBMS
mappatura concettuale/interna
mappatura esterna/concettuale
. . .
![Page 22: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/22.jpg)
22
AOTAOTLABLAB Sistemi Sistemi Sistemi Sistemi transazionalitransazionalitransazionalitransazionali
� La condivisione dei dati e l’accesso concorrente comporta il problema del mantenimento della congruenza dei dati
� Un esempio, il prelievo da un conto corrente (cc) effettuato con la sequenza di due operazioni:� Controllo della disponibilità� Sottrazione della somma prelevata
� Due prelievi contemporanei di 1000 € su un cc con saldo di 1000 €:� A verifica cc >= 1000 €� B verifica cc >= 1000 €� A sottrae 1000 €� B sottrae 1000 €
� Ottenendo sul cc un saldo finale di -1000 €!
![Page 23: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/23.jpg)
23
AOTAOTLABLAB Sistemi Sistemi Sistemi Sistemi transazionalitransazionalitransazionalitransazionali
t
verifica cc >= 1000 €
verifica cc >= 1000 €
sottrae 1000 €
sottrae 1000 €
A B
![Page 24: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/24.jpg)
24
AOTAOTLABLAB Sistemi Sistemi Sistemi Sistemi transazionalitransazionalitransazionalitransazionali
� Una transazione è un insieme di operazioni sui dati che devono essere eseguite completamente, prima che gli stessi dati siano nuovamente disponibili
� La transazione rappresenta un’insieme di operazioni non decomponibili sui dati (si parla di "atomicità della transazione”)
� Nell’esempio precedente le operazioni:� Controllo della disponibilità� Sottrazione della somma addebitata
devono essere contenute in un’unica transazione
![Page 25: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/25.jpg)
25
AOTAOTLABLAB Sistemi Sistemi Sistemi Sistemi transazionalitransazionalitransazionalitransazionali
t
verifica cc >= 1000 €
verifica cc >= 1000 €
sottrae 1000 €
sottrae 1000 €
A B
![Page 26: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/26.jpg)
26
AOTAOTLABLAB Modelli dei datiModelli dei datiModelli dei datiModelli dei dati
� Il modello dei dati caratterizza il livello concettuale e quello esterno dei DBMS
� È definito da regole precise e permette di esprimere sia le proprietà statiche che quelle dinamiche dei dati
� Evoluzione dei modelli:
� Gerarchico (anni 1960)� Reticolare (anni 1970)� Relazionale (anni 1970)� Object Relational ed Object Oriented (anni 1980)
![Page 27: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/27.jpg)
27
AOTAOTLABLAB Modello relazionaleModello relazionaleModello relazionaleModello relazionale
� Proposto da Codd nel 1970 e disponibile come modello logico in DBMS reali nel 1981
� Il modello relazionale si basa sul concetto matematico di relazione e utilizza le tabelle come rappresentazione naturale delle relazioni
� Il successo del modello relazionale è in gran parte dovuto alla semplicità di utilizzo, data dal fatto che si appoggia ad un modo di rappresentate i dati a noi familiare:
� le tabelle
![Page 28: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/28.jpg)
28
AOTAOTLABLAB Modello relazionaleModello relazionaleModello relazionaleModello relazionale
� Nel modello relazionale ogni relazione èsostanzialmente una tabella
� A ciascun dominio associamo un nome (attributo), unico nella relazione, che “descrive” il ruolo del dominio
� Nella rappresentazione tabellare, gli attributi sono usati come intestazioni delle colonne
� Le informazioni sono rappresentate dalle righe presenti nelle tabelle
![Page 29: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/29.jpg)
29
AOTAOTLABLAB Database universitarioDatabase universitarioDatabase universitarioDatabase universitario
studenti
esamicorsi
![Page 30: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/30.jpg)
30
AOTAOTLABLAB TerminologiaTerminologiaTerminologiaTerminologia
studenti
Riga-Record -Tupla
Colonna - Campo - Attributo
Tabella - Relazione - File
Schema
![Page 31: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/31.jpg)
31
AOTAOTLABLAB CaratteristicheCaratteristicheCaratteristicheCaratteristiche
� Le righe di una tabella sono definite dall'insieme dei valori corrispondenti ai campi della tabella stessa
� I valori che possono essere assegnati a ciascun campo sono il dominio di quel campo
� Il dominio di un campo è l’insieme di tutti e soli i valori che possono essere assunti da un determinato attributo di una relazione
� Ad esempio, il dominio dei codici fiscali è formato da stringhe di 16 caratteri composte seguendo con precisione la regola di generazione dei codici fiscali
![Page 32: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/32.jpg)
32
AOTAOTLABLAB CaratteristicheCaratteristicheCaratteristicheCaratteristiche
� Informazioni contenute in tabelle distinte possono essere associate semplicemente per mezzo della condivisione di campi (ossia di domini) tra tali tabelle
� Ad esempio, nel database universitario:
� Studenti ed esami sono associati con i campi matricola e studente
• Corsi ed esami sono associati con i campi corso e codice
� Il modello relazionale basa la propria forza sulla semplicità
![Page 33: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/33.jpg)
33
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
studenti
Esamicorsi
![Page 34: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/34.jpg)
34
AOTAOTLABLAB DefinizioneDefinizioneDefinizioneDefinizione
� Data una collezione di insiemi D1,...,Dn, non necessariamente distinti
� Una relazione R su tali insiemi è un insieme di n-uple ordinate (d1,...,dn) tali che d1 ∈ D1,..., dn ∈ Dn
� Gli insiemi Di si dicono domini della relazione� Il valore n è il grado della relazione� Il numero di n-uple presenti in R rappresenta la
cardinalità della relazione
� Una relazione R sugli insiemi D1,...,Dn è un sottoinsieme del prodotto cartesiano D1 x D2 x ... x Dn
![Page 35: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/35.jpg)
35
AOTAOTLABLAB NormalizzazioneNormalizzazioneNormalizzazioneNormalizzazione
� Tutte le relazioni di un DB relazionale devono essere normalizzate, cioè:
� Ciascun attributo in ogni riga, deve essere “atomico”
� Ossia non scomponibile in valori elementari
![Page 36: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/36.jpg)
36
AOTAOTLABLAB NormalizzazioneNormalizzazioneNormalizzazioneNormalizzazione
studenti
studenti
![Page 37: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/37.jpg)
37
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
� Una tabella (relazione) non dovrebbe contenere due righe identiche
� E’ sempre possibile scegliere un sottoinsieme di campi di una tabella in maniera da identificare univocamente ciascuna riga della tabella
� La chiave primaria (primary key, PK) di una tabella è il minimo sottoinsieme di campi che permette di identificare univocamente le righe della tabella
![Page 38: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/38.jpg)
38
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
studenti
Esamicorsi
![Page 39: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/39.jpg)
39
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
� Le chiavi candidate sono gli attributi in una relazione con la proprietà di poter essere la chiave primaria:
� Tra le chiavi candidate deve essere scelta la chiave primaria
� Le chiavi escluse si dicono chiavi alternative
� Le righe di una tabella rappresentano “entità” del mondo reale
� La chiave primaria rappresenta il modo con cui èpossibile distinguere queste entità
![Page 40: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/40.jpg)
40
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
� Le informazioni presenti in tabelle diverse possono essere associate tra loro perché tali tabelle hanno dei domini in comune
� Quando il dominio di un campo K che è chiave primaria in una tabella A è presente anche in un’altra tabella B
� Allora questo campo K è detto chiave esterna (foreign key, FK) verso la tabella A
![Page 41: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/41.jpg)
41
AOTAOTLABLAB Concetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiaveConcetto e tipi di chiave
Esami
studenti
![Page 42: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/42.jpg)
42
AOTAOTLABLAB OperatoriOperatoriOperatoriOperatori
� Gli operatori relazioni rappresentano la base teorica per i linguaggi di interrogazioni delle basi di dati relazionali
� Quindi sono anche la base del linguaggio base di interrogazione delle basi di dati relazionali
� Gli operatori relazionali permettono l’esecuzione di ricerche considerando le tabelle come insiemi, senza operare record per record
� Gli operatori prendono in input tabelle e generano in output nuove tabelle
![Page 43: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/43.jpg)
43
AOTAOTLABLAB OperatoriOperatoriOperatoriOperatori
� Gli operatori dell’algebra relazionale sono:
� Unione
� Intersezione
� Differenza
� Ridenominazione
� Selezione
� Proiezione
� Join
![Page 44: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/44.jpg)
44
AOTAOTLABLAB Operatori Operatori Operatori Operatori insiemisticiinsiemisticiinsiemisticiinsiemistici
� Le relazioni rappresentano degli insiemi
� Se applichiamo gli operatori insiemistici (unione, intersezione e differenza) a delle relazioni otteniamo delle altre relazioni
� È importante sottolineare che è possibile applicare gli operatori insiemistici solo a relazioni definite sugli stessi attributi
![Page 45: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/45.jpg)
45
AOTAOTLABLAB Operatori Operatori Operatori Operatori insiemisticiinsiemisticiinsiemisticiinsiemistici
laureati
quadri
reparti
![Page 46: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/46.jpg)
46
AOTAOTLABLAB UnioneUnioneUnioneUnione
laureati quadri
laureati ∪∪∪∪ quadri
![Page 47: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/47.jpg)
47
AOTAOTLABLAB IntersezioneIntersezioneIntersezioneIntersezione
laureati quadri
laureati ∩∩∩∩ quadri
![Page 48: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/48.jpg)
48
AOTAOTLABLAB DifferenzaDifferenzaDifferenzaDifferenza
laureati quadri
laureati - quadri
![Page 49: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/49.jpg)
49
AOTAOTLABLAB RidenominazioneRidenominazioneRidenominazioneRidenominazione
� L’operatore di ridenominazione viene applicato ad un unica relazione (operatore monadico)
� Questo operatore modifica lo schema della relazione lasciando inalterati i valori delle righe della relazione
� Questo operatore, come dice già il suo nome, ha lo scopo di rinominare un attributo di una relazione
![Page 50: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/50.jpg)
50
AOTAOTLABLAB RidenominazioneRidenominazioneRidenominazioneRidenominazione
paternità
maternità
![Page 51: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/51.jpg)
51
AOTAOTLABLAB Selezione e Selezione e Selezione e Selezione e proiezioneproiezioneproiezioneproiezione
selezione
proiezione
![Page 52: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/52.jpg)
52
AOTAOTLABLAB SelezioneSelezioneSelezioneSelezione
� L’operatore di selezione viene applicato ad un unica relazione
� Questo operatore costruisce una nuova relazione:
� Estrae un sottoinsieme orizzontale delle righe di una relazione specificata in input
� Selezionando le righe che soddisfano una condizione espressa sui valori degli attributi della relazione in input
![Page 53: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/53.jpg)
53
AOTAOTLABLAB SelezioneSelezioneSelezioneSelezione
![Page 54: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/54.jpg)
54
AOTAOTLABLAB ProiezioneProiezioneProiezioneProiezione
� L’operatore di proiezione viene applicato ad un unica relazione
� Questo operatore costruisce una nuova relazione:
� Estrae un sottoinsieme verticale degli attributi di una relazione specificata in input
� Rimuovendo inoltre eventuali n-uple duplicate
![Page 55: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/55.jpg)
55
AOTAOTLABLAB ProiezioneProiezioneProiezioneProiezione
![Page 56: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/56.jpg)
56
AOTAOTLABLAB JoinJoinJoinJoin
� L’operatore di join viene applicato a due relazioni
� Questo operatore costruisce una nuova relazione:
� Utilizzando un attributo (dominio) comune alle due tabelle originali
� Scegliendo le righe della prima relazione e della seconda tabella che hanno lo stesso valore per l'attributo comune
� Concatenando queste righe
![Page 57: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/57.jpg)
57
AOTAOTLABLAB JoinJoinJoinJoin
![Page 58: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/58.jpg)
58
AOTAOTLABLAB JoinJoinJoinJoin
![Page 59: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/59.jpg)
59
AOTAOTLABLAB JoinJoinJoinJoin
![Page 60: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/60.jpg)
60
AOTAOTLABLAB Prodotto Prodotto Prodotto Prodotto cartesianocartesianocartesianocartesiano
� Il prodotto cartesiano è un join su due relazioni senza l’utilizzo di attributi in comune
� Il risultato di questa operazione contiene sempre un numero di ennuple pari al prodotto delle cardinalità degli operandi (le ennuple sono tutte combinabili)
![Page 61: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/61.jpg)
61
AOTAOTLABLAB Prodotto Prodotto Prodotto Prodotto cartesianocartesianocartesianocartesiano
![Page 62: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/62.jpg)
62
AOTAOTLABLAB Combinazione degli Combinazione degli Combinazione degli Combinazione degli operatorioperatorioperatorioperatori
� Combinando:
� Selezione e proiezione
� Possiamo raffinare la ricerca di informazioni da una singola relazione
� Combinando:
� Join e selezione � Join e proiezione
� Possiamo raffinare la ricerca di informazioni da piùrelazione
![Page 63: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/63.jpg)
63
AOTAOTLABLAB Combinazione degli Combinazione degli Combinazione degli Combinazione degli operatorioperatorioperatorioperatori
![Page 64: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/64.jpg)
64
AOTAOTLABLAB Combinazione degli Combinazione degli Combinazione degli Combinazione degli operatorioperatorioperatorioperatori
SEL Capo = Bruni (Impiegati JOIN Reparti)
Impiegati
Reparti
![Page 65: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/65.jpg)
65
AOTAOTLABLAB Combinazione degli Combinazione degli Combinazione degli Combinazione degli operatorioperatorioperatorioperatori
PROJ Impiegato, Capo (Impiegati JOIN Reparti)
Impiegati
Reparti
![Page 66: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/66.jpg)
66
AOTAOTLABLAB SqlSqlSqlSql
� Sql (Structured Query Language) è il linguaggio di riferimento per la manipolazione e l’interrogazione di basi di dati relazionali
� Sql deriva da una prima proposta di linguaggio di Ibmchiamato Sequel (1974)
� Le prime implementazioni sono di Ibm e Oracle (1981)
� Dal 1983 è lo “standard di fatto” per la manipolazione e l’interrogazione di basi di dati relazionali
� Il linguaggio ha avuto una evoluzione negli anni corrispondenti ad aggiornamenti delle sue specifiche nel 1986, 1989, 1992 e infine 1999
![Page 67: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/67.jpg)
67
AOTAOTLABLAB OperatoriOperatoriOperatoriOperatori
� create table NomeTabella (NomeAttributo Dominio [ Vincoli ],........NomeAttributo Dominio [ Vincoli ],[ AltriVincoli ]
)
� select Attributo … Attributofrom Tabella … Tabella[where Condizione]
![Page 68: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/68.jpg)
68
AOTAOTLABLAB OperatoriOperatoriOperatoriOperatori
� insert into Tabella [ ( Attributi ) ]values( Valori )
� insert into Tabella [ ( Attributi ) ]select ...
� update NomeTabellaset Attributo = < Espressione
| select … | null | default >[ where Condizione ]
� delete from Tabella [ where Condizione ]
![Page 69: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/69.jpg)
69
AOTAOTLABLAB CreazioneCreazioneCreazioneCreazione
create table Impiegato (Matricola character(6) primary key,Nome character(20) not null,Cognome character(20) not null,Sede character(15),Stipendio numeric(9) default 0,Citta character(15),foreign key(Sede) references Dipartimento(NomeDip), unique (Cognome,Nome)
)
![Page 70: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/70.jpg)
70
AOTAOTLABLAB CreazioneCreazioneCreazioneCreazione
create table persone (nome character(20) primary key,eta numeric(3),reddito numeric(9)
);create table paternita (
padre character(20),figlio character(20) unique
);create table maternita (
madre character(20),figlio character(20) unique
);
![Page 71: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/71.jpg)
71
AOTAOTLABLAB RicercaRicercaRicercaRicerca
� Dimmi il nome e il reddito delle persone con etàminore di 30 anniselect nome, reddito from persone where eta < 30
� Dimmi i dati delle persone con età minore di 30 anni
select * from persone where eta < 30
� Dimmi i padri delle persone che guadagnano piùdi 200 mila euro
select paternita.padre from persone, paternita where
persona.reddito > 200000 andpaternità.figlio = persona.nome
![Page 72: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/72.jpg)
72
AOTAOTLABLAB RicercaRicercaRicercaRicerca
� Dimmi nome, reddito e reddito del padre delle persone che guadagnano più del loro padreselect f.nome, f.reddito, p.reddito
from persone f, paternità t, persone p where
f.name = t.figlio andp.nome = t.padre andf.reddito > p.reddito
� Dimmi il nome del padre e della madre di ogni persona
select paternita.figlio, padre, madrefrom paternita, maternita where
paternita.figlio = maternita.figlio
![Page 73: AOT A O T Lab · 2012. 11. 2. · Prog3 Dati4 Dati5 Dati6 Dati3. 4 AOT LAB Problemi di ridondanza dei dati Esistono più copie di un dato Problemi di inconsistenza ... primaria: Tra](https://reader034.vdocuments.net/reader034/viewer/2022052003/60163f590d34b91feb56c0c5/html5/thumbnails/73.jpg)
73
AOTAOTLABLAB Manipolazione Manipolazione Manipolazione Manipolazione datidatidatidati
insert into personevalues('Mario',25,52)
insert into persone(nome, eta, reddito)values('Pino',25,52)
delete from persone where eta < 35
update personeset reddito = 45 where nome = 'Piero‘
update personeset reddito = reddito * 1.1 where eta < 30