Post on 09-Oct-2018
SER300–IntroduçãoaoGeoprocessamento
BancosdeDadosGeográficos&
ArquiteturadeSIGs
Dr.GilbertoRibeirodeQueiroz
SãoJosédosCampos,30deMarçode2016
SGBD:umatecnologiaamplamentedifundida
• AtecnologiadebancosdedadostemsidoumcomponentefundamentalemquasetodososNposdeaplicações:– Contabancária:depósitosesaques– Reservasdepassagensaéreas– Reservasemhotéis– Comprasdelivros,CDs,DVDseoutrosbens(Amazon)– BuscaporarNgosemumarevistaeletrônica(TransacNonsofGISou
ACMdigitallibrary)– Sitesdemapeamento:OpenStreetMap,GoogleMapseBingMaps
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
Programasdependentesarquivos
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
ProgramaçãoGeneralizada
Programasdependentesarquivos
coleçãodedadosrelacionadosdeumdeterminadodomínio.
SistemasdeBancosdeDados
BancodeDados
SGBD(SistemaGerenciadorde
BancosdeDados)
Armazenamento Recuperação
RepositórioFísicodeDados
AplicaçõesAplicaNvos,ServidordeAplicação,SIG,TerminaisIteraNvos,FerramentasAdministração,...
Comandos:Consultas,Atualizações,
ExecuçãoProcedimentos,DefiniçãoDados,...
Usuários
Recuperação
SistemasdeBancosdeDados
BancodeDados
SGBD(SistemaGerenciadorde
BancosdeDados)
Armazenamento
RepositórioFísicodeDados
AplicaçõesAplicaNvos,ServidordeAplicação,SIG,TerminaisIteraNvos,FerramentasAdministração,...
Comandos:Consultas,Atualizações,
ExecuçãoProcedimentos,DefiniçãoDados,...
Coleçãodeprogramaspara:• processamentodeconsultas• acessoaodadoarmazenado• criaçãoemanutençãodobancodedados• independênciaentreaplicaçõesedado• abstraçãodedados→modelodedados• comparNlhamentodedadosentreusuárioseaplicações• mecanismosdeproteçãodosdados• …
Usuários
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
ModeloBancoDadosHierárquico(IBMIMS)
Fonte:W
ikiped
ia
ProgramaçãoGeneralizada
Programasdependentesarquivos
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
ModeloBancoDadosHierárquico(IBMIMS)
ProgramaçãoGeneralizada
Programasdependentesarquivos
ModeloRelacional
EdgarFrankCoddFonte:Wikipedia
E.F.Codd.1970.Arela'onalmodelofdataforlargeshareddatabanks.CommunicaNonsoftheACM,v.13,n.6,June1970,pp.377-387.
BancosDadosRelacionais(SGBD-R)
ACMTuringAward(1981)
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
SystemReINGRES
ProgramaçãoGeneralizada
Programasdependentesarquivos
Codd:ModeloRelacional
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
SystemReINGRES
ProgramaçãoGeneralizada
Programasdependentesarquivos
Codd:ModeloRelacional
Quaissãoosprincipaisconceitosembancosdedadosrelacionais?
Relação(ouTabela)
• Umbancodedadosrelacionaléorganizadoemumacoleçãoderelações(outabelas)possivelmenterelacionadasentresi.
paisesid nome populacao fronteira
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ... ...
Tabela
Colunas
Linha
EsquemaTabela
Instância
ModeloRelacional
• Todatabela(ourelação)possuiumnome:– Emgeral,essenomeéúnicodentrodeummesmobancodedados.*
• Ascolunasdeumatabelasãotambémchamadasde:– campos,domíniosouatributos.
• CadacolunapossuiumnomeedeveterumNpodedadoassociado:– Numérico,CadeiadeCaracteres,DataeHora,Geométrico.
• Aslinhastambémsãoconhecidaspor:– tuplasouregistros.
*ConformeveremosmaisadianteosSGBD-Rpodemrelaxarestaafirmaçãocomousodeesquemas(ounamespaces)
Relacionamentosentretabelas
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
cidades
cid nome populacao pais_id
191 CorrenNna ... 2
181 OuroPreto ... 2
987 Munster ... 1
192 Belmonte ... 2
... ... ... ...
paises_x_cidades
pid p_nome p_populacao cid c_nome c_populacao
2 Brasil 190000000 191 CorrenNna ...
2 Brasil 190000000 181 OuroPreto ...
1 Alemanha 82000000 987 Munster ...
2 Brasil 190000000 192 Belmonte ...
... ... ... ...
ChavePrimária(PrimaryKey)
• CampoouconjuntodecamposcujosvaloresidenNficamunicamentecadalinhadeumatabela.
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
cidades
cid nome populacao pais_id
191 CorrenNna ... 2
181 OuroPreto ... 2
987 Munster ... 1
192 Belmonte ... 2
... ... ... ...
ChavePrimária
ChavePrimáriaComposta
cliente_telefone
ncid fone Rpo
1 555-7654 residencial
1 345-9876 comercial
2 888-7777 residencialChavePrimária
ChaveEstrangeira(ForeignKey)
• Colunaoucombinaçãodecolunas,cujosvaloresaparecemnecessariamentenachaveprimáriadeumaoutratabela*.
*umachaveestrangeiranãoprecisateromesmonomedoqueachaveprimáriacorrespondentenaoutratabela(apenasomesmodomínio)
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
cidades
cid nome populacao pais_id
191 CorrenNna ... 2
181 OuroPreto ... 2
987 Munster ... 1
192 Belmonte ... 2
... ... ... ...
ChavePrimária
ChaveEstrangeira
RestriçõesdeIntegridade(Constraints)• Permitemestabelecercritériosparamanutençãodaconsistênciados
dadosnobancodedados:– Restriçõesdedomínio:
• Especificaospossíveisvaloresdeumacoluna(Npodedadodeumacoluna).– Chaveprimária.– Chaveestrangeira(ourestriçãodeintegridadereferencial):
• UmachaveestrangeiraespecificaumarestriçãodeintegridadereferencialentreduasrelaçõesR1eR2sobreumconjuntodecolunas.
– Valorúnico:• Garantequeovaloremumcampoouconjuntodecampossejamúnicosdentroda
tabela(semelhanteaoconceitodechaveprimária).– Restriçõesdenulidade:
• especificaseovalordeumacolunapodeounãosernulo.– Restriçõesdevalores:
• PossibilitamavaliarseovalordeumaoumaiscolunassaNsfazumadeterminadaexpressão(fórmula).
• VeremosaolongodocursodeformapráNcaoquesignificacadaumadessasrestriçõesesuasimplicações.
ÁlgebraRelacional• Linguagemformaldeconsulta.
• Conjuntodeoperaçõesqueusamumaoumaisrelaçõescomoentradaegeramumanovarelaçãodesaída:– operação(R1)→Rn– operação(R1,R2)→Rn
• Operaçõesbásicas:– Operaçõesunárias:seleção,projeção.– Operaçõesbinárias:produtocartesiano,junção,interseção,uniãoe
diferença.
• Osoperadorespodemsercombinadosdeformaarealizaroperaçõesmaiscomplexas.
ÁlgebraRelacional:Operadores
Fonte:C.J.Date(1993)
ÁlgebraRelacional:Seleção
• Esteoperadorselecionatuplas(linhas)deumarelaçãoquesaNsfazemumcertopredicadooucondição.
• Exemplo:paraarelação“paises”,selecionarastuplascujapopulaçãosejamaiorque100.000.000.
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
)(810 paisespopulacao≥σ nova_relacao
id nome populacao
2 Brasil 190.000.000
... ... ...
TabeladeSaídaTabeladeEntrada
ÁlgebraRelacional:Projeção
• Esteoperadorgeraumanovarelaçãocontendoapenasascolunasdesejadasdeumarelaçãodeentrada.
• Exemplo:projetaroatributonomesobrearelação“paises”.
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
)(paisesnomeπ
TabeladeEntrada TabeladeSaída
nova_relacao
nome
Alemanha
Brasil
...
ÁlgebraRelacional:ProdutoCartesiano
• Esteoperadorgeraumanovarelaçãoformadapelacombinaçãodetodasastuplasdeduasrelaçõesdeentrada.
)()( cidadespaises ×
nova_relacao
id nome populacao cid nome populacao pais_id
1 Alemanha 82000000 191 CorrenNna ... 2
1 Alemanha 82000000 181 OuroPreto ... 2
1 Alemanha 82000000 987 Munster ... 1
1 Alemanha 82000000 192 Belmonte ... 2
2 Brasil 190.000.000 191 CorrenNna ... 2
2 Brasil 190.000.000 181 OuroPreto ... 2
2 Brasil 190.000.000 987 Munster ... 1
2 Brasil 190.000.000 192 Belmonte ... 2
... ... ... ... ... ... ...
ÁlgebraRelacional:Junção(Join)
• Produtocartesianoseguidodeumaseleção.
)()()( _.. cidadespaisescidadespaises idpaiscidadesidpaises ×⇔ =σθ
nova_relacao
id nome populacao cid nome populacao pais_id
1 Alemanha 82000000 987 Munster ... 1
2 Brasil 190.000.000 191 CorrenNna ... 2
2 Brasil 190.000.000 181 OuroPreto ... 2
2 Brasil 190.000.000 192 Belmonte ... 2
... ... ... ... ... ... ...
LinguagemdeConsulta:SQL
• Omodelorelacional(Codd,1970)éabaseparalinguagensdealtonível:– Álgebra/CálculoRelacional→LinguagemDeclaraNva→ISO/SQL
(StructuredQueryLanguage)
CREATETABLEpaises(idINT4PRIMARYKEY,nomeVARCHAR(50),populacaoINT4);
paises
id nome populacao
DefiniçãoDados
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
ManipulaçãoDados
INSERTINTOpaisesVALUES(1,‘Alemanha’,82000000)
INSERTINTOpaisesVALUES(2,‘Brasil’,190000000)
ManipulaçãoDados
LinguagemdeConsulta:SQL
• Omodelorelacional(Codd,1970)éabaseparalinguagensdealtonível:– Álgebra/CálculoRelacional→LinguagemDeclaraNva→ISO/SQL
(StructuredQueryLanguage)
SELECTnomeFROMpaisesWHEREpopulacao>80000000
paises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
Consulta(Não-Procedural)
Nota:storedproceduresouprocedurallanguages:PL/SQL,T-SQL,PL/pgSQL
MétodosdeAcesso(Indexação)
• Problema:Comoprocessardeformaeficienteasconsultas?– AtravésdousodeestruturasdedadosconhecidascomoÍndicesou
MétodosdeAcesso;
• Osíndicesreduzemoconjuntodeobjetosaseremverificadosduranteoprocessamentodasconsultas:– Normalmente,umaconsultaenvolveapenasuma
pequenaparceladobancodedados;– Nestecaso,percorrertodoobancopode
serbastanteineficiente;– Portanto,umplanodeexecuçãoeficienteparaa
consultaNpicamenteconsideraaexistênciadeíndices.
IndependênciaFísicadosDados
paises
id nome populacao
1 Alemanha ...
2 Brasil ...
... ... ...
paises
TabelaNomeColunas
municipios lotes paises quadras locais
Fonte:AdaptadodeGray(1996)
OrganizaçãodoSistemaArquivo
TiposDadosColunas,
Linha(registro)
EsquemaTabela
EsquemaBD ÍndicesLogs
NívelInterno/Esquema
NívelLógico/Esquema
Restrições
Row-storeColumn-StoreB+-tree,Hash
Comoaindependência�sicaéalcançada?
• EsquemadoBancodeDados:– UmacaracterísNcafundamentaldeumSGBD-Réqueelenãocontém
apenasosdadosbrutossobreodomíniodeinteresse;– TodoSGBD-Rmantémadefiniçãooudescriçãodaestruturadobanco
dedados(self-describing);– EssasinformaçõessãomanNdasnocatálogodosistema(oudicionário
dosistema)esãodenominadasdemetadadosdobancodedados.– NapráNcaosSGBD-Rarmazenamessasinformaçõesdedefiniçãoem
tabelasdoprópriosistema(tabelasdemetadadooutabelasdocatálogo).
• Omodelodedadosrelacionalforneceparaasaplicaçõesumaabstraçãoindependentedarepresentação�sicadosdados.
Visões(Views)
• MuitasvezespodesernecessáriofornecerdiferentesperspecNvasdobancodedadosdependendodousuário.Umavisão(ouview)podeser:– umsubconjuntodosdadosdobancodedados– podeconterdadosderivadosdobancodedados
paises cidades
capitais renda_us
Tabelas(DadoBruto)
Visões(DadoVirtual)
ArquiteturasdeSGBD-R
• Cliente/Servidor
• EmbuNdo(ouembarcado)
• Emmemória(In-memory)
• Paralelos/Distribuídos
• ArmazenamentoLinhaxColuna
ArquiteturasdeSGBD-R:ClienteServidor
Fonte:Wikipedia
ArquiteturasdeSGBD-R:Embedded#include<sqlite3.h>intmain(intargc,char**argv){intrc=sqlite3_open("/opt/data/mydb.sqlite",&db);if(rc){fprintf(stderr,"Can'topendatabase:%s\n",sqlite3_errmsg(db));sqlite3_close(db);returnEXIT_FAILURE;}rc=sqlite3_exec(db,"Select*fromtabela",callback,0,&zErrMsg);if(rc!=SQLITE_OK){char*zErrMsg=0;fprintf(stderr,"SQLerror:%s\n",zErrMsg);sqlite3_free(zErrMsg);}sqlite3_close(db);returnEXIT_SUCCESS;}
ArquiteturasdeSGBD-R:rowxcolumnstorepaises
id nome populacao
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ...
RowStore ColumnStore
1 Alemanha 82M 2 Brasil 190M
3 ArgenRna … … … …
LayoutemDisco LayoutemDisco
1
2
...
Alemanha
Brasil
...
82.000.000
190.000.000
...
Ex:C-Store,MonetDB,VerNcaEx:PostgreSQL,MySQL
OutrosConceitosImportantes
• Projetodebancosdedados:– ModeloEnNdade-Relacionamento(ER).
• Normalização:– Evitaranomaliascomoprojetodobancodedados.
• Transações(ACID).
• GaNlhos(Trigger).
• ProcedimentosArmazenados(StoredProcedure).
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
Aplicaçõesemergentesenovasdemandas:
CAD,SIG,MulNmedia,OLAP,Real-Nme,
Cien�ficas
ProgramaçãoGeneralizada
Programasdependentesarquivos
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
PeríododemuitapesquisasobreextensibilidadedosSGBDs
ProtóRposdepesquisanofinaldosanos80voltadosaSIG:Probe,DASDBSGEO-Kernel,Gral,SIRO-DBMS,Starburst,Geo++,GéoSabrina,GODOT,GeoO2,Paradise
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
BancosDadosOrientadoObjeto
ObjetoRelacional
DifusãodosSGBD-OR
ProgramaçãoGeneralizada
Programasdependentesarquivos
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
SGBD-OR:UserDefinedTypes(UDT)
CREATETYPEgeo_pointAS(xREAL,yREAL,sridINTEGER);
SGBD-OR:UserDefinedTypes(UDT)
CREATETABLEsedes_municipais(idINTEGERPRIMARYKEY,locationGEO_POINT);
INSERTINTOsedes_municipaisVALUES(1,'(1,2,4326)'::GEO_POINT);
SGBD-OR:UserDefinedFuncNons(UDF)
• PossibilitacriarouestenderaálgebradeumdeterminadoNpodedado.
CREATEORREPLACEFUNCTIONless_than(firstGEO_POINT,secondGEO_POINT)RETURNSREALAS$$BEGINIF(first.x<second.x)THENRETURNTRUE;ENDIF;IF(first.x>second.x)THENRETURNFALSE;ENDIF;...RETURNFALSE;END;$$LANGUAGEplpgsql;
SGBD-OR:UserDefinedFuncNons(UDF)
• PossibilitacriarouestenderaálgebradeumdeterminadoNpodedado.
CREATEORREPLACEFUNCTIONdistance(firstGEO_POINT,secondGEO_POINT)RETURNSREALAS$$DECLAREdxREAL;dyREAL;BEGINdx=(first.x-second.x)*(first.x-second.x);dy=(first.y-second.y)*(first.y-second.y);RETURNsqrt(dx+dy);END;$$LANGUAGEplpgsql;
SGBD-OR:UserDefinedFuncNons(UDF)
• UDFspassamafazerpartedalinguagemdeconsultadoSGBD:
SELECTless_than('(1,2,4326)'::GEO_POINT,'(10,20,4326)'::GEO_POINT);SELECTless_than('(1,2,4326)'::GEO_POINT,'(-1,2,4326)'::GEO_POINT);SELECTdistance('(1,2,4326)'::GEO_POINT,'(10,20,4326)'::GEO_POINT);
SGBD-OR:SobrecargadeOperadores
CREATEOPERATOR<(leftarg=GEO_POINT,rightarg=GEO_POINT,procedure=less_than,commutator=>,negator=>=);
SELECT'(1,2,4326)'::GEO_POINT<'(10,2,4326)'::GEO_POINT;
SGBD-OR:UserDefinedAccessMethods
B-tree
Hash
GiST–Rtree2D
SGBD-OR:UDTsmaisComplexos
CREATEORREPLACEFUNCTION_ST_Touches(geom1geometry,geom2geometry)RETURNSbooleanAS'$libdir/postgis-2.1','touches'LANGUAGE'c'IMMUTABLESTRICTCOST100;...
CREATETYPEGeometry(internallength=variable,input=geometry_in,output=geometry_out,send=geometry_send,receive=geometry_recv,typmod_in=geometry_typmod_in,typmod_out=geometry_typmod_out,delimiter=':',alignment=double,analyze=geometry_analyze,storage=main);
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
Geoespacial
PostgreSQL→PostGISMySQL→SpaRalandGeodeRcGeographyTypesSQLite→SpaRaLiteandRasterLiteOracle→OracleSpaRal,GeoRaster,TopologyandNetworkModelsIBMDB2→SpaRalExtenderSQLServer(2008)→SpaRalTypes
ProgramaçãoGeneralizada
Programasdependentesarquivos
BancosDadosOrientadoObjeto
ObjetoRelacional
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
SIGeSGBD-R
• ComoeraaintegraçãoSIGeSGBD-Rantesdainclusãodosuporteespacial?
SIG
SGBD-RSuporteEspacial
Geometrias AlphaNumérica
SIG
SuporteEspacial
GeomAlpha-Num.
ArquiteturaDual ArquiteturaCamadas
Obs.:ComponenteespacialarmazenadaemcamposdoNpoBLOBouEsquemaTabelas
Obs.:Dadosarmazenadosdeformaisoladaeformatosproprietários
SGBD-R
SIGeSGBD-R:Comopassouaserestaintegração?
• ArquiteturaIntegrada:TiposdeDadosGeoespaciais• Padronização:OGCSimpleFeatureseISO/SQL-MMSpaNal
paisesid nome populacao fronteira
1 Alemanha 82.000.000
2 Brasil 190.000.000
... ... ... ...
Touches Overlaps
Disjoint
Contains Within
Equals
Tabelascomfeições:geometriasvetoriais Operaçõesespaciais
PorqueusarumSGBDcomsuporteespacial?
• DifusãomassivadedisposiNvosspa0ally-aware:– Cidadãoscomosensores(Goodchild,2007)– VolunteeredGeographicInformaNon(VGI)– Geo-crowdsourcing
• Aplicaçõescomlocalizaçãogeográficasetornarammaiscomuns:– 99Taxi,EasyTaxi– GoogleMaps,OpenStreetMap,Wikimapia– GoogleEarth(maisde1bilhãodedownloads)
• Jáestamostendo:– Maiordisponibilidadedeimagensdesatélite(MODIS,LandSat,SenNnel)– ImagensVANTs/Drones
UmSistemadeBancosdeDadosEspacialé…
SistemaBancosDados
TiposdeDadosEspaciais
IndexaçãoEspacial
+
+
asinformaçõesgeométricaspodemestarconectadasadadosnão-espacias:“oproprietáriodeumdadolote”
OModelodedadosealinguagemdeconsultadevemsuportarNposespaciaistaiscomopontos,linhas,oupolígonosandsuas
operações(interseção,área,...)
deve-seevitarvarrertodooconjuntodeobjetosquandoseexecutaumaconsultaou
quandoserealizaumajunçãoespacial
OperaçõesEspaciais
OperaçõesGeométricasOperaçõesMétricas
RelacionamentosEspaciais
Overlay/SetoperaRons
OperadoresGeométricos
Convex
Hull
Bufferdistance
TopologicalTransforms:rotaNon,translaNon,scalechange,symmetry.
DimensionalTransforms:boundary.
ExtracRon:MBR,centroid.
ObjectProperRes:is_convex,is_connected,is_simple.
IntersecNon Union
Difference SymetricDifference
OperadoresMétricos
• Length• Perimeter• Area• Distance
RelacionamentosEspaciais(SpaNalRelaNonships)
• TopologicalrelaNonships:
• DirecNonrelaNonships:– Above,below,north_of,…
• MetricrelaNonships:– Distancebetweentwoobjectsarelessthanagivennumberofunits.
Touches Overlaps DisjointContains Within Equals
RelacionamentosEspaciais(SpaNalRelaNonships)
SpaRalRelaRonshipsinExperimentalQueryLanguages
QueryLanguage SpaRalRelaRonships
Freeman(1975) le�of,rightof,beside,above,below,near,far,touching,between,inside,outside
ATLAS(Tsurutanietal.,1980) areaadjacency,lineadjacency,boundaryrelaNon-ship,containment,distance,direcNon
MAPQUERY(Frank,1982) on,adjacent,within
KBGIS(SmithandPazner,1984) containment,subset,neighborhood,near,far,north,south,east,west
KGIS(IngramandPhillips,1987) distance,overlay,adjacent,overlap
PSQL(Roussopoulosetal.,1988) covering,coveredBy,overlapping,disjoint,near-est,furthest,within,outside,onperimeter
SQLextension(Herringetal.,1988) adjacent,contains,containspoint,enclosedby,intersect,near,selfintersect
Geo-RelaNonalAlgebra(GüNng,1988)
equal,notequal,inside,outside,intersect
SpaNalSQL(Egenhofer,1989) disjoint,equal,meet,overlap,concur,commonBounds
Fonte:EgenhoferandHerring(1990)
AFrameworkfortheDescripNonofTopologicalSpaNalRelaNons
4-intersecNonMatrix(EgenhoferandFranzosa,1991)
Ao
δA
Ao∩Bo
δA∩Bo
Ao∩δB
δA∩δB
Bo δB
RefinamentosdaMatrizdeInterseção
Ao
δAA-
BoδBB-
dim(Ao∩Bo)
dim(δA∩Bo)
dim(A-∩Bo)
dim(Ao∩δB)
dim(δA∩δB)
dim(A-∩δB)
dim(Ao∩B-)
dim(δA∩B-)
dim(A-∩B-)
Ao
δAA-
Ao∩Bo
δA∩Bo
A-∩Bo
Ao∩δB
δA∩δB
A-∩δB
Ao∩B-
δA∩B-
A-∩B-
Bo δB B-
9-intersecNonMatrix(Egenhofer,1991)
DimensionExtended9-intersecNonMatrix(ClemenNnietal.,1993)
OutrasOperaçõesEspaciais
• CosultasdeProximidade(Closest):– Consultasdeproximidade.
OGCSimpleFeature
OpenGeospaNalConsorNum(OGC)
• OOGCéumconsórcioformadoporempresas,universidadeseagênciasgovernamentaisdediversospaíses.
• UmdeseusobjeNvosépromoverodesenvolvimentodepadrõesquefacilitemainteroperabilidadeentresistemasdeinformaçãogeoespaciais.
• PartedotrabalhodoOGCéapresentadosobaformadeespecificaçõesabertasdeinterfacesepadrõesdeintercâmbio.
• Site:h�p://www.opengeospaNal.org/
OqueéaespecificaçãoSimpleFeature(SFS)?
• EspecificaçãocriadapeloconsórcioOGCquetratadasquestõesderepresentaçãodacomponenteespacialvetorialdedadosgeográficos:– Basicamente,osaspectosrelaNvosàrepresentaçãodepontos,linhasepolígonos.
• ASFSédivididaemduaspartes:– OpenGISImplementaNonSpecificaNonforGeographicinformaNon-Simplefeatureaccess-Part1:Commonarchitecture.
– OpenGISImplementaNonSpecificaNonforGeographicinformaNon-Simplefeatureaccess-Part2:SQLopNon.
OGCSFS:ModeloGeométrico
Fonte:OGC(2012a)
IlustraçãodasGeometrias
Point LineString Polygon
MulNPointMulNLineString MulNPolygon
GeometryCollecNon
OGCSFS:OperaçõesEspaciaisTouches Overlaps
Disjoint
Contains Within
Equals
IntersecRon Union DifferenceSymetricDifference Buffer
ConvexHull
Ao
δAA-
BoδBB-
dim(Ao∩Bo)
dim(δA∩Bo)
dim(A-∩Bo)
dim(Ao∩δB)
dim(δA∩δB)
dim(A-∩δB)
dim(Ao∩B-)
dim(δA∩B-)
dim(A-∩B-)
Relacionamentosespaciais:DimensionallyExtendedNine-IntersecNonModel
OperaçõesTopológicas
• Cadaelementodamatrizdeinterseçãopodeserrepresentadoporumdoselementosdoconjunto{T,F,*,0,1,2},assimdefinidos:
• T→dim(x)={0,1,2},i.e.x≠Ø• F→dim(x)=-1,i.e.x=Ø• *→dim(x)={-1,0,1,2},i.e.nãoimporta• 0→dim(x)=0• 1→dim(x)=1• 2→dim(x)=2
OperadoresTopológicos
• ST_Contains(geom1,geom2)→0ou1• ST_Within(geom1,geom2)→0ou1• ST_Covers(geom1,geom2)→0ou1• ST_CoveredBy(geom1,geom2)→0ou1• ST_Touches(geom1,geom2)→0ou1• ST_Crosses(geom1,geom2)→0ou1• ST_Overlaps(geom1,geom2)→0ou1• ST_Equals(geom1,geom2)→0ou1• ST_Intersects(geom1,geom2)→0ou1• ST_Disjoint(geom1,geom2)→0ou1• ST_Relate(geom1,geom2)→'T*F**F***‘• ST_Relate(geom1,geom2,'T*F**F***’)→0ou1
PostGIS
h�p://postgis.net
PostGIS
• Projetodeso�warelivre(GPLv2)desenvolvidoinicialmentepelaempresaCanadenseRefracNonsResearch:h�p://postgis.refracNons.net
• ExtensãogeográficaparaoSGBD-ORPostgreSQL:– Inicialmente:
• NposgeométricoseoperadoresespaciaisOGCSFS.• Índiceespacial:árvore-RsobreGiST.
PostGIS
GEOS Proj4
PostgreSQL
QueryPlanner
StorageManager
QueryParser
PostGIS
• GrandeevoluçãonosúlNmos3anos:– Tiposcircularesecompostos,3D– Tipogeográfico– Raster– Topologia– Redes– Geocodificaçãodeendereços
PostGIS
GEOS Proj4 GDAL
PostgreSQL
QueryPlanner
StorageManager
QueryParser
Recuperandoobjetosaumacertadistância
• Fazerumaconsultaconsiderando:– Ponto:-45.970095-17.5110525– Raio:1.0– Operador:ST_DWithin(geom1,geom2,dist)
SELECTnommuni,ST_AsText(geom)ASgeomFROMmg_municipiosWHEREST_DWithin(geom,ST_GeomFromText('POINT(-45.970095-17.5110525)',4618),1.0);
ComoArmazenareGerenciarDadosMatriciais?
Solução1:UsandoumSGBD-Rcomsuportematricial
PostGISRaster
OracleGeoRaster
Solução1:UsandoumSGBD-Rcomsuportematricial
PostGISRaster
OracleGeoRaster
PostGISRaster
Raster(Matricial-CélulasMulNbandas)
Visãodoespaçonaformadeumagraderetangular,comcélulascontendoumaoumaisvaloresnuméricos
PostGISRaster
• OprojetodoPostGISRasterpossibilitatrabalharcomvárioscasosdeusocomimagens:– Armazémdeimagens(possivelmentenãorelacionados)– Tiles:
• Regularesouirregulares(podetermissingNles)
– indbxoutdbstorage
• Novasvisõescommetadadosdasimagens:– raster_columns– raster_overviews
PostGISRaster→SQL• TablecreaNon:
CREATETABLEraster_table(ridSERIALPRIMARYKEY,rastRASTER);
• SpaNalindexcreaton:CREATEINDEXspidx_table_colONraster_tableUSINGgist(ST_ConvexHull(raster-col));
Organizandoumaimagememblocos(Tiles)
• UmaestratégiamuitocomumdosSIGéparNcionarumaimagememblocosduranteoarmazenamento.
• OPostGISrastersuportaestaestratégiadearmazenamento.
FormatosRasterSuportadospelaGDAL
ACE2 ConvairPolGASP EnvisatImageFormat
ARCDigiNzedRasterGraphics
DIPEx Erdas.LAN/.GIS
ASCIIGriddedXYZ DRDCCOASPSARProcessorRaster
ErdasImagineImages(.img)
AirSARPolarimetricImage DTEDElevaNonRaster ErdasImagineRaw
Arc/InfoASCIIGrid ECRGTOCformat FARSITEv.4LandscapeFile(.lcp)
Arc/InfoBinaryGrid ELAS FITImage
Arc/InfoExportE00GRID ENVI.hdrLabelled FujiBASScannerImage
AzaveaRasterGridformat EOSATFASTFormat GRASSASCIIGrid
CEOSImage ERMapper.ersLabelled GRIddedBinary(.grb)
CEOSSARImage ESRI.hdrLabelled GSCGeogrid
COSARAnnotatedBinaryMatrix(TerraSAR-X)
EUMETSATArchivenaNve(.nat)
GenericBinary(.hdrLabelled)
CTable2DatumGridShi� EarthWatch.TIL ...
VisualizandotabelasrastercomoQuantumGIS
Overviews(Pirâmides/MulN-resolução)
• Parâmetroraster2pgsql:-l2,4
ProcessamentodeImagensnoSGBD
Discussão:Atualmente,nãoháumpadrãobemdefinidoparaasextensõesmatriciais.
Discussão:ExistealgumproblemacomoprojetodosuporteRasterdosatuaisSGBD-R?
ComolidarcomosrequisitosdeaplicaçõesdeEOquepodemnecessitarcomoentradadados
massivos?
OquemaisexistenestaintegraçãoentreSGBD-ReDadosGeográficos?
• ÍndicesEspaciais:árvores-R,Quadtrees,Fixed-Grid.
• Armazenamentodadosmatriciais.
• Armazenamentobaseadoemmodelostopológicos.
• Redesespaciais:roteamento,análisedefluxo.
BancosdeDadosxInformaNonRetrieval
• Bancosdedados→Informaçõesestruturadas– Esquemas– SQL
• IR→maisvoltadoparainformaçõesnãoestruturadascomoprocessamentodedocumentosetextolivre.– WebSearchEngines– SVM(SupportVectorMachines)
EvoluçãodasTecnologiasdeBancosDados
1960 1970 1980 1990 2000 2010
NoSQL/NewSQL/Pós-relacionais
Geoespacial
ProgramaçãoGeneralizada
Programasdependentesarquivos
BancosDadosOrientadoObjeto
ObjetoRelacional
ModeloBancoDadosHierárquico(IBMIMS)
BancosDadosRelacionais(SGBD-R)
Interessante:onúmerodetecnologiasdebancosdedadoscomcaracterísRcasdiferentesdosSGBD-RtemaumentadonosúlRmos8anos!
O“cardápio”deopçõesaumentou?• SistemasNão-RelacionaisouNotOnlySQLouPós-relacionais:
– h�p://nosql-database.org/– h�ps://en.wikipedia.org/wiki/NoSQL
• Diferentesmodelosdedados:– DocumentOriented:MongoDB,CouchDB;– ColumnStores:Cassandra;– GraphDatabases:OrientDB,Neo4J;– ArrayDatabases:SciDB,Rasdaman.
• NemtodossãobaseadosnoparadigmadetransaçõesACID.
• Escalabilidade:HorizontalxVerNcal
SuporteEspacialemNoSQL
• MongoDB• CouchDB• ApacheSolr• Neo4JSpaNal
Referências
Livros
• ELMASRI,R.;NAVATHE,S.B.Fundamentalsofdatabasesystems.AddisonWesley,2006.1139p.
• DATE,C.J.Anintroduc'ontodatabasesystems.Addison-WesleyLongmanPublishingCo.,Inc.,Boston,MA,USA,1991.
ArNgos• E.F.Codd.1970.Arela'onalmodelofdataforlargeshareddata
banks.Communica0onsoftheACM,v.13,n.6,June1970,pp.377-387.
• Chen,P.TheEn'ty-Rela'onshipModel-TowardaUnifiedViewofData.ACMTransacNonsonDatabaseSystems,vl.1,n.1.March1976,pp.9-36.
• GRAY,J.Evolu'onofDataManagement.IEEEComputer29(10):38-46,1996.
• Vijlbrief,T.,andP.vanOosterom.TheGEO++System:AnExtensibleGIS.Proc.5thIntl.SymposiumonSpaNalDataHandling,Charleston,SouthCarolina,1992,40-50.
EspecificaçõesePadrões
• OGC.OpenGISImplementa'onSpecifica'onforGeographicinforma'on-Simplefeatureaccess-Part1:Commonarchitecture.Availableat:h�p://www.opengeospaNal.org.Access:October,2012.
• OGC.OpenGISImplementa'onSpecifica'onforGeographicinforma'on-Simplefeatureaccess-Part2:SQLop'on.Availableat:h�p://www.opengeospaNal.org.Access:October,2012.
• ISO.SQLMul'mediaandApplica'onPackages–Part3:Spa'al.
Slides
• NAUGHTON,J.F.DBMSResearch:First50Years,Next50Years.Kynotespeaker’slidesatICDE2010.Disponívelem:h�p://pages.cs.wisc.edu/~naughton/naughtonicde.pptx.Acesso:Abrilde2013.