뷰(View)
하나 이상의 기본 테이블에서 유도된 가상 테이블
실제 데이터가 물리적으로 저장되지 않고, SELECT문 정의만 저장
- 기본 테이블의 데이터를 논리적으로 재구성하여 보여주는 가상 테이블
- 물리적 데이터는 없고, SELECT문의 결과 형태로 정의
- 사용자가 허용된 데이터만 접근하도록 제한
- 특징
- 물리적 저장
- 저장장치에 존재하지 않음(가상 구조)
- 데이터 변경
- 기본 테이블의 데이터 변경 시 뷰도 자동 반영
- 보안 기능
- 민감한 데이터 접근 제한 가능
- 삭제 전이성
- 기본 테이블이 삭제되면 해당 테이블 기반 뷰도 자동 삭제
- 데이터 일관성
- 여러 사용자에게 동일 데이터를 다양한 형태로 제공 가능
- 물리적 저장
뷰의 장점
- 논리적 데이터 독립성 제공
- 기본 테이블 구조 변경 시에도 뷰를 통해 논리적 독립성 유지
- 사용자 맞춤 데이터 제공
- 사용자별로 필요한 정보만 볼 수 있음
- 데이터 보안 강화
- 특정 컬럼을 숨겨 접근 제어 가능
- 데이터 접근 단순화
- 복잡한 SQL 쿼리를 단순하게 재사용 가능
뷰의 단점
- 인덱스 생성 불가
- 뷰 자체에는 인덱스를 설정할 수 없음
- 정의 변경 불가
- 뷰의 정의를 직접 수정할 수 없음(재생성 필요)
- 데이터 조작 제약
- 삽입, 삭제, 갱신 시 일부 뷰는 제약 존재(특히 다중 테이블 기반 뷰)
클러스터(Cluster)
데이터 접근 효율을 향상시키기 위해 동일하거나 관련 있는 데이터를 같은 데이터 블록에 저장하는
물리적 저장 기법
- 관련 데이터(동일 성격의 데이터)를 한 블록에 모아 저장하는 물리적 구조
- 데이터 접근 효율성 향상 및 I/O 감소
- 조인 연산이 자주 발생하는 테이블
- 데이터의 물리적 위치를 유사한 레코드끼리 그룹화하여 저장
- 같은 키 값을 갖는 데이터를 같은 블록에 저장
- 데이터 조회 시 디스크 접근 횟수 감소 → 속도 향상
- 삽입·수정·삭제가 자주 발생하면 재정렬 비용 증가
클러스터 유형
- 단일 테이블 클러스터리
- 하나의 테이블에서 데이터 범위가 넓을 때, 같은 블록에 저장하여 조회 효율 향상
- 다중 테이블 클러스터링
- 여러 테이블을 공통 컬럼 기준으로 클러스터링하여 조인 성능 향상
클러스터 vs 인덱스
| 구분 | 클러스터 | 인덱스 |
| 기능 | 물리적 데이터 저장 최적화 | 검색 경로 최적화 |
| 저장 구조 | 실제 데이터가 물리적으로 인접하게 저장 | 키와 포인터 구조 |
| 효과 | 조인·범위 조회 시 효율↑ | 단일 조건 검색 시 효율↑ |
| 유형 | 단일/다중 테이블 클러스터링 | 클러스터드/넌클러스터드 인덱스 |
정리
| 구분 | 뷰 | 클러스터 |
| 정의 | 기본 테이블로부터 유도된 가상 테이블 | 관련 데이터를 동일 블록에 저장하는 물리적 구조 |
| 저장 여부 | 가상 (물리적 저장 X) | 실제 물리적 저장O |
| 역할 | 보안 강화, 논리적 독립성 제공 | 조회 성능 향상, I/O 최적화 |
| 장점 | 데이터 보안, 단순화, 독립성 | 검색 성능 향상, 공간 절약 |
| 단점 | 인덱스 불가, 갱신 제약 | 삽입·수정·삭제 시 부하 |
| 적합한 경우 | 접근 제한, 데이터 재구성 | 조인·범위 조회가 빈번한 경우 |
'정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 - 분산 데이터베이스 설계 (0) | 2025.11.02 |
|---|---|
| 정보처리기사 실기 - 파티션 (0) | 2025.11.02 |
| 정보처리기사 실기 - 인덱스 (0) | 2025.11.01 |
| 정보처리기사 실기 - 트랜잭션과 CRUD 분석 (0) | 2025.11.01 |
| 정보처리기사 실기 - 시스템 카탈로그(+ 메타 데이터, 데이터 디렉터리) (0) | 2025.11.01 |