DB - SQL, NoSQL

I have used different databases - SQL(relational) and NoSQL(non-relational), depending on the project.

In Python often I would use Pandas to load data from db into a dataframe, process the data, and save the data.

In Java, I have used either API like JDBC or ORM like Hibernate.

In C++ i have used db library c-tree Plus, which allows you to design your own index structures and have a db of SQL or NoSQL flavor. Below is a description of how c-tree Plus was used in one of my projects.

All db related activities were my responsibilities, including data and code. We have used the c-tree Plus library as a db engine embedded in the application process address space. All db calls were encapsulated into the library used by all members of the development team. The library was, in essence, an application-specific Object-to-Datastore Mapping tool. Later SQL flavor was added to the library and all calls to c-tree Plus were converted to Sybase, and in this case the library behaved like an application-specific ORM(Object-relational mapping) tool. The transition of applications from c-tree to SYBASE was very smooth. And developers have a choice to use an embedded DB or a Sybase server.

SQL

Often the projects that I was on required different levels of SQL handling.

For one project i did a conversion from Oracle, PL/SQL to Python, Pandas, MySQL. Pandas was used, but a lot of work was done in SQL scripts.

For another project that was PostgreSQL based, I wrote a database schema conversion script and developed a synchronization module between an application cache and a database. Triggers were developed in PL/pgSQL, C, and Python. It's a very nice feature of PostgreSQL to have different languages that can be used for stored procedures; in my case, Python code that replaced the code originally written in PL/pgSQL was more simple.

NoSQL

My experience with NoSQL databases includes OO db, Graph db, and in-memory key–value database.

OO db was used for a Quartz based project.

Graph db. On one of the projects I was assigned a ticket to fix a time critical task. It turned out that the task was spending nearly an hour on one db query when other queries were in seconds, it was - Neo4j. A workaround around Neo4j issue was found and the time of the query was reduced from about an hour to several seconds, Neo4j has very good docs.

Below are some of the databases that I was using:

PostgreSQL, Oracle, MySQL, SQLite, Sandra, Neo4j, SYBASE, SQL Server, Redis

View comments.

more ...