Is this SQL databases or No-SQL?
Is this SQL databases or No-SQL?
Posted Mar 24, 2014 22:11 UTC (Mon) by Wol (subscriber, #4433)In reply to: Is this SQL databases or No-SQL? by farnz
Parent article: A discussion between database and kernel developers
http://www.rocketsoftware.com/brand/rocket-u2/technical-d...
Be warned - there is an AWFUL LOT of it - it's basically the full docs for a pretty powerful database!
I'd start by reading the RETRIEVE guide. It's basically the equivalent of SQL - the query language, but it has a fair few examples. Note that it only gets data OUT of the database. To get it in there are various tools, from a basic EDitor, to fancy screen builders that read the dictionary, to programs that you write yourself. Note also that there is a SQL processor that can use sql for example update statements ...
Remember also that Pick is a complete system. You can use it as a database back-end and access it with your favourite front end tools, but you can also do pretty much everything from inside Pick if you wish - there is a full-blown programming language (DataBasic), data extraction tools, fancy green-screen terminal handling, etc etc.
Once you've read the RETRIEVE guide, look at the USER REFERENCE. It'll give you an overview of the basic system.
But imho, where Pick scores (did I say that RDBMSs don't match the real world?) is that a lot of data integrity comes as a side-effect of the way Pick views the world (a well-designed Pick database will store all the data relating to an object in a single "row", obviating the need for cascading deletes, for example ...) such that data retrieval is fast and efficient. Pick doesn't have query optimisers - it's a simple proof that any attempt at automated optimisation is almost certain to cost more than it saves. There's just no headroom for optimisation to make any improvement. If an entire object is stored as a "row", then accessing any one attribute will pull any related attributes into ram, and its "directed graph" nature means that any reference from one object to another will permit efficient retrieval of that other object.
Cheers,
Wol
