DB 이야기

디비 이야기 18. 뷰

김푸른초푸른 2020. 3. 8. 21:55

1. 뷰 란?

= 가상테이블로 실제 데이터가 없지만 존재하는 테이블을 바라보는 거울과 같은 존재다 

보안을 위해 실제 테이블 보호하며 사용자가 테이블을 직접 조작은 불가능하다.

-> 허용된 자료만 제한적으로 보여주기 위해 작성

 

사용자가 필요한 데이터를 부분만 선택하여 만들어 놓은 데이터의 집합 

 

2. 뷰 특징

1) 데이터 가공을 통해 테이블 처럼 내용을 보여줄 수 있다 (가상 테이블)

-> 자주 쓰거나 복잡한 SQL을 미리 만들 수 있다

-> 임시적인 작업을 위한 용도로 사용

 

2) 2개 이상의 물리적 테이블을 조인한 것을 하나의 뷰로 볼 수 있다. 

3) 기본 테이블과 비슷하게 조작이 된다

4) 독자적인 인덱스를 가질 수 없다

5) 필요한 데이터만 골라서 처리가능

6) 논리적 독립성 보장

 

[장점과 단점]

1) 장점

- 보안유지에 수월 (가상 테이블이라서)

   -> 데이터 관리가 편함

- 논리적 데이터의 독립성을 제공

- 여러 사용자가 사용 가능하다 (공유성)

 

2) 단점

- 뷰는 한번 정의시 변경 될 수 없다

- 뷰는 삽입, 삭제, 변경이 어느정도 가능은 하지만 많은 제약이 따른다

- 독립적인 인덱스를 가질 수 없다

- 뷰의 정의를 변경할 수 없다 

-> ALTER VIEW을 사용할 수 없다

 

장점)

1] 독립성 = 테이블 구조가 변해도 영향를 받지 않는다
2] 편리성 = 복잡한 질의를 편리하게 작성가능
3] 보안성= 숨기고 싶은 정보가 있을시, 뷰를 생성시 해당 컬럼을 빼고 사용자에게 보여 줄 수 있다.

 

3. 뷰 종류
1) 심플 뷰 -> 한개 또는 그 이상 테이블을 이용하여 만든 뷰

 EX) CREATE VIEW 뷰 이름      AS   SELCT * FROM 테이블명
2) 컴플렉스 뷰 -> 여러개의 테이블을 조인하여 뷰를 만든다 

EX)   CREATE VIEW 뷰 이름  AS  

SELCT * FROM 테이블명 A  INNER JOIN 테이블명 B WHERE A.ID = B.ID 

4. 뷰 사용

= SELECT * FROM 뷰 이름 

 

5. 뷰 삭제

= DROP VIEW  QB DLFMA {RESTRICT | CASCADE};

* RESTRICT = 다른 곳에 참조하고 있으면 삭제가 취소

* CASCADE = 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제

 

'DB 이야기' 카테고리의 다른 글

디비 이야기 20. 시노님  (0) 2020.03.10
디비 이야기 19. 인덱스  (1) 2020.03.10
디비 이야기 17. 서브쿼리  (1) 2020.03.08
디비 이야기 16. 집합연산자  (0) 2020.03.08
디비이야기 15. 조인  (0) 2020.03.08