Basi di Dati Spaziali -...

14
1 Corso di Basi di Dati Spaziali Angelo Montanari Donatella Gubiani Modello logico 2 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 3 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 4 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 5 Definizioni •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 6 Esempio di relazione matematica • una relazione r D 1 ×D 2 z b y b x b z a y a x a •D 1 ={a,b} •D 2 ={x,y,z} • prodotto cartesiano D 1 ×D 2 z a y a x a

Transcript of Basi di Dati Spaziali -...

Page 1: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

1

Corso di

Basi di Dati Spaziali

Angelo Montanari

Donatella Gubiani

Modello logico

2

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

3

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

4

Relazione matematica

• Dati n insiemi (anche non distinti) D1,…,Dn–prodotto cartesiano D1×…×Dn: l’insieme di tutte le n-uple (d1, …, dn) tali che d1∈D1, …, dn ∈ Dn

– relazione matematica su D1, …, Dn: un sottoinsieme di D1×…×Dn

5

Definizioni

• D1, …, Dn 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à finita6

Esempio di relazione matematica

• una relazioner ⊆ D1 × D2

zb

yb

xb

za

ya

xa

•D1={a,b}

•D2={x,y,z}

•prodotto cartesiano D1×D2

za

ya

xa

Page 2: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

2

7

Proprietà

• Una relazione matematica è un insieme di n-uple ordinate

– (d1, …, dn) tali che d1∈D1, …, dn ∈ Dn

• Una relazione è un insieme

– le n-uple sono distinte

– non c'è ordinamento fra le n-uple

8

Struttura posizionale

• Ciascuno dei domini svolge due ruolidiversi, distinguibili attraverso la posizione

Partite ⊆⊆⊆⊆ string × string × int × int

Milan

Roma

Milan

Lazio

0

0

2

3

1Roma

2Juve

0Lazio

1Juve

PARTITE

9

Struttura non posizionale

•A ciascun dominio si può associareun nome (attributo)

� danno significato (ruolo)

� possono portare problemi nella formalizzazione

RETI_FUORIRETI_CASAFUORICASA

Milan

Roma

Milan

Lazio

0

0

2

3

1Roma

2Juve

0Lazio

1Juve

PARTITE

10

Il modello è basatosu valori

• I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple

11

STUDENTI

CORSI

ESAMI

Chimica

Chimica

Analisi

TITOLO

Verdi

Bruni

Mario

DOCENTE

04

02

01

CODICE

01306554

27

26

28

VOTO

01

02

04

CORSO

9283

3456

3456

STUDENTE

01/02/1984AlessandraRossi3456

Maria

Marco

Paolo

NOME

Verdi

Neri

Rossi

COGNOME

12/10/1979

03/11/1981

05/12/1983

NASCITA

9283

8765

6554

MATRICOLA

12

STUDENTI

CORSI

ESAMI

Chimica

Chimica

Analisi

TITOLO

Verdi

Bruni

Mario

DOCENTE

04

02

01

CODICE

30

27

26

28

VOTO CORSOSTUDENTE

01/02/1984AlessandraRossi3456

Maria

Marco

Paolo

NOME

Verdi

Neri

Rossi

COGNOME

12/10/1979

03/11/1981

05/12/1983

NASCITA

9283

8765

6554

MATRICOLA

Page 3: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

3

13

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

14

Definizioni e notazioni - 1

• Schema di relazione:

un nome R con un insieme di attributi

X = {A1, ..., An}:

R(X) = R(A1,..., An)

• Schema di base di dati:

insieme di schemi di relazione:

R = {R1(X1), ..., Rk(Xk)}

15

Definizioni e notazioni - 2

• Una n-pla su un insieme di attributi X è una funzione che associa a ciascun attributo A in Xun 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

16

Definizioni e notazioni - 3

• 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= {R1(X1), ..., Rn(Xn)} è un insieme

di istanze di relazioni r = {r1,..., rn}

(con ri relazione su Ri)

17

Strutture nidificate

Da Filippo

Via Roma 2, Roma

Ricevuta Fiscale

1235 del 12/10/2000

3 Coperti 3,00

2 Bistecche 18,00

3 Primi 12,00

2 Antipasti 6,20

Totale 39,20

Da Filippo

Via Roma 2, Roma

Ricevuta Fiscale

1240 del 13/10/2000

2 Coperti 2,00

2 Orate 20,00

2 Primi 8,00

2 Antipasti 7,00

2 Caffè 2,00

Totale 39,0018

Relazioni che rappresentano strutture nidificate

13/10/2000

12/10/2000

DATA

39,00

39,20

TOTALE

1240

1235

NUMERORICEVUTE

DETTAGLIO

…………

2,00Coperti21240

18,00Bistecche21235

12,00Primi31235

Antipasti

Coperti

DESCRIZIONE

2

3

Q.TA’

6,20

3,00

IMPORTO

1235

1235

NUMERO

Page 4: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

4

19

Strutture nidifcate, riflessione

• Abbiamo rappresentato veramente tuttigli aspetti delle ricevute?

• Dipende da che cosa ci interessa! – l'ordine delle righe è rilevante?

– possono esistere linee ripetute in unaricevuta?

• Sono possibili rappresentazioni diverse?

20

Rappresentazione alternativa per strutture nidificate

13/10/2000

12/10/2000

DATA

39,00

39,20

TOTALE

1240

1235

NUMERORICEVUTE

DETTAGLIO

1

4

3

2

1

RIGA

…………

2,00Coperti21240

18,00Bistecche21235

12,00Primi31235

Antipasti

Coperti

DESCRIZIONE

2

3

Q.TA’

6,20

3,00

IMPORTO

1235

1235

NUMERO

21

Informazione incompleta - 1

Piazza S.Lorenzo, 5 Trieste

Via Roma, 15 Udine

INDIRIZZO

BianchiMaria

Rossi

Verdi

COGNOME

043244567

TELEFONO

Antonio

Marco

NOME

22

Informazione incompleta - 2

• 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

23

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

24

Basi di dati scorrette

• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse

Page 5: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

5

25

AntonioBianchi787643

Neri

Rossi

COGNOME

Maria

Paolo

NOME

787643

276545

MATRICOLA

Base di dati scorretta

0424739430

03e lode27787643

e lode

LODE

30

32

VOTO

02

01

CORSO

276545

276545

STUDENTEESAMI

STUDENTI

787643

787643

32

27 e lode

739430

26

Vincolo di integrità

• 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

27

Vincoli intrarelazionali

• I vincoli intrarelazionali sono definitirispetto a singole relazioni

• Si distinguono:– vincoli di tupla

– vincoli che coinvolgono più tuple

28

Vincoli di tupla - 1

• I vincoli di tupla sono vincoli chepossono essere valutati all’interno di ogni singola tupla, indipendentementedalle altre tuple

• Possono essere relativi ad un singoloattributo– vincoli di dominio

(Voto≥18) AND (Voto≤30)

29

Vincoli di tupla - 2

– vincolo NOT NULL

Matricola IS NOT NULL

• Possono coinvolgere diversi attributi

(NOT(Lode="e lode")) OR (Voto=30)

30

Vincolo di chiave

• Il vincolo intrarelazionalefondamentale per il modellorelazionale è il vincolo di chiave

• Intuitivamente, una chiave è uninsieme di attributi utilizzato per identificare univocamente le tupledi una relazione

Page 6: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

6

31

Esempio di chiave - 1

– 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

5/12/78IngegneriaPieroRossi67653

3/11/76InformaticaMarioNeri87654

Ingegneria

Matematica

Informatica

CORSO

10/11/79PieroNeri65432

Mario

Mario

NOME

Rossi

Rossi

COGNOME

3/11/76

5/12/78

NASCITA

78763

27655

MATRICOLA

32

Chiave

• Formalmente:

–un insieme di attributi K è superchiave di una relazione r se r non contiene duetuple distinte t1 e t2 con t1[K] = t2[K]

–K è chiave di r se è una superchiaveminimale di r (cioè non esiste un’altrasuperchiave K’ di r che sia contenuta in K come sottoinsieme proprio)

33

Esempio di chiave - 2

• Matricola è una chiave:– è superchiave

– contiene un solo attributo e quindi è minimale

• Cognome, Nome, Nascita è un’altra chiave:– è superchiave

– minimale

5/12/78IngegneriaPieroRossi67653

3/11/76InformaticaMarioNeri87654

Ingegneria

Matematica

Informatica

CORSO

10/11/79PieroNeri65432

Mario

Mario

NOME

Rossi

Rossi

COGNOME

3/11/76

5/12/78

NASCITA

78763

27655

MATRICOLA

34

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

35

• 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

Vincoli interrelazionali

36

VIGILI

839548PE93455/2/200673321

PE

TO

MI

PROVINCIA

83954832955/4/200564521

3295

3987

VIGILE

4/3/2005

1/2/2004

DATA

E39548

39548K

NUMERO

53524

34321

CODICE

INFRAZIONI

AntonioMori7543

PieroNeri9345

Mario

Luca

NOME

Neri

Rossi

COGNOME

3295

3987

MATRICOLA

3987

3987

3295

3295

9345

3295

9345

Page 7: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

7

37

AUTO

839548PE93455/2/200673321

PE

TO

MI

PROVINCIA

83954832955/4/200564521

3295

3987

VIGILE

4/3/2005

1/2/2004

DATA

E39548

39548K

NUMERO

53524

34321

CODICE

INFRAZIONI

839548

E39548

39548K

NUMERO

PieroVerdiPE

Paolo

Marco

NOME

Neri

Bianchi

COGNOME

TO

MI

PROVINCIA

MI 39548K

TO E39548

PE

PE

839548

839548

MI 39548K

TO E39548

PE 839548

38

• Un vincolo di integrità referenziale(o references key) fra gli attributi X di una relazione R1 e un’altra relazione R2impone ai valori su X in R1 di comparire come valori della chiave primaria di R2

• Esempio precedente: – l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI

– gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO

Vincolo di integritàreferenziale - 1

39

AUTO

839548PE93455/2/200673321

PE

TO

MI

PROVINCIA

83954832955/4/200564521

3295

3987

VIGILE

4/3/2005

1/2/2004

DATA

E39548

E39548

NUMERO

53524

34321

CODICE

INFRAZIONI

839548

F39548

E39548

NUMERO

PieroVerdiPE

Paolo

Marco

NOME

Neri

Bianchi

COGNOME

TO

MI

PROVINCIA

TO E39548

TO

E39548

Violazione di vincolo di integritàreferenziale

40

Vincoli di integritàreferenziale - 2

• 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

41

Integrità referenzialee valori nulli

IDEAMariaBianchi73032

Verdi

Neri

Bianchi

COGNOME

Piero64521

XYZ

IDEA

PROGETTO

Paolo

Marco

NOME

53524

34321

MATRICOLA

PROGETTI

IMPIEGATI

01/2007

07/2006

01/2006

INIZIO

15024BOH

120

200

COSTO

24

36

DURATA

XYZ

IDEA

CODICE

42

Violazione di vincolidi integrità: soluzioni

• La violazione di un vingolo di integritareferenziale può verificarsi in diverse situazioni– inserimento di una nuova tupla

– eliminazione di una tupla

– aggiornamento di una tupla

• Diverse sono le soluzioni che possono essereadottate– rifiuto dell’operazione (comportamento standard)

– eliminazione in cascata

– introduzione di valori nulli

Page 8: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

8

43

Eliminazione in cascata

IDEAMariaBianchi73032

Verdi

Neri

Bianchi

COGNOME

Piero64521

XYZ

IDEA

PROGETTO

Paolo

Marco

NOME

53524

34321

MATRICOLA

PROGETTI

IMPIEGATI

01/2007

07/2006

01/2006

INIZIO

15024BOH

120

200

COSTO

24

36

DURATA

XYZ

IDEA

CODICE

XYZ 07/2001 24 120

44

Introduzione di valori nulli

IDEAMariaBianchi73032

Verdi

Neri

Bianchi

COGNOME

Piero64521

XYZ

IDEA

PROGETTO

Paolo

Marco

NOME

53524

34321

MATRICOLA

PROGETTI

IMPIEGATI

01/2007

07/2006

01/2006

INIZIO

15024BOH

120

200

COSTO

24

36

DURATA

XYZ

IDEA

CODICE

XYZ 07/2001 24 120

45

AUTO

Vincoli multipli su piùattributi

5/6/06

1/2/06

DATA

TO

MI

PR_A

E39548

39548K

NUM_A

PE

TO

PR_A

839548

E39548

NUM_A

64521

34321

CODICE

•Vincoli di integrità referenziale fra:

–gli attributi ProvA e NumeroA di INCIDENTI e la relazione AUTO

–gli attributi ProvB e NumeroB di INCIDENTI e la relazione AUTO

INCIDENTI

839548

E39548

39548K

NUMERO

PieroVerdiPE

Paolo

Marco

NOME

Neri

Bianchi

COGNOME

TO

MI

PROVINCIA

46

Per trattare dati spaziali…

• Dato un modello logico tradizionale (modello relazionale)

� introduzione di uno o più tipi di dato spaziale

47

Modello GEO-relazionale

• Il modello relazionale prevede unaserie 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 vengonointrodotti uno o più tipi di dato spaziale (SDT)

48

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 2 � poligono

Page 9: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

9

49

Elementi di geometria - 1

• Spazio di riferimento: R2

• Punto: P(x,y)

– a è il vettore che individua il punto P in R2

50

Elementi di geometria - 2

• 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.E1=Q(λ=0) e s.E2=P(λ=1)

• Spezzata è un insieme di segmenti di retta sp={s1,…,sn} tale che ogni estremo di segmento è condiviso da esattamente due segmenti, eccetto al massimo due estremi, detti estremi della spezzata

51

Elementi di geometria - 3

– 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

52

Elementi di geometria - 4

a) segmento

b) spezzata semplice

c) spezzata non semplice

d) spezzata chiusa

e) spezzata monotona

f) spezzata non monotona

53

Elementi di geometria - 5

• Poligono semplice: data una spezzata chiusa sp, è la porzione di R2 delimitata da sp– sp fa parte del poligono

54

Elementi di geometria - 6

• Poligono bucato: data una spezzata chiusa sp e un insieme di spezzate chiuse H={sp1,…,spn}, è la porzione di R2 delimitata da sp alla quale siano tolte le porzioni di piano delimitate da spi∈H, a condizione che:– sp e tutte le spi∈H siano parte del poligono

– tutte le spi∈H siano contenute nel poligono semplice delimitato da sp

– tutte le spi∈H non intersechino sp

– per ogni spi,spj∈H, spi non intersechi spj ed spinon contenga spj

Page 10: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

10

55

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

56

Elementi di geometria - 8

Esempi di poligoni:

a) semplice

b) non semplice

c) convesso

d) monotono

e) bucato

f) regione

57

Punto - 1

• POINT è un insieme finito P di punti di R2

• Boundary di P è l'insieme vuoto

• Interior di P è P stesso

58

Punto - 2

• 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

59

Linea - 1

• LINE è un insieme di spezzate L di R2 tale che nessuna coppia di spezzate abbia come intersezione una spezzata

• Boundary di L è l'insieme di punti di R2

costituito dagli estremi delle spezzate tolti gli estremi che appartengono a piùdi una spezzata

• Interior di L è l'insieme di punti di R2

costituito dalle spezzate private degli estremi che costituiscono il Boundary di L

60

Linea - 2

• 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;

Page 11: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

11

61

Linea - 3

– 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'

62

Poligono - 1

• POLYGON è un insieme G di poligoni bucati di R2, 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

63

Poligono - 2

• 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 che lo delimitano;

– G.Area: REAL misura dell'area del poligono G; 64

Poligono - 3

– 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;

65

Poligono - 4

– 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’

66

Poligono - 5

Page 12: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

12

67

Relazioni (o tabelle) - 1

• Uno schema di tabella è definito come R(X1:D1,...,Xn:Dn) dove D1,...,Dn rappresentano domini di base o geometrici

• Un'istanza di tale schema è r di R(X1: D1,...,Xn: Dn) dove r ⊆ D1x…xDn

68

Relazioni (o tabelle) - 2

COMUNE( Nome: STRING,NumAbitanti: INTEGER,Estensione: POLYGON)

69

Rappresentazionedei 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

70

Rappresentazionedei dati spaziali: metodi

• Due metodi:

– insieme di liste di coordinate

– struttura basata sulla topologia dei dati

71

Liste di coordinate - 1

• 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

72

Liste di coordinate - 2

G1=(ln,(<0,0>,<1,2>,<1,7>,<13,11>,<15,10>,<20,4>,<24,6>))

G2=(ln,(<-2,10>,<1,7>,<13,11>,<14,13>,<20,13>))

G3=(pg,(<5,14>,<10,13.5>,<11,12>,<13,11>,<1,7>,<0,10>,<0,12.5>))

Page 13: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

13

73

Liste di coordinate - 3

• 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

74

Struttura basatasulla 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

75

Struttura basatasulla topologia - 2

76

Struttura basatasulla topologia - 3

77

Struttura basatasulla topologia - 4

G1 = <ln, {a1,a2,a3}>

G2 = <ln,{a1,a4,a5}>

G3 = <pg,{a1,a6,a7}>

a1 = (P2, (), P3)

a2 = (P1, (<1,2>), P2)

a3 = (P3, (<15,10>, <20,4>), P4)

a4 = (P3, ( <14,13>),P5)

a5 = (P6, (),P2)

a6 = (P2, (<0,10>, <0,12.5>), P7)

a7 = (P7, (<10,13.5>, <11,12>), P3) 78

Struttura basatasulla topologia - 5

P1 = <0,0>

P2 = <1,7>

P3 = <13,11>

P4 = <24,6>

P5 = <20,13>

P6 = <-2,10>

P7 = <5,14>

Page 14: Basi di Dati Spaziali - users.dimi.uniud.itusers.dimi.uniud.it/.../universita/corsi/bds/sit/slide2_08.pdf · Bruni Mario DOCENTE 04 02 01 CODICE 30 27 26 28 ... Da Filippo Via Roma

14

79

Struttura basatasulla 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 identificatorio puntatori a valori geometrici elementari precalcolati

– la verifica dei vincoli spaziali immediata e supportata dalla struttura topologica

80

Struttura basatasulla 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)