Tudo o que aprendi na escola foi SQL, que salva dados em tabelas. No momento, estou trabalhando em um projeto em que os dados são armazenados em arquivos XML. Além disso, todo XML contém uma referência a arquivos visuais (JPEG).
O XML em si contém mais de mil pontos de coordenadas, além de informações adicionais sobre os dados.
Na minha opinião, não faria sentido armazenar essas informações em tabelas. Além disso, eu também não podia armazenar arquivos JPEG com SQL.
Qual seria a solução apropriada ou há um erro de raciocínio do meu lado?
Como você pode ver, sou bastante novo nos bancos de dados. Portanto, sugestões, links e conselhos construtivos são bem-vindos.
database-design
xml
チ ー ズ パ
fonte
fonte
Respostas:
Tudo que você precisa é persistência do seu XML. Use uma solução NoSQL ou o sistema de arquivos.
Não há benefício em usar um RDBMS, a menos que você queira usá-lo em vez do NoSQL ou do sistema de arquivos.
fonte
Marquei de Phil Fator post Normalização e 'Anima notitia copia' hoje como resume bem o caso a favor e contra normalizar certos tipos de dados. Execute a seguinte consulta em uma instância SQL e veja se você concorda.
Você mencionou que o arquivo XML contém "informações adicionais sobre os dados". Existe algum benefício em modelar esses metadados em um banco de dados relacional, talvez para fins de interrogatório? Nesse caso, pode haver um caso para extrair os dados relevantes e persistir o XML restante como um tipo de documento XML.
O argumento de Phil Factor é que os campos não relacionais em um banco de dados relacional são perfeitamente aceitáveis se o campo for tratado como atômico, isto é, ele não muda, ou quando o campo inteiro muda, não faz parte dele. A extensão natural disso é que, se o seu documento contiver elementos nos quais você tem interesse, pode ser útil aplicar um modelo relacional a esses elementos.
Relevante para a pergunta, mas principalmente para a fraseologia, uma última citação de Phil:
Não todos nós!
fonte
No que diz respeito aos bancos de dados Oracle, a resposta é que você não pode . Todos os dados em um banco de dados são armazenados em tabelas, até meta-dados. Os dados podem ser armazenados em filas, mas essas são apenas uma maneira diferente de usar tabelas. Os arquivos XML podem ser armazenados fora de um banco de dados, mas isso não atende aos seus requisitos "no banco de dados".
Indo além da pergunta declarada, os arquivos JPEG ou quaisquer arquivos relacionados a esse assunto podem ser armazenados em um banco de dados. Eles exigiriam uma tabela e uma coluna LOB (BLOB ou CLOB). O XML também pode ser armazenado dessa maneira, mas a importação dos dados XML no banco de dados permitirá que você opere nos dados de maneiras que não podem ser facilmente executadas agora. Também forneceria outros benefícios dos bancos de dados, incluindo: Redundância Reduzida, Acessibilidade, Concorrência, Escalabilidade, Interoperabilidade, Segurança, Recuperação e Desempenho.
Se os benefícios de um banco de dados não promoverem seus objetivos, não use um.
fonte
Parece-me que você está tentando implementar um banco de dados espacial . Esse é um tipo de banco de dados relacional (ou um complemento para produtos de banco de dados existentes, por exemplo, Oracle Spatial, postGIS) que suporta funções de tipos de dados espaciais e é usado para otimizar o armazenamento e consultas de dados relacionados a recursos espaciais, como limites poligonais, pontos e camadas. O XML que você possui soa como pares de coordenadas de limite e as imagens associadas parecem recursos de arte-final para exibir nesse limite. Se os dados se ajustarem, considere um banco de dados espacial relacional que ofereça modelagem espacial incorporada para fornecer funcionalidades que, de outra forma, seria difícil ou demorada para implementar.
fonte