What do I do when I am packaging a software that needs a backend database?
The typical way this should be handled is that on installation the software should not create the necessary database; instead the creation process should be documented for the user to complete manually. So when the software is packaged, there's no problem, as there's no database operation to handle. This is how all mature, popular apps that rely on databases work. For instance, when you install Wordpress, you then go through a short 'setup' process which prompts you to manually create the necessary databases and configure Wordpress to be able to access them.
Normally, when the software is updated, on the next run it should automatically make any necessary changes to its own database (since obviously it now has the required access privileges). If there is a major update that requires changes to the database that cannot be automated, then again, these should be documented for the user to carry out, no crazy 'overwrite or no' interactive options during package install.
Your next step should be to outline this to upstream, and show examples of widely-used database apps such as Wordpress and MythTV and so on.
Is it allowed to make the RPM installation interactive?
No. You need to patch it and make sure no user interaction is needed.