Corso Storia Basi di Dati donatella.gubiani/universita/corsi/bds/bds/slide5... · PDF...

Click here to load reader

  • date post

    05-Aug-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Corso Storia Basi di Dati donatella.gubiani/universita/corsi/bds/bds/slide5... · PDF...

  • Università degli Studi di Udine 1

    Corso Corso di di

    Basi di Dati SpazialiBasi di Dati Spaziali

    Angelo MontanariAngelo Montanari Donatella GubianiDonatella Gubiani

    Estensione spaziale di SQL Estensione spaziale di SQL (i sistemi PostgreSQL (i sistemi PostgreSQL

    e Oracle Spatial)e Oracle Spatial)

    Università degli Studi di Udine 2

    StoriaStoria

    • Storia:Storia: –1974: prima proposta SEQUEL1974: prima proposta SEQUEL –1981: prime implementazioni1981: prime implementazioni –1983: standard di fatto1983: standard di fatto –1986, 1989, 1992 e 1999: 1986, 1989, 1992 e 1999: standardstandard

    Università degli Studi di Udine 3

    Funzionalità Funzionalità

    • Insieme di linguaggi con varie Insieme di linguaggi con varie funzionalità: funzionalità: –DDLDDL –DMLDML •aggiornamentoaggiornamento • interrogazioneinterrogazione

    Università degli Studi di Udine 4

    Per trattare dati spaziali… Per trattare dati spaziali…

    • Estensione SQL con nuovi Estensione SQL con nuovi costrutti per trattare i tipi di costrutti per trattare i tipi di dato spaziale introdottidato spaziale introdotti –DDL: definizioneDDL: definizione –DML: aggiornamento e DML: aggiornamento e interrogazioneinterrogazione

    Università degli Studi di Udine 5

    Componente DDL Componente DDL

    • Permette di creare schemi di basi Permette di creare schemi di basi di dati: domini, tabelle, indici, di dati: domini, tabelle, indici, asserzioni, viste, privilegiasserzioni, viste, privilegi

    • Meccanismi standard SQLMeccanismi standard SQL

    Università degli Studi di Udine 6

    Domini e Domini e definizione di tabelle definizione di tabelle

    • Gli attributi di una tabella possono Gli attributi di una tabella possono essere associati, oltre ai tipi di essere associati, oltre ai tipi di dato tradizionali, ad uno dei tipi di dato tradizionali, ad uno dei tipi di dato spazialedato spaziale – PointPoint – LineLine – PolygonPolygon

  • Università degli Studi di Udine 7

    Definizione di tabellaDefinizione di tabella

    CREATE TABLE NAZIONE( Nome VARCHAR(20) PRIMARY KEY,

    NumAbitanti INTEGER NOT NULL, Geometria POLYGON NOT NULL

    )

    CREATE TABLE FIUME( Nome VARCHAR(20) PRIMARY KEY,

    Geometria LINE NOT NULL )

    Università degli Studi di Udine 8

    Definizione degli indiciDefinizione degli indici

    • Oltre ai tradizionali indici, Oltre ai tradizionali indici, rivestono un ruolo rivestono un ruolo fondamentale gli indici spazialifondamentale gli indici spaziali

    Università degli Studi di Udine 9

    DML: Componente di DML: Componente di interrogazione interrogazione

    • Permette di accedere Permette di accedere all’informazione presente in una all’informazione presente in una base dei dati (ma non consente di base dei dati (ma non consente di modificarla)modificarla)

    Università degli Studi di Udine 10

    Tipi di interrogazioneTipi di interrogazione

    • L’estensione spaziale SQL permette di L’estensione spaziale SQL permette di rispondere, oltre a interrogazioni con rispondere, oltre a interrogazioni con criteri alfanumerici, a interrogazioni criteri alfanumerici, a interrogazioni basate su criteri spazialibasate su criteri spaziali – Selezioni basate su relazioni spaziali rispetto Selezioni basate su relazioni spaziali rispetto a valori geometrici costanti o query a valori geometrici costanti o query interattiveinterattive

    – Interrogazioni con criteri spaziali o join Interrogazioni con criteri spaziali o join spazialispaziali

    Università degli Studi di Udine 11

    Costrutti fondamentaliCostrutti fondamentali

    • SELECT:SELECT: specifica la lista degli specifica la lista degli attributi che si vuole siano restituiti attributi che si vuole siano restituiti (anche funzioni aggregate)(anche funzioni aggregate)

    • FROM: FROM: specifica le tabelle alle quali specifica le tabelle alle quali bisogna accedere per rispondere bisogna accedere per rispondere all’interrogazioneall’interrogazione

    • WHERE: WHERE: specifica le condizioni che specifica le condizioni che devono essere soddisfatte dalle righe devono essere soddisfatte dalle righe coinvolte nell’interrogazione per poter coinvolte nell’interrogazione per poter partecipare alla soluzione finalepartecipare alla soluzione finale

    Università degli Studi di Udine 12

    Interrogazioni spazialiInterrogazioni spaziali

    • Utilizzano funzioni e relazioni su Utilizzano funzioni e relazioni su tipi di dato spazialetipi di dato spaziale – Predicati utilizzati nella clausola Predicati utilizzati nella clausola WHERE (relazioni spaziali)WHERE (relazioni spaziali)

    – Funzioni applicate alle tuple del Funzioni applicate alle tuple del risultato (clausola SELECT)risultato (clausola SELECT)

  • Università degli Studi di Udine 13

    Interrogazioni con criteri Interrogazioni con criteri spaziali – 1spaziali – 1

    Esempio.Esempio. Selezionare le nazioni Selezionare le nazioni confinanti con la (adiacenti alla) Franciaconfinanti con la (adiacenti alla) Francia

    SELECT N1.Nome FROM NAZIONE N1, NAZIONE N2 WHERE N2.Nome=“Francia” and Touch(N1.Geometria,N2.Geometria)

    Università degli Studi di Udine 14

    Interrogazioni con criteri Interrogazioni con criteri spaziali – 2spaziali – 2

    Esempio.Esempio. Determinare i fiumi che Determinare i fiumi che attraversano la Germaniaattraversano la Germania

    SELECT F.Nome FROM FIUME F, NAZIONE N WHERE N.Nome=“Germania” and Cross(F.Geometria,N.Geometria)

    Università degli Studi di Udine 15

    Interrogazioni con criteri Interrogazioni con criteri spaziali – 3spaziali – 3

    Esempio.Esempio. Determinare l’area delle Determinare l’area delle nazioni attraversate dal fiume Donnazioni attraversate dal fiume Don

    SELECT N.Nome, Area(N.Geometria) FROM Nazione N, Fiume F WHERE F.Nome=“Don” and

    Cross(F.Geometria,N.Geometria)

    Università degli Studi di Udine 16

    Interrogazioni con criteri Interrogazioni con criteri spaziali – 4spaziali – 4

    Esempio.Esempio. Determinare la lunghezza Determinare la lunghezza totale dei fiumi che attraversano l’Italiatotale dei fiumi che attraversano l’Italia

    SELECT Sum(Length(F.Geometria)) FROM FIUME F, NAZIONE N WHERE N.Nome=“Italia” and Cross(F.Geometria,N.Geometria)

    Università degli Studi di Udine 17

    Interrogazioni con criteri Interrogazioni con criteri spaziali – 5spaziali – 5

    Esempio.Esempio. Determinare le nazioni Determinare le nazioni contenute nel rettangolo @rectanglecontenute nel rettangolo @rectangle

    SELECT Nome FROM NAZIONE WHERE In(Geometria,@rectangle)

    Università degli Studi di Udine 18

    DML: Componente di DML: Componente di aggiornamentoaggiornamento

    • Permette di operare sulle tabelle: Permette di operare sulle tabelle: inserire, modificare e cancellare i dati di inserire, modificare e cancellare i dati di una base dei datiuna base dei dati

    • Operazioni diOperazioni di – inserimento: insertinserimento: insert – eliminazione: deleteeliminazione: delete – modifica: updatemodifica: update

    di una o più tuple di una relazione sulla di una o più tuple di una relazione sulla base di una condizione che può base di una condizione che può coinvolgere anche altre relazionicoinvolgere anche altre relazioni

  • Università degli Studi di Udine 19

    PostgreSQLPostgreSQL

    • 1996 è diventato un progetto open 1996 è diventato un progetto open sourcesource

    • Supporta un modello Supporta un modello object-object- relational relational che gestisce i tipi di dato che gestisce i tipi di dato spazialespaziale

    Università degli Studi di Udine 20

    Estensione spazialeEstensione spaziale

    • Uno dei primi sistemi a prevedere Uno dei primi sistemi a prevedere un’estenzione spazialeun’estenzione spaziale – un insieme di tipi geometriciun insieme di tipi geometrici – un insieme di operatori e funzioni sui un insieme di operatori e funzioni sui tipi geometricitipi geometrici

    – un’estensione SQL integrata con un’estensione SQL integrata con operatori spazialioperatori spaziali

    Università degli Studi di Udine 21

    Tipi di dato spazialeTipi di dato spaziale Tipo geometrico Rappresentazione Descrizione

    point (x,y) Punto

    line ((x1,y1),(x2,y2)) Retta infinita

    lseg ((x1,y1),(x2,y2)) Segmento

    box ((x1,y1),(x2,y2)) Rettangolo

    path ((x1,y1),…,(xn,yn)) Linea chiusa

    path [(x1,y1),…,(xn,yn)] Linea (aperta)

    polygon ((x1,y1),…,(xn,yn)) Poligono

    circle Cerchio

    Università degli Studi di Udine 22

    Rappresentazione dei dati in PostgreSQL - 1

    Alcune rappresentazioni sono ambigue (non identificano il corrispondente tipo di dato spaziale). Per tale ragione, il tipo di dato viene indicato in modo esplicito:

    ''::tipo

    Esempio. Un rettangolo è rappresentato da: '((0,0),(1,1))':: box

    mentre un segmento è rappresentato da: '((0,0),(1,1))':: lseg

    Università degli Studi di Udine 23

    Rappresentazione dei dati in PostgreSQL - 2

    La sintassi usata per definire un poligono è molto simile (differisce solo nel nome del tipo di dato spaziale) a quella impiegata per definire una poli-linea chiusa

    Poligoni e poli-linee chiuse differiscono in:

    • funzioni che possono essere applicate