databases are almost everywhere where data is being stored. most likely this site is also storing all the questions, answers, user names etc in a database. other examples are all information in: bank accounts, emails, online rpg in-game information/accounts, criminal records... lot's of things are built on top of them. so it's REALLY important that they work well. they need to be able to store/retrieve/modify data (massive amounts usually).
a database is at the back-end and doesn't interact directly with users. a user typically has access through a more friendly interface, such as a website or application that connects to it (called a front-end). the front end isn't typically part of database programming.
programming a database could refer to any of the following...
design:
this is when the database is being created. not everybody wants to store the same data. the relationships between data also has to be specific for the user. usually employees have to be interviewed and information gathered. usually this can then be drawn out in a visual tool (look up Entity Relationship diagrams). such a tool can capture this and output a script that can be loaded to create a database.
queries:
these are programmed to typically make selections/deletions/updates of data. and they occur a lot in constraints and stored procedures. they can provide different views of the data (which could be needed by websites and applications at the front-end). normally databases use the language SQL for writing queries.
constraints:
invalid data has to be kept out of the database. the programming usually comes in when there are some very specific business rules. example: having the database reject "reports" when someone tries to insert one 5 days after an "incident" to which it belongs, would be a simple example. (leave it to the users to make up strange and complicated rules, they are good at it haha)
stored procedures:
these are like programs that are stored in the database and have access to all the data. these can be scripts that could run periodically, for example to create an overview of profit for a company and store it somewhere. alot of times this would be run during the night because it can be disruptive to users. or they could be run right after data is deleted to do some cleaning up (for example after the company deletes one of it's shop. then the items from that shop should be automatically deleted too or marked as in storage in the database... etc)
maintenance:
ideally, all the above is taken care of but like any software, unexpected bugs can appear and things have to be re-written/programmed. sometimes things are not fast enough for the users. in these cases it's most of the time the queries that have to be re-written in a more efficient way to speed things up. users might also ask for changes to the database because they got new business rules or because they want to store more kinds of information, which would also mean having to do some of the above again.