I - INTRODUZIONE AI DATABASE TERRITORIALI Capitolo 1 INTRODUZIONE AI DATABASE TERRITORIALI 1.1 Definizioni di un database 1.2 Struttura di un DBMS 1.3 Ruolo dei data-base nei SIT 1.4 Metadati - Introduzione 1.5 Introduzione al modello relazionale 1.6 Formalismo relazionale esteso 1.7 Conclusioni 1.1 Definizioni di un database Il Sistema Generale di LeMoigne Un database è un insieme informatico di dati che può essere interrogato o utilizzato da parecchi utenti La verità è nel database Contenuto = mini-mondo Visione del mondo Struttura Comportamento Evoluzione (entropica o teleologica) Ambiente (del sistema) Cap. 1 : Introduzione ai Database Territoriali 1
Teoria del sistema generale Detaglio del sistema di pilotaggio Sistema di pilotaggio Sistema di decisione e di pianificazione Sistema di pilotaggio - Impostazione degli obiettivi - Diagnosi dei problemi - Decisione e selezione - Progettazione Sistema informativo Sistema di informazione Sistema informativo Sistema operante Sistema operante Esempio di Sistema operante: la città Popolazione Tipo di informazione in un database territoriale Servizi pubblici Impiego Informazione di tipo strategico proveniente dal sistema di pilotaggio Budget Ambiente/Inquinamento Edilizia Uso del suolo Informazioni proveniente da misure sul territorio da gestire Database territoriale Informazioni utili per la presa di decisione Trasporti Cap. 1 : Introduzione ai Database Territoriali 2
SISTEMA INFORMATIVO TERRITORIALE Strati applicativi Sistema informativo dedicato alla gestione e alla pianificazione dei territori Database territoriale Cartografia Analisi dei dati spaziali Ragionamenti spaziali Stuttura di un SIT Sistema di acquisizione delle informazioni spaziali Sistema d'analisi dei data Sistema di gestione del database Sistema di visualizzazione cartografica Database territoriale 1.2 Struttura di un DBMS Struttura semplificata Database system Applicazioni DBMS = Database Management System DBMS Software per i programmi e le richieste Software per l accesso Dati Metadati Cap. 1 : Introduzione ai Database Territoriali 3
Piccoli e grandi DB 1.3 Ruolo dei data-base nei SIT Osservazione della terra : 12 terabyte ogni giorno Toy database Database Very Large Database Dati alfanumerici (intero, reale, carattere, booleano) Dati spaziali (punti, poligoni, ecc.) Dati multimediali (segnali, voce, immagini, video, ecc.) Ecc. Metadati = dati sui dati (informazioni sulla struttura dati) 1.4 Metadati - Introduzione Strutturazione dell informazione sui dati Origine Fonti Qualità Ecc. Normativa FGDC : Federal Government Data Committee 1.5 Introduzione al modello relazionale 1.5.1 Principi 1.5.2 Algebra relazionale 1.5.3 Rappresentazione degli operatori 1.5.4 Vincoli di integrità 1.5.5 Conclusioni Cap. 1 : Introduzione ai Database Territoriali 4
1.5.1 Principi Creato da Edgar CODD alla fine degli anni 60 Tutto è tabella 1 tabella == 1 relazione Operatori sulle tabelle ORACLE, ACCESS, SYBASE, MySQL, etc. Tabelle e relazioni VEICOLO (Nome-Proprietario, Marca, Targa) VEICOLO Nome-Propr. Marca Targa Pietro Renault TO-123456 Anna Ford VE-789123 Maria VW MI-456789 Giulio Fiat PD-323456 Definizioni Colonna Riga TABELLA Colonna Corrisponde ad un attributo Chiave o identificatore Valore «senza valore» (NULL) Definita in un dominio (intero, link, immagine, etc.) Dom (intero) = N NULL Cap. 1 : Introduzione ai Database Territoriali 5
Valore NULL valore non ancora valutato valore non conosciuto valore non ancora conosciuto valore impossibile valore inapplicabile Riga Corrisponde a un record Possede tutti gli attributi Identificata da una chiave Chiavi primarie (primary keys) E' un attributo, o un insieme di attributi Si tratta di un identificatore unico valutato, il NULL non è possibile attenzione : in una tabella, una chiave unica puo essere creata da parecchi identificatori Consente l accesso al record Chiavi esterne (foreign keys) Si dice di una chiave presente in una relazione e che si riferisce ad una chiave primaria di una altra relazione Esempio PERSONA (NOID, NOME, NOTEL) TELEFONO (NOTEL, LUOGO) Cap. 1 : Introduzione ai Database Territoriali 6
1.5.2 Algebra relazionale Ogni query può essere descritta con questa algebra Su una sola tabella Operatori comuni Proiezione Restrizione (selezione) Su due tabelle Unione e Intersezione Join Esempio Proiezione su Popolazione Pop Paese Popolazione Francia 60 Italia 60 Spagna 40 Svizzera 15 Irlanda 15 GB 55 Popolazione 60 60 40 15 15 55 Cap. 1 : Introduzione ai Database Territoriali 7
Restrizione : Es. popolazione > 50 Esempio Pop Paese Popolazione Europa Paese Capitale Pae. Anglo. Paese Capitale Francia 60 Francia Parigi USA Washington Italia 60 Italia Roma Australia Canberra GB 55 Spagna Madrid Irlanda Dublino Germania Berlino GB Londra Irlanda Dublino GB Londra Unione Paese Capitale Francia Parigi Intersezione Unione Italia Spagna Germania Irlanda Roma Madrid Berlino Dublino Inter Paese Capitale Irlanda Dublino GB Londra GB Londres USA Washington Australia Canberra Cap. 1 : Introduzione ai Database Territoriali 8
Join tra Europa e Pop Risultato Join tra Europe e Pop Pop Paese Popolazione Europa Paese Capitale Eur-Pop Paese Popolazione Capitale Francia 60 Francia Parigi Francia 60 Parigi Italia 60 Italia Roma Italia 60 Roma Spagna 40 Spagna Madrid Spagna 40 Madrid Svizzera 15 Germania Berlino Irlanda 15 Dublino Irlanda 15 Irlanda Dublino GB 55 Londres GB 55 GB Londra Conclusioni sull algebra relazionale Strumento potente per risolvere le richieste Abbastanza difficile per un utente medio Linguaggio SQL Utilizzato al livello interno Rappresentazione degli operatori Obiettivi: grafo di combinazione per risolvere le richieste Cap. 1 : Introduzione ai Database Territoriali 9
Proiezione Restrizione Unione Intersezione Lista d attributi Relazione Lista di condizioni Rel. 1 Rel. 2 Rel. 1 Rel. 2 Join (interno) Join (esterno) Risultato Lista di attributi Rel. 1 Rel. 2 Cardine Rel. 1 Rel. 2 Cardine Rel. 3 Cardine Esempio Rel. 1 Rel. 2 Cap. 1 : Introduzione ai Database Territoriali 10
Cardine della forma: Note sugli join Relazione1.Toto = Relazione2.Titi Auto-join possibile Attenzione ai valori NULL negli join esterni Join esterno : gli attributi mancanti sono forzati a NULL Linguaggio SQL: introduzione SELECT lista degli attributi FROM lista delle tabelle utilizzate [WHERE lista booleana di condizioni] Proiezione, restrizione - select popolazione from pop; - select popolazione from pop where popolazione > 50 Unione, intersezione - select paese, capitale from europa union (select paese, capitale from pae-anglo); - select paese, capitale from europa intersect (select paese, capitale from pae-anglo); Cap. 1 : Introduzione ai Database Territoriali 11
Esempi select paese, capitale from europa intersect (select paese, capitale from pae-anglo); Esempio con join Select Paese, popolazione, capitale from pop, europa where pop.paese=europa.paese 1.5.4 Vincoli d integrità Controllo qualità del contenuto Condizioni o predicati Vincoli di base esistenziale (primary key) referenziale (foreign key) Altri vincoli controllo di verosimiglianza vincoli d integrità al livello topologico Esempio Collezione di oggetti chiamati «triangoli» 3 lati 3 angoli La somma degli angoli uguale 180 gradi TRIANGOLI(no_triangolo, ang1, ang2, ang3) TRIANGOLI NO ANG1 ANG2 ANG3 A 50 50 80 B 10 10 10 OK KO Cap. 1 : Introduzione ai Database Territoriali 12
VI statici : Vincoli d integrità Condizione vera sul DB VI dinamici : prima e dopo aggiornamento Evoluzione vera Nota 1 Se il predicato è falso, allora esiste una incoerenza da corregere Stato stabile / istabile Alcuni comportamenti nel caso di incoerenza Blocco temporaneo del DB: nessun trattamento è possibile fin tanto che rimane l incoerenza Problema : VI longhi Alcuni trattamenti sono comunque possibili durante un breve intervallo di tempo (correzioni forzate) Nota 2 Nessuna contradizione tra i VI Necessità di strumenti per verificare la monotonia dei VI (cioè coerenza dei VI dopo l aggiornamento/modifica di un solo vincolo) Dichiarativa Verifica dei VI Alla creazione, è data una lista dei predicati Verifica durante l'inserimento e la modifica Procedurale Programmi di controllo avviati regolarmente (procedure di controllo) o su eventi (triggers). Cap. 1 : Introduzione ai Database Territoriali 13
Vincolo esistenziale Legato alle primary keys Dettaglio Ogni chiave è differente Chiave NULL non sono autorizzate Nel caso di difficoltà, creare un identificatore temporaneo Definizione alla creazione del DB Verifica dichiarativa (inserimento e modifica) Vincolo referenziale Legati alle foreign key Dettaglio Deve sempre esistere una primary key corrispondente I NULL non sono permessi Definizione alla creazione del DB Verificato ad ogni inserimento e modifica Controllo di verosimiglianza Verifica degli ordini di grandezza Ad esempio : date, età, codici postali, targhe, ecc Piccole verifiche: dichiarative Grosse verifiche: procedurali (trigger/procedure) Controllo topologico Nel caso dei DB territoriali (vettore) Poligoni non degenerati Due particelle non si devono accavallare Copertura totale dello spazio Ecc. Generalmente con procedure o trigger Cap. 1 : Introduzione ai Database Territoriali 14
1.5.5 Conclusioni Importanza del modello relazionale (tabelle, operatori, ecc.) Normative Richieste fatte con operatori Linguaggio SQL 1.6 Formalismo relazionale esteso Esistenza di sotto-tabelle. * = 1 a n + = 0 a n Esempi: R 1 (a, b*) R 2 (a, (b,c) + ) R 3 (a, (b, (c,d)*)*) Esempi NOME (cognome, (nome)*) PERSONA (cognome, (nome)*,(ragazzo) + ) 1.7 Conclusioni Importanza dei DB nei SIT Dati Alfanumerici Multimediali Spaziali Cap. 1 : Introduzione ai Database Territoriali 15