Views can shield users from changes in the structure of the real tables if such changes become necessary.
For example, if you restructure the database by using select into to split the titles table into these two new base tables and then dropping the titles table:
titletext (title_id, title, type, notes)
titlenumbers (title_id, pub_id, price, advance, royalty, total_sales, pub_date)
You can regenerate the original titles table by joining on the title_id columns of the two new tables. You can create a view that is a join of the two new tables. You can even name it titles.
Any query or stored procedure that refers to the base table titles now refers to the view titles. select operations work exactly as before. Users who retrieve only from the new view need not even know that the restructuring has occurred.
Unfortunately, views provide only partial logical independence. Some data modification statements on the new titles are not allowed because of certain restrictions.