The database management system ( DBMS ) is today at the heart of operational and analytical systems. In fact, if data is the lifeblood of the company, the DBMS is the organ that allows them to be stored, administered, secured and made available to applications and users. There are, however, many types of DBMS on the market, each offering their own advantages and disadvantages.
Relational databases, or RDBMS , have become the norm in computing over 30 years ago, with the advent of cost-effective servers that are powerful enough to make these products widely usable and relatively affordable. But some disadvantages have emerged during the advent of the Web and the computerization of the entire enterprise but also, more and more, of everyday life. Today, IT departments seek to process unstructured data as well as highly variable data sets. So it will probably be interesting to turn to NoSQL technologies .
In addition, applications that require high-speed transactions and fast response rates, or that subject data to complex analyzes in real time or near real-time, will, in turn, take advantage of databases in memory (In Memory) .
Finally, some IT departments may consider combining several database technologies for particular treatments.
The current landscape of databases is often complex and confusing. So it’s important to understand the types and categories of DBMS, and when and why to use them. This document will serve as a guide.
Categories and models of DBMS
Until recently, the RDBMS was the only category worthy of interest. But the wave of Big Data has brought its share of new types of reliable products, able to compete with the relational software in certain scenarios of use. In addition, all types of DBMS are being augmented with new technologies and features, further complicating the offer.
Be that as it may, the undisputed leader in terms of revenue and installed base remains the RDBMS. Based on the mathematical theory of sets, relational databases offer most applications, whether operational or analytical, sufficient performance in storage, access and protection. For more than three decades, the main operational DBMSs were relational, and produced by industry giants: Oracle, Microsoft (SQL Server) and IBM (DB2).
Reliable, the RDBMS fits most usage scenarios; its position is reinforced by years of use within Fortune 500 companies (as well as more modest ones). Of course, such stability has a cost: an RDBMS is not given.
In addition, support for the atomicity , coherence, isolation and durability of transactions (properties grouped under the acronym ACID) is an essential function of the RDBMS. These properties ensure the correct execution of all transactions or, in case of failure, the return of a database to its previous state.
So, knowing the robustness of the RDBMS, one wonders why other types of database systems are gaining popularity.
It appears that web-scale data processing and Big Data requirements are challenging the RDBMS capabilities. While it is possible to use RDBMS in these areas, in a dynamic, evolving environment, DBMS offerings that offer more flexible schemas, less rigid consistency models, and less processing-intensive processing can prove advantageous. This is where the NoSQL DBMS comes in.
The NoSQL DBMS
While the RDBMS requires a strictly defined schema, a NoSQL database allows a flexible schema, in which it is not necessary to define each data for each entity. Thus, for data structures defined less precisely and likely to evolve over time, a NoSQL DBMS can represent a more practical solution.
Another difference between the two models lies in their way of ensuring data consistency. The RDBMS can ensure consistent data consistency. On the other hand, NoSQL DBMSs tend to offer a more flexible approach, tending toward final consistency (although some provide a variety of consistency models that are compatible with full ACID support).
To be honest, most RDBMS also offer, to varying degrees, locking, consistency, and isolation functions that can be used to implement the final consistency; where many NoSQL DBMS will add options for full compatibility with ACID properties.
As a result, the NoSQL addresses some of the problems faced by RDBMS technologies, making it easier to handle large amounts of sparse data. Data are considered sparse when they are not all filled in, and when the values themselves are separated by important “empty spaces”. Think for example of a matrix containing many zeros but few real data.
However, while certain types of data and use cases may benefit from the NoSQL approach, it is sometimes at the expense of transactional integrity, indexing flexibility, and queryability.
To further complicate matters, the NoSQL is not a particular type of DBMS, but an appellation that groups four main categories of different functions:
The DBMS in memory (In-Memory)
The last important category of DBMS to study is the DBMS in memory, or In-Memory. This type of DBMS primarily uses memory to store data, instead of storing it on disk.
Thus, its main purpose is to improve performance. Because data is stored in memory rather than on disk, I / O latency is greatly reduced. Indeed, the mechanical movements of the disk, the search delays and the transfer in buffer are no longer to be taken into account since the data are immediately accessible in memory.
In addition, data access in memory can be optimized where a traditional DBMS is optimized for disk access. SGBDIM products reduce the induced management: internal algorithms are generally simpler and processor instructions (CPU) are less numerous.
Other models of DBMS
Among other categories of DBMS, the multi-model DBMS, which supports multiple types of storage engine, is gaining ground. Many NoSQL offerings support multiple data models, such as documents and key-value pairs.
In addition, RDBMS evolve to support NoSQL features; for example, by adding a column bank to their relational engine.
There are still other categories of DBMS, but not as widespread as relational databases, NoSQL and In-Memory:
Thus, XML DBMS are architected to support XML data, similar to NoSQL document stores. However, most current RDBMSs also offer XML support.
A columnar database is an optimized SQL system for accessing multiple columns of many lines simultaneously in read (but not in writing).
Popular in the 1990s, object-oriented DBMSs were designed to work with OO programming languages, much like NoSQL document banks.
Finally, pre-relational DBMSs include hierarchical systems (such as IBM IMS) and network systems (such as CA IDMS) running on large mainframe systems. Both still exist and support legacy applications.
Other considerations: platform, license, CTO,
As you walk through the DBMS landscape, you will inevitably encounter many other issues that require your attention and, first and foremost, the platform.
The predominant computing environments at the moment are Linux, Unix, Windows and the mainframe. However, not all DBMSs are supported on each of these platforms.
Another important consideration is the supplier.
Many DBMS are open-source, especially in the world of NoSQL. The open-source approach increases flexibility and reduces the initial cost of ownership. However, support for open-source software often leaves something to be desired unless you buy a commercial distribution. The total cost of ownership may also be higher when considering administration, management and ongoing operations.
You can also choose to reduce acquisition and support costs by using a database appliance or a cloud deployment. An appliance is a preinstalled DBMS, sold on hardware configured and optimized for database applications. The use of an appliance can significantly lower the cost of implementation and support because software and hardware are designed to work together.
The implementation of your databases in the Cloud goes even further. Instead of implementing a DBMS in your business, you can sign a contract with a cloud database service provider.
If your company is considering a DBMS, it is important to identify your specific needs, review the major DBMSs in each of the categories described above, and be familiar with the specific use cases for which each technology is used. is optimized.