A wealth of query languages for semistructured graph data has emerged, and what almost all of these languages have in common is a graph navigation mechanism, which is not usually found in their relational predecessors. However, the navigation is very expensive since it typically involves many database or network accesses. As a consequence, the optimization of the navigational part of the queries is essential for having commercially attractive query, processors similar to those for relational data. One of the most well known ways for optimizing a query in general, is to use available information in precomputed or materialized views. At the heart of our approaches is the leverage of the concept of query rewritings using views. The query rewriting is a well known problem, which has been solved and deeply investigated for (non-recursive) queries over relational data. However, for navigational queries, which are a subset of the bigger family of the recursive datalog queries, the problem of rewriting is more complex and challenging. In this thesis we study the problem in two realistic scenarios. The first one is related to information integration systems such as the Information Manifold, in which the data sources are modeled as sound views over a global schema. In such cases the "real" database is not available and what we try to compute for a query is its "certain answer according to the views." The second scenario, is query optimization using views when the real database is available, but the views are cheaper to access. In such a case we can use the database to answer parts of the query for which there are no relevant views. We propose algebraic rewritings that focus on extracting as much information as possible from the views for optimizing navigational querie