Scenario 1. Existent DB as part of (my) Rails project, already in prod
You have three options (in my opinion):
Mount the Sinatra app via Rack along with the Rails app (in the config.ru), and then it will be able to access the same code as the Rails app.
Make the database code into its own library, put it in a gem, get both apps to require the gem.
Wrap the existing DB in a data API, one that serves no pages, only data (this may be what you're trying to do with Sinatra anyway). Take the direct access to the database away from the Rails app and get it to make calls to the new API just like any other client.
I believe option 2 is better than option 1, and option 3 is better than option 2. If I was going to move to option 3, then I'd probably do 1 first, then 2, then 3, as each can use the previous option to make it easier.
Scenario 2. Existent DB developed by someone else
I'm not certain I fully understand, but yes, you'd have to re-write validations. A well designed database will mean that some validations should already exist in the form of constraints, but not always.