When: Friday, January 10, at 14.00
Where: PCRI building, room 445
Who: Luca Cabibbo, Università Roma Tre
Title: NoSQL Database Design for Next-Generation Web Applications
NoSQL database systems especially support the development of next-generation web applications, for which: (i) data of interest have a flexible structure, (ii) data access is based on simple read-write operations, (iii) foremost quality requirements are good horizontal scalability, response time, and availability, as well as a certain degree of consistency.
Although NoSQL databases are claimed to be “schemaless,” the design of data organization requires important decisions, to map application data to the modeling elements (collections, tables, documents, key-value pairs) available in the target datastore.
These decisions are significant, because of their impact on the above major quality requirements.
Given the high heterogeneity in the NoSQL world, this design activity is usually based on best practices and guidelines that are strictly related to the selected system, but with no systematic methodology.
In this talk we present NoAM (NoSQL Abstract Model), a logical approach to NoSQL database design, with initial activities that are independent of the specific target system.
The approach aims at exploiting the commonalities of the various NoSQL datastores.
It is based on an intermediate, abstract data model, to represent application data as collections of complex-value objects, called aggregates.
Aggregates are units of distribution (to support scalability) and consistency (to the extent it is needed); aggregates can be partitioned in smaller data elements (for the sake of performance).
The intermediate representation can be then implemented in target NoSQL systems, taking into account their specific features.
We then present ONDM (Object-NoSQL Datastore Mapper), a framework that supports the management of persistent objects in NoSQL database systems.
It provides application developers with a uniform programming interface, as well as the ability to map application data to different data representations, in a flexible way, towards a variety of NoSQL systems.
In particular, ONDM can be used to support developers in performing experiments that are usually needed during the design of a NoSQL database, to assess the most suitable design solution among a set of valid candidate (but alternative) representations.