Hackolade offers an array of Data Modeling tools designed for various NoSQL databases. Their software is user-friendly, while providing powerful graphics. These features, combined with flexible HTML model documentation, provide a visual blueprint for each application. Hackolade’s output is similar to a CAD printout produced by a draftsman or architect. The blueprint promotes discussion. Pascal Desmarets, CEO and founder of Hackolade, described its development:
“In my opinion, Hackolade saves our customers a lot of money. Things go faster when projects are done right, the first time. With that philosophy in mind, I decided a tool was needed to have the dialogue around a picture, rather than around JSON code or JSON structures. Code may be easy for developers to read, but the same is not true for normal business people.”
NoSQL (non-relational) databases provide easy scalability, agility, reliability, and flexibility. Its scalability and ability to interpret a huge variety of database structures supports Big Data activities in organizations of all sizes.
One argument in favor of SQL (relational) databases is their consistency. In spite of their scaling limitations, they are trustworthy and still readily used. Unfortunately, this advantage disappears quickly when dealing unstructured data, and the internet’s integrated, asynchronous web services. Hackolade’s platform is compatible with MongoDB, Neo4j, Couchbase, DynamoDB, Cassandra, and several other databases. Desmarets explained his philosophy:
“I believe that when people never have the time to do things right, but always have the time to do things again, companies waste money. They would rather do it right the first time. To do that, people need to make the time to analyze, design, and think. They also need to gather information and the opinions of their staff, ranging from sales to IT to the people running the application. Some may think that this is a slower and more expensive way of doing things, but in my opinion, it saves a lot of money, and makes things go faster if you deliver the app right, the first time.”
Hackolade and the General Data Protection Regulation
The General Data Protection Regulation (GDPR) went into effect on May 25, 2018. The GDPR is a European Union (EU) mandate designed to protect the personal data handled by any company within the EU or doing business within the EU. As a consequence, this regulation must be considered when doing business with Europe, and covers several organizations around the world.
In response to the GDPR, Hackolade has developed its Command Line Interface (CLI). The CLI helps provide regulatory compliance, by producing the only tool to produce detailed documentation for unstructured and semi-structured data, plus a way to detect changes that may have appeared as a result of Agile development and continuous integration. Hackolade’s Command Line Interface works with privacy-related data to provide proper handling in just a few steps, and offers:
- Reverse-engineering of databases
- Identifying new attributes and changed structures
- Generating documentation
- Daily monitoring to ensure compliance
Pascal Desmarets, describing the origins of their new Command Line Interface, said:
“With GDPR, we had customers who wanted us to develop a Command Line Interface they could run in an automated batch each night, and that included the reverse engineering of their entire production data. The CLI supports the analysis of a company’s databases every night, discovering structures that might have appeared the day before, providing the needed Data Modeling for GDPR, governance, and future regulatory requirements.”
Agile Software Development
Agile Software Development is a formal method for developing software that uses teamwork and relies on flexibility and speed. Solutions and requirements evolve through the collaboration of teams and customers. It promotes adaptive planning, continual improvement, and evolutionary development. It also encourages rapid and flexible response to change, and generates documentation and forward-engineering scripts. Agile comes with instructions and a manifesto. Referring to Agile, Desmarets stated:
“With Hackolade software, data can go through the Agile process as though it is an inter-process. Recently, traditional Data Modelers have had the feeling of being left behind, because of new Agile developments. As a consequence, we’re coming out with a new approach that embraces Agile. One that keeps data modeling involved in every step of an application’s lifecycle and evolution, and provides the developer with a deep understanding of the business process.”
It is important to recognize that the database model is at the core of any developing application. With Hackolade, a project can get started almost immediately and, with a couple of mouse clicks, produce sample documents, HTML or PDF documentation, and MongoDB scripts. When using an Agile approach, analysts, designers, developers, and DBAs can communicate in meaningful ways, creating “what-if” scenarios. This process can reduce development costs and increase the chances of delivering an evolving application capable of responding to the customer’s needs.
Graphic Visualization of Data Structures
Data Models can be created using Hackolade, and employed as a visual guide for applications. Hackolade produces the equivalent of a CAD blueprint. The process generates useful questions, and leads to intelligent decisions. The visual map facilitates communication between team members about potential problems and possible solutions. This visual map streamlines information, and offers clues suggesting where to start data mining. Hackolade’s user interface was carefully designed to provide clear and efficient communications, and minimize the learning curve.
Hackolade is designed specifically to handle nested objects, polymorphic semi-structured schemas, and denormalization. It makes use of a JSON schema notation, which is easily visualized and communicated through a hierarchical tree view. Hackolade has incorporated some aspects of Entity Relationship Theory to NoSQL databases as a way to represent denormalized data as graphics.
JSON and NoSQL
Each data type comes with its own specific properties and limitations, providing validation and documentation of the business rules used for data integrity. To provide greater clarity, a collapsible hierarchical tree is used to view the collection schema, and the database structure can be altered, using only a mouse.
About JSON, Desmarets said:
“Because JSON is so flexible and so powerful, people can get into trouble. In developing Hackolade, I had to stretch Entity Relationship Theory, which suggests there should only be one entity in the box. I wanted to show the entire JSON structure within that box, and in pure ER Theory, I was breaking the rules, but that’s where we got the added value of our tool.”
The Hackolade JSON Schema visual editor can be used to model JSON documents, while its intuitive graphics editor streamlines the complicated JSON Schema syntax. It facilitates editing and maintenance, and simplifies the relationships of deeply nested structures. Hackolade generates a sample JSON document dynamically, displaying the structure that is being built.
Forward-Engineering and Reverse-Engineering
The ability to forward-engineer and reverse-engineer can speed up the modeling and development cycle. The process of forward-engineering can create sample documents as the model is developed. These help to visualize the design using representative data. It generates Mongoose schemas and MongoDB 3.2+ Validator scripts that can be integrated into the code.
Reverse-engineering captures the current Data Architecture, and offers a variety of options for reading metadata applications. Reverse-engineering a NoSQL instance requires the system to perform a “probabilistic inference” of a representative sampling from each collection or table. It can also be accomplished by submitting:
- JSON Schemas
- JSON documents
- XSD from erwin, ER/Studio, PowerDesigner, InfoSphere Data Architect, and others
- A SQL Data Definition Language file
Plug-ins allow anyone to use Hackolade’s Data Modeling engine with any NoSQL database. Hackolade has created several plug-ins for leading NoSQL databases. However, a person can build their own plug-in, and list it with the application’s DB Target Plugin Manager. Hackolade’s plug-in architecture supports the creation of NoSQL database “targets.” A customized JS code is only for reverse-engineering and forward-engineering. Describing plug-ins, Desmarets said:
“One of the things we did last year was re-design the product to include a plug-in architecture. This allows people to develop their own plug-in, and get the support of our Data Modeling engine for their database.”
To be sure, Hackolade is changing the understanding of what can be achieved between Data Modeling and NoSQL systems. As they continue to move forward with more offerings across the entire NoSQL space, it will become easier for companies to do both forward and reverse engineering of their non-relational systems.
Photo Credit: Funny Drew/Shutterstock.com