An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion , which will decide whether or not to retain it. |
This article is written like a manual or guide.(March 2024) |
Developer(s) | SurrealDB |
---|---|
Initial release | December 8, 2019 |
Stable release | v1.5.0 / May 14, 2024 |
Repository | github |
Written in | Rust |
License | Business Source License, Apache License after 4 years |
Website | surrealdb |
SurrealDB is an NewSQL [1] open-sourced multi-model database [2] [3] and database-as-a-service platform. [4] The platform is designed to offer a structured yet flexible way of storing and querying data, aiming to simplify the app development process by minimizing the need for building backend APIs and database layers. [5] [6] [7]
The database is written in Rust, [8] with SDKs supporting languages such as JavaScript, Python, .NET, and others. [9] The database supports a number of modalities, including graph, relational, document and vector database features.
SurrealDB was started by brothers Tobie Morgan Hitchcock and Jaime Morgan Hitchcock in 2016. The first functional prototype version of SurrealDB was completed in 2017 and written in Go (programming language) [3] , but released the first alpha version in December 8, 2019. [10] The company [ clarification needed ] started work on a new version of SurrealDB written entirely in Rust from scratch in 2021 [3] . In November 2022 the company closed a $6 million seed round led by FirstMark. [4] [11] The company is based out of London. [12] Version 1.0 of the database was released in September 2023. [13]
The company's managed database service was in beta as of early 2023, with plans for a commercial launch in 2024.
SurrealDB is a multi-model database that aims to address the requirements of contemporary application development. It provides a range of features intended to offer flexibility and functionality, positioning it as a potential option for developers seeking adaptable database solutions. [9] [7]
SurrealDB offers various configurations for its architecture.
NONE
or NULL
.SurrealDB has a number of differences from typical SQL databases [3]
SurrealKV, set for inclusion in SurrealDB's 1.X release, is being developed as a native Rust-based key–value storage engine for both single-node and distributed systems. It aims to enable multiple concurrent writers and readers, with a focus on immutable data querying, versioned queries, data change auditing, and historic analysis. The distributed version will additionally offer scalability to handle terabytes of data and enhanced fault tolerance for enterprise-level applications. [15]
Surrealist is the official database management graphical user interface for SurrealDB.
On April 23, 2024, SurrealDB announced that they hired the creator of the unofficial open sourced graphical database management application, Surrealist. The company announced a major 2.0 update to Surrealist coinciding with this event, making Surrealist an official database management graphical interface for SurrealDB. [16]
PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.
In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.
Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group and resolving any conflicts that might arise between concurrent changes made by different members.
A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.
Navicat is a series of graphical database management and development software produced by CyberTech Ltd. for MySQL, MariaDB, Redis, MongoDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.
A document-oriented database, or document store, is a computer program and data storage system designed for storing, retrieving and managing document-oriented information, also known as semi-structured data.
A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the graph. The graph relates the data items in the store to a collection of nodes and edges, the edges representing the relationships between the nodes. The relationships allow data in the store to be linked together directly and, in many cases, retrieved with one operation. Graph databases hold the relationships between data as a priority. Querying relationships is fast because they are perpetually stored in the database. Relationships can be intuitively visualized using graph databases, making them useful for heavily inter-connected data.
Redis is a source-available, in-memory storage, used as a distributed, in-memory key–value database, cache and message broker, with optional durability. Because it holds all data in memory and because of its design, Redis offers low-latency reads and writes, making it particularly suitable for use cases that require a cache. Redis is the most popular NoSQL database, and one of the most popular databases overall. Redis is used in companies like Twitter, Airbnb, Tinder, Yahoo, Adobe, Hulu, Amazon and OpenAI.
Neo4j is a graph database management system (GDBMS) developed by Neo4j, Inc.
Sones GraphDB was a graph database developed by the German company sones GmbH, available from 2010 to 2012. Its last version was released in May 2011. sones GmbH, which was based in Erfurt and Leipzig, was declared bankrupt on January 1, 2012.
OrientDB is an open source NoSQL database management system written in Java. It is a Multi-model database, supporting graph, document and object models, the relationships are managed as in graph databases with direct connections between records. It supports schema-less, schema-full and schema-mixed modes. It has a strong security profiling system based on users and roles and supports querying with Gremlin along with SQL extended for graph traversal. OrientDB uses several indexing mechanisms based on B-tree and Extendible hashing, the last one is known as "hash index". Each record has Surrogate key which indicates the position of the record on disk. Links between records (edges) are stored either as the record's position stored directly inside of the referrer or as B-tree of record positions, that serves as a container of RIDs, which allows fast traversal of one-to-many relationships and fast addition/removal of new links. OrientDB is the 6th most popular graph database according to the DB-Engines graph database ranking, as of January 2024.
Backend as a service (BaaS), sometimes also referred to as mobile backend as a service (MBaaS), is a service for providing web app and mobile app developers with a way to easily build a backend to their frontend applications. Features available include user management, push notifications, and integration with social networking services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs). BaaS is a relatively recent development in cloud computing, with most BaaS startups dating from 2011 or later. Some of the most popular service providers are AWS Amplify and Firebase.
QAL is an open-source development project that aims to create a collection of libraries for mixing, moving, merging, substituting and transforming data; also in some cases, such as MongoDB, schemas.
Amazon Aurora is a proprietary relational database offered as a service by Amazon Web Services (AWS) since October 2014. Aurora is available as part of the Amazon Relational Database Service (RDS).
ArangoDB is a graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models with one database core and a unified query language AQL. AQL is mainly a declarative language and allows the combination of different data access patterns in a single query.
Serverless computing is a cloud computing execution model in which the cloud provider allocates machine resources on demand, taking care of the servers on behalf of their customers. "Serverless" is a misnomer in the sense that servers are still used by cloud service providers to execute code for developers. However, developers of serverless applications are not concerned with capacity planning, configuration, management, maintenance, fault tolerance, or scaling of containers, VMs, or physical servers. When an app is not in use, there are no computing resources allocated to the app. Pricing is based on the actual amount of resources consumed by an application. It can be a form of utility computing.
Grafana is a multi-platform open source analytics and interactive visualization web application. It can produce charts, graphs, and alerts for the web when connected to supported data sources.
GQL is a standard graph query language published by ISO in April 2024.
An Ordered Key-Value Store (OKVS) is a type of data storage paradigm that can support multi-model database. An OKVS is an ordered mapping of bytes to bytes. It is a more powerful paradigm than Key-Value Store because OKVS allow to build higher level abstractions without the need to do full scans. An OKVS will keep the key-value pairs sorted by the key lexicographic order. OKVS systems provides different set of features and performance trade-offs. Most of them are shipped as a library without network interfaces, in order to be embedded in another process. Most OKVS support ACID guarantees. Some OKVS are distributed databases. Ordered Key-Value Store found their way into many modern database systems including NewSQL database systems.
RavenDB is an open-source document-oriented database written in C#, developed by Hibernating Rhinos Ltd. It is cross-platform, supported on Windows, Linux, and Mac OS. RavenDB stores data as JSON documents and can be deployed in distributed clusters with master-master replication.