Já usei para algumas soluções o DB4O. Considero uma solução muito boa. Existem cuidados a serem tomados como o tratamento de integridade referencial (na mão), entre outras coisas.
No caso do DB4O, você precisa implementar triggers que façam esse trabalho para você. Você pai precisar realizar uma leitura no banco para identificar qual atitude será realizada.