6. basi di dati - Università degli Studi Mediterranea ... · suoi attributi e il tipo di valore...

59
Informatica - G. Caminiti Basi di Dati

Transcript of 6. basi di dati - Università degli Studi Mediterranea ... · suoi attributi e il tipo di valore...

Informatica - G. Caminiti

Basi di Dati

Informatica - G. Caminiti

Basi di dati e sistemi informativi• Una base di dati è un insieme organizzato di dati utilizzati

per il supporto allo svolgimento delle attività di un ente…

– Azienda, ufficio, persona…

• Un sistema informativo è una combinazione di risorse umane, materiali e di procedure per:

– la gestione…

– la raccolta…

– l’archiviazione…

– l’elaborazione…

– lo scambio…

…delle informazioni necessarie per le attività di un ente.

Informatica - G. Caminiti

Sistema informativo, commenti

• Ogni organizzazione ha un sistema informativo, eventualmente non esplicitato nella struttura

• Quasi sempre, il sistema informativo è di supporto ad altri sottosistemi, e va quindistudiato nel contesto in cui è inserito

• Il sistema informativo è di solito suddiviso in sottosistemi (in modo gerarchico o decentrato), più o meno fortemente integrati

Informatica - G. Caminiti

Sistema organizzativo

• Insieme di risorse e regole per lo svolgimento

coordinato delle attività (processi) al fine del

perseguimento degli scopi

Informatica - G. Caminiti

Risorse

• le risorse di una azienda (o ente, amministrazione):

– persone

– denaro

– materiali

– informazioni

Informatica - G. Caminiti

Sistema organizzativo e

sistema informativo

• Il sistema informativo è parte del sistemaorganizzativo

• Il sistema informativo esegue/gestisceprocessi informativi (cioè i processi checoinvolgono informazioni)

Informatica - G. Caminiti

Sistemi informativi e

automazione• Il concetto di “sistema informativo” è

indipendente da qualsiasiautomatizzazione:

– esistono organizzazioni la cui ragion d’essere

è la gestione di informazioni (p. es. servizi

anagrafici e banche) e che operano da secoli

Informatica - G. Caminiti

Sistema Informatico

• porzione automatizzata del sistemainformativo:

la parte del sistema informativo che gestisce

informazioni con tecnologia informatica

Informatica - G. Caminiti

Sistema InformaticoSistema azienda

Sistema organizzativo

Sistema informativo

Sistema

informatico

Informatica - G. Caminiti

Gestione delle informazioni

• Raccolta, acquisizione

• Archiviazione, conservazione

• Elaborazione, trasformazione, produzione

• Distribuzione, comunicazione, scambio

Informatica - G. Caminiti

Gestione delle informazioni

• Nelle attività umane, le informazioni vengonogestite in forme diverse: – idee informali

– linguaggio naturale (scritto o parlato, formale o colloquiale, in varie lingue)

– disegni, grafici, schemi

– numeri e codici

• e su vari supporti– mente umana, carta, dispositivi elettronici

Informatica - G. Caminiti

Gestione delle informazioni

• Nelle attività standardizzate dei sistemiinformativi complessi, sono state introdotte col tempo forme di organizzazione e codifica delle informazioni

• Ad esempio, nei servizi anagrafici si è iniziatocon registrazioni discorsive e poi– nome e cognome

– estremi anagrafici

– codice fiscale

Informatica - G. Caminiti

Informazioni e dati

• Nei sistemi informatici (e non solo), le informazioni vengono rappresentate in modo essenziale, spartano: attraverso i dati

Informatica - G. Caminiti

Informazioni e dati

informazione: notizia, dato o elemento checonsente di avere conoscenza più o menoesatta di fatti, situazioni, modi di essere.

dato: ciò che è immediatamente presentealla conoscenza, prima di ognielaborazione; (in informatica) elementi di informazione costituiti da simboli chedebbono essere elaborati

Informatica - G. Caminiti

Informazione = contenuto +

struttura• Informazione non strutturata

– Molto contenuto, poca struttura

– Un romanzo e il suo indice (magari solo capitoli

numerati)

• Informazione strutturata

– Molta struttura, contenuto rigidamente codificato (es.

schedario di una biblioteca, elenco telefonico)

– I sistemi informativi delle organizzazioni, le basi di

dati in generale

Informatica - G. Caminiti

Dati e informazioni

• Un esempio:

Mario 275

su un foglio di carta sono due dati e non significano molto

• Se il foglio di carta viene fornito in risposta alla domanda “A chi mi devo rivolgere per il problema X; qual è il suo numero di telefono?”, allora i dati possono essere interpretati per fornire informazione e arricchire la conoscenza

Informatica - G. Caminiti

Perché i dati?

• La rappresentazione precisa di forme piùricche di informazione e conoscenza èdifficile

• I dati costituiscono spesso una risorsastrategica, perché più stabili nel tempo di altre componenti (processi, tecnologie, ruoli umani):– ad esempio, i dati delle banche o delle

anagrafi

Informatica - G. Caminiti

Base di dati

(accezione generica, metodologica)

• Insieme organizzato di dati utilizzati per il supporto allo svolgimento delle attività di un ente (azienda, ufficio, persona)

(accezione specifica, metodologica e tecnologica)

• insieme di dati gestito da un DBMS

Informatica - G. Caminiti

Sistema di gestione di basi di dati

DataBase Management System

(DBMS)• Sistemi software in grado di gestire

collezioni di dati che sono

– Molto grandi

– Condivise da più utenti e più applicazioni

– Persistenti: il ciclo di vita dei dati non è

limitato alle singole esecuzioni dei dati che li

usano

Informatica - G. Caminiti

Tabelle come modo per

organizzare i dati

Informatica - G. Caminiti

Problema: le tabelle non hanno

vincoli

Informatica - G. Caminiti

Tabelle: un tipo speciale di liste

• Un database (DB) registra dati

• Un database relazionale utilizza tabelle e

descrive le relazioni fra i differenti tipi di dati

• In un database le tabelle sono come le liste in

uno spreadsheet, ma con l’aggiunta di vincoli

– i vincoli limitano il tipo di dati che possono essere inseriti nel DB, ma rendono possibile eseguire

operazioni molto più complesse e potenti

Informatica - G. Caminiti

Entità

• Qualsiasi cosa possa essere identificata da un numero prefissato di caratteristiche (attributi)– Gli attributi hanno un nome e un valore

– I valori rappresentano i dati memorizzati nella

tabella

• Per create una tabella si specifica il nome dell’entità (ovvero della tabella), i suoi attributi e il tipo di valore che si può inserire in ogni attributo

Informatica - G. Caminiti

Proprietà delle entità

• Istanze di tabelle:

– Una tabella è inizialmente vuota. Ha un nome

e intestazioni di colonna (i nomi degli attributi)

ma le righe sono vuote

– Ogni riga rappresenta un’entità

– Un’istanza di database è una tabella con un

insieme specifico di righe

Informatica - G. Caminiti

Proprietà delle entità (cont.)

• Strutture, contenuti e metadati

– separiamo la struttura dell’informazione

dall’informazione stessa

– i metadati di una tabella includono almeno il suo

nome, i nomi degli attributi, il tipo di valori che ogni attributo può assumere e la chiave primaria

– alcune proprietà non sono metadati:

l’ordine delle righe ad esempio non è importante

Informatica - G. Caminiti

Informatica - G. Caminiti

Informatica - G. Caminiti

Informatica - G. Caminiti

Proprietà delle entità (cont.)

• Unicità delle entità

– una tabella di database non può avere righe

duplicate

– dev’esserci almeno una caratteristica

distintiva per ogni entità

– alcune caratteristiche possono essere uguali,

ma non tutte

Informatica - G. Caminiti

Proprietà delle entità (cont.)• Chiavi

– qualsiasi insieme di attributi per cui le entità sono

tutte diverse si chiama chiave candidata

– ne scegliamo una e la chiamiamo chiave primaria

– una chiave dev’essere in grado di distinguere tutte le possibili entità, non solo quelle presenti nel

particolare stato corrente della tabella

– se nessuna combinazione di attributi si qualifica chiave candidata, occorre assegnare a ogni entità

un codice numerico distinto (ID)

• pensiamo ad esempio ai numeri di matricola assegnati agli studenti dall’università

Informatica - G. Caminiti

Creare lo schema

• come si dovrebbe costruire uno schema per le tabelle dell’esempio iniziale (arcipelaghi)?

Arcipelaghi

Nome Character,20

Oceano Character,20

Num_Isole Integer

Chiave primaria: Nome

Informatica - G. Caminiti

Operazioni sulle tabelle

• L’uso principale dei database è la ricerca di informazioni

– gli utenti specificano cosa vogliono sapere e il

database lo trova

• le operazioni fondamentali applicabili alle tabelle sono cinque: selezione, proiezione, unione, differenza e prodotto

Informatica - G. Caminiti

Operazioni sulle tabelle (cont.)

• l’operazione di selezione

– prende alcune righe di una tabella per crearne

un’altra

• si deve specificare la tabella da cui prelevare le righe e il test di selezione

• sintassi: Select Test From Tabella

• il Test è applicato a ogni riga per decidere se includerla o no nella tabella risultato

• il Test usa nomi degli attributi, costanti numeriche e operatori relazionali

• se il Test è verificato, la riga è aggiunta nella tabella risultato; altrimenti è ignorata

Informatica - G. Caminiti

Informatica - G. Caminiti

Select Interesse=‘Spiagge’ From Nazioni

Informatica - G. Caminiti

Studenti di Giurisprudenza

Cognome Nome Matricola CdL Punteggio

Rossi Mario 123456 G 90

Verdi Carlo 182839 G 100

Neri Giorgio 162384 SE 70

Bianchi Giuseppe 138927 SE 80

Informatica - G. Caminiti

Es. Selezione

Cognome Nome Matricola CdL Punteggio

Rossi Mario 123456 G 90

Verdi Carlo 182839 G 100

Select CdL=‘G’ From Studenti

Informatica - G. Caminiti

Operazioni sulle tabelle (cont.)

• L’operazione di proiezione

– prende alcune colonne di una tabella esistente e ne crea un’altra

– si deve specificare il nome della tabella esistente e le colonne (il nome dei campi) da includere nella nuova tabella

– sintassi:

• Project Lista_di_campi From Tabella

– la nuova tabella avrà il numero di colonne specificato e lo stesso numero di righe di quella originale, a meno che la nuova tabellaelimini un campo chiave: in questo caso, eventuali righe duplicate nella nuova tabella saranno eliminate

Informatica - G. Caminiti

Project Nome, Dom, Interesse from Nazioni

Informatica - G. Caminiti

Project Interesse from Nazioni

Spiagge

Interesse

Informatica - G. Caminiti

Es. Proiezione

Project Cognome, Nome FROM Studenti

Cognome Nome

Rossi Mario

Verdi Carlo

Neri Giorgio

Bianchi Giuseppe

Informatica - G. Caminiti

Operazioni sulle tabelle (cont.)• L’operazione di unione

– combina due tabelle (che hanno gli stessi attributi)

– sintassi:

• Tabella1 + Tabella2

• L’operazione di differenza– rimuove da una tabella tutte le righe contenute in una

seconda tabella

– sintassi:

• Tabella1 - Tabella2

• L’operazione di prodotto– crea una super-tabella che ha tutti i campi di entrambe le

tabelle originali

– combina tutte le righe

– sintassi:

• Tabella1 x Tabella2

Informatica - G. Caminiti

Es. Unione e Differenza

Scienze_Economiche = (Select CdL=‘SE’ From Studenti)

Giurisprudenza = (Select CdL=‘G’ From Studenti)

Facoltà = Scienze_Economiche + Giurisprudenza

Giurisprudenza = Studenti – Scienze_Economiche

Informatica - G. Caminiti

Prodotto

(Docenti)

Cognome Nome Materia CdL

Saitta Roberto Dir. Amministrativo G

Liguori Pasquale Dir. Civile G

Quattrone Antonio Informatica SE

Rossi Sandro Dir. Navigazione SE

Morabito Nicola Storia Dir. Romano G

Informatica - G. Caminiti

Es. Prodotto

(Studenti x Docenti)Cognome Nome Matricola CdL Punti Cognome1 Nome1 Materia CdL2

Rossi Mario 123456 G 90 Saitta Roberto Dir. Amm. G

Rossi Mario 123456 G 90 Liguori Pasquale Dir. Civile G

Rossi Mario 123456 G 90 Quattrone Antonio Informatica SE

Rossi Mario 123456 G 90 Rossi Sandro Dir. Nav. SE

Rossi Mario 123456 G 90 Morabito Nicola St.Dir.Rom. G

Verdi Carlo 182839 G 100 Saitta Roberto Dir. Amm. G

Verdi Carlo 182839 G 100 Liguori Pasquale Dir. Civile G

Verdi Carlo 182839 G 100 Quattrone Antonio Informatica SE

Verdi Carlo 182839 G 100 Rossi Sandro Dir. Nav. SE

Verdi Carlo 182839 G 100 Morabito Nicola St.Dir.Rom. G

………

Informatica - G. Caminiti

L’operazione di join

• Combina due tabelle, come il prodotto, ma non produce necessariamente tutte le combinazioni di righe

– se le tabelle hanno un campo che contiene lo stesso tipo di dato, la nuova tabella concatena solo le righe in cui c’è una corrispondenza su quel campo

– sintassi:

Informatica - G. Caminiti

L’operazione di join (cont.)

• Corrispondenza è un confronto che considera un particolare attributo di ogni tabella

• Il sistema verifica se i campi corrispondenti nelle due tabelle contengono lo stesso dato; in tal caso viene creata una riga nella tabella risultato

Informatica - G. Caminiti

Es. Join

Studenti ►◄ Docenti On CdL

Cognome Nome Matricola CdL Punti Cognome1 Nome1 Materia

Rossi Mario 123456 G 90 Saitta Roberto Dir. Amministrativo

Rossi Mario 123456 G 90 Liguori Pasquale Dir. Civile

Rossi Mario 123456 G 90 Morabito Nicola Storia Dir. Romano

Verdi Carlo 182839 G 100 Saitta Roberto Dir. Amministrativo

Verdi Carlo 182839 G 100 Liguori Pasquale Dir. Civile

Verdi Carlo 182839 G 100 Morabito Nicola Storia Dir. Romano

Neri Giorgio 162384 SE 70 Quattrone Antonio Informatica

Neri Giorgio 162384 SE 70 Rossi Sandro Dir. Navigazione

Bianchi Giuseppe 138927 SE 80 Quattrone Antonio Informatica

Bianchi Giuseppe 138927 SE 80 Rossi Sandro Dir. Navigazione

Informatica - G. Caminiti

Lo schema di un database

• I metadati di una tabella sono chiamati schema del database

– struttura e progetto

• Immaginiamo un DB universitario con due tabelle, Studente e Residenza:

Informatica - G. Caminiti

Informatica - G. Caminiti

Collegare tabelle mediante

relazioni

• Le due tabelle sono distinte, ma non

indipendenti

• Il Num_Matricola le collega

– si dice che tra le due entità c’è una relazione

• corrispondenza tra le righe

• le relazioni fanno parte dei metadati

• la relazione è bidirezionale (possiamo trovare l’indirizzo per ogni studente ma anche lo studente per ogni indirizzo)

Informatica - G. Caminiti

Informatica - G. Caminiti

Ricostruire le tabelle con il join

• Le relazioni tra due tabelle permettono di costruirne una terza (Lista_Master) che contiene le informazioni combinate di entrambe le tabelle

– utilizziamo l’operazione di join naturale

Lista_Master = Studente >< Residenza On

Num_Matricola

Informatica - G. Caminiti

Linguaggi di interrogazione: SQL• SQL (Structured Query Language):

– è un linguaggio standard di uso larghissimo

– fornisce una struttura specifica di query per

tecniche come “join più sfoltimento”

– ogni venditore usa un proprio dialetto SQL,

ma le interrogazioni semplici sono più o meno

uguali:

• SELECT lista di campi

• FROM tabella/e

• WHERE vincoli sulle righe

Informatica - G. Caminiti

La clausola ON di SQL

• Dopo il SELECT c’è una lista di campi

• Il FROM specifica le tabelle da riunire nel Join, la clausola ON il campo da usare come riferimento per far corrispondere le righe

Informatica - G. Caminiti

La clausola WHERE di SQL

• La clausola WHERE permette di specificare condizioni sulle righe: il Preside ad esempio vuole vedere solo gli studenti con una media uguale o superiore al 28

Informatica - G. Caminiti

Diagrammi entità-relazione

• La creazione di nuove tabelle coinvolge relazioni

• Le relazioni entrano a far parte dello schema di un database per indicare le connessioni tra le

informazioni; i join le realizzano in pratica

• Se c’è una relazione, probabilmente saràapplicata nella costruzione del database logico

• Gli amministratori di un database ne documentano la struttura riportando su un

diagramma le relazioni

Informatica - G. Caminiti

Diagrammi entità-relazione (cont.)

Informatica - G. Caminiti

Diagrammi entità-relazione (cont.)

• Relazioni uno-a-uno

– ogni riga della prima entità è associata al più a una

riga della seconda entità

• Relazioni uno-a-molti

– molte righe della prima entità possono essere

associate a una singola riga della seconda entità

• Nei diagrammi ER questi tipi di relazione

possono essere rappresentati in modi diversi