Relational VS Object Database

June 29, 2019

1      Introduction

VelocityDB is a NoSQL object database. Microsoft SQL Server is a relational database.

2      Feature Comparison

In table below, support for a feature is one of: J (great) K (ok) L (bad).

Feature

VelocityDB

SQL Server

Acid Transactional

J

J

Android

J

L

Any CPU (32bit/64bit)

J

L

Array support

J

L

Auto Increment on a field

J

J

Backup & Restore

K

J

Change event subscription & notification

J

J

Choice of data structure to use

J

L

Compression of data

J

K

Data Fragmentation

J

L

Data Integrity options

K

J

Database level locking

J

J

Distribution ability

J

L

Embed ability

J

L

Encryption of data

J

J

Enum support

J

K

High levels of concurrent updates

K

K

High Performance

J

L

Indexes

J

J

In-Memory Only Option

J

K

iOS

J

L

LINQpad

J

J

Linux

J

K

No object relational mapping required

J

L

Object/Row level locking

K

J

Optimistic Concurrency Support

J

K

OS X (Mac)

K

L

Page level locking

J

J

Page level versioning

J

L

Pure C#, no other language required

J

L

Required Database Administration

J

L

Scalability

J

K

Small footprint

J

L

Store graphs of connected objects

J

K

Universal Windows

J

L

Variable page size

J

L


 

3      Pros and Cons

In table below, pros are highlighted yellow and cons are highlighted turquoise

VelocityDB Pros/Cons

SQL Server Pros/Cons

Capable of unbeatable performance and scalability

Simple applications perform well but as data model gets more complex and data size grows performance suffer

Use class inheritance, polymorphism and composition

Hard to mimic all object oriented features 

Limited testing

Very well tested

Not very many have used

Many know how to use

Use any data structure

Limited to table data structure

Standardized Object identifier

Each table defines a primary key

No mapping required

An object relational mapping tool such as EntityFramework or Dapper is required

Field can store multiple values

Limited to single value in each cell

Integrated Client Caching Facility

Client caching has to be done with separate tool(s)

No Database Administration Required

Database Maintenance/Administration Required

No empty space on pages and fragmentation avoided by using variable page size

Database tables and indexes are usually fragmented with empty/unused space on pages.

Good for supporting storage of binary data such as video & audio

Although BLOB storage is supported, data is more difficult to work with and not easy to segment

Low Licensing Costs

High Licensing Costs

22,409 lines of C# code

More than 1 million lines of C++/C code