Graph algorithms for database schema design