SQL 2008 Armazenando Todas as Informações - 6º Parte – Tipos de dados: Dados Espaciais
Autor: Alex Marques | Publicado: 2010-07-21T19:13:00-07:00

&nbsp;&nbsp; &nbsp;Os profissionais da informação e consumidores lidam atualmente com enormes quantidades de informações de diferentes tipos, desde tabelas tradicionais de dados de negócios em planilhas e bancos de dados, a dados baseados em mídia online como vídeos, fotografias e música. A recente tendência a criar soluções mash up, em que as informações e os conteúdos de múltiplas fontes são combinados para criar aplicações online versáteis, revela como os usuários de computador usam soluções altamente integradas para entender a imensa quantia de informações disponíveis.&nbsp;&nbsp; &nbsp; &nbsp;Ao mesmo tempo, os avanços na tecnologia têm levado à proliferação de serviços e dispositivos geográficos, incluindo soluções de mapeamento online como o Microsoft® Virtual Earth™, e soluções GPS (global positioning system – sistema de posicionamento global) que não são caras. A tecnologia que antes era exclusiva dos especialistas em GIS (geographic information system – sistema de informações geográficas) está agora amplamente disponível para todos.&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Esses dois fatores trazem novas expectativas e oportunidades para as aplicações de software.&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; O SQL Server 2008 oferece suporte para dados geográficos através da inclusão de novos tipos de dados espaciais, que você pode usar para armazenar e manipular informações baseadas em localização. O suporte a dados espaciais do SQL Server 2008 pode ajudar o usuário a tomar decisões mais bem fundamentadas por meio da análise de dados relacionados à localização em cenários como:Informações baseadas em localização e focadas no cliente
Gerenciamento e desenvolvimento baseados no cliente
Impacto, análise e planejamento de dados ambientais&nbsp;
Análise financeira e econômica em comunidades
Análise de desenvolvimento e planejamento baseados no governo
Segmentação e análise de mercado
Design e análise de estudo e pesquisa científica
Desenvolvimento e análise de bens imobiliários
&nbsp;&nbsp; &nbsp; &nbsp; Este artigo fornece uma excelente introdução ao suporte abrangente para dados espaciais do SQL Server 2008, e descreve o alto desempenho de seus recursos espaciais e sua extensibilidade de aplicações com reconhecimento de local.
Tipos de Dados Espaciais do SQL Server 2008
&nbsp;&nbsp; &nbsp; &nbsp;O SQL Server 2008 fornece o tipo de dado geography para dados espaciais geodéticos e o tipo de dado geometry para dados espaciais planos. Ambos são implementados como tipos de dados CLR (Common Language Runtime) do Microsoft .NET Framework e podem ser usados para armazenar diferentes tipos de elementos geográficos como pontos, linhas e polígonos. Os dois tipos de dados fornecem propriedades e métodos que podem ser usados para realizar operações espaciais, como calcular distâncias entre locais e encontrar componentes geográficos que se cruzam (por exemplo, um rio que corta uma cidade).&nbsp;
O Tipo de Dado geography
&nbsp;&nbsp; &nbsp; &nbsp; O tipo de dado de geography fornece uma estrutura de armazenamento para dados espaciais definida por coordenadas de latitude e longitude. Usos comuns desse tipo de dado incluem a definição de estradas, prédios ou componentes geográficos como dados vetoriais, que podem ser sobrepostos em um mapa que leva em conta a curvatura da Terra, ou o cálculo de trajetórias e distâncias circulares notáveis para o transporte aéreo, casos em que a distorção inerente em um modelo plano causaria níveis inaceitáveis de imprecisão.
O Tipo de Dado geometry
&nbsp;&nbsp; &nbsp; O tipo de dado geometry fornece uma estrutura de armazenamento para dados espaciais definida por coordenadas em uma superfície plana arbitrária. Esse tipo de dado é comumente usado em sistemas de mapeamento regional, como o sistema de superfície plana de estado definido pelo governo dos Estados Unidos, ou para mapas e plantas baixas interiores, em que a curvatura da Terra não precisa ser considerada.&nbsp;&nbsp; &nbsp;O tipo de dado geometry fornece propriedades e métodos que são alinhados ao Simple Features Specification for SQL do OGC (Open Geospatial Consortium - Consórcio Geoespacial Livre) e permitem realizar operações com dados geométricos que produzem um comportamento de padrão industrial.
Métodos dos Tipos de Dados Espaciais
&nbsp;&nbsp; &nbsp; &nbsp; Ambos os tipos de dados espaciais no SQL Server 2008 fornecem um conjunto abrangente de métodos de instância e estáticos que você pode usar para fazer consultas e operações com dados espaciais. O exemplo de código a seguir cria duas tabelas para uma aplicação de mapeamento de cidade; uma contém valores geométricos para os distritos da cidade e a outra contém valores geométricos para as ruas da cidade. Uma consulta então recupera as ruas e os distritos que elas cruzam.
CREATE TABLE Districts&nbsp;&nbsp;&nbsp; &nbsp;( DistrictId int IDENTITY (1,1),DistrictName nvarchar(20),&nbsp;&nbsp; &nbsp; DistrictGeo geometry);GO
CREATE TABLE Streets&nbsp;&nbsp;&nbsp; &nbsp;( StreetId int IDENTITY (1,1), StreetName nvarchar(20),&nbsp;&nbsp; &nbsp; StreetGeo geometry);GO
INSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Downtown',geometry::STGeomFromText('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));
INSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Green Park',geometry::STGeomFromText('POLYGON ((300 0, 150 0, 150 150, 300 150, 300 0))', 0));
INSERT INTO Districts (DistrictName, DistrictGeo)VALUES ('Harborside',geometry::STGeomFromText('POLYGON ((150 0, 300 0, 300 300, 150 300, 150 0))', 0));
INSERT INTO Streets (StreetName, StreetGeo)VALUES ('First Avenue',geometry::STGeomFromText('LINESTRING (100 100, 20 180, 180 180)', 0))GO
INSERT INTO Streets (StreetName, StreetGeo)VALUES ('Mercator Street',&nbsp;geometry::STGeomFromText('LINESTRING (300 300, 300 150, 50 50)', 0))GO
SELECT StreetName, DistrictNameFROM Districts d, Streets sWHERE s.StreetGeo.STIntersects(DistrictGeo) = 1ORDER BY StreetName
Os resultados dessa consulta são mostrados na tabela a seguir.

Recursos dos Dados Espaciais de Alto Desempenho
&nbsp;&nbsp; &nbsp; &nbsp;Os tipos de dados espaciais do SQL Server 2008 são implementados como tipos do sistema CLR. O SQL Server 2008 aumenta o tamanho máximo para tipos de dados CLR no banco de dados, de 8000 bytes, limite imposto pelo SQL Server 2005, para dois gigabytes (2 GB), o que permite armazenar elementos de dados espaciais extremamente complexos, como polígonos, que são definidos por um grande número de pontos.&nbsp;&nbsp; &nbsp; Armazenando dados espaciais em tabelas relacionais, o SQL Server 2008 possibilita a combinação de dados espaciais com qualquer outro tipo de dados de negócios; isso elimina a necessidade de manter um armazenamento separado de dados espaciais dedicados, e permite consultas de alto desempenho que não precisam combinar dados de múltiplas fontes externas.&nbsp;&nbsp; &nbsp;O desempenho das consultas em dados espaciais é ainda melhor com a inclusão do suporte a índice espacial no SQL Server 2008. Você pode indexar dados espaciais com um índice de grade adaptável de múltiplos níveis, que se integra ao mecanismo de banco de dados do SQL Server. Índices espaciais consistem em uma hierarquia baseada em grade em que cada nível do índice subdivide o setor de grade definido no nível acima. Um modelo conceitual de um índice espacial é mostrado na Figura abaixo.

&nbsp;&nbsp; &nbsp; O otimizador de consulta do SQL Server toma decisões baseadas em custos sobre quais índices usar para determinada consulta, e como os índices espaciais são parte integrante do mecanismo de banco de dados, o SQL Server pode decidir, baseado em custos, se usará ou não um determinado índice espacial, assim como com qualquer outro índice.
Extensibilidade de Aplicações com Reconhecimento de Local
&nbsp;&nbsp; &nbsp;Os tipos de dados geography e geometry têm suporte nas várias edições do SQL Server 2008 que escalam de aplicações de estação de trabalho de usuário único para armazenamentos de dados de nível empresarial, e permitem construir soluções geoespaciais de qualquer escala. Esse amplo suporte traz recursos de dados espaciais para todos os tipos de aplicações, sem a necessidade de soluções geoespaciais caras de propriedade particular.
Importando Dados Espaciais
&nbsp;&nbsp; &nbsp; Os tipos de dados geography e geometry incluem métodos para importar e exportar dados nos formatos WKT (Well Known Text) e WKB (Well Known Binary), para dados geográficos definidos pelo OGC, bem como o formato GML (Geographic Markup Language) comumente usado, o que facilita a importação de dados geográficos de fontes que têm suporte para esses padrões. Dados geográficos estão disponíveis em uma série de fontes governamentais e comerciais, e podem ser exportados de modo relativamente fácil de muitas aplicações GIS e sistemas GPS existentes. A Microsoft mantém relações estreitas com vários fornecedores de GIS terceirizados e provedores de soluções de dados geoespaciais, o que ajuda a assegurar uma forte compatibilidade entre o SQL Server 2008 e uma ampla variedade de ferramentas e utilitários comprovados pela indústria para importar, exportar e manipular dados espaciais.
Usando Dados Espaciais
&nbsp;&nbsp; &nbsp;Como já foi demonstrado neste white paper, os tipos de dados geography e de geometry fornecem métodos que você pode usar para realizar operações espaciais com seus dados. Como esses tipos de dados são implementados como tipos de dados CLR do .NET, você pode criar facilmente aplicações clientes que consomem dados espaciais do SQL Server por meio de tecnologias de programação de dados da Microsoft, e usam código gerenciado no lado do cliente para chamar métodos em instâncias dos tipos espaciais. Isso permite construir aplicações potentes para trabalhar com seus dados espaciais e integrá-los a outras aplicações e serviços de reconhecimento de local como o Virtual Earth.&nbsp;&nbsp; &nbsp; Por exemplo, a Figura 4 mostra uma aplicação em que os dados espaciais do SQL Server 2008 são integrados ao Virtual Earth. A aplicação mostra os blocos de censo em uma região de CEP com o número de restaurantes computados. O número de restaurantes em cada bloco, relativo ao tamanho do bloco, produz um valor de densidade, que aparece na exibição como uma região sombreada de branco (densidade baixa) a vermelho (densidade mais alta).
&nbsp;&nbsp; &nbsp;À medida que a integração de informações geoespaciais a aplicações se torna mais predominante, os desenvolvedores de aplicações precisam, cada vez mais, de sistemas de banco de dados que possam armazenar e manipular dados espaciais. Com a introdução dos tipos de dados geography e geometry, o SQL Server 2008 fornece uma solução de armazenamento de dados abrangente, extensível e de alto desempenho para dados espaciais, e permite a organizações de qualquer escala integrar recursos geoespaciais às suas aplicações e serviços. É isso ai pessoal ate a&nbsp;próxima.