As others have pointed out, in an interview pretty much any sort of question is fair game as long as it doesn't touch some sort of legally protected area (e.g. age, race, sex, etc) and it's not unusual to have interviewers throw questions at you just to see how you react to the question and how you would go about trying to find a solution to the question. Additionally, since it appears that you are a recent graduate, they are a bit limited in regards to being able to ask you about your work experience and what sort of problems you have solved in a production setting. Thus, if the company does a lot of database oriented work the questions they asked may also be relevant to what the position you are interviewing would be doing.
In regards to your assumptions:
a) Those questions cannot be fairly
classified as database development
questions.
Maybe, maybe not. If you are doing database development you are going to be using a query optimizer and plan from time to time to try and make sure there are no obvious issues with your queries. If the company has database administrators or experts that could review the queries they may not have the time to look at everything and they also wouldn't want to look at every poorly coded query. Likewise, it's also not unusual for developers to be responsible for maintaining their development environment, to include any databases and have the DBAs handle the production side of things.
b) I think the questions are
appropriate for a DBA interview but
wholly unreasonable for a software
developer interview (experienced or
not).
They likely would be appropriate for a DBA interview; but regardless, they are also topics that a developer should be familiar with if only at the level of being able to recognize where a problem might be and to do some basic troubleshooting themselves. Like I mentioned before, if the company has limited resources then they will want to make sure they aren't wasting peoples time with something that might be a basic issue.
c) The first question is only relevant
to a database vendor.
Specific details may be vendor specific, but the general concepts can be applied anywhere and sometimes being able to show you understand the general concepts is all you need. If you don't want to get locked into a single development stack (i.e. LAMP) then you will need to be able to show during interviews that you understand the core concepts and are comfortable moving to different development stacks.
d) The second question is not fair
because software developers typically
don't deal with database performance
logs as that is the job of the DBA.
This is generally true, but if part of your job is to write software for a given database that needs to be highly responsive then you are going to need to make sure you put forth a best effort in writing those queries so that a colleague that is an expert in a given area isn't being bogged down with poorly written queries. While you might not need to know the finer details of what the logs are telling you, you may need to be able identify obvious issues.
Hopefully all of this helps!