incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nitin Borwankar <ni...@borwankar.com>
Subject Re: CouchDB vs. SQL
Date Thu, 20 Aug 2009 20:36:50 GMT
Hi Steve see my comments below
37% of all statistics are made up on the spot
-------------------------------------------------------------------------------------
Nitin Borwankar
nborwankar@gmail.com


On Thu, Aug 20, 2009 at 4:05 PM, sjtirtha <sjtirtha@gmail.com> wrote:

> Hi people,
>
> I'm new in CouchDB. Before I looked into CouchDB, I was kind of
> investigating what other no-SQL DB exists in the world.
> There are MongoDB, Hadoop, Hypertable, Cassandra (correct me if I
> misspelled
> any names).
> And I found out the two big no-SQL DBs are Hadoop and CouchDB. Hadoop is
> very interesting, but it is very big and complicated.
> On the other hand, from some presentation I have the impression, Hadoop
> should not use for a normal web application.
> It is more for analytics data like Google and Yahoo do.
>
> So I came to  CouchDB, which is also very interesting from the design and
> implementing language(Erlang) point of view.
> But somehow, it still does not 100% convince me to replace SQL with
> CouchDB.
>
> One of the reason I like CouchDB very much is the  schemaless thing.
>
> But I'm still not sure regarding following points:
> 1. performance. It is faster or same fast as SQL?


Faster than which database on what machine - SQL is a language.
So this is not a well formed question.  However if your overal question is
does CouchDB performance suck - the answer is
no performance will not be  the show-stopper amongst all the other concerns
you have listed.

>
> 2. how can I reduce the data tranfer between my application and CouchDB,
> when CouchDB always sends the whole document, although I only need a part
> of
> it.
>    This can be done very easy in SQL by selecting which columns should be
> retreived from DB.


CouchDB has views which alow you to select which "columns" or attributes to
send back - it is not true that CouchDB sends back the whole document in
general.

>
> 3. CouchDB support MVCC which is very good. But how is it, if I really want
> to lock a document and other people should not be able to write.


There is currently no concept of a lock  that can be associated with a user
- in general though this may be two different questions
- do oyu not want to allow anyone else to write ever? This is then a
permissions issue. Couch does not currenty have a full featured permissions
system so you will need to layer this on with middle tier logic.
If you want to not have the other person clobber your writes, MVCC takes
care of this and will append the other persons edits which you will not see
until later.

>
> 4. Can I build a View based from other View?


Not strictly but if you want to use a View to do rendering in other code
look for "show and list" on the wiki.

>
> 5. Is there any Document Model Normalization as we all know in relational
> DB? Because the Model Normalization from relational DB is a basic theory
> how
> the relational model should look like. In CouchDB, it looks like that I can
> do everything I want, but it may be a drawback for me in the future, if I'm
> not design the document model very well.
>

CouchDB is a document db so it doesn't have a built in normalization model
just as an RDBMS doesn't have a built in document model.  However it is
possible to mimic foreign keys, many-many relations etc in limited ways -
again look on the wiki.



>
> CouchDB always put HTTP and Restfull as a very important things. But I
> don't
> thing it is really complicated for SQL DB vendor to build a HTTP/RESTful
> communication layer to their DB.
>

In theory this is true - and RDBMS's have been around for many years, but
they don't seem to have managed to do it - so in practice this appears not
be simple or maybe they just don't think it is important.

Good Luck with CouchDB - hope you find it useful,

Nitin


>
> regards,
> Steve
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message