"I am currently tripped up on which type of database to use"
Name your poison! :) You can talk to practically every database on the planet from both .NET and Ruby/RoR, including:
- Relational databases like SQL Server, DB2, Oracle, MySql, ProgreSQL, etc.
- Document-databases like MongoDB, CouchDB, RavenDB, etc.
- Other NOSQL key value stores including Cassandra, Dynamo, Riak, Redis, Memcache, Azure Table Storage, etc.
Pick one that meets your needs and go for it.
"how to allow communication between the two applications"
I am not quite sure what you mean by this, but I'll assume that you mean that at some point, after uploading its data, your app should open a web page displaying a nice graph of the data? If so, this is trivial and requires no direct integration between your .NET app and your RoR site other than your .NET app spawning an instance of a web browser, and asking it to open a given web page:
var process = new Process();
process.StartInfo.FileName = "iexplore";
process.StartInfo.Arguments = @"http:\\myreportgenerator.com?customerid=1234";
process.Start();
If you want your .NET app to be able to ask your RoR site to do specific things, then consider adding a REST web services API to your RoR site.
Go one step further and you could actually eliminate all DB code from your .NET app and just have it ask for and send data to your RoR site via REST (JSON/XML over HTTP) calls, performing all DB IO internally.