Oracle is helping customers carry their database technology investments to the cloud, step by step, as I reviewed in my last post. In this post we take a look at a feature that has become front-and-center for cloud app developers, support for JavaScript Object Notation-formatted data (JSON). It’s the lingua franca for communicating between the ever-evolving Web and mobile user interfaces and the databases supporting the back ends. It’s also becoming popular as a way of carrying machine and sensor data within the “Internet of Things” (IoT).
MongoDB, perhaps more than any other product, symbolizes the popularity of this data type. Now Oracle is steadily taking steps to embrace it in its NoSQL database as well as the flagship database, 12c.
JSON makes it easy to capture evolving user experiences
JSON has become popular for a variety of technical and cultural reasons. On the technical side, JSON objects accommodate data whose structure is continually changing. For systems of engagement that must capture the ever-evolving interactions and observations about customers, a flexible data format such as JSON is necessary. Capturing their interactions across channels and touch points, for example, has to be flexible because those user experiences are continually evolving.
JSON also appeals to the demographic that grew up trying to avoid SQL
On the cultural side, JSON is important because many developers just don’t like having to use SQL inside another language. Younger developers, for example, grew up with programming tools and frameworks that hid it from them, like J2EE’s Hibernate or Ruby on Rails.
Developers who are building new Web or mobile apps typically use MongoDB or Couchbase to support the user experience. For them, JSON’s flexibility allows them to ingest sample data and mock up a UI and then worry about a more stable database structure later. SQL databases are the opposite. Developers have to take great care in designing the database up-front because changing it later is typically much more difficult.
JSON support in Oracle NoSQL
Oracle positions its NoSQL database against MongoDB and Couchbase and collectively attempts to pigeonhole them as Key-Value stores when in fact they are more. Under-selling those document stores makes it easier to pitch the flagship Oracle 12c as the “go to” product.
Oracle NoSQL 3.0, which shipped this spring, supports tables in addition to Key-Value and JSON data types. That means it can consume the JSON coming from the UI and map it to a table. Since JSON data is nested like a tree, it’s harder than tables to query. Developers have to walk their way down the tree looking for the right information. Part of Oracle NoSQL’s special sauce is that it can take all the fields nested within a JSON object and flatten them out into a rectangular record. It sounds obscure, but that makes it easier to query, especially when SQL apps using Oracle 12c need access to Oracle NoSQL data.
Despite the combination of JSON and table support, Oracle NoSQL still assumes the developer has a pretty good idea up-front about how they’re going to get the data out. She is responsible for setting up the indexes that will support how the application will query the data.
JSON support in Oracle 12c
With Oracle’s flagship database, the whole process of absorbing and indexing an entire JSON document is much deeper and more automatic. Developers don’t have to do as much thinking up-front about how they’ll want to query it to get data out. That makes sense since that’s also the idea behind SQL databases. At the NoSQL Now conference, Oracle’s Mendelsohn positioned 12c as the database to use when developers not only need the full functionality of a SQL database but a full JSON document store, as well.
NoSQL BMWs versus big SQL Mclarens, in the cloud
MongoDB and Couchbase took off because developers wanted to be more self-sufficient with what are widely considered full function NoSQL JSON document stores. Oracle, by contrast, is pitching its own NoSQL database and its peers as lower-end Key-Value stores even if they are more. In other words, it is saying developers need to trade up to the SQL flagship if they want full functionality for a database that supports mobile and Web apps.
But many developers are saying they don’t necessarily want central IT departments to mandate their choice of database from the corporate SQL standard. By downloading free versions that are easy to set up and start prototyping with, developers get a BMW for their everyday needs. Databases for traditional enterprise applications feel more like dealing with a Formula One McLaren, with all the tuning and pit crew maintenance that entails. That’s appropriate for mission-critical systems of record and that’s Oracle 12c’s sweet spot. Oracle NoSQL is Oracle’s offering for the BMW market.
Oracle’s cloud cred part 3: can they do business?
In the next post, we’ll look at the rather intractable problem of Oracle coming to terms with how cloud database customers want to do business.