VelocityDB is a C# .NET NoSQL Object Database that can be Embedded/Distributed, extended as Graph Database is VelocityGraph. Using VelocityDB saves time and money for all software requiring reliable, high performance data persistence. Any .NET object can be efficiently persisted and retrieved within ACID transactional scope. The use of VelocityDB can be hidden from your application user's and doesn't require a lot of CPU usage or disk space.
Benefits of VelocityDB
The most important benefit is the flexibility that this database system provides. No other types of database system lets you fine tune your application to the finest details. Using VelocityDB, you can choose the best possible data structures for your application. You can control where you place the data persistently and how it's indexed and accessed. With VelocityDB you will have the ultimate tool for persisting data efficiently with unbeatable performance.
Unstructured Data can be managed efficiently using VelocityDB. Several of the sample applications provided with the download explore unstructured data. The triangle counter test demonstrates how efficient it is to follow association/relations. In memory, an association in VelocityDB is simply a C# object reference. It can't get any more efficient than that. The Kevin Bacon Numbers sample is another example showing how efficiently VelocityDB can handle unstructured data. A common way to manage unstructured data is to add such data to an inverted index. That way we can efficiently query such data, like if we want to know what store products that match one or more words. The entire Google search mechanism is based on an inverted index. In some of our samples we use inverted indexes, these samples include; TextIndexer and Wikipedia.
A shopping web site in prototype production uses an inverted index to help shoppers find products they are looking for, try the product search here (it is not always online). It currently manages about 30 million products from about 650 stores (~33 GB of data).
VelocityDB is extremely scalable; it can handle small applications with small amounts of persistent data as well as applications using trillions of objects up to about half a Yottabyte in size per session. Unlimited number of sessions can be used per application. Performance is fantastic, a billion Person object database is quickly created, a little over 1 hour, and can be browsed with the VelocityDbBrowser.
Why use a Database?
It depends on the situation. Maybe your application data is getting too large to hold in memory? By using a database you can limit the memory usage of your application without sacrificing performance.
You may have written your own flat file storage instead of using a database. This may have worked fine but now your application requirements are changing. There is more data and maybe multiple users who want access to the data at the same time. Conventional databases, SQL based relational databases, may not be what you need but a powerful, yet easy to use, object database can replace your in house built data storage solution. VelocityDB is fully transactional, supporting ACID properties, your application can make a GB or more of changes and it can all be undone with a simple transaction abort or if your application suddenly crashes, incomplete changes made to your data will automatically be undone by the recovery mechanism. Multiple users have access to the data from anywhere and can all make changes to the data without accidentally overwriting somebody else’s changes. VelocityDB is a good substitute for regular .NET binary serialization.
Why not SQL (NoSQL) ?
Relational databases and Standard Query Language (SQL) was invented in the 70ties, almost half a Century ago. It was good for its time but computer capabilities are about a million times improved and these days object oriented languages rule.
It's time for a replacement/complement to SQL and relational databases. We believe that object oriented and graph databases are ideal for today's complex applications using Object Oriented languages like C#, C++, Objective-C, Java, Python and Smalltalk.