Como desenvolvedor de software, trabalhei em projetos que variam de pequenos aplicativos caseiros a aplicativos corporativos de tamanho médio. Em quase todos os projetos, usei um banco de dados ou me arrependi de ter escolhido não usá-lo desde o início.
Agora, estou pensando em algumas coisas sobre os bancos de dados e seu uso em aplicativos gerais:
- Por que o próprio Windows não usa nenhum banco de dados SQL "central"? Por exemplo:
- Os dados do Relatório de erros são armazenados em vários arquivos,
- O Windows Update armazena tudo em arquivos simples,
- O cache de ícones é armazenado em um único arquivo muito estranho que não parece ser acessado através do SQL, etc.
- Por que tantos aplicativos grandes evitam o uso de bancos de dados? Por exemplo, o Microsoft Outlook não obteria ganho usando um banco de dados real em vez de reinventar a roda, tendo seu próprio formato para arquivos .pst e armazenando alguns dados no registro?
Se o banco de dados adicionar uma camada adicional de complexidade geral e uma pequena perda de desempenho, é um preço de uma enorme vantagem de tornar o código mais simples na maioria das circunstâncias, especialmente quando se trata de armazenamento de pequenos pedaços de dados organizados em vez de grandes binários córregos. Então, por que tão poucos produtos estão realmente usando bancos de dados? Provavelmente, o único aplicativo que conheço que realmente usa o banco de dados Sqlite é o Firefox e talvez o Microsoft Exchange (mas o último não é um aplicativo de desktop)?
Além disso, um conjunto de aplicativos, como o Microsoft Office ou o Microsoft Expression, não se beneficiaria de ter um banco de dados SQL unificado , facilitando a implantação dos aplicativos, a atualização / atualização dos dados, o compartilhamento de dados entre esses aplicativos e a realização de backups etc.?