How to implement Data-Driven Apps – Using many Single Purpose Database or with a single Converged Database?

There is an on-going debate in our community about the best approach for developing cloud-native or data-driven apps. On one side, you have folks who say use a single-purpose “best-of-breed” database for each data type or workload you have. While the other half say, you should use a single converged database. So, which approach is right for you and your projects?

Let’s examine some of the pros and cons of each approach.

Single-purpose Databases

Single-purpose databases or purpose-built databases as they are often as known, are engineered to help solve a single or small number of problems. Given their narrow focus, they can ignore the tradeoffs usually required when trying to accommodate multiple data types or workloads. It also allows them to use a convenient data model that fits the purpose and to adopt APIs that seem natural for that data model. They offer less functionality than converged databases, and therefore, fewer APIs, making it easier to start developing against them. Their simplicity means they do a few things very well, but other things not at all. For example, a lot of single-purpose databases scale well, because they offer no strong consistency guarantees.

At first glance, single-purpose databases appear to be a good option. Developers are happy because they get exactly what they need to begin a project. However, when you look at the bigger picture, single-purpose databases can cause a lot of pain and end up costing more in the long run.

Very often, development requirements change mid-project, unforeseen business needs crop up, which render the original sound choice of single-purpose database “A”, sadly lacking. This leaves developers with a tough decision. Start from scratch with another single-purpose database to accommodate the new requirements and hoping that no others will surface, or work around the limitations of the original single-purpose database, adding unnecessary complexity to the application code and the maintenance of that code.

Organizations typically have a lot more than just one data type or workload to deal with. What happens when you have numerous single-purpose databases to support all of your business applications? What you quickly realize is that your data has become fragmented across different databases, which use different formats and types and have no direct way to integrate the data between them. How do you manage, secure or integrate such data with other parts of your organization?

Each single-purpose database is an entirely different database technology, with separate management controls, security models and high availability architectures. Sharing or propagating data across these databases is tricky because there isn’t a shared API.

Unfortunately, your organization must bear the brunt of the integration work required to make a single-purpose database approach feasible on a large scale. You will need personal who are knowledgeable about the operational aspects of each single-purpose database. Your security policies will have to re-implemented in every database, and your apps will become more complex to deal with propagating data from one database to another. Integrating single-purpose databases has the potential to become a job that never ends.

Converged Databases

Converged databases support all data types and workloads. They can also handle any development paradigm, including Microservices, Events, REST, and SaaS, to name just a few. By integrating data types, and workloads as features within a converged database, you can support mixed workloads and data types using a common language (SQL), and a standard set of APIs. You don’t need to manage and maintain multiple systems or worry about having to provide unified security across them.

By eliminating data fragmentation, you also eliminate copy contagion. Application modules or services automatically use a single copy of shared data in a converged database. There are no errors or time delays due to data propagated.

Application code overall becomes more straightforward, as you no longer have to work around the limitations of a single-purpose database or worry about integrating data from multiple sources or propagating data across numerous systems.

You also get synergy across datatypes and workloads. For example, by having support for Machine Learning algorithms and Spatial data in the same database, you can efficiently run predictive analytics on Spatial data. Data-driven app development becomes dramatically more straightforward and faster.

A converged database helps keep things less complicated, which in turn helps reduce the cost of implanting and maintaining your system. It also makes things more reliable.

In the video below, Juan Loaiza and Andrew Sutherland discuss this on-going debate and explain how a converged database makes it easy to develop Data-Driven Apps that enable enterprises to unlock endless possibilities and insights.

Single-purpose “best-of-breed” databases mean no vendor lock-in, right?

Unfortunately, that’s not the case. Using a best-of-breed approach creates vendor lock-in, as each single-purpose database has proprietary APIs and transaction models instead of ISO standards like SQL. This fragments development and locks the application into the single-purpose database and very often, the particular cloud vendor providing that database.

It is dramatically simpler for developers to invoke extended SQL to execute ML, graph, spatial, blockchain, IoT and others in one converged database instead of implementing distributed execution and data movement across multiple databases.

But it’s expensive to get started with a Converged Database, right?

The introduction of database cloud services has removed the cost barrier to getting started with a converged database. Oracle Autonomous Database is an excellent example of a converged database. It’s available to developers as part of Oracle Cloud’s Free-Tier or and at a low hourly rate for production or pre-prod environments.

In the long run, organizations save time and money by using converged databases where they can manage all their data types and workloads with only one database technology that caters for all use cases and requirements from different parts of the organization.

Are there cases where a single-purpose database is the right choice?

As in other industries, there are new or boutique use cases that benefit from single-purpose or specialized products. Especially if the use-case exceeds the limits of a converged database in terms of cost, performance, or scalability, for example, a stock trading system or telephone exchange. These are latency-critical, transaction processing applications that require guaranteed microsecond response times and would benefit from being run on Oracle TimesTen.

The use of single-purpose databases should be limited to a small set of very specific tasks.

Just a quick note of thanks to Gerald Venzl for keeping me honest on the single-purpose database approach!

What is a Converged Database?

At the recent OOW European conference there was a lot talk about Converged Databases and how they can greatly simplify data-driven app development.

But if you missed the conference, you might find yourself wondering what exactly is a Converged Database and what is the difference between a Converged Database and an Autonomous Database?

So, I thought it would be a good idea to write a short blog post explaining what a Converged Database is and how it relates to the Oracle Autonomous Database.

What is a Converged Database?

A Converged Database is a database that has native support for all modern data types (JSON, Spatial, Graph, etc. as well as relational), multiple workloads (IoT, Blockchain, Machine Learning, etc.) and the latest development paradigms (Microservice, Events, REST, SaaS, CI/CD, etc.) built into one product.

By having support for each of these datatype, workloads, and paradigms as features within a converged database, you can support mixed workloads and data types in a much simpler way. You don’t need to manage and maintain multiple systems or worry about having to provide unified security across them.

You also get synergy across these capabilities. For example, by having support for Machine Learning algorithms and Spatial data in the same database, you can easily do predictive analytics on Spatial data.  The Oracle Database is a great example of a Converged Database, as it provides support for Machine Learning, Blockchain, Graph, Spatial, JSON, REST, Events, Editions, and IoT Streaming as part of the core database at no additional cost.

A good analogy for a Converged Database is a smartphone. In the past, if you wanted to take a picture or video you would need a camera. If you wanted to navigate somewhere you would need a map or a navigation system. If you wanted to listen to music, you needed an iPod and if you wanted to make phone calls, you would also need a phone.

But with a smartphone, all of these products have been converged into one. Each of the original products is now a feature of the smartphone. Having all of these features converged into a single product inherently makes your life easier, as you can stream music over the phone’s data plan or upload pictures or videos directly to social media sites.
Continue reading “What is a Converged Database?”

Can I use an Autonomous Database to develop new applications?

Yes, Oracle Autonomous Database (ADB) is the ideal platform for new application development.

With this family of cloud services, developers no longer have to wait on others to provision hardware, install software, and create a database for them. With ADB, developers can easily and instantly deploy an Oracle database without worrying about having to manual tune it or capacity planning. This allows developers to start developing in minutes and concentrate on solving business problems without all of the usual distractions.

ADB has the most advanced SQL and PL/SQL support accelerating developer productivity by minimizing the amount of application code required to implement complex business logic. It also has a complete set of integrated Machine Learning algorithms, simplifying the development of applications that perform real-time predictions such as personalized shopping recommendations, customer churn rates, and fraud detection.

What Development Tools should I use with ATP?

Continue reading “Can I use an Autonomous Database to develop new applications?”

What you can expect from Oracle Autonomous Transaction Processing

Today Larry Ellison announced the general availability of Oracle Autonomous Transaction Processing (ATP), the newest member of the Oracle Autonomous Database family, combining the flexibility of cloud with the power of machine learning to deliver data management as a service.

Traditionally, creating a database management system required a team of experts to custom build and manually maintain a complex hardware and software stack. With each system being unique, this approach led to poor economies of scale and a lack of the agility typically needed to give the business a competitive edge.

ATP enables businesses to safely run a complex mix of high-performance transactions, reporting, and batch processing using the most secure, available, performant, and proven platform – Oracle Database on Exadata in the cloud. Unlike manually managed transaction processing databases, ATP provides instant, elastic compute and storage, so only the required resources are provisioned at any given time, decreasing runtime costs.

But what does the Autonomous in Autonomous Transaction Processing really mean?

Self-Driving

ATP is a self-driving database, meaning it eliminates the human labor needed to provision, secure, update, monitor, backup, and troubleshooting a database.  This reduction in database maintenance tasks, reducing costs and freeing scarce administrator resources to work on higher value tasks.

Continue reading “What you can expect from Oracle Autonomous Transaction Processing”

How does Autonomous Transaction Processing differ from the Autonomous Data Warehouse?

In my previous post, I explained that  Oracle Autonomous Transaction Processing has three main attribute: Self-Driving, Self-Securing and Self-Repairing. All of the functionality I described in that post is shared between both the Autonomous Data Warehouse (ADW) and ATP.

Where the two services differ is actually inside the database itself. Although both services use Oracle Database 18c, they have been optimized differently to support two very different but complimentary workloads. The primary goal of ADW is to achieve fast complex analytics, while ATP has been designed to efficiently execute a high volume of simple transactions.

Configuration

The differences in the two services begins with how we configure them. Continue reading “How does Autonomous Transaction Processing differ from the Autonomous Data Warehouse?”

Oracle Database 18c Released

Today Oracle officially released Oracle Database 18c on the Oracle Public Cloud and Oracle Engineered Systems. This is the first version of the database to follow the new yearly release model and you can find more details on the release model change in the Oracle Support Document 2285040.1 .

Before you freak out about the fact you haven’t even upgraded 12.2, so how on earth are you ever going to get to 18c – Don’t Panic!

Oracle Database 18c is in fact “Oracle Database 12c Release 2 12.2.0.2”, the name has simply been changed to reflect the year in which the product is released.

So, what can you expect?

As you’d imagine a patchset doesn’t contain any seismic changes in functionality but there are lots of small but extremely useful incremental improvements, most of which focus on the three key marquee features in Oracle Database 12c Release2:

More details on what has changed in each of these areas and other improvements can be found in the Oracle Database blog post published by Dominic Giles this morning or in the video below with Penny Avril.

You can also read all about the new features in the 18c documentation and you can try out Oracle Database 18c on LiveSQL.

So, when will you be able to get your hands on 18c on-premises for non-engineered systems?

It will be some time later this calendar year. You can check the Oracle Support document 742060.1 for more details!