{{위키데이터 속성 추적}}
'''구체화 뷰'''({{lang|en|Materialized view}}), '''구체화된 뷰'''는 [[쿼리]]의 결과를 담고 있는 [[데이터베이스]] 오브젝트이다. 원거리에 위치한 데이터의 근거리 사본일 수도 있고, 테이블의 줄이나 열의 하부 집합 또는 [[Join (SQL)|Join 결과]]일 수도 있으며 테이블 데이터 집합에 기반한 요약일 수도 있다. 원거리 테이블에 기반한 데이터를 저장하는 구체화 뷰는 스냅샷으로도 부른다. 스냅샷을 구체화 뷰로 재정의할 수 있다.

== 개요 ==
구체화 뷰는 [[오라클 데이터베이스]]에 처음 도입된 것으로, 쿼리 다시 쓰기 기능은 버전 8i부터 추가되었다.<ref>[http://www.ecst.csuchico.edu/~melody/courses/Fall2001CSCI379/DOC/server.815/a67775/ch2.htm Oracle8i Tuning Release 8.1.5] {{웨이백|url=http://www.ecst.csuchico.edu/~melody/courses/Fall2001CSCI379/DOC/server.815/a67775/ch2.htm |date=20130928165218 }}. Ecst.csuchico.edu. Retrieved on 2012-02-09.</ref> [[사이베이스]] [[SQL 애니웨어]]<ref>[http://www.ianywhere.com/developer/product_manuals/sqlanywhere/1000/en/html/dbugen10/ug-workingwdb-s-3142433.html Materialized Views – Sybase SQL Anywhere] {{웨이백|url=http://www.ianywhere.com/developer/product_manuals/sqlanywhere/1000/en/html/dbugen10/ug-workingwdb-s-3142433.html |date=20091214083022 }}. Ianywhere.com. Retrieved on 2012-02-09.</ref>, [[티베로]]에서도 지원한다. [[IBM DB2]]에서는 구체화 쿼리 테이블(materialized query tables)로 부른다. [[마이크로소프트 SQL 서버]] 또한 색인화된 뷰(indexed view)라는 이름의 비슷한 기능이 있다.<ref>[http://www.microsoft.com/technet/prodtechnol/sql/2005/impprfiv.mspx Improving Performance with SQL Server 2005 Indexed Views] {{웨이백|url=http://www.microsoft.com/technet/prodtechnol/sql/2005/impprfiv.mspx# |date=20090118084312 }}. Microsoft.com. Retrieved on 2012-02-09.</ref> [[MySQL]]은 구체화 뷰를 네이티브로 지원하지는 않지만 트리거나 저장된 프로시저를 사용하거나<ref>[http://www.shinguz.ch/MySQL/mysql_mv.html Implementing materialized views in MySQL]. Shinguz.ch (2006-11-06). Retrieved on 2012-02-09.</ref> 오픈 소스 응용 프로그램인 플렉스뷰를 이용하여 일부 작업이 가능하다.<ref>[http://flexviews.sourceforge.net/index.html Flexviews for MySQL – incrementally refreshable materialized views w/ MySQL]. Flexviews.sourceforge.net. Retrieved on 2012-02-09.</ref> [[PostgreSQL]]에도 구체화 뷰를 적용할 수 있는데, 버전 9.3부터 이를 네이티브로 지원한다.<ref>[http://wiki.postgresql.org/wiki/Materialized_Views PostgreSQL: Materialized Views] {{웨이백|url=http://wiki.postgresql.org/wiki/Materialized_Views |date=20131130150634 }}. Wiki.postgresql.org (2010-05-07). Retrieved on 2013-09-25.</ref>

== 기본 문법 ==
<syntaxhighlight lang="sql">
   create MATERIALIZED VIEW [[VIEW_NAME]]
      [TABLESPACE ts_name]
      [PARALLEL {DEGREE n)]
      [BUILD {IMMEDIATE | DEFERRED | ON PREBUILT TABLE}
      [REFRESH {FAST | COMPLETE | FORCE | NEVER | ON COMMIT}]
      [WITH PRIMARY KEY]
      [{ENABLE | DISABLE} QUERY REWRITE
      [USING {INDEX idx_name | NO INDEX}]
   AS
   [[SELECT QUERY]];
</syntaxhighlight>
=== 예 ===
오라클에서의 구체화 뷰의 예시 문법은 다음과 같다:
<syntaxhighlight lang="oracle11">
 CREATE MATERIALIZED VIEW MV_MY_VIEW
REFRESH FAST START WITH SYSDATE
   NEXT SYSDATE + 1
     AS SELECT * FROM <table_name>;
</syntaxhighlight>

== 참조 ==
<references />

== 외부 링크 ==
* [http://download.oracle.com/docs/cd/B10501_01/server.920/a96567/repmview.htm Materialized View Concepts and Architecture – Oracle]
* [http://www.sqlsnippets.com/en/topic-12868.html SQL Snippets: SQL Features Tutorials – Materialized Views – Oracle]
* [https://web.archive.org/web/20111026113415/http://download.oracle.com/docs/cd/B10501_01/server.920/a96568/rarmviea.htm#94135 Oracle9i Replication Management API Reference Release 2 (9.2)]

{{전거 통제}}

[[분류:데이터베이스 관리 시스템]]
[[분류:데이터 모델링]]
[[분류:데이터베이스]]
[[분류:관계형 모델]]