Few would argue that the IT of the future is inextricably linked with the use of huge databases. The world is already coming up with new languages, new algorithms, just to simplify and speed up the use of huge flows of information. Even the relational approach familiar to many modern users is slowly but surely becoming a thing of the past. Why and what happens next? However, let's talk about everything in order.
There is no point in covering the history of databases, clinging to any similarity, so the moment of the appearance of databases will not be ancient times, but the 60s of the 20th century. It was then that computers became an effective tool for commercial companies, and the COBASYL (CONference on DAta SYstems Language) organization, which created the COBOL language in 1959 and subsequently endowed it with database management capabilities, helped them manage the dramatically increased flows of information.
By the end of the 60s the first network model data, the concept of a DBMS arose, and in 1974 IBM began working on a language for System R. This is how SEQUEL (Structured English QUEry Language) was born. However, later, when it became known that this name was used by a British aircraft manufacturer, it was decided to shorten it a little to the usual SQL.
With the increasing availability of computers, computer-oriented ordinary users Database (Paradox, RBASE 5000, RIM, Dbase III), API (ODBC, Excel, Access) and development tools (VB, Oracle Developer, PowerBuilder). Of course, the trend has also spread to the Internet; today, effective interaction with the database is an unspoken requirement for any resource with more or less dynamic information.
If we talk about companies, a trinity of power has been established in the market: almost all power in the field of databases is distributed between IBM, Microsoft and Oracle.
Before the start of the new millennium, the relational approach to databases dominated in IT, but the need to improve performance inevitably led to the development of the idea of NoSQL (not only SQL). If you have a hard time understanding what it is and what the difference is, then by clicking on the link you will receive comprehensive answers to all your questions.
To put it simply, the relational approach describes data in table format, that is, all information is inextricably linked by relationships and structure (remember Excel with columns and rows, where each new object written using the same template). This inevitably leads to performance and scaling limitations, but from a creation and management point of view, it is simple and convenient.
The NoSQL approach avoids these problems due to the absence of strict information connections. But here another problem arises - the organization of access. It is solved in 4 main ways: using document orientation, expandable records (sparse matrices), access keys and graph theory. Naturally, the NoSQL approach requires more knowledge and skills from the developer, but the results are much more effective. This is why it is believed that SQL is already becoming a thing of history, and NoSQL is the future of all databases.
However, this prediction rests on the fact that using the relational approach for small databases is much more effective. Therefore, instead of a meaningless argument, let’s talk about more practical things, namely the most popular databases.
In total, 7 out of 10 representatives of the rating are relational databases, as well as one instance each of a document-oriented database (MongoDB), with distributed values (Cassandra) and using the key-value approach (Redis). Thus, today the dominance of relational databases is undeniable, but what will happen tomorrow?
To answer this question, let’s turn to the trends section on the same resource. If we take time stamps of more than 2 or 4 years, then the greatest growth is demonstrated by the approach using graph theory. At the same time, over the past year, databases based on time data have shown the greatest increase in popularity. It's relative new approach, it is also considered NoSQL, the benefit comes down to creating a structure based on dates or time ranges. At the moment, the most popular representative of the Time Series database is InfluxDB.
What databases do you use? And what do you think is the most promising NoSQL database?
Databases are logically modeled repositories of any type of data. Every database that is not schemaless follows a model that defines a specific data processing structure. DBMS are applications (or libraries) that manage databases of various shapes, sizes and types.
To better understand the DBMS, check out.
Relational systems implement a relational data model, which defines all stored information as a set of related records and attributes in a table.
DBMS of this type use structures (tables) to store and work with data. Each column (attribute) contains its own type of information. Each record in the database that has a unique key is passed into a table row, and its attributes are displayed in the table columns.
Relations can be defined as mathematical sets containing sets of attributes that represent stored information.
Each element that forms a record must satisfy a certain data type (integer, date, etc.). Various RDBMSs use different types data that is not always interchangeable.
These kinds of restrictions are common in relational databases. In fact, they form the essence of the relationship.
In this article we will talk about the 3 most popular RDBMSs:
SQLite is an amazing library that is built into the application that uses it. Being a file database, it provides an excellent set of tools for easier (compared to server databases) processing of any type of data.
When an application uses SQLite, their communication is done through function calls and direct calls to files containing data (for example, databases). SQL data ite), rather than some kind of interface, which increases the speed and performance of operations.
Note: to get more detailed information check out the documentation.
MySQL is the most popular of all major server databases. It’s very easy to understand, and you can find a lot of information about it online. Although MySQL does not attempt to fully implement SQL standards, it does offer a lot of functionality. Applications communicate with the database through a daemon process.
PostgreSQL is the most advanced RDBMS, focusing primarily on full standards compliance and extensibility. PostgreSQL, or Postgres, attempts to fully comply with ANSI/ISO SQL standards.
PostgreSQL differs from other RDBMSs in that it has object-oriented functionality, including full support for the ACID (Atomicity, Consistency, Isolation, Durability) concept.
Being based on powerful technology, Postgres excels at processing multiple jobs simultaneously. Concurrency support is implemented using MVCC (Multiversion Concurrency Control), which also ensures ACID compatibility.
Although this RDBMS is not as popular as MySQL, there are many third-party tools and libraries to make working with PostgreSQL easier.
Currently there are a large number of DBMS various manufacturers, while the most common DBMSs are universal, i.e. can be used in various subject areas and to solve various problems. Systems vary in performance, resource requirements, and maintenance costs.
The most common industrial DBMSs are still the systems of the American company Oracle, manufacturer of the first commercial industrial DBMS. These systems are distinguished by high reliability, the ability fine tuning for tasks to be solved, flexible management RAM, high performance, multi-platform – i.e. the ability to work under the control of both computers of different architectures and different operating systems. Along with the multi-user version of the Oracle DBMS, there is a “light” version of it - Personal Oracle or Oracle Lite. This version It is usually used in small AIS with a limited number of users (usually no more than 5–10 people).
Microsoft's industrial DBMS, called SQL Server, has no less capabilities than the Oracle DBMS. However, its disadvantage is that it can only function under the operating systems of Microsoft itself, which makes it impossible to use it on servers running popular operating systems such as Unix, Linux, Solaris and others. Another popular DBMS from Microsoft is MS Access, which is included in the software package Microsoft Office. This DBMS is single-user and is intended for maintaining small databases.
Popular and fairly common DBMSs are also DB2 from IBM, Sybase, Informix, PostgreSQL (“ Post-Gres-Q-El", "postgres"), Interbase and some others. Separately, it is worth mentioning freely distributed DBMSs, many of which are suitable for solving quite complex problems. While not fully possessing the functionality inherent in commercial DBMSs, they, at the same time, have a significant advantage - zero cost. As a rule, such DBMSs are supported by independent groups of developers and distributed in the form of source codes of program modules. The most popular of these DBMSs in our country are MySQL and the so-called “clones” of the commercial DBMS Interbase – FireBird and Yaffil.
The choice of DBMS should take into account the customer’s needs and the possibility of further expansion information system, acquisition cost factors and other parameters.
The concept of a database has become so firmly established in our lives that it has become taken for granted and does not deserve special attention. About IT startups, algorithms , hacker attacks, cryptocurrency, (what can we say, and about clouds too) in the specialized media, much more articles have been written than about “ordinary”, but such important and necessary databases and their management systems. So we, having repeatedly conducted our mini-studies in different areas of the IT world, have never addressed this topic. Well, we will immediately correct ourselves and share with you interesting news and the latest statistics.
A database management system (DBMS) is a software tool (typically an interface between the end user/application and the database itself) that makes it easier and more convenient to work with information. For example, create, update, search, delete and restore data in a database, as well as determine relationships between its components (tables).
Typically, a DBMS includes three main components: the data itself, the database engine, and a schema that defines the logical structure of the data. It is these three components that help ensure safe management anddatabase protection,integrity of the information stored in it and unified administration procedures - change management, configuration and performance control, backup, disaster recovery etc.
Of course, there are an incredible number of database management systems themselves, but the ones that everyone knows about are hardly a dozen. To determine which of the existing DBMSs is rightfully included in the list of the most popular, DB-Engines compiled a kind of rating of favorites. To do this, experts analyzed a number of factors: the number of mentions of systems on websites (we used Google search engines, Yandex and Bing), general user interest in Google Trends, mentions in discussions on specialized sites Stack Overflow and DBA Stack Exchange, on job aggregator sites Indeed and Simply Hired, in professional profiles of specialists on Linkedin and Upwork, and, finally, the number relevant tweets. However, we note that the total number of DBMS installations was not counted, so this top, although interesting, is still relative. According to DB-Engines, the top three popular management systems are: Oracle, MySQL, Microsoft SQL Server.
It is interesting that among programmers, the most in demand skills were working with DBMSs such as MySQL, MongoDB and PostgreSQL, and developers generally put Oracle in last place, since this system was noted by only 12% of respondents (source: Stack Exchange (Stack Overflow Talent)) .
Thus, based on the results of two studies, we see that so far users are most interested in the MySQL system. Perhaps not the least important role here is played by the fact that this is an open source product. source code. By the way, it is for this reason that in 2016 MySQL had the largest number of vulnerabilities eliminated - 133. And this fact does not mean that the system itself is poorly protected, but on the contrary indicates that its performance was checked by a larger number of specialists, which increased chances of identifying its “weak points” in information security.
It is noteworthy that it is the number of patches that allows us to indirectly determine the degreeinformation protection in database management systemsand identify the most common vulnerabilities. Thus, a Trustwave study showed that in 2016, DBMS users most often encountered the following categories of cyber threats:
These were the results of recent studies. We really hope that in the future database management systems will become more secure, and new names will appear in the top DBMS popularity charts. We promise to follow the news and keep you up to date with the latest trends.
Relational databases have been used in programming for a long time. At one time, they gained popularity due to the simplicity and convenience of the relational model of working with data.
This article analyzes the differences between the most popular relational database management systems (DBMS): SQLite, MySQL and PostgreSQL.
Databases are logically modeled repositories of various information (data) of all types. Every SQL database is based on a model that provides a structure for the data it stores. Database management systems are applications (or libraries) that manage databases of various shapes, sizes, and types.
Relational DBMSs use a relational model to work with data. This model stores any information in tables in the form of related records with attributes.
This type of DBMS requires table structures. The columns (attributes) of such a table contain Various types data. Each database record is treated as a row in a table, the attributes of which are represented as columns.
Relationships can be thought of as mathematical sets containing a number of attributes that collectively represent the database and the information stored within it.
When adding a record to a table, you need to distribute all its components (attributes) by data type. Different relational DBMSs use different data types, and they are not always interchangeable.
Such restrictions (as, for example, with data types) are typical for relational DBMSs, because, in fact, relationships between data are built on the basis of restrictions.
Note: NoSQL databases do not have such strict restrictions because they do not build such relationships between data. To learn more about NoSQL, read.
In this article we will look at three of the most important and popular open source DBMSs.
Note: Open source applications almost always give users the right to freely use and change the code. By forking code, you can create a completely new application. One fork of MySQL, for example, is MariaDB.
SQLite is a performance library that can be embedded into applications. A full-fledged SQLite file-based database offers a wide range of tools for processing all types of data and imposes far fewer restrictions than other relational databases.
Applications using SQLite do not communicate using an interface (ports, sockets), but send direct requests to the file in which the data is stored (for example, a SQLite database). This makes the SQLite application very fast and performant.
MySQL is the most popular DBMS. It's multifunctional open application, supporting the operation of a huge number of sites. MySQL is quite easy to use and can store large amounts of data.
Note: Given the popularity of MySQL, a large number of third party applications, tools and libraries.
MySQL does not implement the full SQL standard. Despite this, MySQL offers many functionality for users: autonomous database server, interaction with applications and websites, etc.
PostgreSQL is an advanced open object-oriented DBMS. PostgreSQL implements ANSI/ISO SQL standards.
Unlike other DBMSs, PostgreSQL supports very important object-oriented and relational database features: reliable ACID (atomicity, consistency, isolation, durability) transactions, etc.
Based on reliable technology, the PostgreSQL DBMS can simultaneously process a large number of tasks. Consistency support is achieved without blocking reads thanks to MVCC.
Although the PostgreSQL DBMS is not as popular as MySQL, a large number of additional tools and libraries have also been developed for it, which simplify working with data and increase the performance of the DBMS.