Aqui outra decisão polêmica. No universo do software livre, os dois banco de dados mais conhecidos e largamente utilizados são o MySQL e o PostgreSQL. Em termos de facilidade de uso e recursos disponíveis para administração a escolha cai sobre o MySQL. Porém se considerarmos os recursos de banco de dados e padronização, escolheríamos o PostgreSQL.
A primeira proposta foi de utilizar o PostgreSQL e a justificativa tem muito fundamento. O PostgreSQL implementa recursos avançados como integridade referencial e trnsações. Ainda implementa as chamadas VIEWS o que aumenta a segurança, pois podemos implementar uma política onde o usuário tem acesso apenas às VIEWS e não diretamente às tabelas. Outro recurso interessante e que pode ser utilizado são as sub-consultas.
Mas com o surgimento da versão 4 do MySQL, dois recursos importantes foram adicionados: transações e integridade referencial. As versões atuais do MySQL incorporam as tabelas do tipo InnoDB que adicionaram estas funcionalidades ao MySQL. Com a implementação destes recursos, o MySQL passa a ser tão competente quanto o PostgreSQL e um excelente candidato a ser adotado no projeto.
Pela facilidade de uso e por ter uma API com uma documentação mais direta e de fácil implementação, a escolha foi o MySQL. Devido à forma como o sistema foi projetado está fácil de alterar o banco de dados. Basta alterar o código de algumas classes para fazer a conexáo com outro banco de dados e pronto. Não é necessário alterar as classes de mais alto nível que tratam das interfaces com o usuário ou alguma outra que usa o banco de dados.