6. basi di dati - Università degli Studi Mediterranea ... · suoi attributi e il tipo di valore...
Transcript of 6. basi di dati - Università degli Studi Mediterranea ... · suoi attributi e il tipo di valore...
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: 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
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
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
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
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
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.)
• 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