database - lumsa.it · modello relazionale • progettato nel 1970 da edgar f. codd (ibm) * •...

30
DATABASE PROF. MAURIZIO NALDI ABILITÀ INFORMATICHE

Upload: haquynh

Post on 14-Jul-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

DATABASEPROF. MAURIZIO NALDI ABILITÀ INFORMATICHE

Page 2: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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)

Page 3: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

DATA BASE MANAGEMENT SYSTEM — DBMS

Sistema (software) in grado di gestire collezioni di dati che siano:

•di grandi dimensioni, i.e., (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 (i.e., 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).

Page 4: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

CENNI STORICI DBMS

• Modello gerarchico

• Modello reticolare

• Modello relazionale

• Modello orientato a oggetti

Page 5: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

MODELLO RELAZIONALE• Progettato nel 1970 da Edgar F. Codd (IBM) *

• Insieme di tabelle messe in relazione tra loro tramite i campi

• Campi comuni tra tabelle stabiliscono le relazioni della base di dati

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.

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

Page 6: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

ESEMPIO DB RELAZIONALE

studente esame corso docente

Page 7: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

ESEMPI DI DBMS

▸ Access

▸ DB2

▸ Oracle

▸ Informix

▸ Sybase

▸ SQLServer

▸ My SQL

▸ Postgresql

▸ ….

Page 8: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

MODELLO DEI DATIUn modello di dati è un insieme di concetti utilizzati per organizzare i dati di interesse e descriverne la struttura in modo che essa risulti manipolabile da un computer.

Modello Relazionale: organizza i dati in tabelle con record (righe) aventi un numero fisso di campi (colonne)

Corso Codice Corso Nome Docente

Idraulica 0121 Oscar Dabbagno

Gastronomia applicata 1213 Gustavo Lamerenda

Meccanica dei motori 1455 Guido Maluccio

{Righe= Record

Colonne=Campi del record

Page 9: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

MODELLO RELAZIONALE: PANORAMICA

Matricola Cognome Nome Data Nascita

4324235245 Rossi Giorgio 12/12/1987

6247673587 Bianchi Michele 04/12/1987

9854456565 Verdi Marco 11/04/1988

In pratica, una base di dati di dimensioni medio/grandi può essere costituita da molte tabelle…

Nome Corso Codice Corso Codice Docente

Idraulica 0121 00

Gastronomia applicata 1213 01

Meccanica dei motori 1455 02

Corso Studente Voto0121 4324235245 30L

1213 4324235245 25

1213 9854456565 18

CORSIESAMI

STUDENTI

Page 10: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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)

Page 11: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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à

Page 12: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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 entità

Page 13: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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

Page 14: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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”

Page 15: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

TIPI DI RELAZIONESupponiamo 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

Page 16: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

TIPI DI RELAZIONE

Regioni Capoluoghi1 1

Clienti Fatture1 n

Clienti Prodottin m

Relazione Uno a Uno

Relazione Uno a Molti

Relazione Molti a Molti

A B

Page 17: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

RAPPRESENTAZIONE DELLE RELAZIONI

Page 18: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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

– Codice PIN

– Partita IVA

– Codice fiscale

Page 19: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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)

Page 20: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

ESEMPI DI CHIAVI

▸ L’insieme {Matricola, Corso} è superchiave

▸ Il campo Matricola è una chiave

Page 21: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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

Page 22: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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)

Page 23: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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

Page 24: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

ESEMPIO DI TABELLA CON VINCOLI DI INTEGRITÀ SODDISFATTI

Page 25: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

RAPPRESENTAZIONE DELLE RELAZIONI

Relazione Infrazioni-Agenti: Chiave esterna=Agente Relazione Infrazioni-Auto: Chiave esterna=Provincia+Numero

Page 26: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

ESEMPIO DI TABELLA CON VINCOLI DI INTEGRITÀ NON SODDISFATTI

Page 27: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

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

Page 28: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

BIG DATA: DEFINIZIONI

• “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)

Page 29: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

DA DOVE VENGONO I “BIG DATA”?

12+ TBs

of tweet data every day

25+ TBs of

log data every day

? TB

s of

data

eve

ry

day

2+ billion people on the

Web by end 2011

30 billion RFID tags today

(1.3B in 2005)

4.6 billion

camera phones world

wide

100s of millions of GPS

enabled devices sold

annually

76 million smart meters

in 2009… 200M by 2014

Page 30: DATABASE - lumsa.it · MODELLO RELAZIONALE • Progettato nel 1970 da Edgar F. Codd (IBM) * • Insieme di tabelle messe in relazione tra loro tramite i campi • Campi comuni tra

CARATTERISTICHE DEI BIG DATA

Collectively Analyzing the broadening Variety

Responding to the increasing Velocity

Cost efficiently processing the growing Volume

Establishing the Veracity of big data sources

30 Billion RFID sensors and counting

1 in 3 business leaders don’t trust the information they use to make decisions

50x

35 ZB

2020

80% of the worlds data is unstructured

2010