- August 21, 2018
- Posted by: admin
- Category: Blog
In our previous article in the Open Source Tech Series we talked about what are the 5 factors you need to consider when choosing Open Source Databases. This post helps you to be sure you are taking the right decision when it comes to selecting from a wide range of Open Source Databases.
Databases are stored in a disciplined manner so that data retrieval becomes easy. The process of managing and controlling the data is easier when it is stored in a database.
Databases play a pivotal role if you have large number of users/developers working on building the next application. It is really difficult and time consuming for a database to operate if it has vast amount of data or variety of data-sets. Or even large number of users accessing it. This can have an impact on the performance of the database.
There are several factors to be taken care while choosing the correct database. Factors like data security, expenses(if any) associated with the database, impact the choice of your database. A free database helps users to cut down costs. Hence, open source databases have been playing an important role in many of the widely used software applications.
Different types of databases available to choose from
In today’s scenario, Relational databases are the most common among the types. In this type of databases, data is actually stored in the form of different data tables. Each of the tables has a unique key field which is used to connect one table to the other tables. Hence, different tables are related to each other with the help of various key fields.If you see,the most common industries which use this type of database are Media and Telecom.
Sometimes companies have a requirement where they need to save relevant data for many years for their future requirement. This relevant data-sets can actually be used to compare the present years data with the previous years information to analyze key trends. The previous years data is maintained and stored in large database warehouses.Since the stored data-set already has passed through different kinds of editing, screening and integration, so it no longer requires any further editing and alteration.
Most of the organisations have branch offices, regional offices, manufacturing plants and corporate/ Head offices. Each of these offices maintained their own set of databases which collectively from the main database of the company. This type of databases are called as distributed databases.
An operational database is used by various organisations as it supports the customer database as well as the inventory database. It helps companies to take a note of inventories as well as store details of the customers buying their products. The data accumulated in various operational databases can be examined,inspected as per company requirements.
End User databases:
There is a variety of data available at the workstations of different end users of an organisation. Each workstation acts like a small database in itself, and has data in the form of spreadsheets, presentations, downloaded files, word files and in Notepad format. All such small databases together form an end user database.
Now let’s have a look at some of the popular open source databases available in the market.
MySQL was introduced in 1995 as an open-source project and now it is currently owned by Oracle. It is also available as a paid edition with some additional features like cluster geo-replication and automatic scaling. In today’s scenario most of the companies use MySQL, as it can be easily installed in all the operating system and the coded in C and C++.This database option is great for different international users as well, since the server can provide various error messages to the clients in a variety of languages.
- MySQL gives flexible privilege and password system
- It can be used even if there is no available network
- Comes with security encryption for all the password traffic
- It uses host based verification
- Consists of different libraries that can be embedded into various standalone applications
- It supports servers as a separate program for the client server networked environment
- Some of the users feel that MySQL is no longer falling in the Open Source category
- Since MySQL is no longer community driven it is difficult to get bugs, patches, fixes in time
- It lags behind others due to its slow updates
PostgreSQL, often simply called as Postgres, is an object-relational database management system with an emphasis on extensibility and standards compliance. It can handle workloads ranging from small single-machine applications to large Internet-facing applications. As a database server, its important functions are to securely store data and return the data or data sets in response to different requests made from other software applications. PostgreSQL is the default database and it is also available for Microsoft windows and Linux (supplied in most distributions). PostgreSQL is developed by Global Development Group and it is available as free in open source software.
- Postgres is transactional and ACID(atomicity,consistency,isolation,durability)- compliant
- It supports both updatable as well as materialized views
- Postgres can make use of various functions like stored procedures,triggers etc
- It also supports concurrency system called MVCC(Multi Version Concurrency Control)
- Supports a large variety of data types like Boolean, binary, etc
- It comes with 3 tires of transaction isolation which are: Read committed, repeatable read and Serialisable
- The tracker system is incapable of handling bug tracking
MongoDB was developed in 2007 and is well-known as the ‘database for giant ideas.’ It was developed by the people behind ShopWiki, DoubleClick, and Gilt Group. It is also backed by a large group of popular investors such as The Goldman Sachs Group Inc., Fidelity Investments, and Intel Capital. Since its inception, MongoDB has been downloaded over 15 million times and is supported by more than 1,000 partners. All its partners are dedicated to keeping this free and open source solution’s code and database simple and natural.
- MongoDB has an encrypted storage engine
- It enables validation of documents
- Common use cases are mobile apps, catalogs, etc
- MongoDB has real-time apps with an in-memory storage engine (beta)
- It reduces the time between primary failure and recovery
- MongoDB doesn’t fit in applications which needs complex transactions
- It’s not a drop-in replacement for different legacy applications
- MongoDB is a pretty young solution — its software changes and evolves quickly
This database has been developed by original developers who worked as a part of MySQL. MariaDB is used by biggies like DBS Bank, Google, Mozilla and the Wikipedia. This database server actually provides drop-in replacement functionality for MySQL. Data security is one of the most important factor for the developers of MariaDB and almost in each of its solution releases the developers merge in all of MySQL’s security patches and also enhance the same, if required.
- MariaDB gives real time access to the data sets
- It supports the maximum no of core functionalities of MySQL and also supports high scalability with easier integration with other databases
- MariaDB provides a couple of alternate storage engines and server optimizations
- MariaDB does not support memcached interface
- It does not have password complexity plugin
- Maria DB has no optimizer trace
SQLite is supposedly one of the most widely deployed databases in the world. It was developed in 2000 and, since then, it has been used by companies like Facebook, Apple, Microsoft and Google. Each of its releases is carefully tested in order to ensure reliability. Even though there are any bugs, the developers of SQLite are quite honest about the potential shortcomings by providing bug lists and the chronologies of different code changes for every release.
- SQLite has no separate server process
- The file format used is cross-platform
- It has a very compact library, which runs faster even with more memory
- All the transactions are ACID compliant
- Professional support is also available for this database
It’s not recommended for:
- Different client/server applications
All high-volume websites
- High concurrency
- Large data-sets