Using NoSQL databases in Java environment

OData support
Kövesdán Gábor
Department of Automation and Applied Informatics

In this document the designing and development of an application using NoSQL

databases is demonstrated. The application was further used to test and evaluate

data stores both from performance as well as developer productivity

viewpoints. The developed application's usage of different NoSQL

databases makes it possible to evaluate both the NoSQL databases themselves

as well as their usability from Java. When using traditional Relational

Database Management Systems (RDBMSs) with Object-Relational Mapping (ORM) tools

and appropriate caching solutions, using materialized views or denormalized

tables, thus optimizing read performance by adding redundant data,

it is possible to keep up with the performance of NoSQL databases. Sharding is

also possible by dividing the data manually between different RDBMS instances

(along clear boundaries and keeping data that defines aggregates, a cluster of

associated data, together) while they have functionality that is still

unavailable in NoSQL solutions like true ACID transactions.

However NoSQL advocates' claim that focusing on domain modeling instead of data

modeling prevents "data model leakage" and enhances software developer

productivity still seems to hold true after developing and

evaluating an application using different NoSQL databases.


Please sign in to download the files of this thesis.