bancos de dados geográficos - dpi.inpe.br · objeto relacional modelo banco dados hierárquico...

95
Bancos de Dados Geográficos Dr. Gilberto Ribeiro de Queiroz <[email protected]>

Upload: phammien

Post on 12-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

BancosdeDadosGeográficos

Dr.GilbertoRibeirodeQueiroz<[email protected]>

ContextoTecnológico

EvoluçãodasTecnologiasdeBancosDados

EvoluçãodasTecnologiasdeBancosDados

1960 1970 1980 1990 2000 2010

Programasdependentesarquivos

EvoluçãodasTecnologiasdeBancosDados

1960 1970 1980 1990 2000 2010

ProgramaçãoGeneralizada

Programasdependentesarquivos

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.CommunicaYonsoftheACM,v.13,n.6,June1970,pp.377-387.

BancosDadosRelacionais(SGBD-R)

ACMTuringAward(1981)

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

Relacionamentosentretabelas

paises

id nome populacao

1 Alemanha 82.000.000

2 Brasil 190.000.000

... ... ...

cidades

cid nome populacao pais_id

191 CorrenYna ... 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 CorrenYna ...

2 Brasil 190000000 181 OuroPreto ...

1 Alemanha 82000000 987 Munster ...

2 Brasil 190000000 192 Belmonte ...

... ... ... ...

ÁlgebraRelacional:ExemploOperador

•  Seleção:esteoperadorselecionatuplas(linhas)deumarelaçãoquesaYsfazemumcertopredicadooucondiçã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:ComposiçãoOperadores

•  JunçãoouJoin: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 CorrenYna ... 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→LinguagemDeclaraYva→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→LinguagemDeclaraYva→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

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

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

ArquiteturasdeSGBD-R

•  Cliente/Servidor

•  EmbuYdo(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 Argen^na … … … …

LayoutemDisco LayoutemDisco

1

2

...

Alemanha

Brasil

...

82.000.000

190.000.000

...

Ex:C-Store,MonetDB,VerYcaEx:PostgreSQL,MySQL

EvoluçãodasTecnologiasdeBancosDados

1960 1970 1980 1990 2000 2010

Aplicaçõesemergentesenovasdemandas:

CAD,SIG,MulYmedia,OLAP,Real-Yme,

Cienzficas

ProgramaçãoGeneralizada

Programasdependentesarquivos

ModeloBancoDadosHierárquico(IBMIMS)

BancosDadosRelacionais(SGBD-R)

PeríododemuitapesquisasobreextensibilidadedosSGBDs

Protó^posdepesquisanofinaldosanos80voltadosaSIG: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:UserDefinedFuncYons(UDF)

•  PossibilitacriarouestenderaálgebradeumdeterminadoYpodedado.

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:UserDefinedFuncYons(UDF)

•  PossibilitacriarouestenderaálgebradeumdeterminadoYpodedado.

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:UserDefinedFuncYons(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→Spa^alandGeode^cGeographyTypesSQLite→Spa^aLiteandRasterLiteOracle→OracleSpa^al,GeoRaster,TopologyandNetworkModelsIBMDB2→Spa^alExtenderSQLServer(2008)→Spa^alTypes

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.:ComponenteespacialarmazenadaemcamposdoYpoBLOBouEsquemaTabelas

Obs.:Dadosarmazenadosdeformaisoladaeformatosproprietários

SGBD-R

SIGeSGBD-R:Comopassouaserestaintegração?

•  ArquiteturaIntegrada:TiposdeDadosGeoespaciais•  Padronização:OGCSimpleFeatureseISO/SQL-MMSpaYal

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

OquemaisexistenestaintegraçãoentreSGBD-ReDadosGeográficos?

•  ÍndicesEspaciais:árvores-R,Quadtrees,Fixed-Grid.

•  Armazenamentodadosmatriciais.

•  Armazenamentobaseadoemmodelostopológicos.

•  Redesespaciais:roteamento,análisedefluxo.

R-tree:VisãoGeral

•  Intervalossãoorganizadosemumaestruturadeárvore:–  Leafnodes:–  Childnodes:onde

RO2RO4

RO1RO7

RO3

A

RO5

RO6RO8

B

C

RO1 RO2 RO3 RO4 RO5 RO6 RO7 RO8

A B C

O1 O2 O3 O4 O5 O6 O7 O8

(I,child-ptr)[ ](I, tuple-id)[ ] I = (I0, I1,..., Ik−1)

Ii = [a,b]

OquemaisexistenestaintegraçãoentreSGBD-ReDadosGeográficos?

•  ÍndicesEspaciais:árvores-R,Quadtrees,Fixed-Grid.

•  Armazenamentodadosmatriciais.

•  Armazenamentobaseadoemmodelostopológicos.

•  Redesespaciais:roteamento,análisedefluxo.

ImagemColorida–CenaCBERS-2B

Discussão:ComoArmazenareGerenciarDadosMatriciais?

Solução1:UsandoumSGBD-Rcomsuportematricial

PostGISRaster

OracleGeoRaster

Solução1:UsandoumSGBD-Rcomsuportematricial

PostGISRaster

OracleGeoRaster

PostGISRaster

•  Raster(Matricial-CélulasMulYbandas)

•  Visãodoespaçonaformadeumagraderetangular,comcélulascontendoumaoumaisvaloresnuméricos

•  OprojetodoPostGISRasterpossibilitatrabalharcomvárioscasosdeusocomimagens:–  Armazémdeimagens(possivelmentenãorelacionados)–  Tiles:

•  Regularesouirregulares(podetermissingYles)

–  indbxoutdbstorage

PostGISRaster→SQL•  TablecreaYon:

CREATETABLEraster_table(ridSERIALPRIMARYKEY,rastRASTER);

•  SpaYalindexcreaton:CREATEINDEXspidx_table_colONraster_tableUSINGgist(ST_ConvexHull(raster-col));

Organizandoumaimagememblocos(Tiles)

•  UmaestratégiamuitocomumdosSIGéparYcionarumaimagememblocosduranteoarmazenamento.

•  OPostGISrastersuportaestaestratégiadearmazenamento.

Overviews(Pirâmides/MulY-resolução)

•  Parâmetroraster2pgsql:-l2,4

ManipulaçãodeRasteremSQL?

CREATETABLErecorte_rasterASSELECTST_Clip(rast,ST_Buffer(ST_Centroid(ST_Envelope(rast)),100),FALSE)FROMimg_brasilia_cbersWHERErid=2100;

Discussão:Atualmente,nãoháumpadrãobemdefinidoparaasextensõesmatriciais.

Discussão:ExistealgumproblemacomoprojetodosuporteRasterdosatuaisSGBD-R?

ComolidarcomosrequisitosdeaplicaçõesdeEOquepodemnecessitarcomoentradadados

massivos?

Fonte:Adpatadodeh�p://nsidc.org/data/modis/data_summaries/landgrid.html

MODIS:GradeSinusoidal

0 1 2 3 4 5 6 7 8 9 101112 1314 1516 17 1819 202122 2324 2526 27 2829303132 3334 3501234567891011121314151617

h→

v→

MODISTimeSeries

MODISTimeSeries

Obs.:Naresoluçãode250metroscadaimagempossui4.800x4.800pixels

Quaissãoosdesafios?

Exemplo:MapadeVegetaçãoGlobaldeFevereirode2000aFevereirode2014

Fonte:NASAEarthObservatory(23deAbril,2014)

TemporalLandCoverClassificaYon

[email protected]@[email protected]

BasicProblem:idenYfyasignatureonaYmeseries

Approach:useDynamicTimeWarping(DTW)

AutomatedReal-TimeDeforestaYonMonitoringWithSatelliteImageTimeSeries

ChristopherStephan([email protected])

BreaksForAddiYve

SeasonandTrend(BFAST)

Comofornecermelhorinfraestruturacomputacionalparanossospesquisadores?

ComolidarcombiggeospaYaldata?

Satellites:Landsat,Terra,Aqua,SenYnel(TimeSeriesofRemoteSensingImagery)

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ís^casdiferentesdosSGBD-Rtemaumentadonosúl^mos8anos!

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:HorizontalxVerYcal

DadosCienzficos

SensoriamentoRemoto

OsdadosuYlizadosemdiversasáreasdaCiênciaencontram-senaformade

ArraysArrays=Matrizes

Solução2:UsandoumArrayDatabase

rasdaman

SciDB

Solução2:UsandoumArrayDatabase

rasdaman

SciDB

NovasTecnologiasdeBancosdeDadosparaDadosMatriciais

ArrayDatabases“ArraysasfirstclassciYzens”

SciDB

“SciDB is an open-source analytical database oriented toward the data management needs

of scientists.”(Stonebrakeretal.,2011)

Source:Wikiped

ia

ACMTuringAward(2014)

OqueéoSciDB?

•  Mixdeplataformaparagerenciamentoeanálisededados

•  ArrayDatabase:–  Omodelodedadostratade“Arrays”enãode“Tabelas”:

•  Array=Nome+DefiniçãodeAtributosdasCélulas+Dimensões

–  Linguagemdeconsultaébaseadaemumálgebradearrays:•  AQLandAFL:filter,aggregaYon,join

•  Projetadoparatrabalhoemclusters:–  Opção:arquiteturasharednothing

SciDB•  Site:h�p://www.paradigm4.com

•  License:AGPLv3.

•  Version:15.7.

•  Currentlysupportedpla�orms:–  Linux:Ubuntu12.04e14.04,RHEL6,CentOS6.

•  Principaldesenvolvedor:Paradigm4.

•  Códigofonteencontra-sedisponívelcomopacotestar.gz:–  CommunityEdiYon:nãoháacessoabertoaorepositóriodecódigofonte.–  EnterpriseEdiYon:acessoSVN/GIT.

Arquitetura

WorkerNodes

SciDBEngine

SciDBEngine

SciDBEngine

SciDBEngine

LocalStore

LocalStore

LocalStore

LocalStore

SciDBEngine

LocalStore

CoordinatorNode

PostgreSQLSystemCatalog

ClientApplicaYons:iquery,Python,R,C/C++

Source:AdaptedfromPARADIGM4

Instância

arrayname<a�ributes>[dimensions]

Arrays:Dimensões

•  EmgeraluYliza-sevaloresinteirosde64-bit.•  Dimensõescomlimitesbemdefinidos(boundeddimension):

–  Quandosabemosapriorionúmerototaldecélulasemumadadadimensão(ouacardinalidadedeumadimensão).

•  Dimensõescomlimitesindefinidos(unboundeddimension):–  Quandonãosabemosacardinalidadedoarrayemtempodecriação.

123

1 2 3 4123i

j

t

mod09q1<attributes>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

OArraymod09q1terá3dimensões:4x3x*

Arrays:Atributos•  CadaCélulapodeestarassociadaamúlYplosvalores(ouatributos),cada

umpertencenteaumYpodedadosespecífico:–  int8,uint8,int16,uint16,int32,uint32,int64,uint64,float,double,string,

dateYme,dateYmetz...

•  Cell=(d1,d2,...,dn).

mod09q1<red:int16,nir:int16,quality:uint16>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

Cadacéluladoarraymod09q1terá3

atributos

123

1 2 3 4123i

j

t

Arrays:Atributos•  CadaCélulapodeestarassociadaamúlYplosvalores(ouatributos),cada

umpertencenteaumYpodedadosespecífico:–  int8,uint8,int16,uint16,int32,uint32,int64,uint64,float,double,string,

dateYme,dateYmetz...

•  Cell=(d1,d2,...,dn).

mod09q1<red:int16,nir:int16,quality:uint16>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

Cadacéluladoarraymod09q1terá3

atributos

123

1 2 3 4123i

j

tEx:acélula(4,2,1)podeestarassociadaaosvalores:red=474;nir=3109;quality=4096

LinguagensdeConsulta

ArrayQueryLanguage(AQL)ArrayFuncYonalLanguage(AFL)

ArrayQueryLanguage:AQL

SELECTexpression[INTOtarget_array]FROMarray_expression|source_array[WHEREexpression]

individuala�ributesanddimensions,aswellasconstantsandexpressions

neworpre-exisYng

Arrayoranyexpressionthatreturnsanarray(likesub-queries)

filterparametersona�ributevaluesordimensionbounds

ThereareDMLandDDLclauses

ArrayFuncYonalLanguage(AFL)

store(build(<num:double>[x=0:8,1,0,y=0:9,1,0],random()),random_numbers);

ParYcionamentodeDados

ChunksVerYcalParYYoning

Arrays:ParYcionamento

mod09q1<red:int16,nir:int16,quality:uint16>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

123

1 2 3 4123i

j

t

chunkwithreddata

chunkwithqualitydata

Arrayédivididoemchunkschunk-size:2x1x3

parYcionamentoverYcalp/atributo

chunkwithqualitydata

Arrays:ParYcionamento

mod09q1<red:int16,nir:int16,quality:uint16>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

123

1 2 3 4123i

j

t

chunkwithreddata

chunkwithqualitydata

Arrayédivididoemchunkschunk-size:2x1x3

parYcionamentoverYcalp/atributo

chunkwithqualitydata

Arrays:ParYcionamento

•  NãoexisteumaB+-treeouR-tree:–  Asdimensõesformamabasedaindexaçãodosdados

•  Odadoé“quebrado”emchunksemapeadosatravésdeumafunçãohashparacadainstânciadocluster.

•  Umaquestãoimportantetrata-sedecomoespecificaronúmerodecélulasaolongodecadadimensãoqueseráusadoparaestabelecerotamanhodochunk.

Replicação

OverlapdeCélulasReplicaçãodeChunksentreasInstânciasdoCluster

Arrays:ReplicaçãoCélulasdeBorda

•  Épossíveldefinirumfatorchamadodeoverlapparaascélulasdebordadeumchunk:–  Trata-sedeumaboaestratégiaparaacelerarconsultasenvolvendo

vizinhança(neighborhood).

mod09q1<red:int16,nir:int16,quality:uint16>[j=1:4,2,1,i=1:3,1,1,t=1:*,3,2]

CadachunkconteráumacéluladebordanasdimensõesjeiNadimensãotserãoduascélulasdeborda

EssascélulassãouYlizadasapenaspeloSciDBduranteasconsultas

Arrays:ReplicaçãoCélulasdeBorda

•  Ilustraçãodareplicaçãodascélulasdeborda:

Array

Chunkswithoverlap

Arrays:ReplicaçãodeChunksentreasInstâncias

Tolerânciaafalhas

OutrasCaracterísYcas/Funcionalidades

•  CanuseRLEfordatacompression.•  Cacheforfrequentlyusedchunks.•  Versioning:

–  Thestoragemodelisbasedontheideaofa“nooverwrite”.–  Updatequerieswriteanewfullchunkoradeltachunk.

•  Storagesegments:–  ReservedconYguousspaceondiskforacollecYonofchunksbelonging

tothesamearray.•  ProvisionfortemporarystorageduringqueryexecuYon.•  Singlestatement(ACID)transacYons:

–  Array-levellocking.•  Robusthandlingofemptycells,includingNULLandcodefor

missingdata

IntegraçãocomDiversosAmbiente

•  RESTAPI:–  Shim

•  LinguagensdeProgramação:–  C++ePython–  Novidade:Julia

•  AmbientesestazsYcos:–  R

•  Álgebralinear:–  ScaLAPACK — ScalableLinearAlgebraPACKage

Arquitetura

WorkerNodes

SciDBEngine

SciDBEngine

SciDBEngine

SciDBEngine

LocalStore

LocalStore

LocalStore

LocalStore

SciDBEngine

LocalStore

CoordinatorNode

PostgreSQLSystemCatalog

ClientApplicaYons:iquery,Python,R,C/C++

Source:AdaptedfromPARADIGM4

Referências

Livros

•  JohnR.Jensen.RemoteSensingoftheEnvironment.

•  ELMASRI,R.;NAVATHE,S.B.Fundamentalsofdatabasesystems.AddisonWesley,2006.1139p.

•  DATE,C.J.Anintroduc'ontodatabasesystems.Addison-WesleyLongmanPublishingCo.,Inc.,Boston,MA,USA,1991.

ArYgos

•  STONEBRAKER,M.;BROWN,P.;POLIAKOV,A.;RAMAN,S.ThearchitectureofSciDB.InProceedingsofthe23rdinternaYonalconferenceonScienYficandstaYsYcaldatabasemanagement(SSDBM'11),JudithBayardCushing,JamesFrench,andShawnBowers(Eds.).Springer-Verlag,Berlin,Heidelberg,2011,1-16.

•  TAFT,R.;VARTAK,M.;SATISH,N.R.;SUNDARAM,N.;MADDEN,S.;STONEBRAKER,M.Genbase:acomplexanaly'csgenomicsbenchmark.ComputerScienceandArYficialIntelligenceLaboratoryTechnicalReport,MIT-CSAIL-TR-2013-028,November19,2013.

ArYgos•  E.F.Codd.1970.Arela'onalmodelofdataforlargeshareddata

banks.CommunicaDonsoftheACM,v.13,n.6,June1970,pp.377-387.

•  Chen,P.TheEn'ty-Rela'onshipModel-TowardaUnifiedViewofData.ACMTransacYonsonDatabaseSystems,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.SymposiumonSpaYalDataHandling,Charleston,SouthCarolina,1992,40-50.

EspecificaçõesePadrões

•  OGC.OpenGISImplementa'onSpecifica'onforGeographicinforma'on-Simplefeatureaccess-Part1:Commonarchitecture.Availableat:h�p://www.opengeospaYal.org.Access:October,2012.

•  OGC.OpenGISImplementa'onSpecifica'onforGeographicinforma'on-Simplefeatureaccess-Part2:SQLop'on.Availableat:h�p://www.opengeospaYal.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.

Videos

•  THAKAR,A(JohnsHopkinsUniversity).BillionsofStarsonOff-the-shelfSorware/TheSDSSSkyServerandBeyond:Why"TheNot-So-Litle-EnginethatCould"isS^llChuggingAlong.7thExtremelyLargeDatabasesConference,September9-12,2013,StanfordUniversity,California,USA.Video,Slides,Access:04thApril,2014.

Cursos

•  FONSECA,L.M.G.;KÖRTING,T.S.PDI:Fundamentos.NotasdeAulaSER437-ProcessamentoDigitaldeImagensdeSensoresRemotos.Disponívelem:h�p://www.dpi.inpe.br/cursos/ser437.Acesso:02deMaiode2014.

Manuais

•  SciDBReferenceManual:CommunityandEnterpriseEdiYonsDocumentVersion14.12.2013.Copyright©2010–2015Paradigm4,Inc.

Entrevistas

•  OntheSciDBarraydatabase.InterviewwithMikeStonebrakerandPaulBrown.Disponívelem:h�p://www.odbms.org/blog/2014/04/interview-mike-stonebraker-paul-brown/.Acesso:Novembro,2015.BlogRobertoV.Zicari.