I've been experimenting a bit with CouchDB again recently and started thinking more about what it means to see non-relational databases as different from rather than better than traditional relational databases. One idea that I wanted to explore is that these differences mean that we do not have to use these new technologies in the same way as a traditional database layer. A notable feature of CouchDB is that it delivers data over an HTTP connection, so it can deliver data to the web without the need to write a layer of software to go in front of it. It can also store files quite happily. This could hugely simplify the server side of many phone, tablet and Internet TV apps so I thought I would have a go at building an experimental proof-of-concept app for the Samsung Internet@TV platform that gets both its metadata and video files from a CouchDB server.
Like most developers I spend a lot of time keeping my skills up to date as new technologies and demands emerge. Recently I have been learning a bit about non-relational databases, specifically CouchDB, to understand what this approach means and how it might be useful. I still have a lot to learn about this technology, but thought it might be interesting to share and reflect on what I have learnt so far. In this post I will attempt to introduce CouchDB, how you use it and some of the concepts involved. I won't be able to show the full capabilities of CouchDB in one post so a lot will be missed out, including some of its more powerful features such as replication, but hopefully it will be a start.