How do you design a relational database schema to prevent data redundancy while ensuring high-performance read operations?