Larry Ellison is one of the world’s richest men, and has been for decades. He founded Oracle in the early 1970s, taking an idea from IBM’s Edgar F. Cobb for a SQL relational database to create the Oracle Database RDBMS (relational database management system).
Oracle obtained a monopoly position in this market, since in those days there was virtually no free software and practically all applications ran on IBM mainframes. Even IBM’s database, DB2, could not unseat Oracle as the market leader, as that database only ran on mainframes. It was not until racks of PCs began to be used as servers in the 1990s (as they are today) that people used anything but mainframes.
Oracle is still a monopoly for most transactional business applications among the Fortune 500. Oracle has purchased the most common opensource alternative, MySQL, and has even purchased opensource Java itself. But those remain free.
When it comes to choosing a database, one of the biggest decisions an organization may have to make is whether to pick a relational (SQL) or non-relational (NoSQL) data structure. While both of these are good choices, each have clear advantages and disadvantages which must be kept in mind.
In this article, we’ve broken down the most important differences between SQL and NoSQL, highlighting the benefits of each.
What is SQL?
SQL, short for Structured Query Language, is a programming language that is used to manage data in relational databases. Relational databases use relations (typically called tables) to store data and then match that data by using common characteristics within the dataset.
Some common relational database management systems that use SQL:
- Oracle
- Sybase
- Microsoft SQL Server
- Microsoft Access
- Ingres.
Cobb’s breakthrough paper describes a database where objects could be constructed and queried using something he called SQL, structured query language. He used SQL to create both data (in objects called tables) and the schema for that data, which describes fields in columns. A single record in a SQL database is called a row.
What is NoSQL?
A NoSQL database, on the other hand, is self-describing, so does not require a schema. Nor does it enforce relations between tables in all cases. All its documents are JSON documents, which are complete entities that one can readily read and understand.
NoSQL refers to high-performance, non-relational databases that utilize a wide variety of data models. These databases are highly recognized for their:
- Ease-of-use
- Scalable performance
- Strong resilience
- Wide availability
NoSQL database examples include:
- MongoDB
- MarkLogic
- Couchbase
- CloudDB
- Amazon Dynamo DB