There is no basic difference between the materialized view and snapshot. Snapshot is an old term for materialized view. The only difference is that it is redefined in the later version. The basic definition is materialized view is a table that stores derived data. For example we have a master database and we create a materialized view for that master database then if we need to update certain table every 2 or 4 hours in materialized view then it will be updated. Or in other words a materialized view is a replica of a target master from a single point in time. In the earlier version of Oracle database snapshots were enhanced to enableDMLs. But with the later release version of database snapshots started to be used in data warehouse environments also. So a new terminology materialized view was introduced to address both distributed and data warehouse.