CS/데이터베이스

데이터베이스 View란?

Junuuu 2022. 3. 29. 17:49

데이터베이스 View란?

  • 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블입니다.
  • 한 개 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블입니다.
  • 가상 테이블이기 때문에 실제로 데이터를 저장하고 있지는 않습니다.
  • INSERT, UPDATE, DELETE가 가능하지만 보통 SELECT를 위해 사용합니다.

 

즉, View는 하나 이상의 테이블이나 뷰를 조작하여 하나의 테이블처럼 볼 수 있는 가상의 테이블입니다.

 

 

동적 View와 정적 View

정적 View

하나 이상의 기반 테이블과 다른 정적/동적 View를 기반으로 정의된 View입니다.

관련된 테이블 또는 View가 변경될 때 정적 View를 수동으로 업데이트해야 합니다.

 

동적 View

동적으로 변경되는 데이터를 테이블 형태로 보여주는 View입니다.

관련된 테이블 또는 View가 변경될 때 동적 View가 자동으로 업데이트됩니다.

 

 

View를 사용하는 이유?

https://sassun.tistory.com/92

위의 그림처럼 EMPLOYEE 테이블과 DEPARTMENT 테이블이 존재할 때 View를 사용하여 V_EMP_DEMP로 활용할 수 있습니다.

 

  • 자주 사용되는 복잡한 쿼리를 저장하는 데 사용할 수 있습니다. (재사용)
  • 복잡한 쿼리를 단순화해서 사용할 수 있습니다. (단순함)
  • 특정 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있습니다. (보안)

 

보안을 예시로 들면 다른 팀에서 관리하는 임원테이블의 임원들의 정보를 조회하고 싶을 때 모든 정보들을 받아올 경우 보안상 문제가 있을 수 있습니다.

 

이때 필요한 데이터들면 View로 재구성하여 보여주면 됩니다.

 

View의 단점

  • 한 번 정의된 뷰는 변경할 수 없습니다. ( ALTER 불가능)
  • INSERT, DELETE, UPDATE에 많은 제한이 있습니다. 
  • 독자적인 INDEX를 가질 수 없습니다.

 

View 사용법

Create 문을 사용하여 View를 생성할 수 있습니다.

DROP 문을 사용하여 View를 삭제할 수 있습니다.

 

MySQL에서 뷰를 생성하는 문법은 다음과 같습니다.

CREATE VIEW 뷰이름 AS

SELECT 필드이름1, 필드이름2, ...

FROM 테이블이름

WHERE 조건

1. 뷰의 이름을 명시합니다. (뷰는 원본 테이블과 같은 이름을 가질 수 없습니다!)

2. AS 키워드 다음에 SELECT 문을 사용하여 해당 뷰가 접근할 수 있는 필드를 명시합니다.

3. 이때 WHERE 절을 사용하여 특정 조건을 설정할 수 있습니다.

 

MySQL에서 뷰를 삭제하는 문법은 다음과 같습니다.

DROP VIEW 뷰이름 RESTRICT or CASCADE

RESTRICT : 뷰를 다른 곳에서 참조하고 있으면 삭제가 취소됩니다.

CASCADE : 뷰를 참조하는 다른 뷰나 제약 조건까지 모두 삭제됩니다.

 

 

출처

http://www.tcpschool.com/mysql/mysql_view_createReplace

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

https://velog.io/@gillog/DB-View

 

[DB] View

View는 사용자에게 접근이 허용되는 데이터만을 제한적으로 보여주기 위해, 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블이다.View는 저장장치 내에 물리적으로 존재하지 않

velog.io

https://www.ibm.com/docs/en/control-desk/7.6.0?topic=SSWT9A_7.6.0/com.ibm.mbs.doc/configur/c_views.html