Tenho uma forte sensação de que o design e a normalização do banco de dados geralmente vêm em segunda mão ao lidar com dados espaciais.
Com o software que custa uma fortuna e os bancos de dados com mais de 100 tabelas de campos, tenho que perguntar:
Existem boas razões para levar outras considerações além da normalização ao projetar um banco de dados espacial?
Acho que as pessoas vão pedir exemplos, mas isso não posso dar aqui, então minha pergunta talvez seja mais direcionada para aqueles que querem dizer que 100 campos não são um problema e são mais fáceis de manter do que um design normalizado adequado.
Quais são os argumentos?
spatial-database
database-design
Nicklas Avén
fonte
fonte
Respostas:
Sinto que os bancos de dados espaciais não devem ser tratados de maneira diferente dos bancos de dados tradicionais. Eles estão basicamente fazendo a mesma coisa, armazenando grandes quantidades de dados para recuperação rápida. Como exemplo, no PostgreSQL / PostGIS, a geometria é apenas outro tipo de dados. Assim como texto ou número inteiro. O mesmo no SQL Server 2008. O mesmo no Oracle. Se a parte "espacial" é apenas outro tipo de campo no banco de dados, será realmente diferente do banco de dados original? Isso significa que devemos descartar todas as regras do design tradicional de banco de dados?
Obviamente, a normalização pode ser levada longe demais, assim como nos bancos de dados tradicionais, por isso é uma troca encontrar o melhor design que atenda às suas necessidades.
Se você está planejando criar uma estrutura altamente desnormalizada com tabelas de 100 colunas, precisa se perguntar o que provavelmente mudará no futuro. Com um grande aumento de linhas, isso também afetará o desempenho da consulta? Isso afetará a manutenção no futuro?
O que há de errado em criar uma estrutura normalizada e usar visualizações para expor todos os dados ao cliente de banco de dados, seja GIS ou qualquer outro cliente?
Todas essas perguntas se aplicam aos bancos de dados tradicionais e aos bancos de dados espaciais. Se você acessar http://en.wikipedia.org/wiki/Database_normalization , descobrirá que isso também se aplica aos bancos de dados espaciais.
Se o software que você está usando no topo do banco de dados o forçar a usar estruturas altamente desnormalizadas, esse é um argumento diferente. Você é limitado pelo software e não pelo banco de dados; portanto, não há opções no melhor design de banco de dados.
Então eu acho que a resposta curta é (na minha opinião) o design de banco de dados é tão importante para bancos de dados espaciais quanto para bancos de dados tradicionais.
fonte
Eu vejo muito isso. Eu sinto que isso decorre do fato de que tradicionalmente as pessoas de GIS vêm de históricos de pesquisa e não têm um histórico / entendimento de bancos de dados. No entanto, estou vendo essa mudança, à medida que mais e mais organizações movem a infraestrutura GIS para a área de TI.
fonte
Legado do software GIS
O alto custo anterior do ArcSDE e a falta de um tipo de dados espaciais no SQL Server (até 2008) e o Oracle até a versão 10 significavam que havia pouca opção a não ser armazenar dados em shapefiles para muitas organizações (e pelos concorrentes para manter baixos os custos de licitação) .
A introdução de tipos espaciais nativos no SQL Server significou quase que instantaneamente que o ArcSDE passou de um grande investimento, passando a ser incluído gratuitamente no ArcGIS e a "recuperação" de dados espaciais nas organizações.
As organizações que usam ArcGIS e SQL Server anteriormente tinham três opções:
Depois que o SQL Server tinha um tipo espacial nativo, a maioria dos fornecedores usava isso em vez de seus formatos proprietários, o que significa que os dados espaciais poderiam ser acessados de repente por outros aplicativos. A ESRI teve que reduzir o custo do ArcSDE (o que eles fizeram ao integrá-lo ao ArcGIS) e / ou permitir que dados espaciais fossem armazenados no formato de banco de dados nativo.
Além disso, as consultas realizadas no ArcIMS em shapefiles, associadas aos DBFs, tinham que incluir todos os campos e duplicação necessários, pois não havia opção para criar visualizações espaciais ou vincular recursos facilmente a um banco de dados back-end.
Razões organizacionais
Concordo com outras pessoas que, até recentemente, os dados espaciais se tornaram um tipo de banco de dados nativo, por muito tempo foram ignorados ou mantidos separados pelos administradores de banco de dados nas organizações e se tornaram a responsabilidade de um gerente de GIS. Os conceitos de design de banco de dados, normalização, replicação, segurança e visualizações SQL requerem um conjunto de habilidades especializado muitas vezes muito diferente e especializado e não podem ser facilmente aprendidos à medida que você avança.
Razões de custo
Explicar em uma proposta a exigência de grande quantidade de tempo e esforço a serem gastos em um modelo de dados, e a limpeza / importação de dados para esse modelo geralmente é impossível. Muitas vezes, os compradores do projeto vêm de uma visão analítica do GIS e ignoram a importância dos dados estruturados.
fonte
Por tabelas de 100 colunas, suponho que você queira dizer os tipos de resultados obtidos ao criar sobreposições de "cobertura principal" de várias entradas. Sim, esses são artefatos do fluxo de trabalho do Arc / INFO. Mas, em defesa, você também pode pensar nelas como tabelas deliberadamente desnormalizadas para OLAP . Como eles estão sendo usados principalmente para o processamento de consultas, não para atualização de dados, o formulário não normalizado faz algum sentido. Como um esquema em estrela , mas sem os, er, pontos. OK, chá fraco, mas ainda acho que há algo lá.
fonte
Sim, se iniciar um novo projeto de IG é importante e pode economizar tempo = dinheiro no futuro. http://www.amazon.com/Spatial-Database-Systems-Implementation-Management/dp/1402053916 é uma boa visão geral do motivo pelo qual é importante.
fonte