We'll be hosting our next meetup with Seattle Tech Startups (http://www.seattletechstartups.com/doku.php#next_meetingapril_17_mongodb)
MongoDB – from "humongous" – is an open source, non-relational, document-oriented database. Trading off a few traditional features of databases (notably joins and transactions) in order to achieve much better performance, MongoDB is fast, scalable, and designed for web development. The goal of the MongoDB project is to bridge the gap between key-value stores (which are fast and highly scalable) and traditional RDBMS systems (which provide rich queries and deep functionality)
One of the challenges that comes with moving to MongoDB is figuring how to best model your data. While most developers have internalized the rules of thumb for designing schemas for RDBMSs, these rules don't always apply to MongoDB. The simple fact that documents can represent rich, schema-free data structures means that we have a lot of viable alternatives to the standard, normalized, relational model. Understandably, this begets good questions:
*Are foreign keys permissible, or is it better to represent one-to- many relations withing a single document?
*Are join tables necessary, or is there another technique for building out many-to-many relationships?
*What level of denormalization is appropriate?
*How do my data modeling decisions affect the efficiency of updates and queries?
In this session, we'll answer these questions and more, provide a number of data modeling rules of thumb, and discuss the tradeoffs of various data modeling strategies.