Database
Prof. Alessandra Musolino a.a. 2020/2021
Basi di Dati
• Collezione (organizzata, persistente, condivisa, di notevoli dimensioni e varietà) di dati
• Una sola rappresentazione che eviti ridondanze, disallineamenti e inutili ripetizioni di operazioni;
• Si possono controllare meglio (concorrenza su dati condivisi e rispetto vincoli di integrità);
• Accesso gestito e regolato da un sistema di gestione della base dati (DBMS) che assicura: efficienza, usabilità,
riservatezza e affidabilità dei dati (in generale tramite un
“database server” accessibile in un ambiente distribuito in rete a più stazioni di lavoro client)
Dimensioni DB
1)La biblioteca del Congresso
2)La Central Intelligence Agency (CIA) 3)Amazon
4)YouTube
5)ChoicePoint (informazioni finanziarie)
6)Sprint (2.85 trilioni di righe nel database) (telecomunicazioni) 7)Google
8)AT&T (telecomunicazioni)
9)National Energy Research Scientific Computing Center (NERSC) 10)The World Data Centre for Climate (WDCC) (Germania)
Data Base Management System — DBMS
Sistema (software) in grado di gestire collezioni di dati che siano:
• di grandi dimensioni, (molto) maggiori della memoria centrale dei singoli sistemi di calcolo utilizzati (GB, TB,…)
• persistenti: periodo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano (memoria secondaria)
• condivise: utilizzate da applicazioni e utenti diversi in maniera consistente assicurando nel contempo che i DB siano:
• affidabili: alta tolleranza ai guasti (hw e sw) con funzionalità avanzate di ripristino e backup.
• sicuri: una disciplina e controllo degli accessi (meccanismi di autenticazione).
• efficienti: performance accettabili (utilizzando al meglio le
risorse di spazio e tempo del sistema e rendendo produttive le attività dei suoi utilizzatori).
Basi dati e fogli elettronici a confronto
• Entrambe le applicazioni archiviano i dati in forma tabellare
• Alcune funzioni sono molto simili
• Le caratteristiche che le differenziano fortemente possono riassumersi in:
– Capacità analitica
• Formule e funzioni, strumenti di analisi nel foglio elettronico
• Query in database
– Capacità di memorizzazione
• La funzione principale del DB è la gestione di enormi quantità di informazioni
Cenni storici DBMS
➢Modello gerarchico
• Se i dati sono organizzabili in una struttura ad albero
• Perfetto per rappresentare relazioni semplici 1:n
• Es. IMS (Information Management System) dell’IBM 1969
scuola personale
classi
docenti Non docenti
alunni docenti
➢Modello reticolare
• I nodi sono insiemi omogenei e ordinati tra loro
• Gli archi denotano associazioni in cui ogni nodo può avere più nodi padre e un nodo padre può avere un numero qualsiasi di figli
• Vi possono essere più archi colleganti la stessa coppia di nodi
• Es. IDS/II HONEYWELL
scuola personale
classi
docenti Non docenti
MODELLO RELAZIONALE
• Progettato nel 1970 da Edgar F. Codd (IBM) *
• Un database è una collezione di una o più relazioni che sono costituite da tabelle costruite con righe e colonne
• Insieme di tabelle messe a loro volta in relazione tra loro tramite i campi
• Campi comuni tra tabelle permettono di stabilire le relazioni tra tabelle diverse della base di dati
• Di fatto oggi con il termine database si intende il modello relazionale
*E. F. Codd. 1970. A relational model of data for large shared data banks. Commun. ACM 13, 6 (June 1970), 377-387. (oltre 7000 citazioni)
Esempi di DBMS
– Access – DB2 – Oracle – Informix – Sybase – SQLServer – My SQL – Postgresql – ….
Elementi caratterizzanti un DB
➢
Progettazione, organizzazione in struttura dati della realtà in oggetto
➢
Sistema di Gestione dei dati, Interrogazioni, aggiornamenti, cancellazioni
➢
Utilizzo da parte di molti utenti contemporaneamente
➢
Protezione in caso di crash del sistema
➢
Efficienza e scalabilità (tempi di risposta accettabili)
➢
Integrità e Sicurezza
➢
Gestione degli utenti per impedire accessi non
autorizzati
Esempio DB relazionale
(1)Esempio DB relazionale
(2)Modello dei dati
Un modello di dati è un insieme di strumenti concettuali utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti manipolabile da un computer.
Definisce il modo in cui i dati vengono memorizzati, organizzati è gestiti
Modello Relazionale → organizza i dati in tabelle con record (righe) aventi un numero fisso di campi (colonne)
CodAge Cognome Nome SedeNew
S500 Rossi Maria Roma
M100 Bianchi Rita Milano
A123 Verdi Giorgio Napoli
{
Righe=
Record
Colonne=Campi del record
Modello Relazionale: panoramica
CodAge Cognome Nome SedeNew
S500 Rossi Maria Roma
M100 Bianchi Rita Milano
A123 Verdi Giorgio Napoli
Una base di dati di dimensioni medio/grandi può essere costituita da molte tabelle…
CodCli Cognome Nome Città
C001 Neri Maria Milano
C002 Romano Carla Bari C003 Marengo Antonio Ancona
CodOrd DataOrd CodAg CodCli1 0001 01/01/2019 S500 C002 0002 21/11/2019 M100 C003 0003 03/10/2019 A123 C001
Clienti Ordini
Agenti
MODELLO RELAZIONALE
OPERAZIONI RELAZIONALI
• La Proiezione è una visualizzazione
"verticale" della tabella (solo alcune colonne).
• La Selezione e’ una visualizzazione
"orizzontale" della tabella (solo alcune righe che soddisfano una condizione).
• Il Join e’ l’unione di record che sono
memorizzati su tabelle diverse.
Linguaggi per l‘interrogazione di basi di dati
• Un altro contributo all’efficacia: la disponibilità di vari linguaggi ed interfacce
linguaggi testuali interattivi (SQL – Structured Query Language)
comandi (SQL) immersi in un linguaggio ospite (Java, C, C++ ...)
comandi (SQL) immersi in un linguaggio ad hoc, con anche altre funzionalità (es. per grafici o stampe
strutturate)
con interfacce amichevoli (senza linguaggio testuale)
come Query by Example (QBE)
Diagramma Entità/Relazione
• (insiemi di) entità con (insiemi di) associazioni che esprimono le informazioni significative
• associazioni binarie, ma anche ternarie, e, in generale, n-arie
• modello grafico per descrivere (utente, documentazione) lo schema concettuale
• convenzioni per indicare entità, associazioni, ruoli e loro proprietà
• Si utilizzano diagrammi di flusso (flow-chart)
• Esempio di relazione semplice in figura
Archivio (uno) Relazione Archivio (molti)
Quindi il diagramma E/R racchiude:
Entità: ente o avvenimento
– Ha un insieme di attributi
Attributi: proprietà di una entità, che ne descrive una qualità
Relazioni: collegamento tra enti
17
Entità ed elementi
Un’entità identifica un insieme di elementi distinti omogenei
– “Clienti” è l’Entità
– “Mario Rossi”, “Luigi Bianchi”, … sono gli elementi
Nel database le entità diventeranno le tabelle, gli elementi diventeranno i record, e gli attributi i
campi (field) dello schema
Relazioni tra entità
Le entità sono di solito in relazione tra loro
– Si parla appunto di database relazionali
Una relazione indica che un elemento di un’entità è collegato ad un elemento di un’altra entità
– L’entità “Clienti” è in relazione con l’entità
“Fatture”
19
Tipi di relazione
Supponiamo due entità A e B in relazione Relazione Uno a Uno (1 : 1)
1 elemento di A → 1 elemento di B 1 elemento di B → 1 elemento di A
Relazione Uno a Molti (1 : n)
1 elemento di A → più elementi di B 1 elemento di B → 1 elemento di A
Relazione Molti a Molti (n : m)
1 elemento di A → più elementi di B
1 elemento di B → più elementi di A
Tipi di relazione
21
Regioni 1 1 Capoluoghi
Clienti 1 n Fatture
Clienti n m Prodotti
Relazione Uno a Uno
Relazione Uno a Molti
Relazione Molti a Molti
A B
Rappresentazione delle relazioni
Identificazione univoca dei record
• Obiettivo: assenza di ridondanza (record identici)
• Identificazione univoca dei record ⇐⇒ Scelta di uno o più campi in modo tale che tutti i record di quella tabella
presentino valori diversi in quei campi
• Chiave primaria = Campi impiegati per distinguere i record (Chiavi primarie semplici – un solo campo - e composte – più campi)
• Uso di identificativi numerici progressivi Esempi di chiavi primarie
– Codice ISBN di un libro
– Matricola di uno studente universitario – Numero di una carta di credito
– Partita IVA – Codice fiscale
Definizione di chiave e superchiave
• Una superchiave è un insieme di campi tali che non esistono due record che abbiano lo stesso valore di quei campi
• Una chiave è una superchiave minimale (cioè non esiste un’altra superchiave che la
contenga)
Esempi di chiavi
• L’insieme {Matricola, Corso} è superchiave
• Il campo Matricola è una chiave
Vincoli di integrità
• Servono a garantire la correttezza dei dati inseriti
• Vincoli all’interno di una tabella
– Vincoli di valore (sul singolo campo) – Vincoli sul singolo record
• Vincoli tra tabelle
Esempio di vincoli all’interno di una tabella
• Vincolo sul voto del singolo esame, compreso tra 18 e 30 (vincolo sul singolo campo)
• Vincolo sulla presenza della lode, solo se il
voto è 30 (vincolo tra due campi)
Vincoli di integrità referenziale
• Per ogni coppia di tabelle collegate da una relazione occorre garantire che il riferimento utilizzato sia reperibile
• Se consideriamo una relazione tra la tabella A
e la tabella B, per ogni record della tabella A il
valore scritto nella chiave esterna deve essere
presente nella chiave primaria della tabella B
Vincoli di integrità referenziale
L'integrità referenziale si può
definire come un sistema di
regole che garantisce che le
relazioni fra le righe di
tabelle correlate siano valide
e che non sia possibile
eliminare o modificare in
maniera errata dati correlati.
Esempio di tabella con vincoli di
integrità soddisfatti
Rappresentazione delle relazioni
Relazione Infrazioni-Agenti: Chiave esterna=Agente
Relazione Infrazioni-Auto: Chiave esterna=Provincia+Numero
Esempio di tabella con vincoli di
integrità non soddisfatti
Chiavi e indici
▪
Vengono create tabelle di sistema (indici) che permettono di utilizzare metodi di ricerca veloci per reperire più rapidamente le informazioni
desiderate.
▪
La chiave primaria di una tabella è sempre
indicizzata mentre possono essere creati indici su altri campi contenenti valori duplicati o no.
▪
La ricerca, che altrimenti sarebbe sequenziale, e quindi per tabelle con molti record anche lenta, utilizza metodi di ricerca, come per esempio
quella dicotomica.
Normalizzazione
• Nella progettazione di una base di dati si dovranno evitare scelte che possano produrre:
– Ridondanza (dati uguali nello stesso archivio)
– Incoerenza (stesso dati che assumono valori diversi)
• I problemi causati dalla ridondanza si possono riassumere in:
– Memorizzazione non ottimizzata
– Anomalie, che producono dati incoerenti, da:
• Inserimento
• aggiornamento
• Cancellazione
Se una relazione presenta più concetti tra loro indipendenti la si decompone in relazioni più piccole, una per ogni concetto
Applicazioni OLTP
• Le applicazioni OLTP (On-Line Transaction Processing) sono pensate per:
– Automatizzare le operazioni quotidiane
• Inserimento dati, transazioni bancarie
– DBMS transazionali
• Obiettivi di un’applicazione OLTP sono
– Disponibilità
– Velocità di risposta
– Parallellismo massiccio (Concurrency)
Alcune operazioni su DB sono particolarmente delicate, e devono essere
gestite in maniera opportuna (ad es.
secondo la regola del tutto o niente).
Applicazioni OLTP
Applicazioni OLAP
• Le applicazioni OLAP (On-Line Analytical Processing) hanno requisiti diversi da OLTP
• Applicazioni per il supporto alle decisioni
(Data Warehouse), per rispondere a query complesse
• Contengono dati aggregati da diverse fonti dati (spesso i dati derivano da sistemi OLTP)
• L’obiettivo è il tempo di risposta ad una query
• Il volume delle transazioni è relativamente basso,
come il livello di parallellismo degli accessi.
Data Warehouse: perché?
• È necessario distinguere i sistemi OLTP da quelli OLAP
– Eseguire query complesse sui sistemi OLTP crea problemi di parallellismo
– I tempi di esecuzione di query complesse su OLTP sono alti
– I sistemi OLTP non contengono dati storici – Servono dati di tutta la realtà aziendale
Nascono i Data Warehouse
Data Warehouse
I dati storici possono essere archiviati separatamente e resi disponibili, insieme a quelli più recenti, per effettuare
elaborazioni che mettano in evidenza fenomeni non riscontrabili da una semplice analisi dei dati giornalieri
Data mining
Permette di estrapolare dai dati storici, memorizzati nel
“magazzino di dati”, tendenze, fenomeni e conoscenza per rivelare possibili tendenze future
Business Intellingence
• Usa la statistica descrittiva su dataset con alta densità di informazioni, come i DW per:
– Report e Data Mining
– Decision Support Systems (DSS) – Expert Systems (ES)
– Artificial Intelligence (AI)
Database
(II parte)
Big Data – Open Data Introduzione alle Query
Prof. Alessandra Musolino a.a. 2020/2021
Data, data everywhere
(The Economist, 2010)
• “Noi siamo in un periodo diverso a causa di così tante
informazioni” afferma James Cortada di IBM, che ha scritto un paio di dozzine di libri sulla storia delle informazioni nella
società.
• Joe Hellerstein, un computer scientist dell’Università della California a Berkeley, la definisce “la rivoluzione industriale dei dati”. L'effetto si fa sentire ovunque, dagli affari alla scienza, dal governo alle arti.
• Scienziati e ingegneri informatici hanno coniato un nuovo termine per il fenomeno: “big data”. (Economist, 2010)
Dati strutturati e non strutturati
• Dati strutturati – Sono di lunghezza, tipo e formato prestabilito,
• Dati non strutturati – Non hanno un formato predefinito e possono includere dati dalle più svariate fonti, come messaggi di posta
elettronica, tweet, messaggi di testo, chat
Big Data
I Big Data sono risorse informative di grandi dimensioni, con aggiornamenti che si susseguono con grande velocità, provenienti dalle più svariate fonti, che richiedono
modalità innovative e adeguate di elaborazione delle informazioni per produrre approfondimenti, processi decisionali e automazione dei processi .
“Big data is high-volume, high-velocity and/or high-variety information assets that demand cost-effective, innovative forms of information processing that enable enhanced
insight, decision making, and process automation.” (Gartner IT Glossary)
“Raccolta di dati così estesa in termini di volume, velocità e
varietà da richiedere tecnologie e metodi analitici specifici
per l'estrazione di valore” (Wikipedia)
Alcune caratteristiche dei Big Data
• Elaborazione efficente del Volume di dati in continua espansione
• 40/50 ZB (40/50 trillion gigabytes)
• Risposta adeguata all’incremento di velocità con la quale sono incrementati
• RFID - Radio-frequency identification (tecnologia per l'identificazione e/o memorizzazione automatica di informazioni)
• La molteplicità dei tipi di dati è in continua evoluzione
• L’80% dei dati mondiali non è strutturata
• Si deve stabilire la veridicità delle fonti di big data
• 1 dirigente su 3 non si fida delle informazioni che utilizza per prendere decisioni
• Volume:
– Quanti dati sono veramente rilevanti per la soluzione del problema? Quanto costa il trattamento?
– Quindi, puoi davvero permetterti di archiviare ed elaborare tutti quei dati?
• Velocità:
– Molti dati si aggiungono ad alta velocità
– Necessità di un approccio streaming o blocco all'analisi dei dati
– Quindi, come analizzare i dati in volo e combinarli con i dati a riposo
• Varietà:
– Una piccola parte è costituita da formati strutturati, relazionali, XML, ecc.
– Una discreta quantità è semi-strutturata, come i web log, ecc.
– Il resto dei dati è costituito da testo non strutturato, fotografie, ecc.
– Pertanto, attualmente nessun modello di dati può gestire la diversità
• Veracità: termine di copertura per ...
– Accuratezza, precisione, affidabilità, integrità – Quindi, cos'è che non conosci sui dati?
• Valore:
– Quanto valore viene creato per ogni unità di dati (qualunque essa sia)?
– Quindi, qual è il contributo di sottoinsiemi di dati alla soluzione del problema?
Tipi di analisi
• Descrittivo: una serie di tecniche per la revisione e l'esame dei set di dati per comprendere i dati e analizzare le prestazioni aziendali.
• Diagnostica: una serie di tecniche per determinare cosa è successo e perché
• Predittivo: un insieme di tecniche che analizzano i dati attuali e storici per determinare ciò che è più probabile che accada (non)
• Prescrittivo: un insieme di tecniche per lo sviluppo e l'analisi computazionale di alternative che possono diventare percorsi d'azione - sia tattici che strategici - che possono scoprire l'inaspettato
• Decisivo: una serie di tecniche per visualizzare informazioni e raccomandare corsi di azione per facilitare il processo decisionale umano quando presentato con una serie di alternative.
Passivo Attivo
Deduttivo Descrittivo Diagnostico
Induttivo Predittivo Prescrittivo
Copyright (except where referenced) 2014-2016
Analisi descrittiva
trasformazione di dati grezzi in una forma che li renda facili da capire e
interpretare, riorganizzare, ordinare, e manipolare per generare informazione utile“
• Processi:
– Identificare gli attributi, quindi fissare / valutare gli attributi
– Stimare la grandezza per correlare il contributo relativo di ciascun attributo alla soluzione finale
– accumulare più richieste di dati dalle fonti dati
– Se possibile, eseguire rapidamente le fasi di valutazione, classificazione e categorizzazione
– Ad una certa soglia, incrocia l’analisi diagnostica e predittiva
Copyright (except where referenced) 2014-2016
Stephen H. Kaisler, Frank Armour, Alberto Espinosa and William H. Money
Analisi diagnostica
• Processi:
– Inizia con analisi descrittive
– Estrazione di modelli da grandi quantità di dati tramite il data mining – Correlare i tipi di dati per la spiegazione del comportamento a breve
termine - passato e presente
– Stimare il comportamento lineare / non lineare non facilmente identificabile attraverso altri approcci.
• Esempio: classificando i sinistri assicurativi passati, stimare il numero di sinistri futuri da segnalare per le indagini con un'alta probabilità di essere fraudolenti.
Copyright (except where referenced) 2014-2016
Stephen H. Kaisler, Frank Armour, Alberto Espinosa and William H.
Analisi predittiva
• Processi:
– Inizia con analisi descrittive E diagnostiche
– Sceglie i dati giusti in base alla conoscenza del dominio e alle relazioni tra le variabili
– Sceglie le tecniche giuste per ottenere informazioni sui possibili risultati
– Determina la probabilità di possibili esiti date le condizioni al contorno iniziali
– Ricorda! L'analisi basata sui dati non è lineare;
NON trattare come un progetto di ingegneria
Analitica prescrittiva
• Processi:
– Inizia con l'analisi predittiva
– Determina cosa dovrebbe accadere e come farlo
– Determinare i fattori attenuanti che portano a risultati desiderabili / indesiderabili
– Analisi "what-if" con ottimizzazione locale o globale – Es: trova la migliore serie di prezzi e frequenza
pubblicitaria per massimizzare le entrate
– Es: E, il giusto set di mosse aziendali da compiere per raggiungere questo obiettivo
Copyright (except where referenced) 2014-2016
Open data
• Dati liberamente accessibili i cui unici vincoli sono l’obbligo di citare la fonte e di mantenere la banca dati sempre aperta
• Open Knowledge Foundation ha pubblicato il
documento “Conoscenza aperta” con la definizione:
– Un contenuto o un dato si definisce aperto se chiunque è in grado di utilizzarlo, ri-utilizzarlo e ridistribuirlo, soggetto al massimo alla richiesta di attribuzione e condivisione allo stesso modo.
• Requisiti tecnici necessari per una efficiente e
moderna architettura di data centers dedicati agli Open Government Data
• Si raccomanda che:
– 1) che i dataset pubblici siano pubblicati in una forma la più possibile vicina a quella originaria (ovvero ai dati grezzi)
– 2) che ogni dataset sia associato a metadati ben documentati
– 3) che i dati siano esposti in una serie di formati leggibili sia dall’uomo che dagli elaboratori.
Open data
• Un metadato (dal greco μετὰ "oltre, dopo, per mezzo"
e dal latino datum "informazione" - plurale: data), letteralmente "(dato) per mezzo di un (altro) dato", è un'informazione che descrive un insieme di dati.
• Un esempio tipico di metadati è costituito dalla scheda del catalogo di una biblioteca, la quale contiene
informazioni circa il contenuto e la posizione di un
libro, cioè dati riguardanti più dati che si riferiscono al libro. Un altro contenuto tipico dei metadati può
essere la fonte o l'autore dell'insieme di dati descritto, oppure le modalità d'accesso con le eventuali
limitazioni. (
Fonte Wikipedia)Metadati
Introduzione alle Query
Query
⧫
Di selezione
⧫
Per visualizzare solo le informazioni che interessano ma non modificano i dati (viste)
⧫
Il dynaset è un insieme dinamico di record contenente le informazioni estratte da una o più tabelle
⧫
Di azione
⧫
agiscono sui dati
⧫Creazione tabella
⧫Aggiornamento
⧫Accodamento
⧫Eliminazione
Le query
Le query sono strutture che servono a interrogare le basi di dati ottenendo i risultati richiesti dall'utente.
Esse mettono in relazione i campi e i record di una tabella - o più campi e record presenti in database composto da più tabelle - a dei valori di riferimento che permettono di “estrarre” dalla base di dati solo quelle informazioni che soddisfano le condizioni
espresse nella query.