1. 뷰(View)란 무엇인가?
1.1 뷰의 정의
- 뷰(View)란:
- 사용자에게 제한된 데이터만 보여주기 위해 기본 테이블로부터 유도된 가상 테이블.
- 물리적으로 저장되지 않으며, 필요한 순간에 데이터베이스에서 생성된 결과를 제공합니다.
1.2 뷰의 동작 방식
- 예:
- 학생 테이블과 학과 테이블이 있고, 사용자에게 학번, 이름, 학과만 보여주고 싶다면, 이 데이터를 뷰로 정의할 수 있음.
- 뷰는 사용자에게 데이터베이스 내 민감한 정보(예: 주민등록번호, 주소 등)를 숨기고, 선택된 데이터만 표시.
1.3 뷰의 특징
- 가상의 테이블:
- 물리적으로 저장되지 않으며, 사용자가 질의할 때마다 동적으로 생성.
- 데이터 보호:
- 데이터 독립성:
- 기본 테이블이 변경되더라도 뷰는 동일한 방식으로 작동.
- 뷰의 삭제:
- 뷰를 정의한 기본 테이블이 삭제되면, 관련된 모든 뷰도 자동으로 삭제.
- 명령어:
- 생성:
CREATE VIEW
- 삭제:
DROP VIEW
1.4 뷰의 장단점
장점
- 데이터 독립성 제공:
- 보안 강화:
- 사용자가 볼 필요 없는 데이터는 숨길 수 있음.
- 다양한 요구 지원:
- 동일 데이터를 다르게 보여주는 여러 뷰를 정의 가능.
- 간단한 데이터 관리:
- 사용자 요구에 따라 원하는 데이터만 간단히 제공.
단점
- 독립적 인덱스 없음:
- 뷰는 물리적으로 저장되지 않으므로 독립적인 인덱스를 가질 수 없음.
- 정의 변경 불가:
- 제약 조건:
2. 클러스터(Cluster)란 무엇인가?
2.1 클러스터의 정의
- 클러스터(Cluster)란:
- 데이터 조회 성능을 향상시키기 위해, 동일한 성격의 데이터를 같은 데이터 블록에 물리적으로 저장하는 방법.
- 데이터 접근 효율을 높이고 조회 속도를 빠르게 하는 데 중점.
2.2 클러스터의 동작 방식
- 예:
- 동물원 데이터베이스에서, "호랑이", "토끼", "원숭이" 데이터를 종류별로 각각의 데이터 블록에 저장.
- 호랑이 관련 데이터는 하나의 블록에, 원숭이 데이터는 다른 블록에 저장하여, 사용자가 특정 동물을 검색할 때 빠르게 접근 가능.
2.3 클러스터의 특징
- 조회 성능 향상:
- 저장 효율성:
- 데이터의 분포도에 따라 저장 공간 절약 가능.
- 성능 저하:
- 삽입, 수정, 삭제 작업에서는 성능이 저하될 수 있음.
- 데이터 분포도:
- 중복 데이터가 많은 경우(분포도가 넓음) 클러스터링이 유리.
2.4 클러스터의 종류
-
단일 테이블 클러스터링:
- 처리 범위가 넓은 경우에 사용.
- 하나의 테이블 내에서 데이터를 클러스터링.
-
다중 테이블 클러스터링:
- 조인이 많이 발생하는 경우 사용.
- 여러 테이블을 묶어서 클러스터링.
2.5 데이터 분포도
- 분포도가 좁다:
- 분포도가 넓다:
- 중복 데이터가 많은 경우(예: 성별: 남/여).
- 클러스터링은 분포도가 넓은 데이터에 적합:
- 동일한 데이터가 많을수록 공간 절약 효과가 큼.
2.6 클러스터의 장단점
장점
- 조회 속도 향상:
- 저장 공간 절약:
- 데이터 분포도가 넓을 경우 저장 공간 효율적 사용.
단점
- 삽입/수정/삭제 시 성능 저하:
- 구현 복잡성:
3. 비교 및 정리
특징 | 뷰(View) | 클러스터(Cluster) |
---|
정의 | 가상 테이블(물리적으로 저장되지 않음) | 동일한 성격의 데이터를 물리적으로 묶어서 저장 |
목적 | 데이터 보안 및 사용자 요구 충족 | 조회 성능 향상 |
저장 방식 | 가상 테이블(동적으로 생성) | 물리적 블록에 데이터 저장 |
장점 | 데이터 보안, 데이터 독립성 | 조회 속도 향상, 저장 공간 절약 |
단점 | 삽입/삭제/갱신 제약, 정의 변경 불가 | 삽입/수정/삭제 작업 시 성능 저하 |
활용 상황 | 특정 사용자에게 제한된 데이터 제공 | 특정 데이터 검색이 빈번한 경우 |
뷰와 클러스터의 개념과 특징을 잘 이해하고, 각각의 장단점을 기억해두세요. 이를 기반으로 실무와 시험 대비 모두 가능할 것입니다!