본문 바로가기
IT ▶/Data

데이터베이스 VIEW 개념과 VIEW 사용방법 알아보자. – by.SC

by 오프로 2019. 11. 2.

 

 

데이터베이스 VIEW

 

 

-       가상의 테이블 의미

 

-       데이터는 없고, SQL만 저장

 

-       View에 접근하여, SQL 수행

 

-       사용이유 : 보안과 사용자 편의성

 

 

자주 접속하거나 여러 테이블을 같이 조인하여 조회하는 경우 매번 조회가 번거로우므로

 

해당 SQL이 적용된 VIEW를 만들어 해당 VIEW를 조회하면 간단합니다. (SELECT, DML 다 가능)

 

 

1>   단순 VIEW

 

-       1개의 테이블로 만들어지는 VIEW

 

-       VIEW 생성 권한 : GRANT CREATE VIEW TO SCOTT

 

-       VIEW 생성 문법

 

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view [(alias, alias,...)]

AS sub-query

[WITH CHECK OPTION [CONSTRAINT 제약조건]]

[WITH READ ONLY]

 

 

OR REPLACE : 같은 이름의 VIEW가 있는 경우, 삭제 후 재생성

 

FORCE : 기본 테이블 존재여부 상관없이 View 생성

 

NOFORCE : 기본 테이블 존재 경우, VIEW 생성 (DEFAULT)

 

ALIAS : 기본 테이블의 컬럼명과 다르게 지정한 VIEW 칼럼명 지정

 

WITH CHECK OPTION : 제약조건에 맞는 데이터만 입력 & 수정 허용

 

WITH READ ONLY : SELECT만 가능한 VIEW 생성

 

 

-       VIEW 예시

 

CREATE OR REPLACE VIEW v_sel

AS

SELECT NAME, NUM, TELNUM

FROM TEAM_TABLE

;

 

 

SELECT * FROM v_sel;     // 생성한 VIEW (v_sel)을 사용합니다.

 

v_sel view로 생성하였으므로, 실제 Data는 없습니다.

 

그러므로, view에 인덱스는 생성할 수 없습니다.

 

 

 

2>   복합 VIEW

 

 

-       Sub Query 부분에 여러 개의 테이블이 Join 되어 생성

 

-       사용 방식은 단순 view 와 같으며, 단지 쿼리에 테이블 join 등 서브쿼리들이 들어갑니다.

 

 

3>   MVIEW (Materialized View)

 

 

-       일반 View 와 다르게 실제 데이터가 담겨있는 View

 

-       인덱스 생성 가능

 

-       View 특성 상 사용할 때마다 원본 테이블에 접근하므로, 많은 데이터를 담아야 할 경우 MView로 생성하여

데이터를 갖고 있어 원본 테이블로 매번 접근하지 않도록 하여 효율적이고, 성능도 좋아집니다.

 

-       MView 동기화 방법

 

원본 테이블과 데이터 동기화를 해주어야 합니다.

 

BEGIN

DBMS_MVIEW.REFRESH(MV_TEST);

END;

 

 

아래는 트리거(TRIGGER)에 대해 정리한 내용입니다. 참고 하시기 바랍니다!

 

 

https://lovefor-you.tistory.com/181

 

데이터베이스 TRIGGER 개념, TRIGGER 사용방법 알아보자. – by.SC

데이터베이스 트리거 (TRIGGER) 개요 - 서브 프로그램 단위로 테이블, 뷰, 스키마 또는 PL/SQL 블록으로 관련된 특정 사건마다 자동으로 해당 블록이 실행 - 방아쇠(TRIGGER) 의미로 방아쇠를 당기면 총알이 발사..

lovefor-you.tistory.com

 

저도 필요해서 찾아봐서 정리하였는데 도움이 되셨으면 해서 작성하였습니다~!

 

 

수정할 부분이나 다른 의견 있으시면 댓글 부탁드립니다!!

 

 

조금이나마 도움이 되셨으면 좋아요 하트♥나 구독 부탁드립니다~!


파이팅 하시고 좋은 하루 되세요!!

 

 

728x90
300x250