Honestly without a significant amount of detail regarding your current database, how you're going to use CiviCRM, what kind of site it is being connected to, etc, no one can give you anything but a huge range - I've seen it done for as cheap as $3,000 and as high as $30,000.
Some things to consider:
How clean is your data? Is there going to be a significant amount of data cleaning needing to be done by the person who works on your Civi install? I've done some where folks did not follow any sort of best practices with their data and you had state abbreviations mixed with state names, email addresses in phone fields, etc.
What is your list of fields needed? If a field is something other than a textfield, what are the options? Is it a single choice or multiple choice? Is it required?
What are you going to use CiviCRM for? What are you going to be doing with it? Membership? Donations? Paid events? Free event? Etc. You need a good list of how you as an organization plan to interact with Civi.
How is the public going to interact with it? What actions will they be able to take?
What kind of site is it going to be attached to (Drupal, Wordpress, etc)? Is it built already or will the developer need to do that as well?
Look - do you have an idea how you want your public facing Civi pages to look?
Your timescale is really going to depend on what all needs to be done, how responsive you guys can be regarding feedback, and the like.
Resources - obviously your database. There would need to be a development area to work on that isn't your live site. Most developers have their own if you don't have one available. That will allow the site to be worked on and developed, but blocked from view from the public. I've only ever used a Linux server for Civi setups. And they can quickly use up a lot of space because of the size of the database as well as a good amount of memory. As such, regular shared hosting is not recommended. There are hosts, though, who have configured a dedicated server specifically for Civi and then divide it into "shared" hosting. That gives you more resources than the typical shared hosting account.
Hopefully this at least gives you some idea of what to consider and look for. Please let me know if you have any questions. :)