Algorithms For Relational Database Schema Design