I’d like to add that I have some pretty bad experiences with changing the type of an existing attribute, even from simple types like number to string. Changing the name of the attribute is no problem, but for other more substantive changes it’s best to create a new attribute that replaces the old attribute.
For changing the relationship type between two BOs I agree with customaware’s approach.
Also, note that any changes to the table structure is only effected after putting the BS under test. It’s useful to take a step by step approach, put the version under test after each step and preferably check the SQL table definitions with a database tool to see if the result is as intended.