Perhaps your favourite database is Oracle, DB2, MySQL, or MSSQL, which you are familiar with. But in this post, we’re going to talk more about databases. You will learn how databases were created, what types exist and what principle each type is based on. Because whether you’re testing or programming, it’s always good to have some background.
The beginnings of databases
You probably know the databases mentioned above, many of you may work with them every day. But did you know that the databases were originally made of metal boxes with drawers called filing cabinets? Yes, that’s right. At the very beginning, there were only filing cabinets for storing paper folders with paper documents. Everything beautifully sorted according to various criteria. And instead of writing “SELECT * FROM users WHERE employeeId = ‘326598’”, someone had to come to a large room full of these cabinets and find the right folder and then search for the right document in the folder.
As time passed…
We will skip the milestone called punch cards and get to the 1950s, to a conference that gave origin to the requirement for a language that would be suitable for bulk data processing. The result was the first version of COBOL, which would become the most widely used language for data processing for many years.
A few years later, another requirement arose at another conference to create the concept of database systems, and thus the network DBMSs on the mainframe computers started to appear. Another few years later, IBM’s IMS came in. This IMS was created for the Apollo Moon flight program, and perhaps this is why IMS is still the most widely used mainframe system.
In 1970, E.F. Codd wrote an article about relational databases, viewing data as tables. A few years later, around 1974, the development of the first version of the SQL query language began, which, after a long ten-year development, brought performance-oriented systems. We jump a few years ahead, more precisely into the 1990s, where the first object-oriented databases started to appear. And it is now clear to you that this type of database borrowed the logic of working with objects from object-oriented languages. The intention was for these OODBs to gradually displace the relational systems. However, this did not work very well, so a compromise was made: object-relational technologies.
What databases contain
Enough of history. For many people, the term ‘database’ simplifies what the database system actually presents. It is not just and only tables, these are only one of many database objects. Database systems include, for example, views, indices, triggers, reports, processes, schemes, events, etc.
The most widespread database and relational model
The most common ‘databases’ or more precisely database systems are MySQL, Oracle, PostgreSQL, Microsoft SQL (MSSQL), DB2 by IBM (these are examples of relational databases and you could say that these are the most widespread ones). They are based on a relational model.
The relational model is not only the database itself, but also the specific software solution. This type of database is based on tables, where records are understood as rows and columns.
Other types of databases
Thanks to the new work I got acquainted with another kind of database called Apache Cassandra NoSQL database and Cache object database.
NoSQL database is a database concept. Data processing and data storage use different means than the table-based relational database.
Why are these databases being used?
Above all, they are easy-to-use, including their simplicity of design, horizontal and vertical scaling, and availability control. Last but not least, the NoSQL ‘key-value’ store is very well and highly optimized. NoSQL database is currently used for big data and RTW (Real Time Web).
Object-oriented database (OODBMS)
The object-oriented database is a database management system, where the information itself is in the form of an object and is used in OOP. It is also a combination of database abilities and OOP. Thanks to OODBMS, programmers who work with OOP can develop a product, preserve it as an object, and replicate or modify existing objects.
But what is Cache?
At the moment, I use Cache to store information about incidents. By definition, it is a database system with its own integrated language. Specifically, the storage of data in Cache is different from the databases known to you as the SQL database. It uses a tree structure, is represented as an XML file and is processed in the operating memory (RAM). It is mainly used for low-level and direct access to data without SQL. The main advantage is its high performance, saving the system and great flexibility.
Databases, whatever they are, are used wherever data needs to be stored. No system can do without them. Knowing the databases is very important for both, the programmer and the tester. This will help you, for example, in finding the data you need to test the system. Databases are constantly evolving and will continue to evolve as the data grows. That is why we need to have better and faster searches.