Experience

Databases

Object-oriented database structure

Any dataset can be represented as objects and their properties.
Objects are typed. Each object type has its own set of properties.
An object's property can be another object, a list of properties, or a reference to a reference book (Dictionary).

When designing a system, the required dataset is usually known, so it seems unnecessary to overcomplicate the database structure.
But, when the system is up and running and the user wants to add functionality, have to add tables.
Object orientation does not require any changes to the structure, records about objects and their properties are added to existing tables.

This is not about hierarchical DBMSs. Such a structure can be created on relational DBMSs like MsSqlServer, Oracle, etc.

Large database size

The question is not how many billions of records there are, but the speed of accessing them.
Of course, there are some limitations of the DBMS itself, but this is not about modernization.

Tables that are expected to have many records should have not only an index on a unique identifier, but also indexes for grouping.
However, it should be noted that indexes speed up data reading but slow down writing. Therefore, it is necessary to analyze which speed is more important.
This does not mean that you need to give up some functionality, you just need to synchronize data streams.

Data processing

I have extensive experience in data analysis.
Search, aggregation, conversion. Data exchange between different systems.

Conversion to various formats : json, XML, CSV, txt ...