alternatives to Firebird: sqlite [was: Firebird doesn't support MSVC 2015]

Wols Lists antlists at youngman.org.uk
Thu Mar 10 01:27:46 UTC 2016


On 09/03/16 18:06, Lionel Elie Mamane wrote:
> On Wed, Mar 09, 2016 at 06:59:08PM +0100, Lionel Elie Mamane wrote:
>> On Tue, Mar 08, 2016 at 08:44:03PM +0000, Wols Lists wrote:
>>> On 08/03/16 13:32, Lionel Elie Mamane wrote:
> 
>>>> At this point, I'd say, even more strongly than usual: the one that
>>>> will do it will decide. Upgrading to a modern Java-based database
>>>> would maybe not be that bad after all...
> 
>>> Sounds like I'd better get my finger out then!
> 
>>> IF I can get the basics in place (and to be honest it is a big if),
>>> are other people prepared to muck in and help with the bits I can't
>>> do?
> 
>> Now, specifically, duckduckgo-ing for "Pick" does not bring the
>> expected results, so if you could give me some links to see what you
>> are talking about? Thanks.
> 
> Found
> http://www.computerworld.com/article/2579803/business-intelligence/open-source-pick-like-database-being-developed.html
> which sent me to "MaVerick" which led me to
> http://www.maverick-dbms.org/doc/index.html
> 
> I see that it can act as datastore for MySQL and PostgresSQL; this
> gives the impression that it is a datastore, but there is no SQL
> layer. What do you intend to use as SQL layer? Develop one?
> 
Actually, Pick is a full-blown environment - "the database is the
computer". So it's a hell of a lot more than just a datastore. And be
careful, you might get me on to a full-blown advocacy rant ... :-) I'll
try and keep it short, but Relational Technology (ie a First Normal Form
database) is pretty much a con trick. It's a two-dimensional *MODEL*
store, not a *DATA* base. imnsho, a First Normal Form database is in
*serious* breach of Einstein's dictum "Make things as simple as
possible, BUT NO SIMPLER".

Pick, now generically known as MultiValue, is an n-dimensional database,
and can be shown to be a proper superset of relational. As a result it
is smaller, faster, and can do anything relational can do. It's quite
similar to (but a very different heritage from) Cache. And I know
bashing Oracle is a sport, but my favourite Pick war story is a port
from Pick (a variant known as UniVerse) to Oracle. After 6 months hard
work, the Oracle consultants proudly told management that a complicated
query was 10% faster on the Oracle system, than the old UniVerse system.
That is, they were proud until the UniVerse sysadmin said "you mean your
twin Xeon 800 machine is only 10% faster than my Pentium 90?".

So. My plans. Implement a string class that implements the dynamic
arrays that Pick is built on. Implement the data store - a hashed
key-value setup. I didn't realise how widely linear hashing was used
until recently, but it's the technology behind Sleepycat, behind hashed
variables in Perl, and probably a fair few other places as well.

On top of that, an integrity layer that enforces datatypes. This isn't
part of standard multi-value, but imho is a massive omission. It'll be
optional to switch it on, but if enabled it will ensure datatype integrity.

On top of that we'll need a Pick shell, and a SQL shell.

I'll then need a Basic compiler. A lot of stuff gets done in the
database - should be done there - and it's needed for that. That's where
I came a cropper last time I tried. And I got the impression StarBasic
isn't being actively cared for - maybe these two could get together :-)


I know Pick isn't the easiest of topics to google for, but some links
for reading ...

The wikipedia page (what else :-)
https://en.wikipedia.org/wiki/Pick_operating_system

A bit of a critique of Relational vs MultiValue (written by yours truly)
http://grokthelaw.freeforums.net/thread/250/oracle-google

A website about Pick. Note that the second like is again by yours truly...
http://www.pickwiki.com/index.php/Main_Page
http://www.pickwiki.com/index.php/MVDefinition

Rocket Software now owns most of the variants of Pick out there. They
bought U2 off of IBM (which I strongly suspect IBM sold because it was
growing so fast it threatened to swamp their DB2 division - when they
sold it it was 1/3 of the division, and it was reportedly growing at
double figures per annum ...) They then bought out the original Pick
Systems.
http://www.rocketsoftware.com/solutions/dbms-and-application-servers/learn

Then a couple more snippets - I don't know if you've heard of the data
warehouse system called DataStage - owned by IBM. They acquired it when
they bought U2, and they kept it when they sold U2 off. It was based on
UniVerse, a MultiValue system. A large chunk of the banking system
software market is owned by a company called Temenos, and it runs on
jBase, another MultiValue system. If you happen to see a green screen in
a travel agents, this is almost certainly the original Pick - it pretty
much owned that market - and I strongly suspect it's still underneath
modern gui software.

So while you may not see a lot of Pick, there's actually an awful lot
out there. And if you follow my links, you'll see I'm pretty
comtemptuous of relational TECHNOLOGY. I actually think the maths is
good, but FNF databases? No.

To put it bluntly, I think a pure relational database is 50% good solid
maths, and 50% cargo-cult ju-ju science ... :-)

(Note that I'm not aware of any modern pure relational database. I know
PostgreSQL implements arrays, and I think pretty much any modern
relational database does likewise)

I'm only too happy to go into this deeper, but don't say I didn't warn
you if this turns into an advocacy fest ...

Cheers,
Wol


More information about the LibreOffice mailing list