Banco de dados XML - XML database
Um banco de dados XML é um sistema de software de persistência de dados que permite que os dados sejam especificados e, às vezes, armazenados em formato XML . Esses dados podem ser consultados , transformados, exportados e devolvidos a um sistema de chamada. Os bancos de dados XML são um tipo de banco de dados orientado a documentos que, por sua vez, são uma categoria de banco de dados NoSQL .
Justificativa para XML em bancos de dados
Existem vários motivos para especificar dados diretamente em XML ou outros formatos de documento, como JSON . Para XML em particular, eles incluem:
- Uma empresa pode ter muito XML em um formato padrão existente
- Os dados podem precisar ser expostos ou ingeridos como XML, portanto, usando outro formato, como modelagem dupla de forças relacionais dos dados
- XML é muito adequado para dados esparsos, dados profundamente aninhados e conteúdo misto (como texto com tags de marcação incorporadas)
- XML é legível por humanos, enquanto as tabelas relacionais requerem experiência para acessar
- Os metadados geralmente estão disponíveis como XML
- Os dados da web semântica estão disponíveis como RDF / XML
- Fornece uma solução para incompatibilidade de impedância relacional de objeto
Steve O'Connell dá uma razão para o uso de XML em bancos de dados: o uso cada vez mais comum de XML para transporte de dados , o que significa que "os dados são extraídos de bancos de dados e colocados em documentos XML e vice-versa". Pode ser mais eficiente (em termos de custos de conversão) e mais fácil armazenar os dados no formato XML. Em aplicativos baseados em conteúdo, a capacidade do banco de dados XML nativo também minimiza a necessidade de extração ou entrada de metadados para oferecer suporte à pesquisa e navegação.
Bancos de dados habilitados para XML
Os bancos de dados habilitados para XML normalmente oferecem uma ou mais das seguintes abordagens para armazenar XML dentro da estrutura relacional tradicional:
- XML é armazenado em um CLOB ( objeto grande de caracteres )
- XML é `fragmentado` em uma série de tabelas baseadas em um esquema
- XML é armazenado em um tipo de XML nativo conforme definido pelo padrão ISO 9075-14
RDBMS que suportam o tipo ISO XML são:
- IBM DB2 (pureXML)
- Microsoft SQL Server
- Banco de dados Oracle
- PostgreSQL
Normalmente, um banco de dados habilitado para XML é mais adequado quando a maioria dos dados não é XML. Para conjuntos de dados em que a maioria dos dados são XML, um banco de dados XML nativo é mais adequado.
Exemplo de consulta de tipo XML no IBM DB2 SQL
select
id, vol, xmlquery('$j/name', passing journal as "j") as name
from
journals
where
xmlexists('$j[licence="CreativeCommons"]', passing journal as "j")
Bancos de dados XML nativos
Os bancos de dados XML nativos são especialmente adaptados para trabalhar com dados XML. Como gerenciar XML como cadeias de caracteres grandes seria ineficiente e, devido à natureza hierárquica do XML, estruturas de dados otimizadas personalizadas são usadas para armazenamento e consulta. Isso geralmente aumenta o desempenho em termos de consultas somente leitura e atualizações. Nós e documentos XML são a unidade fundamental de armazenamento (lógico), assim como um banco de dados relacional tem campos e linhas.
O padrão para consultar dados XML por recomendação W3C é XQuery ; a versão mais recente é XQuery 3.1. XQuery inclui XPath como uma sublinguagem e o próprio XML é uma sub-sintaxe válida de XQuery. Além do XPath, alguns bancos de dados XML suportam XSLT como um método de transformação de documentos ou resultados de consultas recuperados do banco de dados.
Características da linguagem
Nome | Licença | Língua materna | XQuery 3.1 | XQuery 3.0 | XQuery 1.0 | Atualização XQuery | Texto Completo XQuery | Extensões EXPath | Extensões EXQuery | XSLT 2.0 | XForms 1.1 | XProc 1.0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
BaseX | BSD | Java | sim | sim | sim | sim | sim | sim | sim | sim | sim | Não |
existir | GNU LGPL | Java | Parcial | Parcial | sim | Proprietário | Proprietário | sim | sim | sim | sim | sim |
Servidor MarkLogic | Comercial | C ++ | Não | Parcial | sim | Proprietário | Proprietário | Não | Não | sim | sim | Não |
OpenText xDB | Comercial | Java | Parcial | Parcial | sim | sim | sim | Não | Não | Não | Não | Não |
Oracle Berkeley DB XML | Comercial | |||||||||||
Qizx | Comercial | Java | Não | Não | sim | sim | sim | Não | Não | sim | Não | Não |
Sedna | Licença Apache 2.0 |
APIs com suporte
Nome | XQJ | XML: DB | Repousante | RESTXQ | WebDAV |
---|---|---|---|---|---|
BaseX | sim | sim | sim | sim | sim |
existir | sim | sim | sim | sim | sim |
Servidor MarkLogic | sim | Não | sim | sim | sim |
Qizx | Não | Não | sim | Não | Não |
Sedna | sim | sim | Não | Não | Não |
Conjuntos de dados XML centrados em dados
Para conjuntos de dados XML centrados em dados, o método de pesquisa de palavra-chave exclusivo e distinto, ou seja, XDMA para bancos de dados XML é projetado e desenvolvido com base em indexação dupla e soma mútua.
Referências
links externos
- Classificação de DBMS XML nativo por popularidade, atualizado mensalmente, de DB-Engines
- Bancos de dados XML - O caso de negócios, Charles Foster, junho de 2008 - fala sobre o estado atual dos bancos de dados e persistência de dados, como o modelo de banco de dados relacional atual está começando a quebrar nas costuras e dá uma visão sobre uma forte alternativa para os requisitos de hoje.
- Um banco de dados baseado em XML de caminhos moleculares (2005-06-02) Comparações de velocidade / desempenho de eXist, X-Hive, Sedna e Qizx / open
- XML Native Database Systems: Review of Sedna, Ozone, NeoCoreXMS 2006
- Armazenamento de dados XML: práticas emergentes
- Bhargava, P .; Rajamani, H .; Thaker, S .; Agarwal, A. (2005) XML Enabled Relational Databases , Texas, The University of Texas at Austin.
- Iniciativa para bancos de dados XML
- XML e bancos de dados, Ronald Bourret, setembro de 2005
- The State of Native XML Databases, Elliotte Rusty Harold, 13 de agosto de 2007