Data modeling and schema design techniques