• Non ci sono risultati.

Database. Prof. Alessandra Musolino a.a. 2020/2021

N/A
N/A
Protected

Academic year: 2022

Condividi "Database. Prof. Alessandra Musolino a.a. 2020/2021"

Copied!
60
0
0

Testo completo

(1)

Database

Prof. Alessandra Musolino a.a. 2020/2021

(2)

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)

(3)

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)

(4)

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

(5)

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

(6)

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

(7)

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)

(8)

Esempi di DBMS

– Access – DB2 – Oracle – Informix – Sybase – SQLServer – My SQL – Postgresql – ….

(9)

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

(10)

Esempio DB relazionale

(1)

(11)

Esempio DB relazionale

(2)

(12)

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

(13)

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

(14)

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.

(15)

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)

(16)

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)

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

Rappresentazione delle relazioni

(23)

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

(24)

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)

(25)

Esempi di chiavi

• L’insieme {Matricola, Corso} è superchiave

• Il campo Matricola è una chiave

(26)

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

(27)

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)

(28)

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

(29)

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.

(30)

Esempio di tabella con vincoli di

integrità soddisfatti

(31)

Rappresentazione delle relazioni

Relazione Infrazioni-Agenti: Chiave esterna=Agente

Relazione Infrazioni-Auto: Chiave esterna=Provincia+Numero

(32)

Esempio di tabella con vincoli di

integrità non soddisfatti

(33)

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.

(34)

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

(35)

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)

(36)

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

(37)

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.

(38)

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

(39)

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

(40)

Data mining

Permette di estrapolare dai dati storici, memorizzati nel

“magazzino di dati”, tendenze, fenomeni e conoscenza per rivelare possibili tendenze future

(41)

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)

(42)

Database

(II parte)

Big Data – Open Data Introduzione alle Query

Prof. Alessandra Musolino a.a. 2020/2021

(43)

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)

(44)

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

(45)

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)

(46)

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

(47)

• 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?

(48)

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

(49)

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

(50)

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.

(51)

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

(52)

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

(53)

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.

(54)

• 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

(55)

• 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

(56)

Introduzione alle Query

(57)

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

(58)

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.

(59)

Organizzazione di una base dati relazionale

(60)

QBE – Query by Example

Riferimenti

Documenti correlati

Un blocco con nome deve iniziare con una dichiarazione di creazione poiché, all’atto dell’invio al database, questo deve essere creato, o aggiornato se già esiste, come un qualsiasi

For each branch the database stores the list of its area manager over time with the corresponding period of time (start and end date). Please note that a branch can not have more

3) Visualizzare per ogni autore il numero di libri pubblicati, solo se tale numero è superiore a 2 4) Visualizzare l'elenco degli utenti che hanno preso in prestito un libro

• È possibile ottenere attraverso una select anche valori non presenti nei campi della tabella, ma calcolati raggruppando più record sulla base di un criterio di aggregazione.

• È possibile ottenere attraverso una select anche valori non presenti nei campi della tabella, ma calcolati raggruppando più record sulla base di un criterio di aggregazione.

un linguaggio di interrogazione di banche dati finalizzato al recupero di documenti  un sistema che gestisce basi di dati la fine di recuperare informazioni giudicate rilevanti.

• Una particella carica si muove su una traiettoria circolare di raggio r in presenza di un campo magnetico costante perpendicolare alla velocità della particella?. • Una

• i parametri formali passati per valore relativamente ad un vettore, si esprimono nelle tre forme equivalenti:. tipobase