A database is a software system for storing, managing, organizing, and accessing information. Databases are housed in one or more computers, whether located in a datacenter or — as is increasingly the case — “virtually,” on cloud infrastructure. Databases come in a myriad of shapes, sizes, and flavors, each designed to do different things with different kinds of data. Modern databases are managed with databases management systems (DBMS).
Choosing a Database
Choosing the right database depends on the kind and quantity of data you have, how frequently and how quickly you need to access and update it, and what you want to accomplish. Database use cases number in the thousands, and encompass everything from managing digital content to recording inventory and transactions, collecting data from IoT devices, storing medical records, and warehousing information for Big Data analytics. Let’s take a look at a range of common database types and how they are used.
What are different types of database technologies?
- Flat databases, the earliest form of database, accommodated nothing more than small text files, and offered very limited functionality
- Hierarchical databases, the next evolution, were introduced in the 1960s and connected records via a tree structure mapping out what were known as “parent-child” relationships between records. This offered greater capability but imposed complex navigation for certain types of data.
- Network databases came along ten years later to introduce a more flexible tree structure model in which children could have multiple parents. However, these too were plagued by drawbacks and limitations.
- Relational databases, also known as Relational Database Management Systems (RDBMS) or SQL databases, first appeared in the 1970s. Much more robust and capable than earlier forms, the RDBMS remains the most common database type found in large enterprises.
- Relational databases display information as tables using rows and columns. In a relational database, operations such as creating, reading, updating, and deleting data are typically performed with statements in Structured Query Language (SQL).
- The RDBMS employs rigidly set definitions or “schemas” specifying how data must be classified and composed, making it well-suited for highly structured data. Conversely, relational databases are a poor fit for unstructured or semi-structured data such as large-scale analytics, highly complex data sets, audiovisual material, data types with variable-length records, and IoT inputs. Despite these limitations, relational databases proved highly successful and matured technologically over the years, spawning a universe of skilled and experienced developers along the way.
- Non-relational or NoSQL databases were developed as a response to the need to manage increasingly complex modern web applications, and have greatly proliferated over the last decade. NoSQL databases differ from the relational type in that they can be schema-agnostic, allowing unstructured and semi-structured data to be readily stored and processed. NoSQL databases come in many varieties designed for different needs and use cases.
What are some examples of databases in use today?
Non-relational databases have become increasingly prevalent, not least because there are so many sub-types and flavors to choose from.
The document-oriented database type (aka document stores) enjoys the greatest market penetration of the non-relational breed, exemplified by the popular MongoDB and its cloud-based database-as-a-service twin, MongoDB Atlas.
Wide versatility is one of its acknowledged advantages: MongoDB is commonly deployed to manage, among other things, order data, customer data, log data, product catalogs, and user-generated online content such as chat sessions, tweets, blog posts, ratings, and comments.
Document databases are schema-agnostic and house information in collections. There are no constraints on how much data can reside in a single record – a handy feature for large datasets – and information of any kind can be accommodated. These databases store data in constructs called documents, usually in BSON, JSON, or XML formats. Documents don’t follow any single prescribed schema or structure.
This NoSQL sub-type is similar to relational databases in that content can be queried and analyzed. However, there are key points of divergence: each document can have its own particularized internal structure, and relationships, operations, and guarantees that apply to it are quite different than with an RDBMS.
Types of NoSQL/document databases
Document databases have emerged as the successor to relational databases for most common workloads. The other three NoSQL sub-types are more niche-specific in their usage.
Graph databasesModeled after the concept of a mathematical graph, the graph database contains a collection of items (called nodes) and edges (known as graphs) which define the relationships between items.
Graph databases are designed for transactional integrity, flexibility, and operational availability, making them a good choice for a range of use cases requiring speedy parsing of relationships between heterogeneous data points – applications such as fraud prevention, advanced enterprise operations, online transaction processing (OLTP), certain types of data security, churn analysis, and regulatory reporting, to name a few.
Their data models are a lot simpler than those of relational or other NoSQL databases. A drawback to widespread adoption, though, is the lack of a standard graph database query language. You can’t use SQL (that’s what “NoSQL” means) or any other popular language. Aspiring graph database developers should plan on acquiring fluency in a language only applicable to a few databases.
Key-value databasesAnother specialized non-relational type is the key-value database. Similar to a dictionary, it is used for fairly simply-organized information that needs to be accessed with very low latency. A typical use case is the storage of configuration data. While these lightweight databases are not that widely known, one was voted the “most loved database” in a popular annual survey for three years running.
Column store databasesThe other NoSQL database type is known as a column store, wide column store, or column family database. Very fast and monstrously scalable, these are capable of accommodating petabytes of data in vast distributed systems with thousands of servers. All of this makes them perfect for specific kinds of Big Data applications.
What is a cloud database?
We’d be remiss if we left out cloud databases, which are not a structural type but rather an alternative mode of deployment that has rapidly become a cross-industry norm. This can be any kind of database optimized or built for a cloud or virtualized environment, whether hybrid, public, or private cloud.
Cloud advantages include the elimination of infrastructure CAPEX in favor of a subscription-based pay-as-you go model, extremely high availability, and elastic scalability on demand.
Some cloud databases, notably MongoDB Atlas, let you run application workloads in a fully managed Database-as-a-Service environment. This changes a historically complex and tedious management challenge into effectively a turnkey service: just turn it on and go to work.
What is the most used database for modern application development?
Traditionally, development work has revolved around the relational database and the standard SQL language. However, the older RDBMS technology gets, the more aptly it fits the unfortunate definition of “yesterday’s technology today.” Put another way, systems and methodologies from 30-plus years ago were not engineered for today’s always-on business operations, multiplicity of data types, massive scale, and real-time visibility into data.
This holds true not just for modern use cases like mobile apps, IoT, content management, and gaming, but for familiar business applications that figuratively and literally keep the lights on. These older systems have RDBMS foundations that can’t efficiently support workflows and schemas they were never designed for. As a result, developers spend far too much time maintaining legacy systems and databases, draining productivity, and consuming budgets.
For all these reasons, a sizable and growing developer community is migrating to modern document store databases. Each document within a store is free-standing and has its own internal structure, which is ideal for data sets that don’t require many cross-references. You can alter the properties of new data entries at any time, without having to change existing structures or data.
Of the different types of databases, which is the most common?
Gone is the era of the monolithic, all-powerful relational database. The non-relational juggernaut is sweeping across the landscape and gathering steam as it progresses. In just the five years between 2013 and 2018, the number of document database deployments has doubled. While the venerable RDBMS is not likely to disappear anytime soon, the clear development, functional, and TCO advantages of NoSQL databases – especially the document-oriented Database-as-a-Service variety – will only increase their popularity and penetration in the years ahead.