I wish to store some additional data for every contact on Android.
I'd are thinking about creating my very own database table for this, after which bind these to the actual contact using a unique id.

I'm wondering if Android has built-in functionality to keep additional data against contacts?

It is possible to defined area for birthday from the contact? How do you store to start dating ? area?

Where's ContactsContract.Data class declares Content URI to keep additional contact details ( phones, emails and IM statuses for instance are implemented in similar ways) Have a look at ContactsContract.CommonDataKinds for a good example of implementation.
Essentially you have CONTACT_ID,MIME_TYPE and data posts to keep data you would like