How can I track database dependencies?
There is no easy way to do this.  Triggers don't work, as if you select from a table no trigger is fired.  The best way that I've found to do this is to have the developers track what they use.  When something is going to be dropped check with all the dev teams, and after everyone signs off, rename the object.  Then is nothing breaks for a month or to, the object can be safely dropped.