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: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)
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: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.
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.
ManipulaçãodeRasteremSQL?
CREATETABLErecorte_rasterASSELECTST_Clip(rast,ST_Buffer(ST_Centroid(ST_Envelope(rast)),100),FALSE)FROMimg_brasilia_cbersWHERErid=2100;
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→
Exemplo:MapadeVegetaçãoGlobaldeFevereirode2000aFevereirode2014
Fonte:NASAEarthObservatory(23deAbril,2014)
AutomatedReal-TimeDeforestaYonMonitoringWithSatelliteImageTimeSeries
ChristopherStephan([email protected])
BreaksForAddiYve
SeasonandTrend(BFAST)
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
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
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
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);
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.
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
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
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.