Preface

About This Report

Developers are urged every year to learn new frameworks and languages not only to enhance organizational productivity but also to stay relevant in an ever-changing industry. There’s always a chance, however, that the tools you do decide to learn won’t be around next year. And worse than wasting your time, you wasted the opportunity to learn something more relevant.

As you observe the staying power of NoSQL—and indeed the more mature multi-model database management system—it is natural to wonder: “Should I invest the time to learn yet another technology?”

This report aims to explore both the personal and professional benefits of developing on a multi-model database. As a developer with—ahem—a few decades of experience under my belt, I approached this exercise by looking at the entire development team. I evaluated how a multi-model approach would impact current roles as teams shift from rigid roles in a single-model environment to more fluid ones in a multi-model environment. The end result? We, as developers, move closer to the data becoming its own steward; it’s no longer necessary to stand in long queues waiting for data to be readied. Instead, we can work directly with the data in the same useful forms in which it arrives from its sources and is delivered to its users.

With an understanding of the different ways of modeling and indexing data available to users of a multi-model database, it’s possible to engage in data-driven development, because you are able to describe and quickly implement solutions for your customers. The tools and techniques described here leverage what you probably already know about modeling and indexing of data. These new skills add the techniques required to move past the limitations of rows and tables altogether. Within this new paradigm, you and your team are given the ability to communicate—often on the fly—what a potential solution will look like for a customer. Agility is achieved by eliminating the time and effort required to tear the conceptual model down into tables, to build the conceptual model up from tables, and then to get each and every table definition approved through a separate DBA organization. Your efforts are applied directly to the actual data coming from and being sent to users in its native form of text, JSON, XML, and binary records and documents. The conceptual models that represent the value of your solution exist directly in the database tool immediately and interactively available for you, your team, and your stakeholders.

In the past, software developers might only have used specialized data modeling approaches at particular stages of development. For example, an entity-relation graph might have been used prior to creating a relational data schema. Recently, it has become more common for teams to assemble applications from data management tools specialized in dealing with one model type or another—for example, a graph database might be included to manage dynamic graph data on an ongoing basis. Multi-model technology accepts that our data is really many things. Working with one tool that provides different options for data modeling is the logical next step. Having a variety of representational forms and indexing techniques available simultaneously enables more creative and effective approaches to problems than can be found in the confining, single-schema world of tables, rows, and columns.

So do I think it’s worth your time to invest in learning multi-model technology? Absolutely. If you are looking for a way to extend your career long beyond the next framework, you need to learn to work with all of your data. A model of all of the data flowing into and out of our systems is simply richer than the relational model—and the relational databases that implement that model—can handle. The limits of relational models are obvious when one looks at the bespoke integrations of additional separate tools that organizations have attached to their core data management systems in order to provide what their applications require. The need that many organizations have to use separate search, graph, and document tools suggests that data is naturally modeled in a variety of ways. I have chosen to embrace multi-model tools that directly provide the modeling and indexing needed to create value.

In writing this report I looked at the advancements of DevOps and applied it to the extension of management of data as well. It’s at this sweet spot that developers finally will have unlocked their true value to their organizations.

Major Points

  • Organizations that can make high-quality data ubiquitously and securely available can focus on data-driven development—immediately answering the needs of their stakeholders.

  • Relational database management systems (RDBMSs) managed within siloed organizations cannot effectively create many applications demanded by organizations today.

  • Modern applications must process data that includes records, documents, videos, text, and semantic triples in a variety of formats, including XML, JSON, text, and binary.

  • Organizations have concerns regarding data security, data privacy, data retention, data location, data availability, data protection in the face of a disaster, data search accuracy, and the analytic value of data.

  • Applications that support both transactional and analytic use cases across huge heterogenous datasets are especially likely to break the RDBMS/siloed organization model.

  • A new data-driven approach to software development and the next-generation multi-model database management systems have proven to be effective at creating applications where RDBMSs and siloed organizations have failed.

  • Specialized software tools such as full-text search engines, single-model NoSQL databases, in-memory databases, and analytic databases cannot individually deliver a solution to core data management challenges.

  • Compositions of multiple, specialized tools within a single application introduce additional integration complexity and risk.

  • Software development teams should learn data-driven approaches and should develop multi-model database management systems technology skills to respond to application demands that do not fit the classic RDBMS and siloed organizational approach.

  • Using multi-model database management system tools in the context of a data-driven development team can transform the process of software development and improve the working lives of software developers.

  • Aggregation of data into actionable knowledge is essential for organizations today, and data-driven software development using multi-model database technology is the best way to achieve that goal.

Acknowledgments

I’d like to thank the following people for making this report possible: Diane Burley, David Cassel, David Kaaret, Evelyn Kent, Dan McCreary, Rob Rudin, and Susan Anderson Laquer.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset