[Tutor] table to dictionary and then analysis

Alan Gauld alan.gauld at btinternet.com
Wed May 16 17:03:06 CEST 2012

On 16/05/12 12:27, Russel Winder wrote:

>> As a matter of interest why?
> Because there are alternatives that need to be investigated on a per
> problem basis for the best database.

I agree, but in this case SQL seemed like the most likely fit of the 
ones I knew. however:

>          SQL
>          MongoDB

I know about these

>          CouchDB
>          Cassandra
>          Neo

These are new to me.

> etc. Python only has SQLite3 as standard but there are alternatives. I
> have been using PyMongo quite successfully.

Python comes with several storage/access options including shelve, gdbm, 
ldap, cobfig files, XML, in addition to SQL.

> It is not clear that the original table works better with the relational
> model compared to one of the key-value stores or document stores.

Most key-value stores are optimised for fast queries of a single type
and generally not great at grouping or ordering. They also tend to major 
on flexiblity of data format. The OPs requirements suggested intelligent 
filtering of a fixed record format which is one of the areas where SQL 
works well. The other side of the coin is that the data is essentially 
single table so the relationship management aspects of SQL would not be 
needed. So I agree we don't have enough detail
to be 100% sure that another option would not work as well or better.

But most other options require learning new (often bespoke) query 
languages and have limited user tools. All of these factors need to be 
included too. Mongo et al tend to be better suited, in my experience, to 
machine access applications rather than end user access.

> There are various articles around the Web comparing and contrasting
> these various models. Some of the articles are even reasonable :-)

Wikipedia is my friend :-)

Alan G
Author of the Learn to Program web site

More information about the Tutor mailing list