Choosing an open source database management system
Firebird
Firebird [7] offers concurrency, high performance, and language support for stored procedures and triggers. Based on InterBase 6.0 source code released in 2000 from Inprise (now the Borland Software Corporation), Firebird has been used in production systems under various names since 1981.
Supporting many ANSI SQL standard features, Firebird uses Procedural SQL (PSQL) as its internal language for stored procedures. It is 100-percent ACID-compliant and uses a multi-generational architecture (similar to MVCC) to ensure OTLP and OLAP operation. It offers careful writes that result in fast recovery with no need for transaction logs. With a small footprint, Firebird requires minimal configuration.
Firebird achieves high availability through optimistic locking at the record level, which reduces wait times. It adapts to fluctuating workloads and can be replicated to safeguard against disk failure. Online backups using snapshots allow for 24/7 operation.
You can scale Firebird in any direction with growth limited to available disk storage, which can be spread across multiple hard disks. With Firebird, the database engine manages the database's on-disk structure independent of the filesystem. You can embed the engine as a standalone client application, deploy it in a 2-tier client/server LAN with support for up to 750 users, or use it in a multi-tier system with thousands of users.
Firebird offers security via user authentication at the server level, SQL privileges within the database, optional database encryption via plugins, and wire protocol encryption between client and server.
Developed by a large community of independent C/C++ programmers, technical advisors, and supporters, Firebird provides documentation on their website along with community support through mailing lists [8].
With Firebird's Initial Developer's Public License (IDPL), you can build a custom version as long as any modifications are made available under an IDPL license, which enables other users to build on and use your modifications. An InterBase Public License (IPL) covers the source code inherited from InterBase, while the IDPL license applies to any additions or improvements made by the Firebird Project to the original InterBase code. There are no fees to download, register, license, or deploy Firebird "even for commercial developers."
CUBRID
Optimized for OTLP with fast query responses, CUBRID [9] offers enterprise-grade features that support distributed transactions and multiple replication methods.
To guarantee high availability, CUBRID relies on a simple single primary/secondary configuration to provide basic failover services. For intensive read scenarios, it uses a multi primary/secondary and primary/secondary/replica configuration.
If your software or hardware fails, WAL guarantees consistency and accuracy for restoring the database and online backup. CUBRID Backup options include hot/online as well as offline and incremental backups. You can even choose the level of backup you require.
You can scale CUBRID both vertically and horizontally with no limit on database size or number of tables, indexes, and rows. Even when the amount of data or queries increases, MVCC, lock-free hashes, row level and lock escalation, promotable read-to-write page latches, and other optimizations guarantee continued performance.
For security, CUBRID uses SSL/TLS to encrypt data between the client and the server and OpenSSL for server-side encryption.
The CUBRID engine has an Apache v2 license, with a BSD license for the CUBRID APIs and GUI tools.
NoSQL DBMSs
Non-relational, or NoSQL, DBMSs began to emerge in the late 2000s in response to decreased storage costs and increased data usage in applications. A non-tabular DBMS, NoSQL offers a more flexible schema, which makes horizontal scaling easier. As a result, NoSQL DBMSs can handle larger datasets and higher user loads, as well as allow for faster queries. They can handle ad-hoc organization and analysis of high volume data of disparate data types, allowing you to query specific information when you need it.
NoSQL DBMSs differ based on purpose. The four main types are:
- Document DBMS: Documents can vary in structure (they can even be incomplete), which leads to greater flexibility. You can embed other documents within a document. A document's fields function like columns in an RDBMS, and these fields can be indexed to increase search performance.
- Key-value stores: A simpler DBMS that associates a value with a key, which is then used to identify the object.
- Wide-column DBMS: Stores data in tables, rows, and dynamic columns and can use variable column names and formats across rows. This type of DBMS is good for quickly accessing columnar data. It can also store data across multiple machines to enhance security.
- Graph DBMS: Stores data in nodes (people, places, and things) and edges (relations to nodes). A graph DBMS maintains both data and relationships between data points, where the relationship is often just – if not more – important as the data itself.
If you have data that doesn't fit into a predefined relational mode, NoSQL DBMSs are the best choice for storing and processing that data. They work well with human- or machine-generated data in a text or non-text format. A NoSQL DBMS is also the best option for horizontal scaling, especially for cases where you want your data spread out over multiple geographic locations. Examples of NoSQL DBMSs include Apache Cassandra, MongoDB, Redis, JanusGraph, and CouchDB.
Buy this article as PDF
(incl. VAT)