A view is a virtual table. Its data are not stored in the database. Instead the view definition is stored and the definition is executed each time the view is called to populate the view with the data as of that instant. You save space and avoid storing duplicate data in the database by using a view. A materialized view, which was called a snapshot before, is a physical (as opposed to virtual) table containing the data defined by the materialized view and occupies physical storage and causes data duplication. You can update a materialized view via one of three options, FAST, COMPLETE, FORCE.
If the view definition is too complicated involving several tables and complex WHERE clauses, the dynamic execution of the view may take too long. In that case, you may create the view as a materialized view so that the data are already available in the database and the real time execution of the view definition is not needed. But depending on the refresh schedule the data in the materialized view may not always be up to date as in a view.
If you need more information, you can post in this web site or send me a private message.