I'd like to develop a small Facebook game with some graphics involved (not that many). Within that game, the users will be able to buy/sell certain items and I wonder WHERE I can save those items/virtual money...? Does Facebook offer me a database I can use?
Depending on what sort of game you are trying to make, you will need some place to put the actual game.
A Facebook App points to external websites for the canvas part of the application. This is your own webserver/webhotel and what ever language your webserver uses ought to provide you with some database connectivity.
So if you eg. use PHP on the server, MySQL might be the datasstorage. If you have a IIS/ASP/ASP.net server available, SQL-Express could be your answer. But with most server-side languages you can also remotely connect through IP to another database server somewhere else.
You can also use API's to connect to webservices that allows you to put/get data from their storage. Some are SQL, some are Table and some are XML based, but if you have basic CRUDL functionality at them, you dont have to care about how they do it.
Amazon AWS has something called SimpleDB which is a XML kinda storage. It has a great API too, but again, it all depends on your needs, economics and technical skills for implementing this.
If you use Flash for a client, then you have the issue of how to communicate with a server to get the data in and out from the client. For this you also need the server-side "something" that can serve your data as needed and receive "POST" data from the Flash-client.
So once you have a server, you know where you can put your data.
To my knowledge, Facebook does currently NOT support native data-storage, but perhaps others can elaborate on this subject.
You need to provide your own server for hosting your database. Google App Engine is free to start using but kind of tricky because the database is Google's Big Table rather than SQL.
So the option I recommend is Kodingen: http://kodingen.com/