Sneak Peek at IBM 'Viper' DB2 Release
Rob let us know that Computer Business Review magazine is reporting that IBM is about to add more fuel to the database fire. The company has offered up a sneak peek at their upcoming "Viper" release of their DB2 database. From the article: "DB2 Viper will be distinct from current DB2 database implementations in that it will be able to store XML formatted data inside the database natively--XML support will not be bolted onto the side. Viper will also support relational data stores, of course, and access to those database tables using the SQL programming language."
the SQL programming language
It's a query language. Ffs, the name even says so.
Although, on second thought, the name also says it's structured.
Not "peak". Sheesh!
I've had a look at the whitepaper. I think it's a fantastic idea, and Oracle will be gnashing their teeth and fuming. This is way beyond what Oracle do for XML.
Note to ACs: I won't mod you up, even if you are being funny or insightful. So take a chance! It's not real life!
Talking about native XML databases... My company can't find a decent one, preferably open source. Any suggestions?
If Microsoft was mass, stupidity would be gravity.
Its a 4GL with XML inplace of SQL?
Most of the old 4GL databases are something on the order of 10,000 times faster than any SQL I've ever seen.
This could give them a massive speed increase.
But what do I know, I've been running major databases in flat files for decades because I figure a modern OS/VM system can cope with 1 gig of real data faster any combination of data+database over head in the problems I deal with.
Now there is only one thing stopping me using it.... the price.
Seriously though I would like to see a (native) XML datatype in Postgres that would be a nice little extension.
Wait, don't tell me it's already got one and I missed it :o)
I used to have a better sig but it broke.
Back when IBM bought Lotus, Notes was a very unique platform for document databases. I wonder if they've taken the old Notes document database concept and exapanded it to XML. IBM owns so much esoteric intellectual property; you would hope they could find some interesting overlaps.
As IBM indicates in their press release, they're making sure it integrates with PHP as well.
BTW, the register has some good coverage on the new XML integration.
I am the vinder viper!!!! I vill be there in three months!!! I come to vipe your vindows!!!
IBM reckons that the addition of native XML support will expand the $7.8bn relational database market by another $1.4bn. And IBM wants to get the bulk of that additional XML-related revenue for databases.
Sql support has been on the most wanted list for most companies for quite some time now. With Web Services being used everywhere, and most data formats going XML, representing all those in old-style tabular form and querying them is such a pain. Now, Sql Server 2005 and Oracle have excellent Xml support right now, not next year. Which means IBM, you are late. The deperate switchers are already switching (I know many who did to MSSQL 2005). And many for whom it is desirable have been playing around with it for atleast a year now. By the time Viper is done, they would already be running some database which supports Xml.
Which not only means that you would get very little of the Xml pie, but also that you will have to work real hard to make sure your existing customers don't move to Oracle or MS, because they want Xml support much earlier.
Life is just a conviction.
Sql support has been on the most wanted list for most companies for quite some time now.
Indeed, SQL support is often the first thing I look for when shopping for a database.
I wonder what the price point for Viper is going to be in comparison. I already know what it is for the various versions of SQL Server 2005. Ouch! I'm waiting for my Enterprise and Developer versions to show up now so I can play more (I've been playing with the betas for a long time now as I do DBE work as well).
"[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
for real time applications. DB2 is a good warehouse DB, good for batch processes and such.
However every time I had to use DB2 for real time applications I wished I could switch to Oracle (but noone gets fired in the banks for buying IBM and I must admit those IBM guys know how to butter the sales to the management with all those golf subscriptions, hockey tickets what have you.)
When IBM finally adds rollback segment to DB2 then I won't be as upset about DB2 being pushed onto my real time projects.
You can't handle the truth.
The first thing we look for is the mauve databases - we need all the ram we can get.
If you think imaginary property and real property are the same, when does your house become public domain?
Substituting 'one of a kind' for 'unique', your sentence reads....Notes was a very one of a kind platform for document databases.
Writing "very unique" is akin to saying "it's very daytime."
Why does proper grammar matter? Because when it's not used, it dings your credibility. Whether that's fair or not is moot - it happens. Moreover, it sidetracks your reader. Instead of reading what you've written, the reader might respond with a pendantic off-topic comment about grammar instead of thinking "gee, what an interesting comment..."
So it's not the storage that counts, it is the ability to extract useful information from the text field/clob without requiring a great amount of processing overhead. Which is where I wonder how useful this is except in situations where there is very little post-processing or querying to be done against the XML. For example, if I am always just going to render the XML or pass it along without any post-processing. Even then, in terms of processor time, etc. it just isn't that hard to write good code to pull the data from a regular SQL database, output it as XML, etc. thus gaining gain all of the other advantages that a modern dbms has over flat file storage without imposing the dreadful data overhead required for all of the xml tags, etc.
Am I missing something?
...Open Source isn't the only answer -- but it's almost always a better value than the alternatives...
I call prior art!
"In the game of life, someone always has to lose. To me, if life were fair, that someone would always be Oklahoma." -DKR
Yea, sure.
IBM had a serious DBMS (IMS DL/1) a decade before Oracle even existed.
Codd and Date were IBM Research follows weren't they?
I never have been impressed with Oracle's product or the bullshit that goes with it (or their fanboys).
Don't tell me you haven't heard this old chestnut...
Q: What's the preferred hardware platform for Oracle?
A: The salesman's slide projector of course!
Viper will also support relational data stores, of course, and access to those database tables using the SQL programming language.
Thank you Captain Obvious! Until I read the headline on slashdot, I was concerned the new DB2 might not support SQL queries. Now I can sleep tonight.
On a radical tangent, I was thinking of buying a new car. Has anyone heard if the new cars from GM have wheels that turn? I'm not sure because it doesn't say on the website anywhere. I really hope the new cars have wheels that turn. If the wheels didn't turn... that'd be like a database without SQL... or something.
Might as well nationalize Oracle Corporation at the same time!
For processor intensive searches, you have the option to throw hardware at the problem, moving up into RISC and mainframe platform's if needed.
I think that all the folk saying that "XML is bad for databases" are dismissing it far to quickly. Let us think about the general case of "marked up" data being included in a database.
First, is there a difference between doing this in a relational database versus another kind (say object DB). Perhaps so, but I wish to focus on RDBMS since it is the one that is on topic here and the one that seems so counterintuitve.
Marked up data (XML, HTML, perhaps even SGML) consists of field values _and_ the schema of the fields themselves (even if not always the base data type). Whilst it may be necessary to have the grammar to be certain about the full domain of the *ML there is enough in the marked up data to construct a record from the input data. Think about it, this means that each record arriving at the database contains some information about the schema of the record as well as the data itself.
A database that took this *ML and integrated it natively would, in my world allow the user to create tables with an indeterminate number of fields that could vary from record to record whilst still allowing normal RDBMS functionality.
The complexity of such an implementation would be high, particularly within the context of a database that still has good indexing, table management and performance. Foreign keys would be an intriguing challenge. There is nothing about the problem that is inherently unsolvable but performance would be a real challenge.
I don't think that this functionality is a category killer. But I can imagine why some people love the idea. Lots of people would like to be able to define records in their RDBMS that have arbitrary fields that the designer of the schema did not know about when the database was built. SQL does not cope with this scenario at all. However in my view correct normalisation solves most of these issues and makes the need for native XML unnecessary. Perhaps it would have been easier for IBM to ship DB2 with a copy of McGovern and Date.
"The first thing to do when you find yourself in a hole is stop digging."
I see the captain saying:
;-)
'Operation Cobra!'
For americans (hey, I am in *that* mood today ok), I mean Queen Latifa saying 'you didn't jus', or 'yo moma'.
Get the door, it is France! They want their little statue back!
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
I was thinking in terms of globalization ;-)
Scott McNealy to Michael: "Suck my Sun!" Michael Dell to Scott : "Lick my Dell!"
Will it still commit partially-completed transactions when network connectivity between host and client break? Man, that's a feature I really loved. 18 months ago, even IBM reps told us "stay on Informix until the next major release." Now that the release is finally here, we've moved to Oracle.
All DB2 flaming aside, how many other enterprise-class organizations looked at DB2 and took a pass? If you picked it, what did it do better than the commercial competitors? Just because we ditched it doesn't mean I wouldn't care to understand where others in the same situation have landed.
Amateurs discuss tactics. Professionals discuss logistics.
AFAIK, DB2 didn't get triggers until v5, which was released in the late 90's. Oracle had triggers probably 15 years ahead of IBM.
DB2 has been roadkill for Oracle for a long, long time. If Oracle hadn't a) bet on Itanium and b) mouthed off about IBM benchmarking Oracle on POWER in preference to DB2, Oracle would still be the #1 TPC-C performer (and Oracle still beats DB2 on the same hardware, AFIAK).
DB2 is cheap, but I would never recommend it to a non-IBM shop. You end up on an AS/400 before you know it, and that is not a nice place to be.
Wasn't XQuery supposed to replace SQL for searching for XML formatted data in a database? What happened to that. ISTR that IBM used to be hyping it fairly strongly as "coming soon!"
And why the heck do people think that XML internally is a good idea? XML is little more than a hierarchical interchange format, a superior .csv replacement. You might as well use TCP/IP for local interprocess communication while you're busy adding buzzwords to your implementations in a lame attempt to be hip.
A good example of trendy technology over sanity in this manner is NVidia's firewall software. Rather than provide a nice, tight control interface, they run a freakin' Apache server so they can provide an HTML control interface. Now, their NForce4 HW firewall is supposed to ease the load on the CPU. Installing a full-blown web server (which uses gobs of RAM; WTH, there are lighter HTTP servers than Apache) just to handle the interface kind of severely reduces the presumed benefits, I think, including the security benefits. I can only assume that either 1) they wanted a remotable interface (but who the heck is using an NForce4 mobo with Windows as a dedicated firewall box? You gotta be nuts) or 2) their developers wanted in on the la(t|m)est trends.
FFS, is the whole world insane? Yes, yes it is.
> DB2 makes mistake when it decides access path and to avoid the mistake, they say you have to use staic sql, bind it, and never rebind it.
Bleh, that's not a fix, it's a temporary patch. You probably had design or a administration problem. Most db2 developers I know use dynamic sql primarily. Static is only if you're building something that really has to scream.
> Because of it, the failure of DB2, they said you have to use SQLJ
once again, go back to design. DB2 has the most sophisticated optimizer available, if it is unable to figure out your joins you've got a design problem. Well, 99% of the time anyway.
> Then how does IBM make PHP use static SQL?
> They are making a precompiler for PHP?
it doesn't - if you're using perl, php, python, vb, etc - you're using dynamic sql. i haven't bothered with static sql since the c/cobol days.
> I have no idea and all I can say is IBM is stupid.
well, you're at least half-right - you have no idea what you're talking about.
A few people have asked whether DB2 is going to support XQuery, or said that it won't, or that putting XML in databases is stupid, or that there are no advantages to having XML in relational databases.
The IBM article does say that their Viper product will support XML Query (it's also known as XQuery).
So yes, looks like they will be supporting XML Query.
Is it a good thing? Some pretty smart people seem to think it's a good idea, so maybe it's worth at least taking the time to listen to them.
If the only XML you've dealt with is the result of marking up relational tables, you might not see much advantage.
If you have a lot of XML documents, though (say, five million) that all validate to an XML Schema, you know some things about them. You might know, for example, that all of the price elements contain numbers. You might know that the description elements may contain embedded partnumber elements intermixed with the text, and that those partnumber elements contain part numbers formatted a particular way.
A database can build an index based on this sort of information, and can do very efficient searches and "joins".
You might also think about what you could do if you had all of the XHTML documents from some major Web site (perhaps an Intranet corporate site, or maybe your own personal site) stored in a database in such a way that you could easily make different views of the information.
I think the real niche for XQuery might be as middleware: the ability to run queries against multiple databases, whether XML or relational or flat file or whatever, without caring about how the data is stored, can be very interesting, not to say useful.
ISO SQL has also standardised on how to map between SQL and XML Query data types, and on how to evaluate XML Query expressions embedded in SQL expressions. The Java Community Process has been working on XQJ, a way to reach out to XQuery data stores from within Java.
The XML Query Home Page (disclaimer: I maintain this) lists some 45 implementations, both proprietary and open source. Not all of these are complete, but, as others have noted here, XML Query is a W3C Candidate Recommendation: we're asking for public feedback from implementors, and trying to make sure that the specification is clear and precise enough that implementations all work the same way.
I think XML Query support in SQL databases is likely to become pretty widespread. Until it is, you can also use some open source implementations that support JDBC, as well as one or other of the commercial implementations that support query optimisation over external SQL-based data stores.
Live barefoot!
free engravings/woodcuts
When IBM finally adds rollback segment to DB2 then I won't be as upset about DB2 being pushed onto my real time projects You seem to be implying that Oracle's implementation of it's roll back mechanism via rollback segments is a good thing????? Don't get me wrong, I like Oracle's concurrency model, but the implementation using roll back segments is far too problematic to consider it a good thing.
Liked the chestnut. Agreed Oracle is a screw up company, Sales have had guys like "Genghis Khan" BUT the database is very much a leader.
Scott McNealy to Michael: "Suck my Sun!" Michael Dell to Scott : "Lick my Dell!"
Dude, you're on crack. Seriously. I write Java and have been hitting DB2 from Java (j2ee-ish stuff) for years and I have never used anything but JDBC. I've never so much as heard someone mention SQLJ.
This is wrong - a complete outright lie. Want some examples ? Here's one :
Using Hibernate to Persist Your Java Objects to IBM DB2 Universal Database
There you go, a nice article from developerworks, an IBM developer site, covering Hibernate and DB2....and they use JDBC, no mention of SQLJ anywhere.
Thanks for coming out, now crawl back under your rock. Someone with mod points please troll the parent - I don't have any right now.
Here
IBM recommends you to use SQLJ they believe it's better than JDBC
You have to know if you want to control your access path, there's only way to do it is just using static sql. And if you don't use static sql, DB2 will make big miss and it won't use any index to search and it consumes huge time.
I don't care if you don't believe this.
Read some red books.
Hey, can Oracle yet tell the difference between a NULL value and an empty string (as required by the SQL spec)?
I wish I had mod points to mod you up.
Photos.
You can store XML according to a schema, and index it using B*Trees, or you can store it as a LOB and index it with function-based indexes or text indexes. There are tradeoffs to either. Here's a document explaining Oracle's implementation, though you need to sign up to OTN (free reg)
/ appdev.101/b10790/xdb01int.htm#sthref46
http://download-west.oracle.com/docs/cd/B14117_01
-Stu
> You have to know if you want to control your access path, there's only way to do it is just using static sql. And if you
> don't use static sql, DB2 will make big miss and it won't use any index to search and it consumes huge time.
Dude, you're thick. This article merely shows that some people at ibm recommend sqlj for the fastest possible performance and a few other reasons. So what?
And so you're bummed that static sql is faster than dynamic? Why? You should be happy you've got the option. If you don't like it just don't use it. You don't have to you know. Most people don't.
And the thing about relational databases is that you *don't* want to control your access paths. That kind of thinking went away with their hierarchical predecessors. Plus, static sql doesn't really allow you to control your access paths anyway - it just ensures that things don't change until your next rebind. Big deal. They shouldn't change for dynamic sql either typically (unless tables grow substantially in which case they should).
Here's the thing - you clearly don't understand:
- databases
- db2
- db2 apis
You can blame db2 all you want. But you need some serious coaching, mentoring, education, training or something.
>You don't have to you know. Most people don't.
NO.
You have to use SQLJ because there will be a problem when you don't use SQLJ and static SQL if you use DB2.
The problem is, there's possibility of perfomance problem always with dynamic SQL. And DBA feels fears and forced us to use SQLJ.
That's the problem.
I don't want to use SQLJ, but still I have to use it.
*You* have to study about DB2 access path problem and think why IBM still push SQLJ. It's not a option. You have to do it or you will have a problem someday.
>>BUT the database is very much a leader.
A leader in sales revenues perhaps.
It's not a leader for any technological or performance advantage, that's for sure.
I guess it's because it's ubiquitous in the industry, because of all those 'Genghis Khan' salesmen (thus the old chestnut).
Oracle is not fast enough for VLDBs (see CCA's Model 204 for ultimate speed) and is not particularly feature-rich (see IBM's DB2 for all-round features).
Oracle muddles along in the mid/nearly-large DBMS mainstream, which I guess is where most sales are, so it's well positioned in it's market I guess - but a technological/performance leader? No way.