Estrutura da base de dados em XML

Uma das práticas mais importantes no desenvolvimento de software é identificar oportunidades para a reutilização da informação. Onde houver redundância, haverá aí uma oportunidade para reutilização. E reutilizando uma informação diminuímos o acoplamento entre dois ou mais pontos do software, por sua vez tornando-os mais independentes e assim fazendo com que sua manutenção seja mais fácil e menos crítica.

A estrutura da base de dados de sua aplicação é uma séria candidata à “informação redundante” do software. Existem vários lugares onde temos referências mesmo que implícitas aos metadados de suas tabelas, colunas, restrições e outros objetos da base. Por exemplo: scripts de criação e atualização da base, diagramas entidade-relacionamento, dicionário de dados, casos de testes unitários, componentes que fazem o mapeamento objeto-relacional, consultas SELECT, etc.

Neste post quero apresentar uma maneira de diminuir o acoplamento entre estes artefatos de software através do armazenamento da estrutura da base de dados em um arquivo XML.

Um arquivo XML possui vantagens interessantes, e muito sedutoras quando aplicadas para armazenar uma estrutura de base de dados. Vejamos.

É um arquivo texto

Um arquivo texto pode ser usado nos sistemas de controle de versão em ferramentas como diff para visualização das diferenças entre versões do arquivo. Ver as diferenças entre versões de uma base de dados é extremamente importante e poupa muito trabalho na hora de liberar uma versão de software.

Esquemas XSD

Sua estrutura de tags pode ser restringida por um esquema XSD, e assim podemos definir exatamente como uma tag XML irá se comportar. A relação XML / XSD pode ser pensada como a relação classe / instância, onde o esquema XSD defina como a instância XML irá se comportar. No caso de uma base de dados sua estrutura é muito bem definida e por isso se adequa perfeitamente a um esquema XSD (que disponibilizarei para download assim que puder).

Conversão via XSLT

Um arquivo XML pode ser convertido automaticamente em outro arquivo texto através de uma transformação XSLT. Um XSLT é para o XML o mesmo que CSS é para HTML: um modo de visualizar (stylesheet) a informação armazenada no HTML (se você não tem idéia do que esta sopa de letrinhas se trata sugiro uma visita ao site da W3Schools. Lá tem inúmeros tutorias para cada uma destas siglas). Aqui é que se encontra o ponto central deste post: através de transformações XSLT podemos gerar todos os artefatos que derivam do XML da estrutura da base de dados.

Assim teríamos algo parecido com a figura abaixo, onde cada artefato é gerado por seu arquivo XSLT específico, todos derivando do XML que contém a estrutura, que por sua vez é restringido por um esquema XSD.

Figura Ilustrativa Xml Metadata

Vale observar que apesar dos formatos DOC, PDF e JPG não serem gerados automaticamente por uma transformação XSL, eles podem ser derivados de uma.

No futuro pretendo mostrar um exemplo de como realizei isto no meu projeto.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s