NoSQL, short for “Not only SQL,” is a term used for database systems that store information in a variety of formats to support requirements that traditional relational (or SQL) databases have difficulties addressing. Legacy relational systems were designed to minimize data duplication in an era when storage was extremely expensive.
While relational databases are still widely used, the nature of data storage and usage has changed. Things like Google-style search, for example, are built into a majority of applications. The explosion of data, web browsing, mobile usage and analytics have significantly changed modern database demands. These new needs have led to the growth in NoSQL databases and include a variety of models like key-value, document, column, time series and graph. Additionally, leading NoSQL databases also now include key relational capabilities.
What is a Modern Multimodel NoSQL Database?
Why Organizations Choose NoSQL
One of the biggest factors is the need to deliver an exceptional customer experience, a critical competitive differentiator. Customers expect great digital experiences with services that are on demand, real time, personalized and responsive. Consequently, applications must be dynamic, operate across multiple devices and constantly evolve. Managing this pace of change is not easy without the right technology. That’s why many organizations choose NoSQL.
Relational vs. NoSQL: Key Differences
Relational databases were designed for back-office business applications that resided on one server. To grow your database, you needed a bigger box, known as “scaling vertically.”
NoSQL databases were born from the massive data growth around the internet. Google and Amazon led the way in the mid-2000s. Efficient, distributed, highly scalable key-value engines were key to this evolutionary step. Since then, modern databases were engineered to meet the next generation of scale and flexibility. These databases offer distributed systems that deliver high availability by distributing data automatically across multiple nodes as servers are added. With JSON data models and multimodel access, a NoSQL database can meet massive performance demands and still evolve rapidly, delivering both new and expedited customer experiences.
Supporting SQL in NoSQL
Relational systems maintain data in a rigid linked table format design or schema. Object data is split into separate tables to eliminate repetitive information, known as normalization. While efficient, this is often limiting when new features require data model changes. NoSQL systems can hold hierarchical JSON data, supporting more structure and needs like ACID transactions, while also offering flexible semi-structured ways to store and return data. This convergence of the best of relational and the best of modern NoSQL simplifies information architectures and application development, and helps support modern database needs, such as:
- Delivering highly responsive experiences through the web and mobile
- Handling semi- and unstructured data, while also supporting ACID transactions needs
- Adapting rapidly to changing user requirements with frequent updates
- Releasing new features with shorter times to market
- Supporting multiple data types and data access methods
- Ensuring high availability with no downtime
These needs could be met with relational databases, but the effort and costs would be very high.
Develop with Agility
Speed is critical to innovation, but so is flexibility. A core principle of agile development is responding quickly to change. Often when the requirements change, the data model also needs to change. With relational databases, developers often have to formally request a “schema change” from the database administrators. This slows down or stops development.
By comparison, a NoSQL document database fully supports agile development, because it is schema-less and does not statically define how the data must be modeled. Instead, it defers to the applications and services, and thus to the developers as to how data should be modeled. With NoSQL, the data model is defined by the application model.
Applications and services model data as objects (such as employee profile), multivalued data as arrays (roles) and related data as nested objects or arrays (for instance, manager relationship). Relational databases, however, model data as tables of rows and columns – related data as rows within different tables, multivalued data as rows within the same table. Data is read and written by disassembling and reassembling objects.
In contrast, a document-oriented NoSQL database reads and writes data formatted in JSON, which is the de facto standard for consuming and producing data for web, mobile and IoT applications. Objects are read and written without disassembling them. NoSQL databases have logical hierarchical groupings, called collections and/or scopes, to organize subsets of documents, which can be restricted to particular users, features or workloads.
Operate at Any Scale
Databases that support web, mobile and IoT applications must be able to operate at any scale. Massive scaling of a relational database like Oracle is typically complex, expensive and not fully reliable. NoSQL distributed databases run on commodity hardware and are architected to scale out – for instance, to add more resources you can simply add another server (aka “horizontal scaling”). The ability to scale out helps teams by deploying no more hardware than is required to meet the current load; applying less expensive hardware and/or cloud infrastructure; and scaling on demand and without downtime. Further, advanced replication between data centers expands high availability around the globe.
Query Using SQL and ACID Transactions in NoSQL
Application developers that are used to querying with SQL can continue to use the same language in NoSQL platforms, but operate against the stored JSON data. Select modern cloud database vendors provide a SQL-based query language that returns results in JSON with sets of rows and subdocument components where appropriate, supports advanced JOINs and can be used for analytics. This is in contrast to the majority of other NoSQL databases.
Due to normalizing objects into multiple data tables, relational systems can often require a transaction for almost every update. With NoSQL databases, updates typically involve a single document and don’t require a transaction. Some advanced NoSQL databases support distributed multi-document ACID transactions.
Typically a Database-as-a-Service (DBaaS) streamlines operations and reduces the amount of work that teams have to do, like Infrastructure as a Service setup and configuration, database provisioning, operations management, scaling automation, monitoring and security.
From both a financial and operations perspective, companies see benefits like:
- Rapid setup
- Ability to scale
- Quick configuration changes
- High service levels
- Security automation
NoSQL Supports Modern Needs
Tens of thousands of organizations have adopted NoSQL. Choosing the right cloud database platform is not easy. To support important applications, many enterprises choose Couchbase Capella to improve resiliency, performance and stability, while reducing risk, data sprawl and total cost of ownership. And developers love Couchbase because it combines the flexibility and agility of NoSQL with the familiar concepts of relational databases. That’s why 30% of the Fortune 100 manage critical data with the Couchbase database platform.
Try Couchbase for yourself today with our free trial.