Defining NoSQL and Document-Oriented Databases — Programming Keynou