DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Realm


Realm Database is an open-source and cross-platform DBMS. Built from the ground in C++, it could support programming languages including Objective-C, Swift, Java and C#.[04]

Developer
Country of Origin
US
Start Year
2011 [10]
Former Name
tight.db
Project Types
Commercial, Open Source
Written in
C++
Supported Languages
C#, Java, JavaScript, Objective-C, Swift
Operating Systems
Android, iOS, Windows
License
Apache v2

Database Entry

Realm


Realm Database is an open-source and cross-platform DBMS. Built from the ground in C++, it could support programming languages including Objective-C, Swift, Java and C#.[04]

History[04]


Realm Database comes from the YCombinator LLC. which was founded by Alexander Stigsen and Bjarne Christiansen in 2011. They started the project called TightDB in the end of 2010 and renamed it to Realm in September, 2014. Realm was officially announced and open-sourced to the developers from over the world in 2016. Later in January 2017 its first stable version was released.

Checkpoints


Not Supported

Compression


Not supported

Concurrency Control[05]


In Realm, each connected thread will see a snapshot of the data at a particular point in time. Moreover, it utilizes the copy-on-write mechanism and allows only one client to modify data at a certain point.

Data Model


Foreign Keys


Not Supported

Hardware Acceleration


No Acceleration

Indexes[06]


Realm is based on B- Tree Structure

Isolation Levels[05]


No objects shared between threads, which means it's literally single-thread.

Joins


It's not relational database

Logging[07]


Realm only maintains the log for the transaction. But it doesn't support the recovery mechanism.

Query Compilation


Query Interface


Realm Database has its own custom APIs.

Storage Architecture[08]


You could configure during run-time.

Storage Model[09]


Properties would be kept contiguously linked at the vertical level.

Storage Organization[09]


Stored Procedures


System Architecture


Realm Database is not a distributed database. It's mainly for the mobile device.

Views


Realm database supports reflective views and imperative views. Essentially they are very similar to materialized views and virtual views.

Revision #5