Basi di Dati
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.
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 quindi studiato nel contesto in cui è inserito Il sistema informativo è di solito suddiviso in sottosistemi (in modo gerarchico o decentrato), più o meno fortemente integrati
Sistema organizzativo Insieme di risorse e regole per lo svolgimento coordinato delle attività (processi) al fine del perseguimento degli scopi
Risorse le risorse di una azienda (o ente, amministrazione): persone denaro materiali informazioni
Sistema organizzativo e sistema informativo Il sistema informativo è parte del sistema organizzativo Il sistema informativo esegue/gestisce processi informativi (cioè i processi che coinvolgono informazioni)
Sistemi informativi e automazione Il concetto di sistema informativo è indipendente da qualsiasi automatizzazione: esistono organizzazioni la cui ragion d essere è la gestione di informazioni (p. es. servizi anagrafici e banche) e che operano da secoli
Sistema Informatico porzione automatizzata del sistema informativo: la parte del sistema informativo che gestisce informazioni con tecnologia informatica
Sistema Informatico Sistema azienda Sistema organizzativo Sistema informativo Sistema informatico
Gestione delle informazioni Raccolta, acquisizione Archiviazione, conservazione Elaborazione, trasformazione, produzione Distribuzione, comunicazione, scambio
Gestione delle informazioni Nelle attività umane, le informazioni vengono gestite 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
Gestione delle informazioni Nelle attività standardizzate dei sistemi informativi complessi, sono state introdotte col tempo forme di organizzazione e codifica delle informazioni Ad esempio, nei servizi anagrafici si è iniziato con registrazioni discorsive e poi nome e cognome estremi anagrafici codice fiscale
Informazioni e dati Nei sistemi informatici (e non solo), le informazioni vengono rappresentate in modo essenziale, spartano: attraverso i dati
Informazioni e dati informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere. dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbono essere elaborati
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
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
Perché i dati? La rappresentazione precisa di forme più ricche di informazione e conoscenza è difficile I dati costituiscono spesso una risorsa strategica, perché più stabili nel tempo di altre componenti (processi, tecnologie, ruoli umani): ad esempio, i dati delle banche o delle anagrafi
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
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
Tabelle come modo per organizzare i dati
Problema: le tabelle non hanno vincoli
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
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
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
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
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
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à
Creare lo schema come si dovrebbe costruire uno schema per le tabelle dell esempio iniziale (arcipelaghi)? Arcipelaghi Nome Oceano Num_Isole Character,20 Character,20 Integer Chiave primaria: Nome
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
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
Select Interesse= Spiagge From Nazioni
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
Es. Selezione Select CdL= G From Studenti Cognome Nome Matricola CdL Punteggio Rossi Mario 123456 G 90 Verdi Carlo 182839 G 100
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 tabella elimini un campo chiave: in questo caso, eventuali righe duplicate nella nuova tabella saranno eliminate
Project Nome, Dom, Interesse from Nazioni
Project Interesse from Nazioni Interesse Spiagge
Es. Proiezione Project Cognome, Nome FROM Studenti Cognome Nome Rossi Mario Verdi Carlo Neri Giorgio Bianchi Giuseppe
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
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
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
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
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:
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
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
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:
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)
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
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 FROM WHERE lista di campi tabella/e vincoli sulle righe
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
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
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
Diagrammi entità-relazione (cont.)
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