게임 개발자를 향해

뷰 / 클러스터 (View / Cluster) 본문

정보처리기사/2. 데이터 입출력 구현

뷰 / 클러스터 (View / Cluster)

뿌단이 2022. 9. 13. 17:30

1. 뷰(View)

  • 뷰는 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블이다.
  • 뷰는 저장장치 내에 물리적으로 존재하지 않고 단지 사용자에게 있는 것 처럼 간주된다.
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터안전하게 보호하는 효율적인 기법이다.
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰자동으로 삭제된다.
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다.

<여기서 Tip!>

정처기 필기에서 자주 나오는 중요한 개념이다.실기는 필자도 쳐야해서 잘 모르겠다.이 챕터는 무조건 알고 가야한다.

 

뷰는 실제 존재하는 데이터가 아니고, 사용자가 원하는 값만 보기 위해서 가상으로 만들어지는 테이블이다.

뷰 테이블은 DB에 저장되어있는 데이터로 만들 수 있지만, 기존에 만들어진 뷰 테이블로도 만들 수 있다.

뷰를 만들기 위해 참조한 테이블이 삭제되면 뷰도 삭제진다.

뷰를 정의할 떈 CREATE문.

제거할 떄는 DROP문.

 

 

2. 뷰의 장단점

<장점>

  • 논리적 데이터 독립성을 제공함
  • 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줌
  • 사용자의 데이터 관리를 간단하게 해줌
  • 접근 제어를 통한 자동 보안이 제공

 

<단점>

  • 독립적인 인덱스를 가질 수 없음
  • 뷰의 정의를 변경할 수 없음
  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

 

 

<여기서 Tip!>

초반에 개념적 논리적 데이터 독립성을 배웠다.

외부/개념 사상이라고도 부른며, 개념 스키마가 달라져도 외부 스키마에 영향을 주지 않는것을 의미한다.

위 단점을 보면 뷰는 기본 테이블과는 다른 형식이다.

연산에 제약이 따를 수 있다.

 

 

3. 클러스터(Cluster)

  • 클러스터는 데이터 저장 시 데이터 엑세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장방법이다.
  • 클러스터링된 테이블은 데이터 조회 속도를 향상시키지만 입력, 수정, 삭제에 대한 작업 성능을 저하시킨다.
  • 클러스터는 데이터의 분포도가 넓을수록 유리하다.
  • 데이터 분포도가 넓은 테이블을 클러스터링 하면 저장공간을 절약할 수 있다.
  • 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 한다.

<여기서 Tip!>

정의 설명이 진짜 뭐라는지 하나도 모르겠다.

 

클러스터링은 동일한 성격의 데이터를 동일한 데이터블록에 저장하는 방법이다.

자주 같이 사용되는 데이터를 같은 위치에저장시키는 기법이다.

 

단일, 다중 테이블 클러스터링은 찾아보니 정의하기엔 너무 전문적이다.

 

처리범위가 넓은 경우 단일 테이블 클러스터링조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.

 

위와 같이 외워두자.

혹시 자세한 개념이 궁금하다면

여기 클릭!

 

 

읽어주셔서 감사합니다!

정처기 화이팅!

 

 

'정보처리기사 > 2. 데이터 입출력 구현' 카테고리의 다른 글

분산 데이터베이스 설계  (0) 2022.09.13
파티션(Patition)  (0) 2022.09.13
인덱스(Index)  (0) 2022.09.13
트랜잭션 분석  (0) 2022.09.08
시스템 카탈로그  (0) 2022.09.08