-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> You might be interested in NoSQL, or in databases which have no schema: every 
> piece of information is a property of an object.

I do happen to use them pretty intensively, especially MongoDB, so here are
some things they do differently:

There is no such thing as a join and each object (aka document) is
completely independent of all others.  ie there is no way to reference one
document from another as a "query".  If you need that functionality then you
have to grab relevant documents to the client and do the matching yourself.
 Because of the independence it is trivial to shard and replicate the database.

They do have indices so that queries are quick, such when looking for fields
to contain a particular value.  As an example MongoDB supports a rich set of
query operators:

  http://www.mongodb.org/display/DOCS/Advanced+Queries

And the index information:

 http://www.mongodb.org/display/DOCS/Indexes

Additionally they also provide map/reduce as an index mechanism, and in the
case of CouchDB this is the only query/index mechanism where they call it a
view.  Conceptually a piece of code is called for each document and can
return what key goes into the index as well as what value.  This allows for
very complex index key/values.  A reduce is similar to aggregate functions.
 Map/reduce is done incrementally as documents are added.

  http://books.couchdb.org/relax/design-documents/views
  http://www.mongodb.org/display/DOCS/MapReduce

MongoDB does another interesting thing for query plans.  Rather than try to
compute the ultimate correct one, it runs multiple candidates in parallel
picking whichever finishes first.  More details:

  http://www.mongodb.org/display/DOCS/Query+Optimizer

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkwFwz4ACgkQmOOfHg372QRbCwCgjnKNXwwoZOS/86yIbbzVyGjq
wpMAnA3Uu5xZjlflt1p0Qpc8Jvvek3dv
=UjLm
-----END PGP SIGNATURE-----
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to