RDBMS vs Key-Value pair databases
Why RDBMS?
data integrity
get quality results with SQL and prevent duplicates
use SQL to access the data --> Easy.
Many more
Why Key-value pair?
horizontally scalable
Simple datasets - hashmap, associative arrays etc
Easy to put() and get()
Many more.
So, is the开发者_运维知识库re some kind of wrapper available which binds with the "nosql" kind of databases and give RDBMS-like functionality? For example: Do a JOIN or WHERE on no-sql databases? How is this idea as a masters project - "A wrapper around nosql which gives rdbms-like freedom" ?
I think MySQL fits the bill as a wrapper. One of the interesting features of MySQL is the separation from the storage engine. Thanks for asking this question it made me look it up! The current storage engines are listed here http://dev.mysql.com/doc/refman/5.0/en/storage-engines.html . If none of these storage mechanism's satisfy your need you can create another one. I've always seen this as both a strength and a weakness of MySQL as people often confuse the interface with the engine.
I know Google AppEngine's datastore provides something like this. Even the documentation on what restrictions they put on join conditions is enlightening for what it tells you about what's easy and hard in query execution.
If you can provide a similar frontend for another popular KV product, you might be onto a cool project that we would all appreciate having. But as a Masters thesis, I'd be very cautious. The abstraction of relational data is not what makes an RDBMS amazing, it's the fact that such an abstraction can actually be computationally feasible. Jim Gray got a Turing award for figuring this stuff out. First satisfy for yourself why relational interfaces to existing KV databases are not already more prevalent, and maybe you'll encounter a more tractable problem along the way.
精彩评论