World’s Fastest most Scalable & Flexible Database

VelocityDB is a C# .NET NoSQL Object Database that can be Embedded/Distributed, extended as Graph Database is VelocityGraph.

Slide background

VelocityDB

presents

version

Faster Database

with the latest technologies and no dependencies

More Scalable Database

with encryption and LZ4 compression

More options

with a GUI Database Manager

Cross Platform

Windows 10 PC & Phone, Xbox,

Xamarin iOS, Android and Linux

Import & Export

to/from csv files and JSON

Orders of Magnitude
faster
than SQL and other NoSQL
Image layer

Time (s) to discover 285730264 triangles by combining 86,220,856 tuples

Image layer
More compact data
than SQL and other NoSQL

Database Size (MB)

Image layer

Welcome to VelocityDB Video

by

Oliwia Persson

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.

What is OODB?

An object database allows software developers to develop application data models, store them as objects, and replicate or modify existing objects to make new objects within the object database system. The database is integrated with the programming language, allowing the developer to maintain consistency within one environment, since both the database system and the programming language will use the same model of representation.

Among other benefits, this architecture eliminates the need for a cumbersome mapping layer between the database model and the application data model.

In order to be fully productive with an object oriented database, you need to purge your relational database thinking and think object oriented, a good book about this is "Object Thinking".

Object vs Relational

A relational database stores all data in tables on a server. Clients talk to such servers using SQL statements such as "select * from actors". Data is also created and updated using SQL. VelocityDB is not a relational database (but it is very good at managing relations!), with VelocityDB C# objects are stored as objects with all references/relations between the objects. Using VelocityDB persistent C# objects is very similar to using in memory C# objects. Data is created by creating C# objects; updates are accomplished by updating C# objects. The persistent store is safely done using transactions with locking protection so that one user can't accidently undo other user's changes. Like most database systems, VelocityDB uses paging but unlike other systems VelocityDB data pages have variable size and can optionally be encrypted and compressed. VelocityDB persistent objects have an object identifier (Oid) consisting a DatabaseNumber-PageNumber-SlotNumber.

A detailed comparison between VelocityDB and a relational database can be found here as a pdf doc, as html here or original Word document here. This is a document under construction. Help us if you can.

Signs you need a Graph Database

1. Application is like a “spider web” of connections between objects

If that is what you see when you examine your application data model then a property graph database will be a great choice since it is intended for this type of applications with lots of connections (in graph terms called edges).

2. Applications requires search through a network of connections

Maybe your application is trying to discover how people are connected to each other via different types of connections like: family relationships, email exchanges, address, phone calls, organization, race, religion, friendship and so on. You can represent all these relationships as edges between vertices (nodes) in a graph and apply search/traverse through the connections to find out how people are connected.

3. Application is using nested SQL joins and is slow

Performance of a graph database does not suffer the cost associated with nested SQL joins. Following relationships can be done without an equivalent of a join, it is instead done by direct lookups or a lookup within a smaller indexed collection/array. A typical relational database does not directly support arrays/collections, each such lookup must be done using a join involving a search of all objects within a table which is slower than a direct traverse within a graph/object database.

 

PowerPoint presentation of VelocityGraph online here or download it. Feel free to reuse parts of it for your own presentations!

Anyone considering using Cassandra as database should read this great article about Behance at Adobe. It's showing the great advantages of a graph database like VelocityGraph over Cassandra.

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

System Requirements

To use VelocityDB you need to have Visual Studio 2010/2012/2013/2015/2017 C# (using .NET 4.5 or above and a Windows 10 PC (other Windows versions OK if recent). Other .NET languages may also be used. SharpDevelop is a free light weight alternative to Visual Studio. Some versions of Visual Studio are also free.  MacOS and Linux platforms are available by using the cross platform, open source .NET development framework mono or Xamarin. New cross platform .NET IDE for 2017 is Jet Brains rider.

Usage Choices

Use VelocityDB standalone (embedded like sqlite) on a single PC or use unlimited distributed clients with unlimited distributed servers.

Standalone version can do almost everything that the client + server(s) version can do. See the feature table comparison for the differences.

Not using .NET?, deploy to C++/Java or whatever language you want

First define your data model using .NET then we can provide a deployment tool to other object oriented languages such as C++ or Java. Even deploy to multiple languages for concurrent usage. We can build this feature on request for a fee.

VelocityDB in Azure ServiceFabric

Windows Azure Service Fabric with remoting is a new cool way you can use to access VelocityDB database data. If you are interested in how to set it up, let us know and we'll help!

Our download solution contains a project for a beginning for  a REST interface to VelocityDB. This will enable database access from any web application, REST is implemented as a web api where you can use any http browser to access and update VelocityDB databases. We offer consulting services at a reasonable cost. Contact Mats@VelocityDB.com, if you are interested. We can help you develop your VelocityDB/VelocityGraph applications. Hadoop is popular right now so we might adapt VelocityDB to become a HDFS replacement like Cassandra is. We can build these features or any other on request for a fee.