If you create external content types, you can add associations between them that correspond to the relations between the tables in your database. For each external content type, create an external list that you can use for adding/updating/deleting your data.
For displaying master/detail records, you could add multiple webparts on a page and create connections between them. By creating the connection, the list displaying detail records will be filtered after selecting a master record.
If your database has m-n relations, you'll want to create your external content types in Visual Studio because SharePoint Designer 2010 only supports 1-n relations.
I don't know if it's the best way, but BCS is a big improvement over BDC and I think it can cover most if not all of your requirements. (depending on the complexity of your data)