Corso di Basi di Dati Spaziali. Modelli logici. Relazione matematica. Il modello relazionale. Esempio di relazione matematica.

Documenti analoghi
Corso di Basi di Dati Spaziali. Modelli logici. Definizioni e notazioni - 1. Il modello relazionale. Definizioni e notazioni - 3

I modelli logici dei dati. E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni, Ceri, Paraboschi, Torlone: Basi di dati, Capitolo 2)

I modelli logici dei dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, IL MODELLO RELAZIONALE

Basi di dati IL MODELLO RELAZIONALE

Modello Relazionale/1

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Sistemi di Elaborazione dell Informazione

Introduzione. Il Modello Relazionale. Relazioni e Tabelle. Relazioni Matematiche - 1. Relazioni Matematiche - 2. Relazioni Matematiche - 3

naturali che si trovano ad una distanza minore di Vogliami gestire i dati relativi ai parchi naturali e siamo interessati a sapere quali sono i parchi

Le relazioni hanno una naturale rappresentazione per mezzo di. D. Gubiani Il Modello Relazionale 3

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

IL MODELLO RELAZIONALE

Introduzione. Modulo 10: Basi di dati e loro gestione. Relazioni Matematiche - 1. Relazioni e Tabelle. Relazioni Matematiche - 3

Sistemi di Elaborazione dell Informazione. Cosa sono i dati spaziali? Acquisizione dei Dati Spaziali. Modelli per Dati Spaziali. Livelli di Astrazione

I modelli logici dei dati

I modelli logici dei dati

Il modello relazionale. Relazione: tre accezioni. Relazione matematica. Parte II. Il modello relazionale

Modello Relazionale. Università degli Studi di Salerno

Fondamenti di Teoria delle Basi di Dati

Parte II Il modello relazionale

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Modello relazionale. Il modello relazionale: strutture e vincoli

I modelli logici dei da6. Relazione: tre accezioni. Il modello relazionale. Relazione matema6ca. Relazione matema6ca, esempio IL MODELLO RELAZIONALE

Fondamenti di Teoria delle Basi di Dati

I modelli logici dei dati

Basi di dati. IL MODELLO RELAZIONALE Figure ed esempi. 09/10/2017 Atzeni - Basi di dati - Modello relazionale, figure ed esempi

Contenuti della lezione

Basi di Dati prof. Letizia Tanca

Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo Basi di dati a.a

Basi di dati e Relazioni

Modello relazionale e algebra relazionale

Modello relazionale e algebra relazionale

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Monday, January 10, Introduzione

MODELLI LOGICI DEI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 2: Il modello relazionale: strutture e vincoli MODELLI DEI DATI

Elena Baralis 2007 Politecnico di Torino 1

Elena baralis 2007 Politecnico di Torino 1

Basi di dati e Relazioni

IL MODELLO RELAZIONALE. Patrizio Dazzi a.a

D B M G. Sistemi informativi. Modello relazionale e algebra relazionale. Modello relazionale. Algebra relazionale

Basi di Dati. Sistemi per Basi di Dati Relazionali: Modello Logico. Concetti Fondamentali. Concetti Fondamentali

RELAZIONI E BASI DI DATI

Il modello relazionale

Model o relazionale 1

Elena baralis 2007 Politecnico di Torino 1

Elena baralis 2007 Politecnico di Torino 1

Ordo et connexio rerum idem est ac ordo et connexio idearum

Mirco Nanni ISTI CNR, Pisa. CdL in Lettere A.A. 2007/2008

Il modello Relazionale.

Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Il modello Relazionale.

Il Modello Relazionale

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

DataBase Management System - DBMS

Informatica II Basi di Dati (07/08) Parte Il modello relazionale. Il modello relazionale. Il modello relazionale

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Il Modello Relazionale

Il modello relazionale. Dr. C. d'amat

Elementi di Informatica LB Basi di Dati. Anno accademico 2007/2008 Prof. Stefano Contadini

Il modello Relazionale 1 ** RI P A SSO

La progettazione concettuale

Corso di. Basi di Dati I. 3. Vincoli di integrità

Accesso alla base di dati. Linguaggi per basi di dati. SQL immerso in linguaggio ad alto livello. SQL, un linguaggio interattivo

Sistemi Informativi Territoriali

Database. Modulo 5. C. Marrocco. Università degli Studi di Cassino

Scopo. Informatica. Sistema informativo. Sistema informatico

Prodotti costosi, complessi, che richiedono investimenti in hardware, software, personale.

Basi di dati. Giuseppe De Giacomo. Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma

Introduzione al Modello Relazionale

Alessandra Raffaetà. La costruzione di una base di dati

Principi di Progettazione del Software a.a

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

2.2a: MODELLO RELAZIONALE. (1 Struttura)

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Il Modello Relazionale e le operazioni

Informatica per Statistica Riassunto della lezione del 06/12/2013

Scopo Informatica. Sistema informativo. Sistema informatico. Gestione dell informazione per le lauree triennali

Vincoli di Integrità Referenziale

Sistemi Informativi Territoriali

Operatori derivati dagli insiemi

Scopo Laboratorio di Informatica

Modello Relazionale. Concetti e definizioni

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Sistemi Informativi Territoriali

Modello relazionale. Basi di dati relazionali. Modello relazionale. Il modello relazionale. Schema di una relazione. Modello relazionale

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Basi di Dati Spaziali

Corso di Informatica

Transcript:

Corso di Basi di Dati Spaziali Modello logico Modelli logici Permettono una rappresentazione astratta dei dati La maggior parte dei sistemi di basi di dati oggi sul mercato si basa sul modello relazionale Angelo Montanari Donatella Gubiani Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati Disponibile in DBMS reali nel 1981 (non è facile coniugare l indipendenza con l efficienza e l affidabilità!) Si basa sul concetto matematico di relazione (con una variante) Le relazioni hanno una naturale rappresentazione per mezzo di tabelle Relazione matematica Dati n insiemi (anche non distinti) D 1,,D n prodotto cartesiano D 1 D n : l insieme di tutte le n-uple (d 1,, d n ) tali che d 1 D 1,, d n D n relazione matematica su D 1,, D n : un sottoinsieme di D 1 D n 4 Definizioni Esempio di relazione matematica D 1,, D n sono i domini (o tipi di dato) della relazione possono essere definiti a prescindere dalle tabelle n è il grado della relazione cambia molto raramente se lo schema è ben fatto Il numero di tuple della relazione è la cardinalità della relazione varia frequentemente ogni tabella ha cardinalità finita 5 D 1 ={a,b} D ={x,y,z} prodotto cartesiano D 1 D una relazione r D 1 D a a a b b b a a a x y z x y z x y z 6 1

Proprietà Una relazione matematica è un insieme di n-uple ordinate (d 1,, d n ) tali che d 1 D 1,, d n D n Una relazione è un insieme le n-uple sono distinte non c'è ordinamento fra le n-uple 7 Struttura posizionale Partite string string int int PARTITE Juve Lazio Juve Roma Lazio Milan Roma Milan Ciascuno dei domini svolge due ruoli diversi, distinguibili attraverso la posizione 0 0 1 0 1 8 Struttura non posizionale A ciascun dominio si può associare un nome (attributo) danno significato (ruolo) possono portare problemi nella formalizzazione PARTITE CASA Juve Lazio Juve Roma FUORI Lazio Milan Roma Milan RETI_CASA 0 0 RETI_FUORI 1 0 1 9 Il modello è basato su valori I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple 10 STUDENTI MATRICOLA 6554 8765 98 456 Maria Alessandra NASCITA 05/1/198 0/11/1981 1/10/1979 01/0/1984 STUDENTI MATRICOLA 6554 8765 98 456 Maria Alessandra NASCITA 05/1/198 0/11/1981 1/10/1979 01/0/1984 ESAMI STUDENTE 456 456 98 6554 VO 8 6 7 0 CORSO 04 0 01 01 ESAMI STUDENTE VO 8 6 7 0 CORSO CORSI CODICE 01 0 04 TILO Analisi Chimica Chimica DOCENTE Bruni 11 CORSI CODICE 01 0 04 TILO Analisi Chimica Chimica DOCENTE Bruni 1

Struttura basata su valori: vantaggi Rispetto ai modelli basati su record e puntatori: richiede di rappresentare solo ciò che è rilevante dal punto di vista dell applicazione la rappresentazione logica non fa nessun riferimento a quella fisica è relativamente semplice il trasferimento da un calcolatore ad un altro A livello fisico i dati possono essere rappresentati secondo modalità che prevedono l uso di puntatori 1 Definizioni e notazioni - 1 Schema di relazione: un nome R con un insieme di attributi X = {A 1,..., A n }: R(X) = R(A 1,..., A n ) Schema di base di dati: insieme di schemi di relazione: R = {R 1 (X 1 ),..., R k (X k )} 14 Definizioni e notazioni - Una n-pla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio di A t[x] denota il valore della ennupla t sull insieme di attributi X t[a] denota il valore della ennupla t sull'attributo A 15 Definizioni e notazioni - Istanza di relazione su uno schema R(X) è un insieme r di ennuple su X r(r) o r R(X) Istanza di base di dati su uno schema R= {R 1 (X 1 ),..., R n (X n )} è un insieme di istanze di relazioni r = {r 1,..., r n } (con r i relazione su R i ) 16 Strutture nidificate Da Filippo Via Roma, Roma Ricevuta Fiscale 15 del 1/10/000 Coperti,00 Antipasti 6,0 Primi 1,00 Bistecche 18,00 Totale 9,0 Da Filippo Via Roma, Roma Ricevuta Fiscale 140 del 1/10/000 Coperti,00 Antipasti 7,00 Primi 8,00 Orate 0,00 Caffè,00 Totale 9,00 17 Relazioni che rappresentano strutture nidificate RICEVUTE NUMERO 15 DATA 1/10/000 TALE 9,0 140 1/10/000 9,00 DETTAGLIO NUMERO Q.TA DESCRIZIONE 15 15 15 15 140 Coperti Antipasti Primi Bistecche Coperti IMPOR,00 6,0 1,00 18,00,00 18

Strutture nidifcate, riflessione Abbiamo rappresentato veramente tutti gli aspetti delle ricevute? Dipende da che cosa ci interessa! l'ordine delle righe è rilevante? possono esistere linee ripetute in una ricevuta? Sono possibili rappresentazioni diverse? 19 Rappresentazione alternativa per strutture nidificate RICEVUTE DETTAGLIO NUMERO 15 15 15 15 140 NUMERO 15 140 RIGA 1 4 1 DATA 1/10/000 1/10/000 Q.TA TALE 9,0 9,00 DESCRIZIONE Coperti Antipasti Primi Bistecche Coperti IMPOR,00 6,0 1,00 18,00,00 0 Informazione incompleta - 1 Informazione incompleta - Antonio Maria INDIRIZZO Via Roma, 15 Udine Piazza S.Lorenzo, 5 Trieste TELEFONO 0444567 1 Non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, 99,...) Tecnica rudimentale ma efficace: valore nullo: denota l assenza di un valore del dominio (e non è un valore del dominio) t[a], per ogni attributo A, è un valore del dominio dom(a) oppure il valore nullo NULL Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli Tipi di valore nullo (Almeno) Tre casi differenti valore sconosciuto/non disponibile valore non esistente valore senza informazione I DBMS non distinguono i tipi di valore nullo Basi di dati scorrette Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l applicazione di interesse 4 4

Base di dati scorretta Vincolo di integrità ESAMI STUDENTE VO LODE 76545 76545 0 e lode 78764 7 e lode 7940 4 STUDENTI MATRICOLA 76545 78764 78764 CORSO 01 0 0 04 Maria Antonio Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l applicazione I diversi vincoli possono essere classificazione a seconda degli elementi coinvolti: vincoli intrarelazionali vincoli interrelazionali 5 6 Vincoli intrarelazionali Vincoli di tupla - 1 I vincoli intrarelazionali sono definiti rispetto a singole relazioni Si distinguono: vincoli di tupla vincoli che coinvolgono più tuple I vincoli di tupla sono vincoli che possono essere valutati all interno di ogni singola tupla, indipendentemente dalle altre tuple Possono essere relativi ad un singolo attributo vincoli di dominio (Voto 18) AND (Voto 0) 7 8 Vincoli di tupla - vincolo NOT NULL Matricola IS NOT NULL Possono coinvolgere diversi attributi (NOT(Lode="e lode")) OR (Voto=0) Vincolo di chiave Il vincolo intrarelazionale fondamentale per il modello relazionale è il vincolo di chiave Intuitivamente, una chiave è un insieme di attributi utilizzato per identificare univocamente le tuple di una relazione 9 0 5

Esempio di chiave - 1 MATRICOLA 7655 7876 654 87654 6765 CORSO Informatica Matematica Ingegneria Informatica Ingegneria NASCITA 5/1/78 /11/76 10/11/79 /11/76 5/1/78 Non ci sono due n-ple con lo stesso valore sull attributo Matricola Non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita 1 Formalmente: Chiave un insieme di attributi K è superchiave di una relazione r se r non contiene due tuple distinte t1 e t con t1[k] = t[k] K è chiave di r se è una superchiave minimale di r (cioè non esiste un altra superchiave K di r che sia contenuta in K come sottoinsieme proprio) Esempio di chiave - MATRICOLA 7655 7876 654 87654 6765 CORSO Informatica Matematica Ingegneria Informatica Ingegneria Matricola è una chiave: è superchiave contiene un solo attributo e quindi è minimale Cognome, Nome, Nascita è un altra chiave: è superchiave minimale NASCITA 5/1/78 /11/76 10/11/79 /11/76 5/1/78 Considerazioni sulle chiavi Ogni relazione ha una chiave Fra le possibili chiavi di una relazione deve essere selezionata una chiave primaria Per garantire l identificazione univoca di ogni tupla, la chiave primaria non può assumere valori nulli Quando non è possibile trovare degli attributi identificanti è necessario introdurre un attributo aggiuntivo, un codice 4 Vincoli interrelazionali Vincoli interrelazionali coinvolgono più relazioni La più importante classe di vincoli interrelazionali sono i vincoli di integrità referenziale Informazioni in relazioni diverse sono correlate attraverso valori comuni valori delle chiavi primarie INFRAZIONI CODICE DATA VIGILE PROVINCIA NUMERO 41 1//004 987 MI 9548K 554 6451 4//005 5/4/005 95 95 E9548 89548 71 5//006 945 89548 VIGILI MATRICOLA 987 Luca 95 945 754 Mori Antonio 5 6 6

INFRAZIONI CODICE 41 554 6451 71 AU DATA VIGILE 1//004 987 4//005 95 5/4/005 95 5//006 945 PROVINCIA NUMERO MI 9548K E9548 89548 PROVINCIA MI NUMERO 9548K E9548 89548 89548 Vincolo di integrità referenziale - 1 Un vincolo di integrità referenziale (o references key) fra gli attributi X di una relazione R 1 e un altra relazione R impone ai valori su X in R 1 di comparire come valori della chiave primaria di R Esempio precedente: l attributo Vigile della relazione INFRAZIONI e la relazione VIGILI gli attributi Prov e Numero di INFRAZIONI e la relazione AU 7 8 Violazione di vincolo di integrità referenziale INFRAZIONI CODICE 41 554 6451 71 AU DATA 1//004 4//005 5/4/005 5//006 PROVINCIA MI VIGILE 987 95 95 945 NUMERO E9548 F9548 89548 PROVINCIA MI NUMERO E9548 E9548 89548 89548 9 Vincoli di integrità referenziale - Giocano un ruolo fondamentale nel concetto di modello basato su valori in presenza di valori nulli i vincoli possono essere resi meno restrittivi sono possibili meccanismi per il supporto alla loro gestione ("azioni" compensative a seguito di violazioni) attenzione ai vincoli su più attributi 40 IMPIEGATI PROGETTI Integrità referenziale e valori nulli MATRICOLA 41 554 6451 70 CODICE IDEA XYZ BOH INIZIO 01/006 07/006 01/007 Maria DURATA 6 4 4 PROGET IDEA XYZ IDEA COS 00 10 150 41 Violazione di vincoli di integrità: soluzioni La violazione di un vingolo di integrita referenziale può verificarsi in diverse situazioni inserimento di una nuova tupla eliminazione di una tupla aggiornamento di una tupla Diverse sono le soluzioni che possono essere adottate rifiuto dell operazione (comportamento standard) eliminazione in cascata introduzione di valori nulli 4 7

Eliminazione in cascata Introduzione di valori nulli IMPIEGATI MATRICOLA 41 554 6451 70 Maria PROGET IDEA XYZ IDEA IMPIEGATI MATRICOLA 41 554 6451 70 Maria PROGET IDEA XYZ IDEA PROGETTI CODICE INIZIO DURATA COS IDEA 01/006 6 00 XYZ 07/001 07/006 4 10 BOH 01/007 4 150 PROGETTI CODICE INIZIO DURATA COS IDEA 01/006 6 00 XYZ 07/001 07/006 4 10 BOH 01/007 4 150 4 44 AU INCIDENTI Vincoli multipli su più attributi CODICE 41 6451 PROVINCIA MI DATA 1//06 5/6/06 NUMERO PR_A 9548K E9548 89548 NUM_A E9548 89548 PR_A MI NUM_A 9548K E9548 Per trattare dati spaziali Dato un modello logico tradizionale (modello relazionale) introduzione di uno o più tipi di dato spaziale Vincoli di integrità referenziale fra: gli attributi ProvA e NumeroA di INCIDENTI e la relazione AU gli attributi ProvB e NumeroB di INCIDENTI e la relazione AU 45 46 Modello GEO-relazionale Il modello relazionale prevede una serie di tipi di dato di base: INTEGER: numeri interi REAL: numeri reali approssimati STRING: stringhe di caratteri BOOLEAN: valori booleani (vero, falso) Per trattare dati spaziali vengono introdotti uno o più tipi di dato spaziale (SDT) 47 Tipi di dato spaziale (SDT) Geometria lineare i componenti di base sono punti, segmenti di retta, spezzate, spezzate chiuse Si definisce uno SDT specifico per ogni dimensione dimensione 0 punto dimensione 1 spezzata dimensione poligono 48 8

Elementi di geometria - 1 Spazio di riferimento: R Punto: P(x,y) a è il vettore che individua il punto P in R 49 Elementi di geometria - Segmento di retta per i punti P e Q individuati dai vettori a e b: s={λa+(1-λ)b λ [0,1]} chiamiamo estremi del segmento i punti s.e 1 =Q(λ=0) e s.e =P(λ=1) Spezzata è un insieme di segmenti di retta sp={s 1,,s n } tale che ogni estremo di segmento è condiviso da esattamente due segmenti, eccetto al massimo due estremi, detti estremi della spezzata 50 Elementi di geometria - se la spezzata non si interseca si dice spezzata semplice se la spezzata non ha estremi si dice spezzata chiusa una spezzata si dice monotona rispetto a una retta L se ogni retta L ortogonale a L incontra la spezzata in al più un punto Elementi di geometria - 4 a) segmento b) spezzata semplice c) spezzata non semplice d) spezzata chiusa e) spezzata monotona f) spezzata non monotona 51 5 Elementi di geometria - 5 Elementi di geometria - 6 Poligono semplice: data una spezzata chiusa sp, è la porzione di R delimitata da sp sp fa parte del poligono 5 Poligono bucato: data una spezzata chiusa sp e un insieme di spezzate chiuse H={sp 1,,sp n }, è la porzione di R delimitata da sp alla quale siano tolte le porzioni di piano delimitate da sp i H, a condizione che: sp e tutte le sp i H siano parte del poligono tutte le sp i H siano contenute nel poligono semplice delimitato da sp tutte le sp i H non intersechino sp per ogni sp i,sp j H, sp i non intersechi sp j ed sp i non contenga sp j 54 9

Elementi di geometria - 7 Un poligono P si dice convesso se per ogni coppia di punti A e B in P il segmento AB è completamente incluso in P Un poligono monotono è un poligono semplice tale che la sua frontiera si può spezzare esattamente in due spezzate monotone Una regione è un insieme di poligoni Elementi di geometria - 8 Esempi di poligoni: a) semplice b) non semplice c) convesso d) monotono e) bucato f) regione 55 56 Punto - 1 Punto - POINT è un insieme finito P di punti di R Boundary di P è l'insieme vuoto Interior di P è P stesso 57 Dato P: POINT sono definite le seguenti operazioni: P.X: REAL coordinata x del baricentro di P; P.Y: REAL coordinata y del baricentro di P; P.Distanza(Q: POINT): REAL distanza euclidea tra il baricentro di P e il baricentro di Q; P.NumPunti: INTEGER numero di punti presenti in P; P.Punto(I: INTEGER): POINT i-esimo punto presente in P; P.Unione(Q: POINT): POINT genera l'unione dei due insiemi di punti. Si suppone definito anche l'operatore di uguaglianza: P = Q 58 Linea - 1 Linea - LINE è un insieme di spezzate L di R tale che nessuna coppia di spezzate abbia come intersezione una spezzata Boundary di L è l'insieme di punti di R costituito dagli estremi delle spezzate tolti gli estremi che appartengono a più di una spezzata Interior di L è l'insieme di punti di R costituito dalle spezzate private degli estremi che costituiscono il Boundary di L 59 Data L: LINE sono definite le seguenti operazioni: L.Boundary: POINT boundary di L; L.NumSpezzate: INTEGER numero di spezzate di L L.Lunghezza: REAL lunghezza di L ottenuta sommando la lunghezza di tutte le spezzate che la compongono; L.Semplice: BOOLEAN vero se l'unione delle spezzate di L è una spezzata semplice; L.Chiusa: BOOLEAN vero se l'unione delle spezzate di L è una spezzata chiusa; L.Unione(K: LINE): LINE genera un valore di tipo LINE che rappresenta l'unione di L e K; 60 10

Linea - L.IntersezioneL(K: LINE): LINE genera un valore di tipo LINE che rappresenta l'intersezione di L e K. Se l'intersezione è costituita solo da punti, allora produce l'insieme vuoto; L.IntersezioneP(K: LINE): POINT genera un valore di tipo POINT che rappresenta l'intersezione di L e K. Se l'intersezione è costituita solo da spezzate, allora produce l'insieme vuoto. Se nell'intersezione sono presenti spezzate e punti isolati, restituisce solo questi ultimi. Si suppone definito anche l'operatore di uguaglianza: L = L' 61 Poligono - 1 POLYGON è un insieme G di poligoni bucati di R, tale che ogni coppia di poligoni costituisce un insieme di punti non connesso Definizione. Un insieme di punti si dice (path-)connesso se per ogni coppia di suoi punti esiste un cammino (path) completamente contenuto nell insieme che li connette Boundary di G è costituito dalle spezzate che delimitano i poligoni di G Interior di G è costituito dai poligoni privati delle spezzate che li delimitano 6 Poligono - Poligono - Dato G: POLYGON sono definite le seguenti operazioni (per semplicità consideriamo insiemi singoletti): G.Frontiera: LINE valore geometrico di tipo LINE che costituisce la frontiera esterna del poligono; G.Boundary: LINE valore geometrico di tipo LINE che costituisce la frontiera del poligono; G.Semplice: BOOLEAN vero se G e semplice; G.NumBuchi: INTEGER numero di buchi presenti nel poligono G; G.Perimetro: REAL lunghezza del perimetro di G ottenuto sommando la lunghezza di tutte le spezzate G.Unione(H: POLYGON): POLYGON genera un valore di tipo POLYGON che rappresenta l'unione dei due poligoni G e H; G.IntersezioneG(H: POLYGON): POLYGON genera un valore di tipo POLYGON che rappresenta l'intersezione dei due poligoni G e H. Se l'intersezione è costituita solo da punti e/o linee allora produce l'insieme vuoto; G.IntersezioneL(H: POLYGON): LINE genera un valore di tipo LINE che rappresenta l'intersezione dei due poligoni G e H. Se l'intersezione è costituita solo da punti e/o da poligoni allora produce l'insieme vuoto. Se l'intersezione presenta oltre a spezzate anche poligoni e/o punti restituisce solo le spezzate; che lo delimitano; G.Area: REAL misura dell'area del poligono G; 6 64 Poligono - 4 Poligono - 5 G.IntersezioneP(H: POLYGON): POINT genera un valore di tipo POINT che rappresenta l'intersezione dei due poligoni G e H. Se l'intersezione è costituita solo da linee e/o poligoni allora produce l'insieme vuoto. Se l'intersezione presenta oltre a punti isolati anche linee e/o poligoni restituisce solo i punti isolati. Si suppone definito anche l'operatore di uguaglianza: G = G 65 66 11

Relazioni (o tabelle) - 1 Uno schema di tabella è definito come R(X 1 :D 1,...,X n :D n ) dove D 1,...,D n rappresentano domini di base o geometrici Un'istanza di tale schema è r di R(X 1 : D 1,...,X n : D n ) dove r D 1 xxd n Relazioni (o tabelle) - COMUNE( Nome: STRING, NumAbitanti: INTEGER, Estensione: POLYGON) 67 68 Rappresentazione dei dati spaziali: problemi La rappresentazione dei valori geometrici in un GEO-DBMS presenta alcuni problemi: l'occupazione di memoria di un valore geometrico l'imprecisione nelle coordinate (rappresentazione approssimata dei numeri reali) i valori geometrici sono fortemente correlati Rappresentazione dei dati spaziali: metodi Due metodi: insieme di liste di coordinate struttura basata sulla topologia dei dati 69 70 Liste di coordinate - 1 Liste di coordinate - Ogni tipo di dato spaziale è definito in modo analogo poligono come insieme di coordinate linee come insieme di coordinate punti come un singoletto di coordinate 71 G1=(ln,(<0,0>,<1,>,<1,7>,<1,11>,<15,10>,<0,4>,<4,6>)) G=(ln,(<-,10>,<1,7>,<1,11>,<14,1>,<0,1>)) G=(pg,(<5,14>,<10,1.5>,<11,1>,<1,11>,<1,7>,<0,10>, <0,1.5>)) 7 1

Liste di coordinate - Vantaggi: l'indipendenza tra i valori geometrici le buone prestazioni dell'operazione di visualizzazione grafica della geometria di un sottoinsieme limitato di valori Svantaggi: tutte le selezioni spaziali e le operazioni di manipolazione richiedono l'applicazione di algoritmi di geometria computazionale la ridondanza nella rappresentazione della geometria 7 Struttura basata sulla topologia - 1 Ogni tipo di dato spaziale è definito in modo diverso a seconda della sua struttura topologica poligono come insieme di linee linee come insieme di punti punti come coppia di coordinate 74 Struttura basata sulla topologia - Struttura basata sulla topologia - 75 76 Struttura basata sulla topologia - 4 G1 = <ln, {a1,a,a}> G = <ln,{a1,a4,a5}> G = <pg,{a1,a6,a7}> a1 = (P, (), P) a = (P1, (<1,>), P) a = (P, (<15,10>, <0,4>), P4) a4 = (P, ( <14,1>),P5) a5 = (P6, (),P) a6 = (P, (<0,10>, <0,1.5>), P7) Struttura basata sulla topologia - 5 P1 = <0,0> P = <1,7> P = <1,11> P4 = <4,6> P5 = <0,1> P6 = <-,10> P7 = <5,14> a7 = (P7, (<10,1.5>, <11,1>), P) 77 78 1

Struttura basata sulla topologia - 6 Vantaggi: l'eliminazione della ridondanza la riduzione di alcune operazioni geometriche a selezione di un insieme di identificatori o puntatori a valori geometrici elementari precalcolati la riduzione della ricerca via predicati topologici ad un confronto tra identificatori o puntatori a valori geometrici elementari precalcolati la verifica dei vincoli spaziali immediata e supportata dalla struttura topologica 79 Struttura basata sulla topologia - 7 Svantaggi: il ripristino della topologia corretta a valle di ogni inserimento di un nuovo valore geometrico la pura visualizzazione di un valore geometrico richiede il ritrovamento della geometria attraverso una catena di puntatori (indirettezze) 80 14