Data is always structure and content, syntax and semantics. In the context of databases, these are tables, relationships between tables, queries and their results. It cannot be said that the prevailing idea of relational databases is an ideal, but it is practical, convenient and allows you to describe any area of ​​application.
If the database is a collection of tables, then the database management system (DBMS) is the support of several databases at once and the provision of appropriate functionality for each of them in terms of administration, operation and reading. Over time, DBMSs acquired many very specific functions, which are considered to be the de facto standard, and received their own language for describing, working, and selecting.
Basic DBMS functionality
Databases allow you to present data sets through a system of tables, indicate the relationships between the tables, determine the necessary queries, the form of the desired results and provide two options:
Actually, more is not required from the DBMS; it is necessary to provide access to the program code for the purposes of administration or operation (changes or reading). The user does not have direct access to the data, but through a specific code a wide functionality is available to him, implemented by the DBMS.
The format, protocol and general algorithm for using the database is always known, although the existing classification system of the DBMS indicates a wide variety of concepts and implementation options.
Data Management Systems Concepts
The basic concept, which, of course, has been leading since birth and is being improved to this day, is the foundation for designing database management systems - relational relations. A database is a set of tables and the relationships between them. So it was, it is, but it will not be too long.
Other data models:
- hierarchical;
- network;
- ER-model (entity - communication);
- object oriented;
- object-relational, etc.
They have their niches, but in each of them are based on all the same relational relationships. In fact, different concepts about data organized in data systems have indisputable and obvious only one thing: all data always makes sense.
How to reflect the meaning in a formal computer database model? Judging by the few names of database models, there is no particular problem here, but nevertheless, “pure relational relations” find the most practical application: how to name the solved data processing task, which adjective to attach to the name of its database - it doesn’t matter, it’s important that the problem is solved.
Classification of data management systems
The most basic category, which has important practical value: the applicability of the system to solve the problem. Here you can divide all the DBMS into four main groups:
- data model;
- distribution;
- access methods;
- level of versatility.
This is a general classification of modern DBMS.
The concept of distribution is important, although from a semantic point of view it does not matter how the database is distributed, it is important that it has the right access option.
Ways to access data are also important: a site may require information from a database managed by Oracle, but getting / writing here will not be at all as arranged as when using MySQL.
The level of universality is a relative criterion, but in most cases it should be taken into account. Not every project requires dynamics and ensuring a high level of access security, storage reliability, etc. Many tasks need to be developed accordingly to the field of application. Choosing a DBMS with limited functionality may in the future lead to unnecessary expenses for replacing a system that has limited capabilities.
DBMS functionality
Following the established tradition, the classification and functions of a DBMS play a significant role in the development of technical specifications or IT projects, which feature large amounts of data. In this case, the term “large” can mean the level of a particular data (image processing) or the number of records (text processing).
The functionality of the task and the expected solution can set clear requirements. In particular, the choice of DBMS (classification by data):
- presentation of data (video, audio, text, various combinations);
- structuring / formalization (structured, unstructured);
- nature / source (hierarchical, relational, network);
- format and storage location (local, distributed);
- users (one, many).
This side of the issue affects only part of the important points for preferring one DBMS to another. There are many applied areas in which classification by any criterion does not matter for the choice of a DBMS. For example, the choice of a content management system for the development of a site will confront the developer with a unique choice of only one specific database.
Large DBMS and complex connect
The modern information level of the DBMS (classification by significance and responsibility):
- terabytes of information (one large file, a lot of small files);
- megabytes (several files describing one database and the data contained in it).
But the significance and responsibility here are always great, not only in the first case. There are many responsible projects when small amounts of information make responsible decisions.
Usually the first criterion defines Oracle as the unconditional leader, the second - MySQL. They have a lot in common, but a lot of cardinal differences. When a task arises to connect a web resource to an Oracle database without using its own tools and technologies, many questions arise. A complex connect is not uncommon for a long time, but often just a condition for reaching a solution.
A smaller number of problems with data delivery occurs when they are located in the local network on MS SQL Server, to which the connection is available through several hardware routers.
In fact, in real practice, all the components are important: the DBMS architecture, the classification of the DBMS by functionality, connectivity options, and the bandwidth of communication channels.
Access Security and Data Storage
Knowledge of the DBMS, classification, database theory in general, practical experience and other conceptual aspects are undoubtedly important. The reliability of the hardware component today is very high, but the question of the quality of the code, and especially its semantics, is still relevant.
All DBMSs can provide safe access to the database, but what about the generally accepted practice of copying databases for creating backup copies?
This vicious idea is characteristic of databases located both in one file and in multiple files. In the first case, the loss of one byte or bit will spoil the entire file, and in the second case, incomplete copying of the database description or files containing data will also lead to unpredictable consequences.
It is strange that DBMS developers are not concerned about these facts, but if they had taken the necessary steps and closed once and for all the issue of data availability outside the system of managing them, then a dilemma would have formed: according to the DBMS, the classification would be simplified to the limit:
- it makes sense to use (safe, reliable, always everything is available);
- cannot be used (everything is controlled by the DBMS developer).
You can’t control everything, the more experienced the programmer, the more options he leaves for the customer. To close the data for external control and change means to ensure that the solved task does not have a long life.
The issue of data security and availability is beyond the scope of any solution. It refers to the company's infrastructure, local network, security perimeter, etc.
By themselves, data, databases and their management systems should be as open and accessible as possible, subject to established rules and natural requirements that have been verified by long practice.
The social aspect of DBMS
When considering different ways of classifying a DBMS, special attention should be paid to the social component in the context of theory and its applicability in practice.
When local networks appeared and the databases were located on the server, and the DBMS provided access to many users, everything was extremely simple: the file-server architecture is very practical, today there are:
- file server;
- client server
- embedded database.
Three sides of the same coin. It does not matter where the database itself is located, it is unimportant which DBMS is selected. It is important that the data and the code that uses them should be as mobile and accessible as possible, but be within the perimeter of general security under close protection not only from technological factors (attacks, threats, destructive intervention), but also from a behavioral moment in the sense of employees, who develop code or use data.
Relational Relations: Prospects
The existing ideas about the DBMS, their classification, the accumulated unique potential in theory and in practice of application are undeniable. DBMS developers and information consumers have come a long way, and every day the dynamics of improvement has accelerated rapidly.
The relational concept still holds a strong position and is not going to concede anything to any other architecture or idea. But is its plot true: is a table a relationship between data, and a relationship between tables is also a relationship? Why should there be a header in the table, and if there is no data, then there is no table? Why is the table always rectangular, and the data in it has a strict type and size?
The world of information is characterized by smooth forms, and not just rectangles. Isn’t it time to admit a surprisingly simple idea: there is a table, but whether or not there is a cap in it is a matter of a specific case. How many rows will be in the table - it’s always clear: from zero to the restrictions of a particular DBMS, but why can’t this be attributed to the number of columns?
If we apply the abstraction, to which modern object-oriented programming has taken so long, to relational relations, we get a very promising next step: a DBMS, in which it doesn’t matter whether it is a table or just a given one, and if the table, what it will be and whether there will be rows or columns and how they will be interconnected at its level is a matter of application. How everything will be linked in all the data and tables is also a question of the scope, and not the competence of the developer making the DBMS or the code using it.