Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

New Question Version:

I've got the opportunity to spend 3 months getting good at something, its going to be either a NoSQL technology like Cassandra or optimising relational database systems. I slightly prefer trying the 'flavour of the month' cassandra but would also love to improve my relational database skills which would be very practical. This isn't about which is better, its about my employment prospects and where I am going to get work. I know there is going to be more work in relational databases, but are we going to see a bump in the level of jobs wanting/requiring NoSQL experience?

Thanks guys, I'm really impressed with the amount of advice people have given so far.

Old version:

I'm half way through my MSc and am thinking about my dissertation which I get 3 months to work on full time. Im very comfortable with the traditional Relational Database, the question is should I work on a project where I get a good understanding of something like Cassandra, or should I really push my RDMS knowledge to the limit.

Getting great at something like MySQL is a solid safe option, will there really be much work for me with Cassandra in my tool belt? I would love to do either....

Thanks for your opinions and advice.

share|improve this question

closed as not constructive by Robert Harvey, Yannis Rizos Feb 15 '12 at 21:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Right, where's the both answer... up –  Orbling Jan 12 '11 at 16:56
Are you choosing one over the other or just trying to focus your project? –  JeffO Jan 12 '11 at 17:46
Just deciding which one to focus my project on, I want to be able to go to employers in a few months and show them something that will make them hire me. I do have other options but these two are the front runners. –  beck Jan 12 '11 at 18:05
Remember: You will get your masters this year, but your thesis will be on your resume 20 years from now. Thinking long-term, I would consider playing with newer stuff. –  Job Jan 12 '11 at 23:28
If you want to ask a new question, please do that instead of editing your old question. Also please note that career advice is off topic. –  Yannis Rizos Feb 15 '12 at 21:41

6 Answers 6

NoSQL and traditional RDMS are used in two different contexts.

The first is optimized for high performance and distributed architecture, while the latter is suitable for more traditional businesses. NoSQL is not very suitable for datawarehousing, or more fine grained analytics.

Please note that you can handle heavy load with relational database by doing proper optimization, and maybe with some more money ;)

share|improve this answer
Thanks, your right they are different, but I am sure you agree there are cases where people would be better off using a Relational database rather than a NoSQLesq solution (i've seen this a few times) and vise versa. Im wondering if learning proper optimisation of relational databases e.g. to scale well, will result in more potential work over the next few years :) –  beck Jan 12 '11 at 13:42
I think quite the opposite. Traditional databases are adequate for 99,9% of cases. Of course there are some noobs that can't get their DB to work correctly / scale, so they whine the technology is the problem. Guess what? Every company in the world is using relational DBs today. Who is basing his whole business on noSQL? NO ONE. If someone uses it - it is used only as a addition! Probably you will find it negative and unfair, because "technology is so young, bla, bla, bla", but it is what it is! –  Slawek Jan 12 '11 at 13:45
Those throwing millions at Facebook better hope NoSQL isn't a fad. –  JeffO Jan 12 '11 at 17:45
NoSQL is not a fad, but Facebook is ;) –  Job Jan 12 '11 at 23:29

You ask this like it's a zero-sum, either-or game.

In 10 years, the technologies -- the technology landscape -- the technology choices -- will change so much that this decision will be almost irrelevant.

Traditional big-business IT shops are slow to change and will stick with SQL until the very, very end. When Oracle has stopped selling their database product, there will still be big IT shops with lawyers trying to escrow the source code.

For now, just go with what interests you so that -- when you interview for jobs -- you have some enthusiasm for your choices.

share|improve this answer
It's unlikely that SQL databases will change radically in the next decade. There's too much entrenched use that the pure weight of the market will force the SQL databases to nullify any advantages the NoSQL databases have. A bit like how the weight of the browser market has forced browser makers to make javascript a high-performance language. –  Joeri Sebrechts Jan 12 '11 at 12:01
@Joeri Sebrechts: The database won't change. The technology landscape will change. The overall technology arena. The technologies for database will change. SQL will not change. –  S.Lott Jan 12 '11 at 12:16
Whatever technology is suppose to replace SQL isn't even in the theoretical stages yet, so I doubt it will become commercial and completely replace SQL in the market in 10 yrs. Microsoft already has Azure Blobs and I don't think Ellison is asleep at the wheel. –  JeffO Jan 12 '11 at 17:31
@Jeff O: "isn't even in the theoretical stages yet". Wow. That's a serious indictment of all the big thinkers out there. I've always assumed that all kinds of theoretical stuff doesn't work out for a while, then -- after a breakthrough -- takes the world by storm. You're saying that all the current theoretical work is all bust? It will go nowhere? How sad for all those PhD's. –  S.Lott Jan 12 '11 at 17:36

The work is in Relational, the work will be in Relational.

Your work might not however. NoSQL is a tool useful for very large, or very small datasets with very particular performance requirements. If you work in an environments with those requirements, then that's where your work is. You are not going to see a significant increase in the prevalence of NoSQL environments in the next six (6) months.

Your tool choice will not greatly affect your marketability. Relational experience will be ueseful in the majority of settings. NoSQL experience may or may not be directly applicable, but proof of a desire to learn and expand your knowledge is equally useful.

Your project choice should be based more on how interesting the project is to you, not the tool choice. There are upsides to learning either. Your enthusiasm for a particular problem or domain will matter more in the end for your project selection.

share|improve this answer

In noSQL you have no acid, no data validation, and when you write to datastore everything can go to /dev/null without you even noticing (mongoDB for example doesn't give any error hints).

It is suitable for some uses (eg. distributed cache, data searching)... but it always is complementary to "normal" databases. You can't just maintain the data like it is possible with normal SQL.

Where the job will be? The job today is in RDBMS. NoSQL is just a hype. Next year no one will remember it. Want to have speed - you just go with conventional databases and drop foregin keys and normalization.

Want to have 100% perfect data - relational + transactions + foregin checks and speed will suffer a bit.

Want to do distributed cache - memcache or you can use mongo. Mongo is just like memcached that can write the data to disk. People don't realize that because of marketing hype, but your data is not protected in mongo (like in memcache). AT ALL!

share|improve this answer
Your comment is more an indictment of nosql databases than an actual answer to the question. He clearly said in his question (unless it's been edited since you answered) that he's not asking about which is better. –  Jordan Feb 17 '11 at 8:07

The correct answer is to master all data storage options because you'll need all of them.

If the goal is "a project that will get me hired somewhere cool" I'd run with NoSQL today. Main reason being is that it is alot more forward looking and probably will set you apart from the other candidates.

share|improve this answer

Since you already are familiar with SQL, you might as well go with NoSQL for your project. Out in the 'job world', you'll likely have to work primarily with SQL databases, so its unlikely you'll get a random 3 months to play around with NoSQL databases again. The extra exposure to alternate storage techniques will broaden your understanding of databases.

Plus it'd look neat on a resume, right alongside SQL, which you can already list.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.