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

Database Entry

Realm


Realm is a an open-source and object-oriented DBMS, which is built for the mobile platform. It supports programming language including Objective-C, Swift, Java, Kotlin, C# and Javascript. It's built on zero-copy architecture, which could provide high speed and auto-updating results for the query.[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 is a an open-source and object-oriented DBMS, which is built for the mobile platform. It supports programming language including Objective-C, Swift, Java, Kotlin, C# and Javascript. It's built on zero-copy architecture, which could provide high speed and auto-updating results for the query.[04]

History[04]


Realm originates from the project called TightDB which was initially developed by Alexander Stigsen and Bjarne Christiansen began in the end of 2010. The first version of Realm was released in June 2016 and a platform for real-time two-way synchronization in beta version was released in 2016 September.

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 #4