AboutCharles Barouch Expertise I can answer a wide range of questions related to Post Relational Databases, also called MultiValue databases. I'm also well verse in Business analysis, as these databases are commonly used in business.
Here's a non-exhaustive list of databases I can answer questions on:
U2 (UniVerse, UniData), D3, AP Pro, Mentor, Ultimate, Reality, UniData, jBase, Revelation, OpenInsight, Sanyo/Icon, Fujitsu, and many more.
Experience I bring more that two decades as a programmer, analyst, trainer, presenter, and advocate for these environments. I've been the President of the international U2UG, I've spoken at OSDA, RevConf, and other conferences. I Write for International Spectrum, and I have done work in multiple countries, in countless industries.
Organizations Mensa (Editor of the Regional magazine Mphasis)
U2UG Board Member
Business Manager for the NYBG
Publications International Spectrum
Database Trends and Applications
IPUA Journal
Gateways Magazine (Multimedia)
Education/Credentials I started as an English Major, but the bulk of my education has come from real world work for companies ranging from mom-and-pop sized to massive, multinational clothing and transportation companies.
Question QUESTION: I am experimenting with JDBC access to multi-value data. All of the documented examples I have found for associating multi-value fields, to create virtual tables, only discuss 2-level data. I am interested in supporting at least 3-levels of data objects within an MV file.
Do you know if this can be supported?
ANSWER: So far as I know, JDBC is limited to two levels.
However, you still have options. First off, jBase has an old interface standard, which I used to use with Delphi. Rick Wiser (formerly jBase) wrote a demo application which pulled up pictures of cars and associated them with jBase data. The software is called jBase OBjEX. Here's a link: http://www.jbase.com/knowledgebase/howto/general/windows/DelphiAndOBjEX.htm
Next, you could spend a few pennies and get mv.Net. If you do, talk to Tony Gravango at Nebula. He's a reseller and one of the sharpest tech guys on this stuff. Buying from him will get you excellent support. His address is: Tony Gravagno <TG@-RemoveThis-Nebula-RnD.com>
Or, you could pre-normalize the data to a two level and hit that version with JDBC.
You could also establish a telnet connection from your outside app and run any jBase command or program to do the rip/strip on the fly.
If you give me more details on what you are trying to do, I can give you a more targeted answer.
---------- FOLLOW-UP ----------
QUESTION: In testing it doesn't appear as though the file indexes are being used when accessing data via SQL statements.
For example, the LIST statement below executes quickly because Data is indexed. However, the SELECT statement is very slow to find all of the records.
LIST FILE WITH Date >= "05/01/2009" AND Date < "06/01/2009"
and
SELECT * FROM FILE WHERE Date >= '05/01/2009' AND Date < '06/01/2009';
Is there a way to get the SQL query processor to use the indexed fields?
Answer Chris,
Several things are in play. First, SQL does not generally get fully advantage from the native indexing. Second, many flavors of multi-value have 'secret' rules on how indexes will or won't work with multiple conditions. What I mean is, the times when an index will or won't kick in vary in in-obvious ways. Try running the SELECT and the LIST with just 'Date > 04/30/2009' and see if that puts you within the implementation rules. The third thing to remember is that SQL is not the native query language and it is flattening on the fly, so you should not expect parity of speed, even if the indexes are flawlessly incorporated into SQL.
There is a jBase tech list, run by Jim (the "J" in jBase) Idle. Contact them through LinkedIn (http://www.linkedin.com - You can link to me and I'll send you a link to their group. Jim can tell you how to get onto the tech Mail list he runs. It is an excellent resource.