Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Riyaz.

Asked: July 23, 2010 - 1:01 pm UTC

Last updated: February 22, 2023 - 2:40 am UTC

Version: 10r2

Viewed 10K+ times! This question is

You Asked

With emerging database technology like NOSQL, what will be the future RDBMS databases. I have never used NOSQL databases myself. But I am reading only success stories starting with BIG TABLE (google). Social networking web sites including FACEBOOK uses NOSQL databases. Please share your thoughts on a) NOSQL databases and its future b) RDBMS vs. NOSQL databases and NOSQL impact on RDBMS. Eager to have your observation. Thanks.

and Tom said...

In my 17 years at Oracle - I've heard this question over and over

with the advent of X, what will be the future of the RDBMS.

In 1995 it was "with the advent of data blades and the illustra database - it is a matter of time before the RDBMS is dead dead dead". As it happened, the RDBMS subsumed the importantly relevant functionality of the "object" database and you don't see any "we are just object relational database" anymore.

Around the same time it was "with the advent of the internet, it is a matter of time before the RDBMS is dead dead dead". Not that the internet was or is a 'database' in the classic sense, but it was confused for one.

Similarly, when TEXT started making a big explosion - text was going to take over. Just store documents. Didn't really happen - what did happen is the text functionality was moved into - the RDBMS...

Again - OLAP becomes really big, huge - at the end of the 20th century. Guess what happened? Again.

XML - XML was going to kill the RDBMS - it was as good as dead. And now where are we again with that?

What I've seen happen again and again and again is that when something truly useful database wise evolves - so evolves the RDBMS. There are lots of fresh starts that get subsumed over time. There are many things in the database right now that you need over time and that would take a long time to re-invent. And remember (this is important), these specialized databases are just that - specialized. They are not general purpose - they are very good at what they do - but they do not do it for everyone. And they will end up being abused (just like XML, and all 'technologies' like that have been) and over used, used in the wrong place.

So, what I think you'll see is the feature set of the two merge into one (again). The truly useful aspects of one will combine with the other - making something larger.

And remember also, most people are not building facebook, they are building reservation systems, tracking systems, hr systems, finance systems, order entry systems, banking systems, etc - things where transactions are sort of important (lose my status update - no big deal, lose my $100 transfer and I'm sort of mad). There is room for a lot of things out there.



Rating

  (25 ratings)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Oleksandr Alesinskyy, July 23, 2010 - 1:55 pm UTC

To put it short - NoSQL technologies are good when results can be good enough (like Google search),
RDBMS if results shall be exact.
Tom Kyte
July 23, 2010 - 4:06 pm UTC

there is more to it than that - certain other operations that are trivial to express in SQL are somewhat laborious in non-SQL databases (SQL is a rather rich, yet tiny, language).

Riyaz, July 24, 2010 - 2:15 am UTC

Great thoughts!! Thanks a ton.

NOSQL is already being Intergrated with RDMBS

Assa Paran, July 25, 2010 - 6:20 am UTC

Hi Tom,
as my review title reads:
Aster systems is implementing calls to google's MAP REDUCE in it's software offerings; it is is thus callable from SQL-style queries; it allows benefiting from the best of RDBMS (SQL) and mass highly concurrent processing (MAP REDUCE)

Mapreduce?

RC, July 26, 2010 - 1:30 pm UTC

Those that want to do MapReduce with Oracle can already use (parallelized) pipeline functions.

The nice thing is that you can choose between sql and 'code' for the map step and the reduce step.

Read here: http://blogs.oracle.com/datawarehousing/2009/10/in-database_map-reduce.html and here: http://www.dbms2.com/2010/02/11/google-mapreduce-patent/

Data Storage Decisions

Rob B, July 27, 2010 - 7:06 am UTC

The current 'NoSQL' buzz I think is largely driven by people being excited by the transparent redundancy and failover of things like Hadoop Filesystem/Google BigTable and Cassandra, due mainly to what seems to be a current obsession with 'Scalability' and 'High Availability' without
really understanding what is needed and looking into all the options available to provide these. They serve a different purpose to your typical RDBMS currently which favours consistency and integrity by default. As people who deal with replication know, dealing with failures/inconsistencies/network outage becomes very complicated and application specific very quickly.

As Tom says the good features will merge together as they already are with SQL like interfaces being grafted onto the current 'NoSQL' products. The fact is that the RDBMS has been a mainstay for decades now because it is a very powerful and generically useful way to store (and retrieve) data. You need to come up with a very good business reason why an RDBMS is not good enough for your purpose before considering alternatives.

Serializing your Java Object and storing it in a Blob/Filesystem/Whatever may end up being the best solution for your specific application. You've got to realise though, that the next person along who has to merge this data with another application's data and report on it in real time is going to struggle because of this choice, rather than normalizing it and storing it in a RDBMS.
Tom Kyte
July 27, 2010 - 12:36 pm UTC

agree with first paragraph would just add:

"oh and the programmers are scared to death of a non-procedural language called SQL, they are easily confused by it and never bother to learn anything about it"

Add to that the fact they cannot spell 'transaction' sometimes let alone explain when and where they might be relevant...

Coupled with the decision that the application is the end all, be all (which for some very specific cases - it is, but they are rare). When building a typical application based on data (what typical application isn't) the application is secondary to the data...


... Serializing your Java Object and storing it in a Blob/Filesystem/Whatever may
end up being the best solution for your specific application. ....


I've seen that done (way more than once), and the reason I've seen that done is because.....

You've got to
realise though, that the next person along who has to merge this data with
another application's data and report on it in real time is going to struggle
because of this choice, rather than normalizing it and storing it in a RDBMS.



that always happens and they want to know how to make it magically happen (how can I query my java serialized blob as if it were actual data??? been there, seen that, have no good answer for it)

Survey distributed databases

Charlie 木匠, July 27, 2010 - 5:01 pm UTC

Where to read about NOSQL

A reader, July 28, 2010 - 2:14 am UTC

Anyone knows a good starting point for NOSQL..I google but found too many different things.

Thanks-

NoSQL...

Alan Howlett, July 28, 2010 - 8:48 am UTC

NoSQL, no joins, no referential integrity, no constraints, no support, no...

In a hurry? Need an buzzword fix? Remember, your reputation may be on the line. So when you
are in a rush and have to choose...

NoSQL - for when it absolutely, positively, doesn't have to be right.
Tom Kyte
July 28, 2010 - 9:20 am UTC

You can always fix it with some XML files to describe to the application to tell the application how to enforce referential integrity, constraints and so on. And of course you can always program a join yourself. There, quite easy to fix, isn't it......

How to query NOSQL database...

Alan Howlett, August 26, 2010 - 11:45 am UTC

Bob: So how do I query the database?

Andy: Its not a database. Its a key-value store.

Bob: OK, its not a database. How do I query it?

Andy: You write a distributed map-reduce function in Erlang.

Bob: Did you just tell me I'm scr%#d?

Andy: I believe I did, Bob.

attribution: howf(spelledout)ismydatabase.com

RDBMS v NoSQL

Rob B, September 13, 2010 - 5:37 am UTC

I found this 5 minute video very amusing. It also gives a pretty good introduction to the issues involved.

http://highscalability.com/blog/2010/9/5/hilarious-video-relational-database-vs-nosql-fanbois.html#comments

One thing that I think is often muddled up is the 'Relational' bit of a database and the 'Transactional' part. It is perfectly possible to have a perfect relational model defined by Codd but not be ACID compliant. ANSI define 4 levels of transaction isolation for example as explained in Tom's concurrency chapter.

The link above is NSFW due to language...

Alan Howlett, September 13, 2010 - 8:07 pm UTC

And I almost (Select 'P'||'E''||'E'||'''||'D'|| ' MYSELF!' from dual;)

NoRelational

Parthiban Nagarajan, March 14, 2011 - 6:33 am UTC

Hi Tom

SQL is there but "R" of RDBMS is not there
http://blog.cubrid.org/web-2-0/database-technology-for-large-scale-data/
It is not NoSQL but NoRelational.
May I have your comments

Regards
Tom Kyte
March 14, 2011 - 8:22 am UTC

My answer is already written - above. It was the original question in this thread.


the points are not valid

A reader, June 01, 2011 - 7:57 pm UTC

Never thought those things like XML, OLAP or TEXT would have killed Oracle. Because Oracle is not just about data structure, it's about scalability. There are so many badly designed enterprise applications with view layer directly connected to the database, having to rely on something like Oracle cluster to perform.

There are several facts changing nowadays when it comes to database: 1. storage gets cheap, people start to talk about petabyte as unit of stored data; 2. computing power is over the imagination when it comes to cloud computing, Google shows they can put up 1 million nodes together to do map reduce; 3. it's true the data consistency might be an issue for nosql server, however, it will not affect the integrity of most platform as long as it's not financially impacting anything, for example, I am active on a social network site and noticed a friend's icon is inconsistent in my mail box, guess what? It's nosql behind it. It just doubly stored the icon or icon link and one of them is not up to date. But the upside is that there will be no limit on how many message you can have in your mail box. And does any one even notice this kind of inconsistency? I doubt it. In most enterprise applications, data consistency is not that important. Especially, it's not that much inconsistent.

With new trend of storage space and computing power, this thing is serious. It's guaranteed you will see more and more enterprise application shift to NoSQL servers, because it's too cheap comparing to Oracle cluster. It's not really the data structure probably will mark the Oracle dead. It's the scalability and cost.
Tom Kyte
June 02, 2011 - 8:44 am UTC

we'll see. the rdbms has been declared dead many times before. This is no different.

The truth is - there are applications other than facebook, most applications need transactional integrity. *most*. By far the *most*. I've seen the nosql folks say "hey, audit trails - 100% of them - nosql em, you don't need transactional integrity". Tell that to the bank, or the HR system, or any finance system, etc etc etc.

You have a new shiny hammer - everything appears to be a nail.


follow up last post

A reader, June 02, 2011 - 1:56 pm UTC

Well, it won't be as dead as dinosaur. It will be as dead as things like mainframes. As it will be limited to certain industries or perspectives. It's very hard for some enterprises to get over with an old infrastructure. That's very true. I think I still see some COBOL position out there nowadays in this technology age. But as a technologist, how many people will be willing on this kind of stuff? And NoSQL is just one idea supported by cloud computing and it's not the only solution created because of cloud computing. There are many out there. If an architect is smart enough, the data integrity should not be a problem. Think it this way: is Google using Oracle for their AD feeds? It's a major financial product, which makes Google this much money. The thing here is that you cannot beat the computing power like that, especially the hardware gets cheaper and cheaper. Of course, Oracle can get into this field and grow up with cloud computing as well. Then the rest of it is really about the cost on human resource and cluster itself.

I am pretty sure Oracle has enough smart peoples to think of growing with cloud computing. However, being indifferent to such a thing will be a deadly mistake.
Tom Kyte
June 02, 2011 - 8:47 pm UTC

science? where are the numbers or evidence of this?

I never said rdbms is like cobol. And cobol is still very very very much alive. There are fads like C#, Java, php, python, etc that are being replaced day after day with the newest fad - that is sure.

http://www.codemonkeyramblings.com/2009/03/the-guardian-on-the-slow-decline-of-java/
http://stackoverflow.com/questions/1215946/what-will-be-in-cs-future-in-10-years


And NoSQL is just one idea supported by cloud computing and it's
not the only solution created because of cloud computing. There are many out
there. If an architect is smart enough, the data integrit


there you go, now you are speaking sensible. change nosql to rdbms and you'll be just as accurate. And you are getting the point.

If an architect is smart enough, the data integrity should not be a
problem.


Ok, now you just lost points. That was the dumbest thing you could have said - ever. Now I know you are not an architect - you are not very well experienced in many types of systems. Can google afford to lose a penny or two here or there? Perhaps. But perhaps you have never worked on a banking solution - or anything that requires actual accuracy. That is possible too.

And we can and do beat that computing power. Things like financial institutions actually require the equivalent of a two phase commit when moving a kabillion dollars from a to b. We are not talking micro-cents - we are talking money. We are talking "your employee review". We are talking "your paycheck". We are talking "your confirmed reservation for your honeymoon", we are talking 'anything that you sort of really count on actually happening". We are not talking about 0.001 cents for a clickthru - where no one gets hurt if it didn't happen. We are talking about your blood test that had to happen before your surgery.


We are not indifferent to it, we are just cognizant of the fact that our strengths are things that are not only going away - but will be more and more valued as everything becomes digital.

Oh - by the way - so sorry, we lost your birth certificate, apparently you never really were born - that is so bad that you cannot collect social security or receive medical benefits yada yada yada. But on the bright side - you can complain ad-nauseum on face book - they'll keep most of your complaints I'm sure. (not really - but only because a health care system would actually use transactions and such to preserve the data...)



You'll be an architect some day when you realize there are many hammers and many types of nails and most of them won't become obsolete in your lifetime (although some will - many will - but - many won't).



oracle

Sam, June 02, 2011 - 9:52 pm UTC

Tom:

Many people (dumb) have been saying that oracle is dying since 1990 when MS came up with the free SQL server.
Then it was MySQL the big thing that is going to kill oracle.

The truth is all of this turned out to be 100% BS. just check out the market share of oracle or check the number of licenses they sell every quarter on their financial reports to verify that.

Oracle has grown to a big giant since 1990 with 50% market share (more than MS and IBM together).

People who think XML or flat text files can replace RDBMS truly do not understand much about OLTP systems or OLAP or data warehouses. try designing a banking application using these methods and you almost gurantee you will end up bankrupt pretty soon.

The last two postings show a great level of ignorance about relational database systems which have been the dominant systems for the last 20-30 years. most likely they will continue for another 20-30 years in the future.

Object based RDBMS still have very small market share comapred to RDBMS. People who keep talking flat file databases will end up like dinasours too.

Oracle NoSQL?

Oleksandr Alesinskyy, October 05, 2011 - 6:48 am UTC

Tom Kyte
October 05, 2011 - 10:53 am UTC

I would simply write what I wrote the first time:

What I've seen happen again and again and again is that when something truly useful database wise evolves - so evolves the RDBMS. There are lots of fresh starts that get subsumed over time. There are many things in the database right now that you need over time and that would take a long time to re-invent. And remember (this is important), these specialized databases are just that - specialized. They are not general purpose - they are very good at what they do - but they do not do it for everyone. And they will end up being abused (just like XML, and all 'technologies' like that have been) and over used, used in the wrong place.

@RDBMS v NoSQL September 13, 2010

tobias, April 23, 2012 - 5:20 pm UTC

A followup to Rob's video link was that two days after I saw the same video at another link I saw this : http://blog.foursquare.com/2010/10/05/so-that-was-a-bummer/

Spoiler = the MongoDB backed 4Square suffered an 11 hour outage. NoSQL is not a panacea. All systems are subject to faults, but the DNA of RDBMS and deep history in implementation [30 years of transactions, ACID, etc) includes anticipating and mitigating issues to a greater degree than NoSQL.

DBA role in NoSQL,

A reader, November 30, 2012 - 11:24 am UTC

Database administrators play a significant role in RDBMS. Besides helping development team (related to schema and their data), database has rich features to offer where administrators play a big role (like backup/recovery, replication, HA, etc).

One of the primary feature of RDBMS is data consistency. There are numerous tasks in the background running continuously to offer this feature (waits like buffer busy waits, latch contention, etc are seen due to the work does for providing data consistency).

Now in NoSQL, data consistency is relaxed a bit. When a NoSQL is thought of, it primarily consists of bunch of programs and the hardware. The first one is taken care by development/architects and the second one goes to Infrastructure team. What is the role played by a DBA in NoSQL? If installation, configuration, maintenance is a task, then DBA wouldn't have a long future in this field.

Thanks,

Tom Kyte
December 03, 2012 - 8:05 am UTC

data consistency is relaxed a bit. many times more than "a bit" :)

does anyone back up these databases?
configure the environment?
monitor the processes?
capacity plan?
perform maintenance?
etc....

follow up,

A reader, December 03, 2012 - 9:22 am UTC

Thank you for your response. The question you asked are definitely a YES in RDBMS but my question is do those have a YES for NoSQL as well. RDBMS have been a pivotal in many corporates. The companies would have 10's and 100's of databases for their various applications and a need to look after them is very high. In the same line, I don't know yet whether NoSQL would be spread like an RDBMS in big corporates. Until then, I really don't see a need for an exclusive DBA and my answer to your questions are pretty much NO.

Michael Kutz, December 11, 2012 - 4:05 pm UTC

Tom,
I'm sure you've seen this:
http://docs.oracle.com/cd/NOSQL/html/javadoc/oracle/kv/exttab/package-summary.html

You can now SELECT from a NoSQL database.

MK


Oracle -onsize fits all - enterprise database is here to stay

Bala, June 07, 2013 - 2:32 pm UTC

I have been following asktom for 14 years, and seen people to come-up with requirements suited to that time period. Java, web, data warehousing, OLTP scale, analytics etc, and got ideas/answers from Tom on how to do this in oracle. As you have mentioned in the original response, as requirements evolve, oracle has evolved too.

Any true enterprise is going to have many different needs, and imagine having a separate platform for each individual need, it will be a maintenance night-mare, and needless to say it will blow up the TCO (software license cost is just a part of the TCO). This 'one size doesn't fit all' argument is true only for very rare cases, how many people need to scale to the levels of facebook/google?

Architects should put requirements into test on existing enterprise platforms (oracle) before deciding on noSQL etc, and also when estimating costs include build/run/support cost for the life time of the system.





Future of RDBMS

Vishal, October 15, 2014 - 5:53 am UTC

Hi Tom,

I was going through this article nosql vs RDBMS, text vs RDBMS, XML vs RDBMS, object oriented storage vs RDBMS

And I'm completely convinced that when we require accuracy RDBMS stands strong against each alternative. However This article is almost 4-5 years back.

Now people are coming with solutions/applications with theses alternatives (just to quote one application example workday) which are based on theses alternatives and proving their point that these alternatives can also be used in systems where we need accuracy.

Do you still feel, RDBMS is going to stay here after 10 years or so and if yes I would really appreciate if you could provide points why do you think so?

create tables in oracle nosql db

Tin Hoang, April 06, 2015 - 11:19 pm UTC

Hi! can i ask you some questions?
1. i'm using oracle nosql db 12cR1, when i create tables, i have a following problem:
kv-> table create -name customers
customers-> add-field -name userId -type string
customers-> add-field -name fullname -type string
customers-> add-field -name birthday -type DATE
Invalid argument: DATE
Usage: add-field -type <type> -name <name> [-not-nullable]
[-default <value>] [-max <value>] [-min <value>]
[-max-exclusive] [-min-exclusive] [-desc <description>]
[-size <size>] [-enum-values <value[,value[,...]]>]
<type>: INTEGER, LONG, DOUBLE, FLOAT, STRING, BOOLEAN, BINARY,
FIXED_BINARY, ENUM.

Please help me! Thanks!

2. i have a 'User' Table and i insert data into this table is Ok, but i create 'User.Folder' Table(child table of User table), but when i insert data into this child table and run 'exit' command, data wasn't insert as the following:
kv-> put table -name User.Folder
User.Folder-> add-value -field folderId -value F1
User.Folder-> add-value -field name -value Report.rar
User.Folder-> show
{
"folderId" : "F1",
"name" : "Report.rar"
}
User.Folder-> exit
Error handling command exit: Primary key fields are specified out of order
User.Folder->


nice

Marcus, February 16, 2018 - 6:41 pm UTC

Today is 2018 and the rdbms is working more than ever!

radnor, February 21, 2023 - 5:59 am UTC

hi sir ,
1.) is your comment still valid in 2023 with cloud and also nosql gaining 30% of dB market? just trying to pick your brain on this.
2.) Also anything in oracle DB world to multi flatten nested json/xml file with one command?
3.) Also I saw your video where you discussed about nosql = some 70's IBM DB that failed why is it you are slow in pointing out after mongodb or nosql gained so much traction?

Connor McDonald
February 22, 2023 - 2:40 am UTC

1) my observations seemed to be that people are desiring a SQL interface more and more. Even Mongo are adding one. So I think the underlying storage structure will become less important and the ability to do SQL-like activities more so.

Having said that, Google Allow, MS Cosmos, etc all seem to be favouring relational.

2) we're at JSON_TABLE and XML_TABLE. I'd love to see us support something like DuckDB-style syntax where you just do

select * from " https:// object_store"

3) relational still looks pretty popular to me :-)

https://db-engines.com/en/ranking

(Of course, for every web site that says "db X is best", there is one that says "db Y is best") :-)