개발바닥

[ 기술면접 / 데이터베이스] 뷰 (VIEW) 본문

개인 공부/기술 면접

[ 기술면접 / 데이터베이스] 뷰 (VIEW)

라이언 2020. 5. 7. 12:12
반응형

뷰(View) 무엇인가?

뷰는 테이블과 유사하지만 실제 데이터가 없는 테이블을 바라보는 매개체이자 거울과 같은 개념이다.

직접 테이블에 접근하는 것이 아니라 테이블에서 사용자가 필요로 하는 부분만 선택하여 만들어 놓은 데이터 집합이다.

데이터베이스에 존재하는 일종의 가상 테이블이라고 생각하면 된다.

 

그러면 테이블을 사용하지 않고 뷰를 사용하는 이유는 무엇일까?

가장 큰 이유는 사용자의 편의데이터베이스의 보안 때문이다.

원본 테이블에 직접 접근하지 않아도 사용자가 임의의 뷰를 구성하여 별도의 이름을 붙이거나 접근 가능한 사람을 지정할 수 있기 때문이다.

 

뷰의 장단점에 대해서 알아보겠습니다.

장점 

  • 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있다.
  • 복잡한 쿼리를 단순화해서 사용할 수 있다.
  • 위와 같이 사용한 쿼리를 재사용할 수 있다.

단점

  • 한 번 정의된 뷰는 변경이 불가능하다.
  • 삽입,삭제,갱신 작업에 많은 제한 사항을 가짐
  • 뷰는 자신만의 인덱스를 가질 수 없다.

※ 실무 뷰 활용

권한에 따라 사용자가 접근할 수 있는 테이블이나 뷰가 다를 수 있다. 실제 데이터베이스 운영 환경에서는 보안과 성능 문제 때문에 모든 사용자에게 전체 테이블을 공개하지 않을 수 있기 때문에 뷰를 활용해서 사용자에게 적합한 가상테이블 만들어서 제공한다.

 

MySQL  뷰 명령어

//단일 테이블의 필요한 필드만 조회하는 뷰 생성 명령어

CREATE VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 WHERE 조건;

//여러 테이블의 필요한 필드를 조회하는 뷰 생성 명령어

CREATE VIEW 뷰이름 AS SELECT A.필드이름1, B.필드이름1, ... FROM 테이블이름 AS A, 테이블이름 AS B WHERE 조건;

//VIEW 호출 명령어
SELECT * FROM 뷰이름;

//VIEW 삭제 명령어
DROP VIEW 뷰이름;

ORACLE 뷰 명령어

//뷰 수정 및 생성 명령어
CREATE OR REPLACE VIEW 뷰이름 AS SELECT 필드이름1, 필드이름2, ... FROM 테이블이름 WHERE 조건;

//뷰 호출 명령어
SELECT * FROM 뷰이름;

//뷰 삭제 명령어
DROP VIEW 뷰이름;

 PostgreSQL 뷰 명령어

//뷰 생성 명령어
CREATE VIEW 뷰이름 AS SELECT 필드이름1,필드이름2, ... FROM 테이블이름 WHERE 조건;

//뷰 호출 명령어
SELECT * FROM 뷰이름;

//뷰 삭제 명령어
DROP VIEW 뷰이름;
반응형
Comments