Why does a RDBMS require a structured datatype for each column? I'm wondering what the advantages are of requiring this as opposed to letting the user input what they want. Does it help with the amount of space used by the database or prevent errors? How do you handle relationships between collections in MongoDB if you can't use joins? Could you explain what does it mean that denormalized MongoDB documents can lead to inconsistency across shards?