The most effective way I've used it was in Oracle where I could use schemas and packages to categorize the data repositories. The method I used was to require the procedure or view results match the associated interface. The calls in the backend code were similar to what Sam illustrated above, with some additional checking to insure valid objects were being returned.
As with everything, unit testing of these calls was essential, including checking the time to insure the queries were efficient.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.