Databases For System Design: Choosing Under Constraints