Today we are going to make a comprehensive look into all databases which are most popular today and we try to look out which is a best fit to modern applications scenario.
Let's begin with defining the term database, it refers to the actual collection of information (i.e. data). In other words, a database is a set of data that is organized and accessed through a Database Management System (DBMS).
Often it’s a Relational Database Management System (RDBMS) like Oracle, PostgreSQL, MySQL, Microsoft SQL Server, DB2, Access, SQLite etc. Data is stored in schema tables, and tuples can be exracted through SQL (Structured Query Language).
In the span of a modern web technlogies NoSQL is a new superset holding dynamic schemas, most famous like Cassandra, MongoDB, CouchDB etc.
Other are a key-value store engine, like Redis etc. Informix is an object-oriented database which didn't gain much popularity.
A graph database stores data as nodes and relationships/edges, a tree like architecture with deep traversal. Examples are including Neo4j, Seasame, AllegroGraph, RDF etc.
RethinkDB is new and Open-source, it is distributed database. Data is stored in JSON documents and it is easily scalable to multiple machines.
Today we are going to discuss top 5 popular databases for Web Deveoplers in 2017.
It is an open-source and supported by large community. It has several forks like Drizzle and MariaDB. Originally created by MySQL AB, acquired by Sun Microsystems and now it is in Oracle hands.
Most popular with LAMP stack Linux, Apache, MySQL and PHP. Although it can be used with Mac and Windows. MySQL Workbench is a nice GUI tool available to design and work with database tables. It is intuitive & administrators can easily manage and connect to Database Server, using query window we can modify and run scripts easily. It is having help documentation online and many tutorials, blogs and articles.
For DotNet MySQL has connector mysql-connector-odbc-5.3.4 for windows which provides nice compatibility with Asp.Net and EntityFramework. The most popular database solution for web applications is MySQL. It suits the needs of most small to medium traffic sites.
- Open Source and Free
- Huge community for development and updates
- Support for partitioning and replication
- As well as support for Xpath and full text search.
- And support for stored procedures, triggers and views
- It is too limited.
- Its SQL dialect is peculiar.
2. MS SQL Server
This is Microsoft’s flagship Database product. It is a Relational Database Management System good to start learning Sql and T-SQL is a variant. It has nice Graphical User Interface and provides query editor window, administrator tasks and backup functionality. If we are using DotNet Technologies we are using Microsoft SQL Server. It has local Sql Express version installed with Microsoft DotNet.
It has editions - Standard, Enterprise, Proffessional and Express Edition. Microsoft offers deep discounts to education sectors including public schools, universities, and public agencies in education, which helped SQLServer gain user base significantly.
It has many Database versions SQL Server 2005/ 2008/ 2012/ 2014 and Azure Databases are used for cloud computing. It is best in real time databases and memory management.
- T-SQL for querying database tables
- GUI based interface
- Administrators tasks
- SSMS/ SSIS package
- Sql Express Edition
- Support for stored procedures, functions, triggers and views
- MSDN documentation and online articles
It is not a traditional RDBMS, it is server-less SQL database engine and is self-contained. Complete database is stored in a single disk file. SQLite began in 2000 and it is being widely used today by many companies. With the help of OS/filesystem locking it provides the same ACID features as other RDBMS & also provides API with SQL dialect. For backup SQLite Backup utility is available. Libraries are available for languages like: DotNet and Pearl.
- Zero configuration & no setup required.
- Complete database is stored in a single file disk.
- It has Compact library & runs faster.
- Support ACID Transactions like other RDBMS.
- It is cross platform.
- Work on almost all Operating System including Unix (Linux and Mac OS X), OS/2, Windows.
- WinCE is supported out-of-the box.
- Data can be in several TB's.
- Do not support Client/Server Architecture
- Large Volume and high concurrency problem
It is the most popular NoSQL DB, MongoDB was founded in 2007. Developed by the people behind DoubleClick, ShopWiki, and Gilt Groupe. It is free and Open Source solution. Used with a wide range of programming languages like Scala, Groovy, Clojure and Java.
Most popular as MEAN stack (MongoDB, Express, AngularJS, NodeJS).
NodeJS and MongoDB are highly scalable that makes it perfect platform for websites having high traffic.
MongoDB is not relational, it uses Json like structure to store data as it supports dynamic schemas. Best possible use is in mobile apps, product catalog and CMS.
- Fortifies Linux, OSX and Windows, but the DB size is circumscribed to 2.5 GB on 32bit systems
- Best for dynamic queries and for defining indexes
- Not a replacement for Legacy applications
- Still new and evolving
It is open-source, in-recollection & has a key-value store implementation. It is top in Key-value store paradigm just like others Berkeley DB and memcached, it supports many languages including C, C++, C#, Clojure, Objective-C, Pearl, PHP, Ruby, Scala, Node.js. It is networked in type but its in-recollection nature helps perform super fast as it is handling key-value store in memory when the durability of data is not needed.
- In memory key-value store
- Durability is optional
- Perform faster
- Easy choice for developers
- Cannot completely rely, adjunct with Relational DBMS.