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 |