Many organizations would like to develop and incorporate a NoSQL data model in their existing architectures, and to hire staff with Data Modeling skills. Unfortunately, there is a significant lack of data modelers with NoSQL experience, and reliable NoSQL Data Modeling tools are only just beginning to emerge into the market. The shortage of experienced NoSQL data modelers, combined with the scarcity of appropriate tools and delayed projects, can stunt a company’s growth.
Hackolade (started in 2016) has developed an answer to these problems. They have created a “user-friendly” data model that offers powerful tools for working with NoSQL. The software merges NoSQL document databases with the simplicity of visual graphics. This, combined with Hackolade’s other tools, reduces development time and increases application quality. Their software, at present, is compatible with Couchbase, MongoDB, and DynamoDB schemas, and they have plans for expanding to include other NoSQL databases.
The tools Hackolade offers are quite useful for the processing and presenting of Big Data (and for developing useful apps). The graphic, visual map streamlines useful information and can offer clues suggesting places to start mining for data. Another tool included with the software generates sample documents, such as PDF and HTML documentation, or DynamoDB and MongoDB scripts. With Agile concepts included, users can communicate with analysts, architects, DBAs, and developers, while working on the project. The efficiency of Hackolade’s software reduces costs and provides the client with superior results.
Hackolade presents data graphics similar to CAD’s in its format. The graphics shown lay common ground for discussions with other team members. In essence, the visual image shown allows for brainstorming, nitpicking, and the project’s evolution. Team members are able to evaluate alternatives, and recognize potential problems early, minimizing the amount of rework needed, later. Hackolade is designed specifically to handle denormalization, embedded and nested objects, and polymorphic semi-structured schemas. A JSON schema notation is used, displaying a hierarchical tree.
Describing Hackolade’s origins in a recent DATAVERSITY® interview, Pascal Desmarets, the Founder and CEO of Hackolade, said:
“With NoSQL, I felt I was missing the tools I used to have with a relational database, and that’s mainly Data Modeling tools that help me think through a design, or think through an application, before writing code.”
This is countercurrent said Desmarets. The NoSQL database vendors will say, “you just need to get their technology, for free, download it, and in a few minutes, you’re up and running.” But he felt he would get into trouble, and he didn’t want to spend a lot of money developing things, only to find that’s not the right way to do it. “And then, I would have to come back, and do it again,” he said.
He then added:
“To help me think through the process, I decided, looking at code was not the most effective way. So many people get involved. There’s not just developers. Lots of people don’t like to look at code, and I realized an entity relationship (ER) diagram, for relational databases, used to give me those tools. A picture is worth a thousand words. You can have a conversation around a picture, and discuss the what-ifs.”
Hackolade’s first big customer was eBay, followed by Air France KLM, and Honeywell. Desmarets expressed his surprise after discovering how thoroughly eBay had integrated his software into their system. He said, “eBay demonstrated an amazing thing they’ve done with out tool. They took it much further than I would have ever imagined.”
They have actually integrated it with their central repository data dictionary across all of their different database platforms. “They have Oracle, MySQL, Mongo Couchbase, Cassandra, and God knows what else, and they suck up all of the information from our repository into their central repository,” he said.
Denormalization
Hackolade allows for easy navigation of the database structure using only the mouse. The process of denormalization involves improving the “read” capacity of a database, by losing some “write” capacity. It does this by grouping data or creating redundant copies of data. Denormalization is typically used as a strategy to increase the performance of a normalized database, adding redundant data where it will help the most. This can reduce the running time of specific queries, because the data is now more readliy accessible.
A normalized database is the preferred starting point for a denormalization operation. It is important to understand that a database that has “never” been normalized, is much more chaotic/dysfunctional then a normalized database, which was denormalized later. A database which has never been normalized is typically the result of a badly designed database.
Embedded and Nested Objects
The original meaning of “nesting” described objects similar to one another (very often, highly decorated eggs), that opened and closed, and were of varying sizes. Smaller versions were placed inside larger versions, and then closed. Each object is designed to successively fit inside another. A similar process has been developed for data. In Data Modeling, the term “nested objects” describes data organized in layers, or objects that contain similar objects.
An embedding object is contained in another object, but is not necessarily similar. An embedded object can be quite different from the object containing it. For example, a number of word processing apps will allow one document to be embedded inside another.
Polymorphism
The dictionary refers to polymorphism as an aspect of biology in which a living organism assumes different forms as it matures or adapts. This concept has also been applied to the world of computer programming. In this field, polymorphism is the ability to use the same interface (the same organism) to translate different semi-structured schemas and data types (different forms) into useful information. Each data type has specific limitations and characteristics, and translating them using a single interface can be remarkably efficient.
JSON (JavaScript Object Notation)
Hackolade software includes JSON, which can be used with NoSQL and for Big Data, and can interface with evolving and changing schemas. JSON is easy for humans to read and write. It originated from a subset of the JavaScript Programming Language, and was adapted from there. JSON is completely language independent, but does use concepts familiar to programmers using the C-family of languages. These characteristics make JSON an excellent data translating interface. JSON incorporates two structures:
- An assortment of name/value pairs. Depending on the programming language, this is referred to as an associative array, record, struct, object, keyed list, dictionary, or hash table.
- A list of ordered values. In most programming languages, this is referred to as an array, list, vector, or sequence.
Better Decisions
Working with a data model is similar to looking at an architect’s blueprints before the construction of a building starts. Hackolade’s NoSQL Data Modeling tools can guide a team, and present a visual expression of team’s understanding of the project. Data Modeling is one of the most efficient ways of gathering and coordinating information. The Hackolade process generates useful questions, leading to intelligent decision making and superior results. The visual map facilitates communication between team members and subject matter experts.
The Latest at Hackolade
Hackolade has just given developers a new NoSQL Data Modeling tool, which is compatible with the recent MongoDB features and its Cloud Service. In late June, 2017, the company announced the release of Hackolade 1.7. It supports both MongoDB version 3.4 and MongoDB Atlas. Version 1.7 increases the agility of MongoDB users. It does this using a transparent structure and supporting MongoDB’s latest features. These features include read-only views, and also supports indexing, collation, and sharding parameters.
Desmarets stated:
“With this new release, Hackolade continues to bring to market the features requested by users, and keeps up with MongoDB’s maturing functionality. Technically speaking, we are introducing a new type of entity in our Entity Relationship diagram. We support the reverse-engineering of existing views, plus we dynamically generate the creation scripts in the forward-engineering use case.”
While the functional analysts, architects, database administrators, designers, and developers need to have an understanding of the data structure, the stakeholders also have a need for understanding how the project works. This is now possible, using Hackolade’s user-friendly graphical interface and their flexible HTML model documentation.
Photo Credit: NicoElNino/Shutterstock.com