Você está na página 1de 11

XVII Simpsio Brasileiro de Banco de Dados

Arquitetura de Software para Construo de Bancos de Dados Geogrficos com SGBD Objeto-Relacionais
KARINE REIS FERREIRA, GILBERTO RIBEIRO QUEIROZ, JOO ARGEMIRO PAIVA , RICARDO CARTAXO MODESTO DE SOUZA, GILBERTO CMARA Instituto Nacional de Pesquisas Espaciais - INPE Av. dos Astronautas, 1758, So Jos dos Campos (SP), Brazil 12227-001 {karine, gribeiro, miro, cartaxo, gilberto}@dpi.inpe.br Resumo

Este artigo descreve uma arquitetura de software para o desenvolvimento de banco de dados geogrficos utilizando SGBDs objeto-relacionais, como o PostgreSQL e Oracle Spatial, compartilhando uma interface de programao comum. Este trabalho parte da TerraLib, um software de cdigo fonte aberto e de ambiente colaborativo, usado para o desenvolvimento de ferramentas SIGs. This paper describes a software architecture for development of geographic databases that uses objectrelational DBMS, like PostgreSQL and Oracle Spatial, sharing a common programming interface. This work is part of TerraLib, an open source software allowing a collaborative environment and use for the development of multiple GIS tools.

Abstract

1. Introduo A rea de bancos de dados geogrficos (BDG) e o desenvolvimento de tecnologia de sistemas de informao geogrfica (GIS) estaro passando por mudanas substanciais nos prximos anos, induzidas por uma nova gerao de SGBDs objeto-relacionais, como o ORACLE e POSTGRESQL, que permitem incorporar tipos de dados espaciais. Deste modo, abre-se a perspectiva da construo de GIS onde tanto os atributos como as geometrias de dados espaciais sejam gerenciados pelo SGBD. Esta integrao tem o potencial de mudar completamente o desenvolvimento de tecnologia de GIS, permitindo a transio dos atuais sistemas monolticos (que contm centenas de funes) para uma nova gerao de aplicativos geogrficos (spatial information appliances), sistemas dedicados para necessidades especficas [4]. Deste modo, um desafio importante para a comunidade de BDG encontrar maneiras de utilizar a nova gerao de SGBD com tipos de dados espaciais. Uma das respostas possveis para este desafio o estabelecimento de uma rede de desenvolvimento cooperativo, baseado em tecnologia open source. De forma similar s solues ligadas tecnologia Linux, a disponibilidade de software livre para GIS permitiria a pesquisadores e provedores de solues o acesso a um conjunto mais amplo de ferramentas do que atualmente oferecido por companhias comerciais. Com esta motivao, os autores esto desenvolvendo a TerraLib [2], uma biblioteca de software livre base para uma nova gerao de aplicativos geogrficos. Um dos desafios importantes no desenvolvimento de uma biblioteca como a TerraLib compatibilizar as capacidades oferecidas pelos diferentes SGBD objeto-relacionais numa nica interface de programao de aplicaes. Para isto, torna-se necessrio descrever as

57

XVII Simpsio Brasileiro de Banco de Dados

operaes de consulta e armazenamento de dados espaciais de forma genrica, e realizar o mapeamento para as caractersticas especficas de cada SGBD. Neste contexto, este artigo descreve uma arquitetura de software para construo de bancos de dados geogrficos que utilizam SGBD objeto-relacionais, mantendo uma mesma interface de programao. O trabalho faz parte do desenvolvimento da TerraLib, cuja primeira verso possui drivers para os SGBD ORACLE e POSTGRESQL. Nas sees seguintes, detalharemos a arquitetura de software utilizada. Na seo 2, descrevemos as extenses espaciais do ORACLE e do POSTGRESQL. Na seo 3, descrevemos em detalhe a arquitetura de software. Na Seo 4, ilustramos as capacidades da TerraLib a partir da descrio do aplicativo TerraView, um ambiente simplificado para visualizar dados espaciais. 2. Extenses Espaciais de SGBD Atualmente, existem basicamente trs extenses comerciais disponveis no mercado para tratar de dados geogrficos no formato vetorial: Oracle Spatial[11], IBM DB2 Spatial Extender [9] e Informix [6]. No universo do software de cdigo fonte aberto e gratuito existe um projeto para a construo de uma extenso geogrfica baseada no PostgreSQL [7], chamada de PostGIS [10]. Todas essas extenses baseiam-se nas especificaes do OpenGIS [3], porm, apresentam variaes relevantes entre os modelos de dados, semntica dos operadores espaciais, mecanismos de indexao e esquema e sintaxe da SQL estendida com tipos espaciais. A seguir, so apresentadas as caractersticas e funcionalidades de algumas destas extenses. 2.1. Oracle Spatial O Oracle Spatial uma extenso espacial do SGBD Oracle, que utiliza seu modelo objeto-relacional. Esta extenso contm um conjunto de funcionalidades e procedimentos que pemite armazenar, acessar e analizar dados espaciais em um banco de dados Oracle. Seu modelo de dados consiste em uma estrutura hierrquica de elementos, geometrias e layers; onde layers so compostos por geometrias, que por sua vez so compostas por elementos. Os elementos podem ser do tipo Point, LineString ou Polygon (com ou sem ilhas). Uma geometria pode ser formada por um nico elemento ou por um conjunto homogneo (MultiPoint, MultiLinesString ou MultiPolygon) ou heterogneo (Collection) de elementos. E, finalmente, um layer formado por um conjunto de geometrias que possuem os mesmos atributos. Devido utilizao de um modelo objeto-relacional, cada geometria armazenada em um objeto chamado SDO_GEOMETRY. Este objeto contm a geometria em si, suas coordenadas, e informaes sobre seu tipo e projeo. Em uma tabela espacial, os atributos alfanumricos da geometria so definidos como colunas de tipos bsicos (VARCHAR2, NUMBER, etc) e a geometria, como uma coluna do tipo SDO_GEOMETRY. Sendo assim, cada tabela espacial armazena um layer, o qual composto pelo conjunto de todas geometrias desta tabela. O Oracle Spatial fornece um conjunto de operadores e funes espaciais, que so utilizados juntamente com a linguagem SQL, para suportar consultas espaciais. Para consultar relaes topolgicas entre duas geometrias utilizado um operador chamado SDO_RELATE. Este operador implementa o Modelo de 9-Intersees definido por Egenhofer [5]. Este modelo considera as intersees, vazia (0) ou no vazia (1), entre os interiores, fronteiras e exteriores de duas geometrias. O SDO_RELATE recebe como parmetro o tipo de relao

58

XVII Simpsio Brasileiro de Banco de Dados

topolgica que deve ser computada. Os possveis parmetros so : Equal, Disjoint, Touch, Inside, OverlapBdyIntersect, OverlapBdyDisjoint, Anyinteract, Contains, On, Covers e Coveredby. Quanto indexao espacial, esta extenso fornece dois tipos de ndices R-tree e Quadtree. Cada um desses ndices apropriado para diferentes situaes e podem ser usados simultaneamente para indexar uma mesma coluna geomtria. Um cenrio que ilustra o uso prtico desta extenso o seguinte: O oficial encarregado do servio contra incndios precisa de uma lista de todas as reas sensveis dentro de um raio de 8 km de uma rea de lixo txico.

Figura 01: Cenrio do problema

Partindo do princpio da existncia de duas tabelas com atributos espaciais:


zona_sensvel Nome Atributo Tipo nome VARCHAR2(50) zona SDO_GEOMETRY area_risco Nome Atributo Tipo nome VARCHAR2(50) local SDO_GEOMETRY

A seguinte consulta em SQL poderia ser utilizada para responder o problema: SELECT ass.nome, ar.nome FROM AREA_RISCO ar, AREA_SENSIVEL ass, USER_SDO_GEOM_METADATA m WHERE m.table_name = AREA_RISCO AND (SDO_RELATE(ass.zona, SDO_GEOM.SDO_BUFFER(ar.local, m.diminfo, 8000), mask=ANYINTERACT querytype=WINDOW) = TRUE); 2.2. PostgreSQL O PostgreSQL [12] um sistema gerenciador de banco de dados objeto-relacional, gratuito e de cdigo fonte aberto. Em sua distribuio oficial, oferecido os seguintes recursos para trabalhar com dados espaciais: Tipos geomtricos: point, box, path, polygon e circle.

59

XVII Simpsio Brasileiro de Banco de Dados

Indexao espacial: possui uma R-Tree, cuja implementao est limitada a dados com at 8Kbytes, sendo bastante limitada para dados geogrficos reais. No entanto, permite a definio de uma R-Tree sobre o mecanismo de indexao conhecido como GiST [8]. Operadores espaciais: apresenta apenas alguns poucos operadores e bem limitados. Por exemplo, no operador contm (@) uma das geometrias deve ser do tipo ponto e o operador igual (~=) s aplicado a duas geometrias do tipo polgono (polygon). Como as funcionalidades oferecidas so bastante limitadas para o desenvolvimento de Sistemas de Informao Geogrficas, uma nova extenso est em desenvolvimento. O PostGIS, como ela chamada, uma extenso geogrfica, gratuita e de cdigo fonte aberto, que visa permitir ao SGBD PostgreSQL gerenciar informaes geo-espaciais. Sendo sua definio e implementao baseadas nas especificaes do OpenGIS. Atualmente, o PostGIS conta com os tipos de dados espaciais contidos na especificao do OGIS e utiliza um mecanismo de indexao R-Tree sobre o esquema do GiST. Os operadores espaciais encontram-se em desenvolvimento. 3. Arquitetura de Software Um dos objetivos da TerraLib o desenvolvimento de aplicativos GIS baseados nos avanos tecnolgicos dos sistemas de bancos de dados, especialmente os espaciais, realizando a completa integrao dos tipos de dados espaciais dentro dos SGBDs [1]. Para realizar tal tarefa, ela fornece uma arquitetura que d acesso direto aos dados que podem ser armazenados em diversos SGBDs, como Oracle Spatial, PostgreSQL e MySQL, possibilitando a criao e a manipulao de bancos de dados geogrficos. Essa arquitetura fornece uma interface comum que possibilita ao desenvolvedor em no ter que se preocupar com os detalhes de cada SGBD. Isso permite que este enfoque nas funcionalidades que um GIS deve ter, como ferramentas para anlise espacial, visualizao grfica dos dados geogrficos e entrada de dados ao invs de se preocuparem com o gerenciamento dos dados. A arquitetura para construo de bancos de dados geogrficos apresentada neste trabalho (Figura 02) encontra-se implementada na TerraLib e composta pelos seguintes componentes: Modelo de Dados: composto por um conjunto especfico de tabelas para a representao dos dados geogrficos nos SGBDs. Kernel: composto pelas classes bsicas (estruturas de dados) para representao em memria dos dados geogrficos tanto no formato vetorial quanto matricial, por operadores topolgicos e direcionais, classes de sistema de projeo e algoritmos. Drivers: formado por classes que fornecem uma interface comum e que do o suporte bsico para trabalhar com os dados geogrficos nos SGBDs. SGBDs: a TerraLib permite a integrao tanto com SGBDs Relacionais quanto com Objeto-Relacionais. Atualmente, ela possui interface com o SGBD relacional MySQL e com os objeto-relacionais Oracle Spatial e PostgreSQL. Os drivers so os responsveis em manter essas interfaces.

60

XVII Simpsio Brasileiro de Banco de Dados

Modelo de Dados

Kernel

Database Driver Driver Oracle Driver MySQL Driver PostgreSQL

Oracle

MySQL

PostgreSQL

Figura 02: Arquitetura da TerraLib para construo de bancos geogrficos

3.1. Modelo de Dados O modelo de dados dessa arquitetura define um conjunto especfico de tabelas com o objetivo de facilitar a representao dos dados geogrficos nos SGBDs. Neste esquema, as informaes geogrficas sobre um determinado objeto ou fenmeno geogrfico so representadas em um plano de informao (layer). Um plano de informao (PI) pode ser composto por mais de um tipo de representao (vetorial ou matricial), estando ou no associado a uma tabela de atributos no espaciais. Na representao vetorial, um dado pode ser mapeado para trs tipos de tabelas com colunas capazes de representar polgonos, linhas ou pontos. Estas tabelas possuem um campo para fazer a ligao com a tabela de atributos no espaciais correspondente. Na representao matricial (raster) feito um particionamento do raster por linhas, onde cada linha armazenada em um registro da tabela em colunas do tipo BLOB. A Figura 03 ilustra, de maneira simplificada, o modelo de dados. Conforme pode ser observado no modelo apresentado na Figura 03, a tabela planos contm as informaes de cada PI, seu nome, retngulo envolvente (mbb) e o nome da tabela de atributos no espaciais associada ele. A tabela representacao possui um campo que contm o ndice do PI, outro chamado geomtipo que indica o tipo de representao (ponto, linha, polgono ou matricial) e outro chamado tabela que contm o nome da tabela onde os dados espaciais daquela representao esto armazenados. Neste modelo, um PI pode estar associado a diferentes temas, cada um com caractersticas especficas. Por exemplo, podemos ter um PI que contenha todos os estados do Brasil com seus atributos, rea, populao, taxa de analfabetismo, dentre outros. Uma consulta sobre esse PI, como por exemplo, selecione todos os estados onde a populao seja maior que 5 milhes, resultaria em um novo tema associado a este PI, e no a um novo PI. Este tema armazenado na tabela temas contendo as clusulas da consulta em SQL que o gerou, e associado ao PI correspondente atravs do relacionamento entre as tabelas planos e temas. Alm disso, cada tema associado a uma legenda, a qual armazenada na tabela legendas, que contm caractersticas de visualizao, como cores, formatos e tamanhos.

61

XVII Simpsio Brasileiro de Banco de Dados

Para uma melhor organizao dos dados no SGBD, este modelo implementa o conceito de vises que so associadas aos usurios. Assim, cada usurio cria suas prprias vises e associa a cada uma os temas relacionados. Pode-se dizer que o conceito de vises semelhante a idia de diretrios, onde cada usurio possui seus diretrios que contm informaes relacionadas sobre um mesmo assunto.

Figura 03 : Modelo de Dados simplificado

3.2. Kernel As classes do Kernel para manipulao dos dados em memria esto mostradas na Figura 04. As instncias dessas classes podem ser armazenadas nos SGBDs seguindo o esquema de representao mostrado na seo anterior, atravs do driver de banco de dados.
TeCoord2D TeRaster TeGeometry

TePolygonSet

<<bind>>

(TePolygon)

TeLine2D
<<bind>> (TeCoord2D)

TeGeomComposite

TeGeomSingle

<<bind>> (TeLine2D)

TeLinearRing

TeLineSet
<<bind>> (TePoint)

<<bind>> (TeLinearRing)

<<bind>>

(TeCoord2D)

TePointSet

TePolygon

TePoint

Figura 04: Classes do Kernel da TerraLib

62

XVII Simpsio Brasileiro de Banco de Dados

Uma instncia de um TePolygonSet pode ser armazenado no banco como um polgono por tupla ou no, dependendo do driver e do suporte oferecido pelo banco, sendo transparente para o desenvolvedor. 3.3. Database Driver O driver de banco de dados uma interface entre os diversos sistemas de bancos de dados e o Kernel da TerraLib. Ele permite o armazenamento, recuperao e manipulao dos dados geogrficos - a saber, os seus atributos espaciais e no espaciais - diretamente nos SGBDs, sem a necessidade de utilizao de estruturas proprietrias. Para cada SGBD criado um driver especfico que implementa um conjunto comum de interfaces para manipulao e definio do esquema da base geogrfica. Essa arquitetura muito semelhante da ODBC. Cada driver d o suporte necessrio para trabalhar com o esquema em um SGBD especfico, fornecendo mtodos que criam este esquema e que fazem o mapeamento entre os tipos de dados deste SGBD para os tipos de dados presentes no kernel da biblioteca. Alm disso, ele traduz as consultas espaciais para o dialeto SQL de cada SGBD, delegando a este sua execuo. Esses drivers devem explorar ao mximo os recursos oferecidos pelos SGBDs, principalmente, os que apresentam extenses espaciais capazes de fornecer mecanismos de indexao espacial, tipos de dados e operadores espaciais. A interface comum desses drivers definida por duas classes abstratas, TeDatabase e TeDatabasePortal. A classe TeDatabase fornece a interface para: Estabelecimento de conexo com o servidor de banco de dados Execuo de comandos SQL DDL e DML Criao de novas tabelas Criao do modelo de dados da TerraLib Definio dos ndices espaciais Criao de integridade referencial e ndice secundrios A classe TeDatabasePortal apresenta em sua interface mtodos para: Execuo de consultas SQL que retornem um conjunto de resultados Manipular o conjunto de resultados da execuo de uma consulta Insero, atualizao e recuperao das geometrias segundo o modelo de dados apresentado anteriormente. Execuo de consultas espaciais Armazenamento e recuperao de dados matriciais O driver de cada banco ser responsvel pelos detalhes de implementao desta interface. Abaixo, so apresentados os drivers do Oracle Spatial e do PostgreSQL mostrando a particularidades de cada um.

63

XVII Simpsio Brasileiro de Banco de Dados

3.3.1. Driver Oracle. O driver de interface com o SGBD Oracle, utiliza os recursos oferecidos pela sua extenso espacial Oracle Spatial, como tipos de dados, operadores e mtodos de indexao espaciais. Neste driver, os tipos vetoriais da TerraLib, TePoint, TeLine2D e TePolygon, so mapeados para objetos do tipo SDO_GEOMETRY. Este objeto armazena o tipo da geometria (como por exemplo, Point, Line String, Arc Line String, Polygon, Polygon with holes), sua projeo e suas coordenadas. Cada geometria armazenada em um registro, por exemplo, um polgono que contm ilhas, armazenado completamente em um SDO_GEOMETRY do tipo Polygon with holes. Quanto indexao espacial, ele utiliza os mtodos fornecidos pela extenso, R-tree e Quadtree. Neste caso, o desenvolvedor escolhe o tipo de indexao mais apropriada para seus dados geogrficos. Alm disso, este driver utiliza funes disponveis nesta extenso para avaliar a performance dos ndices criados (ANALYZE_RTREE) e para reconstruir um antigo ndice, depois de inserir novas geometrias (ALTER INDEX REBUILD). As consultas espaciais utilizam os operadores e funes espaciais disponveis. Por exemplo, SDO_RELATE para consultar relaes topolgicas entre geometrias, SDO_BUFFER para retornar uma nova geometria a partir de outra e SDO_DISTANCE para retornar a distncia entre duas geometrias. Neste caso, o driver monta a consulta em SQL utilizando os operadores e funes correspondentes, e o passa para o SGBD computar. 3.3.2. Driver PostgreSQL. O driver para banco de dados PostgreSQL utiliza os tipos POINT, PATH, POLYGON e BLOB para armazenar em uma tupla os tipos de dados TePoint, TeLine2D, TeLinearRing e TeRaster respectivamente. Cada anel (TeLinearRing) de uma instncia de um TePolygon armazenado em uma tupla, pois o tipo POLYGON no permite o armazenamento de polgonos com ilhas. Quanto indexao, este driver no utiliza a R-Tree padro do PostgreSQL devido s suas limitaes, empregando a R-Tree construda sobre o GiST. Os mtodos de consultas espaciais deste driver utilizam uma estratgia de duas etapas para o seu procesamento. Primeiramente, feito um filtro pelo retngulo envolvente da geometria atravs de operadores que utilizam o ndice espacial do SGBD. Na segunda etapa, o resultado avaliado com os operadores espaciais do kernel, que computam a geometria exata. Isso feito porque o PostgreSQL no apresenta suporte para todos os operadores topolgicos. Futuramente, este driver ser construdo sobre o PostGIS, de forma a delegar a esta extenso tanto os recursos de indexao e tipos de dados quanto os operadores espaciais. 4. TerraView O TerraView, desenvolvido pela DPI/INPE, um aplicativo open source construdo sobre a TerraLib, utilizando a arquitetura apresentada neste trabalho. As Figuras 05 e 07 ilustram sua interface grfica. Este software contm as seguintes caractersticas: Interface com diferentes SGBDs: possibilita que o usurio selecione o SGBD a ser utilizado, instanciando o driver correspondente e fazendo a conexo com o servidor de dados. Suporte a tipos de dados espaciais: o software suporta diferentes tipos de dados espaciais, incluindo polgonos, linhas, redes, clulas, pontos, imagens e superfcies. Ferramentas de visualizao: permite a visualizao do dado geogrfico, de sua componente espacial atravs do um canvas e de seus atributos afanumricos atravs de uma tabela. Alm disso, possuem algumas ferramentas como zoom in e zoom out.

64

XVII Simpsio Brasileiro de Banco de Dados

Integrao de dados espaciais: possibilita a integrao de layers de diferentes tipos (superfcies, pontos, etc.) combinados em um mesmo frame. Importao de dados: permite a importao de dados a partir de arquivos em formatos proprietrio (como por exemplo, shape file e mif) para o esquema definido no SGBD. Consultas espaciais: disponobiliza alguns tipos de consultas que podem ser aplicadas aos dados de um nico layer ou de dois layers distintos.

Figura 05: Interface Grfica do Aplicativo TerraView

Na Figura 05, mostrado a visualizao de dois PIs, setores e ruas, ambos formados por dados de representao vetorial, um por polgonos e o outro por linhas, respectivamente. Um tipo de consulta espacial feita sobre o plano setores mostrado na parte superior do PI, onde todos os setores adjacentes a um especfico, selecionado pelo usurio diretamente no canvas, foram retornados e preenchidos por branco. H ainda opes de fazer consultas entre os dados de dois PIs distintos, como por exemplo, retornar todas as ruas que cruzam as fronteiras de um setor especfico. Esta consulta ilustrada na Figura 06, onde as ruas retornadas so pintadas de branco. A Figura 07 mostra a visualizao de uma imagem no TerraView, utilizando os recursos dos drivers para armazenar e recuperar dados matriciais.

65

XVII Simpsio Brasileiro de Banco de Dados

Figura 06: Consulta espacial

Figura 07: Representao matricial no TerraView

5. Concluses Este trabalho mostra como os SGBDs podem desempenhar um papel fundamental no desenvolvimento de novos aplicativos GIS, assim como facilitar o seu desenvolvimento. Outro ponto importante a ser ressaltado que o armazenamento de dados dentro de um SGBD elimina o problema de uso de estruturas proprietrias, que dificultam a interoperabilidade. Alm disso, este artigo apresenta na prtica, a utilizao da nova gerao de SGBDOR e o seu potencial para gerenciamento de dados geogrficos. Apesar das limitaes apresentadas para a manipulao de dados matriciais, os avanos tecnolgicos destes SGBDs os tornam promissores para a integrao com GIS. Embora o PostgreSQL no fornea um conjunto de funcionalidades satisfatrias para o trabalho com dados geogrficos, h a possibilidade de estend-lo, sendo necessrio certos investimentos, que sero realizados pela prpria equipe deste trabalho, em parceria com o PostGIS. Como trabalhos futuros, podemos citar a implementao de operadores para suportar consultas a dados matriciais e realizao de anlise de desempenho dos drivers existentes. Referncias Bibliogrficas [1] Cmara, G., R. Souza, et al. (2000). TerraLib: Technology in Support of GIS Innovation. II Workshop Brasileiro de Geoinformtica, GeoInfo2000, So Paulo. [2] Cmara, G., L. Vinhas, et al. (2001). Design Patterns in GIS Development: The Terralib Experience. III Workshop Brasileiro de Geoinformtica, Rio de Janeiro, SBC. [3] Consortium, O. G. (1995). OpenGIS Simple Features Specification For SQL Revision 1.1.

66

XVII Simpsio Brasileiro de Banco de Dados

[4] Egenhofer, M. (1999). Spatial Information Appliances: A Next Generation of Geographic Information Systems. First Brazilian Workshop on GeoInformatics, Campinas, Brazil. [5] Egenhofer, M. and J. Herring (1991). Categorizing Binary Topological Relationships Between Regions, Lines, and Points in Geographic Databases. Orono, ME, Department of Surveying Engineering, University of Maine. [6] Flannery, R. M. (2000). Informix Handbook, Informix Press. [7] Geschwinde, E. and H.-J. Schoenig (2001). Postgresql : Developer' s HandbookNew . York, SAMS Publisher. [8] Hellerstein, J. M., J. F. Naughton, et al. (1995). Generalized Search Trees for Database Systems. Proc. 21st Int' l Conf. on Very Large Data Bases, Zrich. [9] Mullins, C. S. (2000). DB2 Developer' s GuideNew York, SAMS Publisher. . [10] Ramsey, P. (2002). PostGIS Manual. 2002. <http://postgis.refractions.net> [11] Ravada, S. and J. Sharma (1999). Oracle8i Spatial: Experiences with Extensible Databases. SSD' 99. R. H. Guting, D. Papadias and F. Lochovsky. Berlin, Springer-Verlag : 355-359. [12] Stonebraker, M. and L. A. Rowe (1986). The Design of POSTGRES. ACM-SIGMOD International Conference on the Management of Data. Washington, D.C.: 340-355.

67

Você também pode gostar